Hi David & Isaac,
Just a reminder of a bug that David Engel helped me track down a while
back. We copied you on a few messages at that time but a fix was not
found/committed.
The problem is that the we do not display the correct frame when pausing
while in 5X, 10X .. ff/rew mode.
In NVP:DoPlay() and DoPause(), ClearAfterSeek() is called when
skip_changed is true. This "drains" the buffers and we end up using a
scratchframe for the pause frame. Which isn't that pretty :)
One possible fix that David suggested at the time was to call GetFrame()
after the ClearAfterSeek calls in those two functions. I found that I
actually needed two GetFrame calls in those functions. The patch is
attached.
Regards,
Shane
--- mythtv-feb2/libs/libmythtv/NuppelVideoPlayer.orig.cpp 2005-02-02 12:35:36.000000000 -0500
+++ mythtv-feb2/libs/libmythtv/NuppelVideoPlayer.cpp 2005-02-02 17:07:16.000000000 -0500
@@ -2244,6 +2244,11 @@
decoder->setExactSeeks(exactseeks && ffrew_skip == 1);
decoder->DoRewind(framesPlayed);
ClearAfterSeek();
+ // These GetFrame() calls are needed so that we pause
+ // on the correct frame when pausing from 5X, 10X... ff/rew
+ // mode.
+ GetFrame(1);
+ GetFrame(1);
}
float temp_speed = audio_stretchfactor;
@@ -2292,6 +2297,11 @@
decoder->setExactSeeks(exactseeks && ffrew_skip == 1);
decoder->DoRewind(framesPlayed);
ClearAfterSeek();
+ // These GetFrame() calls are needed so that we pause
+ // on the correct frame when pausing from 5X, 10X... ff/rew
+ // mode.
+ GetFrame(1);
+ GetFrame(1);
}
float temp_speed = play_speed;
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev