[FFmpeg-devel] [PATCH 1/7] avformat/av1: add color config values to AV1SequenceParameters
Paul B Mahol
onemda at gmail.com
Mon Aug 5 18:06:14 EEST 2019
lgtm
On Tue, Jul 30, 2019 at 10:22 PM James Almer <jamrial at gmail.com> wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> libavformat/av1.c | 32 ++++++++++++++++++--------------
> 1 file changed, 18 insertions(+), 14 deletions(-)
>
> diff --git a/libavformat/av1.c b/libavformat/av1.c
> index 5fde8df97e..bd23891d26 100644
> --- a/libavformat/av1.c
> +++ b/libavformat/av1.c
> @@ -86,6 +86,11 @@ typedef struct AV1SequenceParameters {
> uint8_t chroma_subsampling_x;
> uint8_t chroma_subsampling_y;
> uint8_t chroma_sample_position;
> + uint8_t color_description_present_flag;
> + uint8_t color_primaries;
> + uint8_t transfer_characteristics;
> + uint8_t matrix_coefficients;
> + uint8_t color_range;
> } AV1SequenceParameters;
>
> static inline void uvlc(GetBitContext *gb)
> @@ -106,8 +111,6 @@ static inline void uvlc(GetBitContext *gb)
>
> static int parse_color_config(AV1SequenceParameters *seq_params,
> GetBitContext *gb)
> {
> - int color_primaries, transfer_characteristics, matrix_coefficients;
> -
> seq_params->high_bitdepth = get_bits1(gb);
> if (seq_params->seq_profile == FF_PROFILE_AV1_PROFESSIONAL &&
> seq_params->high_bitdepth)
> seq_params->twelve_bit = get_bits1(gb);
> @@ -117,29 +120,30 @@ static int parse_color_config(AV1SequenceParameters
> *seq_params, GetBitContext *
> else
> seq_params->monochrome = get_bits1(gb);
>
> - if (get_bits1(gb)) { // color_description_present_flag
> - color_primaries = get_bits(gb, 8);
> - transfer_characteristics = get_bits(gb, 8);
> - matrix_coefficients = get_bits(gb, 8);
> + seq_params->color_description_present_flag = get_bits1(gb);
> + if (seq_params->color_description_present_flag) {
> + seq_params->color_primaries = get_bits(gb, 8);
> + seq_params->transfer_characteristics = get_bits(gb, 8);
> + seq_params->matrix_coefficients = get_bits(gb, 8);
> } else {
> - color_primaries = AVCOL_PRI_UNSPECIFIED;
> - transfer_characteristics = AVCOL_TRC_UNSPECIFIED;
> - matrix_coefficients = AVCOL_SPC_UNSPECIFIED;
> + seq_params->color_primaries = AVCOL_PRI_UNSPECIFIED;
> + seq_params->transfer_characteristics = AVCOL_TRC_UNSPECIFIED;
> + seq_params->matrix_coefficients = AVCOL_SPC_UNSPECIFIED;
> }
>
> if (seq_params->monochrome) {
> - skip_bits1(gb); // color_range
> + seq_params->color_range = get_bits1(gb);
> seq_params->chroma_subsampling_x = 1;
> seq_params->chroma_subsampling_y = 1;
> seq_params->chroma_sample_position = 0;
> return 0;
> - } else if (color_primaries == AVCOL_PRI_BT709 &&
> - transfer_characteristics == AVCOL_TRC_IEC61966_2_1 &&
> - matrix_coefficients == AVCOL_SPC_RGB) {
> + } else if (seq_params->color_primaries == AVCOL_PRI_BT709 &&
> + seq_params->transfer_characteristics ==
> AVCOL_TRC_IEC61966_2_1 &&
> + seq_params->matrix_coefficients == AVCOL_SPC_RGB) {
> seq_params->chroma_subsampling_x = 0;
> seq_params->chroma_subsampling_y = 0;
> } else {
> - skip_bits1(gb); // color_range
> + seq_params->color_range = get_bits1(gb);
>
> if (seq_params->seq_profile == FF_PROFILE_AV1_MAIN) {
> seq_params->chroma_subsampling_x = 1;
> --
> 2.22.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list