diff options
author | Johns <johns98@gmx.net> | 2012-01-05 22:55:57 +0100 |
---|---|---|
committer | Johns <johns98@gmx.net> | 2012-01-05 22:55:57 +0100 |
commit | 820c2461483cf380226fca410e723557c106a027 (patch) | |
tree | 02eed98cb99441ff12118ab24f9be930ce85a8ef | |
parent | 8dda2a0b8a5bd3bc1169baffec450d241a2bc3f2 (diff) | |
download | vdr-plugin-softhddevice-820c2461483cf380226fca410e723557c106a027.tar.gz vdr-plugin-softhddevice-820c2461483cf380226fca410e723557c106a027.tar.bz2 |
Fix bug: old surface stay in video ringbuffer.
-rw-r--r-- | video.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -1146,6 +1146,7 @@ static void VaapiCleanup(VaapiDecoder * decoder) { int filled; VASurfaceID surface; + int i; // flush output queue, only 1-2 frames buffered, no big loss while ((filled = atomic_read(&decoder->SurfacesFilled))) { @@ -1169,6 +1170,11 @@ static void VaapiCleanup(VaapiDecoder * decoder) abort(); } + // clear ring buffer + for (i = 0; i < VIDEO_SURFACES_MAX; ++i) { + decoder->SurfacesRb[i] = VA_INVALID_ID; + } + decoder->WrongInterlacedWarned = 0; // cleanup image |