TSDuck v3.40-3963
MPEG Transport Stream Toolkit
|
Base class for video access units, aka NALunits. More...
#include <tsAbstractVideoAccessUnit.h>
Public Types | |
using | SuperClass = AbstractVideoData |
Unified name for superclass. | |
Public Member Functions | |
AbstractVideoAccessUnit ()=default | |
Constructor. | |
virtual void | clear () override |
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 *, size_t, std::initializer_list< uint32_t >=std::initializer_list< uint32_t >()) override |
Parse a memory area containing binary video data of the expected type. | |
Public Attributes | |
size_t | rbsp_trailing_bits_count = 0 |
rbsp_trailing_bits_count | |
bool | rbsp_trailing_bits_valid = false |
rbsp_trailing_bits_valid | |
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. | |
virtual bool | parseBody (AVCParser &parser, std::initializer_list< uint32_t > params=std::initializer_list< uint32_t >())=0 |
Parse the body of the access unit up to but not including the rbsp_trailing_bits. | |
virtual bool | parseHeader (const uint8_t *&addr, size_t &size, std::initializer_list< uint32_t > params=std::initializer_list< uint32_t >())=0 |
Parse the header of the access unit. | |
Base class for video access units, aka NALunits.
|
overridevirtual |
Clear all values.
Should be reimplemented by subclasses. The data are marked invalid.
Reimplemented from ts::AbstractVideoData.
Reimplemented in ts::AbstractAVCAccessUnit, ts::AbstractHEVCAccessUnit, ts::AbstractVVCAccessUnit, ts::AVCAccessUnitDelimiter, ts::AVCSequenceParameterSet, ts::HEVCAccessUnitDelimiter, ts::HEVCSequenceParameterSet, and ts::VVCAccessUnitDelimiter.
|
overridevirtual |
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. |
Implements ts::AbstractVideoData.
|
protectedpure virtual |
Parse the header of the access unit.
Must be reimplemented by subclasses. The data are marked as valid or invalid.
[in,out] | addr | Address of the binary data to parse. Adjusted after header. |
[in,out] | size | Size in bytes of the binary data to parse. Adjusted as remaining size after header. |
[in] | params | Additional parameters. May be needed by some structures. |
Implemented in ts::AbstractAVCAccessUnit, ts::AbstractHEVCAccessUnit, and ts::AbstractVVCAccessUnit.
|
protectedpure virtual |
Parse the body of the access unit up to but not including the rbsp_trailing_bits.
Must be reimplemented by subclasses. The data are marked as valid or invalid.
[in,out] | parser | The parser of an AVC-like video stream. |
[in] | params | Additional parameters. May be needed by some structures. |
Implemented in ts::AVCSequenceParameterSet, ts::HEVCSequenceParameterSet, ts::AVCAccessUnitDelimiter, ts::HEVCAccessUnitDelimiter, and ts::VVCAccessUnitDelimiter.
|
inlineprotectedinherited |
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. |
|
inlineprotectedinherited |
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.
|
inherited |
Valid flag.
Other fields are significant only if valid is true.