[vdr] Incormporating frame advance not on I-frames...

Laz laz at club-burniston.co.uk
Sun Jan 8 11:07:54 CET 2006


Hi,

I mentioned this a few weeks back and I've finally got around to having a go 
at incorporating it. My plan is to change the way the Pause button works so 
that pressing it whilst paused steps forward by a frame and stays paused 
(I've owned a real video that does this: pressing play exits pause).

Skiping between I-frames like this is easy to achieve by changing 
cDvbPlayer::Pause to:

void cDvbPlayer::Pause(void)
{
  if (playMode == pmPause || playMode == pmStill) {
     Goto(SkipFrames(1), true);
     }
  else {
...

This works fine, and is a partial solution but each step is ca. half a second. 
I was hoping to use something involving:

GetIndex(Current, Total, false); // Get current index _not_ snapped to I-frame
Goto(++Current);

but Goto snaps to I-frames so all I see is it jumping to an I-frame on the 
first step and then jumping to the same one on successive steps!

Is it possible to step between individual frames using cDvbPlayer or does this 
need doing at a lower level?

Cheers,

Laz



More information about the vdr mailing list