diff options
author | Johns <johns98@gmx.net> | 2013-02-07 16:54:16 +0100 |
---|---|---|
committer | Johns <johns98@gmx.net> | 2013-02-07 16:54:16 +0100 |
commit | d4535a34c9afa899cc21eeba5cc0e6acedc7b1a9 (patch) | |
tree | 35ddf375c34bf04fa09c9c1c3609d5fc29fa346b /codec.c | |
parent | ebd2f85f902d0c35c47dc37c27a336b881750129 (diff) | |
download | vdr-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.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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; |