X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Favisynth.c;h=5dfe94ae0c15e372499116d1525f54b82cfa2b51;hb=76ef18fd3910a5b479a3d9e584a0adc13f0d84ee;hp=250a489321edc6b150e079d2c960c47be48f6b37;hpb=03210fe138f3b3bd7f5272fe29aca810cf517329;p=ffmpeg diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c index 250a489321e..5dfe94ae0c1 100644 --- a/libavformat/avisynth.c +++ b/libavformat/avisynth.c @@ -123,7 +123,8 @@ static av_cold int avisynth_load_library(void) return AVERROR_UNKNOWN; #define LOAD_AVS_FUNC(name, continue_on_fail) \ - avs_library.name = dlsym(avs_library.library, #name); \ + avs_library.name = (name ## _func) \ + dlsym(avs_library.library, #name); \ if (!continue_on_fail && !avs_library.name) \ goto fail; @@ -323,6 +324,10 @@ static int avisynth_create_stream_video(AVFormatContext *s, AVStream *st) st->codecpar->format = AV_PIX_FMT_YUVA420P10; planar = 4; break; + case AVS_CS_YUVA422P12: + st->codecpar->format = AV_PIX_FMT_YUVA422P12; + planar = 4; + break; case AVS_CS_YUVA444P16: st->codecpar->format = AV_PIX_FMT_YUVA444P16; planar = 4; @@ -356,6 +361,11 @@ static int avisynth_create_stream_video(AVFormatContext *s, AVStream *st) st->codecpar->format = AV_PIX_FMT_GBRP16; planar = 3; break; + /* Single precision floating point Planar RGB (AviSynth+) */ + case AVS_CS_RGBPS: + st->codecpar->format = AV_PIX_FMT_GBRPF32; + planar = 3; + break; /* Planar RGB pix_fmts with Alpha (AviSynth+) */ case AVS_CS_RGBAP: st->codecpar->format = AV_PIX_FMT_GBRAP; @@ -373,11 +383,33 @@ static int avisynth_create_stream_video(AVFormatContext *s, AVStream *st) st->codecpar->format = AV_PIX_FMT_GBRAP16; planar = 5; break; - /* GRAY16 (AviSynth+) */ + /* Single precision floating point Planar RGB with Alpha (AviSynth+) */ + case AVS_CS_RGBAPS: + st->codecpar->format = AV_PIX_FMT_GBRAPF32; + planar = 5; + break; + /* 10~16-bit gray pix_fmts (AviSynth+) */ + case AVS_CS_Y10: + st->codecpar->format = AV_PIX_FMT_GRAY10; + planar = 2; + break; + case AVS_CS_Y12: + st->codecpar->format = AV_PIX_FMT_GRAY12; + planar = 2; + break; + case AVS_CS_Y14: + st->codecpar->format = AV_PIX_FMT_GRAY14; + planar = 2; + break; case AVS_CS_Y16: st->codecpar->format = AV_PIX_FMT_GRAY16; planar = 2; break; + /* Single precision floating point gray (AviSynth+) */ + case AVS_CS_Y32: + st->codecpar->format = AV_PIX_FMT_GRAYF32; + planar = 2; + break; /* pix_fmts added in AviSynth 2.6 */ case AVS_CS_YV24: st->codecpar->format = AV_PIX_FMT_YUV444P;