diff options
author | Kostya Shishkov | 2010-09-26 13:54:35 +0000 |
---|---|---|
committer | Kostya Shishkov | 2010-09-26 13:54:35 +0000 |
commit | 10f93363b77b0fdd42acf5626ed896703908c9d3 (patch) | |
tree | 017f9ef00276d8651ac34e6011c38ef39795bc58 | |
parent | b0f65613acb365309ca7eea3b9bd49dfb088d34b (diff) |
RES_SM in WMV3 is really two flags, so split it in decoder
Originally committed as revision 25208 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/vc1.c | 11 | ||||
-rw-r--r-- | libavcodec/vc1.h | 3 |
2 files changed, 10 insertions, 4 deletions
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index cca345df38..d9d7d515ae 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -306,11 +306,16 @@ int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitConte { v->zz_8x4 = wmv2_scantableA; v->zz_4x8 = wmv2_scantableB; - v->res_sm = get_bits(gb, 2); //reserved - if (v->res_sm) + v->res_y411 = get_bits1(gb); + v->res_sprite = get_bits1(gb); + if (v->res_y411) { av_log(avctx, AV_LOG_ERROR, - "Reserved RES_SM=%i is forbidden\n", v->res_sm); + "Old interlaced mode is not supported\n"); + return -1; + } + if (v->res_sprite) { + av_log(avctx, AV_LOG_ERROR, "WMVP is not supported\n"); return -1; } } diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index d5f0e05465..e5a9cbaec1 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -160,7 +160,8 @@ typedef struct VC1Context{ /** Simple/Main Profile sequence header */ //@{ - int res_sm; ///< reserved, 2b + int res_sprite; ///< reserved, sprite mode + int res_y411; ///< reserved, old interlaced mode int res_x8; ///< reserved int multires; ///< frame-level RESPIC syntax element present int res_fasttx; ///< reserved, always 1 |