[Ffmpeg-devel] VCD Bug Revisited (original) (raw)

Colin Ward hitman
Wed Feb 8 15:30:13 CET 2006


Hi all.

Last week I reported a problem with a VCD .dat file that was not being recognised by FFMPEG. It turned out that it was a straight MPEG file that had about 70k or blank zeros at the start. I hacked libavformat/utils.c::av_open_input_file() and libavformat/mpeg.c::mpegps_probe() and got it working.

Tonight I updated to CVS head and noticed that some kind soul has updated to properly allocate memory and keep scanning more of the start of a file until it can determine the file's type. Very nice. However, the file is still not recognised because libavformat/mpeg.c::mpegps_probe() is only scanning the first 20 bytes of the file. Take a look at line 1266 of mpegps_probe() and you will see that it always says int size= FFMIN(20, p->buf_size); This means that it is always ignoring the large p->buf_size that is passed in and scanning just the first 20 bytes. Changing the FFMIN to FFMAX causes it to detect the MPEG file correctly.

Undernead this there is the following comment:

/* NOTE: the search range was restricted to avoid too many false detections */

Can anyone shed more light on this?

-- /-------------------------------------------------------------------
[Hitman/Code HQ - 6502/z80/68000/604e/80x86/ARM coder - Amiga rulez!] [VZ-200/VIC-20/MZ-700/c16/c6410/c1288/Plus-4/CPC464/CD32/5002 ] [600/1000/12002/A4000/SNES/N64/Dreamcast/Athlon 1100/AmigaOne ] [Assembly Language: The most fun you can have with your clothes on! ] -------------------------------------------------------------------/



More information about the ffmpeg-devel mailing list