summaryrefslogtreecommitdiff
path: root/codec.c
diff options
context:
space:
mode:
authorJohns <johns98@gmx.net>2013-02-07 16:54:16 +0100
committerJohns <johns98@gmx.net>2013-02-07 16:54:16 +0100
commitd4535a34c9afa899cc21eeba5cc0e6acedc7b1a9 (patch)
tree35ddf375c34bf04fa09c9c1c3609d5fc29fa346b /codec.c
parentebd2f85f902d0c35c47dc37c27a336b881750129 (diff)
downloadvdr-plugin-softhddevice-d4535a34c9afa899cc21eeba5cc0e6acedc7b1a9.tar.gz
vdr-plugin-softhddevice-d4535a34c9afa899cc21eeba5cc0e6acedc7b1a9.tar.bz2
Fix xcb deadlock while closing PIP decoder.
Close video decoder from inside the decoder thread, otherwise xcb hangs in a lock.
Diffstat (limited to 'codec.c')
-rw-r--r--codec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/codec.c b/codec.c
index e47b8d3..e3860f7 100644
--- a/codec.c
+++ b/codec.c
@@ -181,6 +181,9 @@ static int Codec_get_buffer(AVCodecContext * video_ctx, AVFrame * frame)
//Debug(3, "codec: use surface %#010x\n", surface);
frame->type = FF_BUFFER_TYPE_USER;
+#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(53,46,0)
+ frame->age = 256 * 256 * 256 * 64;
+#endif
// render
frame->data[0] = (void *)vrs;
frame->data[1] = NULL;
@@ -205,6 +208,9 @@ static int Codec_get_buffer(AVCodecContext * video_ctx, AVFrame * frame)
//Debug(3, "codec: use surface %#010x\n", surface);
frame->type = FF_BUFFER_TYPE_USER;
+#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(53,46,0)
+ frame->age = 256 * 256 * 256 * 64;
+#endif
// vaapi needs both fields set
frame->data[0] = (void *)(size_t) surface;
frame->data[3] = (void *)(size_t) surface;