[FFmpeg-devel] [PATCH] fix wc3 xan decoder

Michael Niedermayer michaelni
Sat Mar 1 03:17:44 CET 2008


On Fri, Feb 29, 2008 at 05:50:10PM -0800, Mike Melanson wrote:
> Michael Niedermayer wrote:
> > On Fri, Feb 29, 2008 at 05:40:19PM -0800, Mike Melanson wrote:
> >> Hi,
> >>
> >> This patch fixes the WC3 Xan decoder by correcting the frame accounting. 
> >> Previously, it would only decode the first frame and then complain about 
> >> not being able to get another frame.
> >>
> >> (Kostya: I haven't forgotten about your WC4 Xan patch. One day. :) )
> >>
> >> -- 
> >> 	-Mike Melanson
> > 
> >> Index: libavcodec/xan.c
> >> ===================================================================
> >> --- libavcodec/xan.c	(revision 12279)
> >> +++ libavcodec/xan.c	(working copy)
> >> @@ -435,12 +435,13 @@
> >>      if (s->last_frame.data[0])
> >>          avctx->release_buffer(avctx, &s->last_frame);
> >>  
> >> +    *data_size = sizeof(AVFrame);
> >> +    *(AVFrame*)data = s->current_frame;
> >> +
> >>      /* shuffle frames */
> >>      s->last_frame = s->current_frame;
                       ^^^^

> > 
> > Copying the frames around like that is a recipe for problems
> > you should shuffle pointers not memcpy structs.
> 
> I'm a bit confused. Where am I doing struct memcpy() operations in the 
> patch?

not in the patch, the patch works around it by setting data[0] to zero
dont copy it and it will be zero (from release_buffer)

That is i think your patch is a hack not a fix :)

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is not what we do, but why we do it that matters.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080301/c7c80b7d/attachment.pgp>



More information about the ffmpeg-devel mailing list