Commit 7074a7cc authored by wm4's avatar wm4

avformat: add vapoursynth wrapper

This can "demux" .vpy files. Autodetection of .vpy scripts is
intentionally not done, because it would be a major security issue. You
need to force the format, for example with "-f vapoursynth" for the
FFmpeg CLI tools.

Some minor code copied from other LGPL parts of FFmpeg.

I did not find a good way to test a few of the more obscure VS features,
like VFR nodes, compat pixel formats, or nodes with dynamic size/format
changes. These can be easily implemented on demand.
parent 9479955c
...@@ -303,6 +303,7 @@ External library support: ...@@ -303,6 +303,7 @@ External library support:
--disable-sdl2 disable sdl2 [autodetect] --disable-sdl2 disable sdl2 [autodetect]
--disable-securetransport disable Secure Transport, needed for TLS support --disable-securetransport disable Secure Transport, needed for TLS support
on OSX if openssl and gnutls are not used [autodetect] on OSX if openssl and gnutls are not used [autodetect]
--enable-vapoursynth enable VapourSynth demuxer [no]
--disable-xlib disable xlib [autodetect] --disable-xlib disable xlib [autodetect]
--disable-zlib disable zlib [autodetect] --disable-zlib disable zlib [autodetect]
...@@ -1724,6 +1725,7 @@ EXTERNAL_LIBRARY_LIST=" ...@@ -1724,6 +1725,7 @@ EXTERNAL_LIBRARY_LIST="
mediacodec mediacodec
openal openal
opengl opengl
vapoursynth
" "
HWACCEL_AUTODETECT_LIBRARY_LIST=" HWACCEL_AUTODETECT_LIBRARY_LIST="
...@@ -3091,6 +3093,7 @@ libx265_encoder_deps="libx265" ...@@ -3091,6 +3093,7 @@ libx265_encoder_deps="libx265"
libxavs_encoder_deps="libxavs" libxavs_encoder_deps="libxavs"
libxvid_encoder_deps="libxvid" libxvid_encoder_deps="libxvid"
libzvbi_teletext_decoder_deps="libzvbi" libzvbi_teletext_decoder_deps="libzvbi"
vapoursynth_demuxer_deps="vapoursynth"
videotoolbox_suggest="coreservices" videotoolbox_suggest="coreservices"
videotoolbox_deps="corefoundation coremedia corevideo" videotoolbox_deps="corefoundation coremedia corevideo"
videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames" videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames"
...@@ -6133,6 +6136,8 @@ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/r ...@@ -6133,6 +6136,8 @@ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/r
{ enabled libdrm || { enabled libdrm ||
die "ERROR: rkmpp requires --enable-libdrm"; } die "ERROR: rkmpp requires --enable-libdrm"; }
} }
enabled vapoursynth && require_pkg_config vapoursynth "vapoursynth-script >= 42" VSScript.h vsscript_init
if enabled gcrypt; then if enabled gcrypt; then
GCRYPT_CONFIG="${cross_prefix}libgcrypt-config" GCRYPT_CONFIG="${cross_prefix}libgcrypt-config"
......
...@@ -570,6 +570,7 @@ OBJS-$(CONFIG_LIBRTMPTE_PROTOCOL) += librtmp.o ...@@ -570,6 +570,7 @@ OBJS-$(CONFIG_LIBRTMPTE_PROTOCOL) += librtmp.o
OBJS-$(CONFIG_LIBSRT_PROTOCOL) += libsrt.o OBJS-$(CONFIG_LIBSRT_PROTOCOL) += libsrt.o
OBJS-$(CONFIG_LIBSSH_PROTOCOL) += libssh.o OBJS-$(CONFIG_LIBSSH_PROTOCOL) += libssh.o
OBJS-$(CONFIG_LIBSMBCLIENT_PROTOCOL) += libsmbclient.o OBJS-$(CONFIG_LIBSMBCLIENT_PROTOCOL) += libsmbclient.o
OBJS-$(CONFIG_VAPOURSYNTH_DEMUXER) += vapoursynth.o
# protocols I/O # protocols I/O
OBJS-$(CONFIG_ASYNC_PROTOCOL) += async.o OBJS-$(CONFIG_ASYNC_PROTOCOL) += async.o
......
...@@ -482,6 +482,7 @@ extern AVOutputFormat ff_chromaprint_muxer; ...@@ -482,6 +482,7 @@ extern AVOutputFormat ff_chromaprint_muxer;
extern AVInputFormat ff_libgme_demuxer; extern AVInputFormat ff_libgme_demuxer;
extern AVInputFormat ff_libmodplug_demuxer; extern AVInputFormat ff_libmodplug_demuxer;
extern AVInputFormat ff_libopenmpt_demuxer; extern AVInputFormat ff_libopenmpt_demuxer;
extern AVInputFormat ff_vapoursynth_demuxer;
#include "libavformat/muxer_list.c" #include "libavformat/muxer_list.c"
#include "libavformat/demuxer_list.c" #include "libavformat/demuxer_list.c"
......
This diff is collapsed.
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
// Also please add any ticket numbers that you believe might be affected here // Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58 #define LIBAVFORMAT_VERSION_MAJOR 58
#define LIBAVFORMAT_VERSION_MINOR 13 #define LIBAVFORMAT_VERSION_MINOR 13
#define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_MICRO 101
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \ LIBAVFORMAT_VERSION_MINOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment