diff options
author | Chainik <chainik.dn@gmail.com> | 2018-10-30 15:55:31 +0300 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2019-07-08 01:53:22 +0200 |
commit | 7f0f1a1b72905f4175dfc095d23e224585932865 (patch) | |
tree | adf9978ee88ad7ea65ee2ca4a66b5128b757a675 /video | |
parent | 5907bc023cb02eee462a0c9197f90a1c7cff7b07 (diff) | |
download | mpv-7f0f1a1b72905f4175dfc095d23e224585932865.tar.bz2 mpv-7f0f1a1b72905f4175dfc095d23e224585932865.tar.xz |
vf_vapoursynth: allow multithreaded writing of source frames
Diffstat (limited to 'video')
-rw-r--r-- | video/filter/vf_vapoursynth.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/video/filter/vf_vapoursynth.c b/video/filter/vf_vapoursynth.c index 449086b01f..4227ee6fa6 100644 --- a/video/filter/vf_vapoursynth.c +++ b/video/filter/vf_vapoursynth.c @@ -536,11 +536,14 @@ static const VSFrameRef *VS_CC infiltGetFrame(int frameno, int activationReason, p->vsapi->setFilterError("Could not allocate VS frame", frameCtx); break; } + + pthread_mutex_unlock(&p->lock); struct mp_image vsframe = map_vs_frame(p, ret, true); mp_image_copy(&vsframe, img); int res = 1e6; int dur = img->pkt_duration * res + 0.5; set_vs_frame_props(p, ret, img, dur, res); + pthread_mutex_lock(&p->lock); break; } pthread_cond_wait(&p->wakeup, &p->lock); |