[FFmpeg-devel] [PATCH] avcodec/cbs_av1: fix range of values for Mastering Display Color Volume Metadata OBUs
James Almer
jamrial at gmail.com
Mon Mar 25 16:27:07 EET 2019
On 3/23/2019 2:30 PM, James Almer wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>> Does something like
>> FFMIN(((uint64_t)current->luminance_max << 6) - 1, MAX_UINT_BITS(32))
>> do the right thing?
>
> Yes. Fixed and a comment added.
>
> libavcodec/cbs_av1_syntax_template.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c
> index 48f4fab514..76eb90b279 100644
> --- a/libavcodec/cbs_av1_syntax_template.c
> +++ b/libavcodec/cbs_av1_syntax_template.c
> @@ -1637,15 +1637,18 @@ static int FUNC(metadata_hdr_mdcv)(CodedBitstreamContext *ctx, RWContext *rw,
> int err, i;
>
> for (i = 0; i < 3; i++) {
> - fcs(16, primary_chromaticity_x[i], 0, 50000, 1, i);
> - fcs(16, primary_chromaticity_y[i], 0, 50000, 1, i);
> + fbs(16, primary_chromaticity_x[i], 1, i);
> + fbs(16, primary_chromaticity_y[i], 1, i);
> }
>
> - fc(16, white_point_chromaticity_x, 0, 50000);
> - fc(16, white_point_chromaticity_y, 0, 50000);
> + fb(16, white_point_chromaticity_x);
> + fb(16, white_point_chromaticity_y);
>
> fc(32, luminance_max, 1, MAX_UINT_BITS(32));
> - fc(32, luminance_min, 0, current->luminance_max >> 6);
> + // luminance_min must be lower than luminance_max. Convert luminance_max from
> + // 24.8 fixed point to 18.14 fixed point in order to compare them.
> + fc(32, luminance_min, 0, FFMIN(((uint64_t)current->luminance_max << 6) - 1,
> + MAX_UINT_BITS(32)));
>
> return 0;
> }
Pushed.
More information about the ffmpeg-devel
mailing list