HD-DVD decoding

For those whom it may interest.
What are the things needed to play HD-DVD movies in open-source multimedia player?

  • Decrypted movie (use this tool)
  • Demuxer support
  • Video decoder
  • Audio decoder

EVO demuxer is really just slightly modified MPEG stream demuxer. FFmpeg and MPlayer fresh SVN versions support it (MPlayer was there first). I don’t know about other multimedia players but that’s quite easy to implement.

Video decoding: there are three possible choices – MPEG-2, H.264 and VC-1. First two should work fine, the last one should work but with some bugs (I will fix them eventually).

Audio decoding: is also tricky – standard AC3 audio will work, DTS is supported via libdca and E-AC3 is still to be figured out.

Conclusion – try current SVN of MPlayer and see if it works to you. And if you care about Blu-Ray support (and it does not work) – please provide a sample.

9 Responses to “HD-DVD decoding”

  1. Brian says:

    I’ve been following the mplayer and ffmpeg mailing lists on this subject with great anticipation. Just wanted to say thank you for all your hard work!!

  2. Martin says:

    Thanks you very much Kostya for all your hard work.

    How do I try this out on a Mac Intel?

    I usually use MPlayer OS X or VLC.

    Do I have to compile something (if yes, is there an easy guide) or someone willing to help me out?

    Thanks in advance 🙂
    /Martin

  3. Martin says:

    PS. I have set up an FTP account for you with Blu-ray samples.

    Check your E-mail please… And I hope you can help me out too, with my question above 🙂

    Regards
    Martin

  4. Kostya says:

    Try to compile it yourself (you must have gcc installed, should be installed either by default or with XCode).

    1. Download snapshot from http://www.mplayerhq.hu (section “Downloads”)
    2. Unpack it into some directory
    3. Run “Terminal” (Applications/Utilities),
    4. Change to the directory with unpacked sources (“cd /MacOSX/Users/…/”)
    5. Run “./configure”
    6. If the previous step has succeeded, run make.
    This should work.

    And some tips on usage:
    test playing with ./mplayer
    and this hack may also work: open MPlayer OSX (command “Show Package Contents” in Finder) and in Contents/Resources/External_Binaries do the same with mplayer. Replace Contents/MacOS/mplayer in it with fresh compiled binary and your MPlayerOSX will have the new heart ;). Just don’t forget to save backup copy somewhere.

  5. Martin says:

    Hi Kostya

    It works fine until I type “make”. It doesnt create a binary 🙁

    —-
    imac:~/mplayer/mplayer-export-2007-02-08 Martin$ make
    make -C libvo libvo.a
    make[1]: `libvo.a’ is up to date.
    make -C libao2
    make[1]: Nothing to be done for `all’.
    make -C input
    make[1]: Nothing to be done for `all’.
    make -C libmpcodecs
    make[1]: Nothing to be done for `all’.
    make -C libaf
    make[1]: Nothing to be done for `all’.
    make -C libmpdemux libmpdemux.a
    make[1]: `libmpdemux.a’ is up to date.
    make -C stream
    make[1]: Nothing to be done for `all’.
    make -C libswscale LIBPREF=lib LIBSUF=.a
    make[1]: Nothing to be done for `all’.
    make -C libvo libosd.a
    make[1]: `libosd.a’ is up to date.
    make -C libavformat LIBPREF=lib LIBSUF=.a
    make[1]: Nothing to be done for `all’.
    make -C libavcodec LIBPREF=lib LIBSUF=.a
    make[1]: Nothing to be done for `all’.
    make -C libavutil LIBPREF=lib LIBSUF=.a
    make[1]: Nothing to be done for `all’.
    make -C loader
    make[1]: Nothing to be done for `all’.
    make -C mp3lib
    cc -I. -I.. -Wdeclaration-after-statement -O4 -march=pentium-m -mtune=pentium-m -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -DCONFIG_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I/usr/local/include -I/usr/X11R6/include -c -o dct64_MMX.o dct64_MMX.c
    {standard input}:11:Missing operand value assumed absolute 0.
    make[1]: *** [dct64_MMX.o] Error 1
    make: *** [mp3lib/libMP3.a] Error 2
    ———————

    What should I do to fix this?

    Thanks!
    /Martin

  6. Kostya says:

    1. run “make clean”
    2. run “./configure –disable-mp3lib”
    3. run make
    If it will fail on some other file with MMX or SSE then redo with ./configure –disable-mmx – it will be slow but working
    And as always, Google is not only a registered trademark but also a word meaning some useful action 😉

  7. Martin says:

    Update:

    I wrote “./configure –disable-mp3lib” and then I could run “make” afterwards and it compiled!

    Is that the right way to do it?

    I can play .EVO files from Batman Begins & Superman Returns now, but NO sound. And the video is very laggy.

    I use CoreVideo in Preferences.

    Is this the correct setup? Can I get sound?

    Thanks
    Martin 🙂

  8. Kostya says:

    >I wrote “./configure –disable-mp3lib” and then I could run “make” afterwards and it compiled!
    >Is that the right way to do it?
    If it can decode MP3s (and it should) then all is correct.

    As for audio issues – I suspect that these files have E-AC3 tracks which are currently are not supported 🙁
    And video issues – CoreVideo is fine but video decoding takes a lot of time. It plays about in 1,2-1,7 times slower than realtime on my PPC 1.42GHz (and that’s without sound). Anyway, x86 decoding may be optimized a bit more too.

  9. Martin says:

    Do you have any idea if or when E-AC3 support will work? – Is it hard to implement?

    I can only play the video if I select CoreVideo. Other settings fail.

    I have a 2.16 Core 2 Duo iMac, 2GB RAM. The CPU is not maxed out, but there is still a bit of lag. I guess the codec have to be optimized?

    PS. Did you check the FTP E-mail I sent you?

    I can play Blu-ray .m2ts in VLC (haven’t tried MPlayer yet) with video and sound, but only audio tracks 2, 3, 4 etc. I guess audio track 1 is E-AC3 and that’s why it won’t play?

    Regards
    Martin