Merge commit '1a02e78653a5c7674e6c43b6e6f2748dbd2091d7'

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

See: ddabecbbf5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/89/head
Michael Niedermayer 10 years ago
commit f6777ce6fe
  1. 7
      libavcodec/vc1.c
  2. 3
      libavcodec/vc1.h
  3. 7
      libavcodec/vc1dec.c

@ -496,10 +496,9 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
}
if (get_bits1(gb)) {
v->s.avctx->color_primaries = get_bits(gb, 8);
v->s.avctx->color_trc = get_bits(gb, 8);
v->s.avctx->colorspace = get_bits(gb, 8);
v->s.avctx->color_range = AVCOL_RANGE_MPEG;
v->color_prim = get_bits(gb, 8);
v->transfer_char = get_bits(gb, 8);
v->matrix_coef = get_bits(gb, 8);
}
}

@ -203,6 +203,9 @@ typedef struct VC1Context{
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 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
///< Decoder parameters
int psf; ///< Progressive Segmented Frame

@ -527,6 +527,13 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
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_height = (avctx->coded_height + 15) >> 4;

Loading…
Cancel
Save