[MPlayer-dev-eng] mplayer libmpdemux

MoRpHeUz morpheuz at gmail.com
Wed Jul 25 19:51:58 CEST 2007


Hi,

While doing some application that makes use of mplayer's slave
feature I reached a problem about seeks and get_time_pos .

  Problem scenario: I have this mpeg2ts file recorded from a dvb
stream using mythtv and while playing it, if I try using
"get_time_pos" I always get high values like 8779.4, even at the
beginning of the file (this file starts at 8779.1). I noticed also
that while playing, the last significant digit increases 1 per second.
Working like this, I have a problem while seeking to absolute
positions as the function "seek" just works with values in seconds.

  Looking at mplayer's code I found the file
"mplayer/libmpdemux/video.c" and at line 630 we have:

        sh_video->pts+=frame_time;
        if(picture_coding_type<=2 && sh_video->i_pts){
            sh_video->pts=sh_video->i_pts;
            sh_video->i_pts=pts;
        } else {
            if(pts){
                if(picture_coding_type<=2) sh_video->i_pts=pts;
                else {
                    sh_video->pts=pts;
                }
            }
        }


  This file is reaching that last else and so it has
picture_coding_type==3 (maybe this means that it's macroblock type b
?).

  I'm trying to figure out a solution for this problem (even a patch
if this is a bug)
but I need some help to understand this scenario. Could you give me a
little help on this ?

Regards,

--
-------------------------------------------------------
Blog: http://labs.morpheuz.eng.br/blog/
PGP: 0xDBEEAAC3 @ wwwkeys.pgp.net



More information about the MPlayer-dev-eng mailing list