aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKostya Shishkov2010-09-26 13:54:35 +0000
committerKostya Shishkov2010-09-26 13:54:35 +0000
commit10f93363b77b0fdd42acf5626ed896703908c9d3 (patch)
tree017f9ef00276d8651ac34e6011c38ef39795bc58
parentb0f65613acb365309ca7eea3b9bd49dfb088d34b (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.c11
-rw-r--r--libavcodec/vc1.h3
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