ADTF
ISampleabstract

The ISample interface sets and retrieves properties on samples . More...

Inheritance diagram for ISample:
[legend]

Public Member Functions

 ADTF_IID (ISample, "sample.flash.streaming.adtf.iid")
 definition of interface id
 
virtual base::flash::tNanoSeconds GetTimeNs () const =0
 Retrieves the SampleTimeS (of StreamTime) of this sample. More...
 
virtual tResult SetTime (base::flash::tNanoSeconds tmTimeStamp)=0
 Sets the SampleTimeStamp (of StreamTime). More...
 
virtual tResult Set (base::flash::tNanoSeconds tmTimeStamp, const void *pData, size_t szSize, uint32_t ui32Flags=0)=0
 Sets the internal sample data and timestamp. More...
 
- Public Member Functions inherited from ISample
 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. More...
 
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. More...
 
virtual tResult Set (const ISample &oSample)=0
 Deep copy the given sample (source) to this sample (destination). More...
 
virtual tResult Get (ISample &oSample) const =0
 Deep copy this sample (source) to the given sample (destination). More...
 
virtual tResult Reset ()=0
 Resets the whole sample content. More...
 
virtual uint32_t GetFlags () const =0
 Query sample flags. More...
 
virtual tResult SetFlags (uint32_t ui32Flags)=0
 Specify sample flags. More...
 
virtual tResult Set (tTimeStamp tmTimeStamp, const void *pData, size_t szSize, uint32_t ui32Flags=0)=0
 Sets the internal sample data and timestamp. More...
 
virtual tResult GetSampleBufferFactory (ucom::ant::iobject_ptr< ISampleBufferFactory > &oFactory) const =0
 Gets the SampleBufferFactory the Sample will ask for SampleBuffer to allocate. More...
 
virtual tResult GetSampleInfo (ucom::ant::iobject_ptr< const ISampleInfo > &oSampleInfo) const =0
 Gets the ISampleInfo of the sample. More...
 
virtual tResult GetSampleInfo (ucom::ant::iobject_ptr< ISampleInfo > &oSampleInfo)=0
 Gets the ISampleInfo of the sample. More...
 
virtual tResult GetSampleLog (ucom::ant::iobject_ptr< ISampleLog > &oSampleLog) const =0
 Gets the ISampleLog of the sample.
 
virtual tTimeStamp GetTime () const =0
 Retrieves the SampleTimeS (of StreamTime) of this sample. More...
 
virtual tResult SetTime (tTimeStamp tmTimeStamp)=0
 Sets the SampleTimeStamp (of StreamTime). More...
 
- Public Member Functions inherited from IObject
 ADTF_IID (IObject, "object.ant.ucom.adtf.iid")
 Marks the IObject to be castable with the ucom_cast() More...
 

Protected Member Functions

 ~ISample ()=default
 not destructable
 
- Protected Member Functions inherited from ISample
 ~ISample ()=default
 not destructable
 
- Protected Member Functions inherited from IObject
 ~IObject ()=default
 Protected destructor --> Use implemented Destroy() instead of delete!
 

Additional Inherited Members

- Public Types inherited from ISample
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...
 

Detailed Description

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 adtf::streaming::ant::cSample.

See also
Sample.

Definition at line 294 of file sample_intf.h.

Member Function Documentation

◆ GetTimeNs()

virtual base::flash::tNanoSeconds GetTimeNs ( ) const
pure virtual

Retrieves the SampleTimeS (of StreamTime) of this sample.

The GetTime method retrieves the SampleTimeS (of StreamTime) of this sample.

Returns
Returns the SampleTimeS (of StreamTime) of this sample (see also Clock Concept for further infomation).
See also
Clock Concept

◆ Set()

virtual tResult Set ( base::flash::tNanoSeconds  tmTimeStamp,
const void *  pData,
size_t  szSize,
uint32_t  ui32Flags = 0 
)
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.

Remarks
This is a shortcut for allocation a new buffer, putting a write lock onto its buffer, copying the data and unlocking the buffer. It is still recommended to allocate a new Sample each time you want to send one (see alloc_sample)
Parameters
tmTimeStamp[in] SampleTimestamp of (should be StreamTime).
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.
Return values
ERR_ACCESS_DENIEDISample::eFlags::SF_ReadOnly is set.
ERR_NOERROReverything is OK
See also
Clock Concept
Remarks
The Parameter pData must not be a C++ object, use only raw memory, pointer to plain data types or plain old c-style structure definitions.

◆ SetTime()

virtual tResult SetTime ( base::flash::tNanoSeconds  tmTimeStamp)
pure virtual

Sets the SampleTimeStamp (of StreamTime).

Parameters
[in]tmTimeStampgiven timestamp (see also Clock Concept for further information on Times and StreamTime)
Return values
ERR_ACCESS_DENIEDISample::eFlags::SF_ReadOnly is set
ERR_NOERRORTime set
See also
Clock Concept