[MPlayer-users] Trouble with HD-PVR recordings

Geoffrey Leach geoff at hughes.net
Thu Sep 10 04:48:26 CEST 2009


On 09/09/2009 04:58:43 PM, Carl Eugen Hoyos wrote:
> Charlie Gunyon <charles.gunyon <at> gmail.com> writes:
> 
> [...]
> > I understand the idea of container formats, but the real difference
> > here is what MPlayer's defaults are.  Is this information 
> documented
> > anywhere?
> 
> For example in MPlayer's output (fourth line) - I would consider it
> less helpful
> anywhere else. (but as always: Documentation patch welcome!)
> 
> [...]
> 
> > I uploaded it here: http://www.charlieg.net/downloads/output.log,
> but
> > I really think that my system is not too slow as this sample plays
> > just fine in Windows using VLC, or using the CoreAVC for Linux
> > software.
> 
> That is not really a valid argument (both may drop frames without you
> noticing
> it and CoreAVC can use CPU cores that MPlayer can't use).
> 
> > > Are you sure? Could this be a problem with a too low refresh rate
> of your
> > > screen? Did you test export VDPAU_NVIDIA_NO_OVERLAY=1?
> > > I will test with my Pentium III 500, but that will take some 
> time.
> > 
> > Neat trick, that helped a lot!  Is that documented anywhere?
> 
> (Here, if I understand you correctly, you should have deleted my line
> about my
> old computer.)
> ftp://download.nvidia.com/XFree86/Linux-x86/190.32/README/appendix-
> h.html
> (Paragraph VdpPresentationQueue)
> You can test deint=2 now - it probably works as long as you do not 
> use
> OSD...
> 
> [...]
> 
> > Yeah I'm starting to figure this out.  You can't use CPU
> deinterlacing
> > when using VDPAU decoding can you?
> 
> Not yet, but since the useful de-interlacer (yadif) needs much more
> CPU power
> than decoding alone, I doubt it would help in this case.
> 
> > >> And I avoided the SLOW message and A-V desyncs, but playback was
> quite
> > >> choppy.  I assume this is due to 'skipframe=nonref' but if this
> is the
> > >> result I don't see it as a solution.
> > >
> > > I tried to say it before: You cannot ask the system to drop as
> many frames
> > > as possible and complain about dropping frames.
> > 
> > Yeah I understand the concept of "frame skipping" or alternately
> > "frame dropping" but I thought I wasn't asking it to drop as many
> > frames as possible, just the non-reference ones.
> 
> No, you asked to drop as many as possible without breaking decoding.
> 
> > I guess I didn't
> > realize how many that was, the docs really aren't clear about this
> at all.
> 
> I disagree, but see above.
> 
> > Also I thought that '-framedrop' was supposed to drop as many 
> frames
> as
> > necessary.
> 
> Exactly (as opposed to as many as possible).

The problem here is not unlike the one that's been bothering me for 
some time. Which is, loss of A-V sync on recordings (MPEG2, HD HomeRun) 
on my PVR (E8400, GE9300, MCP79, 1920x1080 at 60) on two channels, 
consistently. FWIW (be that ever so little), here's my solution.

In mplayer.c:adjust_sync_and_print_status()
    if (AV_delay>0.5 && drop_frame_cnt>500){
        seek(mpctx, -0.1f, 0);
        /* GCL
        if (AV_delay>0.5 && drop_frame_cnt>50 && drop_message==0){
        ++drop_message;
        mp_msg(SGT_AVSYNC,MSGL_WARN,MSGTR_SystemTooSlow);
      */
    }

In other words, make the criteria for complaining that the system's too 
slow a little stricter (based on log observation) and seek backwards a
tad, which forces mplayer to start counting dropped frames again.

It's a bit of a blunt insturment, but it makes recordings watchable 
that were previously not so.

Geoffrey Leach







More information about the MPlayer-users mailing list