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 (cSampleDecoder &oDecoder)
 Returns a decoder for the next available Sample. More...
 
bool GetNextDecoder (cSampleDecoder &oDecoder, base::flash::tNanoSeconds &tmSampleTime)
 Returns a decoder for the next available Sample. More...
 
bool GetLastDecoder (cSampleDecoder &oDecoder)
 Returns a decoder for the last Sample currently available. More...
 
bool GetLastDecoder (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 ()
 Empty constructor. More...
 
 cSampleCodecFactory (const char *strStructName, const char *strMediaDescription, ddl::tDataRepresentation eDefaultDataRepresentation=ddl::tDataRepresentation::Deserialized)
 Constructor that take a DDL string for initialization. More...
 
 cSampleCodecFactory (const ddl::dd::StructType &oStruct, const ddl::dd::DataDefinition &oParentDD, ddl::tDataRepresentation eDefaultDataRepresentation=ddl::tDataRepresentation::Deserialized)
 Constructor that uses an OO-DDL struct for initialization. More...
 
 cSampleCodecFactory (const std::pair< std::string, std::string > &oMDDescription, ddl::tDataRepresentation eDefaultDataRepresentation=ddl::tDataRepresentation::Deserialized)
 Construct a new c Sample Codec Factory. More...
 
 cSampleCodecFactory (const ddl::DDStructure &oTypeDefinition, ddl::tDataRepresentation eDefaultDataRepresentation=ddl::tDataRepresentation::Deserialized)
 Construct a new c Sample Codec Factory. More...
 
 cSampleCodecFactory (const streaming::ant::IStreamType &oStreamType)
 Construct a new c Sample Codec Factory. More...
 
 cSampleCodecFactory (const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pStreamType)
 Construct a new c Sample Codec Factory. More...
 
 cSampleCodecFactory (const cSampleCodecFactory &)
 Copy constructor.
 
 cSampleCodecFactory (cSampleCodecFactory &&)
 Move constructor.
 
cSampleCodecFactoryoperator= (const cSampleCodecFactory &)
 assignment operator
 
cSampleCodecFactoryoperator= (cSampleCodecFactory &&)
 Move assignment operator.
 
tResult IsValid () const
 Check if the factory is in a valid state. More...
 
cStaticSampleDecoder MakeStaticDecoderFor (const adtf::streaming::ISample &oSample, ddl::tDataRepresentation eDataRepresentation) const
 Creates a static decoder for the given sample. More...
 
cStaticSampleCodec MakeStaticCodecFor (adtf::streaming::ISample &oSample, ddl::tDataRepresentation eDataRepresentation) const
 Creates a static codec for the given sample. More...
 
cSampleDecoder MakeDecoderFor (const adtf::streaming::ISample &oSample, ddl::tDataRepresentation eDataRepresentation) const
 Creates a decoder for the given sample. More...
 
cSampleCodec MakeCodecFor (adtf::streaming::ISample &oSample, ddl::tDataRepresentation eDataRepresentation) const
 Creates a codec for the given sample. More...
 
tElement GetElement (const tCodecIndex &oCodecIndex) const
 Retrieves an element for the codec index. More...
 
tElement GetElement (const std::string &strElementFullName) const
 Retrieves an element for the given name. More...
 
const tElementsGetElements () const
 Retrieves the elements of the factory to get element information. More...
 
size_t GetElementChildCount (const tCodecIndex &oCodecIndex) const
 Retrieves the amount of child elements for the given codec index. More...
 
std::string GetElementFullName (const tCodecIndex &oCodecIndex) const
 Retrieves the full name of the element within its main structure. More...
 
std::string GetElementName (const tCodecIndex &oCodecIndex) const
 Retrieves the name of the element within its structured element. More...
 
const std::string & GetElementBaseName (const tCodecIndex &oCodecIndex) const
 Retrieves the base name of the element within its structured element. More...
 
size_t GetStaticBufferSize (ddl::tDataRepresentation eRep=ddl::tDataRepresentation::Deserialized) const
 Gets the static buffer size in bytes for the structure. More...
 
ddl::tDataRepresentation GetDefaultDataRepresentation () const
 Returns the current default data representation whuke creating codec or decoder. More...
 
cStaticSampleDecoder MakeStaticDecoderFor (const adtf::ucom::iobject_ptr< const adtf::streaming::ISample > &pSample, 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, ddl::tDataRepresentation eDataRepresentation) const
 Creates a decoder for the given sample. More...
 
cStaticSampleCodec MakeStaticCodecFor (const adtf::ucom::iobject_ptr< adtf::streaming::ISample > &pSample, ddl::tDataRepresentation eDataRepresentation) const
 Creates a static codec for the given sample. More...
 
cSampleCodec MakeCodecFor (const adtf::ucom::iobject_ptr< adtf::streaming::ISample > &pSample, 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...
 
void Resolve (tCodecIndex &oCodecIndex) const
 retrieves the lyoutinformation for the given codec index. More...
 
- Public Member Functions inherited from cCodecFactoryLegacy
tCodecIndex Resolve (tCodecLeafIndex nElementIndex) const
 Legacy: Retrieves a codec index with element information for the given leaf index. More...
 
size_t GetStaticElementCount () const
 Legacy: Gets the leaf count. More...
 
tResult GetStaticElement (tCodecLeafIndex nElementLeafIndex, const ddl::StructElement *&pElement) const
 Legacy: Access information about an element. More...
 
tCodecLeafIndex FindIndex (const char *strElementName) const
 Legacy: Retrieves the leaf index of the first element in the given element path. More...
 
tCodecLeafIndex FindArrayIndex (const char *strArrayName) const
 Legacy: Retrieves the leaf index of the first element in the given element path. More...
 
tCodecLeafIndex FindStructIndex (const char *strStructName) const
 Legacy: Retrieves the leaf index of the first element in the given element path. 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 ddl::codec::FactoryElement< sample_codec_factory_access< const cSampleCodecFactory > > tElement
 Iterator value element type for the factory to get element information. More...
 
typedef ddl::codec::ChildElements< sample_codec_factory_access< const cSampleCodecFactory > > tElements
 Iterator container to iterate all elements of the factory. More...
 
- Public Types inherited from cCodecFactoryLegacy
typedef ddl::StructElement DefinedStructElementType
 type definition for the old access_element API.
 
- Static Public Member Functions inherited from cCodecFactoryLegacy
static const char * GetStaticStructElementName (const ddl::StructElement *pElement)
 Legacy helper funtion to support old adtf_ddl::element_access::find_* functions. More...
 
- 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::osborn::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 Qt5 Media Description Display for an example usage.

Definition at line 33 of file codec_sample_streamer.h.

Member Function Documentation

◆ GetLastDecoder() [1/2]

bool GetLastDecoder ( 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 121 of file codec_sample_streamer.h.

◆ GetLastDecoder() [2/2]

bool GetLastDecoder ( 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 134 of file codec_sample_streamer.h.

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

◆ GetNextDecoder() [1/2]

bool GetNextDecoder ( 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 83 of file codec_sample_streamer.h.

◆ GetNextDecoder() [2/2]

bool GetNextDecoder ( 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 96 of file codec_sample_streamer.h.

References adtf::streaming::flash::get_sample_time(), IS_FAILED, cSampleDecoderBase::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 72 of file codec_sample_streamer.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 55 of file codec_sample_streamer.h.