TSDuck v3.40-3963
MPEG Transport Stream Toolkit
|
Abstract base class for AVC data, either access units or structures. More...
#include <tsAbstractVideoData.h>
Public Member Functions | |
AbstractVideoData ()=default | |
Constructor. | |
virtual void | clear () |
Clear all values. | |
virtual std::ostream & | display (std::ostream &stream=std::cout, const UString &margin=UString(), int level=Severity::Info) const =0 |
Display the content of this object to a stream. | |
virtual bool | parse (const uint8_t *addr, size_t size, std::initializer_list< uint32_t > params=std::initializer_list< uint32_t >())=0 |
Parse a memory area containing binary video data of the expected type. | |
Public Attributes | |
bool | valid = false |
Valid flag. | |
Protected Member Functions | |
template<typename INT , typename std::enable_if< std::is_integral< INT >::value >::type * = nullptr> | |
void | disp (std::ostream &out, const UString &margin, const UChar *name, INT n) const |
Display helper for subclasses. | |
template<typename INT , typename std::enable_if< std::is_integral< INT >::value >::type * = nullptr> | |
void | disp (std::ostream &out, const UString &margin, const UChar *name, std::vector< INT > n) const |
Display helper for subclasses. | |
Abstract base class for AVC data, either access units or structures.
Typically used in:
There is no strict encapsulation of data. Each subclass exposes public fields. This base class declares a common interface to parse, display and validate the data.
|
virtual |
Clear all values.
Should be reimplemented by subclasses. The data are marked invalid.
Reimplemented in ts::AbstractAVCAccessUnit, ts::AbstractHEVCAccessUnit, ts::AbstractVideoAccessUnit, ts::AbstractVVCAccessUnit, ts::AVCAccessUnitDelimiter, ts::AVCHRDParameters, ts::AVCSequenceParameterSet, ts::AVCVUIParameters, ts::HEVCAccessUnitDelimiter, ts::HEVCHRDParameters, ts::HEVCProfileTierLevel, ts::HEVCSequenceParameterSet, ts::HEVCShortTermReferencePictureSetList, ts::HEVCVUIParameters, and ts::VVCAccessUnitDelimiter.
|
pure virtual |
Parse a memory area containing binary video data of the expected type.
Must be reimplemented by subclasses. The data are marked as valid or invalid.
[in] | addr | Address of the binary data to parse. |
[in] | size | Size in bytes of the binary data to parse. |
[in] | params | Additional parameters. May be needed by some structures. |
Implemented in ts::AbstractVideoAccessUnit, ts::AbstractVideoStructure, ts::HEVCHRDParameters, ts::HEVCProfileTierLevel, ts::HEVCScalingListData, ts::HEVCShortTermReferencePictureSetList, ts::HEVCVUIParameters, ts::AVCHRDParameters, and ts::AVCVUIParameters.
|
inlineprotected |
Display helper for subclasses.
Display an integer value.
INT | An integer type. |
[in,out] | out | The stream where to print the content. |
[in] | margin | The prefix string on each line. |
[in] | name | A name to display for the value. |
[in] | n | The integer value to display. |
|
inlineprotected |
Display helper for subclasses.
Display a vector of integer value.
INT | An integer type. |
[in,out] | out | The stream where to print the content. |
[in] | margin | The prefix string on each line. |
[in] | name | A name to display for the value. |
[in] | n | The integer values to display. |
|
pure virtualinherited |
Display the content of this object to a stream.
[in,out] | stream | The stream where to print the content. Standard output by default. |
[in] | margin | The prefix string on each line, empty by default. |
[in] | level | Severity level (for instance, Severity::Info or Severity::Debug may display more information). |
Implemented in ts::HEVCHRDParameters, ts::HEVCProfileTierLevel, ts::HEVCScalingListData, ts::HEVCShortTermReferencePictureSetList, ts::ModulationArgs, ts::SignalState, ts::AVCHRDParameters, ts::HEVCAccessUnitDelimiter, ts::HEVCVUIParameters, ts::AVCAccessUnitDelimiter, ts::AVCSequenceParameterSet, ts::AVCVUIParameters, ts::HEVCSequenceParameterSet, and ts::VVCAccessUnitDelimiter.
bool ts::AbstractVideoData::valid = false |
Valid flag.
Other fields are significant only if valid is true.