[FFmpeg-devel] [PATCH] Possible fix for h.264 HDDVD playback

Matthew Nichols mjnichol
Fri Jan 18 05:40:26 CET 2008

At the moment, HDDVD files (EVOB) containing h.264 streams will not 
playback. This is because libavformat thinks these streams are MPEG-2. 
I've made a small patch to mpeg.c that fixes this; however, I have been 
told that this could break playback for some MPEG-2 files (although it 
hasn't for any of my MPEG-2 files so far, and no one has given me any 
good evidence as to why this is the case).

The mplayer-users list had this information:

 > US patent application #20060182418 (which appears to be based on an older
 > version of the HD-DVD spec, thus contains a number of differences to the
 > current version) lists the following stream assignments for EVOBs:
 > 0xe0 - MPEG2 primary video
 > 0xe1 - MPEG2 secondary video
 > 0xe2/0xe3 - H264 primary/secondary video
 > 0xfd->0x55 - VC-1 primary video
 > 0xfd->0x75 - VC-1 secondary video
 > 0xc0-0xc7 - MPEG primary audio 0-7
 > 0xc8-0xcf - MPEG secondary audio 0-7
 > 0xbd->0xc0-0xcf - DD+/E-AC3 audio
 > 0xbd->0x88-0x8f - DTS-HD primary audio
 > 0xbd->0x98-0x9f - DTS-HD secondary audio
 > 0xbd->0xa0-0xaf - LPCM audio
 > 0xbd->0xb0-0xbf - MLP audio
 > 0xbd->0x20-0x3f - DVD subpictures
 > These seem to be fairly compatible to DVD VOBs - the main note being that
 > current encoding software seems to place plain AC-3 streams in the same
 > stream id as E-AC3, I guess since AC-3 is forward compatible to E-AC3.

Before the patch, 0xe0 to 0xef was interpreted as being an MPEG-2 file. 
My patch now only recognizes 0xe0 and 0xe1 as MPEG-2 and 0xe2 and 0xe3 
is now recognized as H.264.

If there's a better way to do this, I'm all for it, but it's unfortunate 
that H.264 playback in HDDVD still does not work when there's an 
apparently simple fix for it. At minimum, it should be possible to pass 
a flag to mplayer that tells it you're playing an HDDVD with H.264 and 
it would "turn on" my patch. Unfortunately, I have little experience 
with mplayer and don't know the proper way of doing that.

In any case, I welcome comments, or incorporation of my patch. Thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mpeg_evob-h264fix-1.diff
Type: text/x-patch
Size: 831 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080117/074a7e31/attachment.bin>

More information about the ffmpeg-devel mailing list