[MPlayer-dev-eng] dvdnav second installment, help needed

David Holm dholm at telia.com
Sun Dec 23 14:34:02 CET 2001


Arpi wrote:

>Hi,
>
>>As you can see in stream.c dvd menus support something called still pictures. 
>>This is used commonly in menus to provide a still background. A still picture 
>>is basically preceeded by an mpeg ps stream which contains a video packet 
>>with the picture incoded as intra (I assume ;). This is where I need help, 
>>when the demuxer get's a still picture it currently freaks out since it's 
>>preceeded only by audio. The demuxer kills mplayer telling me there are too 
>>many audio packets in the buffer. I understand why this happens but I've been 
>>unable to make a clean implementation to solve this.
>>
>
>clean...
>
>do you know a clean way to detect still pictures? i mean, there is info
>about them in IFO file, or PS/ES header etc ?
>
>xine guys are working on this issue for months, with no full success yet.
>from their mailing it seems to no clean way, just some heuristics. but i
>don't like to introduce such thing ni mplayer. they play with PTS and DTS
>differences,. but it's too messy, and sometimes break non-dvd content.
>
>second prob: most mplayer libvo drivers use double buffering.
>so decoded still pic in decoder buffer won't be displayed until next picture
>is decoded... it can be solved only with big mess, or ... libvo2.
>
>>So could someone help me out and have a look at the demuxer to allow it to 
>>receive only audio (and only video since this is also allowed by the 
>>
>audio only not supported by mplayer core.
>maybe, a possible ugly mess is repeating video frame...
>

As it works right now libdvdnav tells you when there's a still picture, 
I don't want to bypass libdvdnav by using dvdread alongside to read the 
ifo, moving the head on a dvd to a diff location while playing is not a 
good solution.
Is it possible to read the previous frame somehow? Since the still 
picture call seems to come after video (although I'm not 100% sure yet, 
needs further testing). I'm also in contact with the dvdnav developers, 
so if we need any functionality they will likely be glad to help.
If it's not possible to read the previous or "current" frame I guess I 
would have to use some sort of precaching, shouldn't be too difficult, 
but I still need to demux the ps packet to get the video frame, ideas?

//David Holm





More information about the MPlayer-dev-eng mailing list