@@ -16,18 +16,19 @@ use crate::include::dav1d::data::Rav1dData;
1616use crate :: include:: dav1d:: dav1d:: Rav1dDecodeFrameType ;
1717use crate :: include:: dav1d:: headers:: {
1818 DRav1d , Dav1dSequenceHeader , Rav1dAdaptiveBoolean , Rav1dChromaSamplePosition ,
19- Rav1dColorPrimaries , Rav1dContentLightLevel , Rav1dFilmGrainData , Rav1dFilterMode ,
20- Rav1dFrameHeader , Rav1dFrameHeaderCdef , Rav1dFrameHeaderDelta , Rav1dFrameHeaderDeltaLF ,
21- Rav1dFrameHeaderDeltaQ , Rav1dFrameHeaderFilmGrain , Rav1dFrameHeaderLoopFilter ,
22- Rav1dFrameHeaderOperatingPoint , Rav1dFrameHeaderQuant , Rav1dFrameHeaderRestoration ,
23- Rav1dFrameHeaderSegmentation , Rav1dFrameHeaderSuperRes , Rav1dFrameHeaderTiling , Rav1dFrameSize ,
24- Rav1dFrameSkipMode , Rav1dFrameType , Rav1dITUTT35 , Rav1dLoopfilterModeRefDeltas ,
25- Rav1dMasteringDisplay , Rav1dMatrixCoefficients , Rav1dObuType , Rav1dPixelLayout , Rav1dProfile ,
26- Rav1dRestorationType , Rav1dSegmentationData , Rav1dSegmentationDataSet , Rav1dSequenceHeader ,
27- Rav1dSequenceHeaderOperatingParameterInfo , Rav1dSequenceHeaderOperatingPoint ,
28- Rav1dTransferCharacteristics , Rav1dTxfmMode , Rav1dWarpedMotionParams , Rav1dWarpedMotionType ,
29- RAV1D_MAX_CDEF_STRENGTHS , RAV1D_MAX_OPERATING_POINTS , RAV1D_MAX_TILE_COLS , RAV1D_MAX_TILE_ROWS ,
30- RAV1D_PRIMARY_REF_NONE , RAV1D_REFS_PER_FRAME ,
19+ Rav1dColorPrimaries , Rav1dColorRange , Rav1dContentLightLevel , Rav1dFilmGrainData ,
20+ Rav1dFilterMode , Rav1dFrameHeader , Rav1dFrameHeaderCdef , Rav1dFrameHeaderDelta ,
21+ Rav1dFrameHeaderDeltaLF , Rav1dFrameHeaderDeltaQ , Rav1dFrameHeaderFilmGrain ,
22+ Rav1dFrameHeaderLoopFilter , Rav1dFrameHeaderOperatingPoint , Rav1dFrameHeaderQuant ,
23+ Rav1dFrameHeaderRestoration , Rav1dFrameHeaderSegmentation , Rav1dFrameHeaderSuperRes ,
24+ Rav1dFrameHeaderTiling , Rav1dFrameSize , Rav1dFrameSkipMode , Rav1dFrameType , Rav1dITUTT35 ,
25+ Rav1dLoopfilterModeRefDeltas , Rav1dMasteringDisplay , Rav1dMatrixCoefficients , Rav1dObuType ,
26+ Rav1dPixelLayout , Rav1dProfile , Rav1dRestorationType , Rav1dSegmentationData ,
27+ Rav1dSegmentationDataSet , Rav1dSequenceHeader , Rav1dSequenceHeaderOperatingParameterInfo ,
28+ Rav1dSequenceHeaderOperatingPoint , Rav1dTransferCharacteristics , Rav1dTxfmMode ,
29+ Rav1dWarpedMotionParams , Rav1dWarpedMotionType , RAV1D_MAX_CDEF_STRENGTHS ,
30+ RAV1D_MAX_OPERATING_POINTS , RAV1D_MAX_TILE_COLS , RAV1D_MAX_TILE_ROWS , RAV1D_PRIMARY_REF_NONE ,
31+ RAV1D_REFS_PER_FRAME ,
3132} ;
3233use crate :: internal:: { Rav1dContext , Rav1dState , Rav1dTileGroup , Rav1dTileGroupHeader } ;
3334use crate :: levels:: ObuMetaType ;
@@ -363,13 +364,13 @@ fn parse_seq_hdr(
363364 trc = Default :: default ( ) ;
364365 mtrx = Default :: default ( ) ;
365366 }
366- let color_range ;
367+ let full_color_range ;
367368 let layout;
368369 let ss_ver;
369370 let ss_hor;
370371 let chr;
371372 if monochrome != 0 {
372- color_range = gb. get_bit ( ) as u8 ;
373+ full_color_range = gb. get_bit ( ) ;
373374 layout = Rav1dPixelLayout :: I400 ;
374375 ss_ver = 1 ;
375376 ss_hor = ss_ver;
@@ -379,7 +380,7 @@ fn parse_seq_hdr(
379380 && mtrx == Rav1dMatrixCoefficients :: Identity
380381 {
381382 layout = Rav1dPixelLayout :: I444 ;
382- color_range = 1 ;
383+ full_color_range = true ;
383384 if profile != Rav1dProfile :: High && !( profile == Rav1dProfile :: Professional && hbd == 2 ) {
384385 return Err ( Rav1dError :: InvalidArgument ) ;
385386 }
@@ -389,7 +390,7 @@ fn parse_seq_hdr(
389390 ss_ver = Default :: default ( ) ;
390391 chr = Rav1dChromaSamplePosition :: Unknown ;
391392 } else {
392- color_range = gb. get_bit ( ) as u8 ;
393+ full_color_range = gb. get_bit ( ) ;
393394 match profile {
394395 Rav1dProfile :: Main => {
395396 layout = Rav1dPixelLayout :: I420 ;
@@ -435,6 +436,7 @@ fn parse_seq_hdr(
435436 Rav1dChromaSamplePosition :: Unknown
436437 } ;
437438 }
439+ let color_range = Rav1dColorRange :: from_is_full ( full_color_range) ;
438440 if strict_std_compliance
439441 && mtrx == Rav1dMatrixCoefficients :: Identity
440442 && layout != Rav1dPixelLayout :: I444
0 commit comments