diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-05-15 10:05:40 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-15 10:07:15 +0200 |
commit | 23439cf99bcf3e6f98bffdff8ba935506be31f2b (patch) | |
tree | c83bc4a13e80b7c04a1808a6e579b5c131488543 /libavcodec | |
parent | cb22692f05f916ba521a88e198fa8d15f92c9303 (diff) | |
parent | 5d9d8461fbb87046a7ca220d3676a045bd7ab46e (diff) | |
download | ffmpeg-23439cf99bcf3e6f98bffdff8ba935506be31f2b.tar.gz |
Merge commit '5d9d8461fbb87046a7ca220d3676a045bd7ab46e'
* commit '5d9d8461fbb87046a7ca220d3676a045bd7ab46e':
vc1dec: Don't apply the loop filter on fields
Conflicts:
tests/ref/fate/vc1_sa10143
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/vc1dec.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 6bf38e6cb7..3fbbeaefb0 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -5043,7 +5043,8 @@ static void vc1_decode_p_blocks(VC1Context *v) break; } - apply_loop_filter = s->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY); + apply_loop_filter = s->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY) && + v->fcm == PROGRESSIVE; s->first_slice_line = 1; memset(v->cbp_base, 0, sizeof(v->cbp_base[0])*2*s->mb_stride); for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) { @@ -5057,7 +5058,7 @@ static void vc1_decode_p_blocks(VC1Context *v) else if (v->fcm == ILACE_FRAME) vc1_decode_p_mb_intfr(v); else vc1_decode_p_mb(v); - if (s->mb_y != s->start_mb_y && apply_loop_filter && v->fcm == PROGRESSIVE) + if (s->mb_y != s->start_mb_y && apply_loop_filter) vc1_apply_p_loop_filter(v); if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { // TODO: may need modification to handle slice coding @@ -5074,7 +5075,7 @@ static void vc1_decode_p_blocks(VC1Context *v) if (s->mb_y != s->start_mb_y) ff_mpeg_draw_horiz_band(s, (s->mb_y - 1) * 16, 16); s->first_slice_line = 0; } - if (apply_loop_filter && v->fcm == PROGRESSIVE) { + if (apply_loop_filter) { s->mb_x = 0; init_block_index(v); for (; s->mb_x < s->mb_width; s->mb_x++) { |