[FFmpeg-cvslog] r25931 - trunk/libavformat/asfdec.c

Reimar Döffinger Reimar.Doeffinger
Sun Dec 12 16:09:48 CET 2010


On Sun, Dec 12, 2010 at 03:13:04PM +0100, Aurelien Jacobs wrote:
> On Sat, Dec 11, 2010 at 10:41:47PM +0100, reimar wrote:
> > Author: reimar
> > Date: Sat Dec 11 22:41:47 2010
> > New Revision: 25931
> > 
> > Log:
> > Return an error when get_buffer reads none or only partial data instead
> > of returning packets with uninitialized data.
> > Returning partial packets as for other demuxers is problematice due to
> > packet scrambling and thus is not done.
> 
> This (or the previous commit ?) broke FATE.

No that one.
What happened before:
==4939== Use of uninitialised value of size 8
==4939==    at 0x7B05FD: ff_wma_run_level_decode (get_bits.h:611)
==4939==    by 0x7B5F06: decode_frame (wmaprodec.c:852)
==4939==    by 0x7B72B8: decode_packet (wmaprodec.c:1529)
==4939==    by 0x74A94E: avcodec_decode_audio3 (utils.c:671)
==4939==    by 0x4327EF: output_packet (ffmpeg.c:1498)
==4939==    by 0x434387: T.657 (ffmpeg.c:2620)
==4939==    by 0x4352E2: main (ffmpeg.c:4330)
==4939== 
[wmapro @ 0x66c0c90] frame[113] would have to skip -660 bits
Error while decoding stream #0.0

(why did our valgrind test config not catch that??)

After it changes to this:
stddev:    0.00 PSNR:157.31 MAXDIFF:    1 bytes:  2752512/  2506752

Which means quite a few samples (AFAICT some even sounding ok) are lost,
but no more invalid read.
Ok to update the reference file using dd (which makes sure only a few
samples will be lost but nothing changes)?
dd if=latin_192_mulitchannel_cut.pcm of=latin_192_mulitchannel_cut.pcm2 bs=4096 count=612

Same for the 2ch test:
stddev:    0.00 PSNR:148.89 MAXDIFF:    1 bytes:   417792/   360448
dd if=Beethovens_9th-1_small.pcm of=Beethovens_9th-1_small.pcm2 bs=4096 count=88



More information about the ffmpeg-cvslog mailing list