[FFmpeg-devel] [PATCH] vc1dec: C need to be cleared if not valid

Michael Niedermayer michaelni at gmx.at
Wed Jan 30 01:45:11 CET 2013


On Wed, Jan 30, 2013 at 12:36:55AM +0100, Michael Niedermayer wrote:
> On Tue, Jan 29, 2013 at 11:59:47PM +0100, Sebastian Sandberg wrote:
> > > do you have a a vc1 video or testcase for which this makes a
> > > difference ?
> > 
> > Yes, I have a bluray copy of Torchwood (BBC interlaced vc-1) which I have
> > tested against. I have found some other bugs and I also have a B frame path
> > which seems to work. I'll return with some patches, I'd just need to to
> > clean it up bit before I send it.
> 
> could you upload a small part of this. A part that decodes differently
> with and without this patch ?

not needed anymore, carl found a sample that shows a difference.
The difference is caused due to a incorrect blocks_off value that
ends up corrupting motion_val[][]

C[0]/1 should be 0 IMHO at that place already

the change that fixes the corruption is below, comments about it are
welcome

diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 9c0c105..3370f54 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -5674,7 +5674,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
                     continue;
                 }
                 v->second_field = 1;
-                v->blocks_off   = s->mb_width  * s->mb_height << 1;
+                v->blocks_off   = s->b8_stride * (s->mb_height&~1);
                 v->mb_off       = s->mb_stride * s->mb_height >> 1;
             } else {
                 v->second_field = 0;


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In a rich man's house there is no place to spit but his face.
-- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130130/400ddef3/attachment.asc>


More information about the ffmpeg-devel mailing list