diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-10-09 02:54:48 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-10-09 03:06:20 +0200 |
commit | f6777ce6fe7cefb027789c069ec14b394a874073 (patch) | |
tree | 369b6378cc2ecd2c30644082205e5e8be0862bca | |
parent | 5b134a0544ebfd129b087c3a2bb68a8847232322 (diff) | |
parent | 1a02e78653a5c7674e6c43b6e6f2748dbd2091d7 (diff) | |
download | ffmpeg-f6777ce6fe7cefb027789c069ec14b394a874073.tar.gz |
Merge commit '1a02e78653a5c7674e6c43b6e6f2748dbd2091d7'
* commit '1a02e78653a5c7674e6c43b6e6f2748dbd2091d7':
vc1: initialize color properties
See: ddabecbbf5509325c6c695ccc60d67c0af2065f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/vc1.c | 7 | ||||
-rw-r--r-- | libavcodec/vc1.h | 3 | ||||
-rw-r--r-- | libavcodec/vc1dec.c | 7 |
3 files changed, 13 insertions, 4 deletions
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index d23efecc16..77c4b57d3e 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.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); } } diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index a1b98e8337..eefb613ee8 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -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 diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 3967e855d3..da6724ca39 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -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; |