Struct Vps

Source
pub struct Vps {
Show 23 fields pub video_parameter_set_id: u8, pub base_layer_internal_flag: bool, pub base_layer_available_flag: bool, pub max_layers_minus1: u8, pub max_sub_layers_minus1: u8, pub temporal_id_nesting_flag: bool, pub profile_tier_level: ProfileTierLevel, pub sub_layer_ordering_info_present_flag: bool, pub max_dec_pic_buffering_minus1: [u32; 7], pub max_num_reorder_pics: [u32; 7], pub max_latency_increase_plus1: [u32; 7], pub max_layer_id: u8, pub num_layer_sets_minus1: u32, pub timing_info_present_flag: bool, pub num_units_in_tick: u32, pub time_scale: u32, pub poc_proportional_to_timing_flag: bool, pub num_ticks_poc_diff_one_minus1: u32, pub num_hrd_parameters: u32, pub hrd_layer_set_idx: Vec<u16>, pub cprms_present_flag: Vec<bool>, pub hrd_parameters: Vec<HrdParams>, pub extension_flag: bool,
}
Expand description

A H.265 Video Parameter Set.

Fields§

§video_parameter_set_id: u8

Identifies the VPS for reference by other syntax elements.

§base_layer_internal_flag: bool

If vps_base_layer_internal_flag is equal to 1 and vps_base_layer_available_flag is equal to 1, the base layer is present in the bitstream.

§base_layer_available_flag: bool

See base_layer_internal_flag.

§max_layers_minus1: u8

Plus 1 specifies the maximum allowed number of layers in each CVS referring to the VPS.

§max_sub_layers_minus1: u8

Plus 1 specifies the maximum number of temporal sub-layers that may be present in each CVS referring to the VPS.

§temporal_id_nesting_flag: bool

When vps_max_sub_layers_minus1 is greater than 0, specifies whether inter prediction is additionally restricted for CVSs referring to the VPS.

§profile_tier_level: ProfileTierLevel

ProfileTierLevel() data.

§sub_layer_ordering_info_present_flag: bool

When true, specifies that vps_max_dec_pic_buffering_minus1[ i ], vps_max_num_reorder_pics[ i ] and vps_max_latency_increase_plus1[ i ] are present for vps_max_sub_layers_ minus1 + 1 sub-layers. vps_sub_layer_ordering_info_present_flag equal to 0 specifies that the values of vps_max_dec_pic_buffering_minus1[ vps_max_sub_layers_minus1 ], vps_max_num_reorder_pics[ vps_max_sub_ layers_minus1 ] and vps_max_latency_increase_plus1[ vps_max_sub_layers_minus1 ] apply to all sub-layers

§max_dec_pic_buffering_minus1: [u32; 7]

max_dec_pic_buffering_minus1[i] plus 1 specifies the maximum required size of the decoded picture buffer for the CVS in units of picture storage buffers when HighestTid is equal to i.

§max_num_reorder_pics: [u32; 7]

Indicates the maximum allowed number of pictures with PicOutputFlag equal to 1 that can precede any picture with PicOutputFlag equal to 1 in the CVS in decoding order and follow that picture with PicOutputFlag equal to 1 in output order when HighestTid is equal to i.

§max_latency_increase_plus1: [u32; 7]

When true, max_latency_increase_plus1[i] is used to compute the value of VpsMaxLatencyPictures[ i ], which specifies the maximum number of pictures with PicOutputFlag equal to 1 that can precede any picture with PicOutputFlag equal to 1 in the CVS in output order and follow that picture with PicOutputFlag equal to 1 in decoding order when HighestTid is equal to i.

§max_layer_id: u8

Specifies the maximum allowed value of nuh_layer_id of all NAL units in each CVS referring to the VPS.

§num_layer_sets_minus1: u32

num_layer_sets_minus1 plus 1 specifies the number of layer sets that are specified by the VPS.

§timing_info_present_flag: bool

When true, specifies that num_units_in_tick, time_scale, poc_proportional_to_timing_flag and num_hrd_parameters are present in the VPS.

§num_units_in_tick: u32

The number of time units of a clock operating at the frequency vps_time_scale Hz that corresponds to one increment (called a clock tick) of a clock tick counter. The value of vps_num_units_in_tick shall be greater than 0. A clock tick, in units of seconds, is equal to the quotient of vps_num_units_in_tick divided by vps_time_scale. For example, when the picture rate of a video signal is 25 Hz, vps_time_scale may be equal to 27 000 000 and vps_num_units_in_tick may be equal to 1 080 000, and consequently a clock tick may be 0.04 seconds.

§time_scale: u32

The number of time units that pass in one second. For example, a time coordinate system that measures time using a 27 MHz clock has a vps_time_scale of 27 000 000.

§poc_proportional_to_timing_flag: bool

When 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. When false, 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, may or may not be proportional to the output time of the picture relative to the output time of the first picture in the CVS.

§num_ticks_poc_diff_one_minus1: u32

num_ticks_poc_diff_one_minus1 plus 1 specifies the number of clock ticks corresponding to a difference of picture order count values equal to 1.

§num_hrd_parameters: u32

Specifies the number of hrd_parameters( ) syntax structures present in the VPS RBSP before the vps_extension_flag syntax element.

§hrd_layer_set_idx: Vec<u16>

hrd_layer_set_idx[ i ] specifies the index, into the list of layer sets specified by the VPS, of the layer set to which the i-th hrd_parameters( ) syntax structure in the VPS applies.

§cprms_present_flag: Vec<bool>

cprms_present_flag[ i ] equal to true specifies that the HRD parameters that are common for all sub-layers are present in the i-th hrd_parameters( ) syntax structure in the VPS. cprms_present_flag[ i ] equal to false specifies that the HRD parameters that are common for all sub-layers are not present in the i-th hrd_parameters( ) syntax structure in the VPS and are derived to be the same as the ( i − 1 )-th hrd_parameters( ) syntax structure in the VPS. cprms_present_flag[ 0 ] is inferred to be equal to true.

§hrd_parameters: Vec<HrdParams>

The hrd_parameters() data.

§extension_flag: bool

When false, specifies that no vps_extension_data_flag syntax elements are present in the VPS RBSP syntax structure. When true, specifies that there are vps_extension_data_flag syntax elements present in the VPS RBSP syntax structure. Decoders conforming to a profile specified in Annex A but not supporting the INBLD capability specified in Annex F shall ignore all data that follow the value 1 for vps_extension_flag in a VPS NAL unit.

Trait Implementations§

Source§

impl Clone for Vps

Source§

fn clone(&self) -> Vps

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Vps

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Vps

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Vps

Source§

fn eq(&self, other: &Vps) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Vps

Source§

impl StructuralPartialEq for Vps

Auto Trait Implementations§

§

impl Freeze for Vps

§

impl RefUnwindSafe for Vps

§

impl Send for Vps

§

impl Sync for Vps

§

impl Unpin for Vps

§

impl UnwindSafe for Vps

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.