[Ffmpeg-devel] [Ffmpeg-devel-old] SVCD bug (original) (raw)
Colin Ward lists
Thu Feb 2 08:32:08 CET 2006
- Previous message: [Ffmpeg-devel] [Ffmpeg-devel-old] SVCD bug
- Next message: [Ffmpeg-devel] [Ffmpeg-devel-old] SVCD bug
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
M?ns Rullg?rd wrote:
[Snip]
A simple solution might be to attempt reading any file starting with lots of zeros as MPEG. I don't know of any other format that allows this.
It is quite a mystery to me why anyone would want to pad the start of a file with 64 or so kilobytes of zeros!
I looked into getting libavformat to scan more than 2048 bytes worth of data at the start of the file and now all of my VCDs work. However, I ran into some issues that we may want to look into.
- Merely changing libavformat/utils.c::PROBE_BUF_SIZE to be larger than 2048 bytes was not enough because in libavformat/mpeg.c::mpegps_probe() is the following line:
int size= FFMIN(20, p->buf_size);
Which means that even though PROBE_BUF_SIZE is passed in in p->buf_size then only the first 20 bytes get scanned anyway. I had to change the code to scan p->buf_size before it would work.
Plus as an added bonus, when av_open_input_file() first calls this function it will set p->buf_size to zero anyway, causing this function to only scan the first zero bytes!
- After I got it to work I thought that it would be better to pass in a buffer size to av_open_input_file() rather than to hack the PROBE_BUF_SIZE #define. The 4th parameter of av_open_input_file() is described as:
buf_size optional buffer size (zero if default is OK)
However, if I pass this in then it is not used for the initial call to av_probe_input_format() (PROBE_BUF_SIZE is used for this) but only for the second call, when the first one fails. Is there a reason for this that I am missing?
I need to learn a bit more about MPEG 1/2/4, VCDs and DVDs. Any suggestions of a good book that covers these on a file format level? MPEG1: ISO 11172-1 system, -2 video, -3 audio MPEG2: ISO 13818-1 PS/TS, -2 video, -3 audio, -7 AAC MPEG4: ISO 14496-1 QT-like format, -2 video, -3 ACC, -10 AVC, -14 more format stuff, save your sanity and leave this to Mike VCD: White Book, apparently MPEG with some added junk SVCD: no official standard, MPEG2 video, presumably with added junk DVD: the spec is yours for $5000, some useful information at http://dvd.sourceforge.net/dvdinfo/
Thanks, this is a good start. :-)
--
/-------------------------------------------------------------------
[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! ]
-------------------------------------------------------------------/
- Previous message: [Ffmpeg-devel] [Ffmpeg-devel-old] SVCD bug
- Next message: [Ffmpeg-devel] [Ffmpeg-devel-old] SVCD bug
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]