(2014-02-19 20:22)popcornmix Wrote: There were two main reasons for getting dvdplayer working.
Software decode for unsupported SD resolution codecs (e.g. msmpeg-4, DivX 3, sorenson spark)
Full DVD playback with menus
Thanks for your elaborated response. It certainly helps getting an understanding of the current developments.
(2014-02-19 20:22)popcornmix Wrote: At the moment a goal would be to:
make dvdplayer the default for dvd images
make omxplayer the default for all other files
allow "play using dvdplayer" to be a manual option for software video decode of SD codecs, or as an alternative for a file that plays badly.
That sounds like the best setting given the current situation.
(2014-02-19 20:22)popcornmix Wrote: Unfortunately xbmc's structure doesn't make it easy to automatically play an unsupported codec with dvdplayer.
You only know for sure that you can't play it once omxplayer has opened the ffmpeg demuxer and got the codec hints out (the filename is not enough).
It would be quite ugly to make omxplayer return an error and then have xbmc retry with dvdplayer (but it's an option).
That I understand... Maybe an alternative solution could be this: Make omxplayer the default player for all non-dvd videos, and put some logic in it to detect if it would be able to play the file correctly once the codec hints are known. And if not, close the file and hand over playback to dvdplayer. This means that we don't have to rely on any info from the database that may not be present or not reliable. This seems something that should be doable without changing the XBMC internals, but it does introduce a dependency between omxplayer and dvdplayer...
(2014-02-19 20:22)popcornmix Wrote: A longer term goal could be to merge omxplayer and dvdplayer.
Currently OMXPlayer.cpp and DVDPlayer.cpp are quite similar, so use a common file for that.
Once ffmpeg parsing is done either code from DVDPlayerVideo.cpp or OMXPlayerVideo.cpp would be invoked based on codec/resolution and user options.
That would avoid some of the maintenance omxplayer requires (merging changes from DVDPlayer.cpp to OMXPlayer.cpp) but shouldn't harm performance.
Their functionality is indeed very similar (from the user-perspective, I can't judge the internal workings of the two programs), and merging seems like the most obvious goal to prevent maintenance on two very similar products. The suggestion you do here seems to be the best to get the 'best of both', and could prevent dirty hacks like the one I suggested above (launch dvdplayer from omxplayer when required).
Thanks again for your great work on this project and the time you spend helping us out in case of problems.
FYI, last night I tested about 20 dvd's with dvdplayer, and all worked almost perfectly. So far I only found that 'Alles is familie' dvd that makes my poor Pi crash.
I said 'almost perfectly', because trick modes don't work in dvd menus. I spent a lot of time last night watching those anti-piracy commercials, without being able to skip them, or use Fast Forward of any kind. Normally I can use the cursor keys to move around videos, but up/down don't work because those videos are <10m, and left/right only seem to advance 1s. Playing at higher speed (x2, x4 etc.) doesn't seem to work at all in menu videos...
Is there a way to advance to the 'next chapter' when playing menus and videos with dvdplayer? (And to the end of video when in the last chapter?) Maybe my remote is just missing the right buttons for that...
Besides these things, all menus are working great so far. I'll be testing more dvd's the coming days...