diff options
author | Johns <johns98@gmx.net> | 2012-08-18 15:53:14 +0200 |
---|---|---|
committer | Johns <johns98@gmx.net> | 2012-08-18 15:53:14 +0200 |
commit | d9c9061a7ce0c75bfa45a0f33b115ad948ddc06d (patch) | |
tree | ba74f737024d46b9ba0166a801ec7dc6f5ae8d01 | |
parent | e9fbe6b54f17774701cd7f62cf4d778760d1a178 (diff) | |
download | vdr-plugin-softhddevice-d9c9061a7ce0c75bfa45a0f33b115ad948ddc06d.tar.gz vdr-plugin-softhddevice-d9c9061a7ce0c75bfa45a0f33b115ad948ddc06d.tar.bz2 |
Reset closing only, if trickspeed is set.
-rw-r--r-- | video.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -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; + } } /// |