Base class for AVC access units, aka NALunits. More...
Public Types | |
typedef AbstractVideoAccessUnit | SuperClass |
Unified name for superclass. | |
Public Member Functions | |
AbstractAVCAccessUnit () | |
Constructor. | |
virtual void | clear () override |
Clear all values. More... | |
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. More... | |
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. More... | |
Public Attributes | |
uint8_t | forbidden_zero_bit |
See ISO/IEC 14496-10 section 7.3.1. | |
uint8_t | nal_ref_idc |
See ISO/IEC 14496-10 section 7.3.1. | |
uint8_t | nal_unit_type |
See ISO/IEC 14496-10 section 7.3.1. | |
size_t | rbsp_trailing_bits_count |
rbsp_trailing_bits_count | |
bool | rbsp_trailing_bits_valid |
rbsp_trailing_bits_valid | |
bool | valid |
Valid flag. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual bool | parseHeader (const uint8_t *&, size_t &, std::initializer_list< uint32_t >=std::initializer_list< uint32_t >()) override |
Parse the header of the access unit. More... | |
Base class for AVC access units, aka NALunits.
|
overridevirtual |
Clear all values.
Should be reimplemented by subclasses. The data are marked invalid.
Reimplemented from ts::AbstractVideoAccessUnit.
Reimplemented in ts::AVCSequenceParameterSet, and ts::AVCAccessUnitDelimiter.
|
overrideprotectedvirtual |
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. |
Implements ts::AbstractVideoAccessUnit.
|
overridevirtualinherited |
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 virtualinherited |
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::VVCAccessUnitDelimiter, ts::HEVCAccessUnitDelimiter, ts::AVCAccessUnitDelimiter, ts::HEVCSequenceParameterSet, and ts::AVCSequenceParameterSet.
|
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::VVCAccessUnitDelimiter, ts::HEVCSequenceParameterSet, ts::AVCVUIParameters, ts::AVCSequenceParameterSet, ts::AVCAccessUnitDelimiter, ts::HEVCVUIParameters, ts::HEVCAccessUnitDelimiter, ts::AVCHRDParameters, ts::SignalState, ts::ModulationArgs, ts::HEVCShortTermReferencePictureSetList, ts::HEVCScalingListData, ts::HEVCProfileTierLevel, and ts::HEVCHRDParameters.
|
inherited |
Valid flag.
Other fields are significant only if valid is true.