The ISample interface sets and retrieves properties on samples . More...
#include <sample_intf.h>
Public Types | |
enum | eFlags : uint32_t { SF_None = 0x0 , SF_SyncPoint = 0x2 , SF_AbsoluteTime = 0x4 , SF_DataFromADTF1 = 0x8 , SF_VideoKeyFrame = 0x10 , SF_SampleLogEnabled = 0x40 , SF_SampleLogPresent = 0x80 , SF_SampleInfoPresent = 0x100 , SF_AllowBufferSharing = 0x400 } |
serval flags are defined All undefined bits are reserved for future and internal use. More... | |
Public Member Functions | |
ADTF_IID (ISample, "sample.ant.streaming.adtf.iid") | |
definition of interface id | |
virtual tResult | Lock (ucom::ant::iobject_ptr_shared_locked< const ISampleBuffer > &oSampleBuffer) const =0 |
Obtains a valid read-only reference to the sample buffer. | |
virtual tResult | WriteLock (ucom::ant::iobject_ptr_locked< ISampleBuffer > &pSampleBuffer, size_t szPreAllocateSize)=0 |
Obtains a valid reference to the sample buffer for writing access. | |
virtual tResult | Set (const ISample &oSample)=0 |
Deep copy the given sample (source) to this sample (destination). | |
virtual tResult | Get (ISample &oSample) const =0 |
Deep copy this sample (source) to the given sample (destination). | |
virtual tResult | Reset ()=0 |
Resets the whole sample content. | |
virtual uint32_t | GetFlags () const =0 |
Query sample flags. | |
virtual tResult | SetFlags (uint32_t ui32Flags)=0 |
Specify sample flags. | |
virtual tResult | Set (tTimeStamp tmTimeStamp, const void *pData, size_t szSize, uint32_t ui32Flags=0)=0 |
Sets the internal sample data and timestamp. | |
virtual tResult | GetSampleBufferFactory (ucom::ant::iobject_ptr< ISampleBufferFactory > &oFactory) const =0 |
Gets the SampleBufferFactory the Sample will ask for SampleBuffer to allocate. | |
virtual tResult | GetSampleInfo (ucom::ant::iobject_ptr< const ISampleInfo > &oSampleInfo) const =0 |
Gets the ISampleInfo of the sample. | |
virtual tResult | GetSampleInfo (ucom::ant::iobject_ptr< ISampleInfo > &oSampleInfo)=0 |
Gets the ISampleInfo of the sample. | |
virtual tResult | GetSampleLog (ucom::ant::iobject_ptr< ISampleLog > &oSampleLog) const =0 |
Gets the ISampleLog of the sample. | |
virtual tTimeStamp | GetTime () const =0 |
Retrieves the sample timestamp (of stream time) of this sample. | |
virtual tResult | SetTime (tTimeStamp tmTimeStamp)=0 |
Sets the sample timestamp (of stream time). | |
![]() | |
ADTF_IID (IObject, "object.ant.ucom.adtf.iid") | |
Marks the IObject to be castable with the ucom_cast() | |
Protected Member Functions | |
~ISample ()=default | |
not destructable | |
![]() | |
~IObject ()=default | |
Protected destructor --> Only the final implementation can be destroyed! | |
The ISample interface sets and retrieves properties on samples .
For information on realtime safety please have a look at the documentation of the default implementation cSample.
Definition at line 35 of file sample_intf.h.
enum eFlags : uint32_t |
serval flags are defined All undefined bits are reserved for future and internal use.
Enumerator | |
---|---|
SF_None | No flags are set. |
SF_SyncPoint | Determines if the sample marks a synchronization point. Synchronization points can be used to seek inside the sample stream for things like key video frames. This flag will only be recognized by the HarddiskRecorder at the moment. Samples with this flag set will be set as IndexTable entry within the DAT File. |
SF_AbsoluteTime | This flag has no effect and is only remaining due to code and binary compatibility purpose! |
SF_DataFromADTF1 | If old ADTF V1.x data is stored, this flag will be set. For own Sample implementations, the data has to be converted to ADTF V2 format After conversion, this flag has to be removed. |
SF_VideoKeyFrame | This flag marks key frames in video streams. |
SF_SampleLogEnabled | This flag marks that sample supports ISampleLog interface and it is enabled. |
SF_SampleLogPresent | This flag marks the sample supports the ISampleLog interface and a trace is present from Deserialization! (from network or DAT File !) |
SF_SampleInfoPresent | This flag marks the sample has the SampleInfo present. |
SF_AllowBufferSharing | mark that the buffer of this sample can be shared |
Definition at line 49 of file sample_intf.h.
Deep copy this sample (source) to the given sample (destination).
[out] | oSample | Destination sample |
ERR_ACCESS_DENIED | given oSample is marked as readonly (see ISample::eFlags::SF_ReadOnly) |
|
pure virtual |
|
pure virtual |
Gets the SampleBufferFactory the Sample will ask for SampleBuffer to allocate.
[out] | oFactory | The buffer factory of the sample |
References GetSampleBufferFactory().
Referenced by GetSampleBufferFactory().
|
pure virtual |
Gets the ISampleInfo of the sample.
[out] | oSampleInfo | The sample info of the buffer |
References GetSampleInfo().
Referenced by GetSampleInfo(), and GetSampleInfo().
|
pure virtual |
Gets the ISampleInfo of the sample.
[out] | oSampleInfo | The sample info of the buffer |
References GetSampleInfo().
|
pure virtual |
Retrieves the sample timestamp (of stream time) of this sample.
References ADTF3_DEPRECATED, and GetTime().
Referenced by GetTime().
|
pure virtual |
Obtains a valid read-only reference to the sample buffer.
The Lock method obtains a valid reference to the sample buffer.
[out] | oSampleBuffer | reference to set the buffer |
ERR_POINTER | oSampleBuffer.Reset failed |
ERR_NOERROR | everything is OK |
|
pure virtual |
Resets the whole sample content.
ERR_ACCESS_DENIED | given sample is marked as readonly (see ISample::eFlags::SF_ReadOnly) |
Deep copy the given sample (source) to this sample (destination).
[in] | oSample | Source sample. |
ERR_ACCESS_DENIED | sample is marked as readonly (see ISample::eFlags::SF_ReadOnly) |
Referenced by ADTF_IID(), ADTF_IID(), and Set().
|
pure virtual |
Sets the internal sample data and timestamp.
The method sets the internal data structures to new values. This is mainly used to deliver buffered sample data using preallocated sample objects.
tmTimeStamp | [in] SampleTimestamp of (should be stream time). |
pData | [in] Pointer to the sample data which will be copied to it buffer. |
szSize | [in] Size of sample data, in bytes. |
ui32Flags | [in] Specifies the sample flags XORed. |
ERR_ACCESS_DENIED | ISample::eFlags::SF_ReadOnly is set. |
ERR_NOERROR | everything is OK |
pData
must not be a C++ object, use only raw memory, pointer to plain data types or plain old c-style structure definitions. Implemented in ISample.
References Set().
|
pure virtual |
Specify sample flags.
The flags are XORed.
ui32Flags | [in] Flag that specifies if the sample is a sync point or not. See eFlags. |
ERR_NOERROR | everything is OK |
ERR_ACCESS_DENIED | ISample::eFlags::SF_ReadOnly is set. |
|
pure virtual |
Sets the sample timestamp (of stream time).
[in] | tmTimeStamp | given timestamp (see also Clock Concept for further information on times and stream time) |
ERR_ACCESS_DENIED | ISample::eFlags::SF_ReadOnly is set |
ERR_NOERROR | Time set |
Implemented in ISample.
References SetTime().
Referenced by ADTF_IID(), and SetTime().
|
pure virtual |
Obtains a valid reference to the sample buffer for writing access.
The WriteLock method obtains a valid reference to the sample buffer.
[out] | pSampleBuffer | reference to the current sample buffer with writing access |
[in] | szPreAllocateSize | If unequal to 0, will resize the the sample buffer to this size immediately. Otherwise the buffer is not modified at all. |
ERR_POINTER | pSampleBuffer is not valid |
ERR_ACCESS_DENIED | sample is marked as readonly (see ISample::eFlags::SF_ReadOnly) |
ERR_NOERROR | everything is OK |
Referenced by adtf::streaming::ant::write_to_sample().