@@ -398,7 +398,7 @@ pub struct SequenceHeaderObu {
398398 pub frame_height_bits_minus_1 : u8 ,
399399 /// Specifies the maximum frame width minus 1 for the frames represented by
400400 /// this sequence header.
401- pub max_frame_width_minus_1 : u32 ,
401+ pub max_frame_width_minus_1 : u16 ,
402402 /// Specifies the maximum frame height minus 1 for the frames represented by
403403 /// this sequence header.
404404 pub max_frame_height_minus_1 : u32 ,
@@ -1393,7 +1393,7 @@ impl Parser {
13931393 let n = seq. frame_height_bits_minus_1 + 1 ;
13941394 fh. frame_height = r. read_bits ( n) ? + 1 ;
13951395 } else {
1396- fh. frame_width = seq. max_frame_width_minus_1 + 1 ;
1396+ fh. frame_width = seq. max_frame_width_minus_1 as u32 + 1 ;
13971397 fh. frame_height = seq. max_frame_height_minus_1 + 1 ;
13981398 }
13991399
@@ -1823,7 +1823,8 @@ impl Parser {
18231823
18241824 s. frame_width_bits_minus_1 = r. read_bits ( 4 ) ? as u8 ;
18251825 s. frame_height_bits_minus_1 = r. read_bits ( 4 ) ? as u8 ;
1826- s. max_frame_width_minus_1 = r. read_bits ( s. frame_width_bits_minus_1 + 1 ) ?;
1826+ // frame_width_bits_minus_1 has been read from 4 bits, meaning we can read 16 bits at most.
1827+ s. max_frame_width_minus_1 = r. read_bits ( s. frame_width_bits_minus_1 + 1 ) ? as u16 ;
18271828 s. max_frame_height_minus_1 = r. read_bits ( s. frame_height_bits_minus_1 + 1 ) ?;
18281829 if s. reduced_still_picture_header {
18291830 s. frame_id_numbers_present_flag = false ;
0 commit comments