diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-08-31 13:18:48 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-08-31 13:34:32 +0200 |
commit | c617bed34f39a122ab1f89581ddce9cc63885383 (patch) | |
tree | ed2c0bd467f5f5c912ac46a2b95457a5647ced75 /libavcodec/vc1dec.c | |
parent | 98298eb1034bddb4557fa689553dae793c2b0092 (diff) | |
parent | ede3d6400d7c06863e6eb4bcff5f676480ae6b5e (diff) | |
download | ffmpeg-c617bed34f39a122ab1f89581ddce9cc63885383.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
MSS1 and MSS2: set final pixel format after common stuff has been initialised
MSS2 decoder
configure: handle --disable-asm before check_deps
x86: Split inline and external assembly #ifdefs
configure: x86: Separate inline from standalone assembler capabilities
pktdumper: Use a custom define instead of PATH_MAX for buffers
pktdumper: Use av_strlcpy instead of strncpy
pktdumper: Use sizeof(variable) instead of the direct buffer length
Conflicts:
Changelog
configure
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/codec_desc.c
libavcodec/dct-test.c
libavcodec/imgconvert.c
libavcodec/mss12.c
libavcodec/version.h
libavfilter/x86/gradfun.c
libswscale/x86/yuv2rgb.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/vc1dec.c')
-rw-r--r-- | libavcodec/vc1dec.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 0362c1a04f..3f62201979 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -4350,10 +4350,10 @@ static void vc1_decode_i_blocks(VC1Context *v) s->mb_x = s->mb_y = 0; s->mb_intra = 1; s->first_slice_line = 1; - for (s->mb_y = 0; s->mb_y < s->mb_height; s->mb_y++) { + for (s->mb_y = 0; s->mb_y < s->end_mb_y; s->mb_y++) { s->mb_x = 0; ff_init_block_index(s); - for (; s->mb_x < s->mb_width; s->mb_x++) { + for (; s->mb_x < v->end_mb_x; s->mb_x++) { uint8_t *dst[6]; ff_update_block_index(s); dst[0] = s->dest[0]; @@ -4440,7 +4440,10 @@ static void vc1_decode_i_blocks(VC1Context *v) s->first_slice_line = 0; } if (v->s.loop_filter) - ff_draw_horiz_band(s, (s->mb_height - 1) * 16, 16); + ff_draw_horiz_band(s, (s->end_mb_y - 1) * 16, 16); + + /* This is intentionally mb_height and not end_mb_y - unlike in advanced + * profile, these only differ are when decoding MSS2 rectangles. */ ff_er_add_slice(s, 0, 0, s->mb_width - 1, s->mb_height - 1, ER_MB_END); } @@ -5560,6 +5563,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data, ff_er_frame_start(s); v->bits = buf_size * 8; + v->end_mb_x = s->mb_width; if (v->field_mode) { uint8_t *tmp[2]; s->current_picture.f.linesize[0] <<= 1; |