[MPlayer-dev-eng] proposal of a dvdnav layer

Arpi arpi at thot.banki.hu
Sun Apr 11 11:22:48 CEST 2004


Hi,

> > im rethinking a possibility of adding dvdnav support to mplayer. 
> > i checked earlier mails on the mailing list from arpi and saw this:
> > 
> > i disagree. the main problems of dvdnav vs. mplayer:
> > - cache
> > - no mouse input handled
> 
> Mouse is irrelevant. You can control menus with keyboard/buttons just
> like a hardware player.

hmm, true.

> > - no still images support -> non-animated menus wont work
> > - no subpicture highliting support -> you can't see selection in menu
> > - no runtime track switching (audio, sub, etc) possible
> > 
> > 
> > currently ignoring caching and the mouse input issues i had in mind

caching may be the no.1 problem for interactivity.
afaik it's a design issue of libdvdnav, ie it does handle both
input stream reading (from the disc) and virtual machine for
dvd program, so you should insert the cache inbetwen them into the
dvdnav code. the best would be if libdvdnav support some kind of
cache, and disable mplayer's cache completely for libdvdnav.

the better would be if libdvdnav api is changed to allow external
raw stream source, from libdvdread for example.

> > for subpicture highlighting and still images that a layer would be
> > introduced to *mux* all that info together and then pass it to the
> > demuxing layer. also for the demuxing layer it would have to allow
> > multiple video demuxers to run at once(i dont know does it allow
> > that yet?). of course vo would then have to get *priorities* for the
> > image and then let a layer before vo overlay the images it gets from
> > the decoder.
> 
> Huh?? Why do you need some hack to mux all this together? And why a
> new layer before vo?? We already have filters for that explicit
> purpose.

agree

> > as for the runtime track switching. i think it would be enough if
> > mplayer allowed the suspend or stopping of the demuxing,
> > codecs/filters and then seek to the appropriate chapter(chapter
> > would always guarantee correct loading!).
> 
> This is not acceptable. Many discs don't even have chapters, and users
> would complain incessantly. If you can't support stream switching
> correctly, the best solution is to IGNORE stream switch in the dvd nav
> stuff.

it's a good idea.
just re-start player core (including codecs) after stream switch.
(it may be ugly, as it may result libvo/libao reset too)
but calculate the sector position and giev it to the stream/libdvdnav
layer so it can continue from that sector where the switch was initiated.
mplayer can play mpeg streams from any byte position, not only from
chapter boundaries! (remember -sb )


A'rpi / MPlayer, Astral & ESP-team

--
PyMaViS - my answer to worm storm - http://mplayerhq.hu/~arpi/pymavis/




More information about the MPlayer-dev-eng mailing list