The result of writing AV1 data into bit stream.
The writing succeeded
The input data to write is invalid
The output does not have enough size
An general error occurred when writing
Parameters of Constrained Directional Enhancement Filter (CDEF).
controls the amount of damping in the deringing filter.
specifies the number of bits needed to specify which CDEF filter to apply.
specify the strength of the primary filter (Y component)
specify the strength of the secondary filter (Y component).
specify the strength of the primary filter (UV components).
specify the strength of the secondary filter (UV components).
Unknown (in this case the source video transfer
function must be signaled outside the AV1 bitstream).
Horizontally co-located with (0, 0) luma sample,
vertical position in the middle between two luma samples.
co-located with (0, 0) luma sample.
For future use.
syntax element which, together with @seq_profile, determine the bit depth.
is syntax elements which, together with @seq_profile and @high_bitdepth,
determines the bit depth.
equal to 1 indicates that the video does not contain U and V color planes.
@mono_chrome equal to 0 indicates that the video contains Y, U, and V color planes.
equal to 1 specifies that color_primaries,
@transfer_characteristics, and @matrix_coefficients are present.
@color_description_present_flag equal to 0 specifies that @color_primaries,
@transfer_characteristics and @matrix_coefficients are not present.
is an integer that is defined by the "Color primaries" section of
ISO/IEC 23091-4/ITU-T H.273.
is an integer that is defined by the "Transfer characteristics"
section of ISO/IEC 23091-4/ITU-T H.273.
is an integer that is defined by the "Matrix coefficients" section
of ISO/IEC 23091-4/ITU-T H.273.
is a binary value that is associated with the VideoFullRangeFlag variable
specified in ISO/IEC 23091-4/ITU-T H.273. color range equal to 0 shall be referred to
as the studio swing representation and color range equal to 1 shall be referred to as
the full swing representation for all intents relating to this specification.
@subsampling_x, @subsampling_y: specify the chroma subsampling format. If
@matrix_coefficients is equal to GST_AV1_MC_IDENTITY, it is a requirement of bitstream
conformance that @subsampling_x is equal to 0 and @subsampling_y is equal to 0.
@chroma_sample_position specifies the sample position for subsampled streams:
equal to 1 indicates that the U and V planes may have separate
delta quantizer values. @separate_uv_delta_q equal to 0 indicates that the U and V
planes will share the same delta quantizer value.
BT.709
Unspecified
BT.470 System M (historical)
BT.470 System B, G (historical),
BT.601
SMPTE 240
Generic film (color filters using illuminant C,
BT.2020, BT.2100,
SMPTE 428 (CIE 1921 XYZ),
SMPTE RP 431-2
SMPTE EG 432-1
EBU Tech. 3213-E
plus 1 specifies the length of the
@decoder_buffer_delay and the @encoder_buffer_delay syntax elements,
in bits.
is the number of time units of a decoding clock
operating at the frequency @time_scale Hz that corresponds to one increment
of a clock tick counter.
plus 1 specifies the length of the
@buffer_removal_time syntax element, in bits.
plus 1 specifies the length of the
@frame_presentation_time syntax element, in bits.
equal to 1 specifies that film grain should be added to this frame.
apply_grain equal to 0 specifies that film grain should not be added.
specifies the starting value for the pseudo-random numbers used during film
grain synthesis.
equal to 1 means that a new set of parameters should be sent. @update_grain
equal to 0 means that the previous set of parameters should be used.
indicates which reference frame contains the film grain
parameters to be used for this frame.
specifies the number of points for the piece-wise linear scaling function
of the luma component. It is a requirement of bitstream conformance that @num_y_points is
less than or equal to 14.
represents the x (luma value) coordinate for the i-th point of the
piecewise linear scaling function for luma component. The values are signaled on the
scale of 0..255. (In case of 10 bit video, these values correspond to luma values divided
by 4. In case of 12 bit video, these values correspond to luma values divided by 16.)
If i is greater than 0, it is a r equirement of bitstream conformance that
@point_y_value[ i ] is greater than @point_y_value[ i - 1 ] (this ensures the x coordinates
are specified in increasing order).
represents the scaling (output) value for the i-th point of the
piecewise linear scaling function for luma component.
specifies that the chroma scaling is inferred from the luma scaling.
specifies the number of points for the piece-wise linear scaling function
of the cb component. It is a requirement of bitstream conformance that @num_cb_points is
less than or equal to 10.
represents the x coordinate for the i-th point of the piece-wise linear
scaling function for cb component. The values are signaled on the scale of 0..255. If i
is greater than 0, it is a requirement of bitstream conformance that point_cb_value[ i ]
is greater than point_cb_value[ i - 1 ].
represents the scaling (output) value for the i-th point of the
piecewise linear scaling function for cb component.
specifies represents the number of points for the piece-wise linear scaling
function of the cr component. It is a requirement of bitstream conformance that
num_cr_points is less than or equal to 10. If subsampling_x is equal to 1 and
@subsampling_y is equal to 1 and num_cb_points is equal to 0, it is a requirement of
bitstream conformance that num_cr_points is equal to 0. If @subsampling_x is equal to 1
and @subsampling_y is equal to 1 and @num_cb_points is not equal to 0, it is a requirement
of bitstream conformance that @num_cr_points is not equal to 0.
represents the x coordinate for the i-th point of the piece-wise linear
scaling function for cr component. The values are signaled on the scale of 0..255. If i
is greater than 0, it is a requirement of bitstream conformance that @point_cr_value[ i ]
is greater than @point_cr_value[ i - 1 ].
represents the scaling (output) value for the i-th point of the
piecewise linear scaling function for cr component.
represents the shift - 8 applied to the values of the chroma
component. The @grain_scaling_minus_8 can take values of 0..3 and determines the range and
quantization step of the standard deviation of film grain.
specifies the number of auto-regressive coefficients for luma and chroma.
specifies auto-regressive coefficients used for the Y plane.
specifies auto-regressive coefficients used for the U plane.
specifies auto-regressive coefficients used for the V plane.
specifies the range of the auto-regressive coefficients. Values
of 0, 1, 2, and 3 correspond to the ranges for auto-regressive coefficients of [-2, 2),
[-1, 1), [-0.5, 0.5) and [-0.25, 0.25) respectively.
specifies how much the Gaussian random numbers should be scaled down
during the grain synthesis process.
represents a multiplier for the cb component used in derivation of the input
index to the cb component scaling function.
represents a multiplier for the average luma component used in derivation
of the input index to the cb component scaling function.
represents an offset used in derivation of the input index to the cb component
scaling function.
represents a multiplier for the cr component used in derivation of the input
index to the cr component scaling function.
represents a multiplier for the average luma component used in derivation
of the input index to the cr component scaling function.
represents an offset used in derivation of the input index to the cr component
scaling function.
equal to 1 indicates that the overlap between film grain blocks shall be
applied. overlap_flag equal to 0 indicates that the overlap between film grain blocks
shall not be applied.
equal to 1 indicates that clipping to the restricted (studio)
range shall be applied to the sample values after adding the film grain (see the
semantics for color_range for an explanation of studio swing). clip_to_restricted_range
equal to 0 indicates that clipping to the full range shall be applied to the sample
values after adding the film grain.
equal to 1, indicates the frame indexed by @frame_to_show_map_idx is
to be output; @show_existing_frame equal to 0 indicates that further processing is required.
If @obu_type is equal to %GST_AV1_OBU_FRAME, it is a requirement of bitstream conformance that
@show_existing_frame is equal to 0.
specifies the frame to be output. It is only available if
@show_existing_frame is 1.
specifies the presentation time of the frame in clock ticks
DispCT counted from the removal time of the last frame with frame_type equal to KEY_FRAME
for the operating point that is being decoded. The syntax element is signaled as a fixed
length unsigned integer with a length in bits given by
@frame_presentation_time_length_minus_1 + 1. The @frame_presentation_time is the remainder
of a modulo 1 << (@frame_presentation_time_length_minus_1 + 1) counter.
is a syntax element used by the decoder model. It does not affect
the decoding process.
provides the frame id number for the frame to output. It is a requirement
of bitstream conformance that whenever @display_frame_id is read, the value matches
@ref_frame_id[ @frame_to_show_map_idx ] (the value of @current_frame_id at the time that the
frame indexed by @frame_to_show_map_idx was stored), and that
@ref_valid[ @frame_to_show_map_idx ] is equal to 1. It is a requirement of bitstream
conformance that the number of bits needed to read @display_frame_id does not exceed 16.
This is equivalent to the constraint that idLen <= 16
specifies the type of the frame.
equal to 1 specifies that this frame should be immediately output once decoded.
show_frame equal to 0 specifies that this frame should not be immediately output. (It may
be output later if a later uncompressed header uses @show_existing_frame equal to 1).
equal to 1 specifies that the frame may be output using the
@show_existing_frame mechanism. showable_frame equal to 0 specifies that this frame will
not be output using the @show_existing_frame mechanism. It is a requirement of bitstream
conformance that when @show_existing_frame is used to show a previous frame, that the
value of @showable_frame for the previous frame was equal to 1. It is a requirement of
bitstream conformance that a particular showable frame is output via the
@show_existing_frame mechanism at most once.
equal to 1 indicates that error resilient mode is enabled;
@error_resilient_mode equal to 0 indicates that error resilient mode is disabled.
specifies whether the CDF update in the symbol decoding process should
be disabled.
equal to 1 indicates that intra blocks may use palette encoding;
@allow_screen_content_tools equal to 0 indicates that palette encoding is never used.
equal to 1 specifies that motion vectors will always be integers.
@force_integer_mv equal to 0 specifies that motion vectors can contain fractional bits.
specifies the frame id number for the current frame. Frame id numbers
are additional information that do not affect the decoding process, but provide decoders
with a way of detecting missing reference frames so that appropriate action can be taken.
equal to 0 specifies that the frame size is equal to the size in
the sequence header. @frame_size_override_flag equal to 1 specifies that the frame size
will either be specified as the size of one of the reference frames, or computed from the
@frame_width_minus_1 and @frame_height_minus_1 syntax elements.
is used to compute order_hint.
specifies which reference frame contains the CDF values and other state
that should be loaded at the start of the frame.
equal to 1 specifies that @buffer_removal_time is present
in the bitstream. @buffer_removal_time_present_flag equal to 0 specifies that
@buffer_removal_time is not present in the bitstream.
specifies the frame removal time in units of DecCT clock ticks
counted from the removal time of the last frame with frame_type equal to KEY_FRAME for
operating point opNum. @buffer_removal_time is signaled as a fixed length unsigned integer
with a length in bits given by @buffer_removal_time_length_minus_1 + 1. @buffer_removal_time
is the remainder of a modulo 1 << ( @buffer_removal_time_length_minus_1 + 1 ) counter.
contains a bitmask that specifies which reference frame slots will be
updated with the current frame after it is decoded. If @frame_type is equal to
%GST_AV1_INTRA_ONLY_FRAME, it is a requirement of bitstream conformance that
@refresh_frame_flags is not equal to 0xff.
specifies the expected output order hint for each reference buffer.
equal to 1 indicates that intra block copy may be used in this frame.
allow_intrabc equal to 0 indicates that intra block copy is not allowed in this frame.
equal to 1 indicates that only two reference frames are
explicitly signaled. frame_refs_short_signaling equal to 0 indicates that all reference
frames are explicitly signaled.
specifies the reference frame to use for LAST_FRAME.
specifies the reference frame to use for GOLDEN_FRAME.
@ref_frame_idx[i]: specifies which reference frames are used by inter frames.
@delta_frame_id_minus_1 is used to calculate @delta_frame_id.
equal to 0 specifies that motion vectors are specified to quarter
pel precision; @allow_high_precision_mv equal to 1 specifies that motion vectors are
specified to eighth pel precision.
equal to 0 specifies that only the SIMPLE motion mode will be used.
equal to 1 specifies that motion vector information from a previous
frame can be used when decoding the current frame. @use_ref_frame_mvs equal to 0 specifies
that this information will not be used.
equal to 1 indicates that the end of frame CDF update is
disabled; @disable_frame_end_update_cdf equal to 0 indicates that the end of frame CDF
update is enabled.
equal to 1 indicates that the syntax element @motion_mode may be
present. @allow_warped_motion equal to 0 indicates that the syntax element motion_mode
will not be present (this means that LOCALWARP cannot be signaled if @allow_warped_motion
is equal to 0).
equal to 1 specifies that the frame is restricted to a reduced subset of
the full set of transform types.
equal to 0 means that the render width and height are
inferred from the frame width and height. @render_and_frame_size_different equal to 1
means that the render width and height are explicitly coded in the bitstream.
equal to 0 indicates that no upscaling is needed. @use_superres equal to 1
indicates that upscaling is needed.
equal to 1 indicates that the filter selection is signaled at the
block level; @is_filter_switchable equal to 0 indicates that the filter selection is
signaled at the frame level.
a #GstAV1InterpolationFilter that specifies the filter selection used
for performing inter prediction.
a #GstAV1LoopFilterParams holding the loop filter parameters.
a #GstAV1QuantizationParams holding the quantization parameters.
a #GstAV1SegmentationParams holding the segmentation parameters.
a #GstAV1TileInfo holding the tile info.
a #GstAV1CDEFParams holding the CDEF paramters.
a #GstAV1LoopRestorationParams holding the loop restoration parameters.
is used to compute TxMode.
equal to 1 specifies that the syntax element @skip_mode will be coded
in the bitstream. @skip_mode_present equal to 0 specifies that @skip_mode will not be used
for this frame.
equal to 1 specifies that the mode info for inter blocks contains the
syntax element comp_mode that indicates whether to use single or compound reference
prediction. Reference_select equal to 0 specifies that all interblocks will use single
prediction.
a #GstAV1GlobalMotionParams holding the global motion parameters.
a #GstAV1FilmGrainParams holding the Film Grain parameters.
is the denominator of a fraction that specifies the ratio between the
superblock width before and after upscaling.
if equal to 0 indicating that this frame may use inter prediction.
specifies the expected output order for each reference frame.
specifies the intended direction of the motion vector in time for
each reference frame.
is a variable that is equal to 1 when all segments use lossless encoding.
is a variable that is equal to 1 when @coded_lossless is equal to 1 and
@frame_width is equal to @upscaled_width. This indicates that the frame is fully lossless
at the upscaled resolution.
whether the segmentation is lossless.
the segmentation's qm level.
the upscaled width.
the frame width.
the frame height.
the frame width to be rendered.
the frame height to be rendered.
specifies how the transform size is determined.
specifies the frames to use for compound prediction when @skip_mode is 1.
specifies the frame id for each frame used for reference. (Since: 1.24)
specifies the global motion parameters of the reference. (Since: 1.24)
a #GstAV1TileGroupOBU holding tile_group data.
a #GstAV1FrameHeaderOBU holding frame_header data.
no filtering is applied
Wiener filter process is invoked
self guided filter proces is invoked
restoration filter is swichtable
Key Frame
InterFrame
Intra-Only Frame
Switch Frame
specifies whether global motion parameters are present for a particular
reference frame.
specifies whether a particular reference frame uses rotation and zoom
global motion.
specifies whether a particular reference frame uses translation
global motion.
is set equal to SavedGmParams[ frame_to_show_map_idx ][ ref ][ j ] for
ref = LAST_FRAME..ALTREF_FRAME, for j = 0..5.
specifying the type of global motion.
whether this global motion parameters is invalid. (Since: 1.20)
Eighttap
Eighttap Smooth
Eighttap Sharp
Bilinear
Filter is swichtable
is an array containing loop filter strength values. Different loop
filter strength values from the array are used depending on the image plane being
filtered, and the edge direction (vertical or horizontal) being filtered.
indicates the sharpness level. The @loop_filter_level and
@loop_filter_sharpness together determine when a block edge is filtered, and by how much
the filtering can change the sample values. The loop filter process is described in AV1
Bitstream Spec. section 7.14.
equal to 1 means that the filter level depends on the mode and
reference frame used to predict a block. @loop_filter_delta_enabled equal to 0 means that
the filter level does not depend on the mode and reference frame.
equal to 1 means that the bitstream contains additional syntax
elements that specify which mode and reference frame deltas are to be updated.
@loop_filter_delta_update equal to 0 means that these syntax elements are not present.
contains the adjustment needed for the filter level based on
the chosen reference frame. If this syntax element is not present in the bitstream,
it maintains its previous value.
contains the adjustment needed for the filter level based on
the chosen mode. If this syntax element is not present in the bitstream, it maintains
its previous value.
specifies whether loop filter delta values are present in the bitstream.
specifies the left shift which should be applied to decoded loop filter
delta values.
equal to 1 specifies that separate loop filter deltas are sent for
horizontal luma edges, vertical luma edges, the U edges, and the V edges. @delta_lf_multi
equal to 0 specifies that the same loop filter delta is used for all edges.
specifies if the luma restoration size should be halved.
is only present for 4:2:0 formats and specifies if the chroma size should be
half the luma size.
specifies the type of restoration used for each plane.
specifies the size of loop restoration units in units of samples in
the current plane.
indicates if any plane uses loop restoration.
Identity matrix
BT.709
Unspecified
For future use
US FCC 73.628
BT.470 System B, G (historical)
BT.601
SMPTE 240 M
YCgCo
BT.2020 non-constant luminance, BT.2100 YCbCr
BT.2020 constant luminance
SMPTE ST 2085 YDzDx
Chromaticity-derived non-constant luminance
Chromaticity-derived constant luminancw
BT.2100 ICtCp
High Dynamic Range content light level syntax metadata.
specifies the maximum content light level as specified in CEA-861.3, Appendix A.
specifies the maximum frame-average light level as specified in CEA-861.3, Appendix A.
High Dynamic Range mastering display color volume metadata.
specifies a 0.16 fixed-point X chromaticity coordinate as
defined by CIE 1931, where i = 0,1,2 specifies Red, Green, Blue respectively.
specifies a 0.16 fixed-point Y chromaticity coordinate as
defined by CIE 1931, where i = 0,1,2 specifies Red, Green, Blue respectively.
specifies a 0.16 fixed-point white X chromaticity coordinate
as defined by CIE 1931.
specifies a 0.16 fixed-point white Y chromaticity coordinate
as defined by CIE 1931.
is a 24.8 fixed-point maximum luminance, represented in candelas per
square meter.
is a 18.14 fixed-point minimum luminance, represented in candelas per
square meter.
shall be a byte having a value specified as a country code by
Annex A of Recommendation ITU-T T.35.
shall be bytes containing data registered as specified in
Recommendation ITU-T T.35.
type of metadata
The scalability metadata OBU is intended for use by intermediate
processing entities that may perform selective layer elimination.
indicates the picture prediction structure of the bitstream.
indicates the number of spatial layers present in the video
sequence minus one.
indicates when set to 1 that the
@spatial_layer_max_width and @spatial_layer_max_height parameters are present for each of
the (@spatial_layers_cnt_minus_1 + 1) layers, or that it they are not present when set to 0.
indicates when set to 1 that the
spatial_layer_ref_id is present for each of the (@spatial_layers_cnt_minus_1 + 1) layers,
or that it is not present when set to 0.
indicates when set to 1 that the temporal
dependency information is present, or that it is not when set to 0.
specifies the maximum frame width for the frames with
@spatial_id equal to i. This number must not be larger than @max_frame_width_minus_1 + 1.
specifies the maximum frame height for the frames with
@spatial_id equal to i. This number must not be larger than @max_frame_height_minus_1 + 1.
specifies the @spatial_id value of the frame within the current
temporal unit that the frame of layer i uses for reference. If no frame within the
current temporal unit is used for reference the value must be equal to 255.
indicates the number of pictures in a temporal picture group. If the
@temporal_group_size is greater than 0, then the scalability structure data allows the
inter-picture temporal dependency structure of the video sequence to be specified. If the
@temporal_group_size is greater than 0, then for @temporal_group_size pictures in the
temporal group, each picture's temporal layer id (@temporal_id), switch up points
(@temporal_group_temporal_switching_up_point_flag and
@temporal_group_spatial_switching_up_point_flag), and the reference picture indices
(@temporal_group_ref_pic_diff) are specified. The first picture specified in a temporal
group must have @temporal_id equal to 0. If the parameter @temporal_group_size is not
present or set to 0, then either there is only one temporal layer or there is no fixed
inter-picture temporal dependency present going forward in the video sequence. Note that
for a given picture, all frames follow the same inter-picture temporal dependency
structure. However, the frame rate of each layer can be different from each other. The
specified dependency structure in the scalability structure data must be for the highest
frame rate layer.
specifies the temporal_id value for the i-th picture in
the temporal group.
is set to 1 if subsequent (in decoding
order) pictures with a @temporal_id higher than @temporal_group_temporal_id[i] do not
depend on any picture preceding the current picture (in coding order) with @temporal_id
higher than @temporal_group_temporal_id[ i ].
is set to 1 if spatial layers of the
current picture in the temporal group (i.e., pictures with a spatial_id higher than zero)
do not depend on any picture preceding the current picture in the temporal group.
indicates the number of reference pictures used by the i-th
picture in the temporal group.
indicates, for the i-th picture in the temporal group,
the temporal distance between the i-th picture and the j-th reference picture used by
the i-th picture. The temporal distance is measured in frames, counting only frames of
identical @spatial_id values.
specifies the method of dropping values of the n_frames syntax element as
specified in AV1 Spec 6.1.1. @counting_type should be the same for all pictures in the
coded video sequence.
equal to 1 indicates that the the @seconds_value, @minutes_value,
@hours_value syntax elements will be present. @full_timestamp_flag equal to 0 indicates
that there are flags to control the presence of these syntax elements.
equal to 0 indicates that the difference between the current value
of clockTimestamp and the value of clockTimestamp computed from the previous set of
timestamp syntax elements in output order can be interpreted as the time difference
between the times of origin or capture of the associated frames or fields.
@discontinuity_flag equal to 1 indicates that the difference between the current value of
clockTimestamp and the value of clockTimestamp computed from the previous set of clock
timestamp syntax elements in output order should not be interpreted as the time difference
between the times of origin or capture of the associated frames or fields.
specifies the skipping of one or more values of @n_frames using the
counting method specified by counting_type.
is used to compute clockTimestamp. When @timing_info_present_flag is equal to 1,
@n_frames shall be less than maxFps, where maxFps is specified by
maxFps = ceil( time_scale / ( 2 * @num_units_in_display_tick ) ).
equal to 1 specifies that @seconds_value and @minutes_flag are present when
@full_timestamp_flag is equal to 0. @seconds_flag equal to 0 specifies that @seconds_value
and @minutes_flag are not present.
is used to compute clockTimestamp and shall be in the range of 0 to 59.
When @seconds_value is not present, its value is inferred to be equal to the value of
@seconds_value for the previous set of clock timestamp syntax elements in decoding order,
and it is required that such a previous @seconds_value shall have been present.
equal to 1 specifies that @minutes_value and @hours_flag are present when
@full_timestamp_flag is equal to 0 and @seconds_flag is equal to 1. @minutes_flag equal to 0
specifies that @minutes_value and @hours_flag are not present.
specifies the value of mm used to compute clockTimestamp and shall be in
the range of 0 to 59, inclusive. When minutes_value is not present, its value is inferred
to be equal to the value of @minutes_value for the previous set of clock timestamp syntax
elements in decoding order, and it is required that such a previous @minutes_value shall
have been present.
equal to 1 specifies that @hours_value is present when @full_timestamp_flag is
equal to 0 and @seconds_flag is equal to 1 and @minutes_flag is equal to 1.
is used to compute clockTimestamp and shall be in the range of 0 to 23,
inclusive. When @hours_value is not present, its value is inferred to be equal to the
value of @hours_value for the previous set of clock timestamp syntax elements in decoding
order, and it is required that such a previous @hours_value shall have been present.
greater than 0 specifies the length in bits of the @time_offset_value
syntax element. @time_offset_length equal to 0 specifies that the @time_offset_value syntax
element is not present. @time_offset_length should be the same for all pictures in the
coded video sequence.
is used to compute clockTimestamp. The number of bits used to represent
@time_offset_value is equal to @time_offset_length. When @time_offset_value is not present,
its value is inferred to be equal to 0.
Reserved 0
Metadata high dynamic range content
light level semantics
Metadata high dynamic range mastering
display color volume semantics
Metadata scalability semantics
Metadata ITUT T35 semantics
Timecode semantics
It is the general representation of AV1 OBU (Open Bitstream
Unit). One OBU include its header and payload.
a #GstAV1OBUHeader OBU Header
the type of data structure contained in the OBU payload.
references the current data chunk that holds the OBU
size of the OBU, not include header size
Collect info for OBU header and OBU extension header if
obu_extension_flag == 1.
the type of data structure contained in the OBU payload.
indicates if OBU header extention is present.
equal to 1 indicates that the obu_size syntax element will be
present. @obu_has_size_field equal to 0 indicates that the @obu_size syntax element
will not be present.
specifies the temporal level of the data contained in the OBU.
specifies the spatial level of the data contained in the OBU.
Defines all the possible OBU types
Reserved 0
Sequence Header OBU
Temporal Delimiter OBU
Frame Header OBU
Tile Group OBU
Metadata OBU
Frame OBU (includes Frame Header and one Tile Group)
Redundant Frame Header OBU
Tile LIst OBU
Reserved 9
Reserved 10
Reserved 11
Reserved 12
Reserved 13
Reserved 14
Padding
specifies the level that the coded video sequence conforms to.
specifies the tier that the coded video sequence conforms to.
contains a bitmask that indicates which spatial and temporal layers should be
decoded. Bit k is equal to 1 if temporal layer k should be decoded (for k between
0 and 7). Bit j+8 is equal to 1 if spatial layer j should be decoded (for j between
0 and 3).
equal to one indicates that there is a decoder model
associated with this operating point. @decoder_model_present_for_this_op equal to zero
indicates that there is not a decoder model associated.
specifies the time interval between the arrival of the first bit
in the smoothing buffer and the subsequent removal of the data that belongs to the
first coded frame for operating point op, measured in units of 1/90000 seconds. The
length of @decoder_buffer_delay is specified by @buffer_delay_length_minus_1 + 1, in bits.
specifies, in combination with @decoder_buffer_delay syntax element,
the first bit arrival time of frames to be decoded to the smoothing buffer.
@encoder_buffer_delay is measured in units of 1/90000 seconds. For a video sequence that
includes one or more random access points the sum of @decoder_buffer_delay and
@encoder_buffer_delay shall be kept constant.
equal to 1 indicates that the smoothing buffer operates in low-delay
mode for operating point op. In low-delay mode late decode times and buffer underflow
are both permitted. @low_delay_mode_flag equal to 0 indicates that the smoothing buffer
operates in strict mode, where buffer underflow is not allowed.
equal to 1 indicates that
@initial_display_delay_minus_1 is specified for this operating. 0 indicates that
@initial_display_delay_minus_1 is not specified for this operating point.
plus 1 specifies, for operating point i, the number of
decoded frames that should be present in the buffer pool before the first presentable
frame is displayed. This will ensure that all presentable frames in the sequence can
be decoded at or before the time that they are scheduled for display.
For more details about the structures, you can refer to the AV1 Bitstream &
Decoding Process Specification V1.0.0
[specification](https://aomediacodec.github.io/av1-spec/av1-spec.pdf)
It offers you bitstream parsing of low overhead bistream format (Section 5)
or Annex B according to the setting of the parser. By calling the function of
gst_av1_parser_reset(), user can switch between bistream mode and Annex B mode.
To retrieve OBUs and parse its headers, you should firstly call the function of
gst_av1_parser_identify_one_obu() to get the OBU type if succeeds or just discard
the data if fails.
Then, depending on the #GstAV1OBUType of the newly parsed #GstAV1OBU,
you should call the differents functions to parse the structure details:
* %GST_AV1_OBU_SEQUENCE_HEADER: gst_av1_parser_parse_sequence_header_obu()
* %GST_AV1_OBU_TEMPORAL_DELIMITER: gst_av1_parser_parse_temporal_delimiter_obu()
* %GST_AV1_OBU_FRAME: gst_av1_parser_parse_frame_obu()
* %GST_AV1_OBU_FRAME_HEADER: gst_av1_parser_parse_frame_header_obu()
* %GST_AV1_OBU_TILE_GROUP: gst_av1_parser_parse_tile_group_obu()
* %GST_AV1_OBU_METADATA: gst_av1_parser_parse_metadata_obu()
* %GST_AV1_OBU_REDUNDANT_FRAME_HEADER: gst_av1_parser_parse_frame_header_obu()
* %GST_AV1_OBU_TILE_LIST: gst_av1_parser_parse_tile_list_obu()
Note: Some parser functions are dependent on information provided in the sequence
header and reference frame's information. It maintains a state inside itself, which
contains all global vars and reference information during the whole parsing process.
Calling gst_av1_parser_reset() or a new sequence's arriving can clear and reset this
inside state.
After successfully handled a frame(for example, decode a frame successfully), you
should call gst_av1_parser_reference_frame_update() to update the parser's inside
state(such as reference information, global segmentation information, etc).
If parser is not %NULL, frees its allocated memory.
It cannot be used afterwards.
the #GstAV1Parser to free
Identify one @obu's type from the incoming data stream. This function
should be called first to know the type of @obu before other parse APIs.
The #GstAV1ParserResult.
the #GstAV1Parser
the data to parse
the size of @data
a #GstAV1OBU to store the identified result
the consumed data size
Parse one frame header @obu based on the @parser context, store the result
in the @frame.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
a #GstAV1FrameHeaderOBU to store the parsed result.
Parse one frame @obu based on the @parser context, store the result
in the @frame.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
a #GstAV1FrameOBU to store the parsed result.
Parse one meta data @obu based on the @parser context.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
a #GstAV1MetadataOBU to store the parsed result.
Parse one sequence header @obu based on the @parser context, store the
result in the @seq_header.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
a #GstAV1SequenceHeaderOBU to store the parsed result.
Parse one temporal delimiter @obu based on the @parser context.
The temporal delimiter is just delimiter and contains no content.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
Parse one tile group @obu based on the @parser context, store the result
in the @tile_group.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
a #GstAV1TileGroupOBU to store the parsed result.
Parse one tile list @obu based on the @parser context, store the result
in the @tile_list. It is for large scale tile coding mode.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1OBU to be parsed
a #GstAV1TileListOBU to store the parsed result.
Update the context of @frame_header to parser's state. This function is
used when we finish one frame's decoding/showing, and need to update info
such as reference, global parameters.
The #GstAV1ParserResult.
the #GstAV1Parser
a #GstAV1FrameHeaderOBU to load
Reset the current #GstAV1Parser's state totally.
the #GstAV1Parser
indicate whether conforms to annex b
Only reset the current #GstAV1Parser's annex b context.
The other part of the state is kept.
the #GstAV1Parser
Set the operating point to filter OBUs.
The #GstAV1ParserResult.
the #GstAV1Parser
the operating point to set
Allocates a new #GstAV1Parser,
a newly-allocated #GstAV1Parser
Defines the result of parser process
successful return
the parser needs more data for one OBU
no need to handle this OBU, skip it
stream error, for example, include invalid bits
no reference, for example, no sequence found
something like invalid parameters
Defines the AV1 profiles
8-bit and 10-bit 4:2:0 and 4:0:0 only.
8-bit and 10-bit 4:4:4.
8-bit and 10-bit 4:2:2, 12-bit 4:0:0 4:2:2 and 4:4:4
unknow AV1 profile
indicates the base frame qindex. This is used for Y AC coefficients and as
the base value for the other quantizers.
equal to 1 indicates that the U and V delta quantizer values are coded
separately. @diff_uv_delta equal to 0 indicates that the U and V delta quantizer values
share a common value.
specifies that the quantizer matrix will be used to compute quantizers.
specifies the level in the quantizer matrix that should be used for luma plane decoding.
specifies the level in the quantizer matrix that should be used for chroma U plane decoding.
specifies the level in the quantizer matrix that should be used for chroma V plane decoding.
specifies whether quantizer index delta values are present in the bitstream.
specifies the left shift which should be applied to decoded quantizer index
delta values.
indicates the Y DC quantizer relative to base_q_idx.
indicates the U DC quantizer relative to base_q_idx.
indicates the U AC quantizer relative to base_q_idx.
indicates the V DC quantizer relative to base_q_idx.
indicates the V AC quantizer relative to base_q_idx.
Intra Frame Reference
Last Reference Frame
Last2 Reference Frame
Last3 Reference Frame
Golden Reference Frame
BWD Reference Frame
Alternative2 Reference Frame
Alternative Reference Frame
Total Reference Frame Number
All the info related to a reference frames.
1 spatial layer, 2 temporal layers
1 spatial layer, 3 temporal layers
2 spatial layer (ratio 2:1), 1 temporal layer,
inter-layer dependency
2 spatial layer (ratio 2:1), 2 temporal layer,
inter-layer dependency
2 spatial layer (ratio 2:1), 3 temporal layer,
inter-layer dependency
2 spatial layer (ratio 2:1), 1 temporal layer
2 spatial layer (ratio 2:1), 2 temporal layer
2 spatial layer (ratio 2:1), 3 temporal layer
2 spatial layer (ratio 1.5:1), 1 temporal layer,
inter-layer dependency
2 spatial layer (ratio 1.5:1), 2 temporal layer,
inter-layer dependency
2 spatial layer (ratio 1.5:1), 3 temporal layer,
inter-layer dependency
2 spatial layer (ratio 1.5:1), 1 temporal layer
2 spatial layer (ratio 1.5:1), 2 temporal layer
2 spatial layer (ratio 1.5:1), 3 temporal layer
Use scalability structure #GstAV1MetadataScalability
equal to 1 indicates that this frame makes use of the segmentation
tool; @segmentation_enabled equal to 0 indicates that the frame does not use segmentation.
equal to 1 indicates that the segmentation map are updated during
the decoding of this frame. @segmentation_update_map equal to 0 means that the segmentation
map from the previous frame is used.
equal to 1 indicates that the updates to the segmentation map
are coded relative to the existing segmentation map. @segmentation_temporal_update equal to
0 indicates that the new segmentation map is coded without reference to the existing
segmentation map.
equal to 1 indicates that new parameters are about to be
specified for each segment. @segmentation_update_data equal to 0 indicates that the
segmentation parameters should keep their existing values.
set to 1 when the feature of segmentation is enabled.
the value of according segmentation feature.
equal to 1 indicates that the segment id will be read before the skip
syntax element. @seg_id_pre_skip equal to 0 indicates that the skip syntax element will be
read first.
indicates the highest numbered segment id that has some enabled feature.
This is used when decoding the segment id to only decode choices corresponding to used
segments.
Defines all the possible OBU types
Level 2.0
Level 2.1
Level 2.2
Level 2.3
Level 3.0
Level 3.1
Level 3.2
Level 3.3
Level 4.0
Level 4.1
Level 4.2
Level 4.3
Level 5.0
Level 5.1
Level 5.2
Level 5.3
Level 6.0
Level 6.1
Level 6.2
Level 6.3
Level 7.0
Level 7.1
Level 7.2
Level 7.3
all valid levels
Maximum parameters
specifies the features that can be used in the coded video sequence
equal to 1 specifies that the bitstream contains only one coded frame.
specifies that the syntax elements not needed by a still
picture are omitted.
specifies the number of bits minus 1 used for transmitting
the frame width syntax elements.
specifies the number of bits minus 1 used for transmitting
the frame height syntax elements.
specifies the maximum frame width minus 1 for the frames
represented by this sequenceheader.
specifies the maximum frame height minus 1 for the frames
represented by this sequenceheader.
specifies whether frame id numbers are present in the bitstream.
specifies the number of bits minus 2 used to encode
delta_frame_id syntax elements.
is used to calculate the number of bits used to
encode the frame_id syntax element.
when equal to 1, indicates that superblocks contain 128x128 luma
samples. When equal to 0, it indicates that superblocks contain 64x64 luma samples.
(The number of contained chroma samples depends on @subsampling_x and @subsampling_y).
equal to 1 specifies that the @use_filter_intra syntax element may
be present. @enable_filter_intra equal to 0 specifies that the @use_filter_intra syntax
element will not be present.
specifies whether the intra edge filtering process should be enabled.
equal to 1 specifies that the mode info for inter blocks may
contain the syntax element interintra. @enable_interintra_compound equal to 0 specifies
that the syntax element interintra will not be present.
equal to 1 specifies that the mode info for inter blocks may
contain the syntax element @compound_type. @enable_masked_compound equal to 0 specifies
that the syntax element @compound_type will not be present.
equal to 1 indicates that the allow_warped_motion syntax element
may be present. @enable_warped_motion equal to 0 indicates that the @allow_warped_motion
syntax element will not be present.
equal to 1 indicates that tools based on the values of order hints
may be used. @enable_order_hint equal to 0 indicates that tools based on order hints
are disabled.
equal to 1 indicates that the inter prediction filter type may be
specified independently in the horizontal and vertical directions. If the flag is equal
to 0, only one filter type may be specified, which is then used in both directions.
equal to 1 indicates that the distance weights process may be used
for inter prediction.
equal to 1 indicates that the @use_ref_frame_mvs syntax element
may be present. @enable_ref_frame_mvs equal to 0 indicates that the @use_ref_frame_mvs
syntax element will not be present.
equal to 0 indicates that the @seq_force_screen_content_tools
syntax element will be present. @seq_choose_screen_content_tools equal to 1 indicates
that @seq_force_screen_content_tools should be set equal to SELECT_SCREEN_CONTENT_TOOLS.
equal to SELECT_SCREEN_CONTENT_TOOLS indicates that the
@allow_screen_content_tools syntax element will be present in the frame header. Otherwise,
@seq_force_screen_content_tools contains the value for @allow_screen_content_tools.
equal to 0 indicates that the seq_force_integer_mv syntax element
will be present. @seq_choose_integer_mv equal to 1 indicates that @seq_force_integer_mv
should be set equal to SELECT_INTEGER_MV.
equal to SELECT_INTEGER_MV indicates that the @force_integer_mv
syntax element will be present in the frame header (providing allow_screen_content_tools
is equal to 1). Otherwise, @seq_force_integer_mv contains the value for @force_integer_mv.
is used to compute OrderHintBits.
equal to 1 specifies that the use_superres syntax element will be present
in the uncompressed header. enable_superres equal to 0 specifies that the use_superres
syntax element will not be present (instead use_superres will be set to 0 in the
uncompressed header without being read).
equal to 1 specifies that cdef filtering may be enabled. enable_cdef equal
to 0 specifies that cdef filtering is disabled.
equal to 1 specifies that loop restoration filtering may be enabled.
enable_restoration equal to 0 specifies that loop restoration filtering is disabled.
specifies whether film grain parameters are present in the bitstream.
indicates the number of operating points minus 1 present
in this bitstream.
specifies the corresponding operating point for a set of operating
parameters.
specifies whether the decoder model info is present in
the bitstream.
holds information about the decoder model.
specifies whether initial display delay information
is present in the bitstream or not.
specifies whether timing info is present in the bitstream.
holds the timing information.
hold the color configuration.
specifies the number of bits used for the order_hint syntax element.
the bit depth of the stream.
the YUV plane number.
the inverse transform will use only 4x4 transforms.
the inverse transform will use the largest transform
size that fits inside the block.
the choice of transform size is specified explicitly
for each block.
specifies whether @tg_start and @tg_end are present
in the bitstream. If @tg_start and @tg_end are not present in the bitstream, this
tile group covers the entire frame. If @obu_type is equal to %GST_AV1_OBU_FRAME, it is a
requirement of bitstream conformance that the value of @tile_start_and_end_present_flag
is equal to 0.
specifies the zero-based index of the first tile in the current tile group.
It is a requirement of bitstream conformance that the value of @tg_start is equal to
the value of TileNum at the point that tile_group_obu is invoked.
specifies the zero-based index of the last tile in the current tile group.
It is a requirement of bitstream conformance that the value of tg_end is greater
than or equal to tg_start. It is a requirement of bitstream conformance that the
value of tg_end for the last tile group in each frame is equal to num_tiles-1.
specifies the total number of tiles in the frame.
equal to 1 means that the tiles are uniformly spaced across the
frame. (In other words, all tiles are the same size except for the ones at the right and
bottom edge which can be smaller.) @uniform_tile_spacing_flag equal to 0 means that the
tile sizes are coded.
is used to compute @tile_rows_log2.
specifies the width of a tile minus 1 in units of superblocks.
specifies the height of a tile minus 1 in units of superblocks.
is used to compute @tile_size_bytes
specifies which tile to use for the CDF update.
is an array specifying the start column (in units of 4x4 luma samples) for
each tile across the image.
is an array specifying the start row (in units of 4x4 luma samples) for
each tile down the image.
specifies the base 2 logarithm of the desired number of tiles across the frame.
specifies the number of tiles across the frame. It is a requirement of bitstream
conformance that @tile_cols is less than or equal to GST_AV1_MAX_TILE_COLS.
specifies the base 2 logarithm of the desired number of tiles down the frame.
specifies the number of tiles down the frame. It is a requirement of bitstream
conformance that @tile_rows is less than or equal to GST_AV1_MAX_TILE_ROWS.
specifies the number of bytes needed to code each tile size.
plus one is the width of the output frame, in tile units.
plus one is the height of the output frame, in tile units.
plus one is the number of @tile_list_entry in the list. It is a requirement
of bitstream conformance that @tile_count_minus_1 is less than or equal to 511.
is the number of time units of a clock operating at the
frequency @time_scale Hz that corresponds to one increment of a clock tick counter.
A clock tick, in seconds, is equal to num_units_in_display_tick divided by time_scale.
It is a requirement of bitstream conformance that num_units_in_display_tick is greater
than 0.
is the number of time units that pass in one second. It is a requirement of
bitstream conformance that @time_scale is greater than 0.
equal to 1 indicates that pictures should be displayed according
to their output order with the number of ticks between two consecutive pictures (without
dropping frames) specified by @num_ticks_per_picture_minus_1 + 1. @equal_picture_interval
equal to 0 indicates that the interval between two consecutive pictures is not specified.
plus 1 specifies the number of clock ticks corresponding
to output time between two consecutive pictures in the output order. It is a requirement
of bitstream conformance that the value of @num_ticks_per_picture_minus_1 shall be in the
range of 0 to (1 << 32) - 2, inclusive.
For future use
BT.709
Unspecified
For future use
BT.470 System M (historical)
BT.470 System B, G (historical)
BT.601
SMPTE 240 M
Linear
Logarithmic (100 : 1 range)
Logarithmic (100 * Sqrt(10) : 1 range)
IEC 61966-2-4
BT.1361
sRGB or sYCC
BT.2020 10-bit systems
BT.2020 12-bit systems
SMPTE ST 2084, ITU BT.2100 PQ
SMPTE ST 428
BT.2100 HLG, ARIB STD-B67
Warp model is just an identity transform
Warp model is a pure translation
Warp model is a rotation + symmetric zoom
+ translation
Warp model is a general affine transform
The result of writing H264 data into bit stream.
The writing succeeded
The input data to write is invalid
The output does not have enough size
An general error occurred when writing
indicates the scan type, 0: progressive, 1: interlaced, 2: unknown,
3: reserved
used in calculating clockTimestamp
specifies the method of dropping values of the n_frames
equal to 1 specifies that the n_frames syntax element
is followed by seconds_value, minutes_value, and hours_value (Since 1.18)
indicates whether the difference between the current
value of clockTimestamp and the value of clockTimestamp computed from the
previous clock timestamp can be interpreted as the time difference or not.
specifies the skipping of one or more values of n_frames
using the counting method specified by counting_type
specifies the value of nFrames used to compute clockTimestamp
equal to 1 specifies that @seconds_value and minutes_flag are
present when @full_timestamp_flag is equal to 0
specifies the value of seconds to compute clockTimestamp
equal to 1 specifies that @minutes_value and hours_flag are
present when @full_timestamp_flag is equal to 0 and @seconds_flag is
equal to 1
specifies the value of minutes to compute clockTimestamp
equal to 1 specifies that @hours_value is present when
@full_timestamp_flag is equal to 0 and @seconds_flag is equal to 1 and
@minutes_flag is equal to 1
specifies the value of tOffset used to compute clockTimestamp
The upper bounds for the nominal target brightness light level
as specified in CEA-861.3
D.2.31
Contains AVCDecoderConfigurationRecord data as defined in ISO/IEC 14496-15
Indicates configurationVersion, must be 1
H.264 profile indication
H.264 profile compatibility
H.264 level indiction
Indicates the length in bytes of the NAL unit length field
Array of identified #GstH264NalUnit from sequenceParameterSetNALUnit.
This array may contain non-SPS nal units such as SEI message
Array of identified #GstH264NalUnit from pictureParameterSetNALUnit.
This array may contain non-PPS nal units such as SEI message
%TRUE if chroma information is present. Otherwise below values
have no meaning
chroma_format_idc defined in ISO/IEC 14496-10
Indicates bit depth of luma component
Indicates bit depth of chroma component
Array of identified #GstH264NalUnit from sequenceParameterSetExtNALUnit.
Free @config data
a #GstH264DecoderConfigRecord data
Frame packing arrangement types.
A complete 2D frame without any frame packing
Checkerboard
based interleaving
Column based interleaving
Row based interleaving
Side-by-side packing
Deprecated; use GST_H264_FRAME_PACKING_TOP_BOTTOM instead
Top-Bottom packing
Temporal interleaving
Defines the HRD parameters
plus 1 specifies the number of alternative
CPB specifications in the bitstream
specifies the maximum input bit rate of the
SchedSelIdx-th CPB
specifies the CPB size of the SchedSelIdx-th CPB
@guint32 bit_rate_value_minus1: specifies the maximum input bit rate for the
SchedSelIdx-th CPB
is used together with cpb_size_scale to specify the
SchedSelIdx-th CPB size
Specifies if running in constant or intermittent bit rate mode
specifies the length in bits of
the cpb_removal_delay syntax element
specifies the length in bits of the
dpb_output_delay syntax element
>0 specifies the length in bits of the time_offset syntax element.
=0 specifies that the time_offset syntax element is not present
Length of the time offset
H.264 level
Level 1
Level 1b
Level 1.1
Level 1.2
Level 1.3
Level 2
Level 2.1
Level 2.2
Level 3
Level 3.1
Level 3.2
Level 4
Level 4.1
Level 4.2
Level 5
Level 5.1
Level 5.2
Level 6
Level 6.1
Level 6.2
The colour volume (primaries, white point and luminance range) of display
defined by SMPTE ST 2086.
D.2.29
H264 NAL Parser (opaque structure).
Frees @nalparser
the #GstH264NalParser to free
Creates a new #GstH264NalParser. It should be freed with
gst_h264_nal_parser_free after use.
a new #GstH264NalParser
Structure defining the NAL unit headers
not equal to 0 specifies that the content of the NAL unit
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 unit preceding a slice of a
reference picture.
A #GstH264NalUnitType
calculated idr_pic_flag
The size of the NAL unit starting from @offset, thus
including the header bytes. e.g. @type (nal_unit_type),
but not the start code.
The offset of the first byte of the NAL unit header,
just after the start code.
The offset of the first byte of the start code of
the NAL unit.
If the NAL unit is valid, which means it has
already been parsed
The data array from which the NAL unit has been parsed,
into which the offset and sc_offset apply.
The size of the NALU header in bytes. The NALU
header is the 1-byte type code, and for extension / prefix NALs
includes the extension header bytes. @offset + @header_bytes is
therefore the first byte of the actual packet payload.
(Since: 1.6)
the extension type for prefix NAL/MVC/SVC
(Since: 1.6)
If equal to 0, it specifies that the current access
unit is an IDR access unit
The priority identifier for the NAL unit
The view identifier for the NAL unit
The temporal identifier for the NAL unit
If equal to 1, it specifies that the current
access unit is an anchor access unit
If equal to 0, it specifies that the current view
component is not used for inter-view prediction by any other view
component in the current access unit
Indicates the type of H.264 NAL unit extension.
No NAL unit header extension is available
NAL unit header extension for SVC (Annex G)
NAL unit header extension for MVC (Annex H)
Indicates the type of H264 Nal Units
Unknown nal type
Slice nal
DPA slice nal
DPB slice nal
DPC slice nal
DPR slice nal
Supplemental enhancement information (SEI) nal unit
Sequence parameter set (SPS) nal unit
Picture parameter set (PPS) nal unit
Access unit (AU) delimiter nal unit
End of sequence nal unit
End of stream nal unit
Filler data nal lunit
Sequence parameter set (SPS) extension NAL unit
Prefix NAL unit
Subset sequence parameter set (SSPS) NAL unit
Depth parameter set (DPS) NAL unit
First reserved parameter
Second reserved parameter
Auxiliary coded picture without partitioning NAL unit
Coded slice extension NAL unit
Coded slice extension for depth or 3D-AVC texture view
H264 Picture Parameter Set
Clears all @pps internal resources.
The #GstH264PPS to free
The result of parsing H264 data.
The parsing succeeded
The data to parse is broken
The link to structure needed for the parsing couldn't be found
An error occurred when parsing
No NAL unit found during the parsing
Start of the NAL unit found, but not the end.
This will be returned if no start/sync marker for the next NAL unit was
found. In this case the parser will assume that the end of the data is
also the end of the NAL unit. Whether this assumption is correct or not
depends on the context, which only the caller can know, which is why a
special result value is returned in this case. If the data is NAL-aligned
then #GST_H264_PARSER_NO_NAL_END can be treated just like
#GST_H264_PARSER_OK. If the data is not guaranteed to be NAL-aligned,
then the caller probably wants to collect more data until there's another
sync marker or the end of the stream has been reached.
non-zero if linked
GstH264VUIParams::nal_hrd_parameters_present_flag or
GstH264VUIParams::vcl_hrd_parameters_present_flag is non-zero (Since: 1.18)
specifies the length of @cpb_removal_delay
in bits (Since 1.18)
specifies the length of @dpb_output_delay
in bits (Since 1.18)
specifies how many clock ticks to wait after removal from
the CPB of the access unit associated with the most recent buffering period
SEI message in a preceding access unit before removing from the
buffer the access unit data associated with the picture timing SEI message
used to compute the DPB output time of the picture
GstH264VUIParams::pic_struct_present_flag
indicates whether a picture should be displayed as a frame or
one or more fields
equal to 1 indicates that a number of clock timestamp
syntax elements are present
a #GstH264ClockTimestamp
specifies the length time_offset of
#GstH264ClockTimestamp in bits (Since 1.18)
H.264 Profiles.
Baseline profile (A.2.1)
Main profile (A.2.2)
Extended profile (A.2.3)
High profile (A.2.4),
or Progressive High profile (A.2.4.1), or Constrained High profile (A.2.4.2)
depending on constraint_set4_flag and constraint_set5_flag
High 10 profile (A.2.5) or High 10 Intra
profile (A.2.8), or Progressive High 10 profile (A.2.5.1) depending on
constraint_set3_flag and constraint_set4_flag
High 4:2:2 profile (A.2.6) or High
4:2:2 Intra profile (A.2.9), depending on constraint_set3_flag
High 4:4:4 Predictive profile (A.2.7)
or High 4:4:4 Intra profile (A.2.10), depending on the value of
constraint_set3_flag
Multiview High profile (H.10.1.1)
Stereo High profile (H.10.1.2)
Scalable Baseline profile (G.10.1.1)
Scalable High profile (G.10.1.2)
or Scalable High Intra profile (G.10.1.3), depending on the value
of constraint_set3_flag
Invalid H264 profile
The User data registered by Rec. ITU-T T.35 SEI messag.
an itu_t_t35_country_code.
an itu_t_t35_country_code_extension_byte.
Should be ignored when @country_code is not 0xff
the data of itu_t_t35_payload_byte
excluding @country_code and @country_code_extension
the size of @data in bytes
Constains information about SEI message. The content depends on the
@payloadType.
#GstH264SEIPayloadType
The type of SEI message.
Buffering Period SEI Message
Picture Timing SEI Message
Registered user data (D.2.5)
User Data Unregistered (D.2.6)
Recovery Point SEI Message (D.2.7)
stereo video info SEI message (Since: 1.6)
Frame Packing Arrangement (FPA) message that
contains the 3D arrangement for stereoscopic 3D video (Since: 1.6)
Mastering display colour volume information SEI message (D.2.29) (Since: 1.18)
Content light level information SEI message (D.2.31) (Since: 1.18)
Unhandled SEI message. This may or may not
be defined by spec (Since 1.18)
...
SEI pic_struct type
Picture is a frame
Top field of frame
Bottom field of frame
Top bottom field of frame
bottom top field of frame
top bottom top field of frame
bottom top bottom field of frame
indicates that the frame should
be displayed two times consecutively
indicates that the frame should be
displayed three times consecutively
Contains unhandled SEI payload data. This SEI may or may not
be defined by spec
Payload type
payload raw data excluding payload type and payload size byte
the size of @data
H264 Sequence Parameter Set (SPS)
The ID of the sequence parameter set
indicate the profile to which the coded video sequence conforms
Clears all @sps internal resources.
The #GstH264SPS to free
Represents the parsed `seq_parameter_set_mvc_extension()`.
plus 1 specifies the maximum number of coded
views in the coded video sequence
array of #GstH264SPSExtMVCView
plus 1 specifies the number of
level values signalled for the coded video sequence.
array of #GstH264SPSExtMVCLevelValue
Represents level values for a subset of the operation points for
the coded video sequence.
specifies the level value signalled for the coded video
sequence
plus 1 specifies the number of
operation points to which the level indicated by level_idc applies
specifies the applicable operation point
Represents an operation point for the coded video sequence.
Represents inter-view dependency relationships for the coded video
sequence.
specifies the number of view components for
inter-view prediction in the initialized RefPicList0 in decoding
anchor view components.
specifies the view_id for inter-view prediction in
the initialized RefPicList0 in decoding anchor view components.
specifies the number of view components for
inter-view prediction in the initialized RefPicList1 in decoding
anchor view components.
specifies the view_id for inter-view prediction in
the initialized RefPicList1 in decoding anchor view components.
specifies the number of view components
for inter-view prediction in the initialized RefPicList0 in
decoding non-anchor view components.
specifies the view_id for inter-view prediction
in the initialized RefPicList0 in decoding non-anchor view
components.
specifies the number of view components
for inter-view prediction in the initialized RefPicList1 in
decoding non-anchor view components.
specifies the view_id for inter-view prediction
in the initialized RefPicList1 in decoding non-anchor view
components.
Type of Picture slice
The User data unregistered SEI message syntax.
an uuid_iso_iec_11578.
the data of user_data_payload_byte
the size of @data in bytes
The structure representing the VUI parameters.
%TRUE specifies that aspect_ratio_idc is present.
%FALSE specifies that aspect_ratio_idc is not present
@aspect_ratio_idc specifies the value of the sample aspect ratio of the luma samples
@sar_width indicates the horizontal size of the sample aspect ratio
@sar_height indicates the vertical size of the sample aspect ratio
%TRUE overscan_appropriate_flag is present %FALSE otherwise
%TRUE indicates that the cropped decoded pictures
output are suitable for display using overscan. %FALSE the cropped decoded pictures
output contain visually important information
%TRUE specifies that video_format, video_full_range_flag and
colour_description_present_flag are present.
indicates the representation of the picture
indicates the black level and range of the luma and chroma signals
%TRUE specifies that colour_primaries,
transfer_characteristics and matrix_coefficients are present
indicates the chromaticity coordinates of the source primaries
indicates the opto-electronic transfer characteristic
describes the matrix coefficients used in deriving luma and chroma signals
%TRUE specifies that chroma_sample_loc_type_top_field and
chroma_sample_loc_type_bottom_field are present, %FALSE otherwise
specify the location of chroma for top field
@chroma_sample_loc_type_bottom_field specify the location of chroma for bottom field
%TRUE specifies that num_units_in_tick,
time_scale and fixed_frame_rate_flag are present in the bitstream
is the number of time units of a clock operating at the frequency time_scale Hz
time_scale: is the number of time units that pass in one second
%TRUE indicates that the temporal distance between the HRD output times
of any two consecutive pictures in output order is constrained as specified in the spec, %FALSE
otherwise.
%TRUE if NAL HRD parameters exist in the bitstream
%TRUE if VCL HRD parameters exist in the bitstream
specifies the HRD operational mode
%TRUE specifies that picture timing SEI messages are present or not
%TRUE specifies that the following coded video sequence bitstream restriction
parameters are present
%FALSE indicates that no sample outside the
picture boundaries and no sample at a fractional sample position, %TRUE indicates that one or more
samples outside picture boundaries may be used in inter prediction
indicates a number of bytes not exceeded by the sum of the sizes of
the VCL NAL units associated with any coded picture in the coded video sequence.
indicates the maximum number of coded bits of macroblock_layer
indicate the maximum absolute value of a decoded horizontal
motion vector component
indicate the maximum absolute value of a decoded vertical
motion vector component
indicates the maximum number of frames, complementary field pairs,
or non-paired fields that precede any frame,
specifies the required size of the HRD decoded picture buffer in
units of frame buffers.
Check if @nalu is a multiview extension NAL unit.
a #GstH264NalUnit
Check if @nalu is a scalable extension NAL unit.
a #GstH264NalUnit
The upper bounds for the nominal target brightness light level
as specified in CEA-861.3
D.2.35
Contains HEVCDecoderConfigurationRecord data as defined in ISO/IEC 14496-15
Indicates configurationVersion, must be 1
general profile space
general tier flag
general profile indiction
general profile compatibility flags
general_progressive_source_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_interlaced_source_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_non_packed_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_frame_only_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_12bit_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_10bit_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_8bit_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_422chroma_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_420chroma_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_monochrome_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_intra_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_one_picture_only_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_lower_bit_rate_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_max_14bit_constraint_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general_inbld_flag parsed from
HEVCDecoderConfigurationRecord.general_constraint_indicator_flags
general level indication
min spatial segmentation indication
parallelism type
chroma format indication
bit depth luma minus 8
bit depth chroma minus 8
average frame rate in units of frames per 256 seconds,
or 0 when unspecified
constant frame rate.
1: stream to which this configuration record applies is constante frame rate
2: representation of each temporal layer in the stream is constant frame rate
0: unspecified
0: unknown whether the stream is temporally scalable
otherwise: the number of temporal layers
1: all SPSs that activated when the stream to this configuration record
applies is decoded have sps_temporal_id_nesting_flags equal to 1
and temporal sub-layer up-switching to any higher temporal layer can
be performed at any semple
0: unknown
indicates the length in bytes of nal unit length field.
This value shall be one of 0, 1, or 3 corresponding to a length
encoded with 1, 2, or 4 bytes, respectively
Array of #GstH265DecoderConfigRecordNalUnitArray
Free @config data
a #GstH265DecoderConfigRecord data
Contains NAL Unit array data as defined in ISO/IEC 14496-15
1: all NAL units of the given type are in this array and none
are in the stream.
0: additional NAL units of the indicated type may be in the stream
Indicates the type of the NAL units in the following array.
Shall be VPS, SPS, PPS, prefix SEI or suffix SEI
Array of identified #GstH265NalUnit
Defines the HRD parameters
indicate the presence of NAL HRD parameters
indicate the presence of VCL HRD parameters
indicate the presence of sub_pic_hrd_params
is used to specify the clock sub-tick
specifies the length,
in bits, of the nal_initial_cpb_removal_delay
specifies the length, in bits, of
the cpb_delay_offset and the au_cpb_removal_delay_minus1 syntax elements.
maximum input bitrate
CPB size when operates in access unit level
CPB size when operates in sub-picture level
specifies the length, in bits, of the
nal_initial_cpb_removal_delay, nal_initial_cpb_removal_offset,
vcl_initial_cpb_removal_delay and vcl_initial_cpb_removal_offset.
specifies the length, in bits, of the
cpb_delay_offset and the au_cpb_removal_delay_minus1 syntax elements
specifies the length, in bits, of the
dpb_delay_offset and the pic_dpb_output_delay syntax elements
flag to indicate the presence of constraint
on the temporal distance between the HRD output times of consecutive
pictures in output order
same as fixed_pic_rate_general_flag
temporal distance in clock ticks
specifies the HRD operational mode
specifies the number of alternative CPB specifications.
Sublayer HRD parameters.
H.265 level
Level 1
Level 2
Level 2.1
Level 3
Level 3.1
Level 4
Level 4.1
Level 5
Level 5.1
Level 5.2
Level 6
Level 6.1
Level 6.2
The colour volume (primaries, white point and luminance range) of display
defined by SMPTE ST 2086.
D.2.28
Structure defining the Nal unit headers
A #GstH265NalUnitType
A nal unit layer id
A nal unit temporal identifier
The size of the nal unit starting from @offset
The offset of the actual start of the nal unit
The offset of the start code of the nal unit
If the nal unit is valid, which mean it has
already been parsed
The data from which the Nalu has been parsed
Indicates the type of H265 Nal Units
Slice nal of a non-TSA, non-STSA trailing picture
Slice nal of a non-TSA, non-STSA trailing picture
Slice nal of a TSA picture
Slice nal of a TSA picture
Slice nal of a STSA picture
Slice nal of a STSA picture
Slice nal of a RADL picture
Slice nal of a RADL piicture
Slice nal of a RASL picture
Slice nal of a RASL picture
Slice nal of a BLA picture
Slice nal of a BLA picture
Slice nal of a BLA picture
Slice nal of an IDR picture
Slice nal of an IDR picture
Slice nal of a CRA picture
Video parameter set(VPS) nal unit
Sequence parameter set (SPS) nal unit
Picture parameter set (PPS) nal unit
Access unit (AU) delimiter nal unit
End of sequence (EOS) nal unit
End of bitstream (EOB) nal unit
Filler data (FD) nal lunit
Supplemental enhancement information prefix nal unit
Suppliemental enhancement information suffix nal unit
H265 Picture Parameter Set
Defines the GstH265SPSExtensionParams
plus 2 specifies the maximum transform block size for which
transform_skip_flag may be present in coded pictures referring to the PPS.
equal to 1 specifies that log2_res_scale_abs_plus1 and
res_scale_sign_flag may be present in the transform unit syntax for pictures referring to the PPS.
equal to 1 specifies that the cu_chroma_qp_offset_flag may be
present in the transform unit syntax.
specifies the difference between the luma coding tree block size and
the minimum luma coding block size of coding units that convey cu_chroma_qp_offset_flag.
plus 1 specifies the number of cb_qp_offset_list[] and
cr_qp_offset_list[] syntax elements that are present in the PPS.
specify offsets used in the derivation of qp cb.
specify offsets used in the derivation of qp cr.
the base 2 logarithm of the scaling parameter that is used to scale sample
adaptive offset (SAO) offset values for luma samples.
the base 2 logarithm of the scaling parameter that is used to scale SAO
offset values for chroma samples.
equal to 1 specifies that a picture referring to the PPS may
be included in a reference picture list of a slice of the picture itself.
equal to 1 specifies that an adaptive
colour transform may be applied to the residual in the decoding process.
equal to 1 specifies that slice_act_y_qp_offset,
slice_act_cb_qp_offset, slice_act_cr_qp_offset are present in the slice header.
@pps_act_y_qp_offset_plus5 @pps_act_cb_qp_offset_plus5 @pps_act_cr_qp_offset_plus3:
are used to determine the offsets that are applied to the quantization parameter values
qp derived in clause 8.6.2 for the luma, Cb and Cr components, respectively, when
tu_residual_act_flag[ xTbY ][ yTbY ] is equal to 1.
equal to 1 specifies that the palette
predictor initializers used for the pictures referring to the PPS are derived based on
the palette predictor initializers specified by the PPS.
specifies the number of entries in the picture
palette predictor initializer.
equal to 1 specifies that the pictures that refer to this PPS
are monochrome. Equal to 0 specifies that the pictures that refer to this PPS have
multiple components.
plus 8 specifies the bit depth of the luma component of the
entries of the palette predictor initializer.
plus 8 specifies the bit depth of the chroma components of
the entries of the palette predictor initializer.
specifies the value of the comp-th component of the
i-th palette entry in the PPS that is used to initialize the array PredictorPaletteEntries.
Defines the _GstH265PPSSccExtensionParams
It offers you bitstream parsing in HEVC mode and non-HEVC mode. To identify
Nals in a bitstream and parse its headers, you should call:
* gst_h265_parser_identify_nalu() to identify the following nalu in
non-HEVC bitstreams
* gst_h265_parser_identify_nalu_hevc() to identify the nalu in
HEVC bitstreams
Then, depending on the #GstH265NalUnitType of the newly parsed #GstH265NalUnit,
you should call the differents functions to parse the structure:
* From %GST_H265_NAL_SLICE_TRAIL_N to %GST_H265_NAL_SLICE_CRA_NUT: gst_h265_parser_parse_slice_hdr()
* `GST_H265_NAL_*_SEI`: gst_h265_parser_parse_sei()
* %GST_H265_NAL_VPS: gst_h265_parser_parse_vps()
* %GST_H265_NAL_SPS: gst_h265_parser_parse_sps()
* %GST_H265_NAL_PPS: #gst_h265_parser_parse_pps()
* Any other: gst_h265_parser_parse_nal()
Note: You should always call gst_h265_parser_parse_nal() if you don't
actually need #GstH265NalUnitType to be parsed for your personal use, in
order to guarantee that the #GstH265Parser is always up to date.
For more details about the structures, look at the ITU-T H.265
specifications, you can download them from:
* ITU-T H.265: http://www.itu.int/rec/T-REC-H.265
Frees @parser
the #GstH265Parser to free
Parses @data for packetized (e.g., hvc1/hev1) bitstream and
sets @nalus. In addition to nal identifying process,
this method scans start-code prefix to split malformed packet into
actual nal chunks.
a #GstH265ParserResult
a #GstH265Parser
The data to parse, must be the beging of the Nal unit
the offset from which to parse @data
the size of @data
the size in bytes of the HEVC nal length prefix.
a caller allocated GArray of #GstH265NalUnit where to store parsed nal headers
the size of consumed bytes
Parses @data and fills @nalu from the next nalu data from @data
a #GstH265ParserResult
a #GstH265Parser
The data to parse
the offset from which to parse @data
the size of @data
The #GstH265NalUnit where to store parsed nal headers
Parses @data and sets @nalu.
a #GstH265ParserResult
a #GstH265Parser
The data to parse, must be the beging of the Nal unit
the offset from which to parse @data
the size of @data
the size in bytes of the HEVC nal length prefix.
The #GstH265NalUnit where to store parsed nal headers
Parses @data and fills @nalu from the next nalu data from @data.
This differs from @gst_h265_parser_identify_nalu in that it doesn't
check whether the packet is complete or not.
Note: Only use this function if you already know the provided @data
is a complete NALU, else use @gst_h265_parser_identify_nalu.
a #GstH265ParserResult
a #GstH265Parser
The data to parse
the offset from which to parse @data
the size of @data
The #GstH265NalUnit where to store parsed nal headers
Copy @au into new #GstBuffer and insert @sei into the #GstBuffer.
The validation for completeness of @au and @sei is caller's responsibility.
Both @au and @sei must be byte-stream formatted
a SEI inserted #GstBuffer or %NULL
if cannot figure out proper position to insert a @sei
a #GstH265Parser
a #GstBuffer containing AU data
a #GstMemory containing a SEI nal
Copy @au into new #GstBuffer and insert @sei into the #GstBuffer.
The validation for completeness of @au and @sei is caller's responsibility.
Nal prefix type of both @au and @sei must be packetized, and
also the size of nal length field must be identical to @nal_length_size
a SEI inserted #GstBuffer or %NULL
if cannot figure out proper position to insert a @sei
a #GstH265Parser
a size of nal length field, allowed range is [1, 4]
a #GstBuffer containing AU data
a #GstMemory containing a SEI nal
Link SPS and PPS of @parser to @slice. @slice must be valid and parsed
already by @parser or other #GstH265Parser
a #GstH265ParserResult
a #GstH265Parser
The #GstH265SliceHdr to fill.
Parses HEVCDecoderConfigurationRecord data and fill into @config.
The caller must free @config via gst_h265_decoder_config_record_free()
This method does not parse VPS, SPS and PPS and therefore the caller needs to
parse each NAL unit via appropriate parsing method.
a #GstH265ParserResult
a #GstH265Parser
the data to parse
the size of @data
parsed #GstH265DecoderConfigRecord data
This function should be called in the case one doesn't need to
parse a specific structure. It is necessary to do so to make
sure @parser is up to date.
a #GstH265ParserResult
a #GstH265Parser
The #GstH265NalUnit to parse
Parses @data, and fills the @pps structure.
a #GstH265ParserResult
a #GstH265Parser
The %GST_H265_NAL_PPS #GstH265NalUnit to parse
The #GstH265PPS to fill.
Parses @data, create and fills the @messages array.
a #GstH265ParserResult
a #GstH265Parser
The `GST_H265_NAL_*_SEI` #GstH265NalUnit to parse
The GArray of #GstH265SEIMessage to fill. The caller must free it when done.
Parses @data, and fills the @slice structure.
The resulting @slice_hdr structure shall be deallocated with
gst_h265_slice_hdr_free() when it is no longer needed
a #GstH265ParserResult
a #GstH265Parser
The `GST_H265_NAL_SLICE` #GstH265NalUnit to parse
The #GstH265SliceHdr to fill.
Parses @data, and fills the @slice structure.
The resulting @slice_hdr structure shall be deallocated with
gst_h265_slice_hdr_free() when it is no longer needed
a #GstH265ParserResult
a #GstH265Parser
The `GST_H265_NAL_SLICE` #GstH265NalUnit to parse
The #GstH265SliceHdr to fill.
The #GstH265SPSEXT to fill.
Parses @data, and fills the @sps structure.
a #GstH265ParserResult
a #GstH265Parser
The %GST_H265_NAL_SPS #GstH265NalUnit to parse
The #GstH265SPS to fill.
Whether to parse the vui_params or not
Parses @data, and fills the @sps structure.
a #GstH265ParserResult
a #GstH265Parser
The %GST_H265_NAL_SPS #GstH265NalUnit to parse
The #GstH265SPS to fill.
The #GstH265SPSEXT matching the #GstH265SPS to fill.
Whether to parse the vui_params or not
Parses @data, and fills the @vps structure.
a #GstH265ParserResult
a #GstH265Parser
The %GST_H265_NAL_VPS #GstH265NalUnit to parse
The #GstH265VPS to fill.
Replace internal Sequence Parameter Set struct corresponding to id of @pps
with @pps. @nalparser will mark @pps as last parsed sps.
a #GstH265ParserResult
a #GstH265Parser
a #GstH265PPS.
Replace internal Sequence Parameter Set struct corresponding to id of @sps
with @sps. @nalparser will mark @sps as last parsed sps.
a #GstH265ParserResult
a #GstH265Parser
a #GstH265SPS.
Replace internal Video Parameter Set struct corresponding to id of @vps
with @vps. @nalparser will mark @vps as last parsed vps.
a #GstH265ParserResult
a #GstH265Parser
a #GstH265VPS.
Creates a new #GstH265Parser. It should be freed with
gst_h265_parser_free after use.
a new #GstH265Parser
The result of parsing H265 data.
The parsing succeeded
The data to parse is broken
The link to structure needed for the parsing couldn't be found
An error accured when parsing
No nal found during the parsing
Start of the nal found, but not the end.
H.265 Profiles.
Main profile (A.3.2)
Main 10 profile (A.3.3)
Main Still Picture profile (A.3.4)
Monochrome profile (A.3.4)
Monochrome 12-bits profile (A.3.4)
Monochrome 16-bits profile (A.3.4)
Main profile 12-bits (A.3.4)
Main 4:2:2 profile 10-bits (A.3.4)
Main 4:2:2 profile 12-bits (A.3.4)
Main 4:4:4 profile (A.3.4)
Main 4:4:4 10-bits profile (A.3.4)
Main 4:4:4 12-bits profile (A.3.4)
Main Intra profile (A.3.4)
Main Intra 10-bits profile (A.3.4)
Main Intra 12-bits profile (A.3.4)
Main Intra 4:2:2 10-bits profile (A.3.4)
Main Intra 4:2:2 12-bits profile (A.3.4)
Main Intra 4:4:4 profile (A.3.4)
Main Intra 4:4:4 10-bits profile (A.3.4)
Main Intra 4:4:4 12-bits profile (A.3.4)
Main Intra 4:4:4 16-bits profile (A.3.4)
Main 4:4:4 Still Picture profile (A.3.4)
Main 4:4:4 16-bits Still Picture profile (A.3.4)
Monochrome 10-bits profile (A.3.5) (Since: 1.18)
High Throughput 4:4:4 profile (A.3.6) (Since: 1.18)
High Throughput 4:4:4 10-bits profile (A.3.6) (Since: 1.18)
High Throughput 4:4:4 14-bits profile (A.3.6) (Since: 1.18)
High Throughput 4:4:4 16-bits Intra profile (A.3.6) (Since: 1.18)
Screen-Extended Main profile (A.3.7) (Since: 1.18)
Screen-Extended Main 10-bits profile (A.3.7) (Since: 1.18)
Screen-Extended Main 4:4:4 profile (A.3.7) (Since: 1.18)
Screen-Extended Main 4:4:4 10-bits profile (A.3.7) (Since: 1.18)
Screen-Extended High Throughput 4:4:4 profile (A.3.7) (Since: 1.18)
Screen-Extended High Throughput 4:4:4 10-bits profile (A.3.7) (Since: 1.18)
Screen-Extended High Throughput 4:4:4 14-bits profile (A.3.7) (Since: 1.18)
Multiview Main profile (G.11.1) (Since: 1.18)
Scalable Main profile (H.11.1) (Since: 1.18)
Scalable Main 10-bits profile (H.11.1) (Since: 1.18)
Scalable Monochrome profile (H.11.1) (Since: 1.18)
Scalable Monochrome 12-bits profile (H.11.1) (Since: 1.18)
Scalable Monochrome 16-bits profile (H.11.1) (Since: 1.18)
Scalable Main 4:4:4 profile (H.11.1) (Since: 1.18)
3D Main 4:4:4 profile (I.11.1) (Since: 1.18)
Valid values for the profile_idc field. This is different from
#GstH265Profile as an extension idc can be used to encode a whole variety of
profiles.
Main profile (A.3.2)
Main 10 profile (A.3.3)
Main Still Picture profile (A.3.4)
Format range extensions profile (A.3.5)
High throughput profiles (A.3.6)
Multiview Main profiles (G.11.1) (Since: 1.18)
Scalable Main and Scalable Main 10 profile (H.11.1) (Since: 1.18)
3D Main profile (I.11.1) (Since: 1.18)
Screen content coding extensions profiles (A.3.7)
Scalable Format range extensions profiles (H.11.1) (Since: 1.18)
High throughput screen content coding extensions profiles (A.3.8) (Since: 1.18)
Define ProfileTierLevel parameters
specifies the context for the interpretation of
general_profile_idc and general_profile_combatibility_flag
the tier context for the interpretation of general_level_idc
profile id
compatibility flags
flag to indicate the type of stream
flag to indicate the type of stream
indicate the presence of frame packing
arrangement sei message
recognize the field_seq_flag
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
used to define profile extensions, see Annex A
@level idc: indicate the level which the CVS confirms
sublayer profile presence ind
sublayer level presence indicator.
profile space for sublayers
tier flags for sublayers.
conformant profile indicator for sublayers.
@sub_layer_profile_compatibility_flag[6][32]: compatibility flags for sublayers
progressive stream indicator for sublayer
interlaced stream indicator for sublayer
indicate the presence of
frame packing arrangement sei message with in sublayers
recognize the sublayer
specific field_seq_flag
indicate the sublayer specific level
Return the H265 profile defined in @ptl.
a #GstH265Profile
a #GstH265ProfileTierLevel
The User data registered by Rec. ITU-T T.35 SEI message.
an itu_t_t35_country_code.
an itu_t_t35_country_code_extension_byte.
Should be ignored when @country_code is not 0xff
the data of itu_t_t35_payload_byte
excluding @country_code and @country_code_extension
the size of @data in bytes
Constains information about SEI message. The content depends on the
@payloadType.
#GstH265SEIPayloadType
The type of SEI message.
Buffering Period SEI Message
Picture Timing SEI Message
Registered user data (D.2.5)
User data unregistered (D.2.7)
Recovery Point SEI Message (D.3.8)
Time code SEI message (D.2.27) (Since: 1.16)
Mastering display colour volume information SEI message (D.2.28) (Since: 1.18)
Content light level information SEI message (D.2.35) (Since: 1.18)
...
SEI pic_struct type
Picture is a frame
Top field of frame
Botom field of frame
Top bottom field of frame
bottom top field of frame
top bottom top field of frame
bottom top bottom field of frame
indicates that the frame should
be displayed two times consecutively
indicates that the frame should be
displayed three times consecutively
top field paired with
previous bottom field in output order
bottom field paried with
previous top field in output order
top field paired with next
bottom field in output order
bottom field paired with
next top field in output order
H265 Sequence Parameter Set (SPS)
The ID of the sequence parameter set
H265 Sequence Parameter Set extension
Defines the GstH265SPSExtensionParams
%TRUE specifies that a rotation is applied to
the residual data block from intra 4X4 blocks coded using a transform skip operation.
%TRUE specifies tspecifies that a particular
context is used for the parsing of the sig_coeff_flag for transform blocks with a skipped
transform.
%TRUE specifies that an extended dynamic range is used
for coefficient parsing and inverse transform processing
%TRUE specifies that the filtering process of neighbouring
samples is unconditionally disabled for intra prediction
%TRUE specifies that weighted prediction offset values
are signalled using a bit-depth-dependent precision.
%TRUE specifies that the Rice parameter derivation
for the binarization of coeff_abs_level_remaining[] is initialized at the start of each
sub-block using mode dependent statistics accumulated from previous sub-blocks.
%TRUE specifies that a context-based adaptive binary
arithmetic coding (CABAC) alignment process is used prior to bypass decoding of the syntax
elements coeff_sign_flag[] and coeff_abs_level_remaining[]
equal to 1 specifies that a picture in the CVS may be
included in a reference picture list of a slice of the picture itself.
equal to 1 specifies that the decoding process for palette mode
may be used for intra blocks. Equal to 0 specifies that the decoding process for palette
mode is not applied.
specifies the maximum allowed palette size.
specifies the difference between the maximum allowed
palette predictor size and the maximum allowed palette size.
equal to 1 specifies that the sequence
palette predictors are initialized using the sps_palette_predictor_initializer specified
in clause 7.3.2.2.3.
plus 1 specifies the number of entries in
the sequence palette predictor initializer.
specifies the value of the comp-th component of the
i-th palette entry in the SPS that is used to initialize the array PredictorPaletteEntries.
controls the presence and inference of the
use_integer_mv_flag that specifies the resolution of motion vectors for inter prediction.
equal to 1 specifies that the intra boundary
filtering process is unconditionally disabled for intra prediction.
Defines the _GstH265SPSSccExtensionParams
Defines the GstH265ScalingList
this plus 8 specifies the DC
Coefficient values for 16x16 scaling list
this plus 8 specifies the DC
Coefficient values for 32x32 scaling list
4x4 scaling list
8x8 scaling list
16x16 scaling list
@guint8 scaling_lists_32x32: 32x32 scaling list
Defines the #GstH265ShortTermRefPicSet params
%TRUE specifies that the stRpsIdx-th candidate
short-term RPS is predicted from another candidate short-term RPS
plus 1 specifies the difference between the value of source and
candidate short term RPS.
delta_rps_sign and abs_delta_rps_minus1 together specify
the value of the variable deltaRps.
delta_rps_sign and abs_delta_rps_minus1 together specify
the value of the variable deltaRps
sum of @NumNegativePics and @NumPositivePics.
Derived value depending on inter_ref_pic_set_prediction_flag.
If inter_ref_pic_set_prediction_flag is equal to 0, this specifies
the number of entries in the stRpsIdx-th candidate
short-term RPS that have poc values less than the poc of the current picture.
Derived value depending on inter_ref_pic_set_prediction_flag.
If inter_ref_pic_set_prediction_flag is equal to 0, this specifies
the number of entires in the stRpsIdx-th candidate
short-term RPS that have poc values greater than the poc value of the current picture.
Derived value depending on inter_ref_pic_set_prediction_flag.
If inter_ref_pic_set_prediction_flag is equal to 0,
equal to zero specifies that the i-th entry in the stRpsIdx-th
candidate short-term RPS that has poc value less than of the current picture
is not used for reference by the current picture
Derived value depending on inter_ref_pic_set_prediction_flag.
If inter_ref_pic_set_prediction_flag is equal to 0,
equal to zero specifies that the i-th entry in the current
candidate short-term RPS that has poc value greater than that of the current picture
is not used for reference by the current picture.
Derived value depending on inter_ref_pic_set_prediction_flag.
See 7.4.8 Short-term reference picture set semantics
Derived value depending on inter_ref_pic_set_prediction_flag.
See 7.4.8 Short-term reference picture set semantics
The value of NumDeltaPocs[RefRpsIdx].
If inter_ref_pic_set_prediction_flag is equal to 0,
this value should be ignored (Since: 1.18)
Defines the extended #GstH265ShortTermRefPicSetExt params
Bit j equals to 1 specifies that the j-th entry in the source candidate
short-term RPS is included in this candidate short-term RPS.
Specifies the negative picture order count delta for the i-th
entry in the short-term RPS. See details in section 7.4.8 "Short-term reference
picture set semantics" of the specification.
Specifies the positive picture order count delta for the i-th
entry in the short-term RPS. See details in section 7.4.8 "Short-term reference
picture set semantics" of the specification.
equal to 1 if this slice segment is
the first slice segment of the picture in decoding order
affects the output of previously-decoded pictures
in the decoded picture buffer after the decoding of an IDR or a BLA picture
that is not the first picture in the bitstream as specified in Annex C
a #GstH265PPS
equal to 1 if the value of each slice segment header
syntax element that is not present is inferred to be equal to the value of corresponding
slice segment header syntax element in the slice header.
the address of the first CTB in the slice segment
slice type (B, P, or I)
affects the decoded picture output and removal processes
as specified in Annex C.
specifies the colour plane associated with the current slice RBSP
when separate_colour_plane_flag is equal to 1
the picture order count modulo MaxPicOrderCntLsb for the current picture
equal to 1 specifies that the short-term RPS
of the current picture is derived based on the active SPS.
a #GstH265ShortTermRefPicSet structure
the index of st_ref_pic_set syntax structure
that is used for derivation of the short-term RPS of the current picture.
the number of entries in the long-term RPS of current picture
that are derived based on the syntax in active SPS.
the number of entries in the long-term RPS of the current picture
that are directly signalled in the slice header.
the index of candidate long-term reference pictures
specified in the active SPS.
the value of the picture order count modulo MaxPicOrderCntLsb
of the each entry in the long-term RPS of the current picture.
equal to 0 if the entry in the long-term RPS
of the current picture is not used for reference by the current picture.
equal to 1 if i-th delta_poc_msb_cycle_lt[] is present.
used to determine the value of the most significant bits
of the picture order count value of the i-th entry in the long-term RPS of the current picture.
whether temporal motion vector predictors can be used for inter prediction.
equal to 1 if SAO is enabled for the luma component in the current slice.
equal to 1 if SAO is enabled for the chroma component in the current slice.
equal to 1 specifies that the syntax elements
num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1 are present.
the maximum reference index for reference picture list 0
that may be used to decode the slice.
the maximum reference index for reference picture list 1
that may be used to decode the slice.
a #GstH265RefPicListModification
equal to 1 if the mvd_coding sytanx structure is not parsed
specifies the method for determining the initialization table
used in the initialization process for context variables.
equal to 1 specifies that the collocated picture
used for temporal motion vector prediction is derived from reference picture list 0.
the reference index of the collocated picture
used for temporal motion vector prediction.
a #GstH265PredWeightTable
specifies the maximum number of merging motion vector prediction (MVP)
candidates supported in the slice.
equal to 1 specifies that the resolution of motion vectors for inter
prediction in the current slice is integer. (Since: 1.18)
specifies the inital value of QPy to be used for the coding blocks in the slice.
a difference to be added to the value of pps_cb_qp_offset.
a difference to be added to the value of pps_cr_qp_offset.
specify offsets to the quantization parameter values qP derived in
clause 8.6.2 for luma components. (Since: 1.18)
specify offsets to the quantization parameter values qP derived in
clause 8.6.2 for Cb components. (Since: 1.18)
specify offsets to the quantization parameter values qP derived in
clause 8.6.2 for Cr components. (Since: 1.18)
equal to 1 if the cu_chroma_qp_offset_flag
may be present in the transform unit syntax. (Since: 1.18)
equal to 1 if deblocking paramertes are present in the slice header.
equal to 1 specifies that the operation of
the deblocking filter is not applied for the current slice.
deblocking parameter offset for beta divided by 2 for the current slice.
deblocking parameter offset for tC divided by 2 for the current slice.
equal to 1 specifies that in-loop filtering
operation may be performed across the left and upper boundaries of the current slice.
specifies the number of entry_point_offset_minus1 syntax elements
in the slice header.
specifies the length of the entry_point_minus1 syntax elements
in bits.
the entry point offset in bytes.
calculated NumPocTotalCurr which is used for
decoding process for reference picture set
the calculated size of the slice_header\() in bits.
number of emulation prevention bytes (EPB)
in this slice_header\()
the calculated size of short_term_ref_pic_set\()
in bits. (Since: 1.18)
the calculated size of the branch
`if( long_term_ref_pics_present_flag )` `inside slice_segment_header()` syntax
in bits. (Since: 1.22)
Copies @src_slice into @dst_slice
%TRUE if everything went fine, %FALSE otherwise
The destination #GstH265SliceHdr to copy into
The source #GstH265SliceHdr to copy from
slice_hdr: The #GstH265SliceHdr to free
Frees @slice_hdr fields.
Type of Picture slice
Defines the Sublayer HRD parameters
together with bit_rate_scale, it specifies
the maximum input bitrate when the CPB operates at the access
unit level
is used together with cpb_size_scale to
specify the CPB size when the CPB operates at the access unit
level
is used together with cpb_size_du_scale
to specify the CPB size when the CPB operates at sub-picture
level
together with bit_rate_scale, it
specifies the maximum input bit rate when the CPB operates at the
sub-picture level
indicate whether HSS operates in intermittent bit rate
mode or constant bit rate mode.
The time code SEI message provides time code information similar to that
defined by SMPTE ST 12-1 (2014) for field(s) or frame(s) of the current
picture.
D.2.27
The User data unregistered SEI message syntax.
an uuid_iso_iec_11578.
the data of user_data_payload_byte
the size of @data in bytes
Defines the VPS parameters
vps id
@base_layer_internal_flag and @base_layer_available_flag:
specify availability of base layer
should be zero, but can be other values in future
specifies the maximum number of temporal sub-layers
specifies whether inter prediction is
additionally restricted
ProfileTierLevel info
indicates the presence of
vps_max_dec_pic_buffering_minus1, vps_max_num_reorder_pics and
vps_max_latency_increase_plus1
specifies the maximum required size
of the decoded picture buffer
indicates the maximum allowed number of
pictures that can precede any picture in the CVS in decoding
order
is used to compute the value of
VpsMaxLatencyPictures
specifies the maximum allowed value of nuh_layer_id
specifies the number of layer sets
indicate the presence of
num_units_in_tick, time_scale, poc_proportional_to_timing_flag
and num_hrd_parameters
number of time units in a tick
number of time units that pass in one second
indicate whether the picture
order count is proportional to output timin
specifies the number of clock ticks
corresponding to a difference of picture order count values equal
to 1
number of hrd_parameters present
index to the list of layer hrd params.
the GstH265HRDParams list
The structure representing the VUI parameters.
%TRUE indicate that VUI parameters have been parsed (Since: 1.22)
%TRUE specifies that aspect_ratio_idc is present.
%FALSE specifies that aspect_ratio_idc is not present
@aspect_ratio_idc specifies the value of the sample aspect ratio of the luma samples
@sar_width indicates the horizontal size of the sample aspect ratio
@sar_height indicates the vertical size of the sample aspect ratio
%TRUE overscan_appropriate_flag is present %FALSE otherwise
%TRUE indicates that the cropped decoded pictures
output are suitable for display using overscan. %FALSE the cropped decoded pictures
output contain visually important information
%TRUE specifies that video_format, video_full_range_flag and
colour_description_present_flag are present.
indicates the representation of the picture
indicates the black level and range of the luma and chroma signals
%TRUE specifies that colour_primaries,
transfer_characteristics and matrix_coefficients are present
indicates the chromaticity coordinates of the source primaries
indicates the opto-electronic transfer characteristic
describes the matrix coefficients used in deriving luma and chroma signals
%TRUE specifies that chroma_sample_loc_type_top_field and
chroma_sample_loc_type_bottom_field are present, %FALSE otherwise
specify the location of chroma for top field
@chroma_sample_loc_type_bottom_field specify the location of chroma for bottom field
%TRUE indicate that the value of chroma samples is equla
to 1<<(BitDepthchrom-1).
%TRUE indicate field and %FALSE indicate frame
%TRUE indicate picture timing SEI messages are present for every
picture and include the pic_struct, source_scan_type, and duplicate_flag syntax elements.
%TRUE indicate that the default display window parameters present
def_disp_win_left_offset:left offset of display rect
def_disp_win_right_offset: right offset of display rect
def_disp_win_top_offset: top offset of display rect
def_disp_win_bottom_offset: bottom offset of display rect
%TRUE specifies that num_units_in_tick,
time_scale and fixed_frame_rate_flag are present in the bitstream
is the number of time units of a clock operating at the frequency time_scale Hz
is the number of time units that pass in one second
%TRUE indicates that the picture order count value for each picture
in the CVS that is not the first picture in the CVS, in decoding order, is proportional to the output
time of the picture relative to the output time of the first picture in the CVS.
plus 1 specifies the number of clock ticks corresponding to a
difference of picture order count values equal to 1
%TRUE if hrd parameters present in the bitstream
%TRUE specifies that the following coded video sequence bitstream restriction
parameters are present
%TRUE indicates that each PPS that is active in the CVS has the same value
of the syntax elements num_tile_columns_minus1, num_tile_rows_minus1, uniform_spacing_flag,
column_width_minus1, row_height_minus1 and loop_filter_across_tiles_enabled_flag, when present
%FALSE indicates that no sample outside the
picture boundaries and no sample at a fractional sample position, %TRUE indicates that one or more
samples outside picture boundaries may be used in inter prediction
when not equal to 0, establishes a bound on the maximum possible size
of distinct coded spatial segmentation regions in the pictures of the CVS
indicates a number of bytes not exceeded by the sum of the sizes of
the VCL NAL units associated with any coded picture in the coded video sequence.
indicates an upper bound for the number of coded bits of coding_unit
data for any coding block in any picture of the CVS
indicate the maximum absolute value of a decoded horizontal
motion vector component
indicate the maximum absolute value of a decoded vertical
motion vector component
Check whether @nal_type is BLA or not
a #GstH265NalUnitType
Check whether @nal_type is CRA or not
a #GstH265NalUnitType
Check whether @nal_type is IDR or not
a #GstH265NalUnitType
Check whether @nal_type is IRAP or not
a #GstH265NalUnitType
Check whether @nal_type is RADL or not
a #GstH265NalUnitType
Check whether @nal_type is RASL or not
a #GstH265NalUnitType
Structure defining the H266 ALF parameters.
specifies whether a luma filter set is signalled.
specifies whether a chroma filter is signalled.
specifies whether cross-component filters for the
Cb colour component are signalled.
specifies whether cross-component filters for the
Cr colour component are signalled.
specifies whether linear adaptive loop filtering is applied
to the luma component.
specifies the number of adpative loop
filter classes for which luma coefficients can be signalled.
specifies the indices of the signalled adaptive loop
filter luma coefficient deltas for the filter class.
specifies the absolute value of the j-th coefficient of
the signalled luma filter.
specifies the sign of the j-th luma coefficient of the
filter.
specifies the clipping index of the clipping value to use
before multiplying by the j-th coefficient of the signalled luma filter.
specifies whether linear adaptive loop filtering is
applied to chroma components.
specifies the number of alternative filters
for chroma components.
specifies the absolute value of the j-th chroma filter
coefficient for the alternative chroma filter with index altIdx.
specifies the sign of the j-th chroma filter coefficient
for the alternative chroma filter with index altIdx.
specifies the clipping index of the clipping value to use
before multiplying by the j-th coefficient of the alternative chroma filter
with index altIdx.
specifies the number of cross-component
filters for the Cb colour component.
specifies the absolute value of the j-th mapped
coefficient of the signalled k-th cross-component filter for the Cb colour
component.
specifies the sign of the j-th coefficient of the
signalled k-th cross-component filter for the Cb colour component.
specifies the number of cross-component
filters for the Cr colour component.
specifies the absolute value of the j-th mapped
coefficient of the signalled k-th cross-component filter for the Cr colour
component.
specifies the sign of the j-th coefficient of the
signalled k-th cross-component filter for the Cr colour component.
Structure defining the H266 Adaptation Parameter Set.
specifies the type of APS parameters carried in the APS as
specified in Table 6.
provides an identifier for the APS for reference by other syntax
elements.
specifies whether the APS NAL unit could include
chroma related syntax elements.
specifies whether aps_extension_data_flag syntax elements
are present.
could have any value and do not affect the decoding
process now.
whether this APS is valid.
Indicates the types of Adaptation parameter set (APS) as
Table 6 - APS parameters type codes and types of APS parameters.
ALF parameters.
LMCS parameters.
Scaling list parameters.
Structure defining the H266 AU delimiter.
specifies whether the AU containing the AU delimiter is
an IRAP or GDR AU.
indicates sh_slice_type values that could be present in the AU.
Structure defining the H266 buffering period.
specifies whether a list of syntax element
pairs bp_nal_initial_cpb_removal_delay and bp_nal_initial_cpb_removal_offset
are present in the BP SEI message.
specifies whether a list of syntax element
pairs bp_vcl_initial_cpb_removal_delay and bp_vcl_initial_cpb_removal_offset
are present in the BP SEI message.
specifies the length, in bits, of
the initial cpb removal syntax elements.
specifies the length, in bits, of the
cpb removal syntax elements.
specifies the length, in bits, of the
syntax dpb output syntax elements.
specifies whether DU level HRD parameters are
present and the HRD can be operated at the AU level or DU level.
specifies the length, in bits,
of the du cpb removal syntax elements.
specifies the length, in bits, of the
dpb output syntax element.
specifies whether DU level CPB removal
delay parameters are present in PT SEI messages.
specifies whether DU level DPB output
delay parameters are present in PT SEI messages.
indicates whether the nominal CPB removal time of the
current AU is determined relative to the nominal CPB removal time of the
previous AU.
specifies whether the syntax
element bp_max_initial_removal_delay_for_concatenation is present in the BP
SEI message and the syntax element pt_delay_for_concatenation_ensured_flag
is present in the PT SEI messages.
identify whether the nominal
removal time from the CPB of the first AU of a following BP computed with
bp_cpb_removal_delay_delta_minus1 applies.
specifies a CPB removal delay increment
value relative to the nominal CPB removal time of the AU prevNonDiscardableAu.
specifies whether maximum number of temporal sublayers
for which the initial CPB removal delay and the initial CPB removal offset
are indicated in the BP SEI message.
specifies whether the BP SEI message
contains CPB removal delay deltas.
specifies the number of syntax elements
bp_cpb_removal_delay_delta_val[i] in the BP SEI message.
specifies the i-th CPB removal delay delta.
specifies the number of syntax element pairs
bp_nal_initial_cpb_removal_delay and bp_nal_initial_cpb_removal_offset
of the i-th temporal sublayer.
specifies that initial CPB
removal delay related syntax elements are present for sublayer representation.
specify the j-th default initial CPB removal
delay for the NAL HRD in units of a 90 kHz clock of the i-th temporal sublayer.
specify the j-th default initial CPB removal
offset of the i-th temporal sublayer for the NAL HRD in units of a 90 kHz
clock.
specify the j-th alternative initial CPB
removal delay for the NAL HRD in units of a 90 kHz clock of the i-th
temporal sublayer.
specify the j-th alternative initial CPB
removal offset of the i-th temporal sublayer for the NAL HRD in units of a
90 kHz clock.
specify the j-th default initial CPB removal
delay of the i-th temporal sublayer for the VCL HRD in units of a 90 kHz clock.
specify the j-th default initial CPB removal
offset of the i-th temporal sublayer for the VCL HRD in units of a 90 kHz clock.
specify the j-th alternative initial CPB
removal delay of the i-th temporal sublayer for the VCL HRD in units of a
90 kHz clock.
specify the j-th alternative initial CPB
removal offset of the i-th temporal sublayer for the VCL HRD in units of a
90 kHz clock.
specifies whether DPB output time
offsets are present for sublayer representation.
specifies the difference between the DPB output times
for the i-th sublayer representation.
specifies the presence of the syntax element
bp_use_alt_cpb_params_flag.
could be used to derive the value of
UseAltCpbParamsFlag.
Structure defining the H266 decoding capability information.
specifies the number of profile_tier_level syntax
structures in the DCI NAL unit.
specifies whether dci_extension_data_flag syntax elements
are present.
could have any value.
Structure defining the H266 DPB parameters.
specifies the maximum required size of the
DPB in units of picture storage buffers.
specifies the maximum allowed number of pictures of
the OLS that can precede any picture in the OLS in decoding order and
follow that picture in output.
used to compute the value of MaxLatencyPictures,
which specifies the maximum number of pictures in the OLS.
Structure defining the H266 decoding unit info.
specifies the index to the list of DUs in the current AU.
specifies whether
dui_du_cpb_removal_delay_increment[i] is present for the sublayer.
specifies the duration between the nominal
CPB times of the last DU in decoding order in the current AU.
specifies the presence of the
dui_dpb_output_du_delay syntax element in the DUI SEI message.
is used to compute the DPB output time of the AU.
Contains VVCDecoderConfigurationRecord data as defined in ISO/IEC 14496-15
indicates the length in bytes of nal unit length field.
This value shall be one of 0, 1, or 3 corresponding to a length
encoded with 1, 2, or 4 bytes, respectively
true: profile, tier and level information is present
Operating point layer set index
Number of sublayers
Indicates if the frame rate is constant
Chroma format indicator
Bit depth minus 8
Profile, tier and level information
Maximum picture width
Maximum picture height
Average frame rate
Array of #GstH266DecoderConfigRecordNalUnitArray
Free @config data
a #GstH266DecoderConfigRecord data
Contains NAL Unit array data as defined in ISO/IEC 14496-15
1: all NAL units of the given type are in this array and none
are in the stream.
0: additional NAL units of the indicated type may be in the stream
Indicates the type of the NAL units in the following array.
Shall be VPS, SPS, PPS, prefix APS or suffix APS
Array of identified #GstH266NalUnit
Structure defining the H266 frame field information.
indicates whether the display model considers the current
picture as a field.
indicates whether the current picture is a bottom field.
indicates whether the current picture is considered
paired with the next picture in output order or with the previous picture
in output order as the two fields of a frame.
indicates whether the current picture is
considered paired with the next picture as the two fields of a frame.
indicates whether the display model operates
by sequentially displaying the individual fields of the frame with
alternating parity.
indicates that the first field of the frame that is
displayed by the display model is the top field.
indicates the number of elemental picture
period intervals that the current coded picture or field occupies for the
display model.
@source_scan_type; indicates whether the source scan type of the associated
picture should be interpreted as progressive.
indicates whether the current picture is indicated to be a
duplicate of a previous picture in output order.
whether this frame field info is valid.
Structure defining the H266 general constraints info.
specifies whether additional syntax elements are present.
specifies whether sh_slice_type for all slices
in OlsInScope shall be equal to 2.
specifies whether the
vps_all_independent_layers_flag for all pictures in OlsInScope
shall be equal to 1.
specifies whether there is only one
AU in OlsInScope.
specifies whether
sps_bitdepth_minus8 plus 8 for all pictures in OlsInScope shall be in the
range of 0 to 16 - gci_sixteen_minus_max_bitdepth_constraint_idc, inclusive.
specifies whether the
sps_chroma_format_idc for all pictures in OlsInScope shall be in the range
of 0 to 3 - gci_three_minus_max_chroma_format_constraint_idc, inclusive.
specifies whether the
pps_mixed_nalu_types_in_pic_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether there shall be no NAL unit
with nuh_unit_type equal to TRAIL_NUT present in OlsInScope.
specifies whether there shall be no NAL unit with
nuh_unit_type equal to STSA_NUT present in OlsInScope.
specifies whether there shall be no NAL unit with
nuh_unit_type equal to RASL_NUT present in OlsInScope.
specifies whether there shall be no NAL unit with
nuh_unit_type equal to RADL_NUT present in OlsInScope.
specifies whether there shall be no NAL unit with
nuh_unit_type equal to IDR_W_RADL or IDR_N_LP present in OlsInScope.
specifies whether there shall be no NAL unit with
nuh_unit_type equal to CRA_NUT present in OlsInScope.
specifies whether sps_gdr_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether there shall be no NAL unit with
nuh_unit_type equal to PREFIX_APS_NUT or SUFFIX_APS_NUT present in
OlsInScope.
specifies whether sps_idr_rpl_present_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether each picture in
OlsInScope shall contain only one tile.
specifies whether each picture
in OlsInScope shall contain only one slice and the value of
sh_picture_header_in_slice_header_flag in each slice in OlsInScope shall
be equal to 1.
specifies whether each picture in
OlsInScope shall contain only one slice.
specifies whether pps_rect_slice_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether the value of
pps_single_slice_per_subpic_flag for all pictures in OlsInScope shall
be equal to 1.
specifies whether sps_subpic_info_present_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether
sps_log2_ctu_size_minus5 for all pictures in OlsInScope shall be in the
range of 0 to 3-gci_three_minus_max_log2_ctu_size_constraint_idc, inclusive.
specifies whether
sps_partition_constraints_override_enabled_flag for all pictures in
OlsInScope shall be equal to 0.
specifies whether
sps_max_mtt_hierarchy_depth_intra_slice_luma,
sps_max_mtt_hierarchy_depth_inter_slice, and
sps_max_mtt_hierarchy_depth_intra_slice_chroma for all pictures in
OlsInScope shall be equal to 0.
specifies whether
sps_qtbtt_dual_tree_intra_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether sps_palette_enabled_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether sps_ibc_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_isp_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_mrl_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_mip_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_cclm_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether
sps_ref_pic_resampling_enabled_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether
sps_res_change_in_clvs_allowed_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether
sps_weighted_pred_flag and sps_weighted_bipred_flag for all pictures in
OlsInScope shall both be equal to 0.
specifies whether
sps_ref_wraparound_enabled_flag for all pictures in OlsInScope shall be
equal to 0.
specifies whether
sps_temporal_mvp_enabled_flag for all pictures in OlsInScope shall be
equal to 0.
specifies whether sps_sbtmvp_enabled_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether sps_amvr_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_bdof_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_smvd_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_dmvr_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_mmvd_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_affine_enabled_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether sps_affine_prof_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_bcw_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_ciip_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_gpm_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether
sps_max_luma_transform_size_64_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether
sps_transform_skip_enabled_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether sps_bdpcm_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_mts_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_lfnst_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_joint_cbcr_enabled_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether sps_sbt_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_act_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether
sps_explicit_scaling_list_enabled_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether sps_dep_quant_enabled_flag
for all pictures in OlsInScope shall be equal to 0.
specifies whether
sps_sign_data_hiding_enabled_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether
pps_cu_qp_delta_enabled_flag for all pictures in OlsInScope shall be
equal to 0.
specifies whether
pps_cu_chroma_qp_offset_list_enabled_flag for all pictures in OlsInScope
shall be equal to 0.
specifies whether sps_sao_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_alf_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_ccalf_enabled_flag for
all pictures in OlsInScope shall be equal to 0.
specifies whether sps_lmcs_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether sps_ladf_enabled_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether
sps_virtual_boundaries_enabled_flag for all pictures in OlsInScope shall
be equal to 0.
specifies whether all pictures in
OlsInScope are GDR pictures with ph_recovery_poc_cnt equal to 0 or IRAP
pictures.
specifies whether
sps_extended_precision_flag for all pictures in OlsInScope shall be
equal to 0.
specifies whether
sps_ts_residual_coding_rice_present_in_sh_flag for all pictures in
OlsInScope should be equal to 0.
specifies whether
sps_rrc_rice_extension_flag for all pictures in OlsInScope shall be
equal to 0.
specifies whether
sps_persistent_rice_adaptation_enabled_flag for all pictures in OlsInScope
shall be equal to 0.
specifies whether
sps_reverse_last_sig_coeff_enabled_flag for all pictures in OlsInScope
shall be equal to 0.
the reserved bits.
Structure defining the H266 HDR parameters.
the number of time units of a clock operating at the
frequency time_scale.
number of time units that pass in one second.
specifies whether NAL HRD parameters
are present in the general_timing_hrd_parameters syntax structure.
specifies whether VCL HRD parameters
are present in the general_timing_hrd_parameters syntax structure.
specifies whether the
non-scalable-nested PT SEI message in each AU applies to the AU for any
OLS in the bitstream and no scalable-nested PT SEI messages are present.
specifies whether DU level HRD
parameters are present and the HRD could operate at the AU level or DU level.
specifies the clock sub-tick.
specifies the maximum input bit rate of the CPB.
specifies the CPB size of the CPB.
specifies the CPB size of the CPB at du level.
plus 1 specifies the number of alternative CPB
delivery schedules.
Structure defining the H266 LMCS parameters.
minimum bin index used in the luma mapping with chroma scaling
construction process.
specifies the delta value between 15 and the maximum bin
index LmcsMaxBinIdx used in the luma mapping with chroma scaling construction
process.
specifies the number of bits used for the
representation of the syntax lmcs_delta_abs_cw[i].
specifies the absolute delta codeword value for the ith bin.
specifies the sign of the variable lmcsDeltaCW[i].
specifies the absolute codeword value of the variable
lmcsDeltaCrs.
specifies the sign of the variable lmcsDeltaCrs.
H.266 level.
Structure defining the H266 Nal unit headers.
A #GstH266NalUnitType.
A nal unit layer id.
A nal unit temporal identifier.
The size of the nal unit starting from @offset.
The offset of the actual start of the nal unit.
The offset of the start code of the nal unit.
If the nal unit is valid, which mean it has
already been parsed.
The data from which the Nalu has been parsed.
The size of the NALU header in bytes.
Indicates the types of H266 Nal Units as
table 5 - NAL unit type codes and NAL unit type classes.
Coded slice of a trailing picture or subpicture.
Coded slice of an STSA picture or subpicture.
Coded slice of a RADL picture or subpicture.
Coded slice of a RASL picture or subpicture.
Coded slice of an IDR picture or subpicture.
Coded slice of an IDR picture or subpicture.
Coded slice of a CRA picture or subpicture.
Coded slice of a GDR picture or subpicture.
Operating point information.
Decoding capability information.
Video parameter set(VPS).
Sequence parameter set (SPS).
Picture parameter set (PPS).
Prefix Adaptation parameter set (APS).
Suffix Adaptation parameter set (APS).
Picture header (PH).
AU delimiter.
End of sequence (EOS).
End of bitstream (EOB).
Prefix Supplemental enhancement information.
Suffix Suppliemental enhancement information.
Filler data (FD).
Structure defining the H266 OLS HDR parameters.
indicates the temporal distance between the
HRD output times of consecutive pictures in output order is constrained as
specified in this clause using the variable DpbOutputElementalInterval[n].
indicates the temporal distance between the
HRD output times of consecutive pictures in output order is constrained as
specified in this clause using the variable DpbOutputElementalInterval[n].
specifies the temporal distance between
the elemental units that specify the HRD output times of consecutive
pictures in output order.
specifies the HRD operational mode as specified
in Annex C.
sub layer nal #GstH266SubLayerHRDParameters.
sub layer vcl #GstH266SubLayerHRDParameters.
Structure defining the H266 operating point information.
specifies whether opi_ols_idx is present in the OPI.
specifies whether opi_htid_plus1 is present.
specifies that the current CVS and the next CVSs in decoding order
up to and not including the next CVS for which opi_ols_idx is provided in
an OPI NAL unit do not contain any other layers than those included in the
OLS with OLS index equal to opi_ols_idx.
specifies that all the pictures in the current CVS and the next
CVSs in decoding order up to and not including the next CVS for which
opi_htid_plus1 is provided in an OPI NAL unit are IRAP pictures or GDR
pictures with ph_recovery_poc_cnt equal to 0.
specifies whether opi_extension_data_flag syntax elements
are present.
could have any value.
Structure defining the H266 PPS.
provides an identifier for the PPS for reference by other
syntax elements.
specifies the SPS referred to by this PPS.
the #GstH266SPS this PPS refers to.
specifies whether each picture referring to
the PPS has more than one VCL NAL unit and the VCL NAL units do not have
the same value of nal_unit_type.
specifies the width of each decoded picture
referring to the PPS in units of luma samples.
specifies the height of each decoded picture
referring to the PPS in units of luma samples.
specifies whether the conformance cropping window
offset parameters follow next in the PPS.
specify left offset of the cropping window that
is applied to pictures.
specify right offset of the cropping window that
is applied to pictures.
specify top offset of the cropping window that
is applied to pictures.
specify bottom offset of the cropping window that
is applied to pictures.
specifies whether the scaling
window offset parameters are present in the PPS.
specify the left offsets that are applied to the
picture size for scaling ratio calculation.
specify the right offsets that are applied to the
picture size for scaling ratio calculation.
specify the top offsets that are applied to the
picture size for scaling ratio calculation.
specify the bottom offsets that are applied to
the picture size for scaling ratio calculation.
specifies whether the ph_pic_output_flag syntax
element could be present in PH syntax structures referring to the PPS.
specifies whether no picture partitioning is applied
to each picture referring to the PPS.
specifies whether the subpicture ID mapping
is signalled in the PPS.
shall be equal to sps_num_subpics_minus1.
shall be equal to sps_subpic_id_len_minus1.
specifies the subpicture ID of the i-th subpicture.
specifies the luma coding tree block size of each CTU.
specifies the number of explicitly provided
tile column widths.
specifies the number of explicitly provided tile
row heights.
specifies the width of the i-th tile column in
units of CTBs.
specifies the height of the i-th tile row in units
of CTBs.
specifies whether in-loop filtering
operations across tile boundaries are enabled for pictures.
specifies whether the raster-san slice mode is in use for
each picture referring to the PPS.
specifies whether each subpicture consists of
one and only one rectangular slice.
specifies the number of rectangular slices in
each picture.
specifies whether all pictures are partitioned
into rectangular slice rows and rectangular slice columns in slice raster
order.
specifies the width of the i-th rectangular
slice in units of tile columns.
specifies the height of the i-th rectangular
slice in units of tile rows.
specifies the number of explicitly provided slice
heights for the slices in the containing the i-th slice.
specifies the height of the j-th rectangular
slice in the tile containing the i-th slice.
specifies the difference between the tile index of the
tile containing the first CTU in the (i+1)-th rectangular slice and the tile
index of the tile containing the first CTU in the i-th rectangular slice.
specifies whether in-loop filtering
operations across slice boundaries are enabled.
specifies whether sh_cabac_init_flag is present
in slice headers.
specifies the inferred value of the
variable NumRefIdxActive[0] for P or B slices.
specifies whether rpl_sps_flag[1] and rpl_idx[1] are
present in the PH.
specifies whether weighted prediction is applied to P
slices.
specifies whether explicit weighted prediction is
applied to B slices.
specifies whether the horizontal wrap-around
motion compensation is enabled.
specifies the difference between the
picture width and the offset used for computing the horizontal wrap-around
position in units of MinCbSizeY luma samples.
specifies the initial value of SliceQp Y for each slice.
specifies whether either or both of the
ph_cu_qp_delta_subdiv_intra_slice and ph_cu_qp_delta_subdiv_inter_slice
syntax elements are present in PH.
specifies whether chroma tool offsets
related syntax elements are present in the PPS.
specify the offsets to the luma quantization parameter Qp'Y
used for deriving Qp'Cb.
specify the offsets to the luma quantization parameter Qp'Y
used for deriving Qp'Cr.
specifies whether
pps_joint_cbcr_qp_offset_value and pps_joint_cbcr_qp_offset_list[i] are
present in the PPS.
specifies the offset to the luma quantization
parameter Qp'Y used for deriving Qp'CbCr.
specifies whether the sh_cb_qp_offset
and sh_cr_qp_offset syntax elements are present in slice headers.
specifies whether the
ph_cu_chroma_qp_offset_subdiv_intra_slice and
ph_cu_chroma_qp_offset_subdiv_inter_slice syntax elements are present in PH.
specifies whether number of
pps_cb_qp_offset_list[i], pps_cr_qp_offset_list[i],
and pps_joint_cbcr_qp_offset_list[i], syntax elements that are present.
specify offsets used in the derivation of Qp'Cb.
specify offsets used in the derivation of Qp'Cr.
specify offsets used in the derivation of Qp'CbCr.
specifies whether presence of
deblocking filter control syntax elements in the PPS.
specifies whether the deblocking
behaviour could be overridden in the picture level or slice level.
specifies whether the deblocking filter is
disabled unless overridden for a picture or slice by information.
specifies whether deblocking filter information is
present in the PH syntax structure and not present in slice headers.
specify the default deblocking parameter offsets
for beta that are applied to the luma component.
specify the default deblocking parameter offsets for
tC (divided by 2) that are applied to the luma component.
specify the default deblocking parameter offsets for
beta and that are applied to the Cb component.
specify the default deblocking parameter offsets for tC
(divided by 2) that are applied to the Cb component.
specify the default deblocking parameter offsets for
beta that are applied to the Cr component.
specify the default deblocking parameter offsets for tC
(divided by 2) that are applied to the Cr component.
specifies whether RPL information is present in the
PH syntax structure and not present in slice headers.
specifies whether SAO filter information could be
present in the PH syntax structure and not present in slice headers.
specifies whether ALF information could be present in
the PH syntax structure and not present in slice headers.
specifies whether weighted prediction information could
be present in the PH syntax structure and not present in slice headers.
specifies whether QP delta information is present
in the PH syntax structure and not present in slice headers.
specifies whether PH extension syntax
elements are present in PH syntax structures.
specifies whether slice header
extension syntax elements are present in the slice headers.
specifies whether pps_extension_data_flag syntax elements
are present.
could have any value.
the calculated width of the picture.
the calculated height of the picture.
the cropped width of the picture.
the cropped height of the picture.
the x offset of the cropped window.
the y offset of the cropped window.
PicWidthInCtbsY specify picture width count in CTBs.
PicHeightInCtbsY specify picture height count in CTBs.
picture size count in CTBs.
total tile number in columns.
total tile number in rows.
total tile number of the picture.
TileColBdVal specifying the location of the i-th tile
column boundary in units of CTBs
TileRowBdVal specifying the location of the j-th tile row
boundary in units of CTBs.
SliceTopLeftTileIdx specifying the tile index of
the tile containing the first CTU in the slice.
specifying the top left CTU index in X direction.
specifying the top left CTU index in Y direction.
slice height count in CTUs.
slice number in subpicture.
whether this PPS is valid.
Contains VvcPTLRecord data as defined in ISO/IEC 14496-15
Number of bytes for constraint information.
General profile id.
General tier flag.
General level id.
Frame-only constraint flag.
Multilayer enabled flag.
Array containing general constraint information.
Array indicating presence of sublayer level.
Array containing sublayer level ids.
Number of sub-profiles.
Array containing general sub-profile ids.
To identify Nals in a bitstream and parse its headers, you should call:
* gst_h266_parser_identify_nalu() to identify the following nalu in
VVC bitstreams
Then, depending on the #GstH266NalUnitType of the newly parsed #GstH266NalUnit,
you should call the different functions to parse the structure:
* From #GST_H266_NAL_SLICE_TRAIL to #GST_H266_NAL_SLICE_GDR:
gst_h266_parser_parse_slice_hdr()
* `GST_H266_NAL_*_SEI`: gst_h266_parser_parse_sei()
* #GST_H266_NAL_VPS: gst_h266_parser_parse_vps()
* #GST_H266_NAL_SPS: gst_h266_parser_parse_sps()
* #GST_H266_NAL_PPS: #gst_h266_parser_parse_pps()
* Any other: gst_h266_parser_parse_nal()
Note: You should always call gst_h266_parser_parse_nal() if you don't
actually need #GstH266NalUnitType to be parsed for your personal use, in
order to guarantee that the #GstH266Parser is always up to date.
For more details about the structures, look at the ITU-T H.266
specifications, you can download them from:
* ITU-T H.266: http://www.itu.int/rec/T-REC-H.266
Frees the @parser
the #GstH266Parser to free
Parses @data for packetized (e.g., vvc1/vvi1) bitstream and
sets @nalus. In addition to nal identifying process,
this method scans start-code prefix to split malformed packet into
actual nal chunks.
a #GstH266ParserResult
a #GstH266Parser
The data to parse, must be the beging of the Nal unit
the offset from which to parse @data
the size of @data
the size in bytes of the VVC nal length prefix.
a caller allocated #GArray of #GstH266NalUnit where to store parsed nal headers
the size of consumed bytes
Parses @data and fills @nalu from the next nalu data from @data
a #GstH266ParserResult
a #GstH266Parser
The data to parse
the offset from which to parse @data
the size of @data
The #GstH266NalUnit where to store parsed nal headers
Parses @data and fills @nalu from the next nalu data from @data.
This differs from @gst_h266_parser_identify_nalu in that it doesn't
check whether the packet is complete or not.
Note: Only use this function if you already know the provided @data
is a complete NALU, else use @gst_h266_parser_identify_nalu.
a #GstH266ParserResult
a #GstH266Parser
The data to parse
the offset from which to parse @data
the size of @data
The #GstH266NalUnit where to store parsed nal headers
Parses @data and sets @nalu.
a #GstH266ParserResult
a #GstH266Parser
The data to parse, must be the beging of the Nal unit
the offset from which to parse @data
the size of @data
the size in bytes of the VVC nal length prefix.
The #GstH266NalUnit where to store parsed nal headers
Parses @data, and fills the @aps structure.
a #GstH266ParserResult
a #GstH266Parser
The APS #GstH266NalUnit to parse
The #GstH266APS to fill.
Parses @data, and fills the @aud structure.
a #GstH266ParserResult
a #GstH266Parser
The AUD #GstH266NalUnit to parse
The #GstH266AUD to fill.
Parses @data, and fills the @dci structure.
a #GstH266ParserResult
a #GstH266Parser
The DCI #GstH266NalUnit to parse
The #GstH266DCI to fill.
Parses VVCDecoderConfigurationRecord data and fill into @config.
The caller must free @config via gst_h266_decoder_config_record_free()
This method does not parse APS, VPS, SPS and PPS and therefore the caller needs to
parse each NAL unit via appropriate parsing method.
a #GstH266ParserResult
a #GstH266Parser
the data to parse
the size of @data
parsed #GstH266DecoderConfigRecord data
This function should be called in the case one doesn't need to
parse a specific structure. It is necessary to do so to make
sure @parser is up to date.
a #GstH266ParserResult
a #GstH266Parser
The #GstH266NalUnit to parse
Parses @data, and fills the @opi structure.
a #GstH266ParserResult
a #GstH266Parser
The OPI #GstH266NalUnit to parse
The #GstH266OPI to fill.
Parses @data, and fills the @ph structure.
a #GstH266ParserResult
a #GstH266Parser
The picture header #GstH266NalUnit to parse
The #GstH266PicHdr to fill.
Parses @data, and fills the @pps structure.
a #GstH266ParserResult
a #GstH266Parser
The #GST_H266_NAL_PPS #GstH266NalUnit to parse
The #GstH266PPS to fill.
Parses @data, create and fills the @messages array.
a #GstH266ParserResult
a #GstH266Parser
The `GST_H266_NAL_*_SEI` #GstH266NalUnit to parse
The GArray of #GstH266SEIMessage to fill. The caller must free
it when done.
Parses @data, and fills the @sh structure.
a #GstH266ParserResult
a #GstH266Parser
The slice #GstH266NalUnit to parse
The #GstH266SliceHdr to fill.
Parses @data, and fills the @sps structure.
a #GstH266ParserResult
a #GstH266Parser
The #GST_H266_NAL_SPS #GstH266NalUnit to parse
The #GstH266SPS to fill.
Parses @data, and fills the @vps structure.
a #GstH266ParserResult
a #GstH266Parser
The #GST_H266_NAL_VPS #GstH266NalUnit to parse
The #GstH266VPS to fill.
Creates a new #GstH266Parser. It should be freed with
gst_h266_parser_free after use.
a new #GstH266Parser
The result of parsing H266 data.
The parsing succeeded.
The data to parse is broken.
The link to structure needed for the parsing
couldn't be found.
An error accured when parsing.
No nal found during the parsing.
Start of the nal found, but not the end.
Structure defining the H266 picture header.
specifies whethers the current picture is a GDR or
IRAP picture.
specifies whether the current picture is never used as
a reference picture.
specifies whether the current picture is a GDR picture.
specifies whether all coded slices of the picture
have sh_slice_type equal to 2.
specifies whether all coded slices of the picture
have sh_slice_type equal to 0 or 1.
specifies the value of pps_pic_parameter_set_id for the PPS in use.
specifies the picture order count modulo
MaxPicOrderCntLsb for the current picture.
specifies the recovery point of decoded pictures in
output order.
@extra_bit[16]: could have any value.
specifies that the syntax element
ph_poc_msb_cycle_val is present in the PH.
specifies the value of the POC MSB cycle of the current
picture.
specifies whether the adaptive loop filter is enabled for
the current picture.
specifies the number of ALF APSs that the slices in
the current picture refers to.
specifies the aps_adaptation_parameter_set_id of the i-th
ALF APS.
specifies whether the adaptive loop filter is enabled
for the Cb colour component of the current picture.
specifies whether the adaptive loop filter is enabled
for the Cr colour component of the current picture.
@alf_aps_id_chroma;: specifies the aps_adaptation_parameter_set_id of the
ALF APS.
specifies whether the cross-component adaptive loop
filter for the Cb colour component is enabled for the current picture
specifies the aps_adaptation_parameter_set_id of the ALF APS
that the Cb colour component of the slices in the current picture refers to.
specifies that the cross-compoent adaptive loop
filter for the Cr colour component is enabled for the current picture.
specifies the aps_adaptation_parameter_set_id of the ALF APS
that the Cr colour component of the slices in the current picture refers to.
specifies whether LMCS is enabled for the current picture.
specifies the aps_adaptation_parameter_set_id of the LMCS APS.
specifies whether chroma residual scaling is
enabled and could be used for the current picture.
specifies that the explicit scaling list
is enabled for the current picture.
specifies the aps_adaptation_parameter_set_id of the
scaling list APS.
specifies whether information of virtual
boundaries is signalled in the PH syntax structure.
specifies the number of
ph_virtual_boundary_pos_x_minus1[i] syntax elements.
specifies the location of the i-th vertical
virtual boundary in units of luma samples divided by 8.
specifies the number of
ph_virtual_boundary_pos_y_minus1[i].
specifies the location of the i-th horizontal
virtual boundary in units of luma samples divided by 8.
affects the decoded picture output and removal processes
as specified in Annex C.
reference lists of #GstH266RefPicLists.
specifies that partition constraint
parameters are present.
specifies the difference between
the base 2 logarithm of the minimum size in luma samples of a luma leaf
block resulting from quadtree splitting of a CTU and the base 2 logarithm
of the minimum coding block size in luma samples for luma CUs.
specifies the maximum hierarchy
depth for coding units resulting from multi-type tree splitting of a
quadtree leaf.
specifies the difference between
the base 2 logarithm of the maximum size in luma samples of a luma coding
block that can be split using a binary split and the base 2 logarithm of
the minimum size in luma samples of a luma leaf block resulting from
quadtree splitting of a CTU.
specifies the difference between
the base 2 logarithm of the maximum size in luma samples of a luma coding
block that can be split using a ternary split and the base 2 logarithm of
the minimum size in luma samples of a luma leaf block resulting from
quadtree splitting of a CTU.
specifies the difference between
the base 2 logarithm of the minimum size in luma samples of a chroma leaf
block resulting from quadtree splitting of a chroma CTU with treeType equal
to DUAL_TREE_CHROMA and the base 2 logarithm of the minimum coding block
size in luma samples for chroma CUs with treeType equal to DUAL_TREE_CHROMA.
specifies the maximum hierarchy
depth for chroma coding units resulting from multi-type tree splitting of a
chroma quadtree leaf with treeType equal to DUAL_TREE_CHROMA.
specifies the difference between
the base 2 logarithm of the maximum size in luma samples of a chroma coding
block that can be split using a binary split and the base 2 logarithm of the
minimum size in luma samples of a chroma leaf block resulting from quadtree
splitting of a chroma CTU with treeType equal to DUAL_TREE_CHROMA.
specifies the difference between
the base 2 logarithm of the maximum size in luma samples of a chroma coding
block that can be split using a ternary split and the base 2 logarithm of
the minimum size in luma samples of a chroma leaf block resulting from
quadtree splitting of a chroma CTU with treeType equal to DUAL_TREE_CHROMA.
specifies the maximum cbSubdiv value of
coding units in intra slice that convey cu_qp_delta_abs and
cu_qp_delta_sign_flag.
specifies the maximum cbSubdiv value
of coding units in intra slice that convey cu_chroma_qp_offset_flag.
specifies the difference between the
base 2 logarithm of the minimum size in luma samples of a luma leaf block
resulting from quadtree splitting of a CTU and the base 2 logarithm of the
minimum luma coding block size in luma samples for luma CUs.
specifies the maximum hierarchy depth
for coding units resulting from multi-type tree splitting of a quadtree leaf.
specifies the difference between the
base 2 logarithm of the maximum size in luma samples of a luma coding block
that can be split using a binary split and the base 2 logarithm of the
minimum size in luma samples of a luma leaf block resulting from quadtree
splitting of a CTU.
specifies the difference between the
base 2 logarithm of the maximum size in luma samples of a luma coding block
that can be split using a ternary split and the base 2 logarithm of the
minimum size in luma samples of a luma leaf block resulting from quadtree
splitting of a CTU.
specifies the maximum cbSubdiv value of
coding units that in inter slice convey cu_qp_delta_abs and
cu_qp_delta_sign_flag.
specifies the maximum cbSubdiv value
of coding units in inter slice that convey cu_chroma_qp_offset_flag.
specifies whether temporal motion vector
predictor is enabled for the current picture.
specifies whether the collocated picture used for
temporal motion vector prediction is derived from RPL 0.
specifies the reference index of the collocated picture
used for temporal motion vector prediction.
specifies whether the merge mode with motion vector
difference uses only integer sample precision for the current picture.
specifies whether the mvd_coding syntax structure is parsed.
specifies that the bi-directional optical flow inter
prediction based inter bi-prediction is disabled for the current picture.
specifies whether the decoder motion vector refinement
based inter bi-prediction is disabled for the current picture.
specifies whether prediction refinement with optical
flow is disabled for the current picture.
prediction weight table of #GstH266PredWeightTable.
specifies the initial value of QpY to be used for the coding
blocks in the picture.
specifies whether the collocated residual samples of
both chroma components have inverted signs.
specifies whether SAO is enabled for the luma
component of the current picture.
specifies whether SAO is enabled for the chroma
component of the current picture.
specifies whether the deblocking parameters
could be present in the PH syntax structure.
specifies whether the deblocking filter is
disabled for the current picture.
specify the deblocking parameter offsets for beta that
are applied to the luma component for the slices in the current picture.
specify the deblocking parameter offsets for tC that
are applied to the luma component for the slices in the current picture.
specify the deblocking parameter offsets for beta that
are applied to the Cb component for the slices in the current picture.
specify the deblocking parameter offsets for tC that
are applied to the Cb component for the slices in the current picture.
specify the deblocking parameter offsets for beta that
are applied to the Cr component for the slices in the current picture.
specify the deblocking parameter offsets for tC that
are applied to the Cr component for the slices in the current picture.
specifies the length of the PH extension data in bytes.
could have any value.
whether this picture header is valid.
Structure defining the H266 picture timing.
calculate the number of clock ticks between the
nominal CPB removal times of the AU associated with the PT SEI message.
specifies whether cpb removal values are
present for the sublayer with TemporalId equal to i.
specifies whether
pt_cpb_removal_delay_delta_idx[i] is present in the PT SEI message.
specifies the index of the CPB removal delta.
is used to calculate the number of clock ticks
between the nominal CPB removal times of the AU.
is used to compute the DPB output time of the AU.
specifies whether the cpb alt syntax
elements could be present in the PT SEI message.
specifies whether alternative
initial CPB removal delay delta for the i-th sublayer for the j-th CPB for
the NAL HRD in units of a 90 kHz clock.
specifies whether alternative
initial CPB removal offset delta for the i-th sublayer for the j-th CPB for
the NAL HRD in units of a 90 kHz clock.
specifies an offset to be used in the derivation of
the nominal CPB removal times of the AU.
specifies an offset to be used in the derivation of
the DPB output times of the IRAP AU.
specifies the alternative initial
CPB removal delay delta for the i-th sublayer for the j-th CPB for the VCL
HRD in units of a 90 kHz clock.
specifies the alternative initial
CPB removal offset delta for the i-th sublayer for the j-th CPB for the VCL
HRD in units of a 90 kHz clock.
specifies an offset to be used in the derivation of
the nominal CPB removal times of the AU.
specifies an offset to be used in the derivation of
the DPB output times of the IRAP AU.
is used to compute the DPB output time of the AU when
DecodingUnitHrdFlag is equal to 1.
specifies the number of DUs in the AU the PT SEI
message is associated with.
specifies whether the syntax elements
pt_du_common_cpb_removal_delay_increment_minus1[i] are present.
specifies the duration between
the nominal CPB removal times of any two consecutive DUs in decoding order
in the AU.
specifies the number of NAL units in the i-th DU of
the AU the PT SEI message is associated with.
specifies the duration between the
nominal CPB removal times of the (i + 1)-th DU and the i-th DU.
specifies that the difference between
the final arrival time and the CPB removal time of the AU is present.
indicates the number of elemental picture
period intervals.
Structure defining the H266 weight table parameters.
the base 2 logarithm of the denominator for all
luma weighting factors.
the difference of the base 2 logarithm of
the denominator for all chroma weighting factors.
specifies the number of weights signalled for entries in
RPL 0 when pps_wp_info_in_ph_flag is equal to 1.
specifies whether weighting factors for the luma
component of list 0 prediction using RefPicList[0][i] are present.
specifies whether weighting factors for the chroma
prediction values of list 0 prediction using RefPicList[0][i] are present.
the difference of the weighting factor applied to the
luma prediction value for list 0 prediction using RefPicList[0][i].
the additive offset applied to the luma prediction value
for list 0 prediction using RefPicList[0][i].
the difference of the weighting factor applied to
the chroma prediction values for list 0 prediction.
the difference of the additive offset applied to
the chroma prediction values for list 0 prediction.
specifies the number of weights signalled for entries in
RPL 1.
specifies whether weighting factors for the luma
component of list 1 prediction using RefPicList[1][i] are present.
specifies whether weighting factors for the chroma
prediction values of list 1 prediction using RefPicList[1][i] are present.
the difference of the weighting factor applied to the
luma prediction value for list 1 prediction using RefPicList[1][i].
the additive offset applied to the luma prediction value
for list 1 prediction using RefPicList[1][i].
the difference of the weighting factor applied to
the chroma prediction values for list 1 prediction.
the difference of the additive offset applied to
the chroma prediction values for list 1 prediction.
H.266 Profiles.
Main 10 profile (A.3.1).
Main 10 Still Picture profile (A.3.1).
MultiLayer Main 10 profile (A.3.3).
MultiLayer Main 10 Still
Picture profile (A.3.3).
Main 10 4:4:4 profile (A.3.2).
Main 10 4:4:4 Still Picture
profile (A.3.2).
MultiLayer Main 10 4:4:4
profile (A.3.4).
MultiLayer Main 10
4:4:4 Still Picture profile (A.3.4).
Main 12 profile (A.3.5).
Main 12 4:4:4 profile (A.3.5).
Main 16 4:4:4 profile (A.3.5).
Main 12 Intra profile (A.3.5).
Main 12 4:4:4 Intra profile (A.3.5).
Main 16 4:4:4 Intra profile (A.3.5).
Main 12 Still Picture profile (A.3.5).
Main 12 4:4:4 Still Picture
profile (A.3.5).
Main 16 4:4:4 Still Picture
profile (A.3.5).
Structure defining the H266 profile, tier and level.
the profile id.
specifies the main tier or high tier.
indicates a level to which OlsInScope conforms
as specified in Annex A.
specifies whether sps_field_seq_flag for all
pictures in OlsInScope shall be equal to 0.
specifies whether the CVSs of OlsInScope
might contain more than one layer.
the #GstH266GeneralConstraintsInfo contains
the general constraints info.
specifies whether level information is present
in the profile_tier_level syntax structure for the sublayer representation.
the sublayer level idc.
specifies the number of the general_sub_profile_idc[i]
syntax elements.
specifies the i-th interoperability indicator registered
as specified by Rec. ITU-T T.35
Structure defining the H266 reference picture list.
specifies the number of entries in the
ref_pic_list_struct(listIdx, rplsIdx) syntax structure.
specifies whether the POC LSBs of the LTRP entries
indicated in the ref_pic_list_struct(listIdx, rplsIdx) syntax structure
are present in the same syntax structure.
specifies whether the i-th entry in the
ref_pic_list_struct(listIdx, rplsIdx) syntax structure is an ILRP entry.
specifies whether the i-th entry in the
ref_pic_list_struct(listIdx, rplsIdx) syntax structure is an STRP entry.
specifies the value of the variable
AbsDeltaPocSt[listIdx][rplsIdx][i].
specifies whether DeltaPocValSt[listIdx][rplsIdx]
is greater than or equal to 0.
specifies the value of the picture order count modulo
MaxPicOrderCntLsb of the picture referred to.
specifies the index of the ILRP entry of the i-th entry in the
ref_pic_list_struct.
the number of short term reference picture.
the number long term reference picture.
the number of inter layer reference picture.
the calculated DeltaPocValSt value.
Structure defining the H266 reference picture lists.
specifies whether RPL i in ref_pic_lists is derived based
on one of the ref_pic_list_struct(listIdx, rplsIdx) syntax structures
with listIdx equal to i in the SPS.
specifies the index into the list of the
ref_pic_list_struct(listIdx, rplsIdx) syntax structures.
reference list of #GstH266RefPicListStruct.
specifies the value of the picture order count
modulo MaxPicOrderCntLsb.
specifies whether
delta_poc_msb_cycle_lt[i][j] is present.
specifies the value of the variable FullPocLt[i][j].
The User data registered by Rec. ITU-T T.35 SEI message.
an itu_t_t35_country_code.
an itu_t_t35_country_code_extension_byte.
Should be ignored when @country_code is not 0xff
the size of @data in bytes
the data of itu_t_t35_payload_byte
excluding @country_code and @country_code_extension
Structure defining the H266 sei message.
the payload type of #GstH266SEIPayloadType.
The type of SEI message.
More other SEIs are specified in Rec.ITU-T H.274 | ISO/IEC 23002-7.
Buffering Period SEI Message.
Picture Timing SEI Message.
Registered user data.
User data Unregistered.
DU Information SEI Message.
Frame Field Info SEI Message.
Subpicture Level Information SEI.
Structure defining the H266 SPS.
specifies the identifier of the layer to which a VCL NAL unit
belongs or the identifier of a layer to which a non-VCL NAL unit applies.
provides an identifier for the SPS for reference by other
syntax elements.
specifies the VPS referred to by this SPS.
the #GstH266VPS this SPS refers to.
specifies the maximum number of temporal sublayers
that could be present in each CLVS referring to the SPS.
specifies the chroma sampling relative to the
luma sampling.
specifies the luma coding tree block size of each CTU.
the calculated ctu size.
specifies whether a profile_tier_level
syntax structure and a dpb_parameters syntax structure are present
in the SPS.
DPB parameters of #GstH266DPBParameters.
the profile tier and level in #GstH266ProfileTierLevel.
HRD parameters of #GstH266GeneralHRDParameters.
OLS HRD parameters of #GstH266OLSHRDParameters.
specifies whether GDR pictures are enabled and could
be present in the CLVS.
specifies whether the picture spatial
resolution might change within a CLVS.
specifies whether reference picture
resampling is enabled.
specifies the maximum width, in units of
luma samples, of each decoded picture.
specifies the maximum height, in units of
luma samples, of each decoded picture.
indicates whether the conformance cropping window
offset parameters follow next in the SPS.
specify left offset of the cropping window that
is applied to pictures.
specify right offset of the cropping window that
is applied to pictures.
specify top offset of the cropping window that
is applied to pictures.
specify bottom offset of the cropping window that
is applied to pictures.
specifies whether subpicture information is
present for the CLVS and there might be one or more than one subpicture
in each picture of the CLVS.
specifies the number of subpictures in each picture
in the CLVS.
specifies whether all subpicture boundaries in
the CLVS are treated as picture boundaries and there is no loop filtering
across the subpicture boundaries.
specifies whether all subpictures in the CLVS have
the same width and height.
specifies horizontal position of top-left CTU of
i-th subpicture in unit of CtbSizeY.
specifies vertical position of top-left CTU of
i-th subpicture in unit of CtbSizeY.
specifies the width of the i-th subpicture in units
of CtbSizeY.
specifies the height of the i-th subpicture in
units of CtbSizeY.
specifies whether the i-th subpicture of each
coded picture in the CLVS is treated as a picture.
specifies whether in-loop filtering
operations across subpicture boundaries is enabled and might be performed
across the boundaries of the i-th subpicture.
specifies the subpicture ID of the i-th subpicture.
specifies the number of bits used to represent the
syntax element sps_subpic_id[i].
specifies whether the
subpicture ID mapping is explicitly signalled.
specifies whether the subpicture ID mapping
is signalled in the SPS.
specifies the bit depth of the samples of the luma and
chroma arrays.
specifies whether a specific synchronization
process for context variables is invoked before decoding the CTU.
specifies whether signalling for entry
point offsets for tiles or tile-specific CTU rows could be present in the
slice headers of pictures.
specifies the value of the variable
MaxPicOrderCntLsb.
specifies whether the ph_poc_msb_cycle_present_flag
syntax element is present in PH syntax structures.
specifies the length, in bits, of the
ph_poc_msb_cycle_val syntax elements.
specifies the number of bytes of extra bits in the PH
syntax structure for coded pictures.
specifies whether the i-th extra bit is present
in PH syntax structures.
specifies the number of bytes of extra bits in the
slice headers for coded pictures.
specifies whether the i-th extra bit is present
in the slice headers of pictures.
used to control the presence of
dpb_max_dec_pic_buffering_minus1[i], dpb_max_num_reorder_pics[i],
and dpb_max_latency_increase_plus1[i] syntax elements in the
dpb_parameters syntax strucure.
specifies the minimum luma coding
block size.
specifies the presence of
ph_partition_constraints_override_flag in PH syntax structures.
specifies the default difference
between the base 2 logarithm of the minimum size in luma samples of a luma
leaf block resulting from quadtree splitting of a CTU and the base 2
logarithm of the minimum coding block size in luma samples.
specifies the default maximum
hierarchy depth for coding units resulting from multi-type tree splitting
of a quadtree leaf in slices with sh_slice_type equal to 2(I).
specifies the default difference
between the base 2 logarithm of the maximum size in luma samples of a luma
coding block that can be split using a binary split and the base 2 logarithm
of the minimum size in luma samples of a luma leaf block resulting from
quadtree splitting.
specifies the default difference
between the base 2 logarithm of the maximum size in luma samples of a luma
coding block that can be split using a ternary split and the base 2
logarithm of the minimum size in luma samples of a luma leaf block resulting
from quadtree splitting.
specifies whether each CTU is split into coding
units with 64x64 luma samples using an implicit quadtree split, and these
coding units are the root of two separate coding_tree syntax structure for
luma and chroma.
specifies the default difference
between the base 2 logarithm of the minimum size in luma samples of a chroma
leaf block resulting from quadtree splitting of a chroma CTU and the base 2
logarithm of the minimum coding block size in luma samples for chroma CUs
in slices with sh_slice_type equal to 2(I).
specifies the default maximum
hierarchy depth for chroma coding units resulting from multi-type tree
splitting of a chroma quadtree leaf in slices with sh_slice_type equal to 2(I).
specifies the default difference
between the base 2 logarithm of the maximum size in luma samples of a chroma
coding block that can be split using a binary split and the base 2 logarithm
of the minimum size in luma samples of a chroma leaf block resulting from
quadtree splitting of a chroma CTU in slices with sh_slice_type equal to 2(I).
specifies the default difference
between the base 2 logarithm of the maximum size in luma samples of a chroma
coding block that can be split using a ternary split and the base 2 logarithm
of the minimum size in luma samples of a chroma leaf block resulting from
quadtree splitting of a chroma CTU in slices with sh_slice_type equal to 2(I).
specifies the default difference between
the base 2 logarithm of the minimum size in luma samples of a luma leaf block
resulting from quadtree splitting of a CTU and the base 2 logarithm of the
minimum luma coding block size in luma samples for luma CUs in slices with
sh_slice_type equal to 0(B) or 1(P).
specifies the default maximum hierarchy
depth for coding units resulting from multi-type tree splitting of a quadtree
leaf in slices with sh_slice_type equal to 0 (B) or 1 (P).
specifies the default difference between
the base 2 logarithm of the maximum size in luma samples of a luma coding
block that can be split using a binary split and the base 2 logarithm of the
minimum size in luma samples of a luma leaf block resulting from quadtree
splitting of a CTU in slices with sh_slice_type equal to 0(B) or 1(P).
specifies the default difference between
the base 2 logarithm of the maximum size in luma samples of a luma coding
block that can be split using a ternary split and the base 2 logarithm of
the minimum size in luma samples of a luma leaf block resulting from quadtree
splitting of a CTU in slices with sh_slice_type equal to 0(B) or 1(P).
specifies whether the maximum transform
size in luma samples is equal to 64.
specifies whether transform_skip_flag could be
present in the transform unit syntax.
specifies the maximum block size used
for transform skip.
specifies whether intra_bdpcm_luma_flag and
intra_bdpcm_chroma_flag could be present in the coding unit syntax for
intra coding units.
specifies whether sps_explicit_mts_intra_enabled_flag
and sps_explicit_mts_inter_enabled_flag are present in the SPS.
specifies whether mts_idx could be present
in the intra coding unit syntax of the CLVS.
specifies whether mts_idx could be present
in the inter coding unit syntax of the CLVS.
specifies whether lfnst_idx could be present in intra
coding unit syntax.
specifies whether the joint coding of chroma
residuals is enabled for the CLVS.
specifies whether only one chroma QP mapping
table is signalled and this table applies to Cb and Cr residuals and
additionally to joint Cb-Cr residuals.
specifies the starting luma and chroma QP used to
describe the i-th chroma QP mapping table.
specifies the number of points used to
describe the i-th chroma QP mapping table.
specifies a delta value used to derive the input
coordinate of the j-th pivot point of the i-th chroma QP mapping table.
specifies a delta value used to derive the output
coordinate of the j-th pivot point of the i-th chroma QP mapping table.
specifies whether SAO is enabled for the CLVS.
specifies whether ALF is enabled for the CLVS.
specifies whether CCALF is enabled for the CLVS.
specifies whether LMCS is enabled for the CLVS.
specifies whether weighted prediction might be applied
to P slices referring to the SPS.
specifies whether explicit weighted prediction might
be applied to B slices referring to the SPS.
@guint8 long_term_ref_pics_flag: specifies whether no LTRP is used for inter
prediction of any coded picture in the CLVS.
specifies whether inter-layer prediction
is enabled for the CLVS and ILRPs might be used for inter prediction of one
or more coded pictures in the CLVS.
specifies whether RPL syntax elements could be present
in slice headers of slices with nal_unit_type equal to IDR_N_LP or IDR_W_RADL.
specifies whether the syntax element
sps_num_ref_pic_lists[1] and the syntax structure ref_pic_list_struct(1,
rplsIdx) are present.
specifies the number of the ref_pic_list_struct(listIdx,
rplsIdx) syntax structures with listIdx equal to i included in the SPS.
the reference list of #GstH266RefPicListStruct.
specifies whether horizontal wrap-around motion
compensation is enabled for the CLVS.
specifies whether temporal motion vector
predictors are enabled for the CLVS.
specifies whether subblock-based temporal motion vector
predictors are enabled and might be used in decoding of pictures with all
slices having sh_slice_type not equal to I in the CLVS.
specifies whether adaptive motion vector difference
resolution is enabled for the CVLS.
specifies whether the bi-directional optical flow inter
prediction is enabled for the CLVS.
specifies whether ph_bdof_disabled_flag
could be present in PH syntax structures referring to the SPS.
specifies whether symmetric motion vector difference
is enabled for the CLVS.
specifies whether decoder motion vector refinement based
inter bi-prediction is enabled for the CLVS.
specifies whether ph_dmvr_disabled_flag
could be present in PH syntax structures referring to the SPS.
specifies whether merge mode with motion vector
difference is enabled for the CLVS.
specifies whether the merge mode with motion
vector difference using only integer sample precision is enabled for the CLVS.
specifies the maximum number of merging motion
vector prediction (MVP) candidates supported in the SPS.
specifies whether subblock transform for inter-predicted
CUs is enabled for the CLVS.
specifies whether the affine model based motion
compensation is enabled for the CLVS.
specifies the maximum number of
subblock-based merging motion vector prediction candidates supported.
specifies whether the 6-parameter affine
model based motion compensation is enabled for the CLVS.
specifies whether adaptive motion vector
difference resolution is enabled for the CLVS.
specifies whether the affine motion compensation
refined with optical flow is enabled for the CLVS.
specifies whether ph_prof_disabled_flag
could be present in PH syntax structures.
bcw_enabled_flag: specifies whether bi-prediction with CU weights is enabled
for the CLVS.
specifies whether ciip_flag could be present in the
coding unit syntax for inter coding units.
specifies whether the geometric partition based motion
compensation is enabled for the CLVS.
specifies the maximum number of
geometric partitioning merge mode candidates supported in the SPS.
specifies the value of the variable
Log2ParMrgLevel.
specifies whether intra prediction with subpartitions is
enabled for the CLVS.
specifies whether intra prediction with multiple reference
lines is enabled for the CLVS.
specifies whether the matrix-based intra prediction is
enabled for the CLVS.
specifies whether the cross-component linear model intra
prediction from luma component to chroma component is enabled for the CLVS.
specifies whether prediction processes
operate in a manner designed for chroma sample positions that are not
horizontally shifted relative to corresponding luma sample positions.
specifies whether prediction processes
operate in a manner designed for chroma sample positions that are not
vertically shifted relative to corresponding luma sample positions.
specifies whether the palette prediction mode is
enabled for the CLVS.
specifies whether the adaptive colour transform is enabled
for the CLVS.
specifies whether minimum allowed quantization parameter
for transform skip mode.
specifies whether the IBC prediction mode is enabled for
the CLVS.
specifies the maximum number of IBC
merging block vector prediction (BVP) candidates.
specifies whether sps_num_ladf_intervals_minus2,
sps_ladf_lowest_interval_qp_offset, sps_ladf_qp_offset[i], and
sps_ladf_delta_threshold_minus1[i] are present in the SPS.
specifies the number of
sps_ladf_delta_threshold_minus1[i] and sps_ladf_qp_offset[i] syntax
elements that are present in the SPS.
specifies the offset used to derive the
variable qP.
specifies the offset array used to derive the variable qP.
is used to compute the values of
SpsLadfIntervalLowerBound[i].
specifies whether the use of an explicit
scaling list is enabled for the CLVS.
specifies whether scaling matrices
are disabled for blocks coded with LFNST for the CLVS.
specifies whether
scaling matrices are disabled and not applied to blocks of a coding unit.
specifies whether the colour
space of the scaling matrices is the colour space that does not use a colour
space conversion for the decoded residuals.
specifies whether dependent quantization is enabled
for the CLVS.
specifies whether sign bit hiding is enabled
for the CLVS.
specifies whether disabling in-loop
filtering across virtual boundaries is enabled for the CLVS.
specifies whether information of virtual
boundaries is signalled in the SPS.
specifies the number of
sps_virtual_boundary_pos_x_minus1[i] syntax elements.
specifies the location of the i-th vertical
virtual boundary in units of luma samples divided by 8.
specifies the number of
sps_virtual_boundary_pos_y_minus1[i] syntax elements.
specifies the location of the i-th horizontal
virtual boundary in units of luma samples divided by 8.
specifies whether the SPS contains a
general_timing_hrd_parameters syntax structure and an
ols_timing_hrd_parameters syntax structure.
specifies whether the
ols_timing_hrd_parameters syntax structure in the SPS includes HRD
parameters for sublayer representations.
indicates whether the CLVS conveys pictures that
represent fields.
specifies whether the syntax structure
vui_payload is present in the SPS RBSP syntax structure.
specifies the number of RBSP bytes in the
vui_payload syntax structure.
VUI parameters of #GstH266VUIParams.
specifies whether the syntax elements
sps_range_extension_flag and sps_extension_7bits are present.
specifies whether the sps_range_extension syntax
structure is present.
specifies whether no sps_extension_data_flag syntax
elements are present.
range parameters of #GstH266SPSRangeExtensionParams.
the calculated max width of the picture.
the calculated max height of the picture.
the cropped width of the picture.
the cropped height of the picture.
the x offset of the cropped window.
the y offset of the cropped window.
the calculated FPS numerator.
the calculated FPS denominator.
whether the SPS is valid.
Structure defining the H266 SPS range extension parameters.
specifies whether an extended dynamic range is
used for transform coefficients.
specifies whether
sh_ts_residual_coding_rice_idx_minus1 may be present in slice_header
syntax structures referring to the SPS.
specifies whether an alternative Rice parameter
derivation is used.
specifies whether Rice parameter
derivation is initialized at the start of each TU using statistics
accumulated from previous TUs.
specifies whether
sh_reverse_last_sig_coeff_flag is present in slice_header syntax
structures referring to the SPS.
Structure defining the H266 scalable nesting.
specifies whether the scalable-nested SEI messages apply to
specific OLSs.
specifies whether the scalable-nested SEI messages that apply
to specified OLSs or layers apply only to specific subpictures of the
specified OLSs or layers.
specifies the number of OLSs to which the scalable-nested
SEI messages apply.
is used to derive the variable NestingOlsIdx[i].
specifies whether the scalable-nested SEI messages apply to
all layers that have nuh_layer_id greater than or equal to the nuh_layer_id
of the current SEI NAL unit.
specifies the number of layers to which the
scalable-nested SEI messages apply.
specifies the nuh_layer_id value of the i-th layer to which the
scalable-nested SEI messages apply.
specifies the number of subpictures in each picture in
the multiSubpicLayers.
specifies the number of bits used to represent the
syntax element sn_subpic_id[i].
indicates the subpicture ID of the i-th subpicture in each
picture in the multiSubpicLayers.
specifies the number of scalable-nested SEI messages.
Structure defining the H266 scaling list parameters.
specifies whether the values of the scaling list are the
same as the values of a reference scaling list.
specifies whether the values of the scaling list can be
predicted from a reference scaling list.
specifies the reference scaling list used to derive the
predicted scaling matrix scalingMatrixPred.
used to derive the value of the variable ScalingMatrixDcRec.
specifies the difference between the current matrix coefficient
ScalingList.
the scaling list DC coef.
the calculated scaling list coefs.
Structure defining the H266 slice header.
the picture header of #GstH266PicHdr.
specifies the subpicture ID of the subpicture.
specifies the slice address of the slice.
could have any value.
specifies the number of tiles in the slice.
specifies the coding type of the slice.
affects the output of previously-decoded
pictures in the DPB.
specifies whether ALF is enabled for the Y, Cb, or Cr
colour component of the current slice.
specifies the number of ALF APSs.
specifies the aps_adaptation_parameter_set_id of the i-th
ALF APS that the luma component of the slice refers to.
specifies whether ALF is enabled for the Cb colour
component of the current slice.
specifies whether ALF is enabled for the Cr colour
component of the current slice.
specifies the aps_adaptation_parameter_set_id of the ALF
APS that the chroma component of the slice refers to.
specifies whether CCALF is enabled for the Cb
colour component.
specifies the aps_adaptation_parameter_set_id that the Cb
colour component of the slice refers to.
specifies whether CCALF is enabled for the Cr
colour component of the current slice.
specifies the aps_adaptation_parameter_set_id that the Cr
colour component of the slice refers to.
specifies that luma mapping is used for the current slice
and chroma scaling could be used for the current slice.
specifies that the explicit scaling list
is used in the scaling process for transform coefficients.
reference pictures lists of #GstH266RefPicLists.
specifies whether the syntax element
sh_num_ref_idx_active_minus1[0] is present for P and B slices.
is used for the derivation of the variable
NumRefIdxActive[i].
the calculated NumRefIdxActive value.
specifies the method for determining the initialization
table used in the initialization process for context variables.
specifies whether the collocated picture used for
temporal motion vector prediction is derived from RPL 0.
specifies the reference index of the collocated picture
used for temporal motion vector prediction.
prediction weight table of #GstH266PredWeightTable.
specifies the initial value of QpY to be used for the coding
blocks in the slice.
specifies a difference to be added to the value of
pps_cb_qp_offset when determining the value of the Qp'Cb quantization.
specifies a difference to be added to the value of
pps_cr_qp_offset when determining the value of the Qp' Cr quantization.
specifies a difference to be added to the value of
pps_joint_cbcr_qp_offset_value when determining the value of the Qp'CbCr.
specifies whether the
cu_chroma_qp_offset_flag could be present in the transform unit and palette
coding syntax of the current slice.
specifies whether SAO is used for the luma component
in the current slice.
specifies whether SAO is used for the chroma component
in the current slice.
specifies whether the deblocking parameters
could be present in the slice header.
specifies whether the deblocking filter is
disabled for the current slice.
specify the deblocking parameter offsets for beta that
are applied to the luma component for the current slice.
specify the deblocking parameter offsets for tC that
are applied to the luma component for the current slice.
specify the deblocking parameter offsets for beta that
are applied to the Cb component for the current slice.
specify the deblocking parameter offsets for tC that
are applied to the Cb component for the current slice.
specify the deblocking parameter offsets for beta that
are applied to the Cr component for the current slice.
specify the deblocking parameter offsets for tC that
are applied to the Cr component for the current slice.
specifies whether dependent quantization is used.
specifies whether sign bit hiding is not used
for the current slice.
specifies whether the residual_coding
syntax structure is used to parse the residual samples of a transform skip
block for the current slice.
specifies whether Rice parameter used
for the residual_ts_coding syntax structure in the current slice.
specifies whether the coordinates of the last
significant coefficient are coded relative to ( 0, 0 ) for each transform
block of the current slice.
specifies the length of the slice header
extension data in bytes.
could have any value.
NumEntryPoints specifies the number of entry points in
the current slice.
specifies the length, in bits, of the
sh_entry_point_offset_minus1[i] syntax elements.
specifies the i-th entry point offset in bytes.
size of the slice_header in bits.
number of emulation prevention bytes (EPB) in
this slice_header.
Types of Picture slice.
B slice type.
P slice type.
I slice type.
Structure defining the H266 sub layer HDR parameters.
specifies the maximum input bit rate for the CPB.
together with cpb_size_scale to specify the CPB size.
together with cpb_size_du_scale to specify
the CPB size.
specifies the maximum input bit rate for the CPB.
specifies whether to decode this bitstream by the HRD using
the CPB specification.
the calculated bit rate.
the calculated cpb size.
Structure defining the H266 subpicture level information.
specifies the number of reference levels signalled
for each subpicture sequences.
specifies whether to decode the sub-bitstreams
resulting from extraction of any subpicture sequence.
specifies whether the syntax elements
sli_ref_level_fraction_minus1[ i ] are present.
specifies the number of subpictures in the pictures in
the multiSubpicLayers in targetCvss.
specifies the maximum number of temporal sublayers in
the subpicture sequences.
specifies whether the level information for
subpicture sequences is present for sublayer representation.
indicates the i-th fraction of the bitstream
level limits associated with layers in targetCvss.
indicates the i-th level to which each subpicture sequence
conforms as specified in Annex A.
specifies the i-th fraction of the level limits
for the subpictures.
Structure defining the H266 VPS.
provides an identifier for the VPS for reference by other syntax
elements.
specifies the number of layers specified by the VPS.
specifies the maximum number of temporal sublayers
that may be present in a layer specified by the VPS.
specifies whether the syntax elements
vps_ptl_max_tid, vps_dpb_max_tid, and vps_hrd_max_tid are present.
specifies whether all layers specified by the
VPS are independently coded without using inter-layer prediction.
specifies the nuh_layer_id value of the i-th layer.
specifies whether the layer with index i does not
use inter-layer prediction.
specifies whether the syntax element
vps_max_tid_il_ref_pics_plus1 could be present.
specifies whether the layer with index j is not a
direct reference layer for the layer with index i.
specifies whether the pictures of the j-th layer
that are neither IRAP pictures nor GDR pictures with ph_recovery_poc_cnt
equal to 0 are not used as ILRPs for decoding of pictures of the i-th layer.
specifies whether each OLS specified by the VPS
contains only one layer and each layer specified by the VPS is an OLS with
the single included layer being the only output layer.
specifies whether the total number of OLSs specified by the
VPS is equal to vps_max_layers_minus1 + 1.
specifies the total number of OLSs specified by the VPS.
specifies the number of multi-layer OLSs (i.e., OLSs
that contain more than one layer).
specifies the index to the list of multi-layer OLSs
for the i-th OLS.
specifies the number of layers in the i-th OLS.
specifies the nuh_layer_id value of the j-th layer in
the i-th OLS.
specifies the total number of OLSs
specified by the VPS when vps_ols_mode_idc is equal to 2.
specifies whether the layer with nuh_layer_id
equal to vps_layer_id[j] is an output layer of the i-th OLS when
vps_ols_mode_idc is equal to 2.
specifies the number of output layers in
the i-th OLS.
specifies the nuh_layer_id value of the j-th
output layer in the i-th OLS.
specifies the number of sublayers in the
j-th layer in the i-th OLS.
specifies the number of profile_tier_level
syntax structures in the VPS.
specifies whether profile, tier, and general constraints
information are present in the i-th profile_tier_level syntax structure
in the VPS.
specifies the TemporalId of the highest sublayer representation.
specifies the profile, tier and level using
#GstH266ProfileTierLevel.
specifies the index of the profile_tier_level syntax
structure that applies to the i-th OLS.
specifies the number of dpb_parameters syntax
strutcures in the VPS.
is used to control the presence of
dpb_max_dec_pic_buffering_minus1[j], dpb_max_num_reorder_pics[j], and
dpb_max_latency_increase_plus1[j] syntax elements in the dpb_parameters
syntax strucures in the VPS.
specifies the TemporalId of the highest sublayer representation
for which the DPB parameters could be present in the i-th dpb_parameters
syntax strutcure in the VPS.
the DPB parameters using #GstH266DPBParameters.
specifies the width of each picture storage buffer for
the i-th multi-layer OLS.
specifies the height of each picture storage buffer
for the i-th multi-layer OLS.
specifies the greatest allowed value of
sps_chroma_format_idc for all SPSs.
specifies the greatest allowed value of
sps_bitdepth_minus8 for all SPSs.
specifies the index of the dpb_parameters syntax
structure that applies to the i-th multi-layer OLS.
specifies whether the VPS contains a
general_timing_hrd_parameters syntax structure and other HRD parameters.
HRD parameters in #GstH266GeneralHRDParameters.
specifies that the i-th
ols_timing_hrd_parameters syntax structure in the VPS contains HRD
parameters for the sublayer representations.
specifies the number of
ols_timing_hrd_parameters syntax structures present in the VPS.
specifies the TemporalId of the highest sublayer representation
for which the HRD parameters are contained in the i-th
ols_timing_hrd_parameters syntax structure.
OLS HRD parameters using #GstH266OLSHRDParameters.
specifies the index of the ols_timing_hrd_parameters
syntax structure that applies to the i-th multi-layer OLS.
specifies whether no vps_extension_data_flag syntax elements
are present in the VPS RBSP syntax structure.
could have any value, it is not defined in this version of
this Specification.
whether this VPS is valid.
Structure defining the H266 VUI parameters.
flag to indicate the progressive type of stream.
flag to indicate the interlaced type of stream.
indicate the presence of frame packing
arrangement sei message
flag to indicate the projected support.
specifies whether aspect_ratio_idc is present.
specifies whether the ratio is constant.
specifies the value of the sample aspect ratio of
the luma samples.
indicates the horizontal size of the sample aspect ratio.
indicates the vertical size of the sample aspect ratio.
specify whether the overscan_appropriate_flag
is present.
indicates whether the cropped decoded pictures
output are suitable for display using overscan.
specifies whether colour_primaries,
transfer_characteristics and matrix_coefficients are present.
indicates the chromaticity coordinates of the source
primaries.
indicates the opto-electronic
transfer characteristic.
describes the matrix coefficients used in deriving
luma and chroma signals.
indicates the full range of the color.
specifies whether chroma_sample_loc_type_frame,
chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field
are present.
specify the location of chroma for the frame.
specify the location of chroma for the
top field.
specify the location of chroma for the
bottom field.
calculated aspect ratio numerator value.
calculated aspect ratio denominator value.
Check whether @nal_type is CRA or not.
a #GstH266NalUnitType
Check whether @nal_type is coded video sequence start or not.
a #GstH266NalUnitType
Check whether @nal_type is GDR or not.
a #GstH266NalUnitType
Check whether @nal_type is IDR or not.
a #GstH266NalUnitType
Check whether @nal_type is IRAP or not.
a #GstH266NalUnitType
Check whether @nal_type is RADL or not.
a #GstH266NalUnitType
Check whether @nal_type is RASL or not.
a #GstH266NalUnitType
no color space
standard RGB color space
standard YUV color space
monochrome color space
Sampling values from RF 5371 for JPEG 2000 over RTP : https://datatracker.ietf.org/doc/rfc5371/C
Note: sampling extensions that are not listed in the RFC are signified by an _EXT at the end of the enum
no sampling
standard Red, Green, Blue color space.
standard Blue, Green, Red color space.
standard Red, Green, Blue, Alpha color space.
standard Blue, Green, Red, Alpha color space.
standard YCbCr color space; no subsampling.
standard YCbCr color space; Cb and Cr are subsampled horizontally by 1/2.
standard YCbCr color space; Cb and Cr are subsampled horizontally and vertically by 1/2.
standard YCbCr color space; Cb and Cr are subsampled vertically by 1/4 alternating the Cb and Cr component.
basically, a single component image of just multilevels of grey.
standard YCbCr color space, alpha channel, no subsampling,
standard YCbCr color space; Cb and Cr are subsampled vertically by 1/4
Maximum number of image components in a frame (Nf).
Number of elements in the quantization table.
Maximum number of image components in a scan (Ns).
The result of writing JPEG data into bit stream.
The writing succeeded
The input data to write is invalid
The output does not have enough size
An general error occurred when writing
JPEG entropy coding mode.
Huffman coding
arithmetic coding
Component-specification parameters.
Component identifier (Ci)
Horizontal sampling factor (Hi)
Vertical sampling factor (Vi)
Quantization table destination selector (Tqi)
Frame header.
Sample precision (P)
Number of samples per line (X)
Number of lines (Y)
Number of image components in frame (Nf)
Image components
Huffman table.
Number of Huffman codes of length i + 1 (Li)
If the Huffman table is valid, which means it has already
been parsed
Helper data structure that holds all AC/DC Huffman tables used to
decode an image.
DC Huffman tables
AC Huffman tables
Indicates the type of JPEG segment.
Start of frame marker code (Baseline)
Start of frame marker code (Extended Sequential, Huffman)
Start of frame marker code (Progressive, Huffman)
Start of frame marker code (Lossless, Huffman)
Start of frame marker code (Differential Sequential, Huffman)
Start of frame marker code (Differential Progressive, Huffman)
Start of frame marker code (Differential Lossless, Huffman)
Start of frame marker code (Extended Sequential, Arithmetic)
Start of frame marker code (Progressive, Arithmetic)
Start of frame marker code (Lossless, Arithmetic)
Start of frame marker code (Differential Sequential, Arithmetic)
Start of frame marker code (Differential Progressive, Arithmetic)
Start of frame marker code (Differential Lossless, Arithmetic)
Huffman table marker code
Arithmetic coding marker code
Start of image marker code
End of image marker code
Start of scan marker code
Define quantization table marker code
Define number of lines marker code
Define restart interval marker code
Application segment 0 marker code
Application segment 1 marker code
Application segment 2 marker code
Application segment 3 marker code
Application segment 4 marker code
Application segment 5 marker code
Application segment 6 marker code
Application segment 7 marker code
Application segment 8 marker code
Application segment 9 marker code
Application segment 10 marker code
Application segment 11 marker code
Application segment 12 marker code
Application segment 13 marker code
Application segment 14 marker code
Application segment 15 marker code
Comment marker code
JPEG encoding processes.
Baseline DCT
Extended sequential DCT
Progressive DCT
Lossless (sequential)
Quantization table.
Quantization table element precision (Pq)
Quantization table elements (Qk)
If the quantization table is valid, which means it has
already been parsed
Helper data structure that holds all quantization tables used to
decode an image.
All quantization tables
Component-specification parameters.
Scan component selector (Csj)
DC entropy coding table destination selector (Tdj)
AC entropy coding table destination selector (Taj)
Scan header.
Number of image components in scan (Ns)
Image components
A structure that contains the type of a segment, its offset and its size.
The type of the segment that starts at @offset
the data containing the jpeg segment starting at @offset
The offset to the segment start in bytes. This is the
exact start of the segment, no marker code included
The size of the segment in bytes, or -1 if the end was not
found. It is the exact size of the segment, without the sync byte and
marker code but including any length bytes.
Parses the @frame_hdr JPEG frame header structure members from @segment.
The caller must make sure there is enough data for the whole segment
available.
TRUE if the frame header was correctly parsed.
the JPEG segment
The #GstJpegFrameHdr structure to fill in
Parses the JPEG Huffman table structure members from @segment.
The caller must make sure there is enough data for the whole segment
available.
Note: @huf_tables represents the complete set of possible Huffman
tables. However, the parser will only write to the Huffman table
specified by the table destination identifier (Th). While doing so,
the @valid flag of the specified Huffman table will also be set to
%TRUE;
TRUE if the Huffman table was correctly parsed.
the JPEG segment
The #GstJpegHuffmanTables structure to fill in
Parses the JPEG quantization table structure members from @segment.
The caller must make sure there is enough data for the whole segment
available.
Note: @quant_tables represents the complete set of possible
quantization tables. However, the parser will only write to the
quantization table specified by the table destination identifier
(Tq). While doing so, the @valid flag of the specified quantization
table will also be set to %TRUE.
TRUE if the quantization table was correctly parsed.
the JPEG segment
The #GstJpegQuantTables structure to fill in
The caller must make sure there is enough data for the whole segment
available.
TRUE if the restart interval value was correctly parsed.
the JPEG segment
The parsed restart interval value
Parses the @scan_hdr JPEG scan header structure members from @segment.
The caller must make sure there is enough data for the whole segment
available.
TRUE if the scan header was correctly parsed
the JPEG segment
The #GstJpegScanHdr structure to fill in
LCEVC data for LCEVC codecs
parent #GstMeta
the id of the LCEVC meta
the parsed LCEVC enhancement data
Gets the #GstMetaInfo of the LCEVC meta.
the #GstLcevcMeta of the LCEVC meta.
Checks whether a packet type code is a slice.
The MPEG video packet type code
Defines the different pixel aspect ratios as
defined in: Table 6-12 -- Meaning of pixel aspect ratio
1:1 square
12:11 (625-type for 4:3 picture)
10:11 (525-type for 4:3 picture)
16:11 (625-type stretched for 16:9 picture)
40:33 (525-type stretched for 16:9 picture)
Extended par
The chroma format in use as
defined in: Table 6-13 -- Meaning of chroma_format
The group of video object plane structure as defined in:
6.2.4 Group of Video Object Plane
Different levels as defined in:
9- Profiles and levels
It is computed using:
Table G.1 — FLC table for profile_and_level_indication
A structure that contains the type of a packet, its offset and its size
the data containing packet starting at @offset
offset of the start of the packet (without the 3 bytes startcode), but
including the #GstMpeg4StartCode byte.
The size in bytes of the packet or %G_MAXUINT if the end wasn't found.
The size in bit of the resync marker.
the type of the packet that start at @offset
Result type of any parsing function.
The parsing went well
The bitstream was broken
There was no packet in the buffer
There was no packet end in the buffer
Different defined profiles as defined in:
9- Profiles and levels
It is computed using:
Table G.1 — FLC table for profile_and_level_indication
Indicates the usage of static sprite coding
or global motion compensation (GMC) as defined in:
Table V2 - 2 -- Meaning of sprite_enable codewords
The sprite trajectory structure as defined in:
7.8.4 Sprite reference point decoding and
6.2.5.4 Sprite coding
Defines the different startcodes present in the bitstream as
defined in: Table 6-3 — Start code values
The vop coding types as defined in:
Table 6-20 -- Meaning of vop_coding_type
intra-coded (I)
predictive-coded (P)
bidirectionally-predictive-coded (B)
sprite (S)
The video object layer structure as defined in:
6.2.3 Video Object Layer
The different video object layer shapes as defined in:
Table 6-16 — Video Object Layer shape type
The Video object plane structure as defined in:
6.2.5 Video Object Plane and Video Plane with Short Header
The video packet header structure as defined in:
6.2.5.2 Video Plane with Short Header
Size of the header in bit.
The video plane short header structure as defined in:
6.2.5.2 Video Plane with Short Header
The video signal type structure as defined in:
6.2.2 Visual Object Sequence and Visual Object.
The visual object structure as defined in:
6.2.2 Visual Object Sequence and Visual Object
The visual object sequence structure as defined in:
6.2.2 Visual Object Sequence and Visual Object
Defines the different visual object types as
defined in: Table 6-5 -- Meaning of visual object type
Chroma subsampling type.
Invalid (reserved for future use)
4:2:0 subsampling
4:2:2 subsampling
4:4:4 (non-subsampled)
The Mpeg Video Group of Picture structure.
Drop Frame Flag
Hour (0-23)
Minute (O-59)
Second (0-59)
Frame (0-59)
Closed Gop
Broken link
Mpeg-2 Levels.
High-P level (HL Progressive)
High level (HL)
High 1440 level (H-14)
Main level (ML)
Low level (LL)
Extra buffer metadata describing the contents of a MPEG1/2 Video frame
Can be used by elements (mainly decoders) to avoid having to parse
Mpeg video 1/2 packets if it can be done upstream.
The various fields are only valid during the lifetime of the #GstMpegVideoMeta.
If elements wish to use those for longer, they are required to make a copy.
parent #GstMeta
the #GstMpegVideoSequenceHdr if present in the buffer
the #GstMpegVideoSequenceExt if present in the buffer
the #GstMpegVideoSequenceDisplayExt if present in the
buffer.
the #GstMpegVideoPictureHdr if present in the buffer.
the #GstMpegVideoPictureExt if present in the buffer.
the #GstMpegVideoQuantMatrixExt if present in the buffer
A structure that contains the type of a packet, its offset and its size
the data containing the packet starting at @offset
the type of the packet that start at @offset, as a #GstMpegVideoPacketTypeCode
the offset of the packet start in bytes from @data. This is the
start of the packet itself without the sync code
The size in bytes of the packet or -1 if the end wasn't found. This
is the size of the packet itself without the sync code
Parses the @gop MPEG Video Group of Picture structure members from
video @packet
%TRUE if the gop could be parsed correctly, %FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoGop structure to fill
Parse the @ext MPEG Video Picture Extension structure members from
video @packet
%TRUE if the picture extension could be parsed correctly,
%FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoPictureExt structure to fill
Parsers the @pichdr MPEG Video Picture Header structure members
from video @packet
%TRUE if the picture sequence could be parsed correctly, %FALSE
otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoPictureHdr structure to fill
Parses the @quant MPEG Video Quantization Matrix Extension
structure members from video @packet
%TRUE if the quant matrix extension could be parsed correctly,
%FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoQuantMatrixExt structure to fill
Parses the @seqext MPEG Video Sequence Display Extension structure
members from video @packet
%TRUE if the seqext could be parsed correctly, %FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoSequenceDisplayExt
structure to fill
Parses the @seqext MPEG Video Sequence Extension structure members
from video @packet
%TRUE if the seqext could be parsed correctly, %FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoSequenceExt structure to fill
Parses the @seqhdr MPEG Video Sequence Header structure members
from video @packet
%TRUE if the seqhdr could be parsed correctly, %FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoSequenceHdr structure to fill
Parses the @seqscaleext MPEG Video Sequence Scalable Extension structure
members from video @packet
%TRUE if the seqext could be parsed correctly, %FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoSequenceScalableExt structure to fill
Parses the @GstMpegVideoSliceHdr structure members from @data
%TRUE if the slice could be parsed correctly, %FALSE otherwise.
The #GstMpegVideoPacket that carries the data
The #GstMpegVideoSliceHdr structure to fill
The #GstMpegVideoSequenceHdr header
The #GstMpegVideoSequenceScalableExt header
Indicates what type of packets are in this block, some are mutually
exclusive though - ie, sequence packs are accumulated separately. GOP &
Picture may occur together or separately.
Sequence extension code
Sequence Display extension code
Quantization Matrix extension code
Sequence Scalable extension code
Picture coding extension
Indicates the type of MPEG packet
Picture packet starting code
Slice min packet starting code
Slice max packet starting code
User data packet starting code
Sequence packet starting code
Extension packet starting code
Sequence end packet code
Group of Picture packet starting code
None packet code
The Mpeg2 Video Picture Extension structure.
Intra DC precision
Structure of the picture
Top field first
Frame
Concealment Motion Vectors
Q Scale Type
Intra Vlc Format
Alternate Scan
Repeat First Field
Chroma 420 Type
%TRUE if the frame is progressive %FALSE otherwise
The Mpeg2 Video Picture Header structure.
Temporal Sequence Number
Type of the frame
the full pel forward flag of
the frame: 0 or 1.
the full pel backward flag
of the frame: 0 or 1.
F code
Picture structure type.
Top field
Bottom field
Frame picture
Picture type.
Intra-coded (I) frame
Predictive-codec (P) frame
Bidirectionally predictive-coded (B) frame
D frame
Mpeg-2 Profiles.
4:2:2 profile (422)
High profile (HP)
Spatially Scalable profile (Spatial)
SNR Scalable profile (SNR)
Main profile (MP)
Simple profile (SP)
The Quant Matrix Extension structure that exposes quantization
matrices in zigzag scan order. i.e. the original encoded scan
order.
3-bit video_format field indicating PAL/NTSC etc.
%TRUE if colour information was provided
Valid if colour_description_flag is set
Valid if colour_description_flag is set
Valid if colour_description_flag is set
width of decoded frame sub-region to display
height of decoded frame sub-region to display
The Mpeg2 Video Sequence Extension structure.
mpeg2 decoder profile
mpeg2 decoder level
%TRUE if the frames are progressive %FALSE otherwise
indicates the chrominance format
Horizontal size
Vertical size
The bitrate
VBV buffer size
%TRUE if the sequence doesn't contain any B-pictures, %FALSE
otherwise
Framerate nominator code
Framerate denominator code
Escape bit. If set, the meaning of the
@profile and @level fields is different.
The Mpeg2 Video Sequence Header structure.
Width of each frame
Height of each frame
Value of the bitrate as is in the stream (400bps unit)
%TRUE if this stream uses constrained parameters.
%TRUE indicates the presence of intra_quantiser_matrix
intra-quantization table, in zigzag scan order
%TRUE indicates the presence of non_intra_quantiser_matrix
non-intra quantization table, in zigzag scan order
Calculated Pixel Aspect Ratio width
Calculated Pixel Aspect Ratio height
Calculated Framrate nominator
Calculated Framerate denominator
the real bitrate of the Mpeg video stream in bits per second, 0 if VBR stream
The Sequence Scalable Extension structure.
Data partitioning
Spatial Scalability
SNR Scalability
Temporal Scalability
The Mpeg2 Video Slice Header structure.
slice vertical position
Point where the bitstream shall be partitioned
Quantiser value (range: 1-31)
Slice Extension flag
Equal to one if all the macroblocks are intra macro blocks.
controls the semantics of slice_picture_id
Intended to aid recovery on severe bursts of
errors for certain types of applications
Structure for the advanced profile sequence headers specific parameters.
Structure that represents a Bitstream Data Unit.
Structure for entrypoint header, this will be used only in advanced profiles
Structure that represent picture in any profile or mode.
You should look at @ptype and @profile to know what is currently
in use.
Structure for sequence headers in any profile.
Structure that represents slice layer in advanced profile.
The @bfraction variable should be divided
by this constant to have the actual value.
Frame header.
indicates whether the frame is a key frame (1), or an
inter frame (0)
version number
indicates whether the frame is meant to be displayed (1),
or not (0)
the size in bytes of the Uncompressed Data Chunk
the size in bytes of the first partition (control
partition), excluding the uncompressed data chunk
the frame width in pixels
the frame height in pixels
horizontal scale code value
vertical scale code value
defines the YUV color space of the sequence
specifies if the decoder is required to clamp the
reconstructed pixel values
determines whether the normal or the simple loop
filter is used
controls the deblocking filter
controls the deblocking filter
determines the number of separate
partitions containing the DCT coefficients of the macroblocks
determines the size of each separate partition
containing the DCT coefficients of the macroblocks, including the
very last one (calculated size)
dequantization indices (see #GstVp8QuantIndices)
token probabilities (see #GstVp8TokenProbs)
probabilities used for motion vector decoding
(see #GstVp8MvProbs)
probabilities used for intra-prediction mode decoding
tree (see #GstVp8ModeProbs)
determines whether updated token
probabilities are used only for this frame or until further update
determines if the current decoded frame refreshes
the last frame reference buffer
determines if the current decoded frame
refreshes the golden frame
determines if the current decoded frame
refreshes the alternate reference frame
determines if the golden reference is
replaced by another reference
determines if the alternate reference is
replaced by another reference
controls the sign of motion vectors when the
golden frame is referenced
controls the sign of motion vectors when the
alternate frame is referenced
enables (0) or disables (1) the skipping of
macroblocks containing no non-zero coefficients
indicates the probability that the macroblock is
not skipped
indicates the probability of an intra macroblock
indicates the probability that the last reference frame
is used for inter-prediction
indicates the probability that the golden reference frame
is used for inter-prediction
last range decoder value for "Range"
last range decoder value for "Value"
number of bits left in range decoder "Value" (@rd_value)
the size in bits of the Frame Header, thus excluding
any Uncompressed Data Chunk bytes
VP8 frame types
Key frame, only have intra blocks
Inter frame, both intra and inter blocks
MB-level loop filter adjustments.
indicates if the MB-level loop filter
adjustment is on for the current frame
indicates if the delta values used in an
adjustment are updated in the current frame
indicates the adjustment delta value
corresponding to a certain used reference frame
indicates the adjustment delta value corresponding
to a certain MB prediction mode
Probabilities used for intra-prediction mode decoding tree.
Each probability value in thie structure is live across frames,
until they are reset to their default values on key frame.
indicates the branch probabilities of the luma
intra-prediction mode decoding tree
indicates the branch probabilities of the chroma
intra-prediction mode decoding tree
Probabilities used for motion vector decoding, with cumulative
updates applied.
Each probability value in this matrix is live across frames, until
they are reset to their default values on key frame.
MV probability
For more details about the structures, you can refer to the
specifications: VP8-rfc6386.pdf
segmentation feature data
MB-level loop filter adjustments
token probabilities
probabilities used for motion vector decoding
probabilities used for intra-prediction mode decoding tree.
Initializes the supplied @parser structure with its default values.
The #GstVp8Parser to initialize
Parses the VP8 bitstream contained in @data, and fills in @frame_hdr
with the information. The supplied @data shall point to a complete
frame since there is no sync code specified for VP8 bitstreams. Thus,
the @size argument shall represent the whole frame size.
a #GstVp8ParserResult
The #GstVp8Parser
The #GstVp8FrameHdr to fill
The data to parse
The size of the @data to parse
The result of parsing VP8 data.
The parsing succeeded
The data to parse is broken
An error accured when parsing
Range decoder.
the original bitstream buffer start
the original bitstream buffer size
Range decoder state.
current "Range" value
current "Value" value
number of bits left in "Value" for decoding
Reference Frame types
Intra reference frame
Last Reference frame
Golden Reference frame
Alternate Reference frame
Segmentation feature data.
enables the segmentation feature for the
current frame
determines if the MB segmentation map
is updated in the current frame
indicates if the segment feature data
is updated in the current frame
indicates the feature data update mode (0:
delta, 1: absolute value)
indicates the update value for the segment
quantizer
indicates the update value for the loop filter level
indicates the branch probabilities of the segment_id
decoding tree
Token probabilities, with cumulative updates applied.
Each probability value in this matrix is live across frames, until
they are reset to their default values on key frame.
token probability
Bit depths of encoded frames
Bit depth is 8
@GST_VP9_BIT_DEPTH_10 Bit depth is 10
Bit depth is 12
Possible color value ranges
Y range is [16-235], UV range is [16-240]
Full range for Y,U and V [0-255]
Supported ColorSpace standards
Unknown color space
BT.601
BT.709
SMPTE.170
SMPTE.240
BT.2020
sRGB
Frame header
encoded profile
display already decoded frame instead of doing the decoding
which frame to show if show_existing_frame is true
frame type
indicate whether it is a displayable frame or not
error resilent mode
frame width
frame height
display size enabled (cropping)
display width
display height
frame context index
intra only frame
reset frame context
refresh reference frame flags
reference frame index
sign bias for selecting altref,last and golden frames
allow hight precision motion vector
interpolation filter type
refresh frame context indicator
enable or disable parallel decoding support.
loopfilter values
quantization indices
segmentation info
tile row indicator
tile column indicator
first partition size (after the uncompressed header)
lossless mode decode
length of uncompressed header
VP9 frame types
Key frame, only have intra blocks
Inter frame, both intra and inter blocks
Interpolation Filters Types
EightTap interpolation filter
Smooth interpolation filter
Shart interpolation filter
Bilinear interpolation filter
Selectable interpolation filter
Loop filter values
indicates loop filter level for the current frame
indicates sharpness level for thecurrent frame
indicate if filter adjust is on
indicates if the delta values used in an
adjustment are updated in the current frame
indicate which ref deltas are updated
Loop filter strength adjustments based on
frame type (intra, inter)
indicate with mode deltas are updated
Loop filter strength adjustments based on
mode (zero, new mv)
For more details about the structures, you can refer to the
specifications:
GstVp9ParserPrivate struct to keep track of state variables
horizontal subsampling
vertical subsampling
bit depth of the stream
color space standard
color range standard
decoding tree probabilities
segment prediction probabiilties
Segmentation info
Frees @parser.
the #GstVp9Parser to free
Parses the VP9 bitstream contained in @data, and fills in @frame_hdr
with the information. The @size argument represent the whole frame size.
a #GstVp9ParserResult
The #GstVp9Parser
The #GstVp9FrameHdr to fill
The data to parse
The size of the @data to parse
Parses the VP9 bitstream contained in @data, and fills in @superframe_info
with the information. The @size argument represent the whole superframe size.
If @data is not superframe but normal frame, the parser returns
GST_VP9_PARSER_OK, frame_size[0] is set to @size and frames_in_superframe is
set to 1. Also this method does not validate vp9frame header and verifying
the frame header is caller's responsibility.
a #GstVp9ParserResult
The #GstVp9Parser
The #GstVp9SuperframeInfo to fill
The data to parse
The size of the @data to parse
Creates a new #GstVp9Parser. It should be freed with
gst_vp9_parser_free() after use.
a new #GstVp9Parser
Dequantization indices.
indicates the dequantization table index used for the
luma AC coefficients
indicates the delta value that is added to the
baseline index to obtain the luma DC coefficient dequantization
index
indicates the delta value that is added to the
baseline index to obtain the chroma DC coefficient dequantization
index
indicates the delta value that is added to the
baseline index to obtain the chroma AC coefficient dequantization
index
Reference Frame types
Intra reference frame
Last Reference frame
Golden Reference frame
Alternate Reference frame
Segmentation info kept across multiple frames
loop filter level
AC quant scale for luma(Y) component
DC quant scale for luma(Y) component
@chroma_ac_quant_scale AC quant scale for chroma(U/V) component
DC quant scale for chroma (U/V) component
alternate reference frame enablement
alternate reference frame
a block skip mode that implies both the use of a (0,0)
motion vector and that no residual will be coded
Segmentation info
enables the segmentation feature for the current frame
determines if segmentation is updated in the current frame
determines if tree probabilities updated or not
segment tree probabilities
determines if prediction probabilities updated or not
prediction probabilities
interpretation of segment data values
type of map update
indicates if the segment feature data
is updated in the current frame
segment feature data
Segmentation info for each segment
indicate alternate quantizer enabled at segment level
alternate quantizer value
indicate alternate loop filter enabled at segment level
alternate loop filter
indicate alternate reference frame at segment level
alternate reference frame
a block skip mode that implies both the use of a (0,0)
motion vector and that no residual will be coded.
Superframe info
indicates the number of bytes needed to code each frame size
indicates the number of frames within this superframe
specifies the size in bytes of frame number i (zero indexed) within this superframe
indicates the total size of the superframe_index
Generating the according AV1 bit stream OBU by providing the frame header.
a #GstAV1BitWriterResult
the frame header of #GstAV1FrameHeaderOBU to write
the sequence header of #GstAV1SequenceHeaderOBU to refer
specifies the temporal level of the data contained in the OBU.
specifies the spatial level of the data contained in the OBU.
whether the OBU header contains the OBU size.
the bit stream generated by the frame header
the size in bytes of the input and output
While Generating the according AV1 bit stream OBU by providing the frame
header, this function also return bit offsets of qindex, segmentation and
cdef, etc. These offsets can help to change the content of these fields
later. This function is useful if the encoder may change the content of
the frame header after generating it. For example, some HW needs user to
provide a frame header before the real encoding job, and it will change
the according fields in the frame header during the real encoding job.
a #GstAV1BitWriterResult
the frame header of #GstAV1FrameHeaderOBU to write
the sequence header of #GstAV1SequenceHeaderOBU to refer
specifies the temporal level of the data contained in the OBU.
specifies the spatial level of the data contained in the OBU.
whether the OBU header contains the OBU size.
>0 means a fixed OBU header size field.
return the qindex fields offset in bits.
return the segmentation fields offset in bits.
return the loopfilter fields offset in bits.
return the cdef fields offset in bits.
return the cdef fields size in bits.
the bit stream generated by the frame header
the size in bytes of the input and output
Generating the according AV1 bit stream OBU by providing the meta data.
a #GstAV1BitWriterResult
the meta data of #GstAV1MetadataOBU to write
specifies the temporal level of the data contained in the OBU.
specifies the spatial level of the data contained in the OBU.
whether the header contain size feild
the bit stream generated by the meta data
the size in bytes of the input and output
Generating the according AV1 bit stream OBU by providing the sequence header.
a #GstAV1BitWriterResult
the sequence header of #GstAV1SequenceHeaderOBU to write
whether the header contain size feild
the bit stream generated by the sequence header
the size in bytes of the input and output
Generating the according temporal delimiter AV1 bit stream OBU.
a #GstAV1BitWriterResult
whether the header contain size feild
the bit stream generated
the size in bytes of the input and output
Allocates a new #GstAV1Parser,
a newly-allocated #GstAV1Parser
Attaches GstLcevcMeta metadata to @buffer.
the #GstLcevcMeta on @buffer.
a #GstBuffer
the parsed LCEVC enhancement data
Creates and adds a #GstMpegVideoMeta to a @buffer.
Provided structures must either be %NULL or GSlice-allocated.
a newly created #GstMpegVideoMeta
a #GstBuffer
a #GstMpegVideoSequenceHdr
a #GstMpegVideoSequenceExt
a #GstMpegVideoSequenceDisplayExt
a #GstMpegVideoPictureHdr
a #GstMpegVideoPictureExt
a #GstMpegVideoQuantMatrixExt
Find the #GstLcevcMeta on @buffer with the lowest @id.
Buffers can contain multiple #GstLcevcMeta metadata items when dealing with
multiview buffers.
the #GstLcevcMeta with lowest id (usually 0) or %NULL when there
is no such metadata on @buffer.
a #GstBuffer
Find the #GstLcevcMeta on @buffer with the given @id.
Buffers can contain multiple #GstLcevcMeta metadata items when dealing with
multiview buffers.
the #GstLcevcMeta with @id or %NULL when there is no such metadata
on @buffer.
a #GstBuffer
a metadata id
It offers bitstream parsing in both AVC (length-prefixed) and Annex B
(0x000001 start code prefix) format. To identify a NAL unit in a bitstream
and parse its headers, first call:
* #gst_h264_parser_identify_nalu to identify a NAL unit in an Annex B type bitstream
* #gst_h264_parser_identify_nalu_avc to identify a NAL unit in an AVC type bitstream
The following functions are then available for parsing the structure of the
#GstH264NalUnit, depending on the #GstH264NalUnitType:
* From %GST_H264_NAL_SLICE to %GST_H264_NAL_SLICE_IDR: #gst_h264_parser_parse_slice_hdr
* %GST_H264_NAL_SEI: #gst_h264_parser_parse_sei
* %GST_H264_NAL_SPS: #gst_h264_parser_parse_sps
* %GST_H264_NAL_PPS: #gst_h264_parser_parse_pps
* Any other: #gst_h264_parser_parse_nal
One of these functions *must* be called on every NAL unit in the bitstream,
in order to keep the internal structures of the #GstH264NalParser up to
date. It is legal to call #gst_h264_parser_parse_nal on NAL units of any
type, if no special parsing of the current NAL unit is required by the
application.
For more details about the structures, look at the ITU-T H.264 and ISO/IEC 14496-10 – MPEG-4
Part 10 specifications, available at:
* ITU-T H.264: http://www.itu.int/rec/T-REC-H.264
* ISO/IEC 14496-10: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=56538
Provides useful functions for parsing JPEG images
For more details about the structures, you can refer to the
specifications: ISO-IEC-14496-2_2004_MPEG4_VISUAL.pdf
Provides useful functions for mpeg videos bitstream parsing.
For more details about the structures, look at the
smpte specifications (S421m-2006.pdf).
Parses @data and fills @packet with the information of the next packet
found.
Note that the type of the packet is meaningless in this case.
a #GstMpeg4ParseResult
The #GstMpeg4Packet to fill
The data to parse
offset from which to start the parsing
The size of the @data to parse
Generating the according h264 bit stream of an aud.
a #GstH264BitWriterResult
indicate the possible slice types list just
as the H264 spec defines
whether adding the nal start code
the bit stream generated by the aud
the size in bytes of the input and output
Converting a bit stream into a real nal packet. If the bit stream already
has a start code, it will be replaced by the new one specified by the
@nal_prefix_size and @packetized. It is assured that the output aligns to
the byte and the all the emulations are inserted.
a #GstH264BitWriterResult
the size in bytes for the prefix of a nal, may
be 2, 3 or 4
whether to write the bit stream in packetized format,
which does not have the start code but has a @nal_prefix_size bytes'
size prepending to the real nal data
whether the input already has a start code
whether to add rbsp trailing bits to make the output
aligned to byte
the input bit stream
the size in bits of the input bit stream
the output bit stream converted to a real nal
the size in bytes of the output
Generates the according h264 bit stream nal bitstream of a filler with @size.
a #GstH264BitWriterResult
whether adding the nal start code
number of filler codes to add
bit stream storage
size in bytes of the input and output
Generating the according h264 bit stream by providing the pps.
a #GstH264BitWriterResult
the pps of #GstH264PPS to write
whether adding the nal start code
the bit stream generated by the pps
the size in bytes of the input and output
Generating the according h264 bit stream by providing sei messages.
a #GstH264BitWriterResult
An array of #GstH264SEIMessage to write
whether adding the nal start code
the bit stream generated by the sei messages
the size in bytes of the input and output
Generating the according h264 bit stream by providing the slice header.
a #GstH264BitWriterResult
the slice header of #GstH264SliceHdr to write
whether adding the nal start code
the slice's nal type of #GstH264NalUnitType
whether the slice is a reference
the bit stream generated by the slice header
the size in bytes of the input and output
the trail bits number which is not byte aligned.
Generating the according h264 bit stream by providing the sps.
a #GstH264BitWriterResult
the sps of #GstH264SPS to write
whether adding the nal start code
the bit stream generated by the sps
the size in bytes of the input and output
Creates raw byte-stream format (a.k.a Annex B type) SEI nal unit data
from @messages
a #GstMemory containing a SEI nal unit
a length of start code prefix, must be 3 or 4
a GArray of #GstH264SEIMessage
Creates raw packetized format SEI nal unit data from @messages
a #GstMemory containing a SEI nal unit
a size of nal length field, allowed range is [1, 4]
a GArray of #GstH264SEIMessage
Creates a new #GstH264NalParser. It should be freed with
gst_h264_nal_parser_free after use.
a new #GstH264NalParser
Parses @data, and fills the @pps structure.
The resulting @pps data structure shall be deallocated with the
gst_h264_pps_clear() function when it is no longer needed, or prior
to parsing a new PPS NAL unit.
a #GstH264ParserResult
a #GstH264NalParser
The %GST_H264_NAL_PPS #GstH264NalUnit to parse
The #GstH264PPS to fill.
Parses @data, and fills the @sps structure.
a #GstH264ParserResult
The #GST_H264_NAL_SPS #GstH264NalUnit to parse
The #GstH264SPS to fill.
Parses @data, and fills in the @sps structure.
This function fully parses @data and allocates all the necessary
data structures needed for MVC extensions. The resulting @sps
structure shall be deallocated with gst_h264_sps_clear() when it is
no longer needed.
Note: if the caller doesn't need any of the MVC-specific data, then
gst_h264_parser_parse_sps() is more efficient because those extra
syntax elements are not parsed and no extra memory is allocated.
a #GstH264ParserResult
The #GST_H264_NAL_SUBSET_SPS #GstH264NalUnit to parse
The #GstH264SPS to fill.
Parses @data for packetized (e.g., avc/avc3) bitstream and
sets @nalus. In addition to nal identifying process,
this method scans start-code prefix to split malformed packet into
actual nal chunks.
a #GstH264ParserResult
a #GstH264NalParser
The data to parse, containing an AVC coded NAL unit
the offset in @data from which to parse the NAL unit
the size of @data
the size in bytes of the AVC nal length prefix.
a caller allocated GArray of #GstH264NalUnit where to store parsed nal headers
the size of consumed bytes
Parses the headers of an Annex B coded NAL unit from @data and puts the
result into @nalu.
a #GstH264ParserResult
a #GstH264NalParser
The data to parse, containing an Annex B coded NAL unit
the offset in @data from which to parse the NAL unit
the size of @data
The #GstH264NalUnit to store the identified NAL unit in
Parses the headers of an AVC coded NAL unit from @data and puts the result
into @nalu.
a #GstH264ParserResult
a #GstH264NalParser
The data to parse, containing an AVC coded NAL unit
the offset in @data from which to parse the NAL unit
the size of @data
the size in bytes of the AVC nal length prefix.
The #GstH264NalUnit to store the identified NAL unit in
Parses @data and fills @nalu from the next nalu data from @data.
This differs from @gst_h264_parser_identify_nalu in that it doesn't
check whether the packet is complete or not.
Note: Only use this function if you already know the provided @data
is a complete NALU, else use @gst_h264_parser_identify_nalu.
a #GstH264ParserResult
a #GstH264NalParser
The data to parse
the offset from which to parse @data
the size of @data
The #GstH264NalUnit where to store parsed nal headers
Copy @au into new #GstBuffer and insert @sei into the #GstBuffer.
The validation for completeness of @au and @sei is caller's responsibility.
Both @au and @sei must be byte-stream formatted
a SEI inserted #GstBuffer or %NULL
if cannot figure out proper position to insert a @sei
a #GstH264NalParser
a #GstBuffer containing AU data
a #GstMemory containing a SEI nal
Copy @au into new #GstBuffer and insert @sei into the #GstBuffer.
The validation for completeness of @au and @sei is caller's responsibility.
Nal prefix type of both @au and @sei must be packetized, and
also the size of nal length field must be identical to @nal_length_size
a SEI inserted #GstBuffer or %NULL
if cannot figure out proper position to insert a @sei
a #GstH264NalParser
a size of nal length field, allowed range is [1, 4]
a #GstBuffer containing AU data
a #GstMemory containing a SEI nal
Parses AVCDecoderConfigurationRecord data and fill into @config.
The caller must free @config via gst_h264_decoder_config_record_free()
This method does not parse SPS and PPS and therefore the caller needs to
parse each NAL unit via appropriate parsing method.
a #GstH264ParserResult
a #GstH264NalParser
the data to parse
the size of @data
parsed #GstH264DecoderConfigRecord data
This function should be called in the case one doesn't need to
parse a specific structure. It is necessary to do so to make
sure @nalparser is up to date.
a #GstH264ParserResult
a #GstH264NalParser
The #GstH264NalUnit to parse
Parses @nalu containing a Picture Parameter Set, and fills @pps.
The resulting @pps data structure must be deallocated by the caller using
gst_h264_pps_clear().
a #GstH264ParserResult
a #GstH264NalParser
The %GST_H264_NAL_PPS #GstH264NalUnit to parse
The #GstH264PPS to fill.
Parses @nalu containing one or more Supplementary Enhancement Information messages,
and allocates and fills the @messages array.
a #GstH264ParserResult
a #GstH264NalParser
The %GST_H264_NAL_SEI #GstH264NalUnit to parse
The GArray of #GstH264SEIMessage to fill. The caller must free it when done.
Parses @nalu containing a coded slice, and fills @slice.
a #GstH264ParserResult
a #GstH264NalParser
The %GST_H264_NAL_SLICE to %GST_H264_NAL_SLICE_IDR #GstH264NalUnit to parse
The #GstH264SliceHdr to fill.
Whether to parse the pred_weight_table or not
Whether to parse the dec_ref_pic_marking or not
Parses @nalu containing a Sequence Parameter Set, and fills @sps.
a #GstH264ParserResult
a #GstH264NalParser
The #GST_H264_NAL_SPS #GstH264NalUnit to parse
The #GstH264SPS to fill.
Parses @data, and fills in the @sps structure.
This function fully parses @data and allocates all the necessary
data structures needed for MVC extensions. The resulting @sps
structure shall be deallocated with gst_h264_sps_clear() when it is
no longer needed.
Note: if the caller doesn't need any of the MVC-specific data, then
gst_h264_parser_parse_sps() is more efficient because those extra
syntax elements are not parsed and no extra memory is allocated.
a #GstH264ParserResult
a #GstH264NalParser
The #GST_H264_NAL_SUBSET_SPS #GstH264NalUnit to parse
The #GstH264SPS to fill.
Replace internal Picture Parameter Set struct corresponding to id of @pps
with @pps. @nalparser will mark @pps as last parsed pps.
a #GstH264ParserResult
a #GstH264NalParser
a #GstH264PPS.
Replace internal Sequence Parameter Set struct corresponding to id of @sps
with @sps. @nalparser will mark @sps as last parsed sps.
a #GstH264ParserResult
a #GstH264NalParser
a #GstH264SPS.
Returns a #GstH264Profile for the @string.
the #GstH264Profile of @string or %GST_H265_PROFILE_INVALID on error
the descriptive name for #GstH264Profile
Converts quantization matrix @quant from zigzag scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
zigzag scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from zigzag scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
zigzag scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
sei: The #GstH264SEIMessage to clear
Frees allocated data in @sei if any.
Returns the descriptive name for the #GstH264SliceType.
the name for @slice_type or %NULL on error
a #GstH264SliceType
Calculate framerate of a video sequence using @sps VUI information,
@field_pic_flag from a slice header and @pic_struct from #GstH264PicTiming SEI
message.
If framerate is variable or can't be determined, @fps_num will be set to 0
and @fps_den to 1.
Current Sequence Parameter Set
Current @field_pic_flag, obtained from latest slice header
@pic_struct value if available, 0 otherwise
The resulting fps numerator
The resulting fps denominator
Creates raw byte-stream format (a.k.a Annex B type) SEI nal unit data
from @messages
a #GstMemory containing a PREFIX SEI nal unit
a nal unit layer id
a nal unit temporal identifier
a length of start code prefix, must be 3 or 4
a GArray of #GstH265SEIMessage
Creates raw packetized format SEI nal unit data from @messages
a #GstMemory containing a PREFIX SEI nal unit
a nal unit layer id
a nal unit temporal identifier
a size of nal length field, allowed range is [1, 4]
a GArray of #GstH265SEIMessage
Return the H265 profile from @sps.
a #GstH265Profile
a #GstH265SPS
Parses @data, and fills the @pps structure.
a #GstH265ParserResult
a #GstH265Parser
The %GST_H265_NAL_PPS #GstH265NalUnit to parse
The #GstH265PPS to fill.
parser: The #GstH265Parser
Parses @data, and fills the @sps structure.
a #GstH265ParserResult
The %GST_H265_NAL_SPS #GstH265NalUnit to parse
The #GstH265SPS to fill.
Whether to parse the vui_params or not
parser: The #GstH265Parser
Parses @data, and fills the @sps structure.
a #GstH265ParserResult
The %GST_H265_NAL_SPS #GstH265NalUnit to parse
The #GstH265SPS to fill.
The #GstH265SPSEXT matching the #GstH265SPS to fill.
Whether to parse the vui_params or not
Parses @data, and fills the @vps structure.
a #GstH265ParserResult
The %GST_H265_NAL_VPS #GstH265NalUnit to parse
The #GstH265VPS to fill.
Creates a new #GstH265Parser. It should be freed with
gst_h265_parser_free after use.
a new #GstH265Parser
Returns a #GstH265Profile for the @string.
the #GstH265Profile of @string or %GST_H265_PROFILE_INVALID on error
the descriptive name for #GstH265Profile
Returns the descriptive name for the #GstH265Profile.
the name for @profile or %NULL on error
a #GstH265Profile
Converts quantization matrix @quant from uprightdiagonal scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from zigzag scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
uprightdiagonal scan order and store the resulting factors
into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
zigzag scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from uprightdiagonal scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from zigzag scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
uprightdiagonal scan order and store the resulting factors
into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
zigzag scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Copies @src_sei into @dst_sei
%TRUE if everything went fine, %FALSE otherwise
The destination #GstH265SEIMessage to copy into
The source #GstH265SEIMessage to copy from
sei: The #GstH265SEIMessage to free
Frees @sei fields.
Returns the descriptive name for the #GstH265SliceType.
the name for @slice_type or %NULL on error
a #GstH265SliceType
Parses @data, and fills the @aps structure.
a #GstH266ParserResult
a #GstH266Parser
The APS #GstH266NalUnit to parse
The #GstH266APS to fill.
Parses @data, and fills the @pps structure.
a #GstH266ParserResult
a #GstH266Parser
The #GST_H266_NAL_PPS #GstH266NalUnit to parse
The #GstH266PPS to fill.
Parses @data, and fills the @sps structure.
a #GstH266ParserResult
The #GstH266Parser
The #GST_H266_NAL_SPS #GstH266NalUnit to parse
The #GstH266SPS to fill.
Parses @data, and fills the @vps structure.
a #GstH266ParserResult
The #GST_H266_NAL_VPS #GstH266NalUnit to parse
The #GstH266VPS to fill.
Creates a new #GstH266Parser. It should be freed with
gst_h266_parser_free after use.
a new #GstH266Parser
Returns a #GstH266Profile for the @string.
the #GstH266Profile of @string or %GST_H266_PROFILE_INVALID on error
the descriptive name for #GstH266Profile
Returns the descriptive name for the #GstH266Profile.
the name for @profile or %NULL on error
a #GstH266Profile
Generating the according JPEG bit stream by providing the frame header.
a #GstJpegBitWriterResult
the frame header of #GstJpegFrameHdr to write
the #GstJpegMarker id for this segment
the bit stream generated by this frame header
the size in bytes of the input and output
Generating the according JPEG bit stream by providing the huffman tables.
a #GstJpegBitWriterResult
the huffman tables of #GstJpegHuffmanTables to write
the bit stream generated by the huffman tables
the size in bytes of the input and output
Generating the according JPEG bit stream by providing the quantization tables.
a #GstJpegBitWriterResult
the quantization tables of #GstJpegQuantTables to write
the bit stream generated by the quantization tables
the size in bytes of the input and output
Generating the according JPEG bit stream by providing the interval value.
a #GstJpegBitWriterResult
the interval value for restart
the bit stream generated by the interval value
the size in bytes of the input and output
Generating the according JPEG bit stream by providing the scan header.
a #GstJpegBitWriterResult
the scan header of #GstJpegScanHdr to write
the bit stream generated by this scan header
the size in bytes of the input and output
Generating the bit stream for a JPEG segment.
a #GstJpegBitWriterResult
the #GstJpegMarker id for this segment
the user provided bit stream data
the size of the segment data
the generated bit stream of this segment
the size in bytes of the input and output
Fills in @huf_tables with the default AC/DC Huffman tables, as
specified by the JPEG standard.
The default DC/AC Huffman tables to fill in
Parses the JPEG bitstream contained in @data, and returns the
detected segment as a #GstJpegSegment.
Note that a valid segment may be returned with a length that exceeds
the available data. It is up to the caller to make sure there's enough
data available when parsing the segment.
TRUE if a packet start code was found.
pointer to a #GstJpegSegment structure to fill in
The data to parse
The size of @data
The offset from which to start parsing
Gets the #GType of the LCEVC meta API.
the #GType of the LCEVC meta API.
Gets the #GstMetaInfo of the LCEVC meta.
the #GstLcevcMeta of the LCEVC meta.
Parses @data and fills @packet with the information of the next packet
found.
a #GstMpeg4ParseResult
The #GstMpeg4Packet to fill
%TRUE to skip user data packet %FALSE otherwise
The last parsed #GstMpeg4VideoObjectPlane or %NULL if you do
not need to detect the resync codes.
The data to parse
offset from which to start the parsing
The size of the @data to parse
Parses @data containing the group of video object plane packet, and fills
the @gov structure.
a #GstMpeg4ParseResult
The #GstMpeg4GroupOfVOP structure to fill
The data to parse
The size of the @data to parse
Parses @data containing the video object layer packet, and fills
the @vol structure.
a #GstMpeg4ParseResult
The #GstMpeg4VideoObjectLayer structure to fill
The #GstMpeg4VisualObject currently being parsed or %NULL
The data to parse
The size of the @data to parse
Parses @data containing the video object plane packet, and fills the @vol
structure.
a #GstMpeg4ParseResult
The #GstMpeg4VideoObjectPlane currently being parsed
A #GstMpeg4SpriteTrajectory to fill or %NULL
The #GstMpeg4VideoObjectLayer structure to fill
The data to parse
The size of the @data to parse
Parsers @data containing the video packet header
and fills the @videopackethdr structure
The #GstMpeg4VideoPacketHdr structure to fill
The last parsed #GstMpeg4VideoObjectLayer, will be updated
with the information found during the parsing
The last parsed #GstMpeg4VideoObjectPlane, will be updated
with the information found during the parsing
A #GstMpeg4SpriteTrajectory to fill or %NULL
with the information found during the parsing
The data to parse, should be set after the resync marker.
The size of the data to parse
Parses @data containing the visual object packet, and fills
the @vo structure.
a #GstMpeg4ParseResult
The #GstMpeg4VisualObject structure to fill
The #GstMpeg4VideoSignalType to fill or %NULL
The data to parse, should contain the vo_start_code
but not the start code prefix
The size of the @data to parse
Parses @data containing the visual object sequence packet, and fills
the @vos structure.
a #GstMpeg4ParseResult
The #GstMpeg4VisualObjectSequence structure to fill
The data to parse, should contain the visual_object_sequence_start_code
but not the start code prefix
The size of the @data to parse
Parses the MPEG 1/2 video bitstream contained in @data, and returns the
offset, and if known also the size, in @packet. This function will scan
the data to find the next packet if needed.
TRUE if a packet start code was found, otherwise FALSE.
a #GstMpegVideoPacket to fill with the data and offset of the
next packet found
The data to parse
The size of @data
The offset from which to start parsing
Converts quantization matrix @quant from zigzag scan order to
raster scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Converts quantization matrix @quant from raster scan order to
zigzag scan order and store the resulting factors into @out_quant.
Note: it is an error to pass the same table in both @quant and
@out_quant arguments.
The resulting quantization matrix
The source quantization matrix
Fills the @bitplanes structure from @seqhdr, this function
should be called after #gst_vc1_parse_sequence_header if
in simple or main mode, or after #gst_vc1_parse_entry_point_header
if in advanced mode.
%TRUE if everything went fine, %FALSE otherwise
The #GstVC1BitPlanes to reset
The #GstVC1SeqHdr from which to set @bitplanes
Creates a new #GstVC1BitPlanes. It should be freed with
gst_vc1_bitplanes_free() after use.
a new #GstVC1BitPlanes
Parses @data and fills @bdu fields
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1BDU where to store parsed bdu headers
Parses @data, and sets @entrypoint fields.
a #GstVC1EntryPointHdr
The data to parse
the size of @data
The #GstVC1EntryPointHdr to set.
The #GstVC1SeqHdr currently being parsed
Parses @data, and fills @fieldhdr fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1FrameHdr to fill.
The #GstVC1SeqHdr currently being parsed
The #GstVC1BitPlanes to store bitplanes in or %NULL
Parses @data, and fills @entrypoint fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1FrameHdr to fill.
The #GstVC1SeqHdr currently being parsed
The #GstVC1BitPlanes to store bitplanes in or %NULL
Parses @data, and fills @framelayer fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1FrameLayer to fill.
Parses @data, and fills @seqhdr fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1SeqHdr to set.
Parses @data, and fills @structa fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1SeqStructA to set.
Parses @data, and fills @structb fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1SeqStructB to set.
Parses @data, and fills @structc fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1SeqStructC to set.
Parses @data, and fills @seqlayer fields.
a #GstVC1ParserResult
The data to parse
the size of @data
The #GstVC1SeqLayer to set.
Parses @data, and fills @slicehdr fields.
a #GstVC1ParserResult
The data to parse
The size of @data
The #GstVC1SliceHdr to fill
The #GstVC1SeqHdr that was previously parsed
Creates a new #GstVp9Parser. It should be freed with
gst_vp9_parser_free() after use.
a new #GstVp9Parser