ADTF  3.18.2
decoding_sample_reader< ReaderImplementation >

This reader uses the media description to decode sample data. More...

Inheritance diagram for decoding_sample_reader< ReaderImplementation >:
[legend]

Public Member Functions

 decoding_sample_reader ()
 Default Constructor.
 
tResult SetType (const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pStreamType) override
 Sets the initial stream type of a streamer. More...
 
void SetAcceptTypeCallback (const std::function< tResult(const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pStreamType)> &fnAcceptTypeCallback)
 Sets a callback that will be called for each new Stream Type. More...
 
bool GetNextDecoder (ant::cSampleDecoder &oDecoder)
 Returns a decoder for the next available Sample. More...
 
bool GetNextDecoder (ant::cSampleDecoder &oDecoder, base::flash::tNanoSeconds &tmSampleTime)
 Returns a decoder for the next available Sample. More...
 
bool GetLastDecoder (ant::cSampleDecoder &oDecoder)
 Returns a decoder for the last Sample currently available. More...
 
bool GetLastDecoder (ant::cSampleDecoder &oDecoder, base::flash::tNanoSeconds &tmSampleTime)
 Returns a decoder for the last Sample currently available. More...
 
- Public Member Functions inherited from cSampleReader
 cSampleReader (ant::ISampleReaderQueue &oQueue, ant::ISampleStreamAccess::tMode eAccessMode, bool bStoreLastSample)
 
void SetName (const char *strName) override
 Sets the name of the streamer. More...
 
tResult GetName (base::ant::IString &&strName) override
 Retrieves the name of the streamer. More...
 
tResult GetType (ucom::ant::iobject_ptr< const ant::IStreamType > &pStreamType) const override
 Returns the initial stream type of the streamer. More...
 
tResult BeginStreaming (ISampleStream &oSampleStream) override
 Begin streaming on the given sample stream. More...
 
tResult EndStreaming () override
 End streaming. More...
 
tResult SetStreamerPin (const ucom::ant::iobject_ptr< IStreamerPin > &pStreamerPin) override
 Sets the pin that the streamer is associated with. More...
 
void SetAcceptTypeCallback (const std::function< tResult(const ucom::ant::iobject_ptr< const ant::IStreamType > &pStreamType)> &fnAcceptTypeCallback)
 Sets a callback function which is called while a Stream Type is received - see also AcceptType and IsCompatible implementations. More...
 
void SetStreamErrorCallback (const std::function< tResult(tResult oStreamError)> &fnStreamErrorCallback)
 A callback function to react on stream errors. More...
 
tResult SetStreamError (tResult oError) override
 Sets an error on the associated sample stream. More...
 
tResult GetLastType (ucom::ant::iobject_ptr< const ant::IStreamType > &pType) override
 Returns the last stream type that was read from the sample stream. More...
 
tResult GetNextSample (ucom::ant::iobject_ptr< const ant::ISample > &pSample) override
 Reads the next available sample from the associated sample stream. More...
 
tResult GetLastSample (ucom::ant::iobject_ptr< const ant::ISample > &pSample) override
 Reads the latest available sample from the associated sample stream. More...
 
void Reset ()
 
tResult ReadAllAvailableItems () override
 Reads all available items from the sample stream into internal queues. More...
 
tResult RequestSamples (ucom::ant::iobject_ptr< hollow::IStreamingRequest > &pRequest, uint32_t nSubStreamId, const base::ant::IProperties *pRequestProperties=nullptr)
 RequestSamples of the given Substream to be generated and/or transmitted. More...
 
void SetSynchronousTypeUpdateCallback (const std::function< tResult(const ucom::ant::iobject_ptr< const ant::IStreamType > &pStreamType)> &fnRequestTypeUpdateCallback)
 
- Public Member Functions inherited from cSampleCodecFactory
 cSampleCodecFactory (const cStructureType &oTypeDefinition)
 
 cSampleCodecFactory (const streaming::ant::IStreamType &oStreamType)
 
 cSampleCodecFactory (const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pStreamType)
 
size_t FindIndex (const char *strElementName) const
 
size_t FindArrayIndex (const char *strArrayName) const
 
size_t FindStructIndex (const char *strStructName) const
 
const adtf_ddl::tStructElementGetStaticElement (size_t nElementIndex) const
 
- Public Member Functions inherited from cSampleCodecFactory
 cSampleCodecFactory ()=default
 Empty constructor. More...
 
 cSampleCodecFactory (const char *strStructName, const char *strMediaDescription, adtf_ddl::tDataRepresentation eDefaultDataRepresentation=adtf_ddl::tDataRepresentation::Deserialized)
 Constructor that take a DDL string for initialization. More...
 
 cSampleCodecFactory (const adtf_ddl::cDDLComplex *pStruct, adtf_ddl::tDataRepresentation eDefaultDataRepresentation=adtf_ddl::tDataRepresentation::Deserialized)
 Constructor that uses an OO-DDL struct for initialization. More...
 
 cSampleCodecFactory (cSampleCodecFactory &)=default
 Copy constructor.
 
 cSampleCodecFactory (const cSampleCodecFactory &)=default
 Copy constructor.
 
 cSampleCodecFactory (cSampleCodecFactory &&)=default
 Move constructor.
 
cSampleCodecFactoryoperator= (cSampleCodecFactory &)=default
 assignment operator
 
cSampleCodecFactoryoperator= (cSampleCodecFactory &&)=default
 Move assignment operator.
 
tResult IsValid () const
 Check if the factory is in a valid state. More...
 
cStaticSampleDecoder MakeStaticDecoderFor (const adtf::streaming::ISample &oSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a static decoder for the given sample. More...
 
cStaticSampleCodec MakeStaticCodecFor (adtf::streaming::ISample &oSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a static codec for the given sample. More...
 
cSampleDecoder MakeDecoderFor (const adtf::streaming::ISample &oSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a decoder for the given sample. More...
 
cSampleCodec MakeCodecFor (adtf::streaming::ISample &oSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a codec for the given sample. More...
 
size_t GetStaticElementCount () const
 
tResult GetStaticElement (size_t nIndex, const adtf_ddl::tStructElement *&pElement) const
 Access information about an element. More...
 
size_t GetStaticBufferSize (adtf_ddl::tDataRepresentation eRep=adtf_ddl::tDataRepresentation::Deserialized) const
 
adtf_ddl::tDataRepresentation GetDefaultDataRepresentation () const
 
cStaticSampleDecoder MakeStaticDecoderFor (const adtf::ucom::iobject_ptr< const adtf::streaming::ISample > &pSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a static decoder for the given sample. More...
 
cSampleDecoder MakeDecoderFor (const adtf::ucom::iobject_ptr< const adtf::streaming::ISample > &pSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a decoder for the given sample. More...
 
cStaticSampleCodec MakeStaticCodecFor (const adtf::ucom::iobject_ptr< adtf::streaming::ISample > &pSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a static codec for the given sample. More...
 
cSampleCodec MakeCodecFor (const adtf::ucom::iobject_ptr< adtf::streaming::ISample > &pSample, adtf_ddl::tDataRepresentation eDataRepresentation) const
 Creates a codec for the given sample. More...
 
cStaticSampleDecoder MakeStaticDecoderFor (const adtf::ucom::iobject_ptr< const adtf::streaming::ISample > &pSample) const
 Creates a static decoder for the given sample using the default data representation. More...
 
cSampleDecoder MakeDecoderFor (const adtf::ucom::iobject_ptr< const adtf::streaming::ISample > &pSample) const
 Creates a decoder for the given sample using the default data representation. More...
 
cStaticSampleCodec MakeStaticCodecFor (const adtf::ucom::iobject_ptr< adtf::streaming::ISample > &pSample) const
 Creates a static codec for the given sample using the default data representation. More...
 
cSampleCodec MakeCodecFor (const adtf::ucom::iobject_ptr< adtf::streaming::ISample > &pSample) const
 Creates a codec for the given sample using the default data representation. More...
 
cStaticSampleDecoder MakeStaticDecoderFor (const adtf::streaming::ISample &oSample) const
 Creates a static decoder for the given sample using the default data representation. More...
 
cSampleDecoder MakeDecoderFor (const adtf::streaming::ISample &oSample) const
 Creates a decoder for the given sample using the default data representation. More...
 
cStaticSampleCodec MakeStaticCodecFor (adtf::streaming::ISample &oSample) const
 Creates a static codec for the given sample using the default data representation. More...
 
cSampleCodec MakeCodecFor (adtf::streaming::ISample &oSample) const
 Creates a codec for the given sample using the default data representation. More...
 

Private Attributes

std::function< tResult(const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pStreamType)> m_fnAcceptCallback
 

Additional Inherited Members

- Public Types inherited from cSampleCodecFactory
typedef adtf_ddl::tStructElement DefinedStructElementType
 
- Static Public Member Functions inherited from cSampleCodecFactory
static const char * GetStaticStructElementName (const adtf_ddl::tStructElement *pElement)
 add for legacy reason
 
- Protected Attributes inherited from sample_reader< INTERNAL_QUEUE, STORE_LAST_SAMPLE, ACCESS_MODE >
INTERNAL_QUEUE m_oQueue
 
- Protected Attributes inherited from cSampleReader
std::unique_ptr< cImplementation > m_pImplementation
 

Detailed Description

template<typename ReaderImplementation = streaming::flash::cDynamicSampleReader>
class adtf::mediadescription::flash::decoding_sample_reader< ReaderImplementation >

This reader uses the media description to decode sample data.

Just use it instead of the usual adtf::streaming::flash::cDynamicSampleReader implementation.

See page_demo_qtmedia_desc_display for an example usage.

Definition at line 30 of file codec_sample_streamer_legacy.h.

Member Function Documentation

◆ GetLastDecoder() [1/2]

bool GetLastDecoder ( ant::cSampleDecoder oDecoder)
inline

Returns a decoder for the last Sample currently available.

Parameters
[out]oDecoderThis will be updated to decode the last sample.
Return values
trueA sample was available and the oDecoder instance has been updated.
falseNo sample was available.

Definition at line 119 of file codec_sample_streamer_legacy.h.

◆ GetLastDecoder() [2/2]

bool GetLastDecoder ( ant::cSampleDecoder oDecoder,
base::flash::tNanoSeconds tmSampleTime 
)
inline

Returns a decoder for the last Sample currently available.

Parameters
[out]oDecoderThis will be updated to decode the last sample.
[out]tmSampleTimeTheis will be updated to the Sample timestamp
Return values
trueA sample was available and the oDecoder instance has been updated.
falseNo sample was available.

Definition at line 132 of file codec_sample_streamer_legacy.h.

References adtf::streaming::flash::get_sample_time(), IS_FAILED, cDecoder::IsValid(), cSampleCodecFactory::MakeDecoderFor(), and THROW_IF_FAILED.

◆ GetNextDecoder() [1/2]

bool GetNextDecoder ( ant::cSampleDecoder oDecoder)
inline

Returns a decoder for the next available Sample.

Parameters
[out]oDecoderThis will be updated to decode the next sample.
Return values
trueA sample was available and the oDecoder instance has been updated.
falseNo sample was available.

Definition at line 81 of file codec_sample_streamer_legacy.h.

◆ GetNextDecoder() [2/2]

bool GetNextDecoder ( ant::cSampleDecoder oDecoder,
base::flash::tNanoSeconds tmSampleTime 
)
inline

Returns a decoder for the next available Sample.

Parameters
[out]oDecoderThis will be updated to decode the next Sample.
[out]tmSampleTimeTheis will be updated to the Sample timestamp
Return values
trueA sample was available and the oDecoder instance has been updated.
falseNo sample was available.

Definition at line 94 of file codec_sample_streamer_legacy.h.

References adtf::streaming::flash::get_sample_time(), IS_FAILED, cDecoder::IsValid(), cSampleCodecFactory::MakeDecoderFor(), and THROW_IF_FAILED.

◆ SetAcceptTypeCallback()

void SetAcceptTypeCallback ( const std::function< tResult(const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pStreamType)> &  fnAcceptTypeCallback)
inline

Sets a callback that will be called for each new Stream Type.

Parameters
[in]fnAcceptTypeCallbackThe callback. If you do not accept the new Stream Type return an error from this. The reader will discard samples until you accept a Stream Type.

Definition at line 70 of file codec_sample_streamer_legacy.h.

◆ SetType()

tResult SetType ( const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &  pStreamType)
inlineoverridevirtual

Sets the initial stream type of a streamer.

Parameters
[in]pStreamTypeThe stream type
Returns
Standard result.

Reimplemented from cSampleReader.

Definition at line 53 of file codec_sample_streamer_legacy.h.