From: Thorsten Jordan To: FFmpeg development discussions and patches Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] Collection of patches Date: Tue, 22 Apr 2008 12:36:02 +0200 Sender: ffmpeg-devel-bounces@mplayerhq.hu User-Agent: Mozilla-Thunderbird 2.0.0.4 (X11/20070828) Dear ffmpeg-developers, During the last 12-15 monthes I used ffmpeg because of my work as software developer in a company developing multimedia entertainment devices. I had many questions and some suggestions on this list, and I got more helpful feedback from you than I could give back. As I am now quitting this job I want to thank you finally for your help and apologize for the nasty questions. As a tiny compensation I want to share the patches with the public I maintained myself, maybe someone wants to take over them. Some of them cover open issues (of minor importance). Additionally I wrote a new TS muxer during the last weeks that can mux also h264, and also a h264 parser and analyzer. With this code one can analyze a raw h264 elementary stream and generate PTS+DTS for it. It can additionally split PAFF coded frames in two fields, so AUDs are generated for both fields if there are none or only one for the whole frame. This is useful for the ffmpeg TS demuxer, maybe also the muxer and of course for the case that h264 streams are just copied. E.g. if you remux an AVI file to a MP4 file, you won't have valid PTS from AVI, but you need to give it to MP4. With that analyzer you can generate PTS and much more, like generating AUDs for every field in PAFF streams, that are not mandatory for TS, but usual. I can't supply patches for ffmpeg as this code is C++ anyway, but if anyone writing the TS muxer/demuxer or anything similar wants to share some knowledge he may contact me at thorsten_jordan -at- gmx -dot- de. So thanks for reading so far and here are the patches: make libxvid wrapper use threads (supported with newest cvs xvid only) libxvidff_use_threads.patch Make AVCHD (mts) files give better PTS values, as PCR packets are scanned ignoring the mts<->ts difference: mts_pcr_parse_syncbyte_check.patch Do not split the h264 "headers" off too early, as when a SEI follows a SPS, split must not stop there but also include the following PPS: h264_parser_SEI_ignore.patch Set pixel aspect ratio for xvid wrapper: libxvid_set_pixelaspect.patch Give name of two-pass-stats file to x264 (ugly solution though): x264_2pass_statfilename.patch undef DEBUG_SEEK in libavformat/utils.c as this causes much computations when opening large TS files (complete parsing of whole file on open instead on demand) - this was once rejected because it would break regression checks - I propose to adapt the check rather or to see why the check won't work when debug code is disabled! : proposal-undef-DEBUG_SEEK.patch -- Greetings, Thorsten