Commit 10f93363 authored by Kostya Shishkov's avatar Kostya Shishkov

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
parent b0f65613
...@@ -306,11 +306,16 @@ int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitConte ...@@ -306,11 +306,16 @@ int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitConte
{ {
v->zz_8x4 = wmv2_scantableA; v->zz_8x4 = wmv2_scantableA;
v->zz_4x8 = wmv2_scantableB; v->zz_4x8 = wmv2_scantableB;
v->res_sm = get_bits(gb, 2); //reserved v->res_y411 = get_bits1(gb);
if (v->res_sm) v->res_sprite = get_bits1(gb);
if (v->res_y411)
{ {
av_log(avctx, AV_LOG_ERROR, 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; return -1;
} }
} }
......
...@@ -160,7 +160,8 @@ typedef struct VC1Context{ ...@@ -160,7 +160,8 @@ typedef struct VC1Context{
/** Simple/Main Profile sequence header */ /** 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 res_x8; ///< reserved
int multires; ///< frame-level RESPIC syntax element present int multires; ///< frame-level RESPIC syntax element present
int res_fasttx; ///< reserved, always 1 int res_fasttx; ///< reserved, always 1
......
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