Skip to content

Commit

Permalink
Backport type changes for time_scale, num_units_in_tick, and `num…
Browse files Browse the repository at this point in the history
…_units_in_decoding_tick` from dav1d 1.3.0 (#1002)
  • Loading branch information
kkysen authored Apr 24, 2024
2 parents da22e8c + 89cabdd commit 541dd9e
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 17 deletions.
6 changes: 3 additions & 3 deletions include/dav1d/headers.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,13 +245,13 @@ typedef struct Dav1dSequenceHeader {
int still_picture;
int reduced_still_picture_header;
int timing_info_present;
int num_units_in_tick;
int time_scale;
uint32_t num_units_in_tick;
uint32_t time_scale;
int equal_picture_interval;
unsigned num_ticks_per_picture;
int decoder_model_info_present;
int encoder_decoder_buffer_delay_length;
int num_units_in_decoding_tick;
uint32_t num_units_in_decoding_tick;
int buffer_removal_delay_length;
int frame_presentation_delay_length;
int display_model_info_present;
Expand Down
18 changes: 12 additions & 6 deletions include/dav1d/headers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -978,13 +978,16 @@ pub struct Dav1dSequenceHeader {
pub still_picture: c_int,
pub reduced_still_picture_header: c_int,
pub timing_info_present: c_int,
pub num_units_in_tick: c_int,
pub time_scale: c_int,
/// > 0 if defined, 0 otherwise
pub num_units_in_tick: u32,
/// > 0 if defined, 0 otherwise
pub time_scale: u32,
pub equal_picture_interval: c_int,
pub num_ticks_per_picture: c_uint,
pub decoder_model_info_present: c_int,
pub encoder_decoder_buffer_delay_length: c_int,
pub num_units_in_decoding_tick: c_int,
/// > 0 if defined, 0 otherwise
pub num_units_in_decoding_tick: u32,
pub buffer_removal_delay_length: c_int,
pub frame_presentation_delay_length: c_int,
pub display_model_info_present: c_int,
Expand Down Expand Up @@ -1058,13 +1061,16 @@ pub struct Rav1dSequenceHeader {
pub still_picture: c_int,
pub reduced_still_picture_header: c_int,
pub timing_info_present: c_int,
pub num_units_in_tick: c_int,
pub time_scale: c_int,
/// > 0 if defined, 0 otherwise
pub num_units_in_tick: u32,
/// > 0 if defined, 0 otherwise
pub time_scale: u32,
pub equal_picture_interval: c_int,
pub num_ticks_per_picture: c_uint,
pub decoder_model_info_present: c_int,
pub encoder_decoder_buffer_delay_length: c_int,
pub num_units_in_decoding_tick: c_int,
/// > 0 if defined, 0 otherwise
pub num_units_in_decoding_tick: u32,
pub buffer_removal_delay_length: c_int,
pub frame_presentation_delay_length: c_int,
pub display_model_info_present: c_int,
Expand Down
2 changes: 1 addition & 1 deletion include/dav1d/picture.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ typedef struct Dav1dPicture {
*/
size_t n_itut_t35;

uintptr_t reserved[3]; ///< reserved for future use
uintptr_t reserved[4]; ///< reserved for future use

struct Dav1dRef *frame_hdr_ref; ///< Dav1dFrameHeader allocation origin
struct Dav1dRef *seq_hdr_ref; ///< Dav1dSequenceHeader allocation origin
Expand Down
2 changes: 1 addition & 1 deletion include/dav1d/picture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ pub struct Dav1dPicture {
pub mastering_display: Option<NonNull<Rav1dMasteringDisplay>>,
pub itut_t35: Option<NonNull<Dav1dITUTT35>>,
pub n_itut_t35: usize,
pub reserved: [uintptr_t; 3],
pub reserved: [uintptr_t; 4],
pub frame_hdr_ref: Option<RawArc<DRav1d<Rav1dFrameHeader, Dav1dFrameHeader>>>, // opaque, so we can change this
pub seq_hdr_ref: Option<RawArc<DRav1d<Rav1dSequenceHeader, Dav1dSequenceHeader>>>, // opaque, so we can change this
pub content_light_ref: Option<RawArc<Rav1dContentLightLevel>>, // opaque, so we can change this
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ project('dav1d', ['c'],
'b_ndebug=if-release'],
meson_version: '>= 0.49.0')

dav1d_soname_version = '6.9.0'
dav1d_soname_version = '7.0.0'
dav1d_api_version_array = dav1d_soname_version.split('.')
dav1d_api_version_major = dav1d_api_version_array[0]
dav1d_api_version_minor = dav1d_api_version_array[1]
Expand Down
4 changes: 2 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ pub unsafe extern "C" fn dav1d_version() -> *const c_char {
rav1d_version().as_ptr().cast()
}

pub const DAV1D_API_VERSION_MAJOR: u8 = 6;
pub const DAV1D_API_VERSION_MINOR: u8 = 9;
pub const DAV1D_API_VERSION_MAJOR: u8 = 7;
pub const DAV1D_API_VERSION_MINOR: u8 = 0;
pub const DAV1D_API_VERSION_PATCH: u8 = 0;

/// Get the `dav1d` library C API version.
Expand Down
6 changes: 3 additions & 3 deletions src/obu.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,8 @@ fn parse_seq_hdr(
} else {
timing_info_present = gb.get_bit() as c_int;
if timing_info_present != 0 {
num_units_in_tick = gb.get_bits(32) as c_int;
time_scale = gb.get_bits(32) as c_int;
num_units_in_tick = gb.get_bits(32) as u32;
time_scale = gb.get_bits(32) as u32;
if strict_std_compliance && (num_units_in_tick == 0 || time_scale == 0) {
return Err(EINVAL);
}
Expand All @@ -196,7 +196,7 @@ fn parse_seq_hdr(
decoder_model_info_present = gb.get_bit() as c_int;
if decoder_model_info_present != 0 {
encoder_decoder_buffer_delay_length = gb.get_bits(5) as c_int + 1;
num_units_in_decoding_tick = gb.get_bits(32) as c_int;
num_units_in_decoding_tick = gb.get_bits(32) as u32;
if strict_std_compliance && num_units_in_decoding_tick == 0 {
return Err(EINVAL);
}
Expand Down

0 comments on commit 541dd9e

Please sign in to comment.