mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Merge commit '885ec9242554ad25922258a595ec5e317922a412'
* commit '885ec9242554ad25922258a595ec5e317922a412': hevc: Use parsed VUI colorimetry in avcodec Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
b906d04881
@ -296,6 +296,22 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps)
|
|||||||
s->avctx->sample_aspect_ratio = sps->vui.sar;
|
s->avctx->sample_aspect_ratio = sps->vui.sar;
|
||||||
s->avctx->has_b_frames = sps->temporal_layer[sps->max_sub_layers - 1].num_reorder_pics;
|
s->avctx->has_b_frames = sps->temporal_layer[sps->max_sub_layers - 1].num_reorder_pics;
|
||||||
|
|
||||||
|
if (sps->vui.video_signal_type_present_flag)
|
||||||
|
s->avctx->color_range = sps->vui.video_full_range_flag ? AVCOL_RANGE_JPEG
|
||||||
|
: AVCOL_RANGE_MPEG;
|
||||||
|
else
|
||||||
|
s->avctx->color_range = AVCOL_RANGE_MPEG;
|
||||||
|
|
||||||
|
if (sps->vui.colour_description_present_flag) {
|
||||||
|
s->avctx->color_primaries = sps->vui.colour_primaries;
|
||||||
|
s->avctx->color_trc = sps->vui.transfer_characteristic;
|
||||||
|
s->avctx->colorspace = sps->vui.matrix_coeffs;
|
||||||
|
} else {
|
||||||
|
s->avctx->color_primaries = AVCOL_PRI_UNSPECIFIED;
|
||||||
|
s->avctx->color_trc = AVCOL_TRC_UNSPECIFIED;
|
||||||
|
s->avctx->colorspace = AVCOL_SPC_UNSPECIFIED;
|
||||||
|
}
|
||||||
|
|
||||||
ff_hevc_pred_init(&s->hpc, sps->bit_depth);
|
ff_hevc_pred_init(&s->hpc, sps->bit_depth);
|
||||||
ff_hevc_dsp_init (&s->hevcdsp, sps->bit_depth);
|
ff_hevc_dsp_init (&s->hevcdsp, sps->bit_depth);
|
||||||
ff_videodsp_init (&s->vdsp, sps->bit_depth);
|
ff_videodsp_init (&s->vdsp, sps->bit_depth);
|
||||||
|
@ -461,6 +461,14 @@ static void decode_vui(HEVCContext *s, HEVCSPS *sps)
|
|||||||
vui->colour_primaries = get_bits(gb, 8);
|
vui->colour_primaries = get_bits(gb, 8);
|
||||||
vui->transfer_characteristic = get_bits(gb, 8);
|
vui->transfer_characteristic = get_bits(gb, 8);
|
||||||
vui->matrix_coeffs = get_bits(gb, 8);
|
vui->matrix_coeffs = get_bits(gb, 8);
|
||||||
|
|
||||||
|
// Set invalid values to "unspecified"
|
||||||
|
if (vui->colour_primaries >= AVCOL_PRI_NB)
|
||||||
|
vui->colour_primaries = AVCOL_PRI_UNSPECIFIED;
|
||||||
|
if (vui->transfer_characteristic >= AVCOL_TRC_NB)
|
||||||
|
vui->transfer_characteristic = AVCOL_TRC_UNSPECIFIED;
|
||||||
|
if (vui->matrix_coeffs >= AVCOL_SPC_NB)
|
||||||
|
vui->matrix_coeffs = AVCOL_SPC_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user