diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2009-04-09 18:21:51 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2009-04-09 18:21:51 +0000 |
commit | 158f189f82839bd41421f7f262e405f040503618 (patch) | |
tree | e13074888156764bb66fcfa596ed0311e238dfee /libavcodec/snow.c | |
parent | a794356602af59029c765555361166128f74ae9e (diff) | |
download | ffmpeg-158f189f82839bd41421f7f262e405f040503618.tar.gz |
Factorize check of read symbols.
Originally committed as revision 18390 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/snow.c')
-rw-r--r-- | libavcodec/snow.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/libavcodec/snow.c b/libavcodec/snow.c index 93bca04dc9..695f36f4c4 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -3553,6 +3553,14 @@ static void decode_qlogs(SnowContext *s){ } } +#define GET_S(dst, check) \ + tmp= get_symbol(&s->c, s->header_state, 0);\ + if(!(check)){\ + av_log(s->avctx, AV_LOG_ERROR, "Error " #dst " is %d\n", tmp);\ + return -1;\ + }\ + dst= tmp; + static int decode_header(SnowContext *s){ int plane_index, tmp; uint8_t kstate[32]; @@ -3570,10 +3578,7 @@ static int decode_header(SnowContext *s){ } if(s->keyframe){ s->version= get_symbol(&s->c, s->header_state, 0); - if(s->version>0){ - av_log(s->avctx, AV_LOG_ERROR, "version %d not supported", s->version); - return -1; - } + GET_S(s->version, tmp <= 0U) s->always_reset= get_rac(&s->c, s->header_state); s->temporal_decomposition_type= get_symbol(&s->c, s->header_state, 0); s->temporal_decomposition_count= get_symbol(&s->c, s->header_state, 0); @@ -3583,12 +3588,8 @@ static int decode_header(SnowContext *s){ s->chroma_v_shift= get_symbol(&s->c, s->header_state, 0); s->spatial_scalability= get_rac(&s->c, s->header_state); // s->rate_scalability= get_rac(&s->c, s->header_state); - tmp= get_symbol(&s->c, s->header_state, 0)+1; - if(tmp < 1 || tmp > MAX_REF_FRAMES){ - av_log(s->avctx, AV_LOG_ERROR, "reference frame count is %d\n", tmp); - return -1; - } - s->max_ref_frames= tmp; + GET_S(s->max_ref_frames, tmp < (unsigned)MAX_REF_FRAMES) + s->max_ref_frames++; decode_qlogs(s); } |