Increased encoder and decoder compatibility for H264 and Mpeg-4 Video

In version, the mux now accepts Byte Stream Format as well as length-preceded format for H.264, and accepts a wider range of input formats. It is able to extract decoder-specific data from the input stream if it is not supplied in the media type; this includes the VOL header for mpeg-4 and the parameter sets for H.264. With these changes, the mux and demux now work correctly with ffdshow and x264 encoders and decoders. Also, as a result, the mux project now includes some useful classes for NALU parsing. The mux also fixes a bug in which the track header dimensions were set incorrectly for larger videos.

The demux now correctly writes the CTTS table (to support B frames) even when the sample end times are not correct. This is done by calculating the frame rate from the minimum positive inter-frame interval and using the duration together with the start timestamp to calculate both decode and presentation times for each sample.

6 April 2009