mirror of https://bitbucket.org/ausocean/av.git
codec/h264/h264dec: commenting for NAL uni syntax structure fields
This commit is contained in:
parent
865c1676da
commit
6779fa3cb6
|
@ -19,13 +19,29 @@ import (
|
||||||
|
|
||||||
// MVCExtension describes a NAL unit header multiview video coding extension, as
|
// MVCExtension describes a NAL unit header multiview video coding extension, as
|
||||||
// defined in section H.7.3.1.1 of the specifications.
|
// defined in section H.7.3.1.1 of the specifications.
|
||||||
|
// Semantics of fields are specified in section H.7.4.1.1.
|
||||||
type MVCExtension struct {
|
type MVCExtension struct {
|
||||||
|
// non_idr_flag, if true indicates that access unit is not IDR.
|
||||||
NonIdrFlag bool
|
NonIdrFlag bool
|
||||||
|
|
||||||
|
// priority_id, indicates priority of NAL unit. A lower value => higher priority.
|
||||||
PriorityID int
|
PriorityID int
|
||||||
|
|
||||||
|
// view_id, specifies a view identifier for the unit. Units with identical
|
||||||
|
// view_id are in the same view.
|
||||||
ViewID int
|
ViewID int
|
||||||
|
|
||||||
|
// temporal_id, temporal identifier for the unit.
|
||||||
TemporalID int
|
TemporalID int
|
||||||
|
|
||||||
|
// anchor_pic_flag, if true access unit is an anchor access unit.
|
||||||
AnchorPicFlag bool
|
AnchorPicFlag bool
|
||||||
|
|
||||||
|
// inter_view_flag, if false current view component not used for inter-view
|
||||||
|
// prediction elsewhere in access unit.
|
||||||
InterViewFlag bool
|
InterViewFlag bool
|
||||||
|
|
||||||
|
// reserved_one_bit, always 1 (ignored by decoders)
|
||||||
ReservedOneBit int
|
ReservedOneBit int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,12 +92,26 @@ func NewMVCExtension(br *bits.BitReader) (*MVCExtension, error) {
|
||||||
|
|
||||||
// ThreeDAVCExtension describes a NAL unit header 3D advanced video coding
|
// ThreeDAVCExtension describes a NAL unit header 3D advanced video coding
|
||||||
// extension, as defined in section J.7.3.1.1 of the specifications.
|
// extension, as defined in section J.7.3.1.1 of the specifications.
|
||||||
|
// For field semantics see section J.7.4.1.1.
|
||||||
type ThreeDAVCExtension struct {
|
type ThreeDAVCExtension struct {
|
||||||
|
// view_idx, specifies the order index for the NAL i.e. view_id = view_id[view_idx].
|
||||||
ViewIdx int
|
ViewIdx int
|
||||||
|
|
||||||
|
// dpeth_flag, if true indicates NAL part of a depth view component, otherwise
|
||||||
|
// a texture view component.
|
||||||
DepthFlag bool
|
DepthFlag bool
|
||||||
|
|
||||||
|
// non_idr_flag, if true indicates that access unit is not IDR.
|
||||||
NonIdrFlag bool
|
NonIdrFlag bool
|
||||||
|
|
||||||
|
// temporal_id, temporal identifier for the unit.
|
||||||
TemporalID int
|
TemporalID int
|
||||||
|
|
||||||
|
// anchor_pic_flag, if true access unit is an anchor access unit.
|
||||||
AnchorPicFlag bool
|
AnchorPicFlag bool
|
||||||
|
|
||||||
|
// inter_view_flag, if false current view component not used for inter-view
|
||||||
|
// prediction elsewhere in access unit.
|
||||||
InterViewFlag bool
|
InterViewFlag bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,16 +157,43 @@ func NewThreeDAVCExtension(br *bits.BitReader) (*ThreeDAVCExtension, error) {
|
||||||
|
|
||||||
// SVCExtension describes a NAL unit header scalable video coding extension, as
|
// SVCExtension describes a NAL unit header scalable video coding extension, as
|
||||||
// defined in section G.7.3.1.1 of the specifications.
|
// defined in section G.7.3.1.1 of the specifications.
|
||||||
|
// For field semantics see section G.7.4.1.1.
|
||||||
type SVCExtension struct {
|
type SVCExtension struct {
|
||||||
|
// idr_flag, if true the current coded picture is an IDR picture when
|
||||||
|
// dependency_id == max(dependency_id) in the coded picture.
|
||||||
IdrFlag bool
|
IdrFlag bool
|
||||||
|
|
||||||
|
// priority_id, specifies priority identifier for unit.
|
||||||
PriorityID int
|
PriorityID int
|
||||||
|
|
||||||
|
// no_inter_layer_pred_flag, if true inter-layer prediction can't be used for
|
||||||
|
// decoding slice.
|
||||||
NoInterLayerPredFlag bool
|
NoInterLayerPredFlag bool
|
||||||
|
|
||||||
|
// dependency_id, specifies a dependency identifier for the NAL.
|
||||||
DependencyID int
|
DependencyID int
|
||||||
|
|
||||||
|
// quality_id, specifies a quality identifier for the NAL.
|
||||||
QualityID int
|
QualityID int
|
||||||
|
|
||||||
|
// temporal_id, specifiesa temporal identifier for the NAL.
|
||||||
TemporalID int
|
TemporalID int
|
||||||
|
|
||||||
|
// use_ref_base_pic_flag, if true indicates reference base pictures and
|
||||||
|
// decoded pictures are used as references for inter prediction.
|
||||||
UseRefBasePicFlag bool
|
UseRefBasePicFlag bool
|
||||||
|
|
||||||
|
// discardable_flag, if true, indicates current NAL is not used for decoding
|
||||||
|
// dependency representations that are part of the current coded picture or
|
||||||
|
// any subsequent coded picture in decoding order and have a greater
|
||||||
|
// dependency_id value than current NAL.
|
||||||
DiscardableFlag bool
|
DiscardableFlag bool
|
||||||
|
|
||||||
|
// output_flag, affects the decoded picture output and removal processes as
|
||||||
|
// specified in Annex C.
|
||||||
OutputFlag bool
|
OutputFlag bool
|
||||||
|
|
||||||
|
// reserved_three_2bits, equal to 3. Decoders ignore.
|
||||||
ReservedThree2Bits int
|
ReservedThree2Bits int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,16 +259,46 @@ func NewSVCExtension(br *bits.BitReader) (*SVCExtension, error) {
|
||||||
|
|
||||||
// NALUnit describes a network abstraction layer unit, as defined in section
|
// NALUnit describes a network abstraction layer unit, as defined in section
|
||||||
// 7.3.1 of the specifications.
|
// 7.3.1 of the specifications.
|
||||||
|
// Field semantics are defined in section 7.4.1.
|
||||||
type NALUnit struct {
|
type NALUnit struct {
|
||||||
|
// forbidden_zero_bit, always 0.
|
||||||
ForbiddenZeroBit int
|
ForbiddenZeroBit int
|
||||||
|
|
||||||
|
// nal_ref_idc, if not 0 indicates content of NAL contains a sequence parameter
|
||||||
|
// set, a sequence parameter set extension, a subset sequence parameter set,
|
||||||
|
// a picture parameter set, a slice of a reference picture, a slice data
|
||||||
|
// partition of a reference picture, or a prefix NAL preceding a slice of
|
||||||
|
// a reference picture.
|
||||||
RefIdc int
|
RefIdc int
|
||||||
|
|
||||||
|
// nal_unit_type, specifies the type of RBSP data contained in the NAL as
|
||||||
|
// defined in Table 7-1.
|
||||||
Type int
|
Type int
|
||||||
|
|
||||||
|
// svc_extension_flag, indicates whether a nal_unit_header_svc_extension()
|
||||||
|
// (G.7.3.1.1) or nal_unit_header_mvc_extension() (H.7.3.1.1) will follow next
|
||||||
|
// in the syntax structure.
|
||||||
SVCExtensionFlag bool
|
SVCExtensionFlag bool
|
||||||
|
|
||||||
|
// avc_3d_extension_flag, for nal_unit_type = 21, indicates that a
|
||||||
|
// nal_unit_header_mvc_extension() (H.7.3.1.1) or
|
||||||
|
// nal_unit_header_3davc_extension() (J.7.3.1.1) will follow next in syntax
|
||||||
|
// structure.
|
||||||
AVC3DExtensionFlag bool
|
AVC3DExtensionFlag bool
|
||||||
|
|
||||||
|
// nal_unit_header_svc_extension() as defined in section G.7.3.1.1.
|
||||||
SVCExtension *SVCExtension
|
SVCExtension *SVCExtension
|
||||||
|
|
||||||
|
// nal_unit_header_3davc_extension() as defined in section J.7.3.1.1
|
||||||
ThreeDAVCExtension *ThreeDAVCExtension
|
ThreeDAVCExtension *ThreeDAVCExtension
|
||||||
|
|
||||||
|
// nal_unit_header_mvc_extension() as defined in section H.7.3.1.1).
|
||||||
MVCExtension *MVCExtension
|
MVCExtension *MVCExtension
|
||||||
|
|
||||||
|
// emulation_prevention_three_byte, equal to 0x03 and is discarded by decoder.
|
||||||
EmulationPreventionThreeByte byte
|
EmulationPreventionThreeByte byte
|
||||||
|
|
||||||
|
// rbsp_byte, the raw byte sequence payload data for the NAL.
|
||||||
RBSP []byte
|
RBSP []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue