[FFmpeg-devel] [PATCH] Fix segmentation fault when encoding CODEC_ID_PCM_F32BE frames

Stefano Sabatini stefano.sabatini-lala
Sat Aug 9 20:03:55 CEST 2008


On date Saturday 2008-08-09 18:39:40 +0200, Michael Niedermayer encoded:
> On Sat, Aug 09, 2008 at 12:40:47PM +0200, Stefano Sabatini wrote:
> > Hi all,
> > 
> > this fixes segfaults in the PCM regression tests.
> > 
> > This seems due to the compiler (gcc 4.2) getting confused by this snippet:
> > 
> >     {
> >         int32_t *samples = samples;
> >         ^^^^^^^^^^^^^^^^^^^^^^^^^^
> >         for(;n>0;n--) {
> >             register int32_t v = *samples++ + 0;
> >             bytestream_put_be32(&dst, v);
> >         }
> >     }
> > 
> > I'm not sure this is the right fix though.
> > 
> > Regards.
> > -- 
> > FFmpeg = Foolish and Fast Mastering Proud Excellent Gangster
> 
> > Index: libavcodec/pcm.c
> > ===================================================================
> > --- libavcodec/pcm.c	(revision 14673)
> > +++ libavcodec/pcm.c	(working copy)
> > @@ -171,9 +171,9 @@
> >   */
> >  #define ENCODE(type, endian, src, dst, n, offset) \
> >  { \
> > -    type *samples = src; \
> > +    type *samples2 = (type *)src; \
> 
> why the cast?

Fix a warning (yes, this is another patch).

> and samples2 is hardly the proper solution
> ENCODE_s would be less likely to clash

Not understanding here, do you mean samples_ rather than samples2?

Regards.
-- 
FFmpeg = Furious & Frenzy Martial Picky Educated Goblin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-pcm-segv-01.patch
Type: text/x-diff
Size: 487 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080809/4781c1cf/attachment.patch>



More information about the ffmpeg-devel mailing list