ADTF
Loading...
Searching...
No Matches
adtf::mediadescription::osborn::md_sample_data_factory< T > Class Template Reference

#include <md_sample_data.h>

Public Member Functions

 md_sample_data_factory (md_sample_data_factory &&)=default
 
md_sample_data_factoryoperator= (md_sample_data_factory &&)=default
 
 md_sample_data_factory (const adtf::ucom::ant::iobject_ptr< const adtf::streaming::IStreamType > &pStreamType)
 
 md_sample_data_factory (const adtf::streaming::IStreamType &oStreamType)
 
 md_sample_data_factory (const char *strStructName, const char *strDefinition)
 
md_sample_data< T > Make (const adtf::ucom::ant::iobject_ptr< const adtf::streaming::ant::ISample > &pSample)
 

Detailed Description

template<typename T>
class adtf::mediadescription::osborn::md_sample_data_factory< T >

This factory provides instances of md_sample_data for incoming samples.

Make sure that you created a header containing the struct definition and the required template specializations of Description and md_sample_data with the adtf_mdgen.

Example Usage

test_struct.description:

<structs>
<struct name="tChild" alignment="4" version="1">
<element name="nA" type="tUInt32" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="0" byteorder="LE"/>
</element>
<element name="nB" type="tUInt32" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="4" byteorder="LE"/>
</element>
</struct>
<struct name="tTest" alignment="4" version="1">
<element name="nValue" type="tUInt32" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="0" byteorder="LE"/>
</element>
<element name="aArray" type="tUInt32" arraysize="2">
<deserialized alignment="4"/>
<serialized bytepos="4" byteorder="LE"/>
</element>
<element name="sChild" type="tChild" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="12" byteorder="LE"/>
</element>
<element name="aChildren" type="tChild" arraysize="2">
<deserialized alignment="4"/>
<serialized bytepos="20" byteorder="LE"/>
</element>
</struct>
</structs>
// include the generated header
#include <test_struct.h>
class cMyFilter: public adtf::filter::cFilter
{
public:
ADTF_CLASS_ID_NAME(cMyFilter, "my_filter.filter.example.cid", "My Filter");
cMyFilter()
{
}
{
}
{
auto oSampleData = m_oSampleDataFactory.Make(pSample);
LOG_INFO("received a sample:\n"
" nValue = %u\n"
" aArray[0] = %u\n"
" sChild.nA = %u\n"
" aChildren[0].nA = %u",
oSampleData.nValue(),
oSampleData.aArray()[0],
oSampleData.sChild().nA(),
oSampleData.aChildren()[0].nB());
}
private:
};
#define LOG_INFO(...)
Logs an info message.
Definition log.h:388
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
#define RETURN_NOERROR
Return status ERR_NOERROR, which requires the calling function's return type to be tResult.
Definition result.h:29
#define ADTF_CLASS_ID_NAME(_class, _strcid, _strclabel)
Definition class_id.h:33
Definition filter.h:289
virtual tResult ProcessInput(base::flash::tNanoSeconds tmTrigger, streaming::flash::ISampleReader *pReader)
ReaderType * CreateInputPin(const char *strName, bool bDataInTrigger=true, bool bForwardTriggerViaOutputPins=true)
Definition graph_object.h:1215
virtual tResult AcceptType(streaming::flash::ISampleReader *pReader, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType)
Definition samplestreamer_intf.h:188
ant::iobject_ptr< T > iobject_ptr
Alias always bringing the latest version of ant::iobject_ptr into scope.
Definition object_ptr_intf.h:437
Definition md_sample_data.h:54

Constructor & Destructor Documentation

◆ md_sample_data_factory() [1/3]

Initializes the factory with a stream type that has a media description set.

Parameters
[in]pStreamTypeA stream type.
Exceptions
ERR_NOT_FOUNDIf a struct element was not defined in the media description of the stream type.

◆ md_sample_data_factory() [2/3]

Initializes the factory with a stream type that has a media description set.

Parameters
[in]oStreamTypeA stream type.
Exceptions
ERR_NOT_FOUNDIf a struct element was not defined in the media description of the stream type.

◆ md_sample_data_factory() [3/3]

template<typename T>
adtf::mediadescription::osborn::md_sample_data_factory< T >::md_sample_data_factory ( const char * strStructName,
const char * strDefinition )
inline

Initializes the factory with a media description.

Parameters
[in]strStructNameThe name of the structure.
[in]strDefinitionThe description defining the structure.
Exceptions
ERR_NOT_FOUNDIf a struct element was not defined in the media description.

Member Function Documentation

◆ Make()

Returns a data access wrapper for the given sample.

Parameters
[in]pSampleThe sample that you want to access.
Returns
A sample data wrapper. This will keep a reference to the sample and its buffer as long as it exists.

The documentation for this class was generated from the following file: