Commit f6777ce6 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '1a02e786'

* commit '1a02e786':
  vc1: initialize color properties

See: ddabecbbMerged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 5b134a05 1a02e786
...@@ -496,10 +496,9 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb) ...@@ -496,10 +496,9 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
} }
if (get_bits1(gb)) { if (get_bits1(gb)) {
v->s.avctx->color_primaries = get_bits(gb, 8); v->color_prim = get_bits(gb, 8);
v->s.avctx->color_trc = get_bits(gb, 8); v->transfer_char = get_bits(gb, 8);
v->s.avctx->colorspace = get_bits(gb, 8); v->matrix_coef = get_bits(gb, 8);
v->s.avctx->color_range = AVCOL_RANGE_MPEG;
} }
} }
......
...@@ -203,6 +203,9 @@ typedef struct VC1Context{ ...@@ -203,6 +203,9 @@ typedef struct VC1Context{
int panscanflag; ///< NUMPANSCANWIN, TOPLEFT{X,Y}, BOTRIGHT{X,Y} present int panscanflag; ///< NUMPANSCANWIN, TOPLEFT{X,Y}, BOTRIGHT{X,Y} present
int refdist_flag; ///< REFDIST syntax element present in II, IP, PI or PP field picture headers int refdist_flag; ///< REFDIST syntax element present in II, IP, PI or PP field picture headers
int extended_dmv; ///< Additional extended dmv range at P/B frame-level int extended_dmv; ///< Additional extended dmv range at P/B frame-level
int color_prim; ///< 8bits, chroma coordinates of the color primaries
int transfer_char; ///< 8bits, Opto-electronic transfer characteristics
int matrix_coef; ///< 8bits, Color primaries->YCbCr transform matrix
int hrd_param_flag; ///< Presence of Hypothetical Reference int hrd_param_flag; ///< Presence of Hypothetical Reference
///< Decoder parameters ///< Decoder parameters
int psf; ///< Progressive Segmented Frame int psf; ///< Progressive Segmented Frame
......
...@@ -527,6 +527,13 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx) ...@@ -527,6 +527,13 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
avctx->has_b_frames = !!avctx->max_b_frames; avctx->has_b_frames = !!avctx->max_b_frames;
if (v->color_prim == 1 || v->color_prim == 5 || v->color_prim == 6)
avctx->color_primaries = v->color_prim;
if (v->transfer_char == 1 || v->transfer_char == 7)
avctx->color_trc = v->transfer_char;
if (v->matrix_coef == 1 || v->matrix_coef == 6 || v->matrix_coef == 7)
avctx->colorspace = v->matrix_coef;
s->mb_width = (avctx->coded_width + 15) >> 4; s->mb_width = (avctx->coded_width + 15) >> 4;
s->mb_height = (avctx->coded_height + 15) >> 4; s->mb_height = (avctx->coded_height + 15) >> 4;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment