mirror of
https://github.com/mpv-player/mpv
synced 2025-01-13 18:45:25 +00:00
vf_vapoursynth: stupid hack to unbreak with recent API change
Vapoursynth made an incompatible API change: clips with unknown length are not supported anymore. In fact, Vapoursynth abort()s the program (which by the way invalidate all of its claims of API/ABI stability). So add some nonsense to make it work again.
This commit is contained in:
parent
c6d046414b
commit
a1e410e43a
@ -20,6 +20,7 @@
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
#include <pthread.h>
|
||||
#include <limits.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <VapourSynth.h>
|
||||
@ -407,6 +408,10 @@ static void VS_CC infiltInit(VSMap *in, VSMap *out, void **instanceData,
|
||||
{
|
||||
struct vf_instance *vf = *instanceData;
|
||||
struct vf_priv_s *p = vf->priv;
|
||||
// The number of frames of our input node is obviously unknown. The user
|
||||
// could for example seek any time, randomly "ending" the clip.
|
||||
// This specific value was suggested by the VapourSynth developer.
|
||||
int enough_for_everyone = INT_MAX / 16;
|
||||
|
||||
// Note: this is called from createFilter, so no need for locking.
|
||||
|
||||
@ -414,6 +419,7 @@ static void VS_CC infiltInit(VSMap *in, VSMap *out, void **instanceData,
|
||||
.format = p->vsapi->getFormatPreset(mp_to_vs(p->fmt_in.imgfmt), p->vscore),
|
||||
.width = p->fmt_in.w,
|
||||
.height = p->fmt_in.h,
|
||||
.numFrames = enough_for_everyone,
|
||||
};
|
||||
if (!fmt.format) {
|
||||
p->vsapi->setError(out, "Unsupported input format.\n");
|
||||
|
Loading…
Reference in New Issue
Block a user