VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtProcessImageTask.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
15 
16 #include <vlutil/vlRunnable.h>
17 #include <vlutil/vlThread.h>
18 #include <vlutil/vlTime.h>
19 
20 #include <osg/Image>
21 
22 #include <vector>
23 
24 class DtThread;
25 
26 namespace makVrv
27 {
28  class DtMetadataPublisher;
29  class DtImageTaskElement;
30  class DtVideoFrameBuffer;
31 
36  : protected DtRunnable
37  {
38  public:
41 
43  virtual ~DtProcessImageTask();
44 
47  virtual bool initialize(
49  const makArchives::DtMetadataPublisherRecord& metadataConfig );
50 
59  virtual void process(const DtReadFramebufferProcessData& data, bool tickPublisher);
60 
63  virtual void tickMetaDataPublisher(void);
64 
66  const DtVideoStream& stream();
67 
68  protected:
69 
72  virtual DtImageTaskElement* buildPipeline(
74 
77  virtual void setElementFromRecord( DtImageTaskElement* element,
78  const makArchives::DtImageTaskRecord& taskRecord );
79 
82  virtual bool configureElement( DtImageTaskElement* element );
83 
87  // -- virtual void workerThread();
88 
89  private:
90 
93 
96 
98  DtProcessImageTask& operator=( const DtProcessImageTask& rhs );
99 
101  virtual void run();
102 
103  protected:
108 
109  DtThreadStartSP myStart;
110  DtThread* myThread;
111 
113  double myFrequency;
114 
116 
118  };
119 }
A DtVideoStream instance will create a single streaming video pipeline on the channel indicated by wi...
Definition: DtVideoStream.h:35
Contains the DtVideoStream class declaration.
double myFrequency
Definition: DtProcessImageTask.h:113
This is a non-extendable container class used to send the information to the gstreamer pipeline...
Definition: DtReadFramebufferProcessData.h:20
DtLocklessQueue< DtVideoFrameBuffer * > myImageQueue
Definition: DtProcessImageTask.h:107
Contains the DtLocklessQueue class declaration.
Record for a sensor definition.
Definition: DtImageTaskRecord.h:20
DtMetadataPublisher defines the interface for all metadata publishers, as well as the implementation ...
Definition: DtMetadataPublisher.h:37
#define DT_DLL_VRVVIDEOSTREAM
Definition: vrvVideoStream.h:20
DtLocklessQueue is a thread safe queue for single reader/single writer. It may block if the queue fil...
Definition: DtLocklessQueue.h:21
Record for a metadata publisher Defines both the type and parameters.
Definition: DtMetadataPublisherRecord.h:21
DtLocklessQueue< DtVideoFrameBuffer * > myVideoFrameBufferPool
Definition: DtProcessImageTask.h:115
The DtImageTaskElement is an abstract base class for all image task elements. It defines the common i...
Definition: DtImageTaskElement.h:25
DtDe & myDe
Definition: DtProcessImageTask.h:104
DtMetadataPublisher * myMetadataPublisher
Definition: DtProcessImageTask.h:112
Contains the DtReadFramebufferProcessData class declaration.
voidpf stream
Definition: ioapi.h:39
DtThreadStartSP myStart
Definition: DtProcessImageTask.h:109
const DtVideoStream & myStream
Definition: DtProcessImageTask.h:105
DtProcessImageTask creates and manages all the process image pipeline elements.
Definition: DtProcessImageTask.h:35
DtImageTaskElement * myPipeline
Definition: DtProcessImageTask.h:106
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DtTime myLastUpdateTime
Definition: DtProcessImageTask.h:117
Contains DLL export macros.
DtThread * myThread
Definition: DtProcessImageTask.h:110
std::vector< DtImageTaskRecord > ImageTaskRecords
List of image task records.
Definition: DtVideoStreamRecord.h:112

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)