Cyberace
14th September 2005, 10:24
XboxMediaCenter's built-in DVD-player core is now officially open to the public for general usage. The new dvdplayer-core, which a few of our developers have been working on for almost a year has been enabled in our CVS and is of today the default player for DVD-Video playback in XBMC. The basics functions for DVD-Video playback (including DVD-menus support) in already in there, but we like to ask and encourage programmers who may or may not yet have contributed to the XBMC project to step up and assist in the development of this new core for DVD-Video playback. Please take a look at the source code, its potential, and then look at the many (big and small) features that are missing or lacking, there are things that almost anyone can help with.
Technical-summery: "This C/C++ coded player core/library is made for the DirectX API and is framework dependent, it's currently based on libmpeg2 (for MPEG-1/2 video decoding), liba52 (for AC3 audio decoding), libdts/libdca (for DTS audio decoding), libMAD (for MPEG audio decoding, ported using madxlib), and libavcodec (FFmpeg) (for other audio formats decoding), plus libavformat (FFmpeg) for all file/media-container demuxing/splitting. CSS-decryption is done with libdvdcss, and the menu/navigation is handled by a ported version of libDVDnav and dvdread (which is part of libDVDnav, but was originally ported/forked by them from libdvdread). Since the core has the option to use FFmpeg for audio / video decoding, it should be able to play most formats that FFmpeg supports too, (though using FFmpeg libavformat demuxer 'as is' is probebly not optimal as it has much not needed for DVD-Video, better would be to make our own, especially for MPEG2-video based materials)".
@Programmers: now that the dvdplayer-core has been made public the XBMC project needs more C/C++ programmers to actively assist with bug-fixing and the development of this new dvdplayer core, there are many ways in which you can help. For starters we advise you to make sure that you can compile XBMC GUI and the dvdplayer-core separately by yourself, once you done that you probably want to setup a debug environment on your Xbox with a debug-BIOS and XDK-launcher. Once you can compile XBMC and the dvdplayer then we suggest that you start by simply playing all the DVD-Video movies you and your friends own via the dvdplayer-core (testing all menu and playback functions), if and when you discover a bug/glitch then you try to fix it and submit a patch for it, if you can't fix it yourself then please submit a bug-report (with detailed problem/symptom description). Alternatively you go right ahead and either code GUI/playback optimizations or additional features/functions for the dvdplayer, ...there are many wanted features, some big and others small or semi-small that would probably even be good for C/C++ beginners and hobby programmers to get started on.
Much more information here:
http://www.xboxmediaplayer.de/cgi-bin/forums/ikonboard.pl?act=ST;f=5;t=10877
Best regards from Team-XBMC / www.xboxmediacenter.com (http://www.xboxmediacenter.com)
PS! Some small and semi-small suggestions (of features that is missing) for beginner programmers to look at:
- Implement a configurable software flicker-filter (Temporal-Smoother) as an alternative.
- Several optional Post-Processing filters to enhance visual quality and remove artifacts, etc.
(DeBlocking, DeRinging, Sharpen, Soften, ReQuantization, Auto-Luminance, DeNoising, etc.)
- External subtitle support when playing DVD's (like .SRT/.SUB/.SSA text-based subtitles)
- Auto-resume support, if press 'pause' before 'stop' then position is save, like a hidded bookmark,
(when insert/play the same DVD again check DISCID and give option to resume, like PowerDVD)
- Bookmarks, save and restore to any position on the DVD (preferably save with a picture/tumbnail)
- Option to skip warnings, ads and 'pre-menu' trailers to jump directly to the main title-menu
Technical-summery: "This C/C++ coded player core/library is made for the DirectX API and is framework dependent, it's currently based on libmpeg2 (for MPEG-1/2 video decoding), liba52 (for AC3 audio decoding), libdts/libdca (for DTS audio decoding), libMAD (for MPEG audio decoding, ported using madxlib), and libavcodec (FFmpeg) (for other audio formats decoding), plus libavformat (FFmpeg) for all file/media-container demuxing/splitting. CSS-decryption is done with libdvdcss, and the menu/navigation is handled by a ported version of libDVDnav and dvdread (which is part of libDVDnav, but was originally ported/forked by them from libdvdread). Since the core has the option to use FFmpeg for audio / video decoding, it should be able to play most formats that FFmpeg supports too, (though using FFmpeg libavformat demuxer 'as is' is probebly not optimal as it has much not needed for DVD-Video, better would be to make our own, especially for MPEG2-video based materials)".
@Programmers: now that the dvdplayer-core has been made public the XBMC project needs more C/C++ programmers to actively assist with bug-fixing and the development of this new dvdplayer core, there are many ways in which you can help. For starters we advise you to make sure that you can compile XBMC GUI and the dvdplayer-core separately by yourself, once you done that you probably want to setup a debug environment on your Xbox with a debug-BIOS and XDK-launcher. Once you can compile XBMC and the dvdplayer then we suggest that you start by simply playing all the DVD-Video movies you and your friends own via the dvdplayer-core (testing all menu and playback functions), if and when you discover a bug/glitch then you try to fix it and submit a patch for it, if you can't fix it yourself then please submit a bug-report (with detailed problem/symptom description). Alternatively you go right ahead and either code GUI/playback optimizations or additional features/functions for the dvdplayer, ...there are many wanted features, some big and others small or semi-small that would probably even be good for C/C++ beginners and hobby programmers to get started on.
Much more information here:
http://www.xboxmediaplayer.de/cgi-bin/forums/ikonboard.pl?act=ST;f=5;t=10877
Best regards from Team-XBMC / www.xboxmediacenter.com (http://www.xboxmediacenter.com)
PS! Some small and semi-small suggestions (of features that is missing) for beginner programmers to look at:
- Implement a configurable software flicker-filter (Temporal-Smoother) as an alternative.
- Several optional Post-Processing filters to enhance visual quality and remove artifacts, etc.
(DeBlocking, DeRinging, Sharpen, Soften, ReQuantization, Auto-Luminance, DeNoising, etc.)
- External subtitle support when playing DVD's (like .SRT/.SUB/.SSA text-based subtitles)
- Auto-resume support, if press 'pause' before 'stop' then position is save, like a hidded bookmark,
(when insert/play the same DVD again check DISCID and give option to resume, like PowerDVD)
- Bookmarks, save and restore to any position on the DVD (preferably save with a picture/tumbnail)
- Option to skip warnings, ads and 'pre-menu' trailers to jump directly to the main title-menu