From 8cb7f7d9c0ba38cc6f1d3839aab19cd74c71c8c3 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 23 Dec 2018 20:07:05 +0100 Subject: [PATCH] ffmpeg: don't hold AV lock while fetching first packet/frame This allows loading multiple videos side-by-side more effectively. Closes #397 --- panda/src/ffmpeg/ffmpegVideoCursor.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/panda/src/ffmpeg/ffmpegVideoCursor.cxx b/panda/src/ffmpeg/ffmpegVideoCursor.cxx index ef23a9414e..fa5789b6c4 100644 --- a/panda/src/ffmpeg/ffmpegVideoCursor.cxx +++ b/panda/src/ffmpeg/ffmpegVideoCursor.cxx @@ -79,8 +79,6 @@ init_from(FfmpegVideo *source) { return; } - ReMutexHolder av_holder(_av_lock); - #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 45, 101) _frame = av_frame_alloc(); _frame_out = av_frame_alloc(); @@ -109,6 +107,8 @@ init_from(FfmpegVideo *source) { _eof_known = false; _eof_frame = 0; + ReMutexHolder av_holder(_av_lock); + // Check if we got an alpha format. Please note that some video codecs // (eg. libvpx) change the pix_fmt after decoding the first frame, which is // why we didn't do this earlier.