summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohns <johns98@gmx.net>2012-08-18 15:53:14 +0200
committerJohns <johns98@gmx.net>2012-08-18 15:53:14 +0200
commitd9c9061a7ce0c75bfa45a0f33b115ad948ddc06d (patch)
treeba74f737024d46b9ba0166a801ec7dc6f5ae8d01
parente9fbe6b54f17774701cd7f62cf4d778760d1a178 (diff)
downloadvdr-plugin-softhddevice-d9c9061a7ce0c75bfa45a0f33b115ad948ddc06d.tar.gz
vdr-plugin-softhddevice-d9c9061a7ce0c75bfa45a0f33b115ad948ddc06d.tar.bz2
Reset closing only, if trickspeed is set.
-rw-r--r--video.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/video.c b/video.c
index e3dc9f1..55b7c65 100644
--- a/video.c
+++ b/video.c
@@ -4545,7 +4545,9 @@ static void VaapiSetTrickSpeed(VaapiDecoder * decoder, int speed)
{
decoder->TrickSpeed = speed;
decoder->TrickCounter = speed;
- decoder->Closing = 0;
+ if (speed) {
+ decoder->Closing = 0;
+ }
}
///
@@ -7642,7 +7644,12 @@ static void VdpauMixVideo(VdpauDecoder * decoder)
&video_src_rect, VdpauSurfacesRb[VdpauSurfaceIndex], &dst_rect,
&dst_video_rect, 0, NULL);
} else {
- current = decoder->SurfacesRb[decoder->SurfaceRead];
+ if (decoder->Interlaced) {
+ current = decoder->SurfacesRb[(decoder->SurfaceRead + 1)
+ % VIDEO_SURFACES_MAX];
+ } else {
+ current = decoder->SurfacesRb[decoder->SurfaceRead];
+ }
status =
VdpauVideoMixerRender(decoder->VideoMixer, VDP_INVALID_HANDLE,
@@ -7884,7 +7891,9 @@ static void VdpauSetTrickSpeed(VdpauDecoder * decoder, int speed)
{
decoder->TrickSpeed = speed;
decoder->TrickCounter = speed;
- decoder->Closing = 0;
+ if (speed) {
+ decoder->Closing = 0;
+ }
}
///