diff --git a/modules/codec/hxxx_helper.c b/modules/codec/hxxx_helper.c index c8e4b0a1b92ad417886f98cf94b309b45ebc2273..33df5f6bce99b60a4734ba605efba33a90f812c1 100644 --- a/modules/codec/hxxx_helper.c +++ b/modules/codec/hxxx_helper.c @@ -961,7 +961,7 @@ hxxx_helper_get_colorimetry(const struct hxxx_helper *hh, video_color_primaries_t *p_primaries, video_transfer_func_t *p_transfer, video_color_space_t *p_colorspace, - bool *p_full_range) + video_color_range_t *p_full_range) { switch (hh->i_codec) { diff --git a/modules/codec/hxxx_helper.h b/modules/codec/hxxx_helper.h index 62fd0760e250e432385e173786930eaaca1f9271..12577e89482ffe17ebd43124793078814b6436f7 100644 --- a/modules/codec/hxxx_helper.h +++ b/modules/codec/hxxx_helper.h @@ -114,4 +114,4 @@ int hxxx_helper_get_colorimetry(const struct hxxx_helper *hh, video_color_primaries_t *p_primaries, video_transfer_func_t *p_transfer, video_color_space_t *p_colorspace, - bool *p_full_range); + video_color_range_t *p_full_range); diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m index 755779ff6398daff839941abb8f5bc8dcc3350ed..b01b5d4511f597175ca5c143b19fe3cec755e3a4 100644 --- a/modules/codec/videotoolbox.m +++ b/modules/codec/videotoolbox.m @@ -478,7 +478,7 @@ static bool ConfigureVoutH264(decoder_t *p_dec) video_color_primaries_t primaries; video_transfer_func_t transfer; video_color_space_t colorspace; - bool full_range; + video_color_range_t full_range; if (hxxx_helper_get_colorimetry(&p_sys->hh, &primaries, &transfer, @@ -488,7 +488,7 @@ static bool ConfigureVoutH264(decoder_t *p_dec) p_dec->fmt_out.video.primaries = primaries; p_dec->fmt_out.video.transfer = transfer; p_dec->fmt_out.video.space = colorspace; - p_dec->fmt_out.video.color_range = full_range ? COLOR_RANGE_FULL : COLOR_RANGE_LIMITED; + p_dec->fmt_out.video.color_range = full_range; } } diff --git a/modules/packetizer/h264.c b/modules/packetizer/h264.c index 463aa3bee56083bcc5c9bb716ef17672fcfd29fc..dc558ac9e4573a347afdb55555ee95f415db69ae 100644 --- a/modules/packetizer/h264.c +++ b/modules/packetizer/h264.c @@ -228,12 +228,10 @@ static void ActivateSets( decoder_t *p_dec, const h264_sequence_parameter_set_t } if( p_dec->fmt_in.video.primaries == COLOR_PRIMARIES_UNDEF ) { - bool color_full; h264_get_colorimetry( p_sps, &p_dec->fmt_out.video.primaries, &p_dec->fmt_out.video.transfer, &p_dec->fmt_out.video.space, - &color_full ); - p_dec->fmt_out.video.color_range = color_full ? COLOR_RANGE_FULL : COLOR_RANGE_LIMITED; + &p_dec->fmt_out.video.color_range ); } } diff --git a/modules/packetizer/h264_nal.c b/modules/packetizer/h264_nal.c index 74d4ba6b8571a46e876372995570aebae3dc6ea9..0cf35899abf459a69276b32921313f8378134550 100644 --- a/modules/packetizer/h264_nal.c +++ b/modules/packetizer/h264_nal.c @@ -802,7 +802,7 @@ bool h264_get_colorimetry( const h264_sequence_parameter_set_t *p_sps, video_color_primaries_t *p_primaries, video_transfer_func_t *p_transfer, video_color_space_t *p_colorspace, - bool *p_full_range ) + video_color_range_t *p_full_range ) { if( !p_sps->vui.b_valid ) return false; @@ -812,7 +812,7 @@ bool h264_get_colorimetry( const h264_sequence_parameter_set_t *p_sps, iso_23001_8_tc_to_vlc_xfer( p_sps->vui.colour.i_transfer_characteristics ); *p_colorspace = iso_23001_8_mc_to_vlc_coeffs( p_sps->vui.colour.i_matrix_coefficients ); - *p_full_range = p_sps->vui.colour.b_full_range; + *p_full_range = p_sps->vui.colour.b_full_range ? COLOR_RANGE_FULL : COLOR_RANGE_LIMITED; return true; } diff --git a/modules/packetizer/h264_nal.h b/modules/packetizer/h264_nal.h index 4a58a61a0f444f492871be5e938ade2d5c82bb8e..b3a3001f2349768d7e704d2f1095e7d388291da9 100644 --- a/modules/packetizer/h264_nal.h +++ b/modules/packetizer/h264_nal.h @@ -192,7 +192,7 @@ bool h264_get_colorimetry( const h264_sequence_parameter_set_t *p_sps, video_color_primaries_t *p_primaries, video_transfer_func_t *p_transfer, video_color_space_t *p_colorspace, - bool *p_full_range ); + video_color_range_t *p_full_range ); /* Get level and Profile from DecoderConfigurationRecord */ bool h264_get_profile_level(const es_format_t *p_fmt, uint8_t *pi_profile, diff --git a/modules/packetizer/hevc.c b/modules/packetizer/hevc.c index b773adfdb9f2e065e95a765640fd273fa32e54cd..297b8ae19b003a1412517e6cb15293f1b4aeda7d 100644 --- a/modules/packetizer/hevc.c +++ b/modules/packetizer/hevc.c @@ -560,13 +560,11 @@ static void ActivateSets(decoder_t *p_dec, if(p_dec->fmt_in.video.primaries == COLOR_PRIMARIES_UNDEF) { - bool color_full; (void) hevc_get_colorimetry( p_sps, &p_dec->fmt_out.video.primaries, &p_dec->fmt_out.video.transfer, &p_dec->fmt_out.video.space, - &color_full); - p_dec->fmt_out.video.color_range = color_full ? COLOR_RANGE_FULL : COLOR_RANGE_LIMITED; + &p_dec->fmt_out.video.color_range); } unsigned sizes[4]; diff --git a/modules/packetizer/hevc_nal.c b/modules/packetizer/hevc_nal.c index 1a281b74ec153391742384da9464c6c839e6bd5f..e6370e4dfc3dd5a438f32c7ae64d62eaff94641b 100644 --- a/modules/packetizer/hevc_nal.c +++ b/modules/packetizer/hevc_nal.c @@ -1193,7 +1193,7 @@ bool hevc_get_colorimetry( const hevc_sequence_parameter_set_t *p_sps, video_color_primaries_t *p_primaries, video_transfer_func_t *p_transfer, video_color_space_t *p_colorspace, - bool *p_full_range ) + video_color_range_t *p_full_range ) { if( !p_sps->vui_parameters_present_flag ) return false; @@ -1203,7 +1203,7 @@ bool hevc_get_colorimetry( const hevc_sequence_parameter_set_t *p_sps, iso_23001_8_tc_to_vlc_xfer( p_sps->vui.vs.colour.transfer_characteristics ); *p_colorspace = iso_23001_8_mc_to_vlc_coeffs( p_sps->vui.vs.colour.matrix_coeffs ); - *p_full_range = p_sps->vui.vs.video_full_range_flag; + *p_full_range = p_sps->vui.vs.video_full_range_flag ? COLOR_RANGE_FULL : COLOR_RANGE_LIMITED; return true; } diff --git a/modules/packetizer/hevc_nal.h b/modules/packetizer/hevc_nal.h index 27fec6d89c2021a955ac03d309e750f360f99539..69cacb6be1adc212b14b33d07404d5bdec109f5d 100644 --- a/modules/packetizer/hevc_nal.h +++ b/modules/packetizer/hevc_nal.h @@ -191,7 +191,7 @@ bool hevc_get_colorimetry( const hevc_sequence_parameter_set_t *p_sps, video_color_primaries_t *p_primaries, video_transfer_func_t *p_transfer, video_color_space_t *p_colorspace, - bool *p_full_range ); + video_color_range_t *p_full_range ); uint8_t hevc_get_max_num_reorder( const hevc_video_parameter_set_t *p_vps ); bool hevc_get_slice_type( const hevc_slice_segment_header_t *, enum hevc_slice_type_e * );