diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-10-01 15:25:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-01 15:25:44 +0200 |
commit | 8e8fcee4a55de171303ebe526d3cf051522111bf (patch) | |
tree | fef75d382fc6216a093eeaf80560473dff19d883 | |
parent | 79b00fc33b5cb6d56d29b50efac6d62ce3a89018 (diff) | |
parent | 45c24f05d023a2cd8289ed40a13708392ce2e6a4 (diff) | |
download | UXP-8e8fcee4a55de171303ebe526d3cf051522111bf.tar UXP-8e8fcee4a55de171303ebe526d3cf051522111bf.tar.gz UXP-8e8fcee4a55de171303ebe526d3cf051522111bf.tar.lz UXP-8e8fcee4a55de171303ebe526d3cf051522111bf.tar.xz UXP-8e8fcee4a55de171303ebe526d3cf051522111bf.zip |
Merge pull request #805 from MoonchildProductions/revert-801-update-from-upstream
Revert "Update ffvpx code to 4.0.2"
117 files changed, 8816 insertions, 8822 deletions
@@ -22,4 +22,4 @@ # changes to stick? As of bug 928195, this shouldn't be necessary! Please # don't change CLOBBER for WebIDL changes any more. -Clobber for updating ffvpx to 4.0.2 +Clobber required for updating NSS to 3.38 (poly1305 symbol changes) diff --git a/dom/media/platforms/ffmpeg/ffvpx/moz.build b/dom/media/platforms/ffmpeg/ffvpx/moz.build index c0041a4d4..aee58b5b0 100644 --- a/dom/media/platforms/ffmpeg/ffvpx/moz.build +++ b/dom/media/platforms/ffmpeg/ffvpx/moz.build @@ -20,7 +20,7 @@ SOURCES += [ ] LOCAL_INCLUDES += [ '..', - '../ffmpeg58/include', + '../ffmpeg57/include', ] if CONFIG['OS_ARCH'] == 'WINNT': diff --git a/media/ffvpx/FILES b/media/ffvpx/FILES index a9eb97710..ff8a2da43 100644 --- a/media/ffvpx/FILES +++ b/media/ffvpx/FILES @@ -1,218 +1,177 @@ ./COPYING.LGPLv2.1 ./COPYING.LGPLv3 -./compat/atomics/win32/stdatomic.h ./compat/va_copy.h ./compat/w32pthreads.h -./libavcodec/allcodecs.c -./libavcodec/arm/flacdsp_arm.S -./libavcodec/arm/flacdsp_init_arm.c -./libavcodec/arm/mathops.h -./libavcodec/avcodec.h -./libavcodec/avfft.c -./libavcodec/avfft.h -./libavcodec/avpacket.c +./compat/atomics/win32/stdatomic.h +./libavcodec/audioconvert.c +./libavcodec/audioconvert.h ./libavcodec/avpicture.c ./libavcodec/bit_depth_template.c -./libavcodec/bitstream.c -./libavcodec/bitstream_filter.c -./libavcodec/bitstream_filters.c -./libavcodec/blockdsp.h -./libavcodec/bsf.c -./libavcodec/bsf.h -./libavcodec/bsf_list.c -./libavcodec/bytestream.h -./libavcodec/codec_desc.c -./libavcodec/dct.h -./libavcodec/decode.c -./libavcodec/decode.h -./libavcodec/error_resilience.h ./libavcodec/fdctdsp.h -./libavcodec/fft-internal.h -./libavcodec/fft.h -./libavcodec/fft_float.c -./libavcodec/fft_template.c -./libavcodec/flac.c -./libavcodec/flac.h ./libavcodec/flacdata.c ./libavcodec/flacdata.h -./libavcodec/flacdec.c -./libavcodec/flacdsp.c -./libavcodec/flacdsp.h ./libavcodec/flacdsp_lpc_template.c -./libavcodec/flacdsp_template.c ./libavcodec/frame_thread_encoder.h -./libavcodec/get_bits.h ./libavcodec/golomb.c -./libavcodec/golomb.h ./libavcodec/h263dsp.h -./libavcodec/h264chroma.h -./libavcodec/h264dsp.h ./libavcodec/h264pred.c ./libavcodec/h264pred.h ./libavcodec/h264pred_template.c -./libavcodec/hpeldsp.h -./libavcodec/hwaccel.h -./libavcodec/idctdsp.h -./libavcodec/imgconvert.c -./libavcodec/internal.h ./libavcodec/log2_tab.c -./libavcodec/mathops.h ./libavcodec/mathtables.c -./libavcodec/me_cmp.h ./libavcodec/motion_est.h ./libavcodec/mpeg12data.h ./libavcodec/mpegpicture.h ./libavcodec/mpegutils.h -./libavcodec/mpegvideo.h -./libavcodec/mpegvideodata.h ./libavcodec/mpegvideodsp.h ./libavcodec/mpegvideoencdsp.h -./libavcodec/null_bsf.c -./libavcodec/options.c -./libavcodec/options_table.h -./libavcodec/parser.c ./libavcodec/parser.h -./libavcodec/pixblockdsp.h ./libavcodec/profiles.c ./libavcodec/profiles.h ./libavcodec/pthread.c -./libavcodec/pthread_frame.c ./libavcodec/pthread_internal.h -./libavcodec/pthread_slice.c -./libavcodec/put_bits.h ./libavcodec/qpeldsp.h ./libavcodec/qsv_api.c -./libavcodec/ratecontrol.h -./libavcodec/raw.c ./libavcodec/raw.h -./libavcodec/rdft.c -./libavcodec/rdft.h ./libavcodec/rectangle.h +./libavcodec/resample.c +./libavcodec/resample2.c ./libavcodec/reverse.c ./libavcodec/rl.h ./libavcodec/rnd_avg.h -./libavcodec/thread.h ./libavcodec/unary.h -./libavcodec/utils.c -./libavcodec/version.h -./libavcodec/videodsp.c -./libavcodec/videodsp.h ./libavcodec/videodsp_template.c -./libavcodec/vlc.h ./libavcodec/vorbis_parser.c -./libavcodec/vorbis_parser.h ./libavcodec/vorbis_parser_internal.h -./libavcodec/vp3dsp.h -./libavcodec/vp56.h -./libavcodec/vp56dsp.h -./libavcodec/vp56rac.c -./libavcodec/vp8.c -./libavcodec/vp8.h -./libavcodec/vp8_parser.c ./libavcodec/vp8data.h -./libavcodec/vp8dsp.c -./libavcodec/vp8dsp.h -./libavcodec/vp9.c -./libavcodec/vp9.h -./libavcodec/vp9_mc_template.c ./libavcodec/vp9_parser.c -./libavcodec/vp9_superframe_split_bsf.c -./libavcodec/vp9block.c -./libavcodec/vp9data.c -./libavcodec/vp9data.h -./libavcodec/vp9dec.h -./libavcodec/vp9dsp.c -./libavcodec/vp9dsp.h ./libavcodec/vp9dsp_10bpp.c ./libavcodec/vp9dsp_12bpp.c ./libavcodec/vp9dsp_8bpp.c -./libavcodec/vp9dsp_template.c -./libavcodec/vp9lpf.c -./libavcodec/vp9mvs.c -./libavcodec/vp9prob.c -./libavcodec/vp9recon.c -./libavcodec/vp9shared.h ./libavcodec/x86/constants.c -./libavcodec/x86/constants.h -./libavcodec/x86/fft.asm -./libavcodec/x86/fft.h -./libavcodec/x86/fft_init.c ./libavcodec/x86/flacdsp.asm +./libavcodec/x86/mathops.h +./libavcodec/x86/vp56_arith.h +./libavcodec/x86/vp9dsp_init.h +./libavcodec/x86/vp9dsp_init_10bpp.c +./libavcodec/x86/vp9dsp_init_12bpp.c +./libavcodec/x86/vp9intrapred.asm +./libavcodec/x86/vp9itxfm_16bpp.asm +./libavcodec/x86/vp9itxfm_template.asm +./libavcodec/x86/vp9mc_16bpp.asm +./libavcodec/x86/vp9lpf.asm +./libavcodec/x86/vp9lpf_16bpp.asm +./libavcodec/x86/constants.h ./libavcodec/x86/flacdsp_init.c ./libavcodec/x86/h264_intrapred.asm ./libavcodec/x86/h264_intrapred_10bit.asm ./libavcodec/x86/h264_intrapred_init.c -./libavcodec/x86/mathops.h ./libavcodec/x86/videodsp.asm ./libavcodec/x86/videodsp_init.c -./libavcodec/x86/vp56_arith.h ./libavcodec/x86/vp8dsp.asm ./libavcodec/x86/vp8dsp_init.c ./libavcodec/x86/vp8dsp_loopfilter.asm ./libavcodec/x86/vp9dsp_init.c -./libavcodec/x86/vp9dsp_init.h -./libavcodec/x86/vp9dsp_init_10bpp.c -./libavcodec/x86/vp9dsp_init_12bpp.c ./libavcodec/x86/vp9dsp_init_16bpp.c ./libavcodec/x86/vp9dsp_init_16bpp_template.c -./libavcodec/x86/vp9intrapred.asm ./libavcodec/x86/vp9intrapred_16bpp.asm ./libavcodec/x86/vp9itxfm.asm -./libavcodec/x86/vp9itxfm_16bpp.asm -./libavcodec/x86/vp9itxfm_template.asm -./libavcodec/x86/vp9lpf.asm -./libavcodec/x86/vp9lpf_16bpp.asm ./libavcodec/x86/vp9mc.asm -./libavcodec/x86/vp9mc_16bpp.asm ./libavcodec/xiph.c ./libavcodec/xiph.h +./libavcodec/bsf.h +./libavcodec/h264dsp.h +./libavcodec/imgconvert.c +./libavcodec/bsf.c +./libavcodec/decode.c +./libavcodec/decode.h +./libavcodec/hwaccel.h +./libavcodec/vp9block.c +./libavcodec/vp9data.c +./libavcodec/vp9dec.h +./libavcodec/vp9lpf.c +./libavcodec/vp9mvs.c +./libavcodec/vp9prob.c +./libavcodec/vp9recon.c +./libavcodec/vp9shared.h +./libavcodec/allcodecs.c +./libavcodec/avcodec.h +./libavcodec/avpacket.c +./libavcodec/bitstream.c +./libavcodec/blockdsp.h +./libavcodec/bytestream.h +./libavcodec/codec_desc.c +./libavcodec/error_resilience.h +./libavcodec/flac.c +./libavcodec/flac.h +./libavcodec/flac_parser.c +./libavcodec/flacdec.c +./libavcodec/flacdsp.c +./libavcodec/flacdsp.h +./libavcodec/flacdsp_template.c +./libavcodec/get_bits.h +./libavcodec/golomb.h +./libavcodec/h264chroma.h +./libavcodec/hpeldsp.h +./libavcodec/idctdsp.h +./libavcodec/internal.h +./libavcodec/mathops.h +./libavcodec/me_cmp.h +./libavcodec/mpegvideo.h +./libavcodec/options.c +./libavcodec/options_table.h +./libavcodec/parser.c +./libavcodec/pixblockdsp.h +./libavcodec/pthread_frame.c +./libavcodec/pthread_slice.c +./libavcodec/put_bits.h +./libavcodec/ratecontrol.h +./libavcodec/raw.c +./libavcodec/thread.h +./libavcodec/utils.c +./libavcodec/version.h +./libavcodec/videodsp.c +./libavcodec/videodsp.h +./libavcodec/vlc.h +./libavcodec/vorbis_parser.h +./libavcodec/vp3dsp.h +./libavcodec/vp56.h +./libavcodec/vp56dsp.h +./libavcodec/vp56rac.c +./libavcodec/vp8.c +./libavcodec/vp8.h +./libavcodec/vp8_parser.c +./libavcodec/vp8dsp.c +./libavcodec/vp8dsp.h +./libavcodec/vp9.c +./libavcodec/vp9.h +./libavcodec/vp9_mc_template.c +./libavcodec/vp9data.h +./libavcodec/vp9dsp.c +./libavcodec/vp9dsp.h +./libavcodec/vp9dsp_template.c +./libavcodec/bitstream_filters.c +./libavcodec/bitstream_filter.c +./libavcodec/bsf_list.c +./libavcodec/null_bsf.c ./libavutil/adler32.c -./libavutil/adler32.h -./libavutil/arm/asm.S -./libavutil/arm/bswap.h -./libavutil/arm/cpu.c -./libavutil/arm/cpu.h -./libavutil/arm/float_dsp_arm.h -./libavutil/arm/float_dsp_init_arm.c -./libavutil/arm/float_dsp_init_neon.c -./libavutil/arm/float_dsp_init_vfp.c -./libavutil/arm/float_dsp_neon.S -./libavutil/arm/float_dsp_vfp.S -./libavutil/arm/intmath.h -./libavutil/arm/intreadwrite.h -./libavutil/arm/timer.h -./libavutil/attributes.h -./libavutil/avassert.h -./libavutil/avconfig.h -./libavutil/avstring.c -./libavutil/avstring.h -./libavutil/avutil.h +./libavutil/atomic.c +./libavutil/atomic.h +./libavutil/atomic_win32.h ./libavutil/avutilres.rc ./libavutil/base64.c ./libavutil/base64.h ./libavutil/bprint.c ./libavutil/bprint.h ./libavutil/bswap.h -./libavutil/buffer.c -./libavutil/buffer.h -./libavutil/buffer_internal.h -./libavutil/channel_layout.c -./libavutil/channel_layout.h ./libavutil/color_utils.c ./libavutil/color_utils.h ./libavutil/colorspace.h ./libavutil/common.h -./libavutil/cpu.c -./libavutil/cpu.h -./libavutil/cpu_internal.h ./libavutil/crc.c -./libavutil/crc.h -./libavutil/dict.c ./libavutil/dict.h -./libavutil/dynarray.h ./libavutil/error.c ./libavutil/error.h -./libavutil/eval.c ./libavutil/eval.h ./libavutil/ffmath.h ./libavutil/ffversion.h @@ -220,78 +179,30 @@ ./libavutil/fifo.h ./libavutil/fixed_dsp.c ./libavutil/fixed_dsp.h -./libavutil/float_dsp.c -./libavutil/float_dsp.h -./libavutil/frame.c -./libavutil/frame.h -./libavutil/hwcontext.c -./libavutil/hwcontext.h -./libavutil/hwcontext_internal.h -./libavutil/imgutils.c -./libavutil/imgutils.h -./libavutil/imgutils_internal.h ./libavutil/integer.c ./libavutil/integer.h -./libavutil/internal.h ./libavutil/intfloat.h ./libavutil/intmath.c ./libavutil/intmath.h -./libavutil/intreadwrite.h ./libavutil/libm.h ./libavutil/lls.c ./libavutil/lls.h -./libavutil/log.c -./libavutil/log.h ./libavutil/log2_tab.c ./libavutil/macros.h -./libavutil/mathematics.c -./libavutil/mathematics.h -./libavutil/mem.c -./libavutil/mem.h ./libavutil/mem_internal.h -./libavutil/opt.c -./libavutil/opt.h -./libavutil/parseutils.c ./libavutil/parseutils.h -./libavutil/pixdesc.c -./libavutil/pixdesc.h ./libavutil/pixelutils.c ./libavutil/pixelutils.h -./libavutil/pixfmt.h ./libavutil/qsort.h ./libavutil/rational.c -./libavutil/rational.h ./libavutil/replaygain.h ./libavutil/reverse.c -./libavutil/reverse.h -./libavutil/samplefmt.c -./libavutil/samplefmt.h -./libavutil/slicethread.c -./libavutil/slicethread.h -./libavutil/thread.h -./libavutil/threadmessage.c ./libavutil/threadmessage.h -./libavutil/time.c ./libavutil/time_internal.h -./libavutil/timecode.c -./libavutil/timecode.h -./libavutil/timer.h -./libavutil/timestamp.h -./libavutil/utils.c -./libavutil/version.h -./libavutil/x86/asm.h ./libavutil/x86/bswap.h -./libavutil/x86/cpu.c -./libavutil/x86/cpu.h ./libavutil/x86/cpuid.asm -./libavutil/x86/emms.asm -./libavutil/x86/emms.h ./libavutil/x86/fixed_dsp.asm ./libavutil/x86/fixed_dsp_init.c -./libavutil/x86/float_dsp.asm -./libavutil/x86/float_dsp_init.c -./libavutil/x86/imgutils.asm -./libavutil/x86/imgutils_init.c ./libavutil/x86/intmath.h ./libavutil/x86/intreadwrite.h ./libavutil/x86/lls.asm @@ -300,5 +211,72 @@ ./libavutil/x86/pixelutils.h ./libavutil/x86/pixelutils_init.c ./libavutil/x86/timer.h +./libavutil/x86/asm.h +./libavutil/x86/imgutils.asm +./libavutil/x86/imgutils_init.c +./libavutil/x86/cpu.c +./libavutil/x86/cpu.h +./libavutil/x86/emms.asm +./libavutil/x86/emms.h +./libavutil/x86/float_dsp.asm +./libavutil/x86/float_dsp_init.c ./libavutil/x86/x86inc.asm ./libavutil/x86/x86util.asm +./libavutil/adler32.h +./libavutil/avassert.h +./libavutil/avconfig.h +./libavutil/crc.h +./libavutil/dict.c +./libavutil/dynarray.h +./libavutil/log.h +./libavutil/mathematics.h +./libavutil/rational.h +./libavutil/samplefmt.c +./libavutil/samplefmt.h +./libavutil/timestamp.h +./libavutil/opt.c +./libavutil/imgutils_internal.h +./libavutil/reverse.h +./libavutil/slicethread.c +./libavutil/slicethread.h +./libavutil/atomic_gcc.h +./libavutil/attributes.h +./libavutil/avstring.c +./libavutil/avstring.h +./libavutil/avutil.h +./libavutil/buffer.c +./libavutil/buffer.h +./libavutil/buffer_internal.h +./libavutil/channel_layout.c +./libavutil/channel_layout.h +./libavutil/cpu.c +./libavutil/cpu.h +./libavutil/cpu_internal.h +./libavutil/eval.c +./libavutil/float_dsp.c +./libavutil/float_dsp.h +./libavutil/frame.c +./libavutil/frame.h +./libavutil/hwcontext.h +./libavutil/imgutils.c +./libavutil/imgutils.h +./libavutil/internal.h +./libavutil/intreadwrite.h +./libavutil/log.c +./libavutil/mathematics.c +./libavutil/mem.c +./libavutil/mem.h +./libavutil/opt.h +./libavutil/parseutils.c +./libavutil/pixdesc.c +./libavutil/pixdesc.h +./libavutil/pixfmt.h +./libavutil/thread.h +./libavutil/threadmessage.c +./libavutil/time.c +./libavutil/timecode.c +./libavutil/timecode.h +./libavutil/timer.h +./libavutil/utils.c +./libavutil/version.h + diff --git a/media/ffvpx/README_MCP b/media/ffvpx/README_MCP index 4546d45a3..5ed4d8d94 100644 --- a/media/ffvpx/README_MCP +++ b/media/ffvpx/README_MCP @@ -1,6 +1,6 @@ This directory contains files used in goanna builds from FFmpeg (http://ffmpeg.org). The current files are from FFmpeg as of -Release 4.0.2 +Release 3.4.2 All source files match their path from the library's source archive. Currently, we only use the vp8 and vp9 portion of the library, and only on x86 @@ -8,7 +8,7 @@ based platforms. If this changes, configuration files will most likely need to be updated. configuration files were generated as follow using the configure script: -./configure --disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm --disable-cuvid --disable-cuda +./configure --disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm config*: replace: /HAVE_(MALLOC_H|ARC4RANDOM|LOCALTIME_R|MEMALIGN|POSIX_MEMALIGN)/d @@ -27,8 +27,8 @@ config_win32/64.h/asm: add to configure command: --toolchain=msvc Regenerate defaults_disabled.{h,asm} with: -$ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL|PROTOCOL|ENCODERS|DECODERS|HWACCELS|INDEVS|OUTDEVS|FILTERS|DEMUXERS|MUXERS|PROTOCOLS|BSF) 0" config.h | sort -u > ~/REPO/UXP/media/ffvpx/defaults_disabled.h -$ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL|PROTOCOL|ENCODERS|DECODERS|HWACCELS|INDEVS|OUTDEVS|FILTERS|DEMUXERS|MUXERS|PROTOCOLS|BSF) 0" config.asm | sort -u > ~/REPO/UXP/media/ffvpx/defaults_disabled.asm +$ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL|PROTOCOL|ENCODERS|DECODERS|HWACCELS|INDEVS|OUTDEVS|FILTERS|DEMUXERS|MUXERS|PROTOCOLS) 0" config.h > ~/Work/Mozilla/mozilla-central/media/ffvpx/defaults_disabled.h +$ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL|PROTOCOL|ENCODERS|DECODERS|HWACCELS|INDEVS|OUTDEVS|FILTERS|DEMUXERS|MUXERS|PROTOCOLS) 0" config.asm > ~/Work/Mozilla/mozilla-central/media/ffvpx/defaults_disabled.asm All new decoders/muxers/encoders/... should be added in the list of dummy functions found in libavcodec/dummy_funcs.c otherwise linkage will fail on Windows. On other platforms they are optimised out and aren't necessary. @@ -38,7 +38,6 @@ To update the source tree, perform a diff on the files listed in FILES. The diffs should typically apply to the ffvpx tree. e.g. something like this would do: Run in the ffmpeg original tree: -$ for i in `cat $PATH_CENTRAL/media/ffvpx/FILES`; do git diff $REV_LASTSYNC HEAD >> patch.diff; done +$ for i in `cat $PATH_CENTRAL/media/ffvpx/FILES`; do diff $REV_LASTSYNC HEAD >> patch.diff; done Then apply patch.diff on the ffvpx tree. - Compilation will reveal if any files are missing. diff --git a/media/ffvpx/compat/w32pthreads.h b/media/ffvpx/compat/w32pthreads.h index 21acfd2ba..eeead6051 100644 --- a/media/ffvpx/compat/w32pthreads.h +++ b/media/ffvpx/compat/w32pthreads.h @@ -39,6 +39,11 @@ #include <windows.h> #include <process.h> +#if _WIN32_WINNT < 0x0600 && defined(__MINGW32__) +#undef MemoryBarrier +#define MemoryBarrier __sync_synchronize +#endif + #include "libavutil/attributes.h" #include "libavutil/common.h" #include "libavutil/internal.h" @@ -51,15 +56,24 @@ typedef struct pthread_t { void *ret; } pthread_t; -/* use light weight mutex/condition variable API for Windows Vista and later */ -typedef SRWLOCK pthread_mutex_t; -typedef CONDITION_VARIABLE pthread_cond_t; +/* the conditional variable api for windows 6.0+ uses critical sections and + * not mutexes */ +typedef CRITICAL_SECTION pthread_mutex_t; -#define PTHREAD_MUTEX_INITIALIZER SRWLOCK_INIT -#define PTHREAD_COND_INITIALIZER CONDITION_VARIABLE_INIT +/* This is the CONDITION_VARIABLE typedef for using Windows' native + * conditional variables on kernels 6.0+. */ +#if HAVE_CONDITION_VARIABLE_PTR +typedef CONDITION_VARIABLE pthread_cond_t; +#else +typedef struct pthread_cond_t { + void *Ptr; +} pthread_cond_t; +#endif +#if _WIN32_WINNT >= 0x0600 #define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0) #define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE) +#endif static av_unused unsigned __stdcall attribute_align_arg win32thread_worker(void *arg) { @@ -100,25 +114,26 @@ static av_unused int pthread_join(pthread_t thread, void **value_ptr) static inline int pthread_mutex_init(pthread_mutex_t *m, void* attr) { - InitializeSRWLock(m); + InitializeCriticalSection(m); return 0; } static inline int pthread_mutex_destroy(pthread_mutex_t *m) { - /* Unlocked SWR locks use no resources */ + DeleteCriticalSection(m); return 0; } static inline int pthread_mutex_lock(pthread_mutex_t *m) { - AcquireSRWLockExclusive(m); + EnterCriticalSection(m); return 0; } static inline int pthread_mutex_unlock(pthread_mutex_t *m) { - ReleaseSRWLockExclusive(m); + LeaveCriticalSection(m); return 0; } +#if _WIN32_WINNT >= 0x0600 typedef INIT_ONCE pthread_once_t; #define PTHREAD_ONCE_INIT INIT_ONCE_STATIC_INIT @@ -152,7 +167,7 @@ static inline int pthread_cond_broadcast(pthread_cond_t *cond) static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) { - SleepConditionVariableSRW(cond, mutex, INFINITE, 0); + SleepConditionVariableCS(cond, mutex, INFINITE); return 0; } @@ -162,4 +177,242 @@ static inline int pthread_cond_signal(pthread_cond_t *cond) return 0; } +#else // _WIN32_WINNT < 0x0600 + +/* atomic init state of dynamically loaded functions */ +static LONG w32thread_init_state = 0; +static av_unused void w32thread_init(void); + +/* for pre-Windows 6.0 platforms, define INIT_ONCE struct, + * compatible to the one used in the native API */ + +typedef union pthread_once_t { + void * Ptr; ///< For the Windows 6.0+ native functions + LONG state; ///< For the pre-Windows 6.0 compat code +} pthread_once_t; + +#define PTHREAD_ONCE_INIT {0} + +/* function pointers to init once API on windows 6.0+ kernels */ +static BOOL (WINAPI *initonce_begin)(pthread_once_t *lpInitOnce, DWORD dwFlags, BOOL *fPending, void **lpContext); +static BOOL (WINAPI *initonce_complete)(pthread_once_t *lpInitOnce, DWORD dwFlags, void *lpContext); + +/* pre-Windows 6.0 compat using a spin-lock */ +static inline void w32thread_once_fallback(LONG volatile *state, void (*init_routine)(void)) +{ + switch (InterlockedCompareExchange(state, 1, 0)) { + /* Initial run */ + case 0: + init_routine(); + InterlockedExchange(state, 2); + break; + /* Another thread is running init */ + case 1: + while (1) { + MemoryBarrier(); + if (*state == 2) + break; + Sleep(0); + } + break; + /* Initialization complete */ + case 2: + break; + } +} + +static av_unused int pthread_once(pthread_once_t *once_control, void (*init_routine)(void)) +{ + w32thread_once_fallback(&w32thread_init_state, w32thread_init); + + /* Use native functions on Windows 6.0+ */ + if (initonce_begin && initonce_complete) { + BOOL pending = FALSE; + initonce_begin(once_control, 0, &pending, NULL); + if (pending) + init_routine(); + initonce_complete(once_control, 0, NULL); + return 0; + } + + w32thread_once_fallback(&once_control->state, init_routine); + return 0; +} + +/* for pre-Windows 6.0 platforms we need to define and use our own condition + * variable and api */ + +typedef struct win32_cond_t { + pthread_mutex_t mtx_broadcast; + pthread_mutex_t mtx_waiter_count; + volatile int waiter_count; + HANDLE semaphore; + HANDLE waiters_done; + volatile int is_broadcast; +} win32_cond_t; + +/* function pointers to conditional variable API on windows 6.0+ kernels */ +static void (WINAPI *cond_broadcast)(pthread_cond_t *cond); +static void (WINAPI *cond_init)(pthread_cond_t *cond); +static void (WINAPI *cond_signal)(pthread_cond_t *cond); +static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t *mutex, + DWORD milliseconds); + +static av_unused int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr) +{ + win32_cond_t *win32_cond = NULL; + + w32thread_once_fallback(&w32thread_init_state, w32thread_init); + + if (cond_init) { + cond_init(cond); + return 0; + } + + /* non native condition variables */ + win32_cond = (win32_cond_t*)av_mallocz(sizeof(win32_cond_t)); + if (!win32_cond) + return ENOMEM; + cond->Ptr = win32_cond; + win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); + if (!win32_cond->semaphore) + return ENOMEM; + win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL); + if (!win32_cond->waiters_done) + return ENOMEM; + + pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL); + pthread_mutex_init(&win32_cond->mtx_broadcast, NULL); + return 0; +} + +static av_unused int pthread_cond_destroy(pthread_cond_t *cond) +{ + win32_cond_t *win32_cond = (win32_cond_t*)cond->Ptr; + /* native condition variables do not destroy */ + if (cond_init) + return 0; + + /* non native condition variables */ + CloseHandle(win32_cond->semaphore); + CloseHandle(win32_cond->waiters_done); + pthread_mutex_destroy(&win32_cond->mtx_waiter_count); + pthread_mutex_destroy(&win32_cond->mtx_broadcast); + av_freep(&win32_cond); + cond->Ptr = NULL; + return 0; +} + +static av_unused int pthread_cond_broadcast(pthread_cond_t *cond) +{ + win32_cond_t *win32_cond = (win32_cond_t*)cond->Ptr; + int have_waiter; + + if (cond_broadcast) { + cond_broadcast(cond); + return 0; + } + + /* non native condition variables */ + pthread_mutex_lock(&win32_cond->mtx_broadcast); + pthread_mutex_lock(&win32_cond->mtx_waiter_count); + have_waiter = 0; + + if (win32_cond->waiter_count) { + win32_cond->is_broadcast = 1; + have_waiter = 1; + } + + if (have_waiter) { + ReleaseSemaphore(win32_cond->semaphore, win32_cond->waiter_count, NULL); + pthread_mutex_unlock(&win32_cond->mtx_waiter_count); + WaitForSingleObject(win32_cond->waiters_done, INFINITE); + ResetEvent(win32_cond->waiters_done); + win32_cond->is_broadcast = 0; + } else + pthread_mutex_unlock(&win32_cond->mtx_waiter_count); + pthread_mutex_unlock(&win32_cond->mtx_broadcast); + return 0; +} + +static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) +{ + win32_cond_t *win32_cond = (win32_cond_t*)cond->Ptr; + int last_waiter; + if (cond_wait) { + cond_wait(cond, mutex, INFINITE); + return 0; + } + + /* non native condition variables */ + pthread_mutex_lock(&win32_cond->mtx_broadcast); + pthread_mutex_lock(&win32_cond->mtx_waiter_count); + win32_cond->waiter_count++; + pthread_mutex_unlock(&win32_cond->mtx_waiter_count); + pthread_mutex_unlock(&win32_cond->mtx_broadcast); + + // unlock the external mutex + pthread_mutex_unlock(mutex); + WaitForSingleObject(win32_cond->semaphore, INFINITE); + + pthread_mutex_lock(&win32_cond->mtx_waiter_count); + win32_cond->waiter_count--; + last_waiter = !win32_cond->waiter_count || !win32_cond->is_broadcast; + pthread_mutex_unlock(&win32_cond->mtx_waiter_count); + + if (last_waiter) + SetEvent(win32_cond->waiters_done); + + // lock the external mutex + return pthread_mutex_lock(mutex); +} + +static av_unused int pthread_cond_signal(pthread_cond_t *cond) +{ + win32_cond_t *win32_cond = (win32_cond_t*)cond->Ptr; + int have_waiter; + if (cond_signal) { + cond_signal(cond); + return 0; + } + + pthread_mutex_lock(&win32_cond->mtx_broadcast); + + /* non-native condition variables */ + pthread_mutex_lock(&win32_cond->mtx_waiter_count); + have_waiter = win32_cond->waiter_count; + pthread_mutex_unlock(&win32_cond->mtx_waiter_count); + + if (have_waiter) { + ReleaseSemaphore(win32_cond->semaphore, 1, NULL); + WaitForSingleObject(win32_cond->waiters_done, INFINITE); + ResetEvent(win32_cond->waiters_done); + } + + pthread_mutex_unlock(&win32_cond->mtx_broadcast); + return 0; +} +#endif + +static av_unused void w32thread_init(void) +{ +#if _WIN32_WINNT < 0x0600 + HMODULE kernel_dll = GetModuleHandle(TEXT("kernel32.dll")); + /* if one is available, then they should all be available */ + cond_init = (void (WINAPI*)(pthread_cond_t *)) + GetProcAddress(kernel_dll, "InitializeConditionVariable"); + cond_broadcast = (void (WINAPI*)(pthread_cond_t *)) + GetProcAddress(kernel_dll, "WakeAllConditionVariable"); + cond_signal = (void (WINAPI*)(pthread_cond_t *)) + GetProcAddress(kernel_dll, "WakeConditionVariable"); + cond_wait = (BOOL (WINAPI*)(pthread_cond_t *, pthread_mutex_t *, DWORD)) + GetProcAddress(kernel_dll, "SleepConditionVariableCS"); + initonce_begin = (BOOL (WINAPI*)(pthread_once_t *, DWORD, BOOL *, void **)) + GetProcAddress(kernel_dll, "InitOnceBeginInitialize"); + initonce_complete = (BOOL (WINAPI*)(pthread_once_t *, DWORD, void *)) + GetProcAddress(kernel_dll, "InitOnceComplete"); +#endif + +} + #endif /* COMPAT_W32PTHREADS_H */ diff --git a/media/ffvpx/config_darwin64.asm b/media/ffvpx/config_darwin64.asm index bfaa6f05f..7eccf378e 100644 --- a/media/ffvpx/config_darwin64.asm +++ b/media/ffvpx/config_darwin64.asm @@ -1,4 +1,3 @@ -; Automatically generated by configure - do not modify! %define ARCH_AARCH64 0 %define ARCH_ALPHA 0 %define ARCH_ARM 0 @@ -42,7 +41,6 @@ %define HAVE_AMD3DNOWEXT 1 %define HAVE_AVX 1 %define HAVE_AVX2 1 -%define HAVE_AVX512 1 %define HAVE_FMA3 1 %define HAVE_FMA4 1 %define HAVE_MMX 1 @@ -54,7 +52,7 @@ %define HAVE_SSE42 1 %define HAVE_SSSE3 1 %define HAVE_XOP 1 -%define HAVE_CPUNOP 0 +%define HAVE_CPUNOP 1 %define HAVE_I686 1 %define HAVE_MIPSFPU 0 %define HAVE_MIPS32R2 0 @@ -87,7 +85,6 @@ %define HAVE_AMD3DNOWEXT_EXTERNAL 1 %define HAVE_AVX_EXTERNAL 1 %define HAVE_AVX2_EXTERNAL 1 -%define HAVE_AVX512_EXTERNAL 1 %define HAVE_FMA3_EXTERNAL 1 %define HAVE_FMA4_EXTERNAL 1 %define HAVE_MMX_EXTERNAL 1 @@ -132,7 +129,6 @@ %define HAVE_AMD3DNOWEXT_INLINE 1 %define HAVE_AVX_INLINE 1 %define HAVE_AVX2_INLINE 1 -%define HAVE_AVX512_INLINE 1 %define HAVE_FMA3_INLINE 1 %define HAVE_FMA4_INLINE 1 %define HAVE_MMX_INLINE 1 @@ -162,15 +158,20 @@ %define HAVE_FAST_64BIT 1 %define HAVE_FAST_CLZ 1 %define HAVE_FAST_CMOV 1 -%define HAVE_LOCAL_ALIGNED 1 +%define HAVE_LOCAL_ALIGNED_8 1 +%define HAVE_LOCAL_ALIGNED_16 1 +%define HAVE_LOCAL_ALIGNED_32 1 %define HAVE_SIMD_ALIGN_16 1 %define HAVE_SIMD_ALIGN_32 1 -%define HAVE_SIMD_ALIGN_64 1 +%define HAVE_ATOMICS_GCC 1 +%define HAVE_ATOMICS_SUNCC 0 +%define HAVE_ATOMICS_WIN32 0 %define HAVE_ATOMIC_CAS_PTR 0 %define HAVE_MACHINE_RW_BARRIER 0 %define HAVE_MEMORYBARRIER 0 %define HAVE_MM_EMPTY 1 %define HAVE_RDTSC 0 +%define HAVE_SARESTART 1 %define HAVE_SEM_TIMEDWAIT 0 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 %define HAVE_CABS 1 @@ -180,11 +181,13 @@ %define HAVE_X86ASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 +%define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 1 %define HAVE_ASM_TYPES_H 0 %define HAVE_CDIO_PARANOIA_H 0 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0 %define HAVE_CUDA_H 0 +%define HAVE_D3D11_H 0 %define HAVE_DISPATCH_DISPATCH_H 1 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -193,17 +196,26 @@ %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 %define HAVE_DIRECT_H 0 %define HAVE_DIRENT_H 1 +%define HAVE_DLFCN_H 1 %define HAVE_DXGIDEBUG_H 0 %define HAVE_DXVA_H 0 %define HAVE_ES2_GL_H 0 %define HAVE_GSM_H 0 %define HAVE_IO_H 0 -%define HAVE_LINUX_PERF_EVENT_H 0 +%define HAVE_MACH_MACH_TIME_H 1 %define HAVE_MACHINE_IOCTL_BT848_H 0 %define HAVE_MACHINE_IOCTL_METEOR_H 0 %define HAVE_OPENCV2_CORE_CORE_C_H 0 +%define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 %define HAVE_OPENGL_GL3_H 0 %define HAVE_POLL_H 1 +%define HAVE_SOUNDCARD_H 0 +%define HAVE_STDATOMIC_H 1 +%define HAVE_SYS_MMAN_H 1 %define HAVE_SYS_PARAM_H 1 %define HAVE_SYS_RESOURCE_H 1 %define HAVE_SYS_SELECT_H 1 @@ -247,19 +259,16 @@ %define HAVE_SINF 1 %define HAVE_TRUNC 1 %define HAVE_TRUNCF 1 -%define HAVE_DOS_PATHS 0 -%define HAVE_LIBC_MSVCRT 0 -%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -%define HAVE_SECTION_DATA_REL_RO 0 -%define HAVE_THREADS 1 -%define HAVE_UWP 0 -%define HAVE_WINRT 0 %define HAVE_ACCESS 1 %define HAVE_ALIGNED_MALLOC 0 %define HAVE_CLOCK_GETTIME 1 %define HAVE_CLOSESOCKET 0 %define HAVE_COMMANDLINETOARGVW 0 +%define HAVE_COTASKMEMFREE 0 +%define HAVE_CRYPTGENRANDOM 0 %define HAVE_FCNTL 1 +%define HAVE_FLT_LIM 1 +%define HAVE_FORK 1 %define HAVE_GETADDRINFO 1 %define HAVE_GETHRTIME 0 %define HAVE_GETOPT 1 @@ -274,7 +283,9 @@ %define HAVE_GMTIME_R 1 %define HAVE_INET_ATON 1 %define HAVE_ISATTY 1 +%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 0 +%define HAVE_LOADLIBRARY 0 %define HAVE_LSTAT 1 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 1 @@ -286,7 +297,6 @@ %define HAVE_PEEKNAMEDPIPE 0 %define HAVE_PTHREAD_CANCEL 1 %define HAVE_SCHED_GETAFFINITY 0 -%define HAVE_SECITEMIMPORT 0 %define HAVE_SETCONSOLETEXTATTRIBUTE 0 %define HAVE_SETCONSOLECTRLHANDLER 0 %define HAVE_SETMODE 0 @@ -299,19 +309,16 @@ %define HAVE_UTGETOSTYPEFROMSTRING 0 %define HAVE_VIRTUALALLOC 0 %define HAVE_WGLGETPROCADDRESS 0 -%define HAVE_BCRYPT 0 -%define HAVE_VAAPI_DRM 0 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 %define HAVE_PTHREADS 1 %define HAVE_OS2THREADS 0 %define HAVE_W32THREADS 0 -%define HAVE_AS_ARCH_DIRECTIVE 0 %define HAVE_AS_DN_DIRECTIVE 0 %define HAVE_AS_FPU_DIRECTIVE 0 %define HAVE_AS_FUNC 0 %define HAVE_AS_OBJECT_ARCH 0 %define HAVE_ASM_MOD_Q 0 +%define HAVE_ATTRIBUTE_MAY_ALIAS 1 +%define HAVE_ATTRIBUTE_PACKED 1 %define HAVE_BLOCKS_EXTENSION 1 %define HAVE_EBP_AVAILABLE 1 %define HAVE_EBX_AVAILABLE 1 @@ -328,6 +335,7 @@ %define HAVE_VFP_ARGS 0 %define HAVE_XFORM_ASM 0 %define HAVE_XMM_CLOBBERS 1 +%define HAVE_CONDITION_VARIABLE_PTR 0 %define HAVE_KCMVIDEOCODECTYPE_HEVC 0 %define HAVE_SOCKLEN_T 1 %define HAVE_STRUCT_ADDRINFO 1 @@ -343,19 +351,24 @@ %define HAVE_STRUCT_SOCKADDR_STORAGE 1 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +%define HAVE_ATOMICS_NATIVE 1 +%define HAVE_DOS_PATHS 0 +%define HAVE_LIBC_MSVCRT 0 %define HAVE_MAKEINFO 1 %define HAVE_MAKEINFO_HTML 0 -%define HAVE_OPENCL_D3D11 0 -%define HAVE_OPENCL_DRM_ARM 0 -%define HAVE_OPENCL_DRM_BEIGNET 0 -%define HAVE_OPENCL_DXVA2 0 -%define HAVE_OPENCL_VAAPI_BEIGNET 0 -%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 -%define HAVE_TEXI2HTML 1 +%define HAVE_SECTION_DATA_REL_RO 0 +%define HAVE_TEXI2HTML 0 +%define HAVE_THREADS 1 +%define HAVE_UWP 0 +%define HAVE_VAAPI_DRM 0 +%define HAVE_VAAPI_X11 0 +%define HAVE_VDPAU_X11 0 +%define HAVE_WINRT 0 %define CONFIG_DOC 0 -%define CONFIG_HTMLPAGES 1 +%define CONFIG_HTMLPAGES 0 %define CONFIG_MANPAGES 1 %define CONFIG_PODPAGES 1 %define CONFIG_TXTPAGES 1 @@ -380,8 +393,24 @@ %define CONFIG_SCALING_VIDEO_EXAMPLE 0 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0 %define CONFIG_TRANSCODING_EXAMPLE 0 -%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +%define CONFIG_ALSA 0 +%define CONFIG_APPKIT 1 +%define CONFIG_AVFOUNDATION 1 +%define CONFIG_BZLIB 1 +%define CONFIG_COREIMAGE 1 +%define CONFIG_ICONV 0 +%define CONFIG_JACK 0 +%define CONFIG_LIBXCB 0 +%define CONFIG_LIBXCB_SHM 0 +%define CONFIG_LIBXCB_SHAPE 0 +%define CONFIG_LIBXCB_XFIXES 0 +%define CONFIG_LZMA 0 +%define CONFIG_SCHANNEL 0 +%define CONFIG_SDL2 0 +%define CONFIG_SECURETRANSPORT 0 +%define CONFIG_SNDIO 0 +%define CONFIG_XLIB 1 +%define CONFIG_ZLIB 1 %define CONFIG_AVISYNTH 0 %define CONFIG_FREI0R 0 %define CONFIG_LIBCDIO 0 @@ -395,11 +424,9 @@ %define CONFIG_LIBNDI_NEWTEK 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_OPENSSL 0 -%define CONFIG_LIBTLS 0 %define CONFIG_GMP 0 %define CONFIG_LIBOPENCORE_AMRNB 0 %define CONFIG_LIBOPENCORE_AMRWB 0 -%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVO_AMRWBENC 0 %define CONFIG_RKMPP 0 %define CONFIG_LIBSMBCLIENT 0 @@ -408,13 +435,11 @@ %define CONFIG_GNUTLS 0 %define CONFIG_JNI 0 %define CONFIG_LADSPA 0 -%define CONFIG_LIBAOM 0 %define CONFIG_LIBASS 0 %define CONFIG_LIBBLURAY 0 %define CONFIG_LIBBS2B 0 %define CONFIG_LIBCACA 0 %define CONFIG_LIBCELT 0 -%define CONFIG_LIBCODEC2 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBDRM 0 %define CONFIG_LIBFLITE 0 @@ -425,7 +450,6 @@ %define CONFIG_LIBGSM 0 %define CONFIG_LIBIEC61883 0 %define CONFIG_LIBILBC 0 -%define CONFIG_LIBJACK 0 %define CONFIG_LIBKVAZAAR 0 %define CONFIG_LIBMODPLUG 0 %define CONFIG_LIBMP3LAME 0 @@ -443,12 +467,12 @@ %define CONFIG_LIBSNAPPY 0 %define CONFIG_LIBSOXR 0 %define CONFIG_LIBSPEEX 0 -%define CONFIG_LIBSRT 0 %define CONFIG_LIBSSH 0 %define CONFIG_LIBTESSERACT 0 %define CONFIG_LIBTHEORA 0 %define CONFIG_LIBTWOLAME 0 %define CONFIG_LIBV4L2 0 +%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVORBIS 0 %define CONFIG_LIBVPX 0 %define CONFIG_LIBWAVPACK 0 @@ -457,48 +481,28 @@ %define CONFIG_LIBZIMG 0 %define CONFIG_LIBZMQ 0 %define CONFIG_LIBZVBI 0 -%define CONFIG_LV2 0 %define CONFIG_MEDIACODEC 0 %define CONFIG_OPENAL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_ALSA 0 -%define CONFIG_APPKIT 1 -%define CONFIG_AVFOUNDATION 1 -%define CONFIG_BZLIB 1 -%define CONFIG_COREIMAGE 1 -%define CONFIG_ICONV 0 -%define CONFIG_LIBXCB 0 -%define CONFIG_LIBXCB_SHM 0 -%define CONFIG_LIBXCB_SHAPE 0 -%define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LZMA 1 -%define CONFIG_SCHANNEL 0 -%define CONFIG_SDL2 0 -%define CONFIG_SECURETRANSPORT 0 -%define CONFIG_SNDIO 0 -%define CONFIG_XLIB 1 -%define CONFIG_ZLIB 1 -%define CONFIG_CUDA_SDK 0 -%define CONFIG_LIBNPP 0 -%define CONFIG_LIBMFX 0 -%define CONFIG_MMAL 0 -%define CONFIG_OMX 0 %define CONFIG_OPENCL 0 -%define CONFIG_AMF 0 +%define CONFIG_OPENGL 0 %define CONFIG_AUDIOTOOLBOX 1 %define CONFIG_CRYSTALHD 0 %define CONFIG_CUDA 0 %define CONFIG_CUVID 0 %define CONFIG_D3D11VA 0 %define CONFIG_DXVA2 0 -%define CONFIG_FFNVCODEC 0 -%define CONFIG_NVDEC 0 %define CONFIG_NVENC 0 %define CONFIG_VAAPI 0 +%define CONFIG_VDA 0 %define CONFIG_VDPAU 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_V4L2_M2M 0 %define CONFIG_XVMC 0 +%define CONFIG_CUDA_SDK 0 +%define CONFIG_LIBNPP 0 +%define CONFIG_LIBMFX 0 +%define CONFIG_MMAL 0 +%define CONFIG_OMX 0 %define CONFIG_FTRAPV 0 %define CONFIG_GRAY 0 %define CONFIG_HARDCODED_TABLES 0 @@ -523,6 +527,7 @@ %define CONFIG_SWSCALE 0 %define CONFIG_FFPLAY 0 %define CONFIG_FFPROBE 0 +%define CONFIG_FFSERVER 0 %define CONFIG_FFMPEG 0 %define CONFIG_DCT 0 %define CONFIG_DWT 0 @@ -548,27 +553,31 @@ %define CONFIG_XMM_CLOBBER_TEST 0 %define CONFIG_BSFS 1 %define CONFIG_DECODERS 1 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 %define CONFIG_PARSERS 1 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 0 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 0 %define CONFIG_AANDCTTABLES 0 %define CONFIG_AC3DSP 0 -%define CONFIG_ADTS_HEADER 0 %define CONFIG_AUDIO_FRAME_QUEUE 0 %define CONFIG_AUDIODSP 0 %define CONFIG_BLOCKDSP 0 %define CONFIG_BSWAPDSP 0 %define CONFIG_CABAC 0 -%define CONFIG_CBS 0 -%define CONFIG_CBS_H264 0 -%define CONFIG_CBS_H265 0 -%define CONFIG_CBS_MPEG2 0 %define CONFIG_DIRAC_PARSE 0 %define CONFIG_DVPROFILE 0 %define CONFIG_EXIF 0 -%define CONFIG_FAANDCT 1 -%define CONFIG_FAANIDCT 1 -%define CONFIG_FDCTDSP 1 +%define CONFIG_FAANDCT 0 +%define CONFIG_FAANIDCT 0 +%define CONFIG_FDCTDSP 0 %define CONFIG_FLACDSP 1 %define CONFIG_FMTCONVERT 0 +%define CONFIG_FRAME_THREAD_ENCODER 0 %define CONFIG_G722DSP 0 %define CONFIG_GOLOMB 0 %define CONFIG_GPLV3 0 @@ -583,7 +592,7 @@ %define CONFIG_HUFFMAN 0 %define CONFIG_HUFFYUVDSP 0 %define CONFIG_HUFFYUVENCDSP 0 -%define CONFIG_IDCTDSP 1 +%define CONFIG_IDCTDSP 0 %define CONFIG_IIRFILTER 0 %define CONFIG_MDCT15 0 %define CONFIG_INTRAX8 0 @@ -610,7 +619,6 @@ %define CONFIG_QSV 0 %define CONFIG_QSVDEC 0 %define CONFIG_QSVENC 0 -%define CONFIG_QSVVPP 0 %define CONFIG_RANGECODER 0 %define CONFIG_RIFFDEC 0 %define CONFIG_RIFFENC 0 @@ -634,9 +642,9 @@ %define CONFIG_WMA_FREQS 0 %define CONFIG_WMV2DSP 0 %define CONFIG_NULL_BSF 1 -%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 %define CONFIG_VP8_DECODER 1 %define CONFIG_VP9_DECODER 1 %define CONFIG_FLAC_DECODER 1 +%define CONFIG_FLAC_PARSER 0 %define CONFIG_VP8_PARSER 1 %define CONFIG_VP9_PARSER 1 diff --git a/media/ffvpx/config_darwin64.h b/media/ffvpx/config_darwin64.h index 03f19b3c2..72f1d6dad 100644 --- a/media/ffvpx/config_darwin64.h +++ b/media/ffvpx/config_darwin64.h @@ -1,12 +1,12 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm --disable-cuda --disable-cuvid" +#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm" #define FFMPEG_LICENSE "LGPL version 2.1 or later" -#define CONFIG_THIS_YEAR 2018 +#define CONFIG_THIS_YEAR 2017 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Apple LLVM version 9.1.0 (clang-902.0.39.2)" +#define CC_IDENT "Apple LLVM version 9.0.0 (clang-900.0.38)" #define av_restrict restrict #define EXTERN_PREFIX "_" #define EXTERN_ASM _ @@ -57,7 +57,6 @@ #define HAVE_AMD3DNOWEXT 1 #define HAVE_AVX 1 #define HAVE_AVX2 1 -#define HAVE_AVX512 1 #define HAVE_FMA3 1 #define HAVE_FMA4 1 #define HAVE_MMX 1 @@ -69,7 +68,7 @@ #define HAVE_SSE42 1 #define HAVE_SSSE3 1 #define HAVE_XOP 1 -#define HAVE_CPUNOP 0 +#define HAVE_CPUNOP 1 #define HAVE_I686 1 #define HAVE_MIPSFPU 0 #define HAVE_MIPS32R2 0 @@ -102,7 +101,6 @@ #define HAVE_AMD3DNOWEXT_EXTERNAL 1 #define HAVE_AVX_EXTERNAL 1 #define HAVE_AVX2_EXTERNAL 1 -#define HAVE_AVX512_EXTERNAL 1 #define HAVE_FMA3_EXTERNAL 1 #define HAVE_FMA4_EXTERNAL 1 #define HAVE_MMX_EXTERNAL 1 @@ -147,7 +145,6 @@ #define HAVE_AMD3DNOWEXT_INLINE 1 #define HAVE_AVX_INLINE 1 #define HAVE_AVX2_INLINE 1 -#define HAVE_AVX512_INLINE 1 #define HAVE_FMA3_INLINE 1 #define HAVE_FMA4_INLINE 1 #define HAVE_MMX_INLINE 1 @@ -177,15 +174,20 @@ #define HAVE_FAST_64BIT 1 #define HAVE_FAST_CLZ 1 #define HAVE_FAST_CMOV 1 -#define HAVE_LOCAL_ALIGNED 1 +#define HAVE_LOCAL_ALIGNED_8 1 +#define HAVE_LOCAL_ALIGNED_16 1 +#define HAVE_LOCAL_ALIGNED_32 1 #define HAVE_SIMD_ALIGN_16 1 #define HAVE_SIMD_ALIGN_32 1 -#define HAVE_SIMD_ALIGN_64 1 +#define HAVE_ATOMICS_GCC 1 +#define HAVE_ATOMICS_SUNCC 0 +#define HAVE_ATOMICS_WIN32 0 #define HAVE_ATOMIC_CAS_PTR 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 0 #define HAVE_MM_EMPTY 1 #define HAVE_RDTSC 0 +#define HAVE_SARESTART 1 #define HAVE_SEM_TIMEDWAIT 0 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 #define HAVE_CABS 1 @@ -195,11 +197,13 @@ #define HAVE_X86ASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 +#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 1 #define HAVE_ASM_TYPES_H 0 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 #define HAVE_CUDA_H 0 +#define HAVE_D3D11_H 0 #define HAVE_DISPATCH_DISPATCH_H 1 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -208,17 +212,26 @@ #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 0 #define HAVE_DIRENT_H 1 +#define HAVE_DLFCN_H 1 #define HAVE_DXGIDEBUG_H 0 #define HAVE_DXVA_H 0 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 0 -#define HAVE_LINUX_PERF_EVENT_H 0 +#define HAVE_MACH_MACH_TIME_H 1 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 1 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_STDATOMIC_H 1 +#define HAVE_SYS_MMAN_H 1 #define HAVE_SYS_PARAM_H 1 #define HAVE_SYS_RESOURCE_H 1 #define HAVE_SYS_SELECT_H 1 @@ -262,19 +275,16 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 0 -#define HAVE_LIBC_MSVCRT 0 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 0 #define HAVE_CLOCK_GETTIME 1 #define HAVE_CLOSESOCKET 0 #define HAVE_COMMANDLINETOARGVW 0 +#define HAVE_COTASKMEMFREE 0 +#define HAVE_CRYPTGENRANDOM 0 #define HAVE_FCNTL 1 +#define HAVE_FLT_LIM 1 +#define HAVE_FORK 1 #define HAVE_GETADDRINFO 1 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 1 @@ -289,7 +299,9 @@ #define HAVE_GMTIME_R 1 #define HAVE_INET_ATON 1 #define HAVE_ISATTY 1 +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 0 +#define HAVE_LOADLIBRARY 0 #define HAVE_LSTAT 1 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 1 @@ -301,7 +313,6 @@ #define HAVE_PEEKNAMEDPIPE 0 #define HAVE_PTHREAD_CANCEL 1 #define HAVE_SCHED_GETAFFINITY 0 -#define HAVE_SECITEMIMPORT 0 #define HAVE_SETCONSOLETEXTATTRIBUTE 0 #define HAVE_SETCONSOLECTRLHANDLER 0 #define HAVE_SETMODE 0 @@ -314,19 +325,16 @@ #define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 0 #define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 0 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 1 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 0 -#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 #define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 +#define HAVE_ATTRIBUTE_MAY_ALIAS 1 +#define HAVE_ATTRIBUTE_PACKED 1 #define HAVE_BLOCKS_EXTENSION 1 #define HAVE_EBP_AVAILABLE 1 #define HAVE_EBX_AVAILABLE 1 @@ -343,6 +351,7 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 1 +#define HAVE_CONDITION_VARIABLE_PTR 0 #define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 1 #define HAVE_STRUCT_ADDRINFO 1 @@ -358,19 +367,24 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 1 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_ATOMICS_NATIVE 1 +#define HAVE_DOS_PATHS 0 +#define HAVE_LIBC_MSVCRT 0 #define HAVE_MAKEINFO 1 #define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_TEXI2HTML 1 +#define HAVE_SECTION_DATA_REL_RO 0 +#define HAVE_TEXI2HTML 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 +#define HAVE_WINRT 0 #define CONFIG_DOC 0 -#define CONFIG_HTMLPAGES 1 +#define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 1 @@ -395,8 +409,24 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 0 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0 #define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +#define CONFIG_ALSA 0 +#define CONFIG_APPKIT 1 +#define CONFIG_AVFOUNDATION 1 +#define CONFIG_BZLIB 1 +#define CONFIG_COREIMAGE 1 +#define CONFIG_ICONV 0 +#define CONFIG_JACK 0 +#define CONFIG_LIBXCB 0 +#define CONFIG_LIBXCB_SHM 0 +#define CONFIG_LIBXCB_SHAPE 0 +#define CONFIG_LIBXCB_XFIXES 0 +#define CONFIG_LZMA 0 +#define CONFIG_SCHANNEL 0 +#define CONFIG_SDL2 0 +#define CONFIG_SECURETRANSPORT 0 +#define CONFIG_SNDIO 0 +#define CONFIG_XLIB 1 +#define CONFIG_ZLIB 1 #define CONFIG_AVISYNTH 0 #define CONFIG_FREI0R 0 #define CONFIG_LIBCDIO 0 @@ -410,11 +440,9 @@ #define CONFIG_LIBNDI_NEWTEK 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 #define CONFIG_GMP 0 #define CONFIG_LIBOPENCORE_AMRNB 0 #define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVO_AMRWBENC 0 #define CONFIG_RKMPP 0 #define CONFIG_LIBSMBCLIENT 0 @@ -423,13 +451,11 @@ #define CONFIG_GNUTLS 0 #define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 #define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 @@ -440,7 +466,6 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 #define CONFIG_LIBKVAZAAR 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 @@ -458,12 +483,12 @@ #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 #define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 #define CONFIG_LIBV4L2 0 +#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 @@ -472,48 +497,28 @@ #define CONFIG_LIBZIMG 0 #define CONFIG_LIBZMQ 0 #define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 #define CONFIG_MEDIACODEC 0 #define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 1 -#define CONFIG_AVFOUNDATION 1 -#define CONFIG_BZLIB 1 -#define CONFIG_COREIMAGE 1 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 1 -#define CONFIG_SCHANNEL 0 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 1 -#define CONFIG_ZLIB 1 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 #define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 +#define CONFIG_OPENGL 0 #define CONFIG_AUDIOTOOLBOX 1 #define CONFIG_CRYSTALHD 0 #define CONFIG_CUDA 0 #define CONFIG_CUVID 0 #define CONFIG_D3D11VA 0 #define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 #define CONFIG_NVENC 0 #define CONFIG_VAAPI 0 +#define CONFIG_VDA 0 #define CONFIG_VDPAU 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_V4L2_M2M 0 #define CONFIG_XVMC 0 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 @@ -538,6 +543,7 @@ #define CONFIG_SWSCALE 0 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 +#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 0 #define CONFIG_DWT 0 @@ -563,27 +569,31 @@ #define CONFIG_XMM_CLOBBER_TEST 0 #define CONFIG_BSFS 1 #define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 #define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 0 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 0 #define CONFIG_AANDCTTABLES 0 #define CONFIG_AC3DSP 0 -#define CONFIG_ADTS_HEADER 0 #define CONFIG_AUDIO_FRAME_QUEUE 0 #define CONFIG_AUDIODSP 0 #define CONFIG_BLOCKDSP 0 #define CONFIG_BSWAPDSP 0 #define CONFIG_CABAC 0 -#define CONFIG_CBS 0 -#define CONFIG_CBS_H264 0 -#define CONFIG_CBS_H265 0 -#define CONFIG_CBS_MPEG2 0 #define CONFIG_DIRAC_PARSE 0 #define CONFIG_DVPROFILE 0 #define CONFIG_EXIF 0 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 +#define CONFIG_FAANDCT 0 +#define CONFIG_FAANIDCT 0 +#define CONFIG_FDCTDSP 0 #define CONFIG_FLACDSP 1 #define CONFIG_FMTCONVERT 0 +#define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 0 #define CONFIG_GOLOMB 0 #define CONFIG_GPLV3 0 @@ -598,7 +608,7 @@ #define CONFIG_HUFFMAN 0 #define CONFIG_HUFFYUVDSP 0 #define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 +#define CONFIG_IDCTDSP 0 #define CONFIG_IIRFILTER 0 #define CONFIG_MDCT15 0 #define CONFIG_INTRAX8 0 @@ -625,7 +635,6 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 0 #define CONFIG_RIFFDEC 0 #define CONFIG_RIFFENC 0 @@ -649,10 +658,10 @@ #define CONFIG_WMA_FREQS 0 #define CONFIG_WMV2DSP 0 #define CONFIG_NULL_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_VP8_DECODER 1 #define CONFIG_VP9_DECODER 1 #define CONFIG_FLAC_DECODER 1 +#define CONFIG_FLAC_PARSER 0 #define CONFIG_VP8_PARSER 1 #define CONFIG_VP9_PARSER 1 #endif /* FFMPEG_CONFIG_H */ diff --git a/media/ffvpx/config_unix32.h b/media/ffvpx/config_unix32.h index ae49d8075..c2316caab 100644 --- a/media/ffvpx/config_unix32.h +++ b/media/ffvpx/config_unix32.h @@ -1,9 +1,9 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --disable-asm --disable-x86asm --disable-cuda --disable-cuvid" +#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --disable-asm --disable-x86asm" #define FFMPEG_LICENSE "LGPL version 2.1 or later" -#define CONFIG_THIS_YEAR 2018 +#define CONFIG_THIS_YEAR 2017 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" #define CC_IDENT "gcc 6.3.0 (Ubuntu 6.3.0-12ubuntu2) 20170406" @@ -57,7 +57,6 @@ #define HAVE_AMD3DNOWEXT 0 #define HAVE_AVX 0 #define HAVE_AVX2 0 -#define HAVE_AVX512 0 #define HAVE_FMA3 0 #define HAVE_FMA4 0 #define HAVE_MMX 0 @@ -102,7 +101,6 @@ #define HAVE_AMD3DNOWEXT_EXTERNAL 0 #define HAVE_AVX_EXTERNAL 0 #define HAVE_AVX2_EXTERNAL 0 -#define HAVE_AVX512_EXTERNAL 0 #define HAVE_FMA3_EXTERNAL 0 #define HAVE_FMA4_EXTERNAL 0 #define HAVE_MMX_EXTERNAL 0 @@ -147,7 +145,6 @@ #define HAVE_AMD3DNOWEXT_INLINE 0 #define HAVE_AVX_INLINE 0 #define HAVE_AVX2_INLINE 0 -#define HAVE_AVX512_INLINE 0 #define HAVE_FMA3_INLINE 0 #define HAVE_FMA4_INLINE 0 #define HAVE_MMX_INLINE 0 @@ -177,15 +174,20 @@ #define HAVE_FAST_64BIT 0 #define HAVE_FAST_CLZ 0 #define HAVE_FAST_CMOV 0 -#define HAVE_LOCAL_ALIGNED 1 +#define HAVE_LOCAL_ALIGNED_8 1 +#define HAVE_LOCAL_ALIGNED_16 1 +#define HAVE_LOCAL_ALIGNED_32 1 #define HAVE_SIMD_ALIGN_16 0 #define HAVE_SIMD_ALIGN_32 0 -#define HAVE_SIMD_ALIGN_64 0 +#define HAVE_ATOMICS_GCC 1 +#define HAVE_ATOMICS_SUNCC 0 +#define HAVE_ATOMICS_WIN32 0 #define HAVE_ATOMIC_CAS_PTR 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 0 #define HAVE_MM_EMPTY 0 #define HAVE_RDTSC 0 +#define HAVE_SARESTART 1 #define HAVE_SEM_TIMEDWAIT 1 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 #define HAVE_CABS 1 @@ -195,11 +197,13 @@ #define HAVE_X86ASM 0 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 0 +#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 1 #define HAVE_ASM_TYPES_H 1 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 #define HAVE_CUDA_H 0 +#define HAVE_D3D11_H 0 #define HAVE_DISPATCH_DISPATCH_H 0 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -208,17 +212,26 @@ #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 0 #define HAVE_DIRENT_H 1 +#define HAVE_DLFCN_H 1 #define HAVE_DXGIDEBUG_H 0 #define HAVE_DXVA_H 0 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 0 -#define HAVE_LINUX_PERF_EVENT_H 0 +#define HAVE_MACH_MACH_TIME_H 0 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 1 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_STDATOMIC_H 1 +#define HAVE_SYS_MMAN_H 1 #define HAVE_SYS_PARAM_H 1 #define HAVE_SYS_RESOURCE_H 1 #define HAVE_SYS_SELECT_H 1 @@ -262,19 +275,16 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 0 -#define HAVE_LIBC_MSVCRT 0 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 0 #define HAVE_CLOCK_GETTIME 1 #define HAVE_CLOSESOCKET 0 #define HAVE_COMMANDLINETOARGVW 0 +#define HAVE_COTASKMEMFREE 0 +#define HAVE_CRYPTGENRANDOM 0 #define HAVE_FCNTL 1 +#define HAVE_FLT_LIM 1 +#define HAVE_FORK 1 #define HAVE_GETADDRINFO 1 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 1 @@ -289,7 +299,9 @@ #define HAVE_GMTIME_R 1 #define HAVE_INET_ATON 1 #define HAVE_ISATTY 1 +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 0 +#define HAVE_LOADLIBRARY 0 #define HAVE_LSTAT 1 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 @@ -300,8 +312,7 @@ #define HAVE_NANOSLEEP 1 #define HAVE_PEEKNAMEDPIPE 0 #define HAVE_PTHREAD_CANCEL 1 -#define HAVE_SCHED_GETAFFINITY 0 -#define HAVE_SECITEMIMPORT 0 +#define HAVE_SCHED_GETAFFINITY 1 #define HAVE_SETCONSOLETEXTATTRIBUTE 0 #define HAVE_SETCONSOLECTRLHANDLER 0 #define HAVE_SETMODE 0 @@ -314,19 +325,16 @@ #define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 0 #define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 0 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 1 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 0 -#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 #define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 +#define HAVE_ATTRIBUTE_MAY_ALIAS 1 +#define HAVE_ATTRIBUTE_PACKED 1 #define HAVE_BLOCKS_EXTENSION 0 #define HAVE_EBP_AVAILABLE 1 #define HAVE_EBX_AVAILABLE 1 @@ -343,6 +351,7 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 0 +#define HAVE_CONDITION_VARIABLE_PTR 0 #define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 1 #define HAVE_STRUCT_ADDRINFO 1 @@ -358,22 +367,27 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 1 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 +#define HAVE_ATOMICS_NATIVE 1 +#define HAVE_DOS_PATHS 0 +#define HAVE_LIBC_MSVCRT 0 #define HAVE_MAKEINFO 0 #define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_TEXI2HTML 1 +#define HAVE_SECTION_DATA_REL_RO 1 +#define HAVE_TEXI2HTML 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 +#define HAVE_WINRT 0 #define CONFIG_DOC 0 -#define CONFIG_HTMLPAGES 1 +#define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 -#define CONFIG_TXTPAGES 1 +#define CONFIG_TXTPAGES 0 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 #define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODE_AUDIO_EXAMPLE 1 @@ -395,8 +409,24 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 0 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0 #define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +#define CONFIG_ALSA 0 +#define CONFIG_APPKIT 0 +#define CONFIG_AVFOUNDATION 0 +#define CONFIG_BZLIB 0 +#define CONFIG_COREIMAGE 0 +#define CONFIG_ICONV 0 +#define CONFIG_JACK 0 +#define CONFIG_LIBXCB 0 +#define CONFIG_LIBXCB_SHM 0 +#define CONFIG_LIBXCB_SHAPE 0 +#define CONFIG_LIBXCB_XFIXES 0 +#define CONFIG_LZMA 0 +#define CONFIG_SCHANNEL 0 +#define CONFIG_SDL2 0 +#define CONFIG_SECURETRANSPORT 0 +#define CONFIG_SNDIO 0 +#define CONFIG_XLIB 1 +#define CONFIG_ZLIB 0 #define CONFIG_AVISYNTH 0 #define CONFIG_FREI0R 0 #define CONFIG_LIBCDIO 0 @@ -410,11 +440,9 @@ #define CONFIG_LIBNDI_NEWTEK 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 #define CONFIG_GMP 0 #define CONFIG_LIBOPENCORE_AMRNB 0 #define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVO_AMRWBENC 0 #define CONFIG_RKMPP 0 #define CONFIG_LIBSMBCLIENT 0 @@ -423,13 +451,11 @@ #define CONFIG_GNUTLS 0 #define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 #define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 @@ -440,7 +466,6 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 #define CONFIG_LIBKVAZAAR 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 @@ -458,12 +483,12 @@ #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 #define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 #define CONFIG_LIBV4L2 0 +#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 @@ -472,48 +497,28 @@ #define CONFIG_LIBZIMG 0 #define CONFIG_LIBZMQ 0 #define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 #define CONFIG_MEDIACODEC 0 #define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 1 -#define CONFIG_AVFOUNDATION 1 -#define CONFIG_BZLIB 1 -#define CONFIG_COREIMAGE 0 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 1 -#define CONFIG_SCHANNEL 0 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 1 -#define CONFIG_ZLIB 1 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 #define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 -#define CONFIG_AUDIOTOOLBOX 1 +#define CONFIG_OPENGL 0 +#define CONFIG_AUDIOTOOLBOX 0 #define CONFIG_CRYSTALHD 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 +#define CONFIG_CUDA 1 +#define CONFIG_CUVID 1 #define CONFIG_D3D11VA 0 #define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 -#define CONFIG_NVENC 0 +#define CONFIG_NVENC 1 #define CONFIG_VAAPI 0 +#define CONFIG_VDA 0 #define CONFIG_VDPAU 0 #define CONFIG_VIDEOTOOLBOX 0 -#define CONFIG_V4L2_M2M 0 +#define CONFIG_V4L2_M2M 1 #define CONFIG_XVMC 0 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 @@ -538,6 +543,7 @@ #define CONFIG_SWSCALE 0 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 +#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 0 #define CONFIG_DWT 0 @@ -563,19 +569,22 @@ #define CONFIG_XMM_CLOBBER_TEST 0 #define CONFIG_BSFS 1 #define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 #define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 0 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 0 #define CONFIG_AANDCTTABLES 0 #define CONFIG_AC3DSP 0 -#define CONFIG_ADTS_HEADER 0 #define CONFIG_AUDIO_FRAME_QUEUE 0 #define CONFIG_AUDIODSP 0 #define CONFIG_BLOCKDSP 0 #define CONFIG_BSWAPDSP 0 #define CONFIG_CABAC 0 -#define CONFIG_CBS 0 -#define CONFIG_CBS_H264 0 -#define CONFIG_CBS_H265 0 -#define CONFIG_CBS_MPEG2 0 #define CONFIG_DIRAC_PARSE 0 #define CONFIG_DVPROFILE 0 #define CONFIG_EXIF 0 @@ -584,6 +593,7 @@ #define CONFIG_FDCTDSP 0 #define CONFIG_FLACDSP 1 #define CONFIG_FMTCONVERT 0 +#define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 0 #define CONFIG_GOLOMB 0 #define CONFIG_GPLV3 0 @@ -625,7 +635,6 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 0 #define CONFIG_RIFFDEC 0 #define CONFIG_RIFFENC 0 @@ -649,10 +658,10 @@ #define CONFIG_WMA_FREQS 0 #define CONFIG_WMV2DSP 0 #define CONFIG_NULL_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_VP8_DECODER 1 #define CONFIG_VP9_DECODER 1 #define CONFIG_FLAC_DECODER 1 +#define CONFIG_FLAC_PARSER 0 #define CONFIG_VP8_PARSER 1 #define CONFIG_VP9_PARSER 1 #endif /* FFMPEG_CONFIG_H */ diff --git a/media/ffvpx/config_unix64.asm b/media/ffvpx/config_unix64.asm index 574207b1d..beb7f3b02 100644 --- a/media/ffvpx/config_unix64.asm +++ b/media/ffvpx/config_unix64.asm @@ -1,4 +1,3 @@ -; Automatically generated by configure - do not modify! %define ARCH_AARCH64 0 %define ARCH_ALPHA 0 %define ARCH_ARM 0 @@ -42,7 +41,6 @@ %define HAVE_AMD3DNOWEXT 1 %define HAVE_AVX 1 %define HAVE_AVX2 1 -%define HAVE_AVX512 1 %define HAVE_FMA3 1 %define HAVE_FMA4 1 %define HAVE_MMX 1 @@ -87,7 +85,6 @@ %define HAVE_AMD3DNOWEXT_EXTERNAL 1 %define HAVE_AVX_EXTERNAL 1 %define HAVE_AVX2_EXTERNAL 1 -%define HAVE_AVX512_EXTERNAL 1 %define HAVE_FMA3_EXTERNAL 1 %define HAVE_FMA4_EXTERNAL 1 %define HAVE_MMX_EXTERNAL 1 @@ -132,7 +129,6 @@ %define HAVE_AMD3DNOWEXT_INLINE 1 %define HAVE_AVX_INLINE 1 %define HAVE_AVX2_INLINE 1 -%define HAVE_AVX512_INLINE 1 %define HAVE_FMA3_INLINE 1 %define HAVE_FMA4_INLINE 1 %define HAVE_MMX_INLINE 1 @@ -162,15 +158,20 @@ %define HAVE_FAST_64BIT 1 %define HAVE_FAST_CLZ 1 %define HAVE_FAST_CMOV 1 -%define HAVE_LOCAL_ALIGNED 1 +%define HAVE_LOCAL_ALIGNED_8 1 +%define HAVE_LOCAL_ALIGNED_16 1 +%define HAVE_LOCAL_ALIGNED_32 1 %define HAVE_SIMD_ALIGN_16 1 %define HAVE_SIMD_ALIGN_32 1 -%define HAVE_SIMD_ALIGN_64 1 +%define HAVE_ATOMICS_GCC 1 +%define HAVE_ATOMICS_SUNCC 0 +%define HAVE_ATOMICS_WIN32 0 %define HAVE_ATOMIC_CAS_PTR 0 %define HAVE_MACHINE_RW_BARRIER 0 %define HAVE_MEMORYBARRIER 0 %define HAVE_MM_EMPTY 1 %define HAVE_RDTSC 0 +%define HAVE_SARESTART 1 %define HAVE_SEM_TIMEDWAIT 1 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 %define HAVE_CABS 1 @@ -180,11 +181,13 @@ %define HAVE_X86ASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 +%define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 1 %define HAVE_ASM_TYPES_H 1 %define HAVE_CDIO_PARANOIA_H 0 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0 %define HAVE_CUDA_H 0 +%define HAVE_D3D11_H 0 %define HAVE_DISPATCH_DISPATCH_H 0 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -193,17 +196,26 @@ %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 %define HAVE_DIRECT_H 0 %define HAVE_DIRENT_H 1 +%define HAVE_DLFCN_H 1 %define HAVE_DXGIDEBUG_H 0 %define HAVE_DXVA_H 0 %define HAVE_ES2_GL_H 0 %define HAVE_GSM_H 0 %define HAVE_IO_H 0 -%define HAVE_LINUX_PERF_EVENT_H 0 +%define HAVE_MACH_MACH_TIME_H 0 %define HAVE_MACHINE_IOCTL_BT848_H 0 %define HAVE_MACHINE_IOCTL_METEOR_H 0 %define HAVE_OPENCV2_CORE_CORE_C_H 0 +%define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 %define HAVE_OPENGL_GL3_H 0 %define HAVE_POLL_H 1 +%define HAVE_SOUNDCARD_H 0 +%define HAVE_STDATOMIC_H 1 +%define HAVE_SYS_MMAN_H 1 %define HAVE_SYS_PARAM_H 1 %define HAVE_SYS_RESOURCE_H 1 %define HAVE_SYS_SELECT_H 1 @@ -247,19 +259,16 @@ %define HAVE_SINF 1 %define HAVE_TRUNC 1 %define HAVE_TRUNCF 1 -%define HAVE_DOS_PATHS 0 -%define HAVE_LIBC_MSVCRT 0 -%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -%define HAVE_SECTION_DATA_REL_RO 0 -%define HAVE_THREADS 1 -%define HAVE_UWP 0 -%define HAVE_WINRT 0 %define HAVE_ACCESS 1 %define HAVE_ALIGNED_MALLOC 0 %define HAVE_CLOCK_GETTIME 1 %define HAVE_CLOSESOCKET 0 %define HAVE_COMMANDLINETOARGVW 0 +%define HAVE_COTASKMEMFREE 0 +%define HAVE_CRYPTGENRANDOM 0 %define HAVE_FCNTL 1 +%define HAVE_FLT_LIM 1 +%define HAVE_FORK 1 %define HAVE_GETADDRINFO 1 %define HAVE_GETHRTIME 0 %define HAVE_GETOPT 1 @@ -274,7 +283,9 @@ %define HAVE_GMTIME_R 1 %define HAVE_INET_ATON 1 %define HAVE_ISATTY 1 +%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 0 +%define HAVE_LOADLIBRARY 0 %define HAVE_LSTAT 1 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 @@ -286,7 +297,6 @@ %define HAVE_PEEKNAMEDPIPE 0 %define HAVE_PTHREAD_CANCEL 1 %define HAVE_SCHED_GETAFFINITY 1 -%define HAVE_SECITEMIMPORT 0 %define HAVE_SETCONSOLETEXTATTRIBUTE 0 %define HAVE_SETCONSOLECTRLHANDLER 0 %define HAVE_SETMODE 0 @@ -299,19 +309,16 @@ %define HAVE_UTGETOSTYPEFROMSTRING 0 %define HAVE_VIRTUALALLOC 0 %define HAVE_WGLGETPROCADDRESS 0 -%define HAVE_BCRYPT 0 -%define HAVE_VAAPI_DRM 0 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 %define HAVE_PTHREADS 1 %define HAVE_OS2THREADS 0 %define HAVE_W32THREADS 0 -%define HAVE_AS_ARCH_DIRECTIVE 0 %define HAVE_AS_DN_DIRECTIVE 0 %define HAVE_AS_FPU_DIRECTIVE 0 %define HAVE_AS_FUNC 0 %define HAVE_AS_OBJECT_ARCH 0 %define HAVE_ASM_MOD_Q 0 +%define HAVE_ATTRIBUTE_MAY_ALIAS 1 +%define HAVE_ATTRIBUTE_PACKED 1 %define HAVE_BLOCKS_EXTENSION 0 %define HAVE_EBP_AVAILABLE 1 %define HAVE_EBX_AVAILABLE 1 @@ -328,6 +335,7 @@ %define HAVE_VFP_ARGS 0 %define HAVE_XFORM_ASM 0 %define HAVE_XMM_CLOBBERS 1 +%define HAVE_CONDITION_VARIABLE_PTR 0 %define HAVE_KCMVIDEOCODECTYPE_HEVC 0 %define HAVE_SOCKLEN_T 1 %define HAVE_STRUCT_ADDRINFO 1 @@ -343,22 +351,27 @@ %define HAVE_STRUCT_SOCKADDR_STORAGE 1 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 +%define HAVE_ATOMICS_NATIVE 1 +%define HAVE_DOS_PATHS 0 +%define HAVE_LIBC_MSVCRT 0 %define HAVE_MAKEINFO 0 %define HAVE_MAKEINFO_HTML 0 -%define HAVE_OPENCL_D3D11 0 -%define HAVE_OPENCL_DRM_ARM 0 -%define HAVE_OPENCL_DRM_BEIGNET 0 -%define HAVE_OPENCL_DXVA2 0 -%define HAVE_OPENCL_VAAPI_BEIGNET 0 -%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 -%define HAVE_TEXI2HTML 1 +%define HAVE_SECTION_DATA_REL_RO 1 +%define HAVE_TEXI2HTML 0 +%define HAVE_THREADS 1 +%define HAVE_UWP 0 +%define HAVE_VAAPI_DRM 0 +%define HAVE_VAAPI_X11 0 +%define HAVE_VDPAU_X11 0 +%define HAVE_WINRT 0 %define CONFIG_DOC 0 -%define CONFIG_HTMLPAGES 1 +%define CONFIG_HTMLPAGES 0 %define CONFIG_MANPAGES 1 %define CONFIG_PODPAGES 1 -%define CONFIG_TXTPAGES 1 +%define CONFIG_TXTPAGES 0 %define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 %define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_DECODE_AUDIO_EXAMPLE 1 @@ -380,8 +393,24 @@ %define CONFIG_SCALING_VIDEO_EXAMPLE 0 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0 %define CONFIG_TRANSCODING_EXAMPLE 0 -%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +%define CONFIG_ALSA 1 +%define CONFIG_APPKIT 0 +%define CONFIG_AVFOUNDATION 0 +%define CONFIG_BZLIB 0 +%define CONFIG_COREIMAGE 0 +%define CONFIG_ICONV 0 +%define CONFIG_JACK 0 +%define CONFIG_LIBXCB 0 +%define CONFIG_LIBXCB_SHM 0 +%define CONFIG_LIBXCB_SHAPE 0 +%define CONFIG_LIBXCB_XFIXES 0 +%define CONFIG_LZMA 1 +%define CONFIG_SCHANNEL 0 +%define CONFIG_SDL2 0 +%define CONFIG_SECURETRANSPORT 0 +%define CONFIG_SNDIO 0 +%define CONFIG_XLIB 1 +%define CONFIG_ZLIB 1 %define CONFIG_AVISYNTH 0 %define CONFIG_FREI0R 0 %define CONFIG_LIBCDIO 0 @@ -395,11 +424,9 @@ %define CONFIG_LIBNDI_NEWTEK 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_OPENSSL 0 -%define CONFIG_LIBTLS 0 %define CONFIG_GMP 0 %define CONFIG_LIBOPENCORE_AMRNB 0 %define CONFIG_LIBOPENCORE_AMRWB 0 -%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVO_AMRWBENC 0 %define CONFIG_RKMPP 0 %define CONFIG_LIBSMBCLIENT 0 @@ -408,13 +435,11 @@ %define CONFIG_GNUTLS 0 %define CONFIG_JNI 0 %define CONFIG_LADSPA 0 -%define CONFIG_LIBAOM 0 %define CONFIG_LIBASS 0 %define CONFIG_LIBBLURAY 0 %define CONFIG_LIBBS2B 0 %define CONFIG_LIBCACA 0 %define CONFIG_LIBCELT 0 -%define CONFIG_LIBCODEC2 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBDRM 0 %define CONFIG_LIBFLITE 0 @@ -425,7 +450,6 @@ %define CONFIG_LIBGSM 0 %define CONFIG_LIBIEC61883 0 %define CONFIG_LIBILBC 0 -%define CONFIG_LIBJACK 0 %define CONFIG_LIBKVAZAAR 0 %define CONFIG_LIBMODPLUG 0 %define CONFIG_LIBMP3LAME 0 @@ -443,12 +467,12 @@ %define CONFIG_LIBSNAPPY 0 %define CONFIG_LIBSOXR 0 %define CONFIG_LIBSPEEX 0 -%define CONFIG_LIBSRT 0 %define CONFIG_LIBSSH 0 %define CONFIG_LIBTESSERACT 0 %define CONFIG_LIBTHEORA 0 %define CONFIG_LIBTWOLAME 0 %define CONFIG_LIBV4L2 0 +%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVORBIS 0 %define CONFIG_LIBVPX 0 %define CONFIG_LIBWAVPACK 0 @@ -457,48 +481,28 @@ %define CONFIG_LIBZIMG 0 %define CONFIG_LIBZMQ 0 %define CONFIG_LIBZVBI 0 -%define CONFIG_LV2 0 %define CONFIG_MEDIACODEC 0 %define CONFIG_OPENAL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_ALSA 0 -%define CONFIG_APPKIT 1 -%define CONFIG_AVFOUNDATION 1 -%define CONFIG_BZLIB 1 -%define CONFIG_COREIMAGE 0 -%define CONFIG_ICONV 0 -%define CONFIG_LIBXCB 0 -%define CONFIG_LIBXCB_SHM 0 -%define CONFIG_LIBXCB_SHAPE 0 -%define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LZMA 1 -%define CONFIG_SCHANNEL 0 -%define CONFIG_SDL2 0 -%define CONFIG_SECURETRANSPORT 0 -%define CONFIG_SNDIO 0 -%define CONFIG_XLIB 1 -%define CONFIG_ZLIB 1 -%define CONFIG_CUDA_SDK 0 -%define CONFIG_LIBNPP 0 -%define CONFIG_LIBMFX 0 -%define CONFIG_MMAL 0 -%define CONFIG_OMX 0 %define CONFIG_OPENCL 0 -%define CONFIG_AMF 0 -%define CONFIG_AUDIOTOOLBOX 1 +%define CONFIG_OPENGL 0 +%define CONFIG_AUDIOTOOLBOX 0 %define CONFIG_CRYSTALHD 0 -%define CONFIG_CUDA 0 -%define CONFIG_CUVID 0 +%define CONFIG_CUDA 1 +%define CONFIG_CUVID 1 %define CONFIG_D3D11VA 0 %define CONFIG_DXVA2 0 -%define CONFIG_FFNVCODEC 0 -%define CONFIG_NVDEC 0 -%define CONFIG_NVENC 0 +%define CONFIG_NVENC 1 %define CONFIG_VAAPI 0 +%define CONFIG_VDA 0 %define CONFIG_VDPAU 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_V4L2_M2M 1 %define CONFIG_XVMC 0 +%define CONFIG_CUDA_SDK 0 +%define CONFIG_LIBNPP 0 +%define CONFIG_LIBMFX 0 +%define CONFIG_MMAL 0 +%define CONFIG_OMX 0 %define CONFIG_FTRAPV 0 %define CONFIG_GRAY 0 %define CONFIG_HARDCODED_TABLES 0 @@ -523,6 +527,7 @@ %define CONFIG_SWSCALE 0 %define CONFIG_FFPLAY 0 %define CONFIG_FFPROBE 0 +%define CONFIG_FFSERVER 0 %define CONFIG_FFMPEG 0 %define CONFIG_DCT 0 %define CONFIG_DWT 0 @@ -548,27 +553,31 @@ %define CONFIG_XMM_CLOBBER_TEST 0 %define CONFIG_BSFS 1 %define CONFIG_DECODERS 1 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 %define CONFIG_PARSERS 1 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 0 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 0 %define CONFIG_AANDCTTABLES 0 %define CONFIG_AC3DSP 0 -%define CONFIG_ADTS_HEADER 0 %define CONFIG_AUDIO_FRAME_QUEUE 0 %define CONFIG_AUDIODSP 0 %define CONFIG_BLOCKDSP 0 %define CONFIG_BSWAPDSP 0 %define CONFIG_CABAC 0 -%define CONFIG_CBS 0 -%define CONFIG_CBS_H264 0 -%define CONFIG_CBS_H265 0 -%define CONFIG_CBS_MPEG2 0 %define CONFIG_DIRAC_PARSE 0 %define CONFIG_DVPROFILE 0 %define CONFIG_EXIF 0 -%define CONFIG_FAANDCT 1 -%define CONFIG_FAANIDCT 1 -%define CONFIG_FDCTDSP 1 +%define CONFIG_FAANDCT 0 +%define CONFIG_FAANIDCT 0 +%define CONFIG_FDCTDSP 0 %define CONFIG_FLACDSP 1 %define CONFIG_FMTCONVERT 0 +%define CONFIG_FRAME_THREAD_ENCODER 0 %define CONFIG_G722DSP 0 %define CONFIG_GOLOMB 0 %define CONFIG_GPLV3 0 @@ -583,7 +592,7 @@ %define CONFIG_HUFFMAN 0 %define CONFIG_HUFFYUVDSP 0 %define CONFIG_HUFFYUVENCDSP 0 -%define CONFIG_IDCTDSP 1 +%define CONFIG_IDCTDSP 0 %define CONFIG_IIRFILTER 0 %define CONFIG_MDCT15 0 %define CONFIG_INTRAX8 0 @@ -610,7 +619,6 @@ %define CONFIG_QSV 0 %define CONFIG_QSVDEC 0 %define CONFIG_QSVENC 0 -%define CONFIG_QSVVPP 0 %define CONFIG_RANGECODER 0 %define CONFIG_RIFFDEC 0 %define CONFIG_RIFFENC 0 @@ -634,9 +642,9 @@ %define CONFIG_WMA_FREQS 0 %define CONFIG_WMV2DSP 0 %define CONFIG_NULL_BSF 1 -%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 %define CONFIG_VP8_DECODER 1 %define CONFIG_VP9_DECODER 1 %define CONFIG_FLAC_DECODER 1 +%define CONFIG_FLAC_PARSER 0 %define CONFIG_VP8_PARSER 1 %define CONFIG_VP9_PARSER 1 diff --git a/media/ffvpx/config_unix64.h b/media/ffvpx/config_unix64.h index 1c5c4cb4c..97bc765f8 100644 --- a/media/ffvpx/config_unix64.h +++ b/media/ffvpx/config_unix64.h @@ -1,9 +1,9 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm --disable-cuda --disable-cuvid" +#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm" #define FFMPEG_LICENSE "LGPL version 2.1 or later" -#define CONFIG_THIS_YEAR 2018 +#define CONFIG_THIS_YEAR 2017 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" #define CC_IDENT "gcc 6.3.0 (Ubuntu 6.3.0-12ubuntu2) 20170406" @@ -57,7 +57,6 @@ #define HAVE_AMD3DNOWEXT 1 #define HAVE_AVX 1 #define HAVE_AVX2 1 -#define HAVE_AVX512 1 #define HAVE_FMA3 1 #define HAVE_FMA4 1 #define HAVE_MMX 1 @@ -102,7 +101,6 @@ #define HAVE_AMD3DNOWEXT_EXTERNAL 1 #define HAVE_AVX_EXTERNAL 1 #define HAVE_AVX2_EXTERNAL 1 -#define HAVE_AVX512_EXTERNAL 1 #define HAVE_FMA3_EXTERNAL 1 #define HAVE_FMA4_EXTERNAL 1 #define HAVE_MMX_EXTERNAL 1 @@ -147,7 +145,6 @@ #define HAVE_AMD3DNOWEXT_INLINE 1 #define HAVE_AVX_INLINE 1 #define HAVE_AVX2_INLINE 1 -#define HAVE_AVX512_INLINE 1 #define HAVE_FMA3_INLINE 1 #define HAVE_FMA4_INLINE 1 #define HAVE_MMX_INLINE 1 @@ -177,15 +174,20 @@ #define HAVE_FAST_64BIT 1 #define HAVE_FAST_CLZ 1 #define HAVE_FAST_CMOV 1 -#define HAVE_LOCAL_ALIGNED 1 +#define HAVE_LOCAL_ALIGNED_8 1 +#define HAVE_LOCAL_ALIGNED_16 1 +#define HAVE_LOCAL_ALIGNED_32 1 #define HAVE_SIMD_ALIGN_16 1 #define HAVE_SIMD_ALIGN_32 1 -#define HAVE_SIMD_ALIGN_64 1 +#define HAVE_ATOMICS_GCC 1 +#define HAVE_ATOMICS_SUNCC 0 +#define HAVE_ATOMICS_WIN32 0 #define HAVE_ATOMIC_CAS_PTR 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 0 #define HAVE_MM_EMPTY 1 #define HAVE_RDTSC 0 +#define HAVE_SARESTART 1 #define HAVE_SEM_TIMEDWAIT 1 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 #define HAVE_CABS 1 @@ -195,11 +197,13 @@ #define HAVE_X86ASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 +#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 1 #define HAVE_ASM_TYPES_H 1 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 #define HAVE_CUDA_H 0 +#define HAVE_D3D11_H 0 #define HAVE_DISPATCH_DISPATCH_H 0 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -208,17 +212,26 @@ #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 0 #define HAVE_DIRENT_H 1 +#define HAVE_DLFCN_H 1 #define HAVE_DXGIDEBUG_H 0 #define HAVE_DXVA_H 0 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 0 -#define HAVE_LINUX_PERF_EVENT_H 0 +#define HAVE_MACH_MACH_TIME_H 0 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 1 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_STDATOMIC_H 1 +#define HAVE_SYS_MMAN_H 1 #define HAVE_SYS_PARAM_H 1 #define HAVE_SYS_RESOURCE_H 1 #define HAVE_SYS_SELECT_H 1 @@ -262,19 +275,16 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 0 -#define HAVE_LIBC_MSVCRT 0 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 0 #define HAVE_CLOCK_GETTIME 1 #define HAVE_CLOSESOCKET 0 #define HAVE_COMMANDLINETOARGVW 0 +#define HAVE_COTASKMEMFREE 0 +#define HAVE_CRYPTGENRANDOM 0 #define HAVE_FCNTL 1 +#define HAVE_FLT_LIM 1 +#define HAVE_FORK 1 #define HAVE_GETADDRINFO 1 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 1 @@ -289,7 +299,9 @@ #define HAVE_GMTIME_R 1 #define HAVE_INET_ATON 1 #define HAVE_ISATTY 1 +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 0 +#define HAVE_LOADLIBRARY 0 #define HAVE_LSTAT 1 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 @@ -301,7 +313,6 @@ #define HAVE_PEEKNAMEDPIPE 0 #define HAVE_PTHREAD_CANCEL 1 #define HAVE_SCHED_GETAFFINITY 1 -#define HAVE_SECITEMIMPORT 0 #define HAVE_SETCONSOLETEXTATTRIBUTE 0 #define HAVE_SETCONSOLECTRLHANDLER 0 #define HAVE_SETMODE 0 @@ -314,19 +325,16 @@ #define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 0 #define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 0 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 1 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 0 -#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 #define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 +#define HAVE_ATTRIBUTE_MAY_ALIAS 1 +#define HAVE_ATTRIBUTE_PACKED 1 #define HAVE_BLOCKS_EXTENSION 0 #define HAVE_EBP_AVAILABLE 1 #define HAVE_EBX_AVAILABLE 1 @@ -343,6 +351,7 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 1 +#define HAVE_CONDITION_VARIABLE_PTR 0 #define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 1 #define HAVE_STRUCT_ADDRINFO 1 @@ -358,22 +367,27 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 1 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 +#define HAVE_ATOMICS_NATIVE 1 +#define HAVE_DOS_PATHS 0 +#define HAVE_LIBC_MSVCRT 0 #define HAVE_MAKEINFO 0 #define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_TEXI2HTML 1 +#define HAVE_SECTION_DATA_REL_RO 1 +#define HAVE_TEXI2HTML 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 +#define HAVE_WINRT 0 #define CONFIG_DOC 0 -#define CONFIG_HTMLPAGES 1 +#define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 -#define CONFIG_TXTPAGES 1 +#define CONFIG_TXTPAGES 0 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 #define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODE_AUDIO_EXAMPLE 1 @@ -395,8 +409,24 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 0 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0 #define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +#define CONFIG_ALSA 1 +#define CONFIG_APPKIT 0 +#define CONFIG_AVFOUNDATION 0 +#define CONFIG_BZLIB 0 +#define CONFIG_COREIMAGE 0 +#define CONFIG_ICONV 0 +#define CONFIG_JACK 0 +#define CONFIG_LIBXCB 0 +#define CONFIG_LIBXCB_SHM 0 +#define CONFIG_LIBXCB_SHAPE 0 +#define CONFIG_LIBXCB_XFIXES 0 +#define CONFIG_LZMA 1 +#define CONFIG_SCHANNEL 0 +#define CONFIG_SDL2 0 +#define CONFIG_SECURETRANSPORT 0 +#define CONFIG_SNDIO 0 +#define CONFIG_XLIB 1 +#define CONFIG_ZLIB 1 #define CONFIG_AVISYNTH 0 #define CONFIG_FREI0R 0 #define CONFIG_LIBCDIO 0 @@ -410,11 +440,9 @@ #define CONFIG_LIBNDI_NEWTEK 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 #define CONFIG_GMP 0 #define CONFIG_LIBOPENCORE_AMRNB 0 #define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVO_AMRWBENC 0 #define CONFIG_RKMPP 0 #define CONFIG_LIBSMBCLIENT 0 @@ -423,13 +451,11 @@ #define CONFIG_GNUTLS 0 #define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 #define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 @@ -440,7 +466,6 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 #define CONFIG_LIBKVAZAAR 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 @@ -458,12 +483,12 @@ #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 #define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 #define CONFIG_LIBV4L2 0 +#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 @@ -472,48 +497,28 @@ #define CONFIG_LIBZIMG 0 #define CONFIG_LIBZMQ 0 #define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 #define CONFIG_MEDIACODEC 0 #define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 1 -#define CONFIG_AVFOUNDATION 1 -#define CONFIG_BZLIB 1 -#define CONFIG_COREIMAGE 0 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 1 -#define CONFIG_SCHANNEL 0 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 1 -#define CONFIG_ZLIB 1 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 #define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 -#define CONFIG_AUDIOTOOLBOX 1 +#define CONFIG_OPENGL 0 +#define CONFIG_AUDIOTOOLBOX 0 #define CONFIG_CRYSTALHD 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 +#define CONFIG_CUDA 1 +#define CONFIG_CUVID 1 #define CONFIG_D3D11VA 0 #define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 -#define CONFIG_NVENC 0 +#define CONFIG_NVENC 1 #define CONFIG_VAAPI 0 +#define CONFIG_VDA 0 #define CONFIG_VDPAU 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_V4L2_M2M 1 #define CONFIG_XVMC 0 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 @@ -538,6 +543,7 @@ #define CONFIG_SWSCALE 0 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 +#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 0 #define CONFIG_DWT 0 @@ -563,27 +569,31 @@ #define CONFIG_XMM_CLOBBER_TEST 0 #define CONFIG_BSFS 1 #define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 #define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 0 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 0 #define CONFIG_AANDCTTABLES 0 #define CONFIG_AC3DSP 0 -#define CONFIG_ADTS_HEADER 0 #define CONFIG_AUDIO_FRAME_QUEUE 0 #define CONFIG_AUDIODSP 0 #define CONFIG_BLOCKDSP 0 #define CONFIG_BSWAPDSP 0 #define CONFIG_CABAC 0 -#define CONFIG_CBS 0 -#define CONFIG_CBS_H264 0 -#define CONFIG_CBS_H265 0 -#define CONFIG_CBS_MPEG2 0 #define CONFIG_DIRAC_PARSE 0 #define CONFIG_DVPROFILE 0 #define CONFIG_EXIF 0 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 +#define CONFIG_FAANDCT 0 +#define CONFIG_FAANIDCT 0 +#define CONFIG_FDCTDSP 0 #define CONFIG_FLACDSP 1 #define CONFIG_FMTCONVERT 0 +#define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 0 #define CONFIG_GOLOMB 0 #define CONFIG_GPLV3 0 @@ -598,7 +608,7 @@ #define CONFIG_HUFFMAN 0 #define CONFIG_HUFFYUVDSP 0 #define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 +#define CONFIG_IDCTDSP 0 #define CONFIG_IIRFILTER 0 #define CONFIG_MDCT15 0 #define CONFIG_INTRAX8 0 @@ -625,7 +635,6 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 0 #define CONFIG_RIFFDEC 0 #define CONFIG_RIFFENC 0 @@ -649,10 +658,10 @@ #define CONFIG_WMA_FREQS 0 #define CONFIG_WMV2DSP 0 #define CONFIG_NULL_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_VP8_DECODER 1 #define CONFIG_VP9_DECODER 1 #define CONFIG_FLAC_DECODER 1 +#define CONFIG_FLAC_PARSER 0 #define CONFIG_VP8_PARSER 1 #define CONFIG_VP9_PARSER 1 #endif /* FFMPEG_CONFIG_H */ diff --git a/media/ffvpx/config_win32.asm b/media/ffvpx/config_win32.asm index 3a3566d6f..c804c0155 100644 --- a/media/ffvpx/config_win32.asm +++ b/media/ffvpx/config_win32.asm @@ -1,4 +1,3 @@ -; Automatically generated by configure - do not modify! %define ARCH_AARCH64 0 %define ARCH_ALPHA 0 %define ARCH_ARM 0 @@ -42,7 +41,6 @@ %define HAVE_AMD3DNOWEXT 1 %define HAVE_AVX 1 %define HAVE_AVX2 1 -%define HAVE_AVX512 1 %define HAVE_FMA3 1 %define HAVE_FMA4 1 %define HAVE_MMX 1 @@ -87,7 +85,6 @@ %define HAVE_AMD3DNOWEXT_EXTERNAL 1 %define HAVE_AVX_EXTERNAL 1 %define HAVE_AVX2_EXTERNAL 1 -%define HAVE_AVX512_EXTERNAL 0 %define HAVE_FMA3_EXTERNAL 1 %define HAVE_FMA4_EXTERNAL 1 %define HAVE_MMX_EXTERNAL 1 @@ -132,7 +129,6 @@ %define HAVE_AMD3DNOWEXT_INLINE 0 %define HAVE_AVX_INLINE 0 %define HAVE_AVX2_INLINE 0 -%define HAVE_AVX512_INLINE 0 %define HAVE_FMA3_INLINE 0 %define HAVE_FMA4_INLINE 0 %define HAVE_MMX_INLINE 0 @@ -160,17 +156,22 @@ %define HAVE_MMI_INLINE 0 %define HAVE_ALIGNED_STACK 0 %define HAVE_FAST_64BIT 0 -%define HAVE_FAST_CLZ 0 +%define HAVE_FAST_CLZ 1 %define HAVE_FAST_CMOV 0 -%define HAVE_LOCAL_ALIGNED 1 +%define HAVE_LOCAL_ALIGNED_8 1 +%define HAVE_LOCAL_ALIGNED_16 1 +%define HAVE_LOCAL_ALIGNED_32 1 %define HAVE_SIMD_ALIGN_16 1 %define HAVE_SIMD_ALIGN_32 1 -%define HAVE_SIMD_ALIGN_64 1 +%define HAVE_ATOMICS_GCC 0 +%define HAVE_ATOMICS_SUNCC 0 +%define HAVE_ATOMICS_WIN32 1 %define HAVE_ATOMIC_CAS_PTR 0 %define HAVE_MACHINE_RW_BARRIER 0 %define HAVE_MEMORYBARRIER 1 %define HAVE_MM_EMPTY 1 %define HAVE_RDTSC 1 +%define HAVE_SARESTART 0 %define HAVE_SEM_TIMEDWAIT 0 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 %define HAVE_CABS 0 @@ -180,11 +181,13 @@ %define HAVE_X86ASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 +%define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 0 %define HAVE_ASM_TYPES_H 0 %define HAVE_CDIO_PARANOIA_H 0 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0 %define HAVE_CUDA_H 0 +%define HAVE_D3D11_H 1 %define HAVE_DISPATCH_DISPATCH_H 0 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -193,17 +196,26 @@ %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 %define HAVE_DIRECT_H 1 %define HAVE_DIRENT_H 0 +%define HAVE_DLFCN_H 0 %define HAVE_DXGIDEBUG_H 1 %define HAVE_DXVA_H 1 %define HAVE_ES2_GL_H 0 %define HAVE_GSM_H 0 %define HAVE_IO_H 1 -%define HAVE_LINUX_PERF_EVENT_H 0 +%define HAVE_MACH_MACH_TIME_H 0 %define HAVE_MACHINE_IOCTL_BT848_H 0 %define HAVE_MACHINE_IOCTL_METEOR_H 0 %define HAVE_OPENCV2_CORE_CORE_C_H 0 +%define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 %define HAVE_OPENGL_GL3_H 0 %define HAVE_POLL_H 0 +%define HAVE_SOUNDCARD_H 0 +%define HAVE_STDATOMIC_H 0 +%define HAVE_SYS_MMAN_H 0 %define HAVE_SYS_PARAM_H 0 %define HAVE_SYS_RESOURCE_H 0 %define HAVE_SYS_SELECT_H 0 @@ -247,19 +259,16 @@ %define HAVE_SINF 1 %define HAVE_TRUNC 1 %define HAVE_TRUNCF 1 -%define HAVE_DOS_PATHS 1 -%define HAVE_LIBC_MSVCRT 1 -%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -%define HAVE_SECTION_DATA_REL_RO 0 -%define HAVE_THREADS 1 -%define HAVE_UWP 0 -%define HAVE_WINRT 0 %define HAVE_ACCESS 1 %define HAVE_ALIGNED_MALLOC 1 %define HAVE_CLOCK_GETTIME 0 %define HAVE_CLOSESOCKET 1 %define HAVE_COMMANDLINETOARGVW 1 +%define HAVE_COTASKMEMFREE 1 +%define HAVE_CRYPTGENRANDOM 1 %define HAVE_FCNTL 0 +%define HAVE_FLT_LIM 1 +%define HAVE_FORK 0 %define HAVE_GETADDRINFO 1 %define HAVE_GETHRTIME 0 %define HAVE_GETOPT 0 @@ -274,7 +283,9 @@ %define HAVE_GMTIME_R 0 %define HAVE_INET_ATON 0 %define HAVE_ISATTY 1 +%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 1 +%define HAVE_LOADLIBRARY 1 %define HAVE_LSTAT 0 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 @@ -286,7 +297,6 @@ %define HAVE_PEEKNAMEDPIPE 1 %define HAVE_PTHREAD_CANCEL 0 %define HAVE_SCHED_GETAFFINITY 0 -%define HAVE_SECITEMIMPORT 0 %define HAVE_SETCONSOLETEXTATTRIBUTE 1 %define HAVE_SETCONSOLECTRLHANDLER 1 %define HAVE_SETMODE 1 @@ -299,19 +309,16 @@ %define HAVE_UTGETOSTYPEFROMSTRING 0 %define HAVE_VIRTUALALLOC 1 %define HAVE_WGLGETPROCADDRESS 0 -%define HAVE_BCRYPT 1 -%define HAVE_VAAPI_DRM 0 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 %define HAVE_PTHREADS 0 %define HAVE_OS2THREADS 0 %define HAVE_W32THREADS 1 -%define HAVE_AS_ARCH_DIRECTIVE 0 %define HAVE_AS_DN_DIRECTIVE 0 %define HAVE_AS_FPU_DIRECTIVE 0 %define HAVE_AS_FUNC 0 %define HAVE_AS_OBJECT_ARCH 0 %define HAVE_ASM_MOD_Q 0 +%define HAVE_ATTRIBUTE_MAY_ALIAS 0 +%define HAVE_ATTRIBUTE_PACKED 0 %define HAVE_BLOCKS_EXTENSION 0 %define HAVE_EBP_AVAILABLE 0 %define HAVE_EBX_AVAILABLE 0 @@ -328,6 +335,7 @@ %define HAVE_VFP_ARGS 0 %define HAVE_XFORM_ASM 0 %define HAVE_XMM_CLOBBERS 0 +%define HAVE_CONDITION_VARIABLE_PTR 1 %define HAVE_KCMVIDEOCODECTYPE_HEVC 0 %define HAVE_SOCKLEN_T 1 %define HAVE_STRUCT_ADDRINFO 1 @@ -335,7 +343,7 @@ %define HAVE_STRUCT_IP_MREQ_SOURCE 1 %define HAVE_STRUCT_IPV6_MREQ 1 %define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -%define HAVE_STRUCT_POLLFD 1 +%define HAVE_STRUCT_POLLFD 0 %define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 %define HAVE_STRUCT_SOCKADDR_IN6 1 @@ -343,17 +351,22 @@ %define HAVE_STRUCT_SOCKADDR_STORAGE 1 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +%define HAVE_ATOMICS_NATIVE 1 +%define HAVE_DOS_PATHS 1 +%define HAVE_LIBC_MSVCRT 1 %define HAVE_MAKEINFO 1 %define HAVE_MAKEINFO_HTML 0 -%define HAVE_OPENCL_D3D11 0 -%define HAVE_OPENCL_DRM_ARM 0 -%define HAVE_OPENCL_DRM_BEIGNET 0 -%define HAVE_OPENCL_DXVA2 0 -%define HAVE_OPENCL_VAAPI_BEIGNET 0 -%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 +%define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 +%define HAVE_THREADS 1 +%define HAVE_UWP 0 +%define HAVE_VAAPI_DRM 0 +%define HAVE_VAAPI_X11 0 +%define HAVE_VDPAU_X11 0 +%define HAVE_WINRT 0 %define CONFIG_DOC 0 %define CONFIG_HTMLPAGES 0 %define CONFIG_MANPAGES 1 @@ -380,12 +393,27 @@ %define CONFIG_SCALING_VIDEO_EXAMPLE 0 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0 %define CONFIG_TRANSCODING_EXAMPLE 0 -%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +%define CONFIG_ALSA 0 +%define CONFIG_APPKIT 0 +%define CONFIG_AVFOUNDATION 0 +%define CONFIG_BZLIB 0 +%define CONFIG_COREIMAGE 0 +%define CONFIG_ICONV 0 +%define CONFIG_JACK 0 +%define CONFIG_LIBXCB 0 +%define CONFIG_LIBXCB_SHM 0 +%define CONFIG_LIBXCB_SHAPE 0 +%define CONFIG_LIBXCB_XFIXES 0 +%define CONFIG_LZMA 0 +%define CONFIG_SCHANNEL 1 +%define CONFIG_SDL2 0 +%define CONFIG_SECURETRANSPORT 0 +%define CONFIG_SNDIO 0 +%define CONFIG_XLIB 1 +%define CONFIG_ZLIB 0 %define CONFIG_AVISYNTH 0 %define CONFIG_FREI0R 0 %define CONFIG_LIBCDIO 0 -%define CONFIG_LIBDAVS2 0 %define CONFIG_LIBRUBBERBAND 0 %define CONFIG_LIBVIDSTAB 0 %define CONFIG_LIBX264 0 @@ -396,14 +424,10 @@ %define CONFIG_LIBNDI_NEWTEK 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_OPENSSL 0 -%define CONFIG_LIBTLS 0 %define CONFIG_GMP 0 -%define CONFIG_LIBLENSFUN 0 %define CONFIG_LIBOPENCORE_AMRNB 0 %define CONFIG_LIBOPENCORE_AMRWB 0 -%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVO_AMRWBENC 0 -%define CONFIG_MBEDTLS 0 %define CONFIG_RKMPP 0 %define CONFIG_LIBSMBCLIENT 0 %define CONFIG_CHROMAPRINT 0 @@ -411,13 +435,11 @@ %define CONFIG_GNUTLS 0 %define CONFIG_JNI 0 %define CONFIG_LADSPA 0 -%define CONFIG_LIBAOM 0 %define CONFIG_LIBASS 0 %define CONFIG_LIBBLURAY 0 %define CONFIG_LIBBS2B 0 %define CONFIG_LIBCACA 0 %define CONFIG_LIBCELT 0 -%define CONFIG_LIBCODEC2 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBDRM 0 %define CONFIG_LIBFLITE 0 @@ -428,7 +450,6 @@ %define CONFIG_LIBGSM 0 %define CONFIG_LIBIEC61883 0 %define CONFIG_LIBILBC 0 -%define CONFIG_LIBJACK 0 %define CONFIG_LIBKVAZAAR 0 %define CONFIG_LIBMODPLUG 0 %define CONFIG_LIBMP3LAME 0 @@ -446,13 +467,12 @@ %define CONFIG_LIBSNAPPY 0 %define CONFIG_LIBSOXR 0 %define CONFIG_LIBSPEEX 0 -%define CONFIG_LIBSRT 0 %define CONFIG_LIBSSH 0 -%define CONFIG_LIBTENSORFLOW 0 %define CONFIG_LIBTESSERACT 0 %define CONFIG_LIBTHEORA 0 %define CONFIG_LIBTWOLAME 0 %define CONFIG_LIBV4L2 0 +%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVORBIS 0 %define CONFIG_LIBVPX 0 %define CONFIG_LIBWAVPACK 0 @@ -461,49 +481,28 @@ %define CONFIG_LIBZIMG 0 %define CONFIG_LIBZMQ 0 %define CONFIG_LIBZVBI 0 -%define CONFIG_LV2 0 %define CONFIG_MEDIACODEC 0 %define CONFIG_OPENAL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_VAPOURSYNTH 0 -%define CONFIG_ALSA 0 -%define CONFIG_APPKIT 0 -%define CONFIG_AVFOUNDATION 0 -%define CONFIG_BZLIB 0 -%define CONFIG_COREIMAGE 0 -%define CONFIG_ICONV 0 -%define CONFIG_LIBXCB 0 -%define CONFIG_LIBXCB_SHM 0 -%define CONFIG_LIBXCB_SHAPE 0 -%define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LZMA 0 -%define CONFIG_SCHANNEL 1 -%define CONFIG_SDL2 0 -%define CONFIG_SECURETRANSPORT 0 -%define CONFIG_SNDIO 0 -%define CONFIG_XLIB 0 -%define CONFIG_ZLIB 0 -%define CONFIG_CUDA_SDK 0 -%define CONFIG_LIBNPP 0 -%define CONFIG_LIBMFX 0 -%define CONFIG_MMAL 0 -%define CONFIG_OMX 0 %define CONFIG_OPENCL 0 -%define CONFIG_AMF 0 +%define CONFIG_OPENGL 0 %define CONFIG_AUDIOTOOLBOX 0 %define CONFIG_CRYSTALHD 0 -%define CONFIG_CUDA 0 -%define CONFIG_CUVID 0 +%define CONFIG_CUDA 1 +%define CONFIG_CUVID 1 %define CONFIG_D3D11VA 0 %define CONFIG_DXVA2 0 -%define CONFIG_FFNVCODEC 0 -%define CONFIG_NVDEC 0 -%define CONFIG_NVENC 0 +%define CONFIG_NVENC 1 %define CONFIG_VAAPI 0 +%define CONFIG_VDA 0 %define CONFIG_VDPAU 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_V4L2_M2M 0 %define CONFIG_XVMC 0 +%define CONFIG_CUDA_SDK 0 +%define CONFIG_LIBNPP 0 +%define CONFIG_LIBMFX 0 +%define CONFIG_MMAL 0 +%define CONFIG_OMX 0 %define CONFIG_FTRAPV 0 %define CONFIG_GRAY 0 %define CONFIG_HARDCODED_TABLES 0 @@ -517,17 +516,18 @@ %define CONFIG_GPL 0 %define CONFIG_NONFREE 0 %define CONFIG_VERSION3 0 +%define CONFIG_AVCODEC 1 %define CONFIG_AVDEVICE 0 %define CONFIG_AVFILTER 0 -%define CONFIG_SWSCALE 0 -%define CONFIG_POSTPROC 0 %define CONFIG_AVFORMAT 0 -%define CONFIG_AVCODEC 1 -%define CONFIG_SWRESAMPLE 0 %define CONFIG_AVRESAMPLE 0 %define CONFIG_AVUTIL 1 +%define CONFIG_POSTPROC 0 +%define CONFIG_SWRESAMPLE 0 +%define CONFIG_SWSCALE 0 %define CONFIG_FFPLAY 0 %define CONFIG_FFPROBE 0 +%define CONFIG_FFSERVER 0 %define CONFIG_FFMPEG 0 %define CONFIG_DCT 0 %define CONFIG_DWT 0 @@ -553,29 +553,31 @@ %define CONFIG_XMM_CLOBBER_TEST 0 %define CONFIG_BSFS 1 %define CONFIG_DECODERS 1 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 %define CONFIG_PARSERS 1 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 0 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 0 %define CONFIG_AANDCTTABLES 0 %define CONFIG_AC3DSP 0 -%define CONFIG_ADTS_HEADER 0 %define CONFIG_AUDIO_FRAME_QUEUE 0 %define CONFIG_AUDIODSP 0 %define CONFIG_BLOCKDSP 0 %define CONFIG_BSWAPDSP 0 %define CONFIG_CABAC 0 -%define CONFIG_CBS 0 -%define CONFIG_CBS_H264 0 -%define CONFIG_CBS_H265 0 -%define CONFIG_CBS_MPEG2 0 -%define CONFIG_CBS_VP9 0 %define CONFIG_DIRAC_PARSE 0 -%define CONFIG_DNN 0 %define CONFIG_DVPROFILE 0 %define CONFIG_EXIF 0 -%define CONFIG_FAANDCT 1 -%define CONFIG_FAANIDCT 1 -%define CONFIG_FDCTDSP 1 +%define CONFIG_FAANDCT 0 +%define CONFIG_FAANIDCT 0 +%define CONFIG_FDCTDSP 0 %define CONFIG_FLACDSP 1 %define CONFIG_FMTCONVERT 0 +%define CONFIG_FRAME_THREAD_ENCODER 0 %define CONFIG_G722DSP 0 %define CONFIG_GOLOMB 0 %define CONFIG_GPLV3 0 @@ -590,7 +592,7 @@ %define CONFIG_HUFFMAN 0 %define CONFIG_HUFFYUVDSP 0 %define CONFIG_HUFFYUVENCDSP 0 -%define CONFIG_IDCTDSP 1 +%define CONFIG_IDCTDSP 0 %define CONFIG_IIRFILTER 0 %define CONFIG_MDCT15 0 %define CONFIG_INTRAX8 0 @@ -617,7 +619,6 @@ %define CONFIG_QSV 0 %define CONFIG_QSVDEC 0 %define CONFIG_QSVENC 0 -%define CONFIG_QSVVPP 0 %define CONFIG_RANGECODER 0 %define CONFIG_RIFFDEC 0 %define CONFIG_RIFFENC 0 @@ -641,9 +642,9 @@ %define CONFIG_WMA_FREQS 0 %define CONFIG_WMV2DSP 0 %define CONFIG_NULL_BSF 1 -%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 %define CONFIG_VP8_DECODER 1 %define CONFIG_VP9_DECODER 1 %define CONFIG_FLAC_DECODER 1 +%define CONFIG_FLAC_PARSER 0 %define CONFIG_VP8_PARSER 1 %define CONFIG_VP9_PARSER 1 diff --git a/media/ffvpx/config_win32.h b/media/ffvpx/config_win32.h index 35480e418..36bb2d3c3 100644 --- a/media/ffvpx/config_win32.h +++ b/media/ffvpx/config_win32.h @@ -1,12 +1,12 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm --disable-cuda --disable-cuvid --toolchain=msvc" +#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm --toolchain=msvc" #define FFMPEG_LICENSE "LGPL version 2.1 or later" -#define CONFIG_THIS_YEAR 2018 +#define CONFIG_THIS_YEAR 2017 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.15.26726 for x86" +#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.11.25508.2 for x86" #define av_restrict __restrict #define EXTERN_PREFIX "_" #define EXTERN_ASM _ @@ -57,7 +57,6 @@ #define HAVE_AMD3DNOWEXT 1 #define HAVE_AVX 1 #define HAVE_AVX2 1 -#define HAVE_AVX512 1 #define HAVE_FMA3 1 #define HAVE_FMA4 1 #define HAVE_MMX 1 @@ -102,7 +101,6 @@ #define HAVE_AMD3DNOWEXT_EXTERNAL 1 #define HAVE_AVX_EXTERNAL 1 #define HAVE_AVX2_EXTERNAL 1 -#define HAVE_AVX512_EXTERNAL 0 #define HAVE_FMA3_EXTERNAL 1 #define HAVE_FMA4_EXTERNAL 1 #define HAVE_MMX_EXTERNAL 1 @@ -147,7 +145,6 @@ #define HAVE_AMD3DNOWEXT_INLINE 0 #define HAVE_AVX_INLINE 0 #define HAVE_AVX2_INLINE 0 -#define HAVE_AVX512_INLINE 0 #define HAVE_FMA3_INLINE 0 #define HAVE_FMA4_INLINE 0 #define HAVE_MMX_INLINE 0 @@ -177,15 +174,20 @@ #define HAVE_FAST_64BIT 0 #define HAVE_FAST_CLZ 0 #define HAVE_FAST_CMOV 0 -#define HAVE_LOCAL_ALIGNED 1 +#define HAVE_LOCAL_ALIGNED_8 1 +#define HAVE_LOCAL_ALIGNED_16 1 +#define HAVE_LOCAL_ALIGNED_32 1 #define HAVE_SIMD_ALIGN_16 1 #define HAVE_SIMD_ALIGN_32 1 -#define HAVE_SIMD_ALIGN_64 1 +#define HAVE_ATOMICS_GCC 0 +#define HAVE_ATOMICS_SUNCC 0 +#define HAVE_ATOMICS_WIN32 1 #define HAVE_ATOMIC_CAS_PTR 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 1 #define HAVE_MM_EMPTY 1 #define HAVE_RDTSC 1 +#define HAVE_SARESTART 0 #define HAVE_SEM_TIMEDWAIT 0 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 #define HAVE_CABS 0 @@ -195,11 +197,13 @@ #define HAVE_X86ASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 +#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 0 #define HAVE_ASM_TYPES_H 0 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 #define HAVE_CUDA_H 0 +#define HAVE_D3D11_H 1 #define HAVE_DISPATCH_DISPATCH_H 0 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -208,17 +212,26 @@ #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 1 #define HAVE_DIRENT_H 0 +#define HAVE_DLFCN_H 0 #define HAVE_DXGIDEBUG_H 1 #define HAVE_DXVA_H 1 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 1 -#define HAVE_LINUX_PERF_EVENT_H 0 +#define HAVE_MACH_MACH_TIME_H 0 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 0 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_STDATOMIC_H 0 +#define HAVE_SYS_MMAN_H 0 #define HAVE_SYS_PARAM_H 0 #define HAVE_SYS_RESOURCE_H 0 #define HAVE_SYS_SELECT_H 0 @@ -262,19 +275,16 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 1 -#define HAVE_LIBC_MSVCRT 1 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 1 #define HAVE_CLOCK_GETTIME 0 #define HAVE_CLOSESOCKET 1 #define HAVE_COMMANDLINETOARGVW 1 +#define HAVE_COTASKMEMFREE 1 +#define HAVE_CRYPTGENRANDOM 1 #define HAVE_FCNTL 0 +#define HAVE_FLT_LIM 1 +#define HAVE_FORK 0 #define HAVE_GETADDRINFO 1 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 0 @@ -289,7 +299,9 @@ #define HAVE_GMTIME_R 0 #define HAVE_INET_ATON 0 #define HAVE_ISATTY 1 +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 1 +#define HAVE_LOADLIBRARY 1 #define HAVE_LSTAT 0 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 @@ -301,7 +313,6 @@ #define HAVE_PEEKNAMEDPIPE 1 #define HAVE_PTHREAD_CANCEL 0 #define HAVE_SCHED_GETAFFINITY 0 -#define HAVE_SECITEMIMPORT 0 #define HAVE_SETCONSOLETEXTATTRIBUTE 1 #define HAVE_SETCONSOLECTRLHANDLER 1 #define HAVE_SETMODE 1 @@ -314,19 +325,16 @@ #define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 1 #define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 1 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 0 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 1 -#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 #define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 +#define HAVE_ATTRIBUTE_MAY_ALIAS 0 +#define HAVE_ATTRIBUTE_PACKED 0 #define HAVE_BLOCKS_EXTENSION 0 #define HAVE_EBP_AVAILABLE 0 #define HAVE_EBX_AVAILABLE 0 @@ -343,6 +351,7 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 0 +#define HAVE_CONDITION_VARIABLE_PTR 1 #define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 1 #define HAVE_STRUCT_ADDRINFO 1 @@ -350,7 +359,7 @@ #define HAVE_STRUCT_IP_MREQ_SOURCE 1 #define HAVE_STRUCT_IPV6_MREQ 1 #define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -#define HAVE_STRUCT_POLLFD 1 +#define HAVE_STRUCT_POLLFD 0 #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 #define HAVE_STRUCT_SOCKADDR_IN6 1 @@ -358,17 +367,22 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 1 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_ATOMICS_NATIVE 1 +#define HAVE_DOS_PATHS 1 +#define HAVE_LIBC_MSVCRT 1 #define HAVE_MAKEINFO 1 #define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 +#define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 +#define HAVE_WINRT 0 #define CONFIG_DOC 0 #define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 1 @@ -395,12 +409,27 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 0 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0 #define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +#define CONFIG_ALSA 0 +#define CONFIG_APPKIT 0 +#define CONFIG_AVFOUNDATION 0 +#define CONFIG_BZLIB 0 +#define CONFIG_COREIMAGE 0 +#define CONFIG_ICONV 0 +#define CONFIG_JACK 0 +#define CONFIG_LIBXCB 0 +#define CONFIG_LIBXCB_SHM 0 +#define CONFIG_LIBXCB_SHAPE 0 +#define CONFIG_LIBXCB_XFIXES 0 +#define CONFIG_LZMA 0 +#define CONFIG_SCHANNEL 1 +#define CONFIG_SDL2 0 +#define CONFIG_SECURETRANSPORT 0 +#define CONFIG_SNDIO 0 +#define CONFIG_XLIB 1 +#define CONFIG_ZLIB 0 #define CONFIG_AVISYNTH 0 #define CONFIG_FREI0R 0 #define CONFIG_LIBCDIO 0 -#define CONFIG_LIBDAVS2 0 #define CONFIG_LIBRUBBERBAND 0 #define CONFIG_LIBVIDSTAB 0 #define CONFIG_LIBX264 0 @@ -411,14 +440,10 @@ #define CONFIG_LIBNDI_NEWTEK 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 #define CONFIG_GMP 0 -#define CONFIG_LIBLENSFUN 0 #define CONFIG_LIBOPENCORE_AMRNB 0 #define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVO_AMRWBENC 0 -#define CONFIG_MBEDTLS 0 #define CONFIG_RKMPP 0 #define CONFIG_LIBSMBCLIENT 0 #define CONFIG_CHROMAPRINT 0 @@ -426,13 +451,11 @@ #define CONFIG_GNUTLS 0 #define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 #define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 @@ -443,7 +466,6 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 #define CONFIG_LIBKVAZAAR 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 @@ -461,13 +483,12 @@ #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 -#define CONFIG_LIBTENSORFLOW 0 #define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 #define CONFIG_LIBV4L2 0 +#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 @@ -476,49 +497,28 @@ #define CONFIG_LIBZIMG 0 #define CONFIG_LIBZMQ 0 #define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 #define CONFIG_MEDIACODEC 0 #define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_VAPOURSYNTH 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 0 -#define CONFIG_AVFOUNDATION 0 -#define CONFIG_BZLIB 0 -#define CONFIG_COREIMAGE 0 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 0 -#define CONFIG_SCHANNEL 1 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 0 -#define CONFIG_ZLIB 0 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 #define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 +#define CONFIG_OPENGL 0 #define CONFIG_AUDIOTOOLBOX 0 #define CONFIG_CRYSTALHD 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 +#define CONFIG_CUDA 1 +#define CONFIG_CUVID 1 #define CONFIG_D3D11VA 0 #define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 -#define CONFIG_NVENC 0 +#define CONFIG_NVENC 1 #define CONFIG_VAAPI 0 +#define CONFIG_VDA 0 #define CONFIG_VDPAU 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_V4L2_M2M 0 #define CONFIG_XVMC 0 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 @@ -532,17 +532,18 @@ #define CONFIG_GPL 0 #define CONFIG_NONFREE 0 #define CONFIG_VERSION3 0 +#define CONFIG_AVCODEC 1 #define CONFIG_AVDEVICE 0 #define CONFIG_AVFILTER 0 -#define CONFIG_SWSCALE 0 -#define CONFIG_POSTPROC 0 #define CONFIG_AVFORMAT 0 -#define CONFIG_AVCODEC 1 -#define CONFIG_SWRESAMPLE 0 #define CONFIG_AVRESAMPLE 0 #define CONFIG_AVUTIL 1 +#define CONFIG_POSTPROC 0 +#define CONFIG_SWRESAMPLE 0 +#define CONFIG_SWSCALE 0 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 +#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 0 #define CONFIG_DWT 0 @@ -568,29 +569,31 @@ #define CONFIG_XMM_CLOBBER_TEST 0 #define CONFIG_BSFS 1 #define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 #define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 0 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 0 #define CONFIG_AANDCTTABLES 0 #define CONFIG_AC3DSP 0 -#define CONFIG_ADTS_HEADER 0 #define CONFIG_AUDIO_FRAME_QUEUE 0 #define CONFIG_AUDIODSP 0 #define CONFIG_BLOCKDSP 0 #define CONFIG_BSWAPDSP 0 #define CONFIG_CABAC 0 -#define CONFIG_CBS 0 -#define CONFIG_CBS_H264 0 -#define CONFIG_CBS_H265 0 -#define CONFIG_CBS_MPEG2 0 -#define CONFIG_CBS_VP9 0 #define CONFIG_DIRAC_PARSE 0 -#define CONFIG_DNN 0 #define CONFIG_DVPROFILE 0 #define CONFIG_EXIF 0 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 +#define CONFIG_FAANDCT 0 +#define CONFIG_FAANIDCT 0 +#define CONFIG_FDCTDSP 0 #define CONFIG_FLACDSP 1 #define CONFIG_FMTCONVERT 0 +#define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 0 #define CONFIG_GOLOMB 0 #define CONFIG_GPLV3 0 @@ -605,7 +608,7 @@ #define CONFIG_HUFFMAN 0 #define CONFIG_HUFFYUVDSP 0 #define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 +#define CONFIG_IDCTDSP 0 #define CONFIG_IIRFILTER 0 #define CONFIG_MDCT15 0 #define CONFIG_INTRAX8 0 @@ -632,7 +635,6 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 0 #define CONFIG_RIFFDEC 0 #define CONFIG_RIFFENC 0 @@ -656,10 +658,10 @@ #define CONFIG_WMA_FREQS 0 #define CONFIG_WMV2DSP 0 #define CONFIG_NULL_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_VP8_DECODER 1 #define CONFIG_VP9_DECODER 1 #define CONFIG_FLAC_DECODER 1 +#define CONFIG_FLAC_PARSER 0 #define CONFIG_VP8_PARSER 1 #define CONFIG_VP9_PARSER 1 #endif /* FFMPEG_CONFIG_H */ diff --git a/media/ffvpx/config_win64.asm b/media/ffvpx/config_win64.asm index fecfee498..58c61e970 100644 --- a/media/ffvpx/config_win64.asm +++ b/media/ffvpx/config_win64.asm @@ -1,4 +1,3 @@ -; Automatically generated by configure - do not modify! %define ARCH_AARCH64 0 %define ARCH_ALPHA 0 %define ARCH_ARM 0 @@ -42,7 +41,6 @@ %define HAVE_AMD3DNOWEXT 1 %define HAVE_AVX 1 %define HAVE_AVX2 1 -%define HAVE_AVX512 1 %define HAVE_FMA3 1 %define HAVE_FMA4 1 %define HAVE_MMX 1 @@ -87,7 +85,6 @@ %define HAVE_AMD3DNOWEXT_EXTERNAL 1 %define HAVE_AVX_EXTERNAL 1 %define HAVE_AVX2_EXTERNAL 1 -%define HAVE_AVX512_EXTERNAL 0 %define HAVE_FMA3_EXTERNAL 1 %define HAVE_FMA4_EXTERNAL 1 %define HAVE_MMX_EXTERNAL 1 @@ -132,7 +129,6 @@ %define HAVE_AMD3DNOWEXT_INLINE 0 %define HAVE_AVX_INLINE 0 %define HAVE_AVX2_INLINE 0 -%define HAVE_AVX512_INLINE 0 %define HAVE_FMA3_INLINE 0 %define HAVE_FMA4_INLINE 0 %define HAVE_MMX_INLINE 0 @@ -160,17 +156,22 @@ %define HAVE_MMI_INLINE 0 %define HAVE_ALIGNED_STACK 1 %define HAVE_FAST_64BIT 1 -%define HAVE_FAST_CLZ 1 +%define HAVE_FAST_CLZ 0 %define HAVE_FAST_CMOV 1 -%define HAVE_LOCAL_ALIGNED 1 +%define HAVE_LOCAL_ALIGNED_8 1 +%define HAVE_LOCAL_ALIGNED_16 1 +%define HAVE_LOCAL_ALIGNED_32 1 %define HAVE_SIMD_ALIGN_16 1 %define HAVE_SIMD_ALIGN_32 1 -%define HAVE_SIMD_ALIGN_64 1 +%define HAVE_ATOMICS_GCC 0 +%define HAVE_ATOMICS_SUNCC 0 +%define HAVE_ATOMICS_WIN32 1 %define HAVE_ATOMIC_CAS_PTR 0 %define HAVE_MACHINE_RW_BARRIER 0 %define HAVE_MEMORYBARRIER 1 %define HAVE_MM_EMPTY 0 %define HAVE_RDTSC 1 +%define HAVE_SARESTART 0 %define HAVE_SEM_TIMEDWAIT 0 %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 %define HAVE_CABS 0 @@ -180,11 +181,13 @@ %define HAVE_X86ASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 +%define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 0 %define HAVE_ASM_TYPES_H 0 %define HAVE_CDIO_PARANOIA_H 0 %define HAVE_CDIO_PARANOIA_PARANOIA_H 0 %define HAVE_CUDA_H 0 +%define HAVE_D3D11_H 1 %define HAVE_DISPATCH_DISPATCH_H 0 %define HAVE_DEV_BKTR_IOCTL_BT848_H 0 %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -193,17 +196,26 @@ %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 %define HAVE_DIRECT_H 1 %define HAVE_DIRENT_H 0 +%define HAVE_DLFCN_H 0 %define HAVE_DXGIDEBUG_H 1 %define HAVE_DXVA_H 1 %define HAVE_ES2_GL_H 0 %define HAVE_GSM_H 0 %define HAVE_IO_H 1 -%define HAVE_LINUX_PERF_EVENT_H 0 +%define HAVE_MACH_MACH_TIME_H 0 %define HAVE_MACHINE_IOCTL_BT848_H 0 %define HAVE_MACHINE_IOCTL_METEOR_H 0 %define HAVE_OPENCV2_CORE_CORE_C_H 0 +%define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +%define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 %define HAVE_OPENGL_GL3_H 0 %define HAVE_POLL_H 0 +%define HAVE_SOUNDCARD_H 0 +%define HAVE_STDATOMIC_H 0 +%define HAVE_SYS_MMAN_H 0 %define HAVE_SYS_PARAM_H 0 %define HAVE_SYS_RESOURCE_H 0 %define HAVE_SYS_SELECT_H 0 @@ -247,19 +259,16 @@ %define HAVE_SINF 1 %define HAVE_TRUNC 1 %define HAVE_TRUNCF 1 -%define HAVE_DOS_PATHS 1 -%define HAVE_LIBC_MSVCRT 1 -%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -%define HAVE_SECTION_DATA_REL_RO 0 -%define HAVE_THREADS 1 -%define HAVE_UWP 0 -%define HAVE_WINRT 0 %define HAVE_ACCESS 1 %define HAVE_ALIGNED_MALLOC 1 %define HAVE_CLOCK_GETTIME 0 %define HAVE_CLOSESOCKET 1 %define HAVE_COMMANDLINETOARGVW 1 +%define HAVE_COTASKMEMFREE 1 +%define HAVE_CRYPTGENRANDOM 1 %define HAVE_FCNTL 0 +%define HAVE_FLT_LIM 1 +%define HAVE_FORK 0 %define HAVE_GETADDRINFO 1 %define HAVE_GETHRTIME 0 %define HAVE_GETOPT 0 @@ -274,7 +283,9 @@ %define HAVE_GMTIME_R 0 %define HAVE_INET_ATON 0 %define HAVE_ISATTY 1 +%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 1 +%define HAVE_LOADLIBRARY 1 %define HAVE_LSTAT 0 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 @@ -286,7 +297,6 @@ %define HAVE_PEEKNAMEDPIPE 1 %define HAVE_PTHREAD_CANCEL 0 %define HAVE_SCHED_GETAFFINITY 0 -%define HAVE_SECITEMIMPORT 0 %define HAVE_SETCONSOLETEXTATTRIBUTE 1 %define HAVE_SETCONSOLECTRLHANDLER 1 %define HAVE_SETMODE 1 @@ -299,19 +309,16 @@ %define HAVE_UTGETOSTYPEFROMSTRING 0 %define HAVE_VIRTUALALLOC 1 %define HAVE_WGLGETPROCADDRESS 0 -%define HAVE_BCRYPT 1 -%define HAVE_VAAPI_DRM 0 -%define HAVE_VAAPI_X11 0 -%define HAVE_VDPAU_X11 0 %define HAVE_PTHREADS 0 %define HAVE_OS2THREADS 0 %define HAVE_W32THREADS 1 -%define HAVE_AS_ARCH_DIRECTIVE 0 %define HAVE_AS_DN_DIRECTIVE 0 %define HAVE_AS_FPU_DIRECTIVE 0 %define HAVE_AS_FUNC 0 %define HAVE_AS_OBJECT_ARCH 0 %define HAVE_ASM_MOD_Q 0 +%define HAVE_ATTRIBUTE_MAY_ALIAS 0 +%define HAVE_ATTRIBUTE_PACKED 0 %define HAVE_BLOCKS_EXTENSION 0 %define HAVE_EBP_AVAILABLE 0 %define HAVE_EBX_AVAILABLE 0 @@ -328,6 +335,7 @@ %define HAVE_VFP_ARGS 0 %define HAVE_XFORM_ASM 0 %define HAVE_XMM_CLOBBERS 0 +%define HAVE_CONDITION_VARIABLE_PTR 1 %define HAVE_KCMVIDEOCODECTYPE_HEVC 0 %define HAVE_SOCKLEN_T 1 %define HAVE_STRUCT_ADDRINFO 1 @@ -335,7 +343,7 @@ %define HAVE_STRUCT_IP_MREQ_SOURCE 1 %define HAVE_STRUCT_IPV6_MREQ 1 %define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -%define HAVE_STRUCT_POLLFD 1 +%define HAVE_STRUCT_POLLFD 0 %define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 %define HAVE_STRUCT_SOCKADDR_IN6 1 @@ -343,17 +351,22 @@ %define HAVE_STRUCT_SOCKADDR_STORAGE 1 %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +%define HAVE_ATOMICS_NATIVE 1 +%define HAVE_DOS_PATHS 1 +%define HAVE_LIBC_MSVCRT 1 %define HAVE_MAKEINFO 1 %define HAVE_MAKEINFO_HTML 0 -%define HAVE_OPENCL_D3D11 0 -%define HAVE_OPENCL_DRM_ARM 0 -%define HAVE_OPENCL_DRM_BEIGNET 0 -%define HAVE_OPENCL_DXVA2 0 -%define HAVE_OPENCL_VAAPI_BEIGNET 0 -%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 +%define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 +%define HAVE_THREADS 1 +%define HAVE_UWP 0 +%define HAVE_VAAPI_DRM 0 +%define HAVE_VAAPI_X11 0 +%define HAVE_VDPAU_X11 0 +%define HAVE_WINRT 0 %define CONFIG_DOC 0 %define CONFIG_HTMLPAGES 0 %define CONFIG_MANPAGES 1 @@ -380,12 +393,27 @@ %define CONFIG_SCALING_VIDEO_EXAMPLE 0 %define CONFIG_TRANSCODE_AAC_EXAMPLE 0 %define CONFIG_TRANSCODING_EXAMPLE 0 -%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +%define CONFIG_ALSA 0 +%define CONFIG_APPKIT 0 +%define CONFIG_AVFOUNDATION 0 +%define CONFIG_BZLIB 0 +%define CONFIG_COREIMAGE 0 +%define CONFIG_ICONV 0 +%define CONFIG_JACK 0 +%define CONFIG_LIBXCB 0 +%define CONFIG_LIBXCB_SHM 0 +%define CONFIG_LIBXCB_SHAPE 0 +%define CONFIG_LIBXCB_XFIXES 0 +%define CONFIG_LZMA 0 +%define CONFIG_SCHANNEL 1 +%define CONFIG_SDL2 0 +%define CONFIG_SECURETRANSPORT 0 +%define CONFIG_SNDIO 0 +%define CONFIG_XLIB 1 +%define CONFIG_ZLIB 0 %define CONFIG_AVISYNTH 0 %define CONFIG_FREI0R 0 %define CONFIG_LIBCDIO 0 -%define CONFIG_LIBDAVS2 0 %define CONFIG_LIBRUBBERBAND 0 %define CONFIG_LIBVIDSTAB 0 %define CONFIG_LIBX264 0 @@ -396,14 +424,10 @@ %define CONFIG_LIBNDI_NEWTEK 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_OPENSSL 0 -%define CONFIG_LIBTLS 0 %define CONFIG_GMP 0 -%define CONFIG_LIBLENSFUN 0 %define CONFIG_LIBOPENCORE_AMRNB 0 %define CONFIG_LIBOPENCORE_AMRWB 0 -%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVO_AMRWBENC 0 -%define CONFIG_MBEDTLS 0 %define CONFIG_RKMPP 0 %define CONFIG_LIBSMBCLIENT 0 %define CONFIG_CHROMAPRINT 0 @@ -411,13 +435,11 @@ %define CONFIG_GNUTLS 0 %define CONFIG_JNI 0 %define CONFIG_LADSPA 0 -%define CONFIG_LIBAOM 0 %define CONFIG_LIBASS 0 %define CONFIG_LIBBLURAY 0 %define CONFIG_LIBBS2B 0 %define CONFIG_LIBCACA 0 %define CONFIG_LIBCELT 0 -%define CONFIG_LIBCODEC2 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBDRM 0 %define CONFIG_LIBFLITE 0 @@ -428,7 +450,6 @@ %define CONFIG_LIBGSM 0 %define CONFIG_LIBIEC61883 0 %define CONFIG_LIBILBC 0 -%define CONFIG_LIBJACK 0 %define CONFIG_LIBKVAZAAR 0 %define CONFIG_LIBMODPLUG 0 %define CONFIG_LIBMP3LAME 0 @@ -446,13 +467,12 @@ %define CONFIG_LIBSNAPPY 0 %define CONFIG_LIBSOXR 0 %define CONFIG_LIBSPEEX 0 -%define CONFIG_LIBSRT 0 %define CONFIG_LIBSSH 0 -%define CONFIG_LIBTENSORFLOW 0 %define CONFIG_LIBTESSERACT 0 %define CONFIG_LIBTHEORA 0 %define CONFIG_LIBTWOLAME 0 %define CONFIG_LIBV4L2 0 +%define CONFIG_LIBVMAF 0 %define CONFIG_LIBVORBIS 0 %define CONFIG_LIBVPX 0 %define CONFIG_LIBWAVPACK 0 @@ -461,49 +481,28 @@ %define CONFIG_LIBZIMG 0 %define CONFIG_LIBZMQ 0 %define CONFIG_LIBZVBI 0 -%define CONFIG_LV2 0 %define CONFIG_MEDIACODEC 0 %define CONFIG_OPENAL 0 -%define CONFIG_OPENGL 0 -%define CONFIG_VAPOURSYNTH 0 -%define CONFIG_ALSA 0 -%define CONFIG_APPKIT 0 -%define CONFIG_AVFOUNDATION 0 -%define CONFIG_BZLIB 0 -%define CONFIG_COREIMAGE 0 -%define CONFIG_ICONV 0 -%define CONFIG_LIBXCB 0 -%define CONFIG_LIBXCB_SHM 0 -%define CONFIG_LIBXCB_SHAPE 0 -%define CONFIG_LIBXCB_XFIXES 0 -%define CONFIG_LZMA 0 -%define CONFIG_SCHANNEL 1 -%define CONFIG_SDL2 0 -%define CONFIG_SECURETRANSPORT 0 -%define CONFIG_SNDIO 0 -%define CONFIG_XLIB 0 -%define CONFIG_ZLIB 0 -%define CONFIG_CUDA_SDK 0 -%define CONFIG_LIBNPP 0 -%define CONFIG_LIBMFX 0 -%define CONFIG_MMAL 0 -%define CONFIG_OMX 0 %define CONFIG_OPENCL 0 -%define CONFIG_AMF 0 +%define CONFIG_OPENGL 0 %define CONFIG_AUDIOTOOLBOX 0 %define CONFIG_CRYSTALHD 0 -%define CONFIG_CUDA 0 -%define CONFIG_CUVID 0 +%define CONFIG_CUDA 1 +%define CONFIG_CUVID 1 %define CONFIG_D3D11VA 0 %define CONFIG_DXVA2 0 -%define CONFIG_FFNVCODEC 0 -%define CONFIG_NVDEC 0 -%define CONFIG_NVENC 0 +%define CONFIG_NVENC 1 %define CONFIG_VAAPI 0 +%define CONFIG_VDA 0 %define CONFIG_VDPAU 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_V4L2_M2M 0 %define CONFIG_XVMC 0 +%define CONFIG_CUDA_SDK 0 +%define CONFIG_LIBNPP 0 +%define CONFIG_LIBMFX 0 +%define CONFIG_MMAL 0 +%define CONFIG_OMX 0 %define CONFIG_FTRAPV 0 %define CONFIG_GRAY 0 %define CONFIG_HARDCODED_TABLES 0 @@ -517,17 +516,18 @@ %define CONFIG_GPL 0 %define CONFIG_NONFREE 0 %define CONFIG_VERSION3 0 +%define CONFIG_AVCODEC 1 %define CONFIG_AVDEVICE 0 %define CONFIG_AVFILTER 0 -%define CONFIG_SWSCALE 0 -%define CONFIG_POSTPROC 0 %define CONFIG_AVFORMAT 0 -%define CONFIG_AVCODEC 1 -%define CONFIG_SWRESAMPLE 0 %define CONFIG_AVRESAMPLE 0 %define CONFIG_AVUTIL 1 +%define CONFIG_POSTPROC 0 +%define CONFIG_SWRESAMPLE 0 +%define CONFIG_SWSCALE 0 %define CONFIG_FFPLAY 0 %define CONFIG_FFPROBE 0 +%define CONFIG_FFSERVER 0 %define CONFIG_FFMPEG 0 %define CONFIG_DCT 0 %define CONFIG_DWT 0 @@ -553,29 +553,31 @@ %define CONFIG_XMM_CLOBBER_TEST 0 %define CONFIG_BSFS 1 %define CONFIG_DECODERS 1 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 %define CONFIG_PARSERS 1 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 0 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 0 %define CONFIG_AANDCTTABLES 0 %define CONFIG_AC3DSP 0 -%define CONFIG_ADTS_HEADER 0 %define CONFIG_AUDIO_FRAME_QUEUE 0 %define CONFIG_AUDIODSP 0 %define CONFIG_BLOCKDSP 0 %define CONFIG_BSWAPDSP 0 %define CONFIG_CABAC 0 -%define CONFIG_CBS 0 -%define CONFIG_CBS_H264 0 -%define CONFIG_CBS_H265 0 -%define CONFIG_CBS_MPEG2 0 -%define CONFIG_CBS_VP9 0 %define CONFIG_DIRAC_PARSE 0 -%define CONFIG_DNN 0 %define CONFIG_DVPROFILE 0 %define CONFIG_EXIF 0 -%define CONFIG_FAANDCT 1 -%define CONFIG_FAANIDCT 1 -%define CONFIG_FDCTDSP 1 +%define CONFIG_FAANDCT 0 +%define CONFIG_FAANIDCT 0 +%define CONFIG_FDCTDSP 0 %define CONFIG_FLACDSP 1 %define CONFIG_FMTCONVERT 0 +%define CONFIG_FRAME_THREAD_ENCODER 0 %define CONFIG_G722DSP 0 %define CONFIG_GOLOMB 0 %define CONFIG_GPLV3 0 @@ -590,7 +592,7 @@ %define CONFIG_HUFFMAN 0 %define CONFIG_HUFFYUVDSP 0 %define CONFIG_HUFFYUVENCDSP 0 -%define CONFIG_IDCTDSP 1 +%define CONFIG_IDCTDSP 0 %define CONFIG_IIRFILTER 0 %define CONFIG_MDCT15 0 %define CONFIG_INTRAX8 0 @@ -617,7 +619,6 @@ %define CONFIG_QSV 0 %define CONFIG_QSVDEC 0 %define CONFIG_QSVENC 0 -%define CONFIG_QSVVPP 0 %define CONFIG_RANGECODER 0 %define CONFIG_RIFFDEC 0 %define CONFIG_RIFFENC 0 @@ -641,9 +642,9 @@ %define CONFIG_WMA_FREQS 0 %define CONFIG_WMV2DSP 0 %define CONFIG_NULL_BSF 1 -%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 %define CONFIG_VP8_DECODER 1 %define CONFIG_VP9_DECODER 1 %define CONFIG_FLAC_DECODER 1 +%define CONFIG_FLAC_PARSER 0 %define CONFIG_VP8_PARSER 1 %define CONFIG_VP9_PARSER 1 diff --git a/media/ffvpx/config_win64.h b/media/ffvpx/config_win64.h index cd8f991d8..b74b8d507 100644 --- a/media/ffvpx/config_win64.h +++ b/media/ffvpx/config_win64.h @@ -1,12 +1,12 @@ /* Automatically generated by configure - do not modify! */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm --toolchain=msvc --disable-cuda --disable-cuvid" +#define FFMPEG_CONFIGURATION "--disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-yasm --toolchain=msvc" #define FFMPEG_LICENSE "LGPL version 2.1 or later" -#define CONFIG_THIS_YEAR 2018 +#define CONFIG_THIS_YEAR 2017 #define FFMPEG_DATADIR "/usr/local/share/ffmpeg" #define AVCONV_DATADIR "/usr/local/share/ffmpeg" -#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.15.26726 for x64" +#define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.11.25508.2 for x64" #define av_restrict __restrict #define EXTERN_PREFIX "" #define EXTERN_ASM @@ -57,7 +57,6 @@ #define HAVE_AMD3DNOWEXT 1 #define HAVE_AVX 1 #define HAVE_AVX2 1 -#define HAVE_AVX512 1 #define HAVE_FMA3 1 #define HAVE_FMA4 1 #define HAVE_MMX 1 @@ -102,7 +101,6 @@ #define HAVE_AMD3DNOWEXT_EXTERNAL 1 #define HAVE_AVX_EXTERNAL 1 #define HAVE_AVX2_EXTERNAL 1 -#define HAVE_AVX512_EXTERNAL 0 #define HAVE_FMA3_EXTERNAL 1 #define HAVE_FMA4_EXTERNAL 1 #define HAVE_MMX_EXTERNAL 1 @@ -147,7 +145,6 @@ #define HAVE_AMD3DNOWEXT_INLINE 0 #define HAVE_AVX_INLINE 0 #define HAVE_AVX2_INLINE 0 -#define HAVE_AVX512_INLINE 0 #define HAVE_FMA3_INLINE 0 #define HAVE_FMA4_INLINE 0 #define HAVE_MMX_INLINE 0 @@ -177,15 +174,20 @@ #define HAVE_FAST_64BIT 1 #define HAVE_FAST_CLZ 0 #define HAVE_FAST_CMOV 1 -#define HAVE_LOCAL_ALIGNED 1 +#define HAVE_LOCAL_ALIGNED_8 1 +#define HAVE_LOCAL_ALIGNED_16 1 +#define HAVE_LOCAL_ALIGNED_32 1 #define HAVE_SIMD_ALIGN_16 1 #define HAVE_SIMD_ALIGN_32 1 -#define HAVE_SIMD_ALIGN_64 1 +#define HAVE_ATOMICS_GCC 0 +#define HAVE_ATOMICS_SUNCC 0 +#define HAVE_ATOMICS_WIN32 1 #define HAVE_ATOMIC_CAS_PTR 0 #define HAVE_MACHINE_RW_BARRIER 0 #define HAVE_MEMORYBARRIER 1 #define HAVE_MM_EMPTY 0 #define HAVE_RDTSC 1 +#define HAVE_SARESTART 0 #define HAVE_SEM_TIMEDWAIT 0 #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 0 #define HAVE_CABS 0 @@ -195,11 +197,13 @@ #define HAVE_X86ASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 +#define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 0 #define HAVE_ASM_TYPES_H 0 #define HAVE_CDIO_PARANOIA_H 0 #define HAVE_CDIO_PARANOIA_PARANOIA_H 0 #define HAVE_CUDA_H 0 +#define HAVE_D3D11_H 1 #define HAVE_DISPATCH_DISPATCH_H 0 #define HAVE_DEV_BKTR_IOCTL_BT848_H 0 #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 @@ -208,17 +212,26 @@ #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 #define HAVE_DIRECT_H 1 #define HAVE_DIRENT_H 0 +#define HAVE_DLFCN_H 0 #define HAVE_DXGIDEBUG_H 1 #define HAVE_DXVA_H 1 #define HAVE_ES2_GL_H 0 #define HAVE_GSM_H 0 #define HAVE_IO_H 1 -#define HAVE_LINUX_PERF_EVENT_H 0 +#define HAVE_MACH_MACH_TIME_H 0 #define HAVE_MACHINE_IOCTL_BT848_H 0 #define HAVE_MACHINE_IOCTL_METEOR_H 0 #define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENJPEG_2_3_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_2_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 #define HAVE_OPENGL_GL3_H 0 #define HAVE_POLL_H 0 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_STDATOMIC_H 0 +#define HAVE_SYS_MMAN_H 0 #define HAVE_SYS_PARAM_H 0 #define HAVE_SYS_RESOURCE_H 0 #define HAVE_SYS_SELECT_H 0 @@ -262,19 +275,16 @@ #define HAVE_SINF 1 #define HAVE_TRUNC 1 #define HAVE_TRUNCF 1 -#define HAVE_DOS_PATHS 1 -#define HAVE_LIBC_MSVCRT 1 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_SECTION_DATA_REL_RO 0 -#define HAVE_THREADS 1 -#define HAVE_UWP 0 -#define HAVE_WINRT 0 #define HAVE_ACCESS 1 #define HAVE_ALIGNED_MALLOC 1 #define HAVE_CLOCK_GETTIME 0 #define HAVE_CLOSESOCKET 1 #define HAVE_COMMANDLINETOARGVW 1 +#define HAVE_COTASKMEMFREE 1 +#define HAVE_CRYPTGENRANDOM 1 #define HAVE_FCNTL 0 +#define HAVE_FLT_LIM 1 +#define HAVE_FORK 0 #define HAVE_GETADDRINFO 1 #define HAVE_GETHRTIME 0 #define HAVE_GETOPT 0 @@ -289,7 +299,9 @@ #define HAVE_GMTIME_R 0 #define HAVE_INET_ATON 0 #define HAVE_ISATTY 1 +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 1 +#define HAVE_LOADLIBRARY 1 #define HAVE_LSTAT 0 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 @@ -301,7 +313,6 @@ #define HAVE_PEEKNAMEDPIPE 1 #define HAVE_PTHREAD_CANCEL 0 #define HAVE_SCHED_GETAFFINITY 0 -#define HAVE_SECITEMIMPORT 0 #define HAVE_SETCONSOLETEXTATTRIBUTE 1 #define HAVE_SETCONSOLECTRLHANDLER 1 #define HAVE_SETMODE 1 @@ -309,24 +320,20 @@ #define HAVE_SLEEP 1 #define HAVE_STRERROR_R 0 #define HAVE_SYSCONF 0 -#define HAVE_SYSCTL 0 #define HAVE_USLEEP 0 #define HAVE_UTGETOSTYPEFROMSTRING 0 #define HAVE_VIRTUALALLOC 1 #define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_BCRYPT 1 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 #define HAVE_PTHREADS 0 #define HAVE_OS2THREADS 0 #define HAVE_W32THREADS 1 -#define HAVE_AS_ARCH_DIRECTIVE 0 #define HAVE_AS_DN_DIRECTIVE 0 #define HAVE_AS_FPU_DIRECTIVE 0 #define HAVE_AS_FUNC 0 #define HAVE_AS_OBJECT_ARCH 0 #define HAVE_ASM_MOD_Q 0 +#define HAVE_ATTRIBUTE_MAY_ALIAS 0 +#define HAVE_ATTRIBUTE_PACKED 0 #define HAVE_BLOCKS_EXTENSION 0 #define HAVE_EBP_AVAILABLE 0 #define HAVE_EBX_AVAILABLE 0 @@ -343,6 +350,7 @@ #define HAVE_VFP_ARGS 0 #define HAVE_XFORM_ASM 0 #define HAVE_XMM_CLOBBERS 0 +#define HAVE_CONDITION_VARIABLE_PTR 1 #define HAVE_KCMVIDEOCODECTYPE_HEVC 0 #define HAVE_SOCKLEN_T 1 #define HAVE_STRUCT_ADDRINFO 1 @@ -350,7 +358,7 @@ #define HAVE_STRUCT_IP_MREQ_SOURCE 1 #define HAVE_STRUCT_IPV6_MREQ 1 #define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 -#define HAVE_STRUCT_POLLFD 1 +#define HAVE_STRUCT_POLLFD 0 #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 #define HAVE_STRUCT_SOCKADDR_IN6 1 @@ -358,17 +366,22 @@ #define HAVE_STRUCT_SOCKADDR_STORAGE 1 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_ATOMICS_NATIVE 1 +#define HAVE_DOS_PATHS 1 +#define HAVE_LIBC_MSVCRT 1 #define HAVE_MAKEINFO 1 #define HAVE_MAKEINFO_HTML 0 -#define HAVE_OPENCL_D3D11 0 -#define HAVE_OPENCL_DRM_ARM 0 -#define HAVE_OPENCL_DRM_BEIGNET 0 -#define HAVE_OPENCL_DXVA2 0 -#define HAVE_OPENCL_VAAPI_BEIGNET 0 -#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 +#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 +#define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 +#define HAVE_THREADS 1 +#define HAVE_UWP 0 +#define HAVE_VAAPI_DRM 0 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 +#define HAVE_WINRT 0 #define CONFIG_DOC 0 #define CONFIG_HTMLPAGES 0 #define CONFIG_MANPAGES 1 @@ -395,12 +408,27 @@ #define CONFIG_SCALING_VIDEO_EXAMPLE 0 #define CONFIG_TRANSCODE_AAC_EXAMPLE 0 #define CONFIG_TRANSCODING_EXAMPLE 0 -#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 -#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 +#define CONFIG_ALSA 0 +#define CONFIG_APPKIT 0 +#define CONFIG_AVFOUNDATION 0 +#define CONFIG_BZLIB 0 +#define CONFIG_COREIMAGE 0 +#define CONFIG_ICONV 0 +#define CONFIG_JACK 0 +#define CONFIG_LIBXCB 0 +#define CONFIG_LIBXCB_SHM 0 +#define CONFIG_LIBXCB_SHAPE 0 +#define CONFIG_LIBXCB_XFIXES 0 +#define CONFIG_LZMA 0 +#define CONFIG_SCHANNEL 1 +#define CONFIG_SDL2 0 +#define CONFIG_SECURETRANSPORT 0 +#define CONFIG_SNDIO 0 +#define CONFIG_XLIB 1 +#define CONFIG_ZLIB 0 #define CONFIG_AVISYNTH 0 #define CONFIG_FREI0R 0 #define CONFIG_LIBCDIO 0 -#define CONFIG_LIBDAVS2 0 #define CONFIG_LIBRUBBERBAND 0 #define CONFIG_LIBVIDSTAB 0 #define CONFIG_LIBX264 0 @@ -411,14 +439,10 @@ #define CONFIG_LIBNDI_NEWTEK 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_OPENSSL 0 -#define CONFIG_LIBTLS 0 #define CONFIG_GMP 0 -#define CONFIG_LIBLENSFUN 0 #define CONFIG_LIBOPENCORE_AMRNB 0 #define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVO_AMRWBENC 0 -#define CONFIG_MBEDTLS 0 #define CONFIG_RKMPP 0 #define CONFIG_LIBSMBCLIENT 0 #define CONFIG_CHROMAPRINT 0 @@ -426,13 +450,11 @@ #define CONFIG_GNUTLS 0 #define CONFIG_JNI 0 #define CONFIG_LADSPA 0 -#define CONFIG_LIBAOM 0 #define CONFIG_LIBASS 0 #define CONFIG_LIBBLURAY 0 #define CONFIG_LIBBS2B 0 #define CONFIG_LIBCACA 0 #define CONFIG_LIBCELT 0 -#define CONFIG_LIBCODEC2 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBDRM 0 #define CONFIG_LIBFLITE 0 @@ -443,7 +465,6 @@ #define CONFIG_LIBGSM 0 #define CONFIG_LIBIEC61883 0 #define CONFIG_LIBILBC 0 -#define CONFIG_LIBJACK 0 #define CONFIG_LIBKVAZAAR 0 #define CONFIG_LIBMODPLUG 0 #define CONFIG_LIBMP3LAME 0 @@ -461,13 +482,12 @@ #define CONFIG_LIBSNAPPY 0 #define CONFIG_LIBSOXR 0 #define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSRT 0 #define CONFIG_LIBSSH 0 -#define CONFIG_LIBTENSORFLOW 0 #define CONFIG_LIBTESSERACT 0 #define CONFIG_LIBTHEORA 0 #define CONFIG_LIBTWOLAME 0 #define CONFIG_LIBV4L2 0 +#define CONFIG_LIBVMAF 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_LIBVPX 0 #define CONFIG_LIBWAVPACK 0 @@ -476,49 +496,28 @@ #define CONFIG_LIBZIMG 0 #define CONFIG_LIBZMQ 0 #define CONFIG_LIBZVBI 0 -#define CONFIG_LV2 0 #define CONFIG_MEDIACODEC 0 #define CONFIG_OPENAL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_VAPOURSYNTH 0 -#define CONFIG_ALSA 0 -#define CONFIG_APPKIT 0 -#define CONFIG_AVFOUNDATION 0 -#define CONFIG_BZLIB 0 -#define CONFIG_COREIMAGE 0 -#define CONFIG_ICONV 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LZMA 0 -#define CONFIG_SCHANNEL 1 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_SNDIO 0 -#define CONFIG_XLIB 0 -#define CONFIG_ZLIB 0 -#define CONFIG_CUDA_SDK 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_MMAL 0 -#define CONFIG_OMX 0 #define CONFIG_OPENCL 0 -#define CONFIG_AMF 0 +#define CONFIG_OPENGL 0 #define CONFIG_AUDIOTOOLBOX 0 #define CONFIG_CRYSTALHD 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 +#define CONFIG_CUDA 1 +#define CONFIG_CUVID 1 #define CONFIG_D3D11VA 0 #define CONFIG_DXVA2 0 -#define CONFIG_FFNVCODEC 0 -#define CONFIG_NVDEC 0 -#define CONFIG_NVENC 0 +#define CONFIG_NVENC 1 #define CONFIG_VAAPI 0 +#define CONFIG_VDA 0 #define CONFIG_VDPAU 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_V4L2_M2M 0 #define CONFIG_XVMC 0 +#define CONFIG_CUDA_SDK 0 +#define CONFIG_LIBNPP 0 +#define CONFIG_LIBMFX 0 +#define CONFIG_MMAL 0 +#define CONFIG_OMX 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 @@ -532,17 +531,18 @@ #define CONFIG_GPL 0 #define CONFIG_NONFREE 0 #define CONFIG_VERSION3 0 +#define CONFIG_AVCODEC 1 #define CONFIG_AVDEVICE 0 #define CONFIG_AVFILTER 0 -#define CONFIG_SWSCALE 0 -#define CONFIG_POSTPROC 0 #define CONFIG_AVFORMAT 0 -#define CONFIG_AVCODEC 1 -#define CONFIG_SWRESAMPLE 0 #define CONFIG_AVRESAMPLE 0 #define CONFIG_AVUTIL 1 +#define CONFIG_POSTPROC 0 +#define CONFIG_SWRESAMPLE 0 +#define CONFIG_SWSCALE 0 #define CONFIG_FFPLAY 0 #define CONFIG_FFPROBE 0 +#define CONFIG_FFSERVER 0 #define CONFIG_FFMPEG 0 #define CONFIG_DCT 0 #define CONFIG_DWT 0 @@ -568,29 +568,31 @@ #define CONFIG_XMM_CLOBBER_TEST 0 #define CONFIG_BSFS 1 #define CONFIG_DECODERS 1 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 #define CONFIG_PARSERS 1 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 0 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 0 #define CONFIG_AANDCTTABLES 0 #define CONFIG_AC3DSP 0 -#define CONFIG_ADTS_HEADER 0 #define CONFIG_AUDIO_FRAME_QUEUE 0 #define CONFIG_AUDIODSP 0 #define CONFIG_BLOCKDSP 0 #define CONFIG_BSWAPDSP 0 #define CONFIG_CABAC 0 -#define CONFIG_CBS 0 -#define CONFIG_CBS_H264 0 -#define CONFIG_CBS_H265 0 -#define CONFIG_CBS_MPEG2 0 -#define CONFIG_CBS_VP9 0 #define CONFIG_DIRAC_PARSE 0 -#define CONFIG_DNN 0 #define CONFIG_DVPROFILE 0 #define CONFIG_EXIF 0 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 +#define CONFIG_FAANDCT 0 +#define CONFIG_FAANIDCT 0 +#define CONFIG_FDCTDSP 0 #define CONFIG_FLACDSP 1 #define CONFIG_FMTCONVERT 0 +#define CONFIG_FRAME_THREAD_ENCODER 0 #define CONFIG_G722DSP 0 #define CONFIG_GOLOMB 0 #define CONFIG_GPLV3 0 @@ -605,7 +607,7 @@ #define CONFIG_HUFFMAN 0 #define CONFIG_HUFFYUVDSP 0 #define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 +#define CONFIG_IDCTDSP 0 #define CONFIG_IIRFILTER 0 #define CONFIG_MDCT15 0 #define CONFIG_INTRAX8 0 @@ -632,7 +634,6 @@ #define CONFIG_QSV 0 #define CONFIG_QSVDEC 0 #define CONFIG_QSVENC 0 -#define CONFIG_QSVVPP 0 #define CONFIG_RANGECODER 0 #define CONFIG_RIFFDEC 0 #define CONFIG_RIFFENC 0 @@ -656,10 +657,10 @@ #define CONFIG_WMA_FREQS 0 #define CONFIG_WMV2DSP 0 #define CONFIG_NULL_BSF 1 -#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1 #define CONFIG_VP8_DECODER 1 #define CONFIG_VP9_DECODER 1 #define CONFIG_FLAC_DECODER 1 +#define CONFIG_FLAC_PARSER 0 #define CONFIG_VP8_PARSER 1 #define CONFIG_VP9_PARSER 1 #endif /* FFMPEG_CONFIG_H */ diff --git a/media/ffvpx/defaults_disabled.asm b/media/ffvpx/defaults_disabled.asm index 220a11f3d..a9fde4c52 100644 --- a/media/ffvpx/defaults_disabled.asm +++ b/media/ffvpx/defaults_disabled.asm @@ -1,40 +1,402 @@ -%define CONFIG_A64MULTI5_ENCODER 0 -%define CONFIG_A64MULTI_ENCODER 0 -%define CONFIG_A64_MUXER 0 -%define CONFIG_AAC_ADTSTOASC_BSF 0 -%define CONFIG_AAC_AT_DECODER 0 -%define CONFIG_AAC_AT_ENCODER 0 +%define CONFIG_ENCODERS 0 +%define CONFIG_HWACCELS 0 +%define CONFIG_INDEVS 0 +%define CONFIG_OUTDEVS 0 +%define CONFIG_FILTERS 0 +%define CONFIG_DEMUXERS 0 +%define CONFIG_MUXERS 0 +%define CONFIG_PROTOCOLS 0 +%define CONFIG_FRAME_THREAD_ENCODER 0 +%define CONFIG_AASC_DECODER 0 +%define CONFIG_AIC_DECODER 0 +%define CONFIG_ALIAS_PIX_DECODER 0 +%define CONFIG_AMV_DECODER 0 +%define CONFIG_ANM_DECODER 0 +%define CONFIG_ANSI_DECODER 0 +%define CONFIG_APNG_DECODER 0 +%define CONFIG_ASV1_DECODER 0 +%define CONFIG_ASV2_DECODER 0 +%define CONFIG_AURA_DECODER 0 +%define CONFIG_AURA2_DECODER 0 +%define CONFIG_AVRP_DECODER 0 +%define CONFIG_AVRN_DECODER 0 +%define CONFIG_AVS_DECODER 0 +%define CONFIG_AVUI_DECODER 0 +%define CONFIG_AYUV_DECODER 0 +%define CONFIG_BETHSOFTVID_DECODER 0 +%define CONFIG_BFI_DECODER 0 +%define CONFIG_BINK_DECODER 0 +%define CONFIG_BMP_DECODER 0 +%define CONFIG_BMV_VIDEO_DECODER 0 +%define CONFIG_BRENDER_PIX_DECODER 0 +%define CONFIG_C93_DECODER 0 +%define CONFIG_CAVS_DECODER 0 +%define CONFIG_CDGRAPHICS_DECODER 0 +%define CONFIG_CDXL_DECODER 0 +%define CONFIG_CFHD_DECODER 0 +%define CONFIG_CINEPAK_DECODER 0 +%define CONFIG_CLEARVIDEO_DECODER 0 +%define CONFIG_CLJR_DECODER 0 +%define CONFIG_CLLC_DECODER 0 +%define CONFIG_COMFORTNOISE_DECODER 0 +%define CONFIG_CPIA_DECODER 0 +%define CONFIG_CSCD_DECODER 0 +%define CONFIG_CYUV_DECODER 0 +%define CONFIG_DDS_DECODER 0 +%define CONFIG_DFA_DECODER 0 +%define CONFIG_DIRAC_DECODER 0 +%define CONFIG_DNXHD_DECODER 0 +%define CONFIG_DPX_DECODER 0 +%define CONFIG_DSICINVIDEO_DECODER 0 +%define CONFIG_DVAUDIO_DECODER 0 +%define CONFIG_DVVIDEO_DECODER 0 +%define CONFIG_DXA_DECODER 0 +%define CONFIG_DXTORY_DECODER 0 +%define CONFIG_DXV_DECODER 0 +%define CONFIG_EACMV_DECODER 0 +%define CONFIG_EAMAD_DECODER 0 +%define CONFIG_EATGQ_DECODER 0 +%define CONFIG_EATGV_DECODER 0 +%define CONFIG_EATQI_DECODER 0 +%define CONFIG_EIGHTBPS_DECODER 0 +%define CONFIG_EIGHTSVX_EXP_DECODER 0 +%define CONFIG_EIGHTSVX_FIB_DECODER 0 +%define CONFIG_ESCAPE124_DECODER 0 +%define CONFIG_ESCAPE130_DECODER 0 +%define CONFIG_EXR_DECODER 0 +%define CONFIG_FFV1_DECODER 0 +%define CONFIG_FFVHUFF_DECODER 0 +%define CONFIG_FIC_DECODER 0 +%define CONFIG_FITS_DECODER 0 +%define CONFIG_FLASHSV_DECODER 0 +%define CONFIG_FLASHSV2_DECODER 0 +%define CONFIG_FLIC_DECODER 0 +%define CONFIG_FLV_DECODER 0 +%define CONFIG_FMVC_DECODER 0 +%define CONFIG_FOURXM_DECODER 0 +%define CONFIG_FRAPS_DECODER 0 +%define CONFIG_FRWU_DECODER 0 +%define CONFIG_G2M_DECODER 0 +%define CONFIG_GDV_DECODER 0 +%define CONFIG_GIF_DECODER 0 +%define CONFIG_H261_DECODER 0 +%define CONFIG_H263_DECODER 0 +%define CONFIG_H263I_DECODER 0 +%define CONFIG_H263P_DECODER 0 +%define CONFIG_H263_V4L2M2M_DECODER 0 +%define CONFIG_H264_DECODER 0 +%define CONFIG_H264_CRYSTALHD_DECODER 0 +%define CONFIG_H264_V4L2M2M_DECODER 0 +%define CONFIG_H264_MEDIACODEC_DECODER 0 +%define CONFIG_H264_MMAL_DECODER 0 +%define CONFIG_H264_QSV_DECODER 0 +%define CONFIG_H264_RKMPP_DECODER 0 +%define CONFIG_H264_VDA_DECODER 0 +%define CONFIG_H264_VDPAU_DECODER 0 +%define CONFIG_HAP_DECODER 0 +%define CONFIG_HEVC_DECODER 0 +%define CONFIG_HEVC_QSV_DECODER 0 +%define CONFIG_HEVC_RKMPP_DECODER 0 +%define CONFIG_HEVC_V4L2M2M_DECODER 0 +%define CONFIG_HNM4_VIDEO_DECODER 0 +%define CONFIG_HQ_HQA_DECODER 0 +%define CONFIG_HQX_DECODER 0 +%define CONFIG_HUFFYUV_DECODER 0 +%define CONFIG_IDCIN_DECODER 0 +%define CONFIG_IFF_ILBM_DECODER 0 +%define CONFIG_INDEO2_DECODER 0 +%define CONFIG_INDEO3_DECODER 0 +%define CONFIG_INDEO4_DECODER 0 +%define CONFIG_INDEO5_DECODER 0 +%define CONFIG_INTERPLAY_VIDEO_DECODER 0 +%define CONFIG_JPEG2000_DECODER 0 +%define CONFIG_JPEGLS_DECODER 0 +%define CONFIG_JV_DECODER 0 +%define CONFIG_KGV1_DECODER 0 +%define CONFIG_KMVC_DECODER 0 +%define CONFIG_LAGARITH_DECODER 0 +%define CONFIG_LOCO_DECODER 0 +%define CONFIG_M101_DECODER 0 +%define CONFIG_MAGICYUV_DECODER 0 +%define CONFIG_MDEC_DECODER 0 +%define CONFIG_MIMIC_DECODER 0 +%define CONFIG_MJPEG_DECODER 0 +%define CONFIG_MJPEGB_DECODER 0 +%define CONFIG_MMVIDEO_DECODER 0 +%define CONFIG_MOTIONPIXELS_DECODER 0 +%define CONFIG_MPEG_XVMC_DECODER 0 +%define CONFIG_MPEG1VIDEO_DECODER 0 +%define CONFIG_MPEG2VIDEO_DECODER 0 +%define CONFIG_MPEG4_DECODER 0 +%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +%define CONFIG_MPEG4_V4L2M2M_DECODER 0 +%define CONFIG_MPEG4_MMAL_DECODER 0 +%define CONFIG_MPEG4_VDPAU_DECODER 0 +%define CONFIG_MPEGVIDEO_DECODER 0 +%define CONFIG_MPEG_VDPAU_DECODER 0 +%define CONFIG_MPEG1_VDPAU_DECODER 0 +%define CONFIG_MPEG1_V4L2M2M_DECODER 0 +%define CONFIG_MPEG2_MMAL_DECODER 0 +%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +%define CONFIG_MPEG2_V4L2M2M_DECODER 0 +%define CONFIG_MPEG2_QSV_DECODER 0 +%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 +%define CONFIG_MSA1_DECODER 0 +%define CONFIG_MSCC_DECODER 0 +%define CONFIG_MSMPEG4V1_DECODER 0 +%define CONFIG_MSMPEG4V2_DECODER 0 +%define CONFIG_MSMPEG4V3_DECODER 0 +%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +%define CONFIG_MSRLE_DECODER 0 +%define CONFIG_MSS1_DECODER 0 +%define CONFIG_MSS2_DECODER 0 +%define CONFIG_MSVIDEO1_DECODER 0 +%define CONFIG_MSZH_DECODER 0 +%define CONFIG_MTS2_DECODER 0 +%define CONFIG_MVC1_DECODER 0 +%define CONFIG_MVC2_DECODER 0 +%define CONFIG_MXPEG_DECODER 0 +%define CONFIG_NUV_DECODER 0 +%define CONFIG_PAF_VIDEO_DECODER 0 +%define CONFIG_PAM_DECODER 0 +%define CONFIG_PBM_DECODER 0 +%define CONFIG_PCX_DECODER 0 +%define CONFIG_PGM_DECODER 0 +%define CONFIG_PGMYUV_DECODER 0 +%define CONFIG_PICTOR_DECODER 0 +%define CONFIG_PIXLET_DECODER 0 +%define CONFIG_PNG_DECODER 0 +%define CONFIG_PPM_DECODER 0 +%define CONFIG_PRORES_DECODER 0 +%define CONFIG_PRORES_LGPL_DECODER 0 +%define CONFIG_PSD_DECODER 0 +%define CONFIG_PTX_DECODER 0 +%define CONFIG_QDRAW_DECODER 0 +%define CONFIG_QPEG_DECODER 0 +%define CONFIG_QTRLE_DECODER 0 +%define CONFIG_R10K_DECODER 0 +%define CONFIG_R210_DECODER 0 +%define CONFIG_RAWVIDEO_DECODER 0 +%define CONFIG_RL2_DECODER 0 +%define CONFIG_ROQ_DECODER 0 +%define CONFIG_RPZA_DECODER 0 +%define CONFIG_RSCC_DECODER 0 +%define CONFIG_RV10_DECODER 0 +%define CONFIG_RV20_DECODER 0 +%define CONFIG_RV30_DECODER 0 +%define CONFIG_RV40_DECODER 0 +%define CONFIG_S302M_DECODER 0 +%define CONFIG_SANM_DECODER 0 +%define CONFIG_SCPR_DECODER 0 +%define CONFIG_SCREENPRESSO_DECODER 0 +%define CONFIG_SDX2_DPCM_DECODER 0 +%define CONFIG_SGI_DECODER 0 +%define CONFIG_SGIRLE_DECODER 0 +%define CONFIG_SHEERVIDEO_DECODER 0 +%define CONFIG_SMACKER_DECODER 0 +%define CONFIG_SMC_DECODER 0 +%define CONFIG_SMVJPEG_DECODER 0 +%define CONFIG_SNOW_DECODER 0 +%define CONFIG_SP5X_DECODER 0 +%define CONFIG_SPEEDHQ_DECODER 0 +%define CONFIG_SRGC_DECODER 0 +%define CONFIG_SUNRAST_DECODER 0 +%define CONFIG_SVQ1_DECODER 0 +%define CONFIG_SVQ3_DECODER 0 +%define CONFIG_TARGA_DECODER 0 +%define CONFIG_TARGA_Y216_DECODER 0 +%define CONFIG_TDSC_DECODER 0 +%define CONFIG_THEORA_DECODER 0 +%define CONFIG_THP_DECODER 0 +%define CONFIG_TIERTEXSEQVIDEO_DECODER 0 +%define CONFIG_TIFF_DECODER 0 +%define CONFIG_TMV_DECODER 0 +%define CONFIG_TRUEMOTION1_DECODER 0 +%define CONFIG_TRUEMOTION2_DECODER 0 +%define CONFIG_TRUEMOTION2RT_DECODER 0 +%define CONFIG_TSCC_DECODER 0 +%define CONFIG_TSCC2_DECODER 0 +%define CONFIG_TXD_DECODER 0 +%define CONFIG_ULTI_DECODER 0 +%define CONFIG_UTVIDEO_DECODER 0 +%define CONFIG_V210_DECODER 0 +%define CONFIG_V210X_DECODER 0 +%define CONFIG_V308_DECODER 0 +%define CONFIG_V408_DECODER 0 +%define CONFIG_V410_DECODER 0 +%define CONFIG_VB_DECODER 0 +%define CONFIG_VBLE_DECODER 0 +%define CONFIG_VC1_DECODER 0 +%define CONFIG_VC1_CRYSTALHD_DECODER 0 +%define CONFIG_VC1_VDPAU_DECODER 0 +%define CONFIG_VC1IMAGE_DECODER 0 +%define CONFIG_VC1_MMAL_DECODER 0 +%define CONFIG_VC1_QSV_DECODER 0 +%define CONFIG_VC1_V4L2M2M_DECODER 0 +%define CONFIG_VCR1_DECODER 0 +%define CONFIG_VMDVIDEO_DECODER 0 +%define CONFIG_VMNC_DECODER 0 +%define CONFIG_VP3_DECODER 0 +%define CONFIG_VP5_DECODER 0 +%define CONFIG_VP6_DECODER 0 +%define CONFIG_VP6A_DECODER 0 +%define CONFIG_VP6F_DECODER 0 +%define CONFIG_VP7_DECODER 0 +%define CONFIG_VP8_RKMPP_DECODER 0 +%define CONFIG_VP8_V4L2M2M_DECODER 0 +%define CONFIG_VP9_RKMPP_DECODER 0 +%define CONFIG_VP9_V4L2M2M_DECODER 0 +%define CONFIG_VQA_DECODER 0 +%define CONFIG_BITPACKED_DECODER 0 +%define CONFIG_WEBP_DECODER 0 +%define CONFIG_WRAPPED_AVFRAME_DECODER 0 +%define CONFIG_WMV1_DECODER 0 +%define CONFIG_WMV2_DECODER 0 +%define CONFIG_WMV3_DECODER 0 +%define CONFIG_WMV3_CRYSTALHD_DECODER 0 +%define CONFIG_WMV3_VDPAU_DECODER 0 +%define CONFIG_WMV3IMAGE_DECODER 0 +%define CONFIG_WNV1_DECODER 0 +%define CONFIG_XAN_WC3_DECODER 0 +%define CONFIG_XAN_WC4_DECODER 0 +%define CONFIG_XBM_DECODER 0 +%define CONFIG_XFACE_DECODER 0 +%define CONFIG_XL_DECODER 0 +%define CONFIG_XPM_DECODER 0 +%define CONFIG_XWD_DECODER 0 +%define CONFIG_Y41P_DECODER 0 +%define CONFIG_YLC_DECODER 0 +%define CONFIG_YOP_DECODER 0 +%define CONFIG_YUV4_DECODER 0 +%define CONFIG_ZERO12V_DECODER 0 +%define CONFIG_ZEROCODEC_DECODER 0 +%define CONFIG_ZLIB_DECODER 0 +%define CONFIG_ZMBV_DECODER 0 %define CONFIG_AAC_DECODER 0 -%define CONFIG_AAC_DEMUXER 0 -%define CONFIG_AAC_ENCODER 0 %define CONFIG_AAC_FIXED_DECODER 0 %define CONFIG_AAC_LATM_DECODER 0 -%define CONFIG_AAC_LATM_PARSER 0 -%define CONFIG_AAC_PARSER 0 -%define CONFIG_AASC_DECODER 0 -%define CONFIG_AA_DEMUXER 0 -%define CONFIG_ABENCH_FILTER 0 -%define CONFIG_ABITSCOPE_FILTER 0 -%define CONFIG_AC3_AT_DECODER 0 %define CONFIG_AC3_DECODER 0 -%define CONFIG_AC3_DEMUXER 0 -%define CONFIG_AC3_ENCODER 0 %define CONFIG_AC3_FIXED_DECODER 0 -%define CONFIG_AC3_FIXED_ENCODER 0 -%define CONFIG_AC3_MUXER 0 -%define CONFIG_AC3_PARSER 0 -%define CONFIG_ACM_DEMUXER 0 -%define CONFIG_ACOMPRESSOR_FILTER 0 -%define CONFIG_ACONTRAST_FILTER 0 -%define CONFIG_ACOPY_FILTER 0 -%define CONFIG_ACROSSFADE_FILTER 0 -%define CONFIG_ACRUSHER_FILTER 0 -%define CONFIG_ACT_DEMUXER 0 -%define CONFIG_ADELAY_FILTER 0 -%define CONFIG_ADF_DEMUXER 0 +%define CONFIG_ALAC_DECODER 0 +%define CONFIG_ALS_DECODER 0 +%define CONFIG_AMRNB_DECODER 0 +%define CONFIG_AMRWB_DECODER 0 +%define CONFIG_APE_DECODER 0 +%define CONFIG_ATRAC1_DECODER 0 +%define CONFIG_ATRAC3_DECODER 0 +%define CONFIG_ATRAC3AL_DECODER 0 +%define CONFIG_ATRAC3P_DECODER 0 +%define CONFIG_ATRAC3PAL_DECODER 0 +%define CONFIG_BINKAUDIO_DCT_DECODER 0 +%define CONFIG_BINKAUDIO_RDFT_DECODER 0 +%define CONFIG_BMV_AUDIO_DECODER 0 +%define CONFIG_COOK_DECODER 0 +%define CONFIG_DCA_DECODER 0 +%define CONFIG_DOLBY_E_DECODER 0 +%define CONFIG_DSD_LSBF_DECODER 0 +%define CONFIG_DSD_MSBF_DECODER 0 +%define CONFIG_DSD_LSBF_PLANAR_DECODER 0 +%define CONFIG_DSD_MSBF_PLANAR_DECODER 0 +%define CONFIG_DSICINAUDIO_DECODER 0 +%define CONFIG_DSS_SP_DECODER 0 +%define CONFIG_DST_DECODER 0 +%define CONFIG_EAC3_DECODER 0 +%define CONFIG_EVRC_DECODER 0 +%define CONFIG_FFWAVESYNTH_DECODER 0 +%define CONFIG_G723_1_DECODER 0 +%define CONFIG_G729_DECODER 0 +%define CONFIG_GSM_DECODER 0 +%define CONFIG_GSM_MS_DECODER 0 +%define CONFIG_IAC_DECODER 0 +%define CONFIG_IMC_DECODER 0 +%define CONFIG_INTERPLAY_ACM_DECODER 0 +%define CONFIG_MACE3_DECODER 0 +%define CONFIG_MACE6_DECODER 0 +%define CONFIG_METASOUND_DECODER 0 +%define CONFIG_MLP_DECODER 0 +%define CONFIG_MP1_DECODER 0 +%define CONFIG_MP1FLOAT_DECODER 0 +%define CONFIG_MP2_DECODER 0 +%define CONFIG_MP2FLOAT_DECODER 0 +%define CONFIG_MP3_DECODER 0 +%define CONFIG_MP3FLOAT_DECODER 0 +%define CONFIG_MP3ADU_DECODER 0 +%define CONFIG_MP3ADUFLOAT_DECODER 0 +%define CONFIG_MP3ON4_DECODER 0 +%define CONFIG_MP3ON4FLOAT_DECODER 0 +%define CONFIG_MPC7_DECODER 0 +%define CONFIG_MPC8_DECODER 0 +%define CONFIG_NELLYMOSER_DECODER 0 +%define CONFIG_ON2AVC_DECODER 0 +%define CONFIG_OPUS_DECODER 0 +%define CONFIG_PAF_AUDIO_DECODER 0 +%define CONFIG_QCELP_DECODER 0 +%define CONFIG_QDM2_DECODER 0 +%define CONFIG_QDMC_DECODER 0 +%define CONFIG_RA_144_DECODER 0 +%define CONFIG_RA_288_DECODER 0 +%define CONFIG_RALF_DECODER 0 +%define CONFIG_SHORTEN_DECODER 0 +%define CONFIG_SIPR_DECODER 0 +%define CONFIG_SMACKAUD_DECODER 0 +%define CONFIG_SONIC_DECODER 0 +%define CONFIG_TAK_DECODER 0 +%define CONFIG_TRUEHD_DECODER 0 +%define CONFIG_TRUESPEECH_DECODER 0 +%define CONFIG_TTA_DECODER 0 +%define CONFIG_TWINVQ_DECODER 0 +%define CONFIG_VMDAUDIO_DECODER 0 +%define CONFIG_VORBIS_DECODER 0 +%define CONFIG_WAVPACK_DECODER 0 +%define CONFIG_WMALOSSLESS_DECODER 0 +%define CONFIG_WMAPRO_DECODER 0 +%define CONFIG_WMAV1_DECODER 0 +%define CONFIG_WMAV2_DECODER 0 +%define CONFIG_WMAVOICE_DECODER 0 +%define CONFIG_WS_SND1_DECODER 0 +%define CONFIG_XMA1_DECODER 0 +%define CONFIG_XMA2_DECODER 0 +%define CONFIG_PCM_ALAW_DECODER 0 +%define CONFIG_PCM_BLURAY_DECODER 0 +%define CONFIG_PCM_DVD_DECODER 0 +%define CONFIG_PCM_F16LE_DECODER 0 +%define CONFIG_PCM_F24LE_DECODER 0 +%define CONFIG_PCM_F32BE_DECODER 0 +%define CONFIG_PCM_F32LE_DECODER 0 +%define CONFIG_PCM_F64BE_DECODER 0 +%define CONFIG_PCM_F64LE_DECODER 0 +%define CONFIG_PCM_LXF_DECODER 0 +%define CONFIG_PCM_MULAW_DECODER 0 +%define CONFIG_PCM_S8_DECODER 0 +%define CONFIG_PCM_S8_PLANAR_DECODER 0 +%define CONFIG_PCM_S16BE_DECODER 0 +%define CONFIG_PCM_S16BE_PLANAR_DECODER 0 +%define CONFIG_PCM_S16LE_DECODER 0 +%define CONFIG_PCM_S16LE_PLANAR_DECODER 0 +%define CONFIG_PCM_S24BE_DECODER 0 +%define CONFIG_PCM_S24DAUD_DECODER 0 +%define CONFIG_PCM_S24LE_DECODER 0 +%define CONFIG_PCM_S24LE_PLANAR_DECODER 0 +%define CONFIG_PCM_S32BE_DECODER 0 +%define CONFIG_PCM_S32LE_DECODER 0 +%define CONFIG_PCM_S32LE_PLANAR_DECODER 0 +%define CONFIG_PCM_S64BE_DECODER 0 +%define CONFIG_PCM_S64LE_DECODER 0 +%define CONFIG_PCM_U8_DECODER 0 +%define CONFIG_PCM_U16BE_DECODER 0 +%define CONFIG_PCM_U16LE_DECODER 0 +%define CONFIG_PCM_U24BE_DECODER 0 +%define CONFIG_PCM_U24LE_DECODER 0 +%define CONFIG_PCM_U32BE_DECODER 0 +%define CONFIG_PCM_U32LE_DECODER 0 +%define CONFIG_PCM_ZORK_DECODER 0 +%define CONFIG_GREMLIN_DPCM_DECODER 0 +%define CONFIG_INTERPLAY_DPCM_DECODER 0 +%define CONFIG_ROQ_DPCM_DECODER 0 +%define CONFIG_SOL_DPCM_DECODER 0 +%define CONFIG_XAN_DPCM_DECODER 0 %define CONFIG_ADPCM_4XM_DECODER 0 %define CONFIG_ADPCM_ADX_DECODER 0 -%define CONFIG_ADPCM_ADX_ENCODER 0 %define CONFIG_ADPCM_AFC_DECODER 0 %define CONFIG_ADPCM_AICA_DECODER 0 %define CONFIG_ADPCM_CT_DECODER 0 @@ -46,11 +408,8 @@ %define CONFIG_ADPCM_EA_R3_DECODER 0 %define CONFIG_ADPCM_EA_XAS_DECODER 0 %define CONFIG_ADPCM_G722_DECODER 0 -%define CONFIG_ADPCM_G722_ENCODER 0 -%define CONFIG_ADPCM_G726LE_DECODER 0 -%define CONFIG_ADPCM_G726LE_ENCODER 0 %define CONFIG_ADPCM_G726_DECODER 0 -%define CONFIG_ADPCM_G726_ENCODER 0 +%define CONFIG_ADPCM_G726LE_DECODER 0 %define CONFIG_ADPCM_IMA_AMV_DECODER 0 %define CONFIG_ADPCM_IMA_APC_DECODER 0 %define CONFIG_ADPCM_IMA_DAT4_DECODER 0 @@ -60,114 +419,604 @@ %define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 %define CONFIG_ADPCM_IMA_ISS_DECODER 0 %define CONFIG_ADPCM_IMA_OKI_DECODER 0 -%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 %define CONFIG_ADPCM_IMA_QT_DECODER 0 -%define CONFIG_ADPCM_IMA_QT_ENCODER 0 %define CONFIG_ADPCM_IMA_RAD_DECODER 0 %define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 %define CONFIG_ADPCM_IMA_WAV_DECODER 0 -%define CONFIG_ADPCM_IMA_WAV_ENCODER 0 %define CONFIG_ADPCM_IMA_WS_DECODER 0 %define CONFIG_ADPCM_MS_DECODER 0 -%define CONFIG_ADPCM_MS_ENCODER 0 %define CONFIG_ADPCM_MTAF_DECODER 0 %define CONFIG_ADPCM_PSX_DECODER 0 %define CONFIG_ADPCM_SBPRO_2_DECODER 0 %define CONFIG_ADPCM_SBPRO_3_DECODER 0 %define CONFIG_ADPCM_SBPRO_4_DECODER 0 %define CONFIG_ADPCM_SWF_DECODER 0 -%define CONFIG_ADPCM_SWF_ENCODER 0 %define CONFIG_ADPCM_THP_DECODER 0 %define CONFIG_ADPCM_THP_LE_DECODER 0 %define CONFIG_ADPCM_VIMA_DECODER 0 %define CONFIG_ADPCM_XA_DECODER 0 %define CONFIG_ADPCM_YAMAHA_DECODER 0 -%define CONFIG_ADPCM_YAMAHA_ENCODER 0 +%define CONFIG_SSA_DECODER 0 +%define CONFIG_ASS_DECODER 0 +%define CONFIG_CCAPTION_DECODER 0 +%define CONFIG_DVBSUB_DECODER 0 +%define CONFIG_DVDSUB_DECODER 0 +%define CONFIG_JACOSUB_DECODER 0 +%define CONFIG_MICRODVD_DECODER 0 +%define CONFIG_MOVTEXT_DECODER 0 +%define CONFIG_MPL2_DECODER 0 +%define CONFIG_PGSSUB_DECODER 0 +%define CONFIG_PJS_DECODER 0 +%define CONFIG_REALTEXT_DECODER 0 +%define CONFIG_SAMI_DECODER 0 +%define CONFIG_SRT_DECODER 0 +%define CONFIG_STL_DECODER 0 +%define CONFIG_SUBRIP_DECODER 0 +%define CONFIG_SUBVIEWER_DECODER 0 +%define CONFIG_SUBVIEWER1_DECODER 0 +%define CONFIG_TEXT_DECODER 0 +%define CONFIG_VPLAYER_DECODER 0 +%define CONFIG_WEBVTT_DECODER 0 +%define CONFIG_XSUB_DECODER 0 +%define CONFIG_AAC_AT_DECODER 0 +%define CONFIG_AC3_AT_DECODER 0 +%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 +%define CONFIG_ALAC_AT_DECODER 0 +%define CONFIG_AMR_NB_AT_DECODER 0 +%define CONFIG_EAC3_AT_DECODER 0 +%define CONFIG_GSM_MS_AT_DECODER 0 +%define CONFIG_ILBC_AT_DECODER 0 +%define CONFIG_MP1_AT_DECODER 0 +%define CONFIG_MP2_AT_DECODER 0 +%define CONFIG_MP3_AT_DECODER 0 +%define CONFIG_PCM_ALAW_AT_DECODER 0 +%define CONFIG_PCM_MULAW_AT_DECODER 0 +%define CONFIG_QDMC_AT_DECODER 0 +%define CONFIG_QDM2_AT_DECODER 0 +%define CONFIG_LIBCELT_DECODER 0 +%define CONFIG_LIBFDK_AAC_DECODER 0 +%define CONFIG_LIBGSM_DECODER 0 +%define CONFIG_LIBGSM_MS_DECODER 0 +%define CONFIG_LIBILBC_DECODER 0 +%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 +%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 +%define CONFIG_LIBOPENJPEG_DECODER 0 +%define CONFIG_LIBOPUS_DECODER 0 +%define CONFIG_LIBRSVG_DECODER 0 +%define CONFIG_LIBSPEEX_DECODER 0 +%define CONFIG_LIBVORBIS_DECODER 0 +%define CONFIG_LIBVPX_VP8_DECODER 0 +%define CONFIG_LIBVPX_VP9_DECODER 0 +%define CONFIG_LIBZVBI_TELETEXT_DECODER 0 +%define CONFIG_BINTEXT_DECODER 0 +%define CONFIG_XBIN_DECODER 0 +%define CONFIG_IDF_DECODER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H264_CUVID_DECODER 0 +%define CONFIG_HEVC_CUVID_DECODER 0 +%define CONFIG_HEVC_MEDIACODEC_DECODER 0 +%define CONFIG_MJPEG_CUVID_DECODER 0 +%define CONFIG_MPEG1_CUVID_DECODER 0 +%define CONFIG_MPEG2_CUVID_DECODER 0 +%define CONFIG_MPEG4_CUVID_DECODER 0 +%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 +%define CONFIG_VC1_CUVID_DECODER 0 +%define CONFIG_VP8_CUVID_DECODER 0 +%define CONFIG_VP8_MEDIACODEC_DECODER 0 +%define CONFIG_VP8_QSV_DECODER 0 +%define CONFIG_VP9_CUVID_DECODER 0 +%define CONFIG_VP9_MEDIACODEC_DECODER 0 +%define CONFIG_AA_DEMUXER 0 +%define CONFIG_AAC_DEMUXER 0 +%define CONFIG_AC3_DEMUXER 0 +%define CONFIG_ACM_DEMUXER 0 +%define CONFIG_ACT_DEMUXER 0 +%define CONFIG_ADF_DEMUXER 0 %define CONFIG_ADP_DEMUXER 0 -%define CONFIG_ADRAWGRAPH_FILTER 0 %define CONFIG_ADS_DEMUXER 0 -%define CONFIG_ADTS_MUXER 0 %define CONFIG_ADX_DEMUXER 0 -%define CONFIG_ADX_MUXER 0 -%define CONFIG_ADX_PARSER 0 %define CONFIG_AEA_DEMUXER 0 +%define CONFIG_AFC_DEMUXER 0 +%define CONFIG_AIFF_DEMUXER 0 +%define CONFIG_AIX_DEMUXER 0 +%define CONFIG_AMR_DEMUXER 0 +%define CONFIG_ANM_DEMUXER 0 +%define CONFIG_APC_DEMUXER 0 +%define CONFIG_APE_DEMUXER 0 +%define CONFIG_APNG_DEMUXER 0 +%define CONFIG_AQTITLE_DEMUXER 0 +%define CONFIG_ASF_DEMUXER 0 +%define CONFIG_ASF_O_DEMUXER 0 +%define CONFIG_ASS_DEMUXER 0 +%define CONFIG_AST_DEMUXER 0 +%define CONFIG_AU_DEMUXER 0 +%define CONFIG_AVI_DEMUXER 0 +%define CONFIG_AVISYNTH_DEMUXER 0 +%define CONFIG_AVR_DEMUXER 0 +%define CONFIG_AVS_DEMUXER 0 +%define CONFIG_BETHSOFTVID_DEMUXER 0 +%define CONFIG_BFI_DEMUXER 0 +%define CONFIG_BINTEXT_DEMUXER 0 +%define CONFIG_BINK_DEMUXER 0 +%define CONFIG_BIT_DEMUXER 0 +%define CONFIG_BMV_DEMUXER 0 +%define CONFIG_BFSTM_DEMUXER 0 +%define CONFIG_BRSTM_DEMUXER 0 +%define CONFIG_BOA_DEMUXER 0 +%define CONFIG_C93_DEMUXER 0 +%define CONFIG_CAF_DEMUXER 0 +%define CONFIG_CAVSVIDEO_DEMUXER 0 +%define CONFIG_CDG_DEMUXER 0 +%define CONFIG_CDXL_DEMUXER 0 +%define CONFIG_CINE_DEMUXER 0 +%define CONFIG_CONCAT_DEMUXER 0 +%define CONFIG_DASH_DEMUXER 0 +%define CONFIG_DATA_DEMUXER 0 +%define CONFIG_DAUD_DEMUXER 0 +%define CONFIG_DCSTR_DEMUXER 0 +%define CONFIG_DFA_DEMUXER 0 +%define CONFIG_DIRAC_DEMUXER 0 +%define CONFIG_DNXHD_DEMUXER 0 +%define CONFIG_DSF_DEMUXER 0 +%define CONFIG_DSICIN_DEMUXER 0 +%define CONFIG_DSS_DEMUXER 0 +%define CONFIG_DTS_DEMUXER 0 +%define CONFIG_DTSHD_DEMUXER 0 +%define CONFIG_DV_DEMUXER 0 +%define CONFIG_DVBSUB_DEMUXER 0 +%define CONFIG_DVBTXT_DEMUXER 0 +%define CONFIG_DXA_DEMUXER 0 +%define CONFIG_EA_DEMUXER 0 +%define CONFIG_EA_CDATA_DEMUXER 0 +%define CONFIG_EAC3_DEMUXER 0 +%define CONFIG_EPAF_DEMUXER 0 +%define CONFIG_FFM_DEMUXER 0 +%define CONFIG_FFMETADATA_DEMUXER 0 +%define CONFIG_FILMSTRIP_DEMUXER 0 +%define CONFIG_FITS_DEMUXER 0 +%define CONFIG_FLAC_DEMUXER 0 +%define CONFIG_FLIC_DEMUXER 0 +%define CONFIG_FLV_DEMUXER 0 +%define CONFIG_LIVE_FLV_DEMUXER 0 +%define CONFIG_FOURXM_DEMUXER 0 +%define CONFIG_FRM_DEMUXER 0 +%define CONFIG_FSB_DEMUXER 0 +%define CONFIG_G722_DEMUXER 0 +%define CONFIG_G723_1_DEMUXER 0 +%define CONFIG_G726_DEMUXER 0 +%define CONFIG_G726LE_DEMUXER 0 +%define CONFIG_G729_DEMUXER 0 +%define CONFIG_GDV_DEMUXER 0 +%define CONFIG_GENH_DEMUXER 0 +%define CONFIG_GIF_DEMUXER 0 +%define CONFIG_GSM_DEMUXER 0 +%define CONFIG_GXF_DEMUXER 0 +%define CONFIG_H261_DEMUXER 0 +%define CONFIG_H263_DEMUXER 0 +%define CONFIG_H264_DEMUXER 0 +%define CONFIG_HEVC_DEMUXER 0 +%define CONFIG_HLS_DEMUXER 0 +%define CONFIG_HNM_DEMUXER 0 +%define CONFIG_ICO_DEMUXER 0 +%define CONFIG_IDCIN_DEMUXER 0 +%define CONFIG_IDF_DEMUXER 0 +%define CONFIG_IFF_DEMUXER 0 +%define CONFIG_ILBC_DEMUXER 0 +%define CONFIG_IMAGE2_DEMUXER 0 +%define CONFIG_IMAGE2PIPE_DEMUXER 0 +%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 +%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 +%define CONFIG_INGENIENT_DEMUXER 0 +%define CONFIG_IPMOVIE_DEMUXER 0 +%define CONFIG_IRCAM_DEMUXER 0 +%define CONFIG_ISS_DEMUXER 0 +%define CONFIG_IV8_DEMUXER 0 +%define CONFIG_IVF_DEMUXER 0 +%define CONFIG_IVR_DEMUXER 0 +%define CONFIG_JACOSUB_DEMUXER 0 +%define CONFIG_JV_DEMUXER 0 +%define CONFIG_LMLM4_DEMUXER 0 +%define CONFIG_LOAS_DEMUXER 0 +%define CONFIG_LRC_DEMUXER 0 +%define CONFIG_LVF_DEMUXER 0 +%define CONFIG_LXF_DEMUXER 0 +%define CONFIG_M4V_DEMUXER 0 +%define CONFIG_MATROSKA_DEMUXER 0 +%define CONFIG_MGSTS_DEMUXER 0 +%define CONFIG_MICRODVD_DEMUXER 0 +%define CONFIG_MJPEG_DEMUXER 0 +%define CONFIG_MJPEG_2000_DEMUXER 0 +%define CONFIG_MLP_DEMUXER 0 +%define CONFIG_MLV_DEMUXER 0 +%define CONFIG_MM_DEMUXER 0 +%define CONFIG_MMF_DEMUXER 0 +%define CONFIG_MOV_DEMUXER 0 +%define CONFIG_MP3_DEMUXER 0 +%define CONFIG_MPC_DEMUXER 0 +%define CONFIG_MPC8_DEMUXER 0 +%define CONFIG_MPEGPS_DEMUXER 0 +%define CONFIG_MPEGTS_DEMUXER 0 +%define CONFIG_MPEGTSRAW_DEMUXER 0 +%define CONFIG_MPEGVIDEO_DEMUXER 0 +%define CONFIG_MPJPEG_DEMUXER 0 +%define CONFIG_MPL2_DEMUXER 0 +%define CONFIG_MPSUB_DEMUXER 0 +%define CONFIG_MSF_DEMUXER 0 +%define CONFIG_MSNWC_TCP_DEMUXER 0 +%define CONFIG_MTAF_DEMUXER 0 +%define CONFIG_MTV_DEMUXER 0 +%define CONFIG_MUSX_DEMUXER 0 +%define CONFIG_MV_DEMUXER 0 +%define CONFIG_MVI_DEMUXER 0 +%define CONFIG_MXF_DEMUXER 0 +%define CONFIG_MXG_DEMUXER 0 +%define CONFIG_NC_DEMUXER 0 +%define CONFIG_NISTSPHERE_DEMUXER 0 +%define CONFIG_NSV_DEMUXER 0 +%define CONFIG_NUT_DEMUXER 0 +%define CONFIG_NUV_DEMUXER 0 +%define CONFIG_OGG_DEMUXER 0 +%define CONFIG_OMA_DEMUXER 0 +%define CONFIG_PAF_DEMUXER 0 +%define CONFIG_PCM_ALAW_DEMUXER 0 +%define CONFIG_PCM_MULAW_DEMUXER 0 +%define CONFIG_PCM_F64BE_DEMUXER 0 +%define CONFIG_PCM_F64LE_DEMUXER 0 +%define CONFIG_PCM_F32BE_DEMUXER 0 +%define CONFIG_PCM_F32LE_DEMUXER 0 +%define CONFIG_PCM_S32BE_DEMUXER 0 +%define CONFIG_PCM_S32LE_DEMUXER 0 +%define CONFIG_PCM_S24BE_DEMUXER 0 +%define CONFIG_PCM_S24LE_DEMUXER 0 +%define CONFIG_PCM_S16BE_DEMUXER 0 +%define CONFIG_PCM_S16LE_DEMUXER 0 +%define CONFIG_PCM_S8_DEMUXER 0 +%define CONFIG_PCM_U32BE_DEMUXER 0 +%define CONFIG_PCM_U32LE_DEMUXER 0 +%define CONFIG_PCM_U24BE_DEMUXER 0 +%define CONFIG_PCM_U24LE_DEMUXER 0 +%define CONFIG_PCM_U16BE_DEMUXER 0 +%define CONFIG_PCM_U16LE_DEMUXER 0 +%define CONFIG_PCM_U8_DEMUXER 0 +%define CONFIG_PJS_DEMUXER 0 +%define CONFIG_PMP_DEMUXER 0 +%define CONFIG_PVA_DEMUXER 0 +%define CONFIG_PVF_DEMUXER 0 +%define CONFIG_QCP_DEMUXER 0 +%define CONFIG_R3D_DEMUXER 0 +%define CONFIG_RAWVIDEO_DEMUXER 0 +%define CONFIG_REALTEXT_DEMUXER 0 +%define CONFIG_REDSPARK_DEMUXER 0 +%define CONFIG_RL2_DEMUXER 0 +%define CONFIG_RM_DEMUXER 0 +%define CONFIG_ROQ_DEMUXER 0 +%define CONFIG_RPL_DEMUXER 0 +%define CONFIG_RSD_DEMUXER 0 +%define CONFIG_RSO_DEMUXER 0 +%define CONFIG_RTP_DEMUXER 0 +%define CONFIG_RTSP_DEMUXER 0 +%define CONFIG_S337M_DEMUXER 0 +%define CONFIG_SAMI_DEMUXER 0 +%define CONFIG_SAP_DEMUXER 0 +%define CONFIG_SBG_DEMUXER 0 +%define CONFIG_SCC_DEMUXER 0 +%define CONFIG_SDP_DEMUXER 0 +%define CONFIG_SDR2_DEMUXER 0 +%define CONFIG_SDS_DEMUXER 0 +%define CONFIG_SDX_DEMUXER 0 +%define CONFIG_SEGAFILM_DEMUXER 0 +%define CONFIG_SHORTEN_DEMUXER 0 +%define CONFIG_SIFF_DEMUXER 0 +%define CONFIG_SLN_DEMUXER 0 +%define CONFIG_SMACKER_DEMUXER 0 +%define CONFIG_SMJPEG_DEMUXER 0 +%define CONFIG_SMUSH_DEMUXER 0 +%define CONFIG_SOL_DEMUXER 0 +%define CONFIG_SOX_DEMUXER 0 +%define CONFIG_SPDIF_DEMUXER 0 +%define CONFIG_SRT_DEMUXER 0 +%define CONFIG_STR_DEMUXER 0 +%define CONFIG_STL_DEMUXER 0 +%define CONFIG_SUBVIEWER1_DEMUXER 0 +%define CONFIG_SUBVIEWER_DEMUXER 0 +%define CONFIG_SUP_DEMUXER 0 +%define CONFIG_SVAG_DEMUXER 0 +%define CONFIG_SWF_DEMUXER 0 +%define CONFIG_TAK_DEMUXER 0 +%define CONFIG_TEDCAPTIONS_DEMUXER 0 +%define CONFIG_THP_DEMUXER 0 +%define CONFIG_THREEDOSTR_DEMUXER 0 +%define CONFIG_TIERTEXSEQ_DEMUXER 0 +%define CONFIG_TMV_DEMUXER 0 +%define CONFIG_TRUEHD_DEMUXER 0 +%define CONFIG_TTA_DEMUXER 0 +%define CONFIG_TXD_DEMUXER 0 +%define CONFIG_TTY_DEMUXER 0 +%define CONFIG_V210_DEMUXER 0 +%define CONFIG_V210X_DEMUXER 0 +%define CONFIG_VAG_DEMUXER 0 +%define CONFIG_VC1_DEMUXER 0 +%define CONFIG_VC1T_DEMUXER 0 +%define CONFIG_VIVO_DEMUXER 0 +%define CONFIG_VMD_DEMUXER 0 +%define CONFIG_VOBSUB_DEMUXER 0 +%define CONFIG_VOC_DEMUXER 0 +%define CONFIG_VPK_DEMUXER 0 +%define CONFIG_VPLAYER_DEMUXER 0 +%define CONFIG_VQF_DEMUXER 0 +%define CONFIG_W64_DEMUXER 0 +%define CONFIG_WAV_DEMUXER 0 +%define CONFIG_WC3_DEMUXER 0 +%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 +%define CONFIG_WEBVTT_DEMUXER 0 +%define CONFIG_WSAUD_DEMUXER 0 +%define CONFIG_WSD_DEMUXER 0 +%define CONFIG_WSVQA_DEMUXER 0 +%define CONFIG_WTV_DEMUXER 0 +%define CONFIG_WVE_DEMUXER 0 +%define CONFIG_WV_DEMUXER 0 +%define CONFIG_XA_DEMUXER 0 +%define CONFIG_XBIN_DEMUXER 0 +%define CONFIG_XMV_DEMUXER 0 +%define CONFIG_XVAG_DEMUXER 0 +%define CONFIG_XWMA_DEMUXER 0 +%define CONFIG_YOP_DEMUXER 0 +%define CONFIG_YUV4MPEGPIPE_DEMUXER 0 +%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 +%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 +%define CONFIG_LIBGME_DEMUXER 0 +%define CONFIG_LIBMODPLUG_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 +%define CONFIG_A64MULTI_ENCODER 0 +%define CONFIG_A64MULTI5_ENCODER 0 +%define CONFIG_ALIAS_PIX_ENCODER 0 +%define CONFIG_AMV_ENCODER 0 +%define CONFIG_APNG_ENCODER 0 +%define CONFIG_ASV1_ENCODER 0 +%define CONFIG_ASV2_ENCODER 0 +%define CONFIG_AVRP_ENCODER 0 +%define CONFIG_AVUI_ENCODER 0 +%define CONFIG_AYUV_ENCODER 0 +%define CONFIG_BMP_ENCODER 0 +%define CONFIG_CINEPAK_ENCODER 0 +%define CONFIG_CLJR_ENCODER 0 +%define CONFIG_COMFORTNOISE_ENCODER 0 +%define CONFIG_DNXHD_ENCODER 0 +%define CONFIG_DPX_ENCODER 0 +%define CONFIG_DVVIDEO_ENCODER 0 +%define CONFIG_FFV1_ENCODER 0 +%define CONFIG_FFVHUFF_ENCODER 0 +%define CONFIG_FITS_ENCODER 0 +%define CONFIG_FLASHSV_ENCODER 0 +%define CONFIG_FLASHSV2_ENCODER 0 +%define CONFIG_FLV_ENCODER 0 +%define CONFIG_GIF_ENCODER 0 +%define CONFIG_H261_ENCODER 0 +%define CONFIG_H263_ENCODER 0 +%define CONFIG_H263P_ENCODER 0 +%define CONFIG_HAP_ENCODER 0 +%define CONFIG_HUFFYUV_ENCODER 0 +%define CONFIG_JPEG2000_ENCODER 0 +%define CONFIG_JPEGLS_ENCODER 0 +%define CONFIG_LJPEG_ENCODER 0 +%define CONFIG_MJPEG_ENCODER 0 +%define CONFIG_MPEG1VIDEO_ENCODER 0 +%define CONFIG_MPEG2VIDEO_ENCODER 0 +%define CONFIG_MPEG4_ENCODER 0 +%define CONFIG_MSMPEG4V2_ENCODER 0 +%define CONFIG_MSMPEG4V3_ENCODER 0 +%define CONFIG_MSVIDEO1_ENCODER 0 +%define CONFIG_PAM_ENCODER 0 +%define CONFIG_PBM_ENCODER 0 +%define CONFIG_PCX_ENCODER 0 +%define CONFIG_PGM_ENCODER 0 +%define CONFIG_PGMYUV_ENCODER 0 +%define CONFIG_PNG_ENCODER 0 +%define CONFIG_PPM_ENCODER 0 +%define CONFIG_PRORES_ENCODER 0 +%define CONFIG_PRORES_AW_ENCODER 0 +%define CONFIG_PRORES_KS_ENCODER 0 +%define CONFIG_QTRLE_ENCODER 0 +%define CONFIG_R10K_ENCODER 0 +%define CONFIG_R210_ENCODER 0 +%define CONFIG_RAWVIDEO_ENCODER 0 +%define CONFIG_ROQ_ENCODER 0 +%define CONFIG_RV10_ENCODER 0 +%define CONFIG_RV20_ENCODER 0 +%define CONFIG_S302M_ENCODER 0 +%define CONFIG_SGI_ENCODER 0 +%define CONFIG_SNOW_ENCODER 0 +%define CONFIG_SUNRAST_ENCODER 0 +%define CONFIG_SVQ1_ENCODER 0 +%define CONFIG_TARGA_ENCODER 0 +%define CONFIG_TIFF_ENCODER 0 +%define CONFIG_UTVIDEO_ENCODER 0 +%define CONFIG_V210_ENCODER 0 +%define CONFIG_V308_ENCODER 0 +%define CONFIG_V408_ENCODER 0 +%define CONFIG_V410_ENCODER 0 +%define CONFIG_VC2_ENCODER 0 +%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 +%define CONFIG_WMV1_ENCODER 0 +%define CONFIG_WMV2_ENCODER 0 +%define CONFIG_XBM_ENCODER 0 +%define CONFIG_XFACE_ENCODER 0 +%define CONFIG_XWD_ENCODER 0 +%define CONFIG_Y41P_ENCODER 0 +%define CONFIG_YUV4_ENCODER 0 +%define CONFIG_ZLIB_ENCODER 0 +%define CONFIG_ZMBV_ENCODER 0 +%define CONFIG_AAC_ENCODER 0 +%define CONFIG_AC3_ENCODER 0 +%define CONFIG_AC3_FIXED_ENCODER 0 +%define CONFIG_ALAC_ENCODER 0 +%define CONFIG_DCA_ENCODER 0 +%define CONFIG_EAC3_ENCODER 0 +%define CONFIG_FLAC_ENCODER 0 +%define CONFIG_G723_1_ENCODER 0 +%define CONFIG_MLP_ENCODER 0 +%define CONFIG_MP2_ENCODER 0 +%define CONFIG_MP2FIXED_ENCODER 0 +%define CONFIG_NELLYMOSER_ENCODER 0 +%define CONFIG_OPUS_ENCODER 0 +%define CONFIG_RA_144_ENCODER 0 +%define CONFIG_SONIC_ENCODER 0 +%define CONFIG_SONIC_LS_ENCODER 0 +%define CONFIG_TRUEHD_ENCODER 0 +%define CONFIG_TTA_ENCODER 0 +%define CONFIG_VORBIS_ENCODER 0 +%define CONFIG_WAVPACK_ENCODER 0 +%define CONFIG_WMAV1_ENCODER 0 +%define CONFIG_WMAV2_ENCODER 0 +%define CONFIG_PCM_ALAW_ENCODER 0 +%define CONFIG_PCM_F32BE_ENCODER 0 +%define CONFIG_PCM_F32LE_ENCODER 0 +%define CONFIG_PCM_F64BE_ENCODER 0 +%define CONFIG_PCM_F64LE_ENCODER 0 +%define CONFIG_PCM_MULAW_ENCODER 0 +%define CONFIG_PCM_S8_ENCODER 0 +%define CONFIG_PCM_S8_PLANAR_ENCODER 0 +%define CONFIG_PCM_S16BE_ENCODER 0 +%define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 +%define CONFIG_PCM_S16LE_ENCODER 0 +%define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 +%define CONFIG_PCM_S24BE_ENCODER 0 +%define CONFIG_PCM_S24DAUD_ENCODER 0 +%define CONFIG_PCM_S24LE_ENCODER 0 +%define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 +%define CONFIG_PCM_S32BE_ENCODER 0 +%define CONFIG_PCM_S32LE_ENCODER 0 +%define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 +%define CONFIG_PCM_S64BE_ENCODER 0 +%define CONFIG_PCM_S64LE_ENCODER 0 +%define CONFIG_PCM_U8_ENCODER 0 +%define CONFIG_PCM_U16BE_ENCODER 0 +%define CONFIG_PCM_U16LE_ENCODER 0 +%define CONFIG_PCM_U24BE_ENCODER 0 +%define CONFIG_PCM_U24LE_ENCODER 0 +%define CONFIG_PCM_U32BE_ENCODER 0 +%define CONFIG_PCM_U32LE_ENCODER 0 +%define CONFIG_ROQ_DPCM_ENCODER 0 +%define CONFIG_ADPCM_ADX_ENCODER 0 +%define CONFIG_ADPCM_G722_ENCODER 0 +%define CONFIG_ADPCM_G726_ENCODER 0 +%define CONFIG_ADPCM_G726LE_ENCODER 0 +%define CONFIG_ADPCM_IMA_QT_ENCODER 0 +%define CONFIG_ADPCM_IMA_WAV_ENCODER 0 +%define CONFIG_ADPCM_MS_ENCODER 0 +%define CONFIG_ADPCM_SWF_ENCODER 0 +%define CONFIG_ADPCM_YAMAHA_ENCODER 0 +%define CONFIG_SSA_ENCODER 0 +%define CONFIG_ASS_ENCODER 0 +%define CONFIG_DVBSUB_ENCODER 0 +%define CONFIG_DVDSUB_ENCODER 0 +%define CONFIG_MOVTEXT_ENCODER 0 +%define CONFIG_SRT_ENCODER 0 +%define CONFIG_SUBRIP_ENCODER 0 +%define CONFIG_TEXT_ENCODER 0 +%define CONFIG_WEBVTT_ENCODER 0 +%define CONFIG_XSUB_ENCODER 0 +%define CONFIG_AAC_AT_ENCODER 0 +%define CONFIG_ALAC_AT_ENCODER 0 +%define CONFIG_ILBC_AT_ENCODER 0 +%define CONFIG_PCM_ALAW_AT_ENCODER 0 +%define CONFIG_PCM_MULAW_AT_ENCODER 0 +%define CONFIG_LIBFDK_AAC_ENCODER 0 +%define CONFIG_LIBGSM_ENCODER 0 +%define CONFIG_LIBGSM_MS_ENCODER 0 +%define CONFIG_LIBILBC_ENCODER 0 +%define CONFIG_LIBMP3LAME_ENCODER 0 +%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 +%define CONFIG_LIBOPENJPEG_ENCODER 0 +%define CONFIG_LIBOPUS_ENCODER 0 +%define CONFIG_LIBSHINE_ENCODER 0 +%define CONFIG_LIBSPEEX_ENCODER 0 +%define CONFIG_LIBTHEORA_ENCODER 0 +%define CONFIG_LIBTWOLAME_ENCODER 0 +%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 +%define CONFIG_LIBVORBIS_ENCODER 0 +%define CONFIG_LIBVPX_VP8_ENCODER 0 +%define CONFIG_LIBVPX_VP9_ENCODER 0 +%define CONFIG_LIBWAVPACK_ENCODER 0 +%define CONFIG_LIBWEBP_ANIM_ENCODER 0 +%define CONFIG_LIBWEBP_ENCODER 0 +%define CONFIG_LIBX262_ENCODER 0 +%define CONFIG_LIBX264_ENCODER 0 +%define CONFIG_LIBX264RGB_ENCODER 0 +%define CONFIG_LIBX265_ENCODER 0 +%define CONFIG_LIBXAVS_ENCODER 0 +%define CONFIG_LIBXVID_ENCODER 0 +%define CONFIG_H263_V4L2M2M_ENCODER 0 +%define CONFIG_LIBOPENH264_ENCODER 0 +%define CONFIG_H264_NVENC_ENCODER 0 +%define CONFIG_H264_OMX_ENCODER 0 +%define CONFIG_H264_QSV_ENCODER 0 +%define CONFIG_H264_V4L2M2M_ENCODER 0 +%define CONFIG_H264_VAAPI_ENCODER 0 +%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 +%define CONFIG_NVENC_ENCODER 0 +%define CONFIG_NVENC_H264_ENCODER 0 +%define CONFIG_NVENC_HEVC_ENCODER 0 +%define CONFIG_HEVC_NVENC_ENCODER 0 +%define CONFIG_HEVC_QSV_ENCODER 0 +%define CONFIG_HEVC_V4L2M2M_ENCODER 0 +%define CONFIG_HEVC_VAAPI_ENCODER 0 +%define CONFIG_LIBKVAZAAR_ENCODER 0 +%define CONFIG_MJPEG_VAAPI_ENCODER 0 +%define CONFIG_MPEG2_QSV_ENCODER 0 +%define CONFIG_MPEG2_VAAPI_ENCODER 0 +%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 +%define CONFIG_VP8_V4L2M2M_ENCODER 0 +%define CONFIG_VP8_VAAPI_ENCODER 0 +%define CONFIG_VP9_VAAPI_ENCODER 0 +%define CONFIG_ABENCH_FILTER 0 +%define CONFIG_ACOMPRESSOR_FILTER 0 +%define CONFIG_ACOPY_FILTER 0 +%define CONFIG_ACROSSFADE_FILTER 0 +%define CONFIG_ACRUSHER_FILTER 0 +%define CONFIG_ADELAY_FILTER 0 %define CONFIG_AECHO_FILTER 0 %define CONFIG_AEMPHASIS_FILTER 0 -%define CONFIG_AEVALSRC_FILTER 0 %define CONFIG_AEVAL_FILTER 0 %define CONFIG_AFADE_FILTER 0 -%define CONFIG_AFC_DEMUXER 0 %define CONFIG_AFFTFILT_FILTER 0 -%define CONFIG_AFIFO_FILTER 0 %define CONFIG_AFIR_FILTER 0 %define CONFIG_AFORMAT_FILTER 0 %define CONFIG_AGATE_FILTER 0 -%define CONFIG_AHISTOGRAM_FILTER 0 -%define CONFIG_AIC_DECODER 0 -%define CONFIG_AIFF_DEMUXER 0 -%define CONFIG_AIFF_MUXER 0 -%define CONFIG_AIIR_FILTER 0 %define CONFIG_AINTERLEAVE_FILTER 0 -%define CONFIG_AIX_DEMUXER 0 -%define CONFIG_ALAC_AT_DECODER 0 -%define CONFIG_ALAC_AT_ENCODER 0 -%define CONFIG_ALAC_DECODER 0 -%define CONFIG_ALAC_ENCODER 0 -%define CONFIG_ALIAS_PIX_DECODER 0 -%define CONFIG_ALIAS_PIX_ENCODER 0 %define CONFIG_ALIMITER_FILTER 0 %define CONFIG_ALLPASS_FILTER 0 -%define CONFIG_ALLRGB_FILTER 0 -%define CONFIG_ALLYUV_FILTER 0 %define CONFIG_ALOOP_FILTER 0 -%define CONFIG_ALPHAEXTRACT_FILTER 0 -%define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_ALSA_INDEV 0 -%define CONFIG_ALSA_OUTDEV 0 -%define CONFIG_ALS_DECODER 0 %define CONFIG_AMERGE_FILTER 0 %define CONFIG_AMETADATA_FILTER 0 %define CONFIG_AMIX_FILTER 0 -%define CONFIG_AMOVIE_FILTER 0 -%define CONFIG_AMRNB_DECODER 0 -%define CONFIG_AMRNB_DEMUXER 0 -%define CONFIG_AMRWB_DECODER 0 -%define CONFIG_AMRWB_DEMUXER 0 -%define CONFIG_AMR_DEMUXER 0 -%define CONFIG_AMR_MUXER 0 -%define CONFIG_AMR_NB_AT_DECODER 0 -%define CONFIG_AMV_DECODER 0 -%define CONFIG_AMV_ENCODER 0 -%define CONFIG_ANDROID_CAMERA_INDEV 0 %define CONFIG_ANEQUALIZER_FILTER 0 -%define CONFIG_ANM_DECODER 0 -%define CONFIG_ANM_DEMUXER 0 -%define CONFIG_ANOISESRC_FILTER 0 -%define CONFIG_ANSI_DECODER 0 -%define CONFIG_ANULLSINK_FILTER 0 -%define CONFIG_ANULLSRC_FILTER 0 %define CONFIG_ANULL_FILTER 0 %define CONFIG_APAD_FILTER 0 -%define CONFIG_APC_DEMUXER 0 %define CONFIG_APERMS_FILTER 0 -%define CONFIG_APE_DECODER 0 -%define CONFIG_APE_DEMUXER 0 -%define CONFIG_APHASEMETER_FILTER 0 %define CONFIG_APHASER_FILTER 0 -%define CONFIG_APNG_DECODER 0 -%define CONFIG_APNG_DEMUXER 0 -%define CONFIG_APNG_ENCODER 0 -%define CONFIG_APNG_MUXER 0 -%define CONFIG_APTX_DECODER 0 -%define CONFIG_APTX_DEMUXER 0 -%define CONFIG_APTX_ENCODER 0 -%define CONFIG_APTX_HD_DECODER 0 -%define CONFIG_APTX_HD_DEMUXER 0 -%define CONFIG_APTX_HD_ENCODER 0 -%define CONFIG_APTX_HD_MUXER 0 -%define CONFIG_APTX_MUXER 0 %define CONFIG_APULSATOR_FILTER 0 -%define CONFIG_AQTITLE_DEMUXER 0 %define CONFIG_AREALTIME_FILTER 0 %define CONFIG_ARESAMPLE_FILTER 0 %define CONFIG_AREVERSE_FILTER 0 @@ -177,131 +1026,81 @@ %define CONFIG_ASETPTS_FILTER 0 %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 -%define CONFIG_ASF_DEMUXER 0 -%define CONFIG_ASF_MUXER 0 -%define CONFIG_ASF_O_DEMUXER 0 -%define CONFIG_ASF_STREAM_MUXER 0 %define CONFIG_ASHOWINFO_FILTER 0 %define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 -%define CONFIG_ASS_DECODER 0 -%define CONFIG_ASS_DEMUXER 0 -%define CONFIG_ASS_ENCODER 0 -%define CONFIG_ASS_FILTER 0 -%define CONFIG_ASS_MUXER 0 %define CONFIG_ASTATS_FILTER 0 %define CONFIG_ASTREAMSELECT_FILTER 0 -%define CONFIG_AST_DEMUXER 0 -%define CONFIG_AST_MUXER 0 -%define CONFIG_ASV1_DECODER 0 -%define CONFIG_ASV1_ENCODER 0 -%define CONFIG_ASV2_DECODER 0 -%define CONFIG_ASV2_ENCODER 0 -%define CONFIG_ASYNC_PROTOCOL 0 -%define CONFIG_ATADENOISE_FILTER 0 %define CONFIG_ATEMPO_FILTER 0 -%define CONFIG_ATRAC1_DECODER 0 -%define CONFIG_ATRAC3AL_DECODER 0 -%define CONFIG_ATRAC3PAL_DECODER 0 -%define CONFIG_ATRAC3P_DECODER 0 -%define CONFIG_ATRAC3_DECODER 0 %define CONFIG_ATRIM_FILTER 0 -%define CONFIG_AURA2_DECODER 0 -%define CONFIG_AURA_DECODER 0 -%define CONFIG_AU_DEMUXER 0 -%define CONFIG_AU_MUXER 0 -%define CONFIG_AVECTORSCOPE_FILTER 0 -%define CONFIG_AVFOUNDATION_INDEV 0 -%define CONFIG_AVGBLUR_FILTER 0 -%define CONFIG_AVGBLUR_OPENCL_FILTER 0 -%define CONFIG_AVISYNTH_DEMUXER 0 -%define CONFIG_AVI_DEMUXER 0 -%define CONFIG_AVI_MUXER 0 -%define CONFIG_AVM2_MUXER 0 -%define CONFIG_AVRN_DECODER 0 -%define CONFIG_AVRP_DECODER 0 -%define CONFIG_AVRP_ENCODER 0 -%define CONFIG_AVR_DEMUXER 0 -%define CONFIG_AVS_DECODER 0 -%define CONFIG_AVS_DEMUXER 0 -%define CONFIG_AVUI_DECODER 0 -%define CONFIG_AVUI_ENCODER 0 -%define CONFIG_AYUV_DECODER 0 -%define CONFIG_AYUV_ENCODER 0 %define CONFIG_AZMQ_FILTER 0 %define CONFIG_BANDPASS_FILTER 0 %define CONFIG_BANDREJECT_FILTER 0 %define CONFIG_BASS_FILTER 0 +%define CONFIG_BIQUAD_FILTER 0 +%define CONFIG_BS2B_FILTER 0 +%define CONFIG_CHANNELMAP_FILTER 0 +%define CONFIG_CHANNELSPLIT_FILTER 0 +%define CONFIG_CHORUS_FILTER 0 +%define CONFIG_COMPAND_FILTER 0 +%define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CROSSFEED_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 +%define CONFIG_DCSHIFT_FILTER 0 +%define CONFIG_DYNAUDNORM_FILTER 0 +%define CONFIG_EARWAX_FILTER 0 +%define CONFIG_EBUR128_FILTER 0 +%define CONFIG_EQUALIZER_FILTER 0 +%define CONFIG_EXTRASTEREO_FILTER 0 +%define CONFIG_FIREQUALIZER_FILTER 0 +%define CONFIG_FLANGER_FILTER 0 +%define CONFIG_HAAS_FILTER 0 +%define CONFIG_HDCD_FILTER 0 +%define CONFIG_HEADPHONE_FILTER 0 +%define CONFIG_HIGHPASS_FILTER 0 +%define CONFIG_JOIN_FILTER 0 +%define CONFIG_LADSPA_FILTER 0 +%define CONFIG_LOUDNORM_FILTER 0 +%define CONFIG_LOWPASS_FILTER 0 +%define CONFIG_PAN_FILTER 0 +%define CONFIG_REPLAYGAIN_FILTER 0 +%define CONFIG_RESAMPLE_FILTER 0 +%define CONFIG_RUBBERBAND_FILTER 0 +%define CONFIG_SIDECHAINCOMPRESS_FILTER 0 +%define CONFIG_SIDECHAINGATE_FILTER 0 +%define CONFIG_SILENCEDETECT_FILTER 0 +%define CONFIG_SILENCEREMOVE_FILTER 0 +%define CONFIG_SOFALIZER_FILTER 0 +%define CONFIG_STEREOTOOLS_FILTER 0 +%define CONFIG_STEREOWIDEN_FILTER 0 +%define CONFIG_SUPEREQUALIZER_FILTER 0 +%define CONFIG_SURROUND_FILTER 0 +%define CONFIG_TREBLE_FILTER 0 +%define CONFIG_TREMOLO_FILTER 0 +%define CONFIG_VIBRATO_FILTER 0 +%define CONFIG_VOLUME_FILTER 0 +%define CONFIG_VOLUMEDETECT_FILTER 0 +%define CONFIG_AEVALSRC_FILTER 0 +%define CONFIG_ANOISESRC_FILTER 0 +%define CONFIG_ANULLSRC_FILTER 0 +%define CONFIG_FLITE_FILTER 0 +%define CONFIG_SINE_FILTER 0 +%define CONFIG_ANULLSINK_FILTER 0 +%define CONFIG_ALPHAEXTRACT_FILTER 0 +%define CONFIG_ALPHAMERGE_FILTER 0 +%define CONFIG_ASS_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 %define CONFIG_BBOX_FILTER 0 %define CONFIG_BENCH_FILTER 0 -%define CONFIG_BETHSOFTVID_DECODER 0 -%define CONFIG_BETHSOFTVID_DEMUXER 0 -%define CONFIG_BFI_DECODER 0 -%define CONFIG_BFI_DEMUXER 0 -%define CONFIG_BFSTM_DEMUXER 0 -%define CONFIG_BINKAUDIO_DCT_DECODER 0 -%define CONFIG_BINKAUDIO_RDFT_DECODER 0 -%define CONFIG_BINK_DECODER 0 -%define CONFIG_BINK_DEMUXER 0 -%define CONFIG_BINTEXT_DECODER 0 -%define CONFIG_BINTEXT_DEMUXER 0 -%define CONFIG_BIQUAD_FILTER 0 -%define CONFIG_BITPACKED_DECODER 0 %define CONFIG_BITPLANENOISE_FILTER 0 -%define CONFIG_BIT_DEMUXER 0 -%define CONFIG_BIT_MUXER 0 -%define CONFIG_BKTR_INDEV 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 -%define CONFIG_BLURAY_PROTOCOL 0 -%define CONFIG_BMP_DECODER 0 -%define CONFIG_BMP_ENCODER 0 -%define CONFIG_BMP_PARSER 0 -%define CONFIG_BMV_AUDIO_DECODER 0 -%define CONFIG_BMV_DEMUXER 0 -%define CONFIG_BMV_VIDEO_DECODER 0 -%define CONFIG_BOA_DEMUXER 0 %define CONFIG_BOXBLUR_FILTER 0 -%define CONFIG_BRENDER_PIX_DECODER 0 -%define CONFIG_BRSTM_DEMUXER 0 -%define CONFIG_BS2B_FILTER 0 %define CONFIG_BWDIF_FILTER 0 -%define CONFIG_C93_DECODER 0 -%define CONFIG_C93_DEMUXER 0 -%define CONFIG_CACA_OUTDEV 0 -%define CONFIG_CACHE_PROTOCOL 0 -%define CONFIG_CAF_DEMUXER 0 -%define CONFIG_CAF_MUXER 0 -%define CONFIG_CAVSVIDEO_DEMUXER 0 -%define CONFIG_CAVSVIDEO_MUXER 0 -%define CONFIG_CAVSVIDEO_PARSER 0 -%define CONFIG_CAVS_DECODER 0 -%define CONFIG_CCAPTION_DECODER 0 -%define CONFIG_CDGRAPHICS_DECODER 0 -%define CONFIG_CDG_DEMUXER 0 -%define CONFIG_CDXL_DECODER 0 -%define CONFIG_CDXL_DEMUXER 0 -%define CONFIG_CELLAUTO_FILTER 0 -%define CONFIG_CFHD_DECODER 0 -%define CONFIG_CHANNELMAP_FILTER 0 -%define CONFIG_CHANNELSPLIT_FILTER 0 -%define CONFIG_CHOMP_BSF 0 -%define CONFIG_CHORUS_FILTER 0 %define CONFIG_CHROMAKEY_FILTER 0 -%define CONFIG_CHROMAPRINT_MUXER 0 %define CONFIG_CIESCOPE_FILTER 0 -%define CONFIG_CINEPAK_DECODER 0 -%define CONFIG_CINEPAK_ENCODER 0 -%define CONFIG_CINE_DEMUXER 0 -%define CONFIG_CLEARVIDEO_DECODER 0 -%define CONFIG_CLJR_DECODER 0 -%define CONFIG_CLJR_ENCODER 0 -%define CONFIG_CLLC_DECODER 0 -%define CONFIG_CODEC2RAW_DEMUXER 0 -%define CONFIG_CODEC2RAW_MUXER 0 -%define CONFIG_CODEC2_DEMUXER 0 -%define CONFIG_CODEC2_MUXER 0 %define CONFIG_CODECVIEW_FILTER 0 %define CONFIG_COLORBALANCE_FILTER 0 %define CONFIG_COLORCHANNELMIXER_FILTER 0 @@ -309,1426 +1108,567 @@ %define CONFIG_COLORLEVELS_FILTER 0 %define CONFIG_COLORMATRIX_FILTER 0 %define CONFIG_COLORSPACE_FILTER 0 -%define CONFIG_COLOR_FILTER 0 -%define CONFIG_COMFORTNOISE_DECODER 0 -%define CONFIG_COMFORTNOISE_ENCODER 0 -%define CONFIG_COMPAND_FILTER 0 -%define CONFIG_COMPENSATIONDELAY_FILTER 0 -%define CONFIG_CONCAT_DEMUXER 0 -%define CONFIG_CONCAT_FILTER 0 -%define CONFIG_CONCAT_PROTOCOL 0 %define CONFIG_CONVOLUTION_FILTER 0 -%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 %define CONFIG_CONVOLVE_FILTER 0 -%define CONFIG_COOK_DECODER 0 -%define CONFIG_COOK_PARSER 0 %define CONFIG_COPY_FILTER 0 -%define CONFIG_COREIMAGESRC_FILTER 0 %define CONFIG_COREIMAGE_FILTER 0 %define CONFIG_COVER_RECT_FILTER 0 -%define CONFIG_CPIA_DECODER 0 -%define CONFIG_CRC_MUXER 0 -%define CONFIG_CROPDETECT_FILTER 0 %define CONFIG_CROP_FILTER 0 -%define CONFIG_CROSSFEED_FILTER 0 -%define CONFIG_CRYPTO_PROTOCOL 0 -%define CONFIG_CRYSTALIZER_FILTER 0 -%define CONFIG_CSCD_DECODER 0 +%define CONFIG_CROPDETECT_FILTER 0 %define CONFIG_CURVES_FILTER 0 -%define CONFIG_CYUV_DECODER 0 -%define CONFIG_DASH_DEMUXER 0 -%define CONFIG_DASH_MUXER 0 %define CONFIG_DATASCOPE_FILTER 0 -%define CONFIG_DATA_DEMUXER 0 -%define CONFIG_DATA_MUXER 0 -%define CONFIG_DATA_PROTOCOL 0 -%define CONFIG_DAUD_DEMUXER 0 -%define CONFIG_DAUD_MUXER 0 -%define CONFIG_DCA_CORE_BSF 0 -%define CONFIG_DCA_DECODER 0 -%define CONFIG_DCA_ENCODER 0 -%define CONFIG_DCA_PARSER 0 -%define CONFIG_DCSHIFT_FILTER 0 -%define CONFIG_DCSTR_DEMUXER 0 %define CONFIG_DCTDNOIZ_FILTER 0 -%define CONFIG_DDS_DECODER 0 %define CONFIG_DEBAND_FILTER 0 %define CONFIG_DECIMATE_FILTER 0 -%define CONFIG_DECKLINK_INDEV 0 -%define CONFIG_DECKLINK_OUTDEV 0 -%define CONFIG_DECONVOLVE_FILTER 0 %define CONFIG_DEFLATE_FILTER 0 %define CONFIG_DEFLICKER_FILTER 0 %define CONFIG_DEINTERLACE_QSV_FILTER 0 %define CONFIG_DEINTERLACE_VAAPI_FILTER 0 %define CONFIG_DEJUDDER_FILTER 0 %define CONFIG_DELOGO_FILTER 0 -%define CONFIG_DEMUXERS 0 -%define CONFIG_DENOISE_VAAPI_FILTER 0 %define CONFIG_DESHAKE_FILTER 0 %define CONFIG_DESPILL_FILTER 0 %define CONFIG_DETELECINE_FILTER 0 -%define CONFIG_DFA_DECODER 0 -%define CONFIG_DFA_DEMUXER 0 %define CONFIG_DILATION_FILTER 0 -%define CONFIG_DIRAC_DECODER 0 -%define CONFIG_DIRAC_DEMUXER 0 -%define CONFIG_DIRAC_MUXER 0 -%define CONFIG_DIRAC_PARSER 0 %define CONFIG_DISPLACE_FILTER 0 -%define CONFIG_DNXHD_DECODER 0 -%define CONFIG_DNXHD_DEMUXER 0 -%define CONFIG_DNXHD_ENCODER 0 -%define CONFIG_DNXHD_MUXER 0 -%define CONFIG_DNXHD_PARSER 0 -%define CONFIG_DOLBY_E_DECODER 0 %define CONFIG_DOUBLEWEAVE_FILTER 0 -%define CONFIG_DPX_DECODER 0 -%define CONFIG_DPX_ENCODER 0 -%define CONFIG_DPX_PARSER 0 %define CONFIG_DRAWBOX_FILTER 0 %define CONFIG_DRAWGRAPH_FILTER 0 %define CONFIG_DRAWGRID_FILTER 0 %define CONFIG_DRAWTEXT_FILTER 0 -%define CONFIG_DRMETER_FILTER 0 -%define CONFIG_DSD_LSBF_DECODER 0 -%define CONFIG_DSD_LSBF_PLANAR_DECODER 0 -%define CONFIG_DSD_MSBF_DECODER 0 -%define CONFIG_DSD_MSBF_PLANAR_DECODER 0 -%define CONFIG_DSF_DEMUXER 0 -%define CONFIG_DSHOW_INDEV 0 -%define CONFIG_DSICINAUDIO_DECODER 0 -%define CONFIG_DSICINVIDEO_DECODER 0 -%define CONFIG_DSICIN_DEMUXER 0 -%define CONFIG_DSS_DEMUXER 0 -%define CONFIG_DSS_SP_DECODER 0 -%define CONFIG_DST_DECODER 0 -%define CONFIG_DTSHD_DEMUXER 0 -%define CONFIG_DTS_DEMUXER 0 -%define CONFIG_DTS_MUXER 0 -%define CONFIG_DUMP_EXTRADATA_BSF 0 -%define CONFIG_DVAUDIO_DECODER 0 -%define CONFIG_DVAUDIO_PARSER 0 -%define CONFIG_DVBSUB_DECODER 0 -%define CONFIG_DVBSUB_DEMUXER 0 -%define CONFIG_DVBSUB_ENCODER 0 -%define CONFIG_DVBSUB_PARSER 0 -%define CONFIG_DVBTXT_DEMUXER 0 -%define CONFIG_DVDSUB_DECODER 0 -%define CONFIG_DVDSUB_ENCODER 0 -%define CONFIG_DVDSUB_PARSER 0 -%define CONFIG_DVD_NAV_PARSER 0 -%define CONFIG_DVVIDEO_DECODER 0 -%define CONFIG_DVVIDEO_ENCODER 0 -%define CONFIG_DV_DEMUXER 0 -%define CONFIG_DV_MUXER 0 -%define CONFIG_DXA_DECODER 0 -%define CONFIG_DXA_DEMUXER 0 -%define CONFIG_DXTORY_DECODER 0 -%define CONFIG_DXV_DECODER 0 -%define CONFIG_DYNAUDNORM_FILTER 0 -%define CONFIG_EAC3_AT_DECODER 0 -%define CONFIG_EAC3_CORE_BSF 0 -%define CONFIG_EAC3_DECODER 0 -%define CONFIG_EAC3_DEMUXER 0 -%define CONFIG_EAC3_ENCODER 0 -%define CONFIG_EAC3_MUXER 0 -%define CONFIG_EACMV_DECODER 0 -%define CONFIG_EAMAD_DECODER 0 -%define CONFIG_EARWAX_FILTER 0 -%define CONFIG_EATGQ_DECODER 0 -%define CONFIG_EATGV_DECODER 0 -%define CONFIG_EATQI_DECODER 0 -%define CONFIG_EA_CDATA_DEMUXER 0 -%define CONFIG_EA_DEMUXER 0 -%define CONFIG_EBUR128_FILTER 0 %define CONFIG_EDGEDETECT_FILTER 0 -%define CONFIG_EIGHTBPS_DECODER 0 -%define CONFIG_EIGHTSVX_EXP_DECODER 0 -%define CONFIG_EIGHTSVX_FIB_DECODER 0 %define CONFIG_ELBG_FILTER 0 -%define CONFIG_ENCODERS 0 -%define CONFIG_ENTROPY_FILTER 0 -%define CONFIG_EPAF_DEMUXER 0 -%define CONFIG_EQUALIZER_FILTER 0 %define CONFIG_EQ_FILTER 0 %define CONFIG_EROSION_FILTER 0 -%define CONFIG_ESCAPE124_DECODER 0 -%define CONFIG_ESCAPE130_DECODER 0 -%define CONFIG_EVRC_DECODER 0 -%define CONFIG_EXR_DECODER 0 %define CONFIG_EXTRACTPLANES_FILTER 0 -%define CONFIG_EXTRACT_EXTRADATA_BSF 0 -%define CONFIG_EXTRASTEREO_FILTER 0 -%define CONFIG_F4V_MUXER 0 %define CONFIG_FADE_FILTER 0 -%define CONFIG_FBDEV_INDEV 0 -%define CONFIG_FBDEV_OUTDEV 0 -%define CONFIG_FFMETADATA_DEMUXER 0 -%define CONFIG_FFMETADATA_MUXER 0 -%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -%define CONFIG_FFRTMPHTTP_PROTOCOL 0 %define CONFIG_FFTFILT_FILTER 0 -%define CONFIG_FFV1_DECODER 0 -%define CONFIG_FFV1_ENCODER 0 -%define CONFIG_FFVHUFF_DECODER 0 -%define CONFIG_FFVHUFF_ENCODER 0 -%define CONFIG_FFWAVESYNTH_DECODER 0 -%define CONFIG_FIC_DECODER 0 +%define CONFIG_FIELD_FILTER 0 %define CONFIG_FIELDHINT_FILTER 0 %define CONFIG_FIELDMATCH_FILTER 0 %define CONFIG_FIELDORDER_FILTER 0 -%define CONFIG_FIELD_FILTER 0 -%define CONFIG_FIFO_FILTER 0 -%define CONFIG_FIFO_MUXER 0 -%define CONFIG_FIFO_TEST_MUXER 0 -%define CONFIG_FILE_PROTOCOL 0 -%define CONFIG_FILLBORDERS_FILTER 0 -%define CONFIG_FILMSTRIP_DEMUXER 0 -%define CONFIG_FILMSTRIP_MUXER 0 -%define CONFIG_FILTERS 0 -%define CONFIG_FILTER_UNITS_BSF 0 %define CONFIG_FIND_RECT_FILTER 0 -%define CONFIG_FIREQUALIZER_FILTER 0 -%define CONFIG_FITS_DECODER 0 -%define CONFIG_FITS_DEMUXER 0 -%define CONFIG_FITS_ENCODER 0 -%define CONFIG_FITS_MUXER 0 -%define CONFIG_FLAC_DEMUXER 0 -%define CONFIG_FLAC_ENCODER 0 -%define CONFIG_FLAC_MUXER 0 -%define CONFIG_FLAC_PARSER 0 -%define CONFIG_FLANGER_FILTER 0 -%define CONFIG_FLASHSV2_DECODER 0 -%define CONFIG_FLASHSV2_ENCODER 0 -%define CONFIG_FLASHSV_DECODER 0 -%define CONFIG_FLASHSV_ENCODER 0 -%define CONFIG_FLIC_DECODER 0 -%define CONFIG_FLIC_DEMUXER 0 -%define CONFIG_FLITE_FILTER 0 %define CONFIG_FLOODFILL_FILTER 0 -%define CONFIG_FLV_DECODER 0 -%define CONFIG_FLV_DEMUXER 0 -%define CONFIG_FLV_ENCODER 0 -%define CONFIG_FLV_MUXER 0 -%define CONFIG_FMVC_DECODER 0 %define CONFIG_FORMAT_FILTER 0 -%define CONFIG_FOURXM_DECODER 0 -%define CONFIG_FOURXM_DEMUXER 0 %define CONFIG_FPS_FILTER 0 -%define CONFIG_FRAMECRC_MUXER 0 -%define CONFIG_FRAMEHASH_MUXER 0 -%define CONFIG_FRAMEMD5_MUXER 0 %define CONFIG_FRAMEPACK_FILTER 0 %define CONFIG_FRAMERATE_FILTER 0 %define CONFIG_FRAMESTEP_FILTER 0 -%define CONFIG_FRAME_THREAD_ENCODER 0 -%define CONFIG_FRAPS_DECODER 0 %define CONFIG_FREI0R_FILTER 0 -%define CONFIG_FREI0R_SRC_FILTER 0 -%define CONFIG_FRM_DEMUXER 0 -%define CONFIG_FRWU_DECODER 0 -%define CONFIG_FSB_DEMUXER 0 %define CONFIG_FSPP_FILTER 0 -%define CONFIG_FTP_PROTOCOL 0 -%define CONFIG_G2M_DECODER 0 -%define CONFIG_G722_DEMUXER 0 -%define CONFIG_G722_MUXER 0 -%define CONFIG_G723_1_DECODER 0 -%define CONFIG_G723_1_DEMUXER 0 -%define CONFIG_G723_1_ENCODER 0 -%define CONFIG_G723_1_MUXER 0 -%define CONFIG_G726LE_DEMUXER 0 -%define CONFIG_G726LE_MUXER 0 -%define CONFIG_G726_DEMUXER 0 -%define CONFIG_G726_MUXER 0 -%define CONFIG_G729_DECODER 0 -%define CONFIG_G729_DEMUXER 0 -%define CONFIG_G729_PARSER 0 %define CONFIG_GBLUR_FILTER 0 -%define CONFIG_GDIGRAB_INDEV 0 -%define CONFIG_GDV_DECODER 0 -%define CONFIG_GDV_DEMUXER 0 -%define CONFIG_GENH_DEMUXER 0 %define CONFIG_GEQ_FILTER 0 -%define CONFIG_GIF_DECODER 0 -%define CONFIG_GIF_DEMUXER 0 -%define CONFIG_GIF_ENCODER 0 -%define CONFIG_GIF_MUXER 0 -%define CONFIG_GOPHER_PROTOCOL 0 %define CONFIG_GRADFUN_FILTER 0 -%define CONFIG_GREMLIN_DPCM_DECODER 0 -%define CONFIG_GSM_DECODER 0 -%define CONFIG_GSM_DEMUXER 0 -%define CONFIG_GSM_MS_AT_DECODER 0 -%define CONFIG_GSM_MS_DECODER 0 -%define CONFIG_GSM_MUXER 0 -%define CONFIG_GSM_PARSER 0 -%define CONFIG_GXF_DEMUXER 0 -%define CONFIG_GXF_MUXER 0 -%define CONFIG_H261_DECODER 0 -%define CONFIG_H261_DEMUXER 0 -%define CONFIG_H261_ENCODER 0 -%define CONFIG_H261_MUXER 0 -%define CONFIG_H261_PARSER 0 -%define CONFIG_H263I_DECODER 0 -%define CONFIG_H263P_DECODER 0 -%define CONFIG_H263P_ENCODER 0 -%define CONFIG_H263_DECODER 0 -%define CONFIG_H263_DEMUXER 0 -%define CONFIG_H263_ENCODER 0 -%define CONFIG_H263_MUXER 0 -%define CONFIG_H263_PARSER 0 -%define CONFIG_H263_V4L2M2M_DECODER 0 -%define CONFIG_H263_V4L2M2M_ENCODER 0 -%define CONFIG_H263_VAAPI_HWACCEL 0 -%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_H264_AMF_ENCODER 0 -%define CONFIG_H264_CRYSTALHD_DECODER 0 -%define CONFIG_H264_CUVID_DECODER 0 -%define CONFIG_H264_D3D11VA2_HWACCEL 0 -%define CONFIG_H264_D3D11VA_HWACCEL 0 -%define CONFIG_H264_DECODER 0 -%define CONFIG_H264_DEMUXER 0 -%define CONFIG_H264_DXVA2_HWACCEL 0 -%define CONFIG_H264_MEDIACODEC_DECODER 0 -%define CONFIG_H264_METADATA_BSF 0 -%define CONFIG_H264_MMAL_DECODER 0 -%define CONFIG_H264_MP4TOANNEXB_BSF 0 -%define CONFIG_H264_MUXER 0 -%define CONFIG_H264_NVDEC_HWACCEL 0 -%define CONFIG_H264_NVENC_ENCODER 0 -%define CONFIG_H264_OMX_ENCODER 0 -%define CONFIG_H264_PARSER 0 -%define CONFIG_H264_QSV_DECODER 0 -%define CONFIG_H264_QSV_ENCODER 0 -%define CONFIG_H264_REDUNDANT_PPS_BSF 0 -%define CONFIG_H264_RKMPP_DECODER 0 -%define CONFIG_H264_V4L2M2M_DECODER 0 -%define CONFIG_H264_V4L2M2M_ENCODER 0 -%define CONFIG_H264_VAAPI_ENCODER 0 -%define CONFIG_H264_VAAPI_HWACCEL 0 -%define CONFIG_H264_VDPAU_HWACCEL 0 -%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_HAAS_FILTER 0 -%define CONFIG_HALDCLUTSRC_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 -%define CONFIG_HAPQA_EXTRACT_BSF 0 -%define CONFIG_HAP_DECODER 0 -%define CONFIG_HAP_ENCODER 0 -%define CONFIG_HASH_MUXER 0 -%define CONFIG_HDCD_FILTER 0 -%define CONFIG_HDS_MUXER 0 -%define CONFIG_HEADPHONE_FILTER 0 -%define CONFIG_HEVC_AMF_ENCODER 0 -%define CONFIG_HEVC_CUVID_DECODER 0 -%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 -%define CONFIG_HEVC_D3D11VA_HWACCEL 0 -%define CONFIG_HEVC_DECODER 0 -%define CONFIG_HEVC_DEMUXER 0 -%define CONFIG_HEVC_DXVA2_HWACCEL 0 -%define CONFIG_HEVC_MEDIACODEC_DECODER 0 -%define CONFIG_HEVC_METADATA_BSF 0 -%define CONFIG_HEVC_MP4TOANNEXB_BSF 0 -%define CONFIG_HEVC_MUXER 0 -%define CONFIG_HEVC_NVDEC_HWACCEL 0 -%define CONFIG_HEVC_NVENC_ENCODER 0 -%define CONFIG_HEVC_PARSER 0 -%define CONFIG_HEVC_QSV_DECODER 0 -%define CONFIG_HEVC_QSV_ENCODER 0 -%define CONFIG_HEVC_RKMPP_DECODER 0 -%define CONFIG_HEVC_V4L2M2M_DECODER 0 -%define CONFIG_HEVC_V4L2M2M_ENCODER 0 -%define CONFIG_HEVC_VAAPI_ENCODER 0 -%define CONFIG_HEVC_VAAPI_HWACCEL 0 -%define CONFIG_HEVC_VDPAU_HWACCEL 0 -%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 -%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 %define CONFIG_HFLIP_FILTER 0 -%define CONFIG_HIGHPASS_FILTER 0 -%define CONFIG_HILBERT_FILTER 0 %define CONFIG_HISTEQ_FILTER 0 %define CONFIG_HISTOGRAM_FILTER 0 -%define CONFIG_HLS_DEMUXER 0 -%define CONFIG_HLS_MUXER 0 -%define CONFIG_HLS_PROTOCOL 0 -%define CONFIG_HNM4_VIDEO_DECODER 0 -%define CONFIG_HNM_DEMUXER 0 %define CONFIG_HQDN3D_FILTER 0 -%define CONFIG_HQX_DECODER 0 %define CONFIG_HQX_FILTER 0 -%define CONFIG_HQ_HQA_DECODER 0 %define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HTTPPROXY_PROTOCOL 0 -%define CONFIG_HTTPS_PROTOCOL 0 -%define CONFIG_HTTP_PROTOCOL 0 %define CONFIG_HUE_FILTER 0 -%define CONFIG_HUFFYUV_DECODER 0 -%define CONFIG_HUFFYUV_ENCODER 0 -%define CONFIG_HWACCELS 0 %define CONFIG_HWDOWNLOAD_FILTER 0 %define CONFIG_HWMAP_FILTER 0 -%define CONFIG_HWUPLOAD_CUDA_FILTER 0 %define CONFIG_HWUPLOAD_FILTER 0 +%define CONFIG_HWUPLOAD_CUDA_FILTER 0 %define CONFIG_HYSTERESIS_FILTER 0 -%define CONFIG_IAC_DECODER 0 -%define CONFIG_ICECAST_PROTOCOL 0 -%define CONFIG_ICO_DEMUXER 0 -%define CONFIG_ICO_MUXER 0 -%define CONFIG_IDCIN_DECODER 0 -%define CONFIG_IDCIN_DEMUXER 0 %define CONFIG_IDET_FILTER 0 -%define CONFIG_IDF_DECODER 0 -%define CONFIG_IDF_DEMUXER 0 -%define CONFIG_IEC61883_INDEV 0 -%define CONFIG_IFF_DEMUXER 0 -%define CONFIG_IFF_ILBM_DECODER 0 -%define CONFIG_ILBC_AT_DECODER 0 -%define CONFIG_ILBC_AT_ENCODER 0 -%define CONFIG_ILBC_DEMUXER 0 -%define CONFIG_ILBC_MUXER 0 %define CONFIG_IL_FILTER 0 -%define CONFIG_IMAGE2PIPE_DEMUXER 0 -%define CONFIG_IMAGE2PIPE_MUXER 0 -%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 -%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 -%define CONFIG_IMAGE2_DEMUXER 0 -%define CONFIG_IMAGE2_MUXER 0 -%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 -%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 -%define CONFIG_IMC_DECODER 0 -%define CONFIG_IMX_DUMP_HEADER_BSF 0 -%define CONFIG_INDEO2_DECODER 0 -%define CONFIG_INDEO3_DECODER 0 -%define CONFIG_INDEO4_DECODER 0 -%define CONFIG_INDEO5_DECODER 0 -%define CONFIG_INDEVS 0 %define CONFIG_INFLATE_FILTER 0 -%define CONFIG_INGENIENT_DEMUXER 0 %define CONFIG_INTERLACE_FILTER 0 %define CONFIG_INTERLEAVE_FILTER 0 -%define CONFIG_INTERPLAY_ACM_DECODER 0 -%define CONFIG_INTERPLAY_DPCM_DECODER 0 -%define CONFIG_INTERPLAY_VIDEO_DECODER 0 -%define CONFIG_IPMOVIE_DEMUXER 0 -%define CONFIG_IPOD_MUXER 0 -%define CONFIG_IRCAM_DEMUXER 0 -%define CONFIG_IRCAM_MUXER 0 -%define CONFIG_ISMV_MUXER 0 -%define CONFIG_ISS_DEMUXER 0 -%define CONFIG_IV8_DEMUXER 0 -%define CONFIG_IVF_DEMUXER 0 -%define CONFIG_IVF_MUXER 0 -%define CONFIG_IVR_DEMUXER 0 -%define CONFIG_JACK_INDEV 0 -%define CONFIG_JACOSUB_DECODER 0 -%define CONFIG_JACOSUB_DEMUXER 0 -%define CONFIG_JACOSUB_MUXER 0 -%define CONFIG_JOIN_FILTER 0 -%define CONFIG_JPEG2000_DECODER 0 -%define CONFIG_JPEG2000_ENCODER 0 -%define CONFIG_JPEGLS_DECODER 0 -%define CONFIG_JPEGLS_ENCODER 0 -%define CONFIG_JV_DECODER 0 -%define CONFIG_JV_DEMUXER 0 %define CONFIG_KERNDEINT_FILTER 0 -%define CONFIG_KGV1_DECODER 0 -%define CONFIG_KMSGRAB_INDEV 0 -%define CONFIG_KMVC_DECODER 0 -%define CONFIG_LADSPA_FILTER 0 -%define CONFIG_LAGARITH_DECODER 0 -%define CONFIG_LATM_MUXER 0 -%define CONFIG_LAVFI_INDEV 0 %define CONFIG_LENSCORRECTION_FILTER 0 -%define CONFIG_LIBAOM_AV1_DECODER 0 -%define CONFIG_LIBAOM_AV1_ENCODER 0 -%define CONFIG_LIBCDIO_INDEV 0 -%define CONFIG_LIBCELT_DECODER 0 -%define CONFIG_LIBCODEC2_DECODER 0 -%define CONFIG_LIBCODEC2_ENCODER 0 -%define CONFIG_LIBDC1394_INDEV 0 -%define CONFIG_LIBFDK_AAC_DECODER 0 -%define CONFIG_LIBFDK_AAC_ENCODER 0 -%define CONFIG_LIBGME_DEMUXER 0 -%define CONFIG_LIBGSM_DECODER 0 -%define CONFIG_LIBGSM_ENCODER 0 -%define CONFIG_LIBGSM_MS_DECODER 0 -%define CONFIG_LIBGSM_MS_ENCODER 0 -%define CONFIG_LIBILBC_DECODER 0 -%define CONFIG_LIBILBC_ENCODER 0 -%define CONFIG_LIBKVAZAAR_ENCODER 0 -%define CONFIG_LIBMODPLUG_DEMUXER 0 -%define CONFIG_LIBMP3LAME_ENCODER 0 -%define CONFIG_LIBNDI_NEWTEK_INDEV 0 -%define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 -%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -%define CONFIG_LIBOPENH264_DECODER 0 -%define CONFIG_LIBOPENH264_ENCODER 0 -%define CONFIG_LIBOPENJPEG_DECODER 0 -%define CONFIG_LIBOPENJPEG_ENCODER 0 -%define CONFIG_LIBOPENMPT_DEMUXER 0 -%define CONFIG_LIBOPUS_DECODER 0 -%define CONFIG_LIBOPUS_ENCODER 0 -%define CONFIG_LIBRSVG_DECODER 0 -%define CONFIG_LIBRTMPE_PROTOCOL 0 -%define CONFIG_LIBRTMPS_PROTOCOL 0 -%define CONFIG_LIBRTMPTE_PROTOCOL 0 -%define CONFIG_LIBRTMPT_PROTOCOL 0 -%define CONFIG_LIBRTMP_PROTOCOL 0 -%define CONFIG_LIBSHINE_ENCODER 0 -%define CONFIG_LIBSMBCLIENT_PROTOCOL 0 -%define CONFIG_LIBSPEEX_DECODER 0 -%define CONFIG_LIBSPEEX_ENCODER 0 -%define CONFIG_LIBSRT_PROTOCOL 0 -%define CONFIG_LIBSSH_PROTOCOL 0 -%define CONFIG_LIBTHEORA_ENCODER 0 -%define CONFIG_LIBTWOLAME_ENCODER 0 %define CONFIG_LIBVMAF_FILTER 0 -%define CONFIG_LIBVORBIS_DECODER 0 -%define CONFIG_LIBVORBIS_ENCODER 0 -%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -%define CONFIG_LIBVPX_VP8_DECODER 0 -%define CONFIG_LIBVPX_VP8_ENCODER 0 -%define CONFIG_LIBVPX_VP9_DECODER 0 -%define CONFIG_LIBVPX_VP9_ENCODER 0 -%define CONFIG_LIBWAVPACK_ENCODER 0 -%define CONFIG_LIBWEBP_ANIM_ENCODER 0 -%define CONFIG_LIBWEBP_ENCODER 0 -%define CONFIG_LIBX262_ENCODER 0 -%define CONFIG_LIBX264RGB_ENCODER 0 -%define CONFIG_LIBX264_ENCODER 0 -%define CONFIG_LIBX265_ENCODER 0 -%define CONFIG_LIBXAVS_ENCODER 0 -%define CONFIG_LIBXVID_ENCODER 0 -%define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -%define CONFIG_LIFE_FILTER 0 %define CONFIG_LIMITER_FILTER 0 -%define CONFIG_LIVE_FLV_DEMUXER 0 -%define CONFIG_LJPEG_ENCODER 0 -%define CONFIG_LMLM4_DEMUXER 0 -%define CONFIG_LOAS_DEMUXER 0 -%define CONFIG_LOCO_DECODER 0 %define CONFIG_LOOP_FILTER 0 -%define CONFIG_LOUDNORM_FILTER 0 -%define CONFIG_LOWPASS_FILTER 0 -%define CONFIG_LRC_DEMUXER 0 -%define CONFIG_LRC_MUXER 0 %define CONFIG_LUMAKEY_FILTER 0 +%define CONFIG_LUT_FILTER 0 %define CONFIG_LUT2_FILTER 0 %define CONFIG_LUT3D_FILTER 0 %define CONFIG_LUTRGB_FILTER 0 %define CONFIG_LUTYUV_FILTER 0 -%define CONFIG_LUT_FILTER 0 -%define CONFIG_LV2_FILTER 0 -%define CONFIG_LVF_DEMUXER 0 -%define CONFIG_LXF_DEMUXER 0 -%define CONFIG_M101_DECODER 0 -%define CONFIG_M4V_DEMUXER 0 -%define CONFIG_M4V_MUXER 0 -%define CONFIG_MACE3_DECODER 0 -%define CONFIG_MACE6_DECODER 0 -%define CONFIG_MAGICYUV_DECODER 0 -%define CONFIG_MAGICYUV_ENCODER 0 -%define CONFIG_MANDELBROT_FILTER 0 %define CONFIG_MASKEDCLAMP_FILTER 0 %define CONFIG_MASKEDMERGE_FILTER 0 -%define CONFIG_MATROSKA_AUDIO_MUXER 0 -%define CONFIG_MATROSKA_DEMUXER 0 -%define CONFIG_MATROSKA_MUXER 0 %define CONFIG_MCDEINT_FILTER 0 -%define CONFIG_MCOMPAND_FILTER 0 -%define CONFIG_MD5_MUXER 0 -%define CONFIG_MD5_PROTOCOL 0 -%define CONFIG_MDEC_DECODER 0 %define CONFIG_MERGEPLANES_FILTER 0 %define CONFIG_MESTIMATE_FILTER 0 %define CONFIG_METADATA_FILTER 0 -%define CONFIG_METASOUND_DECODER 0 -%define CONFIG_MGSTS_DEMUXER 0 -%define CONFIG_MICRODVD_DECODER 0 -%define CONFIG_MICRODVD_DEMUXER 0 -%define CONFIG_MICRODVD_MUXER 0 %define CONFIG_MIDEQUALIZER_FILTER 0 -%define CONFIG_MIMIC_DECODER 0 %define CONFIG_MINTERPOLATE_FILTER 0 -%define CONFIG_MIX_FILTER 0 -%define CONFIG_MJPEG2JPEG_BSF 0 -%define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 -%define CONFIG_MJPEGB_DECODER 0 -%define CONFIG_MJPEG_2000_DEMUXER 0 -%define CONFIG_MJPEG_CUVID_DECODER 0 -%define CONFIG_MJPEG_DECODER 0 -%define CONFIG_MJPEG_DEMUXER 0 -%define CONFIG_MJPEG_ENCODER 0 -%define CONFIG_MJPEG_MUXER 0 -%define CONFIG_MJPEG_NVDEC_HWACCEL 0 -%define CONFIG_MJPEG_PARSER 0 -%define CONFIG_MJPEG_QSV_ENCODER 0 -%define CONFIG_MJPEG_VAAPI_ENCODER 0 -%define CONFIG_MJPEG_VAAPI_HWACCEL 0 -%define CONFIG_MKVTIMESTAMP_V2_MUXER 0 -%define CONFIG_MLP_DECODER 0 -%define CONFIG_MLP_DEMUXER 0 -%define CONFIG_MLP_ENCODER 0 -%define CONFIG_MLP_MUXER 0 -%define CONFIG_MLP_PARSER 0 -%define CONFIG_MLV_DEMUXER 0 -%define CONFIG_MMF_DEMUXER 0 -%define CONFIG_MMF_MUXER 0 -%define CONFIG_MMSH_PROTOCOL 0 -%define CONFIG_MMST_PROTOCOL 0 -%define CONFIG_MMVIDEO_DECODER 0 -%define CONFIG_MM_DEMUXER 0 -%define CONFIG_MOTIONPIXELS_DECODER 0 -%define CONFIG_MOV2TEXTSUB_BSF 0 -%define CONFIG_MOVIE_FILTER 0 -%define CONFIG_MOVTEXT_DECODER 0 -%define CONFIG_MOVTEXT_ENCODER 0 -%define CONFIG_MOV_DEMUXER 0 -%define CONFIG_MOV_MUXER 0 -%define CONFIG_MP1FLOAT_DECODER 0 -%define CONFIG_MP1_AT_DECODER 0 -%define CONFIG_MP1_DECODER 0 -%define CONFIG_MP2FIXED_ENCODER 0 -%define CONFIG_MP2FLOAT_DECODER 0 -%define CONFIG_MP2_AT_DECODER 0 -%define CONFIG_MP2_DECODER 0 -%define CONFIG_MP2_ENCODER 0 -%define CONFIG_MP2_MUXER 0 -%define CONFIG_MP3ADUFLOAT_DECODER 0 -%define CONFIG_MP3ADU_DECODER 0 -%define CONFIG_MP3FLOAT_DECODER 0 -%define CONFIG_MP3ON4FLOAT_DECODER 0 -%define CONFIG_MP3ON4_DECODER 0 -%define CONFIG_MP3_AT_DECODER 0 -%define CONFIG_MP3_DECODER 0 -%define CONFIG_MP3_DEMUXER 0 -%define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 -%define CONFIG_MP3_MUXER 0 -%define CONFIG_MP4_MUXER 0 -%define CONFIG_MPC7_DECODER 0 -%define CONFIG_MPC8_DECODER 0 -%define CONFIG_MPC8_DEMUXER 0 -%define CONFIG_MPC_DEMUXER 0 %define CONFIG_MPDECIMATE_FILTER 0 -%define CONFIG_MPEG1SYSTEM_MUXER 0 -%define CONFIG_MPEG1VCD_MUXER 0 -%define CONFIG_MPEG1VIDEO_DECODER 0 -%define CONFIG_MPEG1VIDEO_ENCODER 0 -%define CONFIG_MPEG1VIDEO_MUXER 0 -%define CONFIG_MPEG1_CUVID_DECODER 0 -%define CONFIG_MPEG1_NVDEC_HWACCEL 0 -%define CONFIG_MPEG1_V4L2M2M_DECODER 0 -%define CONFIG_MPEG1_VDPAU_HWACCEL 0 -%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEG1_XVMC_HWACCEL 0 -%define CONFIG_MPEG2DVD_MUXER 0 -%define CONFIG_MPEG2SVCD_MUXER 0 -%define CONFIG_MPEG2VIDEO_DECODER 0 -%define CONFIG_MPEG2VIDEO_ENCODER 0 -%define CONFIG_MPEG2VIDEO_MUXER 0 -%define CONFIG_MPEG2VOB_MUXER 0 -%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG2_CUVID_DECODER 0 -%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 -%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -%define CONFIG_MPEG2_DXVA2_HWACCEL 0 -%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 -%define CONFIG_MPEG2_METADATA_BSF 0 -%define CONFIG_MPEG2_MMAL_DECODER 0 -%define CONFIG_MPEG2_NVDEC_HWACCEL 0 -%define CONFIG_MPEG2_QSV_DECODER 0 -%define CONFIG_MPEG2_QSV_ENCODER 0 -%define CONFIG_MPEG2_V4L2M2M_DECODER 0 -%define CONFIG_MPEG2_VAAPI_ENCODER 0 -%define CONFIG_MPEG2_VAAPI_HWACCEL 0 -%define CONFIG_MPEG2_VDPAU_HWACCEL 0 -%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEG2_XVMC_HWACCEL 0 -%define CONFIG_MPEG4VIDEO_PARSER 0 -%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MPEG4_CUVID_DECODER 0 -%define CONFIG_MPEG4_DECODER 0 -%define CONFIG_MPEG4_ENCODER 0 -%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -%define CONFIG_MPEG4_MMAL_DECODER 0 -%define CONFIG_MPEG4_NVDEC_HWACCEL 0 -%define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 -%define CONFIG_MPEG4_V4L2M2M_DECODER 0 -%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 -%define CONFIG_MPEG4_VAAPI_HWACCEL 0 -%define CONFIG_MPEG4_VDPAU_HWACCEL 0 -%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -%define CONFIG_MPEGAUDIO_PARSER 0 -%define CONFIG_MPEGPS_DEMUXER 0 -%define CONFIG_MPEGTSRAW_DEMUXER 0 -%define CONFIG_MPEGTS_DEMUXER 0 -%define CONFIG_MPEGTS_MUXER 0 -%define CONFIG_MPEGVIDEO_DECODER 0 -%define CONFIG_MPEGVIDEO_DEMUXER 0 -%define CONFIG_MPEGVIDEO_PARSER 0 -%define CONFIG_MPJPEG_DEMUXER 0 -%define CONFIG_MPJPEG_MUXER 0 -%define CONFIG_MPL2_DECODER 0 -%define CONFIG_MPL2_DEMUXER 0 -%define CONFIG_MPSUB_DEMUXER 0 -%define CONFIG_MPTESTSRC_FILTER 0 -%define CONFIG_MSA1_DECODER 0 -%define CONFIG_MSCC_DECODER 0 -%define CONFIG_MSF_DEMUXER 0 -%define CONFIG_MSMPEG4V1_DECODER 0 -%define CONFIG_MSMPEG4V2_DECODER 0 -%define CONFIG_MSMPEG4V2_ENCODER 0 -%define CONFIG_MSMPEG4V3_DECODER 0 -%define CONFIG_MSMPEG4V3_ENCODER 0 -%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -%define CONFIG_MSNWC_TCP_DEMUXER 0 -%define CONFIG_MSRLE_DECODER 0 -%define CONFIG_MSS1_DECODER 0 -%define CONFIG_MSS2_DECODER 0 -%define CONFIG_MSVIDEO1_DECODER 0 -%define CONFIG_MSVIDEO1_ENCODER 0 -%define CONFIG_MSZH_DECODER 0 -%define CONFIG_MTAF_DEMUXER 0 -%define CONFIG_MTS2_DECODER 0 -%define CONFIG_MTV_DEMUXER 0 -%define CONFIG_MUSX_DEMUXER 0 -%define CONFIG_MUXERS 0 -%define CONFIG_MVC1_DECODER 0 -%define CONFIG_MVC2_DECODER 0 -%define CONFIG_MVI_DEMUXER 0 -%define CONFIG_MV_DEMUXER 0 -%define CONFIG_MXF_D10_MUXER 0 -%define CONFIG_MXF_DEMUXER 0 -%define CONFIG_MXF_MUXER 0 -%define CONFIG_MXF_OPATOM_MUXER 0 -%define CONFIG_MXG_DEMUXER 0 -%define CONFIG_MXPEG_DECODER 0 -%define CONFIG_NC_DEMUXER 0 %define CONFIG_NEGATE_FILTER 0 -%define CONFIG_NELLYMOSER_DECODER 0 -%define CONFIG_NELLYMOSER_ENCODER 0 -%define CONFIG_NISTSPHERE_DEMUXER 0 %define CONFIG_NLMEANS_FILTER 0 %define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 -%define CONFIG_NOISE_BSF 0 %define CONFIG_NOISE_FILTER 0 -%define CONFIG_NORMALIZE_FILTER 0 -%define CONFIG_NSP_DEMUXER 0 -%define CONFIG_NSV_DEMUXER 0 -%define CONFIG_NULLSINK_FILTER 0 -%define CONFIG_NULLSRC_FILTER 0 %define CONFIG_NULL_FILTER 0 -%define CONFIG_NULL_MUXER 0 -%define CONFIG_NUT_DEMUXER 0 -%define CONFIG_NUT_MUXER 0 -%define CONFIG_NUV_DECODER 0 -%define CONFIG_NUV_DEMUXER 0 -%define CONFIG_NVENC_ENCODER 0 -%define CONFIG_NVENC_H264_ENCODER 0 -%define CONFIG_NVENC_HEVC_ENCODER 0 %define CONFIG_OCR_FILTER 0 %define CONFIG_OCV_FILTER 0 -%define CONFIG_OGA_MUXER 0 -%define CONFIG_OGG_DEMUXER 0 -%define CONFIG_OGG_MUXER 0 -%define CONFIG_OGV_MUXER 0 -%define CONFIG_OMA_DEMUXER 0 -%define CONFIG_OMA_MUXER 0 -%define CONFIG_ON2AVC_DECODER 0 -%define CONFIG_OPENAL_INDEV 0 -%define CONFIG_OPENCLSRC_FILTER 0 -%define CONFIG_OPENGL_OUTDEV 0 -%define CONFIG_OPUS_DECODER 0 -%define CONFIG_OPUS_ENCODER 0 -%define CONFIG_OPUS_MUXER 0 -%define CONFIG_OPUS_PARSER 0 %define CONFIG_OSCILLOSCOPE_FILTER 0 -%define CONFIG_OSS_INDEV 0 -%define CONFIG_OSS_OUTDEV 0 -%define CONFIG_OUTDEVS 0 %define CONFIG_OVERLAY_FILTER 0 -%define CONFIG_OVERLAY_OPENCL_FILTER 0 -%define CONFIG_OVERLAY_QSV_FILTER 0 %define CONFIG_OWDENOISE_FILTER 0 %define CONFIG_PAD_FILTER 0 -%define CONFIG_PAF_AUDIO_DECODER 0 -%define CONFIG_PAF_DEMUXER 0 -%define CONFIG_PAF_VIDEO_DECODER 0 %define CONFIG_PALETTEGEN_FILTER 0 %define CONFIG_PALETTEUSE_FILTER 0 -%define CONFIG_PAM_DECODER 0 -%define CONFIG_PAM_ENCODER 0 -%define CONFIG_PAN_FILTER 0 -%define CONFIG_PBM_DECODER 0 -%define CONFIG_PBM_ENCODER 0 -%define CONFIG_PCM_ALAW_AT_DECODER 0 -%define CONFIG_PCM_ALAW_AT_ENCODER 0 -%define CONFIG_PCM_ALAW_DECODER 0 -%define CONFIG_PCM_ALAW_DEMUXER 0 -%define CONFIG_PCM_ALAW_ENCODER 0 -%define CONFIG_PCM_ALAW_MUXER 0 -%define CONFIG_PCM_BLURAY_DECODER 0 -%define CONFIG_PCM_DVD_DECODER 0 -%define CONFIG_PCM_F16LE_DECODER 0 -%define CONFIG_PCM_F24LE_DECODER 0 -%define CONFIG_PCM_F32BE_DECODER 0 -%define CONFIG_PCM_F32BE_DEMUXER 0 -%define CONFIG_PCM_F32BE_ENCODER 0 -%define CONFIG_PCM_F32BE_MUXER 0 -%define CONFIG_PCM_F32LE_DECODER 0 -%define CONFIG_PCM_F32LE_DEMUXER 0 -%define CONFIG_PCM_F32LE_ENCODER 0 -%define CONFIG_PCM_F32LE_MUXER 0 -%define CONFIG_PCM_F64BE_DECODER 0 -%define CONFIG_PCM_F64BE_DEMUXER 0 -%define CONFIG_PCM_F64BE_ENCODER 0 -%define CONFIG_PCM_F64BE_MUXER 0 -%define CONFIG_PCM_F64LE_DECODER 0 -%define CONFIG_PCM_F64LE_DEMUXER 0 -%define CONFIG_PCM_F64LE_ENCODER 0 -%define CONFIG_PCM_F64LE_MUXER 0 -%define CONFIG_PCM_LXF_DECODER 0 -%define CONFIG_PCM_MULAW_AT_DECODER 0 -%define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_PCM_MULAW_DECODER 0 -%define CONFIG_PCM_MULAW_DEMUXER 0 -%define CONFIG_PCM_MULAW_ENCODER 0 -%define CONFIG_PCM_MULAW_MUXER 0 -%define CONFIG_PCM_S16BE_DECODER 0 -%define CONFIG_PCM_S16BE_DEMUXER 0 -%define CONFIG_PCM_S16BE_ENCODER 0 -%define CONFIG_PCM_S16BE_MUXER 0 -%define CONFIG_PCM_S16BE_PLANAR_DECODER 0 -%define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S16LE_DECODER 0 -%define CONFIG_PCM_S16LE_DEMUXER 0 -%define CONFIG_PCM_S16LE_ENCODER 0 -%define CONFIG_PCM_S16LE_MUXER 0 -%define CONFIG_PCM_S16LE_PLANAR_DECODER 0 -%define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S24BE_DECODER 0 -%define CONFIG_PCM_S24BE_DEMUXER 0 -%define CONFIG_PCM_S24BE_ENCODER 0 -%define CONFIG_PCM_S24BE_MUXER 0 -%define CONFIG_PCM_S24DAUD_DECODER 0 -%define CONFIG_PCM_S24DAUD_ENCODER 0 -%define CONFIG_PCM_S24LE_DECODER 0 -%define CONFIG_PCM_S24LE_DEMUXER 0 -%define CONFIG_PCM_S24LE_ENCODER 0 -%define CONFIG_PCM_S24LE_MUXER 0 -%define CONFIG_PCM_S24LE_PLANAR_DECODER 0 -%define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S32BE_DECODER 0 -%define CONFIG_PCM_S32BE_DEMUXER 0 -%define CONFIG_PCM_S32BE_ENCODER 0 -%define CONFIG_PCM_S32BE_MUXER 0 -%define CONFIG_PCM_S32LE_DECODER 0 -%define CONFIG_PCM_S32LE_DEMUXER 0 -%define CONFIG_PCM_S32LE_ENCODER 0 -%define CONFIG_PCM_S32LE_MUXER 0 -%define CONFIG_PCM_S32LE_PLANAR_DECODER 0 -%define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -%define CONFIG_PCM_S64BE_DECODER 0 -%define CONFIG_PCM_S64BE_ENCODER 0 -%define CONFIG_PCM_S64LE_DECODER 0 -%define CONFIG_PCM_S64LE_ENCODER 0 -%define CONFIG_PCM_S8_DECODER 0 -%define CONFIG_PCM_S8_DEMUXER 0 -%define CONFIG_PCM_S8_ENCODER 0 -%define CONFIG_PCM_S8_MUXER 0 -%define CONFIG_PCM_S8_PLANAR_DECODER 0 -%define CONFIG_PCM_S8_PLANAR_ENCODER 0 -%define CONFIG_PCM_U16BE_DECODER 0 -%define CONFIG_PCM_U16BE_DEMUXER 0 -%define CONFIG_PCM_U16BE_ENCODER 0 -%define CONFIG_PCM_U16BE_MUXER 0 -%define CONFIG_PCM_U16LE_DECODER 0 -%define CONFIG_PCM_U16LE_DEMUXER 0 -%define CONFIG_PCM_U16LE_ENCODER 0 -%define CONFIG_PCM_U16LE_MUXER 0 -%define CONFIG_PCM_U24BE_DECODER 0 -%define CONFIG_PCM_U24BE_DEMUXER 0 -%define CONFIG_PCM_U24BE_ENCODER 0 -%define CONFIG_PCM_U24BE_MUXER 0 -%define CONFIG_PCM_U24LE_DECODER 0 -%define CONFIG_PCM_U24LE_DEMUXER 0 -%define CONFIG_PCM_U24LE_ENCODER 0 -%define CONFIG_PCM_U24LE_MUXER 0 -%define CONFIG_PCM_U32BE_DECODER 0 -%define CONFIG_PCM_U32BE_DEMUXER 0 -%define CONFIG_PCM_U32BE_ENCODER 0 -%define CONFIG_PCM_U32BE_MUXER 0 -%define CONFIG_PCM_U32LE_DECODER 0 -%define CONFIG_PCM_U32LE_DEMUXER 0 -%define CONFIG_PCM_U32LE_ENCODER 0 -%define CONFIG_PCM_U32LE_MUXER 0 -%define CONFIG_PCM_U8_DECODER 0 -%define CONFIG_PCM_U8_DEMUXER 0 -%define CONFIG_PCM_U8_ENCODER 0 -%define CONFIG_PCM_U8_MUXER 0 -%define CONFIG_PCM_ZORK_DECODER 0 -%define CONFIG_PCX_DECODER 0 -%define CONFIG_PCX_ENCODER 0 %define CONFIG_PERMS_FILTER 0 %define CONFIG_PERSPECTIVE_FILTER 0 -%define CONFIG_PGMYUV_DECODER 0 -%define CONFIG_PGMYUV_ENCODER 0 -%define CONFIG_PGM_DECODER 0 -%define CONFIG_PGM_ENCODER 0 -%define CONFIG_PGSSUB_DECODER 0 %define CONFIG_PHASE_FILTER 0 -%define CONFIG_PICTOR_DECODER 0 -%define CONFIG_PIPE_PROTOCOL 0 %define CONFIG_PIXDESCTEST_FILTER 0 -%define CONFIG_PIXLET_DECODER 0 %define CONFIG_PIXSCOPE_FILTER 0 -%define CONFIG_PJS_DECODER 0 -%define CONFIG_PJS_DEMUXER 0 -%define CONFIG_PMP_DEMUXER 0 -%define CONFIG_PNG_DECODER 0 -%define CONFIG_PNG_ENCODER 0 -%define CONFIG_PNG_PARSER 0 -%define CONFIG_PNM_PARSER 0 -%define CONFIG_PP7_FILTER 0 -%define CONFIG_PPM_DECODER 0 -%define CONFIG_PPM_ENCODER 0 %define CONFIG_PP_FILTER 0 +%define CONFIG_PP7_FILTER 0 %define CONFIG_PREMULTIPLY_FILTER 0 %define CONFIG_PREWITT_FILTER 0 -%define CONFIG_PROCAMP_VAAPI_FILTER 0 -%define CONFIG_PROGRAM_OPENCL_FILTER 0 -%define CONFIG_PROMPEG_PROTOCOL 0 -%define CONFIG_PRORES_AW_ENCODER 0 -%define CONFIG_PRORES_DECODER 0 -%define CONFIG_PRORES_ENCODER 0 -%define CONFIG_PRORES_KS_ENCODER 0 -%define CONFIG_PRORES_LGPL_DECODER 0 -%define CONFIG_PROTOCOLS 0 -%define CONFIG_PSD_DECODER 0 %define CONFIG_PSEUDOCOLOR_FILTER 0 %define CONFIG_PSNR_FILTER 0 -%define CONFIG_PSP_MUXER 0 -%define CONFIG_PTX_DECODER 0 %define CONFIG_PULLUP_FILTER 0 -%define CONFIG_PULSE_INDEV 0 -%define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_PVA_DEMUXER 0 -%define CONFIG_PVF_DEMUXER 0 -%define CONFIG_QCELP_DECODER 0 -%define CONFIG_QCP_DEMUXER 0 -%define CONFIG_QDM2_AT_DECODER 0 -%define CONFIG_QDM2_DECODER 0 -%define CONFIG_QDMC_AT_DECODER 0 -%define CONFIG_QDMC_DECODER 0 -%define CONFIG_QDRAW_DECODER 0 -%define CONFIG_QPEG_DECODER 0 %define CONFIG_QP_FILTER 0 -%define CONFIG_QTRLE_DECODER 0 -%define CONFIG_QTRLE_ENCODER 0 -%define CONFIG_R10K_DECODER 0 -%define CONFIG_R10K_ENCODER 0 -%define CONFIG_R210_DECODER 0 -%define CONFIG_R210_ENCODER 0 -%define CONFIG_R3D_DEMUXER 0 -%define CONFIG_RALF_DECODER 0 %define CONFIG_RANDOM_FILTER 0 -%define CONFIG_RAWVIDEO_DECODER 0 -%define CONFIG_RAWVIDEO_DEMUXER 0 -%define CONFIG_RAWVIDEO_ENCODER 0 -%define CONFIG_RAWVIDEO_MUXER 0 -%define CONFIG_RA_144_DECODER 0 -%define CONFIG_RA_144_ENCODER 0 -%define CONFIG_RA_288_DECODER 0 %define CONFIG_READEIA608_FILTER 0 %define CONFIG_READVITC_FILTER 0 -%define CONFIG_REALTEXT_DECODER 0 -%define CONFIG_REALTEXT_DEMUXER 0 %define CONFIG_REALTIME_FILTER 0 -%define CONFIG_REDSPARK_DEMUXER 0 %define CONFIG_REMAP_FILTER 0 %define CONFIG_REMOVEGRAIN_FILTER 0 %define CONFIG_REMOVELOGO_FILTER 0 -%define CONFIG_REMOVE_EXTRADATA_BSF 0 %define CONFIG_REPEATFIELDS_FILTER 0 -%define CONFIG_REPLAYGAIN_FILTER 0 -%define CONFIG_RESAMPLE_FILTER 0 %define CONFIG_REVERSE_FILTER 0 -%define CONFIG_RGBTESTSRC_FILTER 0 -%define CONFIG_RL2_DECODER 0 -%define CONFIG_RL2_DEMUXER 0 -%define CONFIG_RM_DEMUXER 0 -%define CONFIG_RM_MUXER 0 %define CONFIG_ROBERTS_FILTER 0 -%define CONFIG_ROQ_DECODER 0 -%define CONFIG_ROQ_DEMUXER 0 -%define CONFIG_ROQ_DPCM_DECODER 0 -%define CONFIG_ROQ_DPCM_ENCODER 0 -%define CONFIG_ROQ_ENCODER 0 -%define CONFIG_ROQ_MUXER 0 %define CONFIG_ROTATE_FILTER 0 -%define CONFIG_RPL_DEMUXER 0 -%define CONFIG_RPZA_DECODER 0 -%define CONFIG_RSCC_DECODER 0 -%define CONFIG_RSD_DEMUXER 0 -%define CONFIG_RSO_DEMUXER 0 -%define CONFIG_RSO_MUXER 0 -%define CONFIG_RTMPE_PROTOCOL 0 -%define CONFIG_RTMPS_PROTOCOL 0 -%define CONFIG_RTMPTE_PROTOCOL 0 -%define CONFIG_RTMPTS_PROTOCOL 0 -%define CONFIG_RTMPT_PROTOCOL 0 -%define CONFIG_RTMP_PROTOCOL 0 -%define CONFIG_RTP_DEMUXER 0 -%define CONFIG_RTP_MPEGTS_MUXER 0 -%define CONFIG_RTP_MUXER 0 -%define CONFIG_RTP_PROTOCOL 0 -%define CONFIG_RTSP_DEMUXER 0 -%define CONFIG_RTSP_MUXER 0 -%define CONFIG_RUBBERBAND_FILTER 0 -%define CONFIG_RV10_DECODER 0 -%define CONFIG_RV10_ENCODER 0 -%define CONFIG_RV20_DECODER 0 -%define CONFIG_RV20_ENCODER 0 -%define CONFIG_RV30_DECODER 0 -%define CONFIG_RV30_PARSER 0 -%define CONFIG_RV40_DECODER 0 -%define CONFIG_RV40_PARSER 0 -%define CONFIG_S302M_DECODER 0 -%define CONFIG_S302M_ENCODER 0 -%define CONFIG_S337M_DEMUXER 0 %define CONFIG_SAB_FILTER 0 -%define CONFIG_SAMI_DECODER 0 -%define CONFIG_SAMI_DEMUXER 0 -%define CONFIG_SANM_DECODER 0 -%define CONFIG_SAP_DEMUXER 0 -%define CONFIG_SAP_MUXER 0 -%define CONFIG_SBC_DECODER 0 -%define CONFIG_SBC_DEMUXER 0 -%define CONFIG_SBC_ENCODER 0 -%define CONFIG_SBC_MUXER 0 -%define CONFIG_SBC_PARSER 0 -%define CONFIG_SBG_DEMUXER 0 -%define CONFIG_SCALE2REF_FILTER 0 -%define CONFIG_SCALE_CUDA_FILTER 0 %define CONFIG_SCALE_FILTER 0 +%define CONFIG_SCALE_CUDA_FILTER 0 %define CONFIG_SCALE_NPP_FILTER 0 %define CONFIG_SCALE_QSV_FILTER 0 %define CONFIG_SCALE_VAAPI_FILTER 0 -%define CONFIG_SCC_DEMUXER 0 -%define CONFIG_SCC_MUXER 0 -%define CONFIG_SCPR_DECODER 0 -%define CONFIG_SCREENPRESSO_DECODER 0 -%define CONFIG_SCTP_PROTOCOL 0 -%define CONFIG_SDL2_OUTDEV 0 -%define CONFIG_SDP_DEMUXER 0 -%define CONFIG_SDR2_DEMUXER 0 -%define CONFIG_SDS_DEMUXER 0 -%define CONFIG_SDX2_DPCM_DECODER 0 -%define CONFIG_SDX_DEMUXER 0 -%define CONFIG_SEGAFILM_DEMUXER 0 -%define CONFIG_SEGAFILM_MUXER 0 -%define CONFIG_SEGMENT_MUXER 0 -%define CONFIG_SELECTIVECOLOR_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 +%define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 %define CONFIG_SEPARATEFIELDS_FILTER 0 %define CONFIG_SETDAR_FILTER 0 %define CONFIG_SETFIELD_FILTER 0 %define CONFIG_SETPTS_FILTER 0 -%define CONFIG_SETRANGE_FILTER 0 %define CONFIG_SETSAR_FILTER 0 %define CONFIG_SETTB_FILTER 0 -%define CONFIG_SGIRLE_DECODER 0 -%define CONFIG_SGI_DECODER 0 -%define CONFIG_SGI_ENCODER 0 -%define CONFIG_SHARPNESS_VAAPI_FILTER 0 -%define CONFIG_SHEERVIDEO_DECODER 0 -%define CONFIG_SHORTEN_DECODER 0 -%define CONFIG_SHORTEN_DEMUXER 0 -%define CONFIG_SHOWCQT_FILTER 0 -%define CONFIG_SHOWFREQS_FILTER 0 %define CONFIG_SHOWINFO_FILTER 0 %define CONFIG_SHOWPALETTE_FILTER 0 -%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 -%define CONFIG_SHOWSPECTRUM_FILTER 0 -%define CONFIG_SHOWVOLUME_FILTER 0 -%define CONFIG_SHOWWAVESPIC_FILTER 0 -%define CONFIG_SHOWWAVES_FILTER 0 %define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 -%define CONFIG_SIDECHAINCOMPRESS_FILTER 0 -%define CONFIG_SIDECHAINGATE_FILTER 0 %define CONFIG_SIDEDATA_FILTER 0 -%define CONFIG_SIFF_DEMUXER 0 %define CONFIG_SIGNALSTATS_FILTER 0 %define CONFIG_SIGNATURE_FILTER 0 -%define CONFIG_SILENCEDETECT_FILTER 0 -%define CONFIG_SILENCEREMOVE_FILTER 0 -%define CONFIG_SINE_FILTER 0 -%define CONFIG_SINGLEJPEG_MUXER 0 -%define CONFIG_SIPR_DECODER 0 -%define CONFIG_SIPR_PARSER 0 -%define CONFIG_SLN_DEMUXER 0 -%define CONFIG_SMACKAUD_DECODER 0 -%define CONFIG_SMACKER_DECODER 0 -%define CONFIG_SMACKER_DEMUXER 0 %define CONFIG_SMARTBLUR_FILTER 0 -%define CONFIG_SMC_DECODER 0 -%define CONFIG_SMJPEG_DEMUXER 0 -%define CONFIG_SMJPEG_MUXER 0 -%define CONFIG_SMOOTHSTREAMING_MUXER 0 -%define CONFIG_SMPTEBARS_FILTER 0 -%define CONFIG_SMPTEHDBARS_FILTER 0 -%define CONFIG_SMUSH_DEMUXER 0 -%define CONFIG_SMVJPEG_DECODER 0 -%define CONFIG_SNDIO_INDEV 0 -%define CONFIG_SNDIO_OUTDEV 0 -%define CONFIG_SNOW_DECODER 0 -%define CONFIG_SNOW_ENCODER 0 %define CONFIG_SOBEL_FILTER 0 -%define CONFIG_SOFALIZER_FILTER 0 -%define CONFIG_SOL_DEMUXER 0 -%define CONFIG_SOL_DPCM_DECODER 0 -%define CONFIG_SONIC_DECODER 0 -%define CONFIG_SONIC_ENCODER 0 -%define CONFIG_SONIC_LS_ENCODER 0 -%define CONFIG_SOX_DEMUXER 0 -%define CONFIG_SOX_MUXER 0 -%define CONFIG_SP5X_DECODER 0 -%define CONFIG_SPDIF_DEMUXER 0 -%define CONFIG_SPDIF_MUXER 0 -%define CONFIG_SPECTRUMSYNTH_FILTER 0 -%define CONFIG_SPEEDHQ_DECODER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 -%define CONFIG_SPX_MUXER 0 -%define CONFIG_SRGC_DECODER 0 -%define CONFIG_SRTP_PROTOCOL 0 -%define CONFIG_SRT_DECODER 0 -%define CONFIG_SRT_DEMUXER 0 -%define CONFIG_SRT_ENCODER 0 -%define CONFIG_SRT_MUXER 0 -%define CONFIG_SSA_DECODER 0 -%define CONFIG_SSA_ENCODER 0 %define CONFIG_SSIM_FILTER 0 %define CONFIG_STEREO3D_FILTER 0 -%define CONFIG_STEREOTOOLS_FILTER 0 -%define CONFIG_STEREOWIDEN_FILTER 0 -%define CONFIG_STL_DECODER 0 -%define CONFIG_STL_DEMUXER 0 %define CONFIG_STREAMSELECT_FILTER 0 -%define CONFIG_STREAM_SEGMENT_MUXER 0 -%define CONFIG_STR_DEMUXER 0 -%define CONFIG_SUBFILE_PROTOCOL 0 -%define CONFIG_SUBRIP_DECODER 0 -%define CONFIG_SUBRIP_ENCODER 0 %define CONFIG_SUBTITLES_FILTER 0 -%define CONFIG_SUBVIEWER1_DECODER 0 -%define CONFIG_SUBVIEWER1_DEMUXER 0 -%define CONFIG_SUBVIEWER_DECODER 0 -%define CONFIG_SUBVIEWER_DEMUXER 0 -%define CONFIG_SUNRAST_DECODER 0 -%define CONFIG_SUNRAST_ENCODER 0 %define CONFIG_SUPER2XSAI_FILTER 0 -%define CONFIG_SUPEREQUALIZER_FILTER 0 -%define CONFIG_SUP_DEMUXER 0 -%define CONFIG_SUP_MUXER 0 -%define CONFIG_SURROUND_FILTER 0 -%define CONFIG_SVAG_DEMUXER 0 -%define CONFIG_SVQ1_DECODER 0 -%define CONFIG_SVQ1_ENCODER 0 -%define CONFIG_SVQ3_DECODER 0 %define CONFIG_SWAPRECT_FILTER 0 %define CONFIG_SWAPUV_FILTER 0 -%define CONFIG_SWF_DEMUXER 0 -%define CONFIG_SWF_MUXER 0 -%define CONFIG_TAK_DECODER 0 -%define CONFIG_TAK_DEMUXER 0 -%define CONFIG_TAK_PARSER 0 -%define CONFIG_TARGA_DECODER 0 -%define CONFIG_TARGA_ENCODER 0 -%define CONFIG_TARGA_Y216_DECODER 0 %define CONFIG_TBLEND_FILTER 0 -%define CONFIG_TCP_PROTOCOL 0 -%define CONFIG_TDSC_DECODER 0 -%define CONFIG_TEDCAPTIONS_DEMUXER 0 -%define CONFIG_TEE_MUXER 0 -%define CONFIG_TEE_PROTOCOL 0 %define CONFIG_TELECINE_FILTER 0 -%define CONFIG_TESTSRC2_FILTER 0 -%define CONFIG_TESTSRC_FILTER 0 -%define CONFIG_TEXT2MOVSUB_BSF 0 -%define CONFIG_TEXT_DECODER 0 -%define CONFIG_TEXT_ENCODER 0 -%define CONFIG_TG2_MUXER 0 -%define CONFIG_TGP_MUXER 0 -%define CONFIG_THEORA_DECODER 0 -%define CONFIG_THP_DECODER 0 -%define CONFIG_THP_DEMUXER 0 -%define CONFIG_THREEDOSTR_DEMUXER 0 %define CONFIG_THRESHOLD_FILTER 0 -%define CONFIG_THUMBNAIL_CUDA_FILTER 0 %define CONFIG_THUMBNAIL_FILTER 0 -%define CONFIG_TIERTEXSEQVIDEO_DECODER 0 -%define CONFIG_TIERTEXSEQ_DEMUXER 0 -%define CONFIG_TIFF_DECODER 0 -%define CONFIG_TIFF_ENCODER 0 +%define CONFIG_THUMBNAIL_CUDA_FILTER 0 %define CONFIG_TILE_FILTER 0 %define CONFIG_TINTERLACE_FILTER 0 -%define CONFIG_TLS_PROTOCOL 0 %define CONFIG_TLUT2_FILTER 0 -%define CONFIG_TMV_DECODER 0 -%define CONFIG_TMV_DEMUXER 0 %define CONFIG_TONEMAP_FILTER 0 -%define CONFIG_TRACE_HEADERS_BSF 0 %define CONFIG_TRANSPOSE_FILTER 0 -%define CONFIG_TREBLE_FILTER 0 -%define CONFIG_TREMOLO_FILTER 0 %define CONFIG_TRIM_FILTER 0 -%define CONFIG_TRUEHD_DECODER 0 -%define CONFIG_TRUEHD_DEMUXER 0 -%define CONFIG_TRUEHD_ENCODER 0 -%define CONFIG_TRUEHD_MUXER 0 -%define CONFIG_TRUEMOTION1_DECODER 0 -%define CONFIG_TRUEMOTION2RT_DECODER 0 -%define CONFIG_TRUEMOTION2_DECODER 0 -%define CONFIG_TRUESPEECH_DECODER 0 -%define CONFIG_TSCC2_DECODER 0 -%define CONFIG_TSCC_DECODER 0 -%define CONFIG_TTA_DECODER 0 -%define CONFIG_TTA_DEMUXER 0 -%define CONFIG_TTA_ENCODER 0 -%define CONFIG_TTA_MUXER 0 -%define CONFIG_TTY_DEMUXER 0 -%define CONFIG_TWINVQ_DECODER 0 -%define CONFIG_TXD_DECODER 0 -%define CONFIG_TXD_DEMUXER 0 -%define CONFIG_TY_DEMUXER 0 -%define CONFIG_UDPLITE_PROTOCOL 0 -%define CONFIG_UDP_PROTOCOL 0 -%define CONFIG_ULTI_DECODER 0 -%define CONFIG_UNCODEDFRAMECRC_MUXER 0 -%define CONFIG_UNIX_PROTOCOL 0 %define CONFIG_UNPREMULTIPLY_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 -%define CONFIG_UNSHARP_OPENCL_FILTER 0 %define CONFIG_USPP_FILTER 0 -%define CONFIG_UTVIDEO_DECODER 0 -%define CONFIG_UTVIDEO_ENCODER 0 -%define CONFIG_V210X_DECODER 0 -%define CONFIG_V210X_DEMUXER 0 -%define CONFIG_V210_DECODER 0 -%define CONFIG_V210_DEMUXER 0 -%define CONFIG_V210_ENCODER 0 -%define CONFIG_V308_DECODER 0 -%define CONFIG_V308_ENCODER 0 -%define CONFIG_V408_DECODER 0 -%define CONFIG_V408_ENCODER 0 -%define CONFIG_V410_DECODER 0 -%define CONFIG_V410_ENCODER 0 -%define CONFIG_V4L2_INDEV 0 -%define CONFIG_V4L2_OUTDEV 0 %define CONFIG_VAGUEDENOISER_FILTER 0 -%define CONFIG_VAG_DEMUXER 0 -%define CONFIG_VBLE_DECODER 0 -%define CONFIG_VB_DECODER 0 -%define CONFIG_VC1IMAGE_DECODER 0 -%define CONFIG_VC1T_DEMUXER 0 -%define CONFIG_VC1T_MUXER 0 -%define CONFIG_VC1_CRYSTALHD_DECODER 0 -%define CONFIG_VC1_CUVID_DECODER 0 -%define CONFIG_VC1_D3D11VA2_HWACCEL 0 -%define CONFIG_VC1_D3D11VA_HWACCEL 0 -%define CONFIG_VC1_DECODER 0 -%define CONFIG_VC1_DEMUXER 0 -%define CONFIG_VC1_DXVA2_HWACCEL 0 -%define CONFIG_VC1_MMAL_DECODER 0 -%define CONFIG_VC1_MUXER 0 -%define CONFIG_VC1_NVDEC_HWACCEL 0 -%define CONFIG_VC1_PARSER 0 -%define CONFIG_VC1_QSV_DECODER 0 -%define CONFIG_VC1_V4L2M2M_DECODER 0 -%define CONFIG_VC1_VAAPI_HWACCEL 0 -%define CONFIG_VC1_VDPAU_HWACCEL 0 -%define CONFIG_VC2_ENCODER 0 -%define CONFIG_VCR1_DECODER 0 %define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 -%define CONFIG_VFRDET_FILTER 0 -%define CONFIG_VFWCAP_INDEV 0 -%define CONFIG_VIBRATO_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 %define CONFIG_VIDSTABTRANSFORM_FILTER 0 %define CONFIG_VIGNETTE_FILTER 0 -%define CONFIG_VIVO_DEMUXER 0 %define CONFIG_VMAFMOTION_FILTER 0 -%define CONFIG_VMDAUDIO_DECODER 0 -%define CONFIG_VMDVIDEO_DECODER 0 -%define CONFIG_VMD_DEMUXER 0 -%define CONFIG_VMNC_DECODER 0 -%define CONFIG_VOBSUB_DEMUXER 0 -%define CONFIG_VOC_DEMUXER 0 -%define CONFIG_VOC_MUXER 0 -%define CONFIG_VOLUMEDETECT_FILTER 0 -%define CONFIG_VOLUME_FILTER 0 -%define CONFIG_VORBIS_DECODER 0 -%define CONFIG_VORBIS_ENCODER 0 -%define CONFIG_VORBIS_PARSER 0 -%define CONFIG_VP3_DECODER 0 -%define CONFIG_VP3_PARSER 0 -%define CONFIG_VP5_DECODER 0 -%define CONFIG_VP6A_DECODER 0 -%define CONFIG_VP6F_DECODER 0 -%define CONFIG_VP6_DECODER 0 -%define CONFIG_VP7_DECODER 0 -%define CONFIG_VP8_CUVID_DECODER 0 -%define CONFIG_VP8_MEDIACODEC_DECODER 0 -%define CONFIG_VP8_NVDEC_HWACCEL 0 -%define CONFIG_VP8_QSV_DECODER 0 -%define CONFIG_VP8_RKMPP_DECODER 0 -%define CONFIG_VP8_V4L2M2M_DECODER 0 -%define CONFIG_VP8_V4L2M2M_ENCODER 0 -%define CONFIG_VP8_VAAPI_ENCODER 0 -%define CONFIG_VP8_VAAPI_HWACCEL 0 -%define CONFIG_VP9_CUVID_DECODER 0 -%define CONFIG_VP9_D3D11VA2_HWACCEL 0 -%define CONFIG_VP9_D3D11VA_HWACCEL 0 -%define CONFIG_VP9_DXVA2_HWACCEL 0 -%define CONFIG_VP9_MEDIACODEC_DECODER 0 -%define CONFIG_VP9_NVDEC_HWACCEL 0 -%define CONFIG_VP9_RAW_REORDER_BSF 0 -%define CONFIG_VP9_RKMPP_DECODER 0 -%define CONFIG_VP9_SUPERFRAME_BSF 0 -%define CONFIG_VP9_V4L2M2M_DECODER 0 -%define CONFIG_VP9_VAAPI_ENCODER 0 -%define CONFIG_VP9_VAAPI_HWACCEL 0 -%define CONFIG_VPK_DEMUXER 0 -%define CONFIG_VPLAYER_DECODER 0 -%define CONFIG_VPLAYER_DEMUXER 0 -%define CONFIG_VPP_QSV_FILTER 0 -%define CONFIG_VQA_DECODER 0 -%define CONFIG_VQF_DEMUXER 0 %define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 -%define CONFIG_W64_DEMUXER 0 -%define CONFIG_W64_MUXER 0 %define CONFIG_WAVEFORM_FILTER 0 -%define CONFIG_WAVPACK_DECODER 0 -%define CONFIG_WAVPACK_ENCODER 0 -%define CONFIG_WAV_DEMUXER 0 -%define CONFIG_WAV_MUXER 0 -%define CONFIG_WC3_DEMUXER 0 %define CONFIG_WEAVE_FILTER 0 -%define CONFIG_WEBM_CHUNK_MUXER 0 -%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 -%define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 -%define CONFIG_WEBM_MUXER 0 -%define CONFIG_WEBP_DECODER 0 -%define CONFIG_WEBP_MUXER 0 -%define CONFIG_WEBVTT_DECODER 0 -%define CONFIG_WEBVTT_DEMUXER 0 -%define CONFIG_WEBVTT_ENCODER 0 -%define CONFIG_WEBVTT_MUXER 0 -%define CONFIG_WMALOSSLESS_DECODER 0 -%define CONFIG_WMAPRO_DECODER 0 -%define CONFIG_WMAV1_DECODER 0 -%define CONFIG_WMAV1_ENCODER 0 -%define CONFIG_WMAV2_DECODER 0 -%define CONFIG_WMAV2_ENCODER 0 -%define CONFIG_WMAVOICE_DECODER 0 -%define CONFIG_WMV1_DECODER 0 -%define CONFIG_WMV1_ENCODER 0 -%define CONFIG_WMV2_DECODER 0 -%define CONFIG_WMV2_ENCODER 0 -%define CONFIG_WMV3IMAGE_DECODER 0 -%define CONFIG_WMV3_CRYSTALHD_DECODER 0 -%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 +%define CONFIG_XBR_FILTER 0 +%define CONFIG_YADIF_FILTER 0 +%define CONFIG_ZMQ_FILTER 0 +%define CONFIG_ZOOMPAN_FILTER 0 +%define CONFIG_ZSCALE_FILTER 0 +%define CONFIG_ALLRGB_FILTER 0 +%define CONFIG_ALLYUV_FILTER 0 +%define CONFIG_CELLAUTO_FILTER 0 +%define CONFIG_COLOR_FILTER 0 +%define CONFIG_COREIMAGESRC_FILTER 0 +%define CONFIG_FREI0R_SRC_FILTER 0 +%define CONFIG_HALDCLUTSRC_FILTER 0 +%define CONFIG_LIFE_FILTER 0 +%define CONFIG_MANDELBROT_FILTER 0 +%define CONFIG_MPTESTSRC_FILTER 0 +%define CONFIG_NULLSRC_FILTER 0 +%define CONFIG_RGBTESTSRC_FILTER 0 +%define CONFIG_SMPTEBARS_FILTER 0 +%define CONFIG_SMPTEHDBARS_FILTER 0 +%define CONFIG_TESTSRC_FILTER 0 +%define CONFIG_TESTSRC2_FILTER 0 +%define CONFIG_YUVTESTSRC_FILTER 0 +%define CONFIG_NULLSINK_FILTER 0 +%define CONFIG_ABITSCOPE_FILTER 0 +%define CONFIG_ADRAWGRAPH_FILTER 0 +%define CONFIG_AHISTOGRAM_FILTER 0 +%define CONFIG_APHASEMETER_FILTER 0 +%define CONFIG_AVECTORSCOPE_FILTER 0 +%define CONFIG_CONCAT_FILTER 0 +%define CONFIG_SHOWCQT_FILTER 0 +%define CONFIG_SHOWFREQS_FILTER 0 +%define CONFIG_SHOWSPECTRUM_FILTER 0 +%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 +%define CONFIG_SHOWVOLUME_FILTER 0 +%define CONFIG_SHOWWAVES_FILTER 0 +%define CONFIG_SHOWWAVESPIC_FILTER 0 +%define CONFIG_SPECTRUMSYNTH_FILTER 0 +%define CONFIG_AMOVIE_FILTER 0 +%define CONFIG_MOVIE_FILTER 0 +%define CONFIG_H263_VAAPI_HWACCEL 0 +%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_H264_CUVID_HWACCEL 0 +%define CONFIG_H264_D3D11VA_HWACCEL 0 +%define CONFIG_H264_D3D11VA2_HWACCEL 0 +%define CONFIG_H264_DXVA2_HWACCEL 0 +%define CONFIG_H264_MEDIACODEC_HWACCEL 0 +%define CONFIG_H264_MMAL_HWACCEL 0 +%define CONFIG_H264_QSV_HWACCEL 0 +%define CONFIG_H264_VAAPI_HWACCEL 0 +%define CONFIG_H264_VDA_HWACCEL 0 +%define CONFIG_H264_VDA_OLD_HWACCEL 0 +%define CONFIG_H264_VDPAU_HWACCEL 0 +%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_HEVC_CUVID_HWACCEL 0 +%define CONFIG_HEVC_D3D11VA_HWACCEL 0 +%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 +%define CONFIG_HEVC_DXVA2_HWACCEL 0 +%define CONFIG_HEVC_MEDIACODEC_HWACCEL 0 +%define CONFIG_HEVC_QSV_HWACCEL 0 +%define CONFIG_HEVC_VAAPI_HWACCEL 0 +%define CONFIG_HEVC_VDPAU_HWACCEL 0 +%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MJPEG_CUVID_HWACCEL 0 +%define CONFIG_MPEG1_CUVID_HWACCEL 0 +%define CONFIG_MPEG1_XVMC_HWACCEL 0 +%define CONFIG_MPEG1_VDPAU_HWACCEL 0 +%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MPEG2_CUVID_HWACCEL 0 +%define CONFIG_MPEG2_XVMC_HWACCEL 0 +%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 +%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 +%define CONFIG_MPEG2_DXVA2_HWACCEL 0 +%define CONFIG_MPEG2_MMAL_HWACCEL 0 +%define CONFIG_MPEG2_QSV_HWACCEL 0 +%define CONFIG_MPEG2_VAAPI_HWACCEL 0 +%define CONFIG_MPEG2_VDPAU_HWACCEL 0 +%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_MPEG2_MEDIACODEC_HWACCEL 0 +%define CONFIG_MPEG4_CUVID_HWACCEL 0 +%define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0 +%define CONFIG_MPEG4_MMAL_HWACCEL 0 +%define CONFIG_MPEG4_VAAPI_HWACCEL 0 +%define CONFIG_MPEG4_VDPAU_HWACCEL 0 +%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 +%define CONFIG_VC1_CUVID_HWACCEL 0 +%define CONFIG_VC1_D3D11VA_HWACCEL 0 +%define CONFIG_VC1_D3D11VA2_HWACCEL 0 +%define CONFIG_VC1_DXVA2_HWACCEL 0 +%define CONFIG_VC1_VAAPI_HWACCEL 0 +%define CONFIG_VC1_VDPAU_HWACCEL 0 +%define CONFIG_VC1_MMAL_HWACCEL 0 +%define CONFIG_VC1_QSV_HWACCEL 0 +%define CONFIG_VP8_CUVID_HWACCEL 0 +%define CONFIG_VP8_MEDIACODEC_HWACCEL 0 +%define CONFIG_VP8_QSV_HWACCEL 0 +%define CONFIG_VP9_CUVID_HWACCEL 0 +%define CONFIG_VP9_D3D11VA_HWACCEL 0 +%define CONFIG_VP9_D3D11VA2_HWACCEL 0 +%define CONFIG_VP9_DXVA2_HWACCEL 0 +%define CONFIG_VP9_MEDIACODEC_HWACCEL 0 +%define CONFIG_VP9_VAAPI_HWACCEL 0 %define CONFIG_WMV3_D3D11VA_HWACCEL 0 -%define CONFIG_WMV3_DECODER 0 +%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 %define CONFIG_WMV3_DXVA2_HWACCEL 0 -%define CONFIG_WMV3_NVDEC_HWACCEL 0 %define CONFIG_WMV3_VAAPI_HWACCEL 0 %define CONFIG_WMV3_VDPAU_HWACCEL 0 -%define CONFIG_WNV1_DECODER 0 -%define CONFIG_WRAPPED_AVFRAME_DECODER 0 -%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -%define CONFIG_WSAUD_DEMUXER 0 -%define CONFIG_WSD_DEMUXER 0 -%define CONFIG_WSVQA_DEMUXER 0 -%define CONFIG_WS_SND1_DECODER 0 -%define CONFIG_WTV_DEMUXER 0 +%define CONFIG_ALSA_INDEV 0 +%define CONFIG_AVFOUNDATION_INDEV 0 +%define CONFIG_BKTR_INDEV 0 +%define CONFIG_DECKLINK_INDEV 0 +%define CONFIG_LIBNDI_NEWTEK_INDEV 0 +%define CONFIG_DSHOW_INDEV 0 +%define CONFIG_FBDEV_INDEV 0 +%define CONFIG_GDIGRAB_INDEV 0 +%define CONFIG_IEC61883_INDEV 0 +%define CONFIG_JACK_INDEV 0 +%define CONFIG_KMSGRAB_INDEV 0 +%define CONFIG_LAVFI_INDEV 0 +%define CONFIG_OPENAL_INDEV 0 +%define CONFIG_OSS_INDEV 0 +%define CONFIG_PULSE_INDEV 0 +%define CONFIG_SNDIO_INDEV 0 +%define CONFIG_V4L2_INDEV 0 +%define CONFIG_VFWCAP_INDEV 0 +%define CONFIG_XCBGRAB_INDEV 0 +%define CONFIG_LIBCDIO_INDEV 0 +%define CONFIG_LIBDC1394_INDEV 0 +%define CONFIG_A64_MUXER 0 +%define CONFIG_AC3_MUXER 0 +%define CONFIG_ADTS_MUXER 0 +%define CONFIG_ADX_MUXER 0 +%define CONFIG_AIFF_MUXER 0 +%define CONFIG_AMR_MUXER 0 +%define CONFIG_APNG_MUXER 0 +%define CONFIG_ASF_MUXER 0 +%define CONFIG_ASS_MUXER 0 +%define CONFIG_AST_MUXER 0 +%define CONFIG_ASF_STREAM_MUXER 0 +%define CONFIG_AU_MUXER 0 +%define CONFIG_AVI_MUXER 0 +%define CONFIG_AVM2_MUXER 0 +%define CONFIG_BIT_MUXER 0 +%define CONFIG_CAF_MUXER 0 +%define CONFIG_CAVSVIDEO_MUXER 0 +%define CONFIG_CRC_MUXER 0 +%define CONFIG_DASH_MUXER 0 +%define CONFIG_DATA_MUXER 0 +%define CONFIG_DAUD_MUXER 0 +%define CONFIG_DIRAC_MUXER 0 +%define CONFIG_DNXHD_MUXER 0 +%define CONFIG_DTS_MUXER 0 +%define CONFIG_DV_MUXER 0 +%define CONFIG_EAC3_MUXER 0 +%define CONFIG_F4V_MUXER 0 +%define CONFIG_FFM_MUXER 0 +%define CONFIG_FFMETADATA_MUXER 0 +%define CONFIG_FIFO_MUXER 0 +%define CONFIG_FILMSTRIP_MUXER 0 +%define CONFIG_FITS_MUXER 0 +%define CONFIG_FLAC_MUXER 0 +%define CONFIG_FLV_MUXER 0 +%define CONFIG_FRAMECRC_MUXER 0 +%define CONFIG_FRAMEHASH_MUXER 0 +%define CONFIG_FRAMEMD5_MUXER 0 +%define CONFIG_G722_MUXER 0 +%define CONFIG_G723_1_MUXER 0 +%define CONFIG_G726_MUXER 0 +%define CONFIG_G726LE_MUXER 0 +%define CONFIG_GIF_MUXER 0 +%define CONFIG_GSM_MUXER 0 +%define CONFIG_GXF_MUXER 0 +%define CONFIG_H261_MUXER 0 +%define CONFIG_H263_MUXER 0 +%define CONFIG_H264_MUXER 0 +%define CONFIG_HASH_MUXER 0 +%define CONFIG_HDS_MUXER 0 +%define CONFIG_HEVC_MUXER 0 +%define CONFIG_HLS_MUXER 0 +%define CONFIG_ICO_MUXER 0 +%define CONFIG_ILBC_MUXER 0 +%define CONFIG_IMAGE2_MUXER 0 +%define CONFIG_IMAGE2PIPE_MUXER 0 +%define CONFIG_IPOD_MUXER 0 +%define CONFIG_IRCAM_MUXER 0 +%define CONFIG_ISMV_MUXER 0 +%define CONFIG_IVF_MUXER 0 +%define CONFIG_JACOSUB_MUXER 0 +%define CONFIG_LATM_MUXER 0 +%define CONFIG_LRC_MUXER 0 +%define CONFIG_M4V_MUXER 0 +%define CONFIG_MD5_MUXER 0 +%define CONFIG_MATROSKA_MUXER 0 +%define CONFIG_MATROSKA_AUDIO_MUXER 0 +%define CONFIG_MICRODVD_MUXER 0 +%define CONFIG_MJPEG_MUXER 0 +%define CONFIG_MLP_MUXER 0 +%define CONFIG_MMF_MUXER 0 +%define CONFIG_MOV_MUXER 0 +%define CONFIG_MP2_MUXER 0 +%define CONFIG_MP3_MUXER 0 +%define CONFIG_MP4_MUXER 0 +%define CONFIG_MPEG1SYSTEM_MUXER 0 +%define CONFIG_MPEG1VCD_MUXER 0 +%define CONFIG_MPEG1VIDEO_MUXER 0 +%define CONFIG_MPEG2DVD_MUXER 0 +%define CONFIG_MPEG2SVCD_MUXER 0 +%define CONFIG_MPEG2VIDEO_MUXER 0 +%define CONFIG_MPEG2VOB_MUXER 0 +%define CONFIG_MPEGTS_MUXER 0 +%define CONFIG_MPJPEG_MUXER 0 +%define CONFIG_MXF_MUXER 0 +%define CONFIG_MXF_D10_MUXER 0 +%define CONFIG_MXF_OPATOM_MUXER 0 +%define CONFIG_NULL_MUXER 0 +%define CONFIG_NUT_MUXER 0 +%define CONFIG_OGA_MUXER 0 +%define CONFIG_OGG_MUXER 0 +%define CONFIG_OGV_MUXER 0 +%define CONFIG_OMA_MUXER 0 +%define CONFIG_OPUS_MUXER 0 +%define CONFIG_PCM_ALAW_MUXER 0 +%define CONFIG_PCM_MULAW_MUXER 0 +%define CONFIG_PCM_F64BE_MUXER 0 +%define CONFIG_PCM_F64LE_MUXER 0 +%define CONFIG_PCM_F32BE_MUXER 0 +%define CONFIG_PCM_F32LE_MUXER 0 +%define CONFIG_PCM_S32BE_MUXER 0 +%define CONFIG_PCM_S32LE_MUXER 0 +%define CONFIG_PCM_S24BE_MUXER 0 +%define CONFIG_PCM_S24LE_MUXER 0 +%define CONFIG_PCM_S16BE_MUXER 0 +%define CONFIG_PCM_S16LE_MUXER 0 +%define CONFIG_PCM_S8_MUXER 0 +%define CONFIG_PCM_U32BE_MUXER 0 +%define CONFIG_PCM_U32LE_MUXER 0 +%define CONFIG_PCM_U24BE_MUXER 0 +%define CONFIG_PCM_U24LE_MUXER 0 +%define CONFIG_PCM_U16BE_MUXER 0 +%define CONFIG_PCM_U16LE_MUXER 0 +%define CONFIG_PCM_U8_MUXER 0 +%define CONFIG_PSP_MUXER 0 +%define CONFIG_RAWVIDEO_MUXER 0 +%define CONFIG_RM_MUXER 0 +%define CONFIG_ROQ_MUXER 0 +%define CONFIG_RSO_MUXER 0 +%define CONFIG_RTP_MUXER 0 +%define CONFIG_RTP_MPEGTS_MUXER 0 +%define CONFIG_RTSP_MUXER 0 +%define CONFIG_SAP_MUXER 0 +%define CONFIG_SCC_MUXER 0 +%define CONFIG_SEGMENT_MUXER 0 +%define CONFIG_STREAM_SEGMENT_MUXER 0 +%define CONFIG_SINGLEJPEG_MUXER 0 +%define CONFIG_SMJPEG_MUXER 0 +%define CONFIG_SMOOTHSTREAMING_MUXER 0 +%define CONFIG_SOX_MUXER 0 +%define CONFIG_SPX_MUXER 0 +%define CONFIG_SPDIF_MUXER 0 +%define CONFIG_SRT_MUXER 0 +%define CONFIG_SUP_MUXER 0 +%define CONFIG_SWF_MUXER 0 +%define CONFIG_TEE_MUXER 0 +%define CONFIG_TG2_MUXER 0 +%define CONFIG_TGP_MUXER 0 +%define CONFIG_MKVTIMESTAMP_V2_MUXER 0 +%define CONFIG_TRUEHD_MUXER 0 +%define CONFIG_TTA_MUXER 0 +%define CONFIG_UNCODEDFRAMECRC_MUXER 0 +%define CONFIG_VC1_MUXER 0 +%define CONFIG_VC1T_MUXER 0 +%define CONFIG_VOC_MUXER 0 +%define CONFIG_W64_MUXER 0 +%define CONFIG_WAV_MUXER 0 +%define CONFIG_WEBM_MUXER 0 +%define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 +%define CONFIG_WEBM_CHUNK_MUXER 0 +%define CONFIG_WEBP_MUXER 0 +%define CONFIG_WEBVTT_MUXER 0 %define CONFIG_WTV_MUXER 0 -%define CONFIG_WVE_DEMUXER 0 -%define CONFIG_WV_DEMUXER 0 %define CONFIG_WV_MUXER 0 -%define CONFIG_XAN_DPCM_DECODER 0 -%define CONFIG_XAN_WC3_DECODER 0 -%define CONFIG_XAN_WC4_DECODER 0 -%define CONFIG_XA_DEMUXER 0 -%define CONFIG_XBIN_DECODER 0 -%define CONFIG_XBIN_DEMUXER 0 -%define CONFIG_XBM_DECODER 0 -%define CONFIG_XBM_ENCODER 0 -%define CONFIG_XBR_FILTER 0 -%define CONFIG_XCBGRAB_INDEV 0 -%define CONFIG_XFACE_DECODER 0 -%define CONFIG_XFACE_ENCODER 0 -%define CONFIG_XL_DECODER 0 -%define CONFIG_XMA1_DECODER 0 -%define CONFIG_XMA2_DECODER 0 -%define CONFIG_XMA_PARSER 0 -%define CONFIG_XMV_DEMUXER 0 -%define CONFIG_XPM_DECODER 0 -%define CONFIG_XSUB_DECODER 0 -%define CONFIG_XSUB_ENCODER 0 -%define CONFIG_XVAG_DEMUXER 0 -%define CONFIG_XV_OUTDEV 0 -%define CONFIG_XWD_DECODER 0 -%define CONFIG_XWD_ENCODER 0 -%define CONFIG_XWMA_DEMUXER 0 -%define CONFIG_Y41P_DECODER 0 -%define CONFIG_Y41P_ENCODER 0 -%define CONFIG_YADIF_FILTER 0 -%define CONFIG_YLC_DECODER 0 -%define CONFIG_YOP_DECODER 0 -%define CONFIG_YOP_DEMUXER 0 -%define CONFIG_YUV4MPEGPIPE_DEMUXER 0 %define CONFIG_YUV4MPEGPIPE_MUXER 0 -%define CONFIG_YUV4_DECODER 0 -%define CONFIG_YUV4_ENCODER 0 -%define CONFIG_YUVTESTSRC_FILTER 0 -%define CONFIG_ZERO12V_DECODER 0 -%define CONFIG_ZEROCODEC_DECODER 0 -%define CONFIG_ZLIB_DECODER 0 -%define CONFIG_ZLIB_ENCODER 0 -%define CONFIG_ZMBV_DECODER 0 -%define CONFIG_ZMBV_ENCODER 0 -%define CONFIG_ZMQ_FILTER 0 -%define CONFIG_ZOOMPAN_FILTER 0 -%define CONFIG_ZSCALE_FILTER 0 +%define CONFIG_CHROMAPRINT_MUXER 0 +%define CONFIG_ALSA_OUTDEV 0 +%define CONFIG_CACA_OUTDEV 0 +%define CONFIG_DECKLINK_OUTDEV 0 +%define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 +%define CONFIG_FBDEV_OUTDEV 0 +%define CONFIG_OPENGL_OUTDEV 0 +%define CONFIG_OSS_OUTDEV 0 +%define CONFIG_PULSE_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 +%define CONFIG_SNDIO_OUTDEV 0 +%define CONFIG_V4L2_OUTDEV 0 +%define CONFIG_XV_OUTDEV 0 +%define CONFIG_AAC_PARSER 0 +%define CONFIG_AAC_LATM_PARSER 0 +%define CONFIG_AC3_PARSER 0 +%define CONFIG_ADX_PARSER 0 +%define CONFIG_BMP_PARSER 0 +%define CONFIG_CAVSVIDEO_PARSER 0 +%define CONFIG_COOK_PARSER 0 +%define CONFIG_DCA_PARSER 0 +%define CONFIG_DIRAC_PARSER 0 +%define CONFIG_DNXHD_PARSER 0 +%define CONFIG_DPX_PARSER 0 +%define CONFIG_DVAUDIO_PARSER 0 +%define CONFIG_DVBSUB_PARSER 0 +%define CONFIG_DVDSUB_PARSER 0 +%define CONFIG_DVD_NAV_PARSER 0 +%define CONFIG_G729_PARSER 0 +%define CONFIG_GSM_PARSER 0 +%define CONFIG_H261_PARSER 0 +%define CONFIG_H263_PARSER 0 +%define CONFIG_H264_PARSER 0 +%define CONFIG_HEVC_PARSER 0 +%define CONFIG_MJPEG_PARSER 0 +%define CONFIG_MLP_PARSER 0 +%define CONFIG_MPEG4VIDEO_PARSER 0 +%define CONFIG_MPEGAUDIO_PARSER 0 +%define CONFIG_MPEGVIDEO_PARSER 0 +%define CONFIG_OPUS_PARSER 0 +%define CONFIG_PNG_PARSER 0 +%define CONFIG_PNM_PARSER 0 +%define CONFIG_RV30_PARSER 0 +%define CONFIG_RV40_PARSER 0 +%define CONFIG_SIPR_PARSER 0 +%define CONFIG_TAK_PARSER 0 +%define CONFIG_VC1_PARSER 0 +%define CONFIG_VORBIS_PARSER 0 +%define CONFIG_VP3_PARSER 0 +%define CONFIG_XMA_PARSER 0 +%define CONFIG_ASYNC_PROTOCOL 0 +%define CONFIG_BLURAY_PROTOCOL 0 +%define CONFIG_CACHE_PROTOCOL 0 +%define CONFIG_CONCAT_PROTOCOL 0 +%define CONFIG_CRYPTO_PROTOCOL 0 +%define CONFIG_DATA_PROTOCOL 0 +%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 +%define CONFIG_FFRTMPHTTP_PROTOCOL 0 +%define CONFIG_FILE_PROTOCOL 0 +%define CONFIG_FTP_PROTOCOL 0 +%define CONFIG_GOPHER_PROTOCOL 0 +%define CONFIG_HLS_PROTOCOL 0 +%define CONFIG_HTTP_PROTOCOL 0 +%define CONFIG_HTTPPROXY_PROTOCOL 0 +%define CONFIG_HTTPS_PROTOCOL 0 +%define CONFIG_ICECAST_PROTOCOL 0 +%define CONFIG_MMSH_PROTOCOL 0 +%define CONFIG_MMST_PROTOCOL 0 +%define CONFIG_MD5_PROTOCOL 0 +%define CONFIG_PIPE_PROTOCOL 0 +%define CONFIG_PROMPEG_PROTOCOL 0 +%define CONFIG_RTMP_PROTOCOL 0 +%define CONFIG_RTMPE_PROTOCOL 0 +%define CONFIG_RTMPS_PROTOCOL 0 +%define CONFIG_RTMPT_PROTOCOL 0 +%define CONFIG_RTMPTE_PROTOCOL 0 +%define CONFIG_RTMPTS_PROTOCOL 0 +%define CONFIG_RTP_PROTOCOL 0 +%define CONFIG_SCTP_PROTOCOL 0 +%define CONFIG_SRTP_PROTOCOL 0 +%define CONFIG_SUBFILE_PROTOCOL 0 +%define CONFIG_TEE_PROTOCOL 0 +%define CONFIG_TCP_PROTOCOL 0 +%define CONFIG_TLS_GNUTLS_PROTOCOL 0 +%define CONFIG_TLS_SCHANNEL_PROTOCOL 0 +%define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 +%define CONFIG_TLS_OPENSSL_PROTOCOL 0 +%define CONFIG_UDP_PROTOCOL 0 +%define CONFIG_UDPLITE_PROTOCOL 0 +%define CONFIG_UNIX_PROTOCOL 0 +%define CONFIG_LIBRTMP_PROTOCOL 0 +%define CONFIG_LIBRTMPE_PROTOCOL 0 +%define CONFIG_LIBRTMPS_PROTOCOL 0 +%define CONFIG_LIBRTMPT_PROTOCOL 0 +%define CONFIG_LIBRTMPTE_PROTOCOL 0 +%define CONFIG_LIBSSH_PROTOCOL 0 +%define CONFIG_LIBSMBCLIENT_PROTOCOL 0 diff --git a/media/ffvpx/defaults_disabled.h b/media/ffvpx/defaults_disabled.h index 7f5e23b96..e526aa9e7 100644 --- a/media/ffvpx/defaults_disabled.h +++ b/media/ffvpx/defaults_disabled.h @@ -1,40 +1,402 @@ -#define CONFIG_A64MULTI5_ENCODER 0 -#define CONFIG_A64MULTI_ENCODER 0 -#define CONFIG_A64_MUXER 0 -#define CONFIG_AAC_ADTSTOASC_BSF 0 -#define CONFIG_AAC_AT_DECODER 0 -#define CONFIG_AAC_AT_ENCODER 0 +#define CONFIG_ENCODERS 0 +#define CONFIG_HWACCELS 0 +#define CONFIG_INDEVS 0 +#define CONFIG_OUTDEVS 0 +#define CONFIG_FILTERS 0 +#define CONFIG_DEMUXERS 0 +#define CONFIG_MUXERS 0 +#define CONFIG_PROTOCOLS 0 +#define CONFIG_FRAME_THREAD_ENCODER 0 +#define CONFIG_AASC_DECODER 0 +#define CONFIG_AIC_DECODER 0 +#define CONFIG_ALIAS_PIX_DECODER 0 +#define CONFIG_AMV_DECODER 0 +#define CONFIG_ANM_DECODER 0 +#define CONFIG_ANSI_DECODER 0 +#define CONFIG_APNG_DECODER 0 +#define CONFIG_ASV1_DECODER 0 +#define CONFIG_ASV2_DECODER 0 +#define CONFIG_AURA_DECODER 0 +#define CONFIG_AURA2_DECODER 0 +#define CONFIG_AVRP_DECODER 0 +#define CONFIG_AVRN_DECODER 0 +#define CONFIG_AVS_DECODER 0 +#define CONFIG_AVUI_DECODER 0 +#define CONFIG_AYUV_DECODER 0 +#define CONFIG_BETHSOFTVID_DECODER 0 +#define CONFIG_BFI_DECODER 0 +#define CONFIG_BINK_DECODER 0 +#define CONFIG_BMP_DECODER 0 +#define CONFIG_BMV_VIDEO_DECODER 0 +#define CONFIG_BRENDER_PIX_DECODER 0 +#define CONFIG_C93_DECODER 0 +#define CONFIG_CAVS_DECODER 0 +#define CONFIG_CDGRAPHICS_DECODER 0 +#define CONFIG_CDXL_DECODER 0 +#define CONFIG_CFHD_DECODER 0 +#define CONFIG_CINEPAK_DECODER 0 +#define CONFIG_CLEARVIDEO_DECODER 0 +#define CONFIG_CLJR_DECODER 0 +#define CONFIG_CLLC_DECODER 0 +#define CONFIG_COMFORTNOISE_DECODER 0 +#define CONFIG_CPIA_DECODER 0 +#define CONFIG_CSCD_DECODER 0 +#define CONFIG_CYUV_DECODER 0 +#define CONFIG_DDS_DECODER 0 +#define CONFIG_DFA_DECODER 0 +#define CONFIG_DIRAC_DECODER 0 +#define CONFIG_DNXHD_DECODER 0 +#define CONFIG_DPX_DECODER 0 +#define CONFIG_DSICINVIDEO_DECODER 0 +#define CONFIG_DVAUDIO_DECODER 0 +#define CONFIG_DVVIDEO_DECODER 0 +#define CONFIG_DXA_DECODER 0 +#define CONFIG_DXTORY_DECODER 0 +#define CONFIG_DXV_DECODER 0 +#define CONFIG_EACMV_DECODER 0 +#define CONFIG_EAMAD_DECODER 0 +#define CONFIG_EATGQ_DECODER 0 +#define CONFIG_EATGV_DECODER 0 +#define CONFIG_EATQI_DECODER 0 +#define CONFIG_EIGHTBPS_DECODER 0 +#define CONFIG_EIGHTSVX_EXP_DECODER 0 +#define CONFIG_EIGHTSVX_FIB_DECODER 0 +#define CONFIG_ESCAPE124_DECODER 0 +#define CONFIG_ESCAPE130_DECODER 0 +#define CONFIG_EXR_DECODER 0 +#define CONFIG_FFV1_DECODER 0 +#define CONFIG_FFVHUFF_DECODER 0 +#define CONFIG_FIC_DECODER 0 +#define CONFIG_FITS_DECODER 0 +#define CONFIG_FLASHSV_DECODER 0 +#define CONFIG_FLASHSV2_DECODER 0 +#define CONFIG_FLIC_DECODER 0 +#define CONFIG_FLV_DECODER 0 +#define CONFIG_FMVC_DECODER 0 +#define CONFIG_FOURXM_DECODER 0 +#define CONFIG_FRAPS_DECODER 0 +#define CONFIG_FRWU_DECODER 0 +#define CONFIG_G2M_DECODER 0 +#define CONFIG_GDV_DECODER 0 +#define CONFIG_GIF_DECODER 0 +#define CONFIG_H261_DECODER 0 +#define CONFIG_H263_DECODER 0 +#define CONFIG_H263I_DECODER 0 +#define CONFIG_H263P_DECODER 0 +#define CONFIG_H263_V4L2M2M_DECODER 0 +#define CONFIG_H264_DECODER 0 +#define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_V4L2M2M_DECODER 0 +#define CONFIG_H264_MEDIACODEC_DECODER 0 +#define CONFIG_H264_MMAL_DECODER 0 +#define CONFIG_H264_QSV_DECODER 0 +#define CONFIG_H264_RKMPP_DECODER 0 +#define CONFIG_H264_VDA_DECODER 0 +#define CONFIG_H264_VDPAU_DECODER 0 +#define CONFIG_HAP_DECODER 0 +#define CONFIG_HEVC_DECODER 0 +#define CONFIG_HEVC_QSV_DECODER 0 +#define CONFIG_HEVC_RKMPP_DECODER 0 +#define CONFIG_HEVC_V4L2M2M_DECODER 0 +#define CONFIG_HNM4_VIDEO_DECODER 0 +#define CONFIG_HQ_HQA_DECODER 0 +#define CONFIG_HQX_DECODER 0 +#define CONFIG_HUFFYUV_DECODER 0 +#define CONFIG_IDCIN_DECODER 0 +#define CONFIG_IFF_ILBM_DECODER 0 +#define CONFIG_INDEO2_DECODER 0 +#define CONFIG_INDEO3_DECODER 0 +#define CONFIG_INDEO4_DECODER 0 +#define CONFIG_INDEO5_DECODER 0 +#define CONFIG_INTERPLAY_VIDEO_DECODER 0 +#define CONFIG_JPEG2000_DECODER 0 +#define CONFIG_JPEGLS_DECODER 0 +#define CONFIG_JV_DECODER 0 +#define CONFIG_KGV1_DECODER 0 +#define CONFIG_KMVC_DECODER 0 +#define CONFIG_LAGARITH_DECODER 0 +#define CONFIG_LOCO_DECODER 0 +#define CONFIG_M101_DECODER 0 +#define CONFIG_MAGICYUV_DECODER 0 +#define CONFIG_MDEC_DECODER 0 +#define CONFIG_MIMIC_DECODER 0 +#define CONFIG_MJPEG_DECODER 0 +#define CONFIG_MJPEGB_DECODER 0 +#define CONFIG_MMVIDEO_DECODER 0 +#define CONFIG_MOTIONPIXELS_DECODER 0 +#define CONFIG_MPEG_XVMC_DECODER 0 +#define CONFIG_MPEG1VIDEO_DECODER 0 +#define CONFIG_MPEG2VIDEO_DECODER 0 +#define CONFIG_MPEG4_DECODER 0 +#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG4_V4L2M2M_DECODER 0 +#define CONFIG_MPEG4_MMAL_DECODER 0 +#define CONFIG_MPEG4_VDPAU_DECODER 0 +#define CONFIG_MPEGVIDEO_DECODER 0 +#define CONFIG_MPEG_VDPAU_DECODER 0 +#define CONFIG_MPEG1_VDPAU_DECODER 0 +#define CONFIG_MPEG1_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_MMAL_DECODER 0 +#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG2_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_QSV_DECODER 0 +#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 +#define CONFIG_MSA1_DECODER 0 +#define CONFIG_MSCC_DECODER 0 +#define CONFIG_MSMPEG4V1_DECODER 0 +#define CONFIG_MSMPEG4V2_DECODER 0 +#define CONFIG_MSMPEG4V3_DECODER 0 +#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSRLE_DECODER 0 +#define CONFIG_MSS1_DECODER 0 +#define CONFIG_MSS2_DECODER 0 +#define CONFIG_MSVIDEO1_DECODER 0 +#define CONFIG_MSZH_DECODER 0 +#define CONFIG_MTS2_DECODER 0 +#define CONFIG_MVC1_DECODER 0 +#define CONFIG_MVC2_DECODER 0 +#define CONFIG_MXPEG_DECODER 0 +#define CONFIG_NUV_DECODER 0 +#define CONFIG_PAF_VIDEO_DECODER 0 +#define CONFIG_PAM_DECODER 0 +#define CONFIG_PBM_DECODER 0 +#define CONFIG_PCX_DECODER 0 +#define CONFIG_PGM_DECODER 0 +#define CONFIG_PGMYUV_DECODER 0 +#define CONFIG_PICTOR_DECODER 0 +#define CONFIG_PIXLET_DECODER 0 +#define CONFIG_PNG_DECODER 0 +#define CONFIG_PPM_DECODER 0 +#define CONFIG_PRORES_DECODER 0 +#define CONFIG_PRORES_LGPL_DECODER 0 +#define CONFIG_PSD_DECODER 0 +#define CONFIG_PTX_DECODER 0 +#define CONFIG_QDRAW_DECODER 0 +#define CONFIG_QPEG_DECODER 0 +#define CONFIG_QTRLE_DECODER 0 +#define CONFIG_R10K_DECODER 0 +#define CONFIG_R210_DECODER 0 +#define CONFIG_RAWVIDEO_DECODER 0 +#define CONFIG_RL2_DECODER 0 +#define CONFIG_ROQ_DECODER 0 +#define CONFIG_RPZA_DECODER 0 +#define CONFIG_RSCC_DECODER 0 +#define CONFIG_RV10_DECODER 0 +#define CONFIG_RV20_DECODER 0 +#define CONFIG_RV30_DECODER 0 +#define CONFIG_RV40_DECODER 0 +#define CONFIG_S302M_DECODER 0 +#define CONFIG_SANM_DECODER 0 +#define CONFIG_SCPR_DECODER 0 +#define CONFIG_SCREENPRESSO_DECODER 0 +#define CONFIG_SDX2_DPCM_DECODER 0 +#define CONFIG_SGI_DECODER 0 +#define CONFIG_SGIRLE_DECODER 0 +#define CONFIG_SHEERVIDEO_DECODER 0 +#define CONFIG_SMACKER_DECODER 0 +#define CONFIG_SMC_DECODER 0 +#define CONFIG_SMVJPEG_DECODER 0 +#define CONFIG_SNOW_DECODER 0 +#define CONFIG_SP5X_DECODER 0 +#define CONFIG_SPEEDHQ_DECODER 0 +#define CONFIG_SRGC_DECODER 0 +#define CONFIG_SUNRAST_DECODER 0 +#define CONFIG_SVQ1_DECODER 0 +#define CONFIG_SVQ3_DECODER 0 +#define CONFIG_TARGA_DECODER 0 +#define CONFIG_TARGA_Y216_DECODER 0 +#define CONFIG_TDSC_DECODER 0 +#define CONFIG_THEORA_DECODER 0 +#define CONFIG_THP_DECODER 0 +#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 +#define CONFIG_TIFF_DECODER 0 +#define CONFIG_TMV_DECODER 0 +#define CONFIG_TRUEMOTION1_DECODER 0 +#define CONFIG_TRUEMOTION2_DECODER 0 +#define CONFIG_TRUEMOTION2RT_DECODER 0 +#define CONFIG_TSCC_DECODER 0 +#define CONFIG_TSCC2_DECODER 0 +#define CONFIG_TXD_DECODER 0 +#define CONFIG_ULTI_DECODER 0 +#define CONFIG_UTVIDEO_DECODER 0 +#define CONFIG_V210_DECODER 0 +#define CONFIG_V210X_DECODER 0 +#define CONFIG_V308_DECODER 0 +#define CONFIG_V408_DECODER 0 +#define CONFIG_V410_DECODER 0 +#define CONFIG_VB_DECODER 0 +#define CONFIG_VBLE_DECODER 0 +#define CONFIG_VC1_DECODER 0 +#define CONFIG_VC1_CRYSTALHD_DECODER 0 +#define CONFIG_VC1_VDPAU_DECODER 0 +#define CONFIG_VC1IMAGE_DECODER 0 +#define CONFIG_VC1_MMAL_DECODER 0 +#define CONFIG_VC1_QSV_DECODER 0 +#define CONFIG_VC1_V4L2M2M_DECODER 0 +#define CONFIG_VCR1_DECODER 0 +#define CONFIG_VMDVIDEO_DECODER 0 +#define CONFIG_VMNC_DECODER 0 +#define CONFIG_VP3_DECODER 0 +#define CONFIG_VP5_DECODER 0 +#define CONFIG_VP6_DECODER 0 +#define CONFIG_VP6A_DECODER 0 +#define CONFIG_VP6F_DECODER 0 +#define CONFIG_VP7_DECODER 0 +#define CONFIG_VP8_RKMPP_DECODER 0 +#define CONFIG_VP8_V4L2M2M_DECODER 0 +#define CONFIG_VP9_RKMPP_DECODER 0 +#define CONFIG_VP9_V4L2M2M_DECODER 0 +#define CONFIG_VQA_DECODER 0 +#define CONFIG_BITPACKED_DECODER 0 +#define CONFIG_WEBP_DECODER 0 +#define CONFIG_WRAPPED_AVFRAME_DECODER 0 +#define CONFIG_WMV1_DECODER 0 +#define CONFIG_WMV2_DECODER 0 +#define CONFIG_WMV3_DECODER 0 +#define CONFIG_WMV3_CRYSTALHD_DECODER 0 +#define CONFIG_WMV3_VDPAU_DECODER 0 +#define CONFIG_WMV3IMAGE_DECODER 0 +#define CONFIG_WNV1_DECODER 0 +#define CONFIG_XAN_WC3_DECODER 0 +#define CONFIG_XAN_WC4_DECODER 0 +#define CONFIG_XBM_DECODER 0 +#define CONFIG_XFACE_DECODER 0 +#define CONFIG_XL_DECODER 0 +#define CONFIG_XPM_DECODER 0 +#define CONFIG_XWD_DECODER 0 +#define CONFIG_Y41P_DECODER 0 +#define CONFIG_YLC_DECODER 0 +#define CONFIG_YOP_DECODER 0 +#define CONFIG_YUV4_DECODER 0 +#define CONFIG_ZERO12V_DECODER 0 +#define CONFIG_ZEROCODEC_DECODER 0 +#define CONFIG_ZLIB_DECODER 0 +#define CONFIG_ZMBV_DECODER 0 #define CONFIG_AAC_DECODER 0 -#define CONFIG_AAC_DEMUXER 0 -#define CONFIG_AAC_ENCODER 0 #define CONFIG_AAC_FIXED_DECODER 0 #define CONFIG_AAC_LATM_DECODER 0 -#define CONFIG_AAC_LATM_PARSER 0 -#define CONFIG_AAC_PARSER 0 -#define CONFIG_AASC_DECODER 0 -#define CONFIG_AA_DEMUXER 0 -#define CONFIG_ABENCH_FILTER 0 -#define CONFIG_ABITSCOPE_FILTER 0 -#define CONFIG_AC3_AT_DECODER 0 #define CONFIG_AC3_DECODER 0 -#define CONFIG_AC3_DEMUXER 0 -#define CONFIG_AC3_ENCODER 0 #define CONFIG_AC3_FIXED_DECODER 0 -#define CONFIG_AC3_FIXED_ENCODER 0 -#define CONFIG_AC3_MUXER 0 -#define CONFIG_AC3_PARSER 0 -#define CONFIG_ACM_DEMUXER 0 -#define CONFIG_ACOMPRESSOR_FILTER 0 -#define CONFIG_ACONTRAST_FILTER 0 -#define CONFIG_ACOPY_FILTER 0 -#define CONFIG_ACROSSFADE_FILTER 0 -#define CONFIG_ACRUSHER_FILTER 0 -#define CONFIG_ACT_DEMUXER 0 -#define CONFIG_ADELAY_FILTER 0 -#define CONFIG_ADF_DEMUXER 0 +#define CONFIG_ALAC_DECODER 0 +#define CONFIG_ALS_DECODER 0 +#define CONFIG_AMRNB_DECODER 0 +#define CONFIG_AMRWB_DECODER 0 +#define CONFIG_APE_DECODER 0 +#define CONFIG_ATRAC1_DECODER 0 +#define CONFIG_ATRAC3_DECODER 0 +#define CONFIG_ATRAC3AL_DECODER 0 +#define CONFIG_ATRAC3P_DECODER 0 +#define CONFIG_ATRAC3PAL_DECODER 0 +#define CONFIG_BINKAUDIO_DCT_DECODER 0 +#define CONFIG_BINKAUDIO_RDFT_DECODER 0 +#define CONFIG_BMV_AUDIO_DECODER 0 +#define CONFIG_COOK_DECODER 0 +#define CONFIG_DCA_DECODER 0 +#define CONFIG_DOLBY_E_DECODER 0 +#define CONFIG_DSD_LSBF_DECODER 0 +#define CONFIG_DSD_MSBF_DECODER 0 +#define CONFIG_DSD_LSBF_PLANAR_DECODER 0 +#define CONFIG_DSD_MSBF_PLANAR_DECODER 0 +#define CONFIG_DSICINAUDIO_DECODER 0 +#define CONFIG_DSS_SP_DECODER 0 +#define CONFIG_DST_DECODER 0 +#define CONFIG_EAC3_DECODER 0 +#define CONFIG_EVRC_DECODER 0 +#define CONFIG_FFWAVESYNTH_DECODER 0 +#define CONFIG_G723_1_DECODER 0 +#define CONFIG_G729_DECODER 0 +#define CONFIG_GSM_DECODER 0 +#define CONFIG_GSM_MS_DECODER 0 +#define CONFIG_IAC_DECODER 0 +#define CONFIG_IMC_DECODER 0 +#define CONFIG_INTERPLAY_ACM_DECODER 0 +#define CONFIG_MACE3_DECODER 0 +#define CONFIG_MACE6_DECODER 0 +#define CONFIG_METASOUND_DECODER 0 +#define CONFIG_MLP_DECODER 0 +#define CONFIG_MP1_DECODER 0 +#define CONFIG_MP1FLOAT_DECODER 0 +#define CONFIG_MP2_DECODER 0 +#define CONFIG_MP2FLOAT_DECODER 0 +#define CONFIG_MP3_DECODER 0 +#define CONFIG_MP3FLOAT_DECODER 0 +#define CONFIG_MP3ADU_DECODER 0 +#define CONFIG_MP3ADUFLOAT_DECODER 0 +#define CONFIG_MP3ON4_DECODER 0 +#define CONFIG_MP3ON4FLOAT_DECODER 0 +#define CONFIG_MPC7_DECODER 0 +#define CONFIG_MPC8_DECODER 0 +#define CONFIG_NELLYMOSER_DECODER 0 +#define CONFIG_ON2AVC_DECODER 0 +#define CONFIG_OPUS_DECODER 0 +#define CONFIG_PAF_AUDIO_DECODER 0 +#define CONFIG_QCELP_DECODER 0 +#define CONFIG_QDM2_DECODER 0 +#define CONFIG_QDMC_DECODER 0 +#define CONFIG_RA_144_DECODER 0 +#define CONFIG_RA_288_DECODER 0 +#define CONFIG_RALF_DECODER 0 +#define CONFIG_SHORTEN_DECODER 0 +#define CONFIG_SIPR_DECODER 0 +#define CONFIG_SMACKAUD_DECODER 0 +#define CONFIG_SONIC_DECODER 0 +#define CONFIG_TAK_DECODER 0 +#define CONFIG_TRUEHD_DECODER 0 +#define CONFIG_TRUESPEECH_DECODER 0 +#define CONFIG_TTA_DECODER 0 +#define CONFIG_TWINVQ_DECODER 0 +#define CONFIG_VMDAUDIO_DECODER 0 +#define CONFIG_VORBIS_DECODER 0 +#define CONFIG_WAVPACK_DECODER 0 +#define CONFIG_WMALOSSLESS_DECODER 0 +#define CONFIG_WMAPRO_DECODER 0 +#define CONFIG_WMAV1_DECODER 0 +#define CONFIG_WMAV2_DECODER 0 +#define CONFIG_WMAVOICE_DECODER 0 +#define CONFIG_WS_SND1_DECODER 0 +#define CONFIG_XMA1_DECODER 0 +#define CONFIG_XMA2_DECODER 0 +#define CONFIG_PCM_ALAW_DECODER 0 +#define CONFIG_PCM_BLURAY_DECODER 0 +#define CONFIG_PCM_DVD_DECODER 0 +#define CONFIG_PCM_F16LE_DECODER 0 +#define CONFIG_PCM_F24LE_DECODER 0 +#define CONFIG_PCM_F32BE_DECODER 0 +#define CONFIG_PCM_F32LE_DECODER 0 +#define CONFIG_PCM_F64BE_DECODER 0 +#define CONFIG_PCM_F64LE_DECODER 0 +#define CONFIG_PCM_LXF_DECODER 0 +#define CONFIG_PCM_MULAW_DECODER 0 +#define CONFIG_PCM_S8_DECODER 0 +#define CONFIG_PCM_S8_PLANAR_DECODER 0 +#define CONFIG_PCM_S16BE_DECODER 0 +#define CONFIG_PCM_S16BE_PLANAR_DECODER 0 +#define CONFIG_PCM_S16LE_DECODER 0 +#define CONFIG_PCM_S16LE_PLANAR_DECODER 0 +#define CONFIG_PCM_S24BE_DECODER 0 +#define CONFIG_PCM_S24DAUD_DECODER 0 +#define CONFIG_PCM_S24LE_DECODER 0 +#define CONFIG_PCM_S24LE_PLANAR_DECODER 0 +#define CONFIG_PCM_S32BE_DECODER 0 +#define CONFIG_PCM_S32LE_DECODER 0 +#define CONFIG_PCM_S32LE_PLANAR_DECODER 0 +#define CONFIG_PCM_S64BE_DECODER 0 +#define CONFIG_PCM_S64LE_DECODER 0 +#define CONFIG_PCM_U8_DECODER 0 +#define CONFIG_PCM_U16BE_DECODER 0 +#define CONFIG_PCM_U16LE_DECODER 0 +#define CONFIG_PCM_U24BE_DECODER 0 +#define CONFIG_PCM_U24LE_DECODER 0 +#define CONFIG_PCM_U32BE_DECODER 0 +#define CONFIG_PCM_U32LE_DECODER 0 +#define CONFIG_PCM_ZORK_DECODER 0 +#define CONFIG_GREMLIN_DPCM_DECODER 0 +#define CONFIG_INTERPLAY_DPCM_DECODER 0 +#define CONFIG_ROQ_DPCM_DECODER 0 +#define CONFIG_SOL_DPCM_DECODER 0 +#define CONFIG_XAN_DPCM_DECODER 0 #define CONFIG_ADPCM_4XM_DECODER 0 #define CONFIG_ADPCM_ADX_DECODER 0 -#define CONFIG_ADPCM_ADX_ENCODER 0 #define CONFIG_ADPCM_AFC_DECODER 0 #define CONFIG_ADPCM_AICA_DECODER 0 #define CONFIG_ADPCM_CT_DECODER 0 @@ -46,11 +408,8 @@ #define CONFIG_ADPCM_EA_R3_DECODER 0 #define CONFIG_ADPCM_EA_XAS_DECODER 0 #define CONFIG_ADPCM_G722_DECODER 0 -#define CONFIG_ADPCM_G722_ENCODER 0 -#define CONFIG_ADPCM_G726LE_DECODER 0 -#define CONFIG_ADPCM_G726LE_ENCODER 0 #define CONFIG_ADPCM_G726_DECODER 0 -#define CONFIG_ADPCM_G726_ENCODER 0 +#define CONFIG_ADPCM_G726LE_DECODER 0 #define CONFIG_ADPCM_IMA_AMV_DECODER 0 #define CONFIG_ADPCM_IMA_APC_DECODER 0 #define CONFIG_ADPCM_IMA_DAT4_DECODER 0 @@ -60,114 +419,604 @@ #define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 #define CONFIG_ADPCM_IMA_ISS_DECODER 0 #define CONFIG_ADPCM_IMA_OKI_DECODER 0 -#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 #define CONFIG_ADPCM_IMA_QT_DECODER 0 -#define CONFIG_ADPCM_IMA_QT_ENCODER 0 #define CONFIG_ADPCM_IMA_RAD_DECODER 0 #define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 #define CONFIG_ADPCM_IMA_WAV_DECODER 0 -#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 #define CONFIG_ADPCM_IMA_WS_DECODER 0 #define CONFIG_ADPCM_MS_DECODER 0 -#define CONFIG_ADPCM_MS_ENCODER 0 #define CONFIG_ADPCM_MTAF_DECODER 0 #define CONFIG_ADPCM_PSX_DECODER 0 #define CONFIG_ADPCM_SBPRO_2_DECODER 0 #define CONFIG_ADPCM_SBPRO_3_DECODER 0 #define CONFIG_ADPCM_SBPRO_4_DECODER 0 #define CONFIG_ADPCM_SWF_DECODER 0 -#define CONFIG_ADPCM_SWF_ENCODER 0 #define CONFIG_ADPCM_THP_DECODER 0 #define CONFIG_ADPCM_THP_LE_DECODER 0 #define CONFIG_ADPCM_VIMA_DECODER 0 #define CONFIG_ADPCM_XA_DECODER 0 #define CONFIG_ADPCM_YAMAHA_DECODER 0 -#define CONFIG_ADPCM_YAMAHA_ENCODER 0 +#define CONFIG_SSA_DECODER 0 +#define CONFIG_ASS_DECODER 0 +#define CONFIG_CCAPTION_DECODER 0 +#define CONFIG_DVBSUB_DECODER 0 +#define CONFIG_DVDSUB_DECODER 0 +#define CONFIG_JACOSUB_DECODER 0 +#define CONFIG_MICRODVD_DECODER 0 +#define CONFIG_MOVTEXT_DECODER 0 +#define CONFIG_MPL2_DECODER 0 +#define CONFIG_PGSSUB_DECODER 0 +#define CONFIG_PJS_DECODER 0 +#define CONFIG_REALTEXT_DECODER 0 +#define CONFIG_SAMI_DECODER 0 +#define CONFIG_SRT_DECODER 0 +#define CONFIG_STL_DECODER 0 +#define CONFIG_SUBRIP_DECODER 0 +#define CONFIG_SUBVIEWER_DECODER 0 +#define CONFIG_SUBVIEWER1_DECODER 0 +#define CONFIG_TEXT_DECODER 0 +#define CONFIG_VPLAYER_DECODER 0 +#define CONFIG_WEBVTT_DECODER 0 +#define CONFIG_XSUB_DECODER 0 +#define CONFIG_AAC_AT_DECODER 0 +#define CONFIG_AC3_AT_DECODER 0 +#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 +#define CONFIG_ALAC_AT_DECODER 0 +#define CONFIG_AMR_NB_AT_DECODER 0 +#define CONFIG_EAC3_AT_DECODER 0 +#define CONFIG_GSM_MS_AT_DECODER 0 +#define CONFIG_ILBC_AT_DECODER 0 +#define CONFIG_MP1_AT_DECODER 0 +#define CONFIG_MP2_AT_DECODER 0 +#define CONFIG_MP3_AT_DECODER 0 +#define CONFIG_PCM_ALAW_AT_DECODER 0 +#define CONFIG_PCM_MULAW_AT_DECODER 0 +#define CONFIG_QDMC_AT_DECODER 0 +#define CONFIG_QDM2_AT_DECODER 0 +#define CONFIG_LIBCELT_DECODER 0 +#define CONFIG_LIBFDK_AAC_DECODER 0 +#define CONFIG_LIBGSM_DECODER 0 +#define CONFIG_LIBGSM_MS_DECODER 0 +#define CONFIG_LIBILBC_DECODER 0 +#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 +#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 +#define CONFIG_LIBOPENJPEG_DECODER 0 +#define CONFIG_LIBOPUS_DECODER 0 +#define CONFIG_LIBRSVG_DECODER 0 +#define CONFIG_LIBSPEEX_DECODER 0 +#define CONFIG_LIBVORBIS_DECODER 0 +#define CONFIG_LIBVPX_VP8_DECODER 0 +#define CONFIG_LIBVPX_VP9_DECODER 0 +#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 +#define CONFIG_BINTEXT_DECODER 0 +#define CONFIG_XBIN_DECODER 0 +#define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H264_CUVID_DECODER 0 +#define CONFIG_HEVC_CUVID_DECODER 0 +#define CONFIG_HEVC_MEDIACODEC_DECODER 0 +#define CONFIG_MJPEG_CUVID_DECODER 0 +#define CONFIG_MPEG1_CUVID_DECODER 0 +#define CONFIG_MPEG2_CUVID_DECODER 0 +#define CONFIG_MPEG4_CUVID_DECODER 0 +#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 +#define CONFIG_VC1_CUVID_DECODER 0 +#define CONFIG_VP8_CUVID_DECODER 0 +#define CONFIG_VP8_MEDIACODEC_DECODER 0 +#define CONFIG_VP8_QSV_DECODER 0 +#define CONFIG_VP9_CUVID_DECODER 0 +#define CONFIG_VP9_MEDIACODEC_DECODER 0 +#define CONFIG_AA_DEMUXER 0 +#define CONFIG_AAC_DEMUXER 0 +#define CONFIG_AC3_DEMUXER 0 +#define CONFIG_ACM_DEMUXER 0 +#define CONFIG_ACT_DEMUXER 0 +#define CONFIG_ADF_DEMUXER 0 #define CONFIG_ADP_DEMUXER 0 -#define CONFIG_ADRAWGRAPH_FILTER 0 #define CONFIG_ADS_DEMUXER 0 -#define CONFIG_ADTS_MUXER 0 #define CONFIG_ADX_DEMUXER 0 -#define CONFIG_ADX_MUXER 0 -#define CONFIG_ADX_PARSER 0 #define CONFIG_AEA_DEMUXER 0 +#define CONFIG_AFC_DEMUXER 0 +#define CONFIG_AIFF_DEMUXER 0 +#define CONFIG_AIX_DEMUXER 0 +#define CONFIG_AMR_DEMUXER 0 +#define CONFIG_ANM_DEMUXER 0 +#define CONFIG_APC_DEMUXER 0 +#define CONFIG_APE_DEMUXER 0 +#define CONFIG_APNG_DEMUXER 0 +#define CONFIG_AQTITLE_DEMUXER 0 +#define CONFIG_ASF_DEMUXER 0 +#define CONFIG_ASF_O_DEMUXER 0 +#define CONFIG_ASS_DEMUXER 0 +#define CONFIG_AST_DEMUXER 0 +#define CONFIG_AU_DEMUXER 0 +#define CONFIG_AVI_DEMUXER 0 +#define CONFIG_AVISYNTH_DEMUXER 0 +#define CONFIG_AVR_DEMUXER 0 +#define CONFIG_AVS_DEMUXER 0 +#define CONFIG_BETHSOFTVID_DEMUXER 0 +#define CONFIG_BFI_DEMUXER 0 +#define CONFIG_BINTEXT_DEMUXER 0 +#define CONFIG_BINK_DEMUXER 0 +#define CONFIG_BIT_DEMUXER 0 +#define CONFIG_BMV_DEMUXER 0 +#define CONFIG_BFSTM_DEMUXER 0 +#define CONFIG_BRSTM_DEMUXER 0 +#define CONFIG_BOA_DEMUXER 0 +#define CONFIG_C93_DEMUXER 0 +#define CONFIG_CAF_DEMUXER 0 +#define CONFIG_CAVSVIDEO_DEMUXER 0 +#define CONFIG_CDG_DEMUXER 0 +#define CONFIG_CDXL_DEMUXER 0 +#define CONFIG_CINE_DEMUXER 0 +#define CONFIG_CONCAT_DEMUXER 0 +#define CONFIG_DASH_DEMUXER 0 +#define CONFIG_DATA_DEMUXER 0 +#define CONFIG_DAUD_DEMUXER 0 +#define CONFIG_DCSTR_DEMUXER 0 +#define CONFIG_DFA_DEMUXER 0 +#define CONFIG_DIRAC_DEMUXER 0 +#define CONFIG_DNXHD_DEMUXER 0 +#define CONFIG_DSF_DEMUXER 0 +#define CONFIG_DSICIN_DEMUXER 0 +#define CONFIG_DSS_DEMUXER 0 +#define CONFIG_DTS_DEMUXER 0 +#define CONFIG_DTSHD_DEMUXER 0 +#define CONFIG_DV_DEMUXER 0 +#define CONFIG_DVBSUB_DEMUXER 0 +#define CONFIG_DVBTXT_DEMUXER 0 +#define CONFIG_DXA_DEMUXER 0 +#define CONFIG_EA_DEMUXER 0 +#define CONFIG_EA_CDATA_DEMUXER 0 +#define CONFIG_EAC3_DEMUXER 0 +#define CONFIG_EPAF_DEMUXER 0 +#define CONFIG_FFM_DEMUXER 0 +#define CONFIG_FFMETADATA_DEMUXER 0 +#define CONFIG_FILMSTRIP_DEMUXER 0 +#define CONFIG_FITS_DEMUXER 0 +#define CONFIG_FLAC_DEMUXER 0 +#define CONFIG_FLIC_DEMUXER 0 +#define CONFIG_FLV_DEMUXER 0 +#define CONFIG_LIVE_FLV_DEMUXER 0 +#define CONFIG_FOURXM_DEMUXER 0 +#define CONFIG_FRM_DEMUXER 0 +#define CONFIG_FSB_DEMUXER 0 +#define CONFIG_G722_DEMUXER 0 +#define CONFIG_G723_1_DEMUXER 0 +#define CONFIG_G726_DEMUXER 0 +#define CONFIG_G726LE_DEMUXER 0 +#define CONFIG_G729_DEMUXER 0 +#define CONFIG_GDV_DEMUXER 0 +#define CONFIG_GENH_DEMUXER 0 +#define CONFIG_GIF_DEMUXER 0 +#define CONFIG_GSM_DEMUXER 0 +#define CONFIG_GXF_DEMUXER 0 +#define CONFIG_H261_DEMUXER 0 +#define CONFIG_H263_DEMUXER 0 +#define CONFIG_H264_DEMUXER 0 +#define CONFIG_HEVC_DEMUXER 0 +#define CONFIG_HLS_DEMUXER 0 +#define CONFIG_HNM_DEMUXER 0 +#define CONFIG_ICO_DEMUXER 0 +#define CONFIG_IDCIN_DEMUXER 0 +#define CONFIG_IDF_DEMUXER 0 +#define CONFIG_IFF_DEMUXER 0 +#define CONFIG_ILBC_DEMUXER 0 +#define CONFIG_IMAGE2_DEMUXER 0 +#define CONFIG_IMAGE2PIPE_DEMUXER 0 +#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 +#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 +#define CONFIG_INGENIENT_DEMUXER 0 +#define CONFIG_IPMOVIE_DEMUXER 0 +#define CONFIG_IRCAM_DEMUXER 0 +#define CONFIG_ISS_DEMUXER 0 +#define CONFIG_IV8_DEMUXER 0 +#define CONFIG_IVF_DEMUXER 0 +#define CONFIG_IVR_DEMUXER 0 +#define CONFIG_JACOSUB_DEMUXER 0 +#define CONFIG_JV_DEMUXER 0 +#define CONFIG_LMLM4_DEMUXER 0 +#define CONFIG_LOAS_DEMUXER 0 +#define CONFIG_LRC_DEMUXER 0 +#define CONFIG_LVF_DEMUXER 0 +#define CONFIG_LXF_DEMUXER 0 +#define CONFIG_M4V_DEMUXER 0 +#define CONFIG_MATROSKA_DEMUXER 0 +#define CONFIG_MGSTS_DEMUXER 0 +#define CONFIG_MICRODVD_DEMUXER 0 +#define CONFIG_MJPEG_DEMUXER 0 +#define CONFIG_MJPEG_2000_DEMUXER 0 +#define CONFIG_MLP_DEMUXER 0 +#define CONFIG_MLV_DEMUXER 0 +#define CONFIG_MM_DEMUXER 0 +#define CONFIG_MMF_DEMUXER 0 +#define CONFIG_MOV_DEMUXER 0 +#define CONFIG_MP3_DEMUXER 0 +#define CONFIG_MPC_DEMUXER 0 +#define CONFIG_MPC8_DEMUXER 0 +#define CONFIG_MPEGPS_DEMUXER 0 +#define CONFIG_MPEGTS_DEMUXER 0 +#define CONFIG_MPEGTSRAW_DEMUXER 0 +#define CONFIG_MPEGVIDEO_DEMUXER 0 +#define CONFIG_MPJPEG_DEMUXER 0 +#define CONFIG_MPL2_DEMUXER 0 +#define CONFIG_MPSUB_DEMUXER 0 +#define CONFIG_MSF_DEMUXER 0 +#define CONFIG_MSNWC_TCP_DEMUXER 0 +#define CONFIG_MTAF_DEMUXER 0 +#define CONFIG_MTV_DEMUXER 0 +#define CONFIG_MUSX_DEMUXER 0 +#define CONFIG_MV_DEMUXER 0 +#define CONFIG_MVI_DEMUXER 0 +#define CONFIG_MXF_DEMUXER 0 +#define CONFIG_MXG_DEMUXER 0 +#define CONFIG_NC_DEMUXER 0 +#define CONFIG_NISTSPHERE_DEMUXER 0 +#define CONFIG_NSV_DEMUXER 0 +#define CONFIG_NUT_DEMUXER 0 +#define CONFIG_NUV_DEMUXER 0 +#define CONFIG_OGG_DEMUXER 0 +#define CONFIG_OMA_DEMUXER 0 +#define CONFIG_PAF_DEMUXER 0 +#define CONFIG_PCM_ALAW_DEMUXER 0 +#define CONFIG_PCM_MULAW_DEMUXER 0 +#define CONFIG_PCM_F64BE_DEMUXER 0 +#define CONFIG_PCM_F64LE_DEMUXER 0 +#define CONFIG_PCM_F32BE_DEMUXER 0 +#define CONFIG_PCM_F32LE_DEMUXER 0 +#define CONFIG_PCM_S32BE_DEMUXER 0 +#define CONFIG_PCM_S32LE_DEMUXER 0 +#define CONFIG_PCM_S24BE_DEMUXER 0 +#define CONFIG_PCM_S24LE_DEMUXER 0 +#define CONFIG_PCM_S16BE_DEMUXER 0 +#define CONFIG_PCM_S16LE_DEMUXER 0 +#define CONFIG_PCM_S8_DEMUXER 0 +#define CONFIG_PCM_U32BE_DEMUXER 0 +#define CONFIG_PCM_U32LE_DEMUXER 0 +#define CONFIG_PCM_U24BE_DEMUXER 0 +#define CONFIG_PCM_U24LE_DEMUXER 0 +#define CONFIG_PCM_U16BE_DEMUXER 0 +#define CONFIG_PCM_U16LE_DEMUXER 0 +#define CONFIG_PCM_U8_DEMUXER 0 +#define CONFIG_PJS_DEMUXER 0 +#define CONFIG_PMP_DEMUXER 0 +#define CONFIG_PVA_DEMUXER 0 +#define CONFIG_PVF_DEMUXER 0 +#define CONFIG_QCP_DEMUXER 0 +#define CONFIG_R3D_DEMUXER 0 +#define CONFIG_RAWVIDEO_DEMUXER 0 +#define CONFIG_REALTEXT_DEMUXER 0 +#define CONFIG_REDSPARK_DEMUXER 0 +#define CONFIG_RL2_DEMUXER 0 +#define CONFIG_RM_DEMUXER 0 +#define CONFIG_ROQ_DEMUXER 0 +#define CONFIG_RPL_DEMUXER 0 +#define CONFIG_RSD_DEMUXER 0 +#define CONFIG_RSO_DEMUXER 0 +#define CONFIG_RTP_DEMUXER 0 +#define CONFIG_RTSP_DEMUXER 0 +#define CONFIG_S337M_DEMUXER 0 +#define CONFIG_SAMI_DEMUXER 0 +#define CONFIG_SAP_DEMUXER 0 +#define CONFIG_SBG_DEMUXER 0 +#define CONFIG_SCC_DEMUXER 0 +#define CONFIG_SDP_DEMUXER 0 +#define CONFIG_SDR2_DEMUXER 0 +#define CONFIG_SDS_DEMUXER 0 +#define CONFIG_SDX_DEMUXER 0 +#define CONFIG_SEGAFILM_DEMUXER 0 +#define CONFIG_SHORTEN_DEMUXER 0 +#define CONFIG_SIFF_DEMUXER 0 +#define CONFIG_SLN_DEMUXER 0 +#define CONFIG_SMACKER_DEMUXER 0 +#define CONFIG_SMJPEG_DEMUXER 0 +#define CONFIG_SMUSH_DEMUXER 0 +#define CONFIG_SOL_DEMUXER 0 +#define CONFIG_SOX_DEMUXER 0 +#define CONFIG_SPDIF_DEMUXER 0 +#define CONFIG_SRT_DEMUXER 0 +#define CONFIG_STR_DEMUXER 0 +#define CONFIG_STL_DEMUXER 0 +#define CONFIG_SUBVIEWER1_DEMUXER 0 +#define CONFIG_SUBVIEWER_DEMUXER 0 +#define CONFIG_SUP_DEMUXER 0 +#define CONFIG_SVAG_DEMUXER 0 +#define CONFIG_SWF_DEMUXER 0 +#define CONFIG_TAK_DEMUXER 0 +#define CONFIG_TEDCAPTIONS_DEMUXER 0 +#define CONFIG_THP_DEMUXER 0 +#define CONFIG_THREEDOSTR_DEMUXER 0 +#define CONFIG_TIERTEXSEQ_DEMUXER 0 +#define CONFIG_TMV_DEMUXER 0 +#define CONFIG_TRUEHD_DEMUXER 0 +#define CONFIG_TTA_DEMUXER 0 +#define CONFIG_TXD_DEMUXER 0 +#define CONFIG_TTY_DEMUXER 0 +#define CONFIG_V210_DEMUXER 0 +#define CONFIG_V210X_DEMUXER 0 +#define CONFIG_VAG_DEMUXER 0 +#define CONFIG_VC1_DEMUXER 0 +#define CONFIG_VC1T_DEMUXER 0 +#define CONFIG_VIVO_DEMUXER 0 +#define CONFIG_VMD_DEMUXER 0 +#define CONFIG_VOBSUB_DEMUXER 0 +#define CONFIG_VOC_DEMUXER 0 +#define CONFIG_VPK_DEMUXER 0 +#define CONFIG_VPLAYER_DEMUXER 0 +#define CONFIG_VQF_DEMUXER 0 +#define CONFIG_W64_DEMUXER 0 +#define CONFIG_WAV_DEMUXER 0 +#define CONFIG_WC3_DEMUXER 0 +#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 +#define CONFIG_WEBVTT_DEMUXER 0 +#define CONFIG_WSAUD_DEMUXER 0 +#define CONFIG_WSD_DEMUXER 0 +#define CONFIG_WSVQA_DEMUXER 0 +#define CONFIG_WTV_DEMUXER 0 +#define CONFIG_WVE_DEMUXER 0 +#define CONFIG_WV_DEMUXER 0 +#define CONFIG_XA_DEMUXER 0 +#define CONFIG_XBIN_DEMUXER 0 +#define CONFIG_XMV_DEMUXER 0 +#define CONFIG_XVAG_DEMUXER 0 +#define CONFIG_XWMA_DEMUXER 0 +#define CONFIG_YOP_DEMUXER 0 +#define CONFIG_YUV4MPEGPIPE_DEMUXER 0 +#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 +#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 +#define CONFIG_LIBGME_DEMUXER 0 +#define CONFIG_LIBMODPLUG_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 +#define CONFIG_A64MULTI_ENCODER 0 +#define CONFIG_A64MULTI5_ENCODER 0 +#define CONFIG_ALIAS_PIX_ENCODER 0 +#define CONFIG_AMV_ENCODER 0 +#define CONFIG_APNG_ENCODER 0 +#define CONFIG_ASV1_ENCODER 0 +#define CONFIG_ASV2_ENCODER 0 +#define CONFIG_AVRP_ENCODER 0 +#define CONFIG_AVUI_ENCODER 0 +#define CONFIG_AYUV_ENCODER 0 +#define CONFIG_BMP_ENCODER 0 +#define CONFIG_CINEPAK_ENCODER 0 +#define CONFIG_CLJR_ENCODER 0 +#define CONFIG_COMFORTNOISE_ENCODER 0 +#define CONFIG_DNXHD_ENCODER 0 +#define CONFIG_DPX_ENCODER 0 +#define CONFIG_DVVIDEO_ENCODER 0 +#define CONFIG_FFV1_ENCODER 0 +#define CONFIG_FFVHUFF_ENCODER 0 +#define CONFIG_FITS_ENCODER 0 +#define CONFIG_FLASHSV_ENCODER 0 +#define CONFIG_FLASHSV2_ENCODER 0 +#define CONFIG_FLV_ENCODER 0 +#define CONFIG_GIF_ENCODER 0 +#define CONFIG_H261_ENCODER 0 +#define CONFIG_H263_ENCODER 0 +#define CONFIG_H263P_ENCODER 0 +#define CONFIG_HAP_ENCODER 0 +#define CONFIG_HUFFYUV_ENCODER 0 +#define CONFIG_JPEG2000_ENCODER 0 +#define CONFIG_JPEGLS_ENCODER 0 +#define CONFIG_LJPEG_ENCODER 0 +#define CONFIG_MJPEG_ENCODER 0 +#define CONFIG_MPEG1VIDEO_ENCODER 0 +#define CONFIG_MPEG2VIDEO_ENCODER 0 +#define CONFIG_MPEG4_ENCODER 0 +#define CONFIG_MSMPEG4V2_ENCODER 0 +#define CONFIG_MSMPEG4V3_ENCODER 0 +#define CONFIG_MSVIDEO1_ENCODER 0 +#define CONFIG_PAM_ENCODER 0 +#define CONFIG_PBM_ENCODER 0 +#define CONFIG_PCX_ENCODER 0 +#define CONFIG_PGM_ENCODER 0 +#define CONFIG_PGMYUV_ENCODER 0 +#define CONFIG_PNG_ENCODER 0 +#define CONFIG_PPM_ENCODER 0 +#define CONFIG_PRORES_ENCODER 0 +#define CONFIG_PRORES_AW_ENCODER 0 +#define CONFIG_PRORES_KS_ENCODER 0 +#define CONFIG_QTRLE_ENCODER 0 +#define CONFIG_R10K_ENCODER 0 +#define CONFIG_R210_ENCODER 0 +#define CONFIG_RAWVIDEO_ENCODER 0 +#define CONFIG_ROQ_ENCODER 0 +#define CONFIG_RV10_ENCODER 0 +#define CONFIG_RV20_ENCODER 0 +#define CONFIG_S302M_ENCODER 0 +#define CONFIG_SGI_ENCODER 0 +#define CONFIG_SNOW_ENCODER 0 +#define CONFIG_SUNRAST_ENCODER 0 +#define CONFIG_SVQ1_ENCODER 0 +#define CONFIG_TARGA_ENCODER 0 +#define CONFIG_TIFF_ENCODER 0 +#define CONFIG_UTVIDEO_ENCODER 0 +#define CONFIG_V210_ENCODER 0 +#define CONFIG_V308_ENCODER 0 +#define CONFIG_V408_ENCODER 0 +#define CONFIG_V410_ENCODER 0 +#define CONFIG_VC2_ENCODER 0 +#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 +#define CONFIG_WMV1_ENCODER 0 +#define CONFIG_WMV2_ENCODER 0 +#define CONFIG_XBM_ENCODER 0 +#define CONFIG_XFACE_ENCODER 0 +#define CONFIG_XWD_ENCODER 0 +#define CONFIG_Y41P_ENCODER 0 +#define CONFIG_YUV4_ENCODER 0 +#define CONFIG_ZLIB_ENCODER 0 +#define CONFIG_ZMBV_ENCODER 0 +#define CONFIG_AAC_ENCODER 0 +#define CONFIG_AC3_ENCODER 0 +#define CONFIG_AC3_FIXED_ENCODER 0 +#define CONFIG_ALAC_ENCODER 0 +#define CONFIG_DCA_ENCODER 0 +#define CONFIG_EAC3_ENCODER 0 +#define CONFIG_FLAC_ENCODER 0 +#define CONFIG_G723_1_ENCODER 0 +#define CONFIG_MLP_ENCODER 0 +#define CONFIG_MP2_ENCODER 0 +#define CONFIG_MP2FIXED_ENCODER 0 +#define CONFIG_NELLYMOSER_ENCODER 0 +#define CONFIG_OPUS_ENCODER 0 +#define CONFIG_RA_144_ENCODER 0 +#define CONFIG_SONIC_ENCODER 0 +#define CONFIG_SONIC_LS_ENCODER 0 +#define CONFIG_TRUEHD_ENCODER 0 +#define CONFIG_TTA_ENCODER 0 +#define CONFIG_VORBIS_ENCODER 0 +#define CONFIG_WAVPACK_ENCODER 0 +#define CONFIG_WMAV1_ENCODER 0 +#define CONFIG_WMAV2_ENCODER 0 +#define CONFIG_PCM_ALAW_ENCODER 0 +#define CONFIG_PCM_F32BE_ENCODER 0 +#define CONFIG_PCM_F32LE_ENCODER 0 +#define CONFIG_PCM_F64BE_ENCODER 0 +#define CONFIG_PCM_F64LE_ENCODER 0 +#define CONFIG_PCM_MULAW_ENCODER 0 +#define CONFIG_PCM_S8_ENCODER 0 +#define CONFIG_PCM_S8_PLANAR_ENCODER 0 +#define CONFIG_PCM_S16BE_ENCODER 0 +#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 +#define CONFIG_PCM_S16LE_ENCODER 0 +#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 +#define CONFIG_PCM_S24BE_ENCODER 0 +#define CONFIG_PCM_S24DAUD_ENCODER 0 +#define CONFIG_PCM_S24LE_ENCODER 0 +#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 +#define CONFIG_PCM_S32BE_ENCODER 0 +#define CONFIG_PCM_S32LE_ENCODER 0 +#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 +#define CONFIG_PCM_S64BE_ENCODER 0 +#define CONFIG_PCM_S64LE_ENCODER 0 +#define CONFIG_PCM_U8_ENCODER 0 +#define CONFIG_PCM_U16BE_ENCODER 0 +#define CONFIG_PCM_U16LE_ENCODER 0 +#define CONFIG_PCM_U24BE_ENCODER 0 +#define CONFIG_PCM_U24LE_ENCODER 0 +#define CONFIG_PCM_U32BE_ENCODER 0 +#define CONFIG_PCM_U32LE_ENCODER 0 +#define CONFIG_ROQ_DPCM_ENCODER 0 +#define CONFIG_ADPCM_ADX_ENCODER 0 +#define CONFIG_ADPCM_G722_ENCODER 0 +#define CONFIG_ADPCM_G726_ENCODER 0 +#define CONFIG_ADPCM_G726LE_ENCODER 0 +#define CONFIG_ADPCM_IMA_QT_ENCODER 0 +#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 +#define CONFIG_ADPCM_MS_ENCODER 0 +#define CONFIG_ADPCM_SWF_ENCODER 0 +#define CONFIG_ADPCM_YAMAHA_ENCODER 0 +#define CONFIG_SSA_ENCODER 0 +#define CONFIG_ASS_ENCODER 0 +#define CONFIG_DVBSUB_ENCODER 0 +#define CONFIG_DVDSUB_ENCODER 0 +#define CONFIG_MOVTEXT_ENCODER 0 +#define CONFIG_SRT_ENCODER 0 +#define CONFIG_SUBRIP_ENCODER 0 +#define CONFIG_TEXT_ENCODER 0 +#define CONFIG_WEBVTT_ENCODER 0 +#define CONFIG_XSUB_ENCODER 0 +#define CONFIG_AAC_AT_ENCODER 0 +#define CONFIG_ALAC_AT_ENCODER 0 +#define CONFIG_ILBC_AT_ENCODER 0 +#define CONFIG_PCM_ALAW_AT_ENCODER 0 +#define CONFIG_PCM_MULAW_AT_ENCODER 0 +#define CONFIG_LIBFDK_AAC_ENCODER 0 +#define CONFIG_LIBGSM_ENCODER 0 +#define CONFIG_LIBGSM_MS_ENCODER 0 +#define CONFIG_LIBILBC_ENCODER 0 +#define CONFIG_LIBMP3LAME_ENCODER 0 +#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 +#define CONFIG_LIBOPENJPEG_ENCODER 0 +#define CONFIG_LIBOPUS_ENCODER 0 +#define CONFIG_LIBSHINE_ENCODER 0 +#define CONFIG_LIBSPEEX_ENCODER 0 +#define CONFIG_LIBTHEORA_ENCODER 0 +#define CONFIG_LIBTWOLAME_ENCODER 0 +#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 +#define CONFIG_LIBVORBIS_ENCODER 0 +#define CONFIG_LIBVPX_VP8_ENCODER 0 +#define CONFIG_LIBVPX_VP9_ENCODER 0 +#define CONFIG_LIBWAVPACK_ENCODER 0 +#define CONFIG_LIBWEBP_ANIM_ENCODER 0 +#define CONFIG_LIBWEBP_ENCODER 0 +#define CONFIG_LIBX262_ENCODER 0 +#define CONFIG_LIBX264_ENCODER 0 +#define CONFIG_LIBX264RGB_ENCODER 0 +#define CONFIG_LIBX265_ENCODER 0 +#define CONFIG_LIBXAVS_ENCODER 0 +#define CONFIG_LIBXVID_ENCODER 0 +#define CONFIG_H263_V4L2M2M_ENCODER 0 +#define CONFIG_LIBOPENH264_ENCODER 0 +#define CONFIG_H264_NVENC_ENCODER 0 +#define CONFIG_H264_OMX_ENCODER 0 +#define CONFIG_H264_QSV_ENCODER 0 +#define CONFIG_H264_V4L2M2M_ENCODER 0 +#define CONFIG_H264_VAAPI_ENCODER 0 +#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 +#define CONFIG_NVENC_ENCODER 0 +#define CONFIG_NVENC_H264_ENCODER 0 +#define CONFIG_NVENC_HEVC_ENCODER 0 +#define CONFIG_HEVC_NVENC_ENCODER 0 +#define CONFIG_HEVC_QSV_ENCODER 0 +#define CONFIG_HEVC_V4L2M2M_ENCODER 0 +#define CONFIG_HEVC_VAAPI_ENCODER 0 +#define CONFIG_LIBKVAZAAR_ENCODER 0 +#define CONFIG_MJPEG_VAAPI_ENCODER 0 +#define CONFIG_MPEG2_QSV_ENCODER 0 +#define CONFIG_MPEG2_VAAPI_ENCODER 0 +#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 +#define CONFIG_VP8_V4L2M2M_ENCODER 0 +#define CONFIG_VP8_VAAPI_ENCODER 0 +#define CONFIG_VP9_VAAPI_ENCODER 0 +#define CONFIG_ABENCH_FILTER 0 +#define CONFIG_ACOMPRESSOR_FILTER 0 +#define CONFIG_ACOPY_FILTER 0 +#define CONFIG_ACROSSFADE_FILTER 0 +#define CONFIG_ACRUSHER_FILTER 0 +#define CONFIG_ADELAY_FILTER 0 #define CONFIG_AECHO_FILTER 0 #define CONFIG_AEMPHASIS_FILTER 0 -#define CONFIG_AEVALSRC_FILTER 0 #define CONFIG_AEVAL_FILTER 0 #define CONFIG_AFADE_FILTER 0 -#define CONFIG_AFC_DEMUXER 0 #define CONFIG_AFFTFILT_FILTER 0 -#define CONFIG_AFIFO_FILTER 0 #define CONFIG_AFIR_FILTER 0 #define CONFIG_AFORMAT_FILTER 0 #define CONFIG_AGATE_FILTER 0 -#define CONFIG_AHISTOGRAM_FILTER 0 -#define CONFIG_AIC_DECODER 0 -#define CONFIG_AIFF_DEMUXER 0 -#define CONFIG_AIFF_MUXER 0 -#define CONFIG_AIIR_FILTER 0 #define CONFIG_AINTERLEAVE_FILTER 0 -#define CONFIG_AIX_DEMUXER 0 -#define CONFIG_ALAC_AT_DECODER 0 -#define CONFIG_ALAC_AT_ENCODER 0 -#define CONFIG_ALAC_DECODER 0 -#define CONFIG_ALAC_ENCODER 0 -#define CONFIG_ALIAS_PIX_DECODER 0 -#define CONFIG_ALIAS_PIX_ENCODER 0 #define CONFIG_ALIMITER_FILTER 0 #define CONFIG_ALLPASS_FILTER 0 -#define CONFIG_ALLRGB_FILTER 0 -#define CONFIG_ALLYUV_FILTER 0 #define CONFIG_ALOOP_FILTER 0 -#define CONFIG_ALPHAEXTRACT_FILTER 0 -#define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ALSA_INDEV 0 -#define CONFIG_ALSA_OUTDEV 0 -#define CONFIG_ALS_DECODER 0 #define CONFIG_AMERGE_FILTER 0 #define CONFIG_AMETADATA_FILTER 0 #define CONFIG_AMIX_FILTER 0 -#define CONFIG_AMOVIE_FILTER 0 -#define CONFIG_AMRNB_DECODER 0 -#define CONFIG_AMRNB_DEMUXER 0 -#define CONFIG_AMRWB_DECODER 0 -#define CONFIG_AMRWB_DEMUXER 0 -#define CONFIG_AMR_DEMUXER 0 -#define CONFIG_AMR_MUXER 0 -#define CONFIG_AMR_NB_AT_DECODER 0 -#define CONFIG_AMV_DECODER 0 -#define CONFIG_AMV_ENCODER 0 -#define CONFIG_ANDROID_CAMERA_INDEV 0 #define CONFIG_ANEQUALIZER_FILTER 0 -#define CONFIG_ANM_DECODER 0 -#define CONFIG_ANM_DEMUXER 0 -#define CONFIG_ANOISESRC_FILTER 0 -#define CONFIG_ANSI_DECODER 0 -#define CONFIG_ANULLSINK_FILTER 0 -#define CONFIG_ANULLSRC_FILTER 0 #define CONFIG_ANULL_FILTER 0 #define CONFIG_APAD_FILTER 0 -#define CONFIG_APC_DEMUXER 0 #define CONFIG_APERMS_FILTER 0 -#define CONFIG_APE_DECODER 0 -#define CONFIG_APE_DEMUXER 0 -#define CONFIG_APHASEMETER_FILTER 0 #define CONFIG_APHASER_FILTER 0 -#define CONFIG_APNG_DECODER 0 -#define CONFIG_APNG_DEMUXER 0 -#define CONFIG_APNG_ENCODER 0 -#define CONFIG_APNG_MUXER 0 -#define CONFIG_APTX_DECODER 0 -#define CONFIG_APTX_DEMUXER 0 -#define CONFIG_APTX_ENCODER 0 -#define CONFIG_APTX_HD_DECODER 0 -#define CONFIG_APTX_HD_DEMUXER 0 -#define CONFIG_APTX_HD_ENCODER 0 -#define CONFIG_APTX_HD_MUXER 0 -#define CONFIG_APTX_MUXER 0 #define CONFIG_APULSATOR_FILTER 0 -#define CONFIG_AQTITLE_DEMUXER 0 #define CONFIG_AREALTIME_FILTER 0 #define CONFIG_ARESAMPLE_FILTER 0 #define CONFIG_AREVERSE_FILTER 0 @@ -177,131 +1026,81 @@ #define CONFIG_ASETPTS_FILTER 0 #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 -#define CONFIG_ASF_DEMUXER 0 -#define CONFIG_ASF_MUXER 0 -#define CONFIG_ASF_O_DEMUXER 0 -#define CONFIG_ASF_STREAM_MUXER 0 #define CONFIG_ASHOWINFO_FILTER 0 #define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 -#define CONFIG_ASS_DECODER 0 -#define CONFIG_ASS_DEMUXER 0 -#define CONFIG_ASS_ENCODER 0 -#define CONFIG_ASS_FILTER 0 -#define CONFIG_ASS_MUXER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 -#define CONFIG_AST_DEMUXER 0 -#define CONFIG_AST_MUXER 0 -#define CONFIG_ASV1_DECODER 0 -#define CONFIG_ASV1_ENCODER 0 -#define CONFIG_ASV2_DECODER 0 -#define CONFIG_ASV2_ENCODER 0 -#define CONFIG_ASYNC_PROTOCOL 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ATEMPO_FILTER 0 -#define CONFIG_ATRAC1_DECODER 0 -#define CONFIG_ATRAC3AL_DECODER 0 -#define CONFIG_ATRAC3PAL_DECODER 0 -#define CONFIG_ATRAC3P_DECODER 0 -#define CONFIG_ATRAC3_DECODER 0 #define CONFIG_ATRIM_FILTER 0 -#define CONFIG_AURA2_DECODER 0 -#define CONFIG_AURA_DECODER 0 -#define CONFIG_AU_DEMUXER 0 -#define CONFIG_AU_MUXER 0 -#define CONFIG_AVECTORSCOPE_FILTER 0 -#define CONFIG_AVFOUNDATION_INDEV 0 -#define CONFIG_AVGBLUR_FILTER 0 -#define CONFIG_AVGBLUR_OPENCL_FILTER 0 -#define CONFIG_AVISYNTH_DEMUXER 0 -#define CONFIG_AVI_DEMUXER 0 -#define CONFIG_AVI_MUXER 0 -#define CONFIG_AVM2_MUXER 0 -#define CONFIG_AVRN_DECODER 0 -#define CONFIG_AVRP_DECODER 0 -#define CONFIG_AVRP_ENCODER 0 -#define CONFIG_AVR_DEMUXER 0 -#define CONFIG_AVS_DECODER 0 -#define CONFIG_AVS_DEMUXER 0 -#define CONFIG_AVUI_DECODER 0 -#define CONFIG_AVUI_ENCODER 0 -#define CONFIG_AYUV_DECODER 0 -#define CONFIG_AYUV_ENCODER 0 #define CONFIG_AZMQ_FILTER 0 #define CONFIG_BANDPASS_FILTER 0 #define CONFIG_BANDREJECT_FILTER 0 #define CONFIG_BASS_FILTER 0 +#define CONFIG_BIQUAD_FILTER 0 +#define CONFIG_BS2B_FILTER 0 +#define CONFIG_CHANNELMAP_FILTER 0 +#define CONFIG_CHANNELSPLIT_FILTER 0 +#define CONFIG_CHORUS_FILTER 0 +#define CONFIG_COMPAND_FILTER 0 +#define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CROSSFEED_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 +#define CONFIG_DCSHIFT_FILTER 0 +#define CONFIG_DYNAUDNORM_FILTER 0 +#define CONFIG_EARWAX_FILTER 0 +#define CONFIG_EBUR128_FILTER 0 +#define CONFIG_EQUALIZER_FILTER 0 +#define CONFIG_EXTRASTEREO_FILTER 0 +#define CONFIG_FIREQUALIZER_FILTER 0 +#define CONFIG_FLANGER_FILTER 0 +#define CONFIG_HAAS_FILTER 0 +#define CONFIG_HDCD_FILTER 0 +#define CONFIG_HEADPHONE_FILTER 0 +#define CONFIG_HIGHPASS_FILTER 0 +#define CONFIG_JOIN_FILTER 0 +#define CONFIG_LADSPA_FILTER 0 +#define CONFIG_LOUDNORM_FILTER 0 +#define CONFIG_LOWPASS_FILTER 0 +#define CONFIG_PAN_FILTER 0 +#define CONFIG_REPLAYGAIN_FILTER 0 +#define CONFIG_RESAMPLE_FILTER 0 +#define CONFIG_RUBBERBAND_FILTER 0 +#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 +#define CONFIG_SIDECHAINGATE_FILTER 0 +#define CONFIG_SILENCEDETECT_FILTER 0 +#define CONFIG_SILENCEREMOVE_FILTER 0 +#define CONFIG_SOFALIZER_FILTER 0 +#define CONFIG_STEREOTOOLS_FILTER 0 +#define CONFIG_STEREOWIDEN_FILTER 0 +#define CONFIG_SUPEREQUALIZER_FILTER 0 +#define CONFIG_SURROUND_FILTER 0 +#define CONFIG_TREBLE_FILTER 0 +#define CONFIG_TREMOLO_FILTER 0 +#define CONFIG_VIBRATO_FILTER 0 +#define CONFIG_VOLUME_FILTER 0 +#define CONFIG_VOLUMEDETECT_FILTER 0 +#define CONFIG_AEVALSRC_FILTER 0 +#define CONFIG_ANOISESRC_FILTER 0 +#define CONFIG_ANULLSRC_FILTER 0 +#define CONFIG_FLITE_FILTER 0 +#define CONFIG_SINE_FILTER 0 +#define CONFIG_ANULLSINK_FILTER 0 +#define CONFIG_ALPHAEXTRACT_FILTER 0 +#define CONFIG_ALPHAMERGE_FILTER 0 +#define CONFIG_ASS_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 #define CONFIG_BENCH_FILTER 0 -#define CONFIG_BETHSOFTVID_DECODER 0 -#define CONFIG_BETHSOFTVID_DEMUXER 0 -#define CONFIG_BFI_DECODER 0 -#define CONFIG_BFI_DEMUXER 0 -#define CONFIG_BFSTM_DEMUXER 0 -#define CONFIG_BINKAUDIO_DCT_DECODER 0 -#define CONFIG_BINKAUDIO_RDFT_DECODER 0 -#define CONFIG_BINK_DECODER 0 -#define CONFIG_BINK_DEMUXER 0 -#define CONFIG_BINTEXT_DECODER 0 -#define CONFIG_BINTEXT_DEMUXER 0 -#define CONFIG_BIQUAD_FILTER 0 -#define CONFIG_BITPACKED_DECODER 0 #define CONFIG_BITPLANENOISE_FILTER 0 -#define CONFIG_BIT_DEMUXER 0 -#define CONFIG_BIT_MUXER 0 -#define CONFIG_BKTR_INDEV 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 -#define CONFIG_BLURAY_PROTOCOL 0 -#define CONFIG_BMP_DECODER 0 -#define CONFIG_BMP_ENCODER 0 -#define CONFIG_BMP_PARSER 0 -#define CONFIG_BMV_AUDIO_DECODER 0 -#define CONFIG_BMV_DEMUXER 0 -#define CONFIG_BMV_VIDEO_DECODER 0 -#define CONFIG_BOA_DEMUXER 0 #define CONFIG_BOXBLUR_FILTER 0 -#define CONFIG_BRENDER_PIX_DECODER 0 -#define CONFIG_BRSTM_DEMUXER 0 -#define CONFIG_BS2B_FILTER 0 #define CONFIG_BWDIF_FILTER 0 -#define CONFIG_C93_DECODER 0 -#define CONFIG_C93_DEMUXER 0 -#define CONFIG_CACA_OUTDEV 0 -#define CONFIG_CACHE_PROTOCOL 0 -#define CONFIG_CAF_DEMUXER 0 -#define CONFIG_CAF_MUXER 0 -#define CONFIG_CAVSVIDEO_DEMUXER 0 -#define CONFIG_CAVSVIDEO_MUXER 0 -#define CONFIG_CAVSVIDEO_PARSER 0 -#define CONFIG_CAVS_DECODER 0 -#define CONFIG_CCAPTION_DECODER 0 -#define CONFIG_CDGRAPHICS_DECODER 0 -#define CONFIG_CDG_DEMUXER 0 -#define CONFIG_CDXL_DECODER 0 -#define CONFIG_CDXL_DEMUXER 0 -#define CONFIG_CELLAUTO_FILTER 0 -#define CONFIG_CFHD_DECODER 0 -#define CONFIG_CHANNELMAP_FILTER 0 -#define CONFIG_CHANNELSPLIT_FILTER 0 -#define CONFIG_CHOMP_BSF 0 -#define CONFIG_CHORUS_FILTER 0 #define CONFIG_CHROMAKEY_FILTER 0 -#define CONFIG_CHROMAPRINT_MUXER 0 #define CONFIG_CIESCOPE_FILTER 0 -#define CONFIG_CINEPAK_DECODER 0 -#define CONFIG_CINEPAK_ENCODER 0 -#define CONFIG_CINE_DEMUXER 0 -#define CONFIG_CLEARVIDEO_DECODER 0 -#define CONFIG_CLJR_DECODER 0 -#define CONFIG_CLJR_ENCODER 0 -#define CONFIG_CLLC_DECODER 0 -#define CONFIG_CODEC2RAW_DEMUXER 0 -#define CONFIG_CODEC2RAW_MUXER 0 -#define CONFIG_CODEC2_DEMUXER 0 -#define CONFIG_CODEC2_MUXER 0 #define CONFIG_CODECVIEW_FILTER 0 #define CONFIG_COLORBALANCE_FILTER 0 #define CONFIG_COLORCHANNELMIXER_FILTER 0 @@ -309,1426 +1108,567 @@ #define CONFIG_COLORLEVELS_FILTER 0 #define CONFIG_COLORMATRIX_FILTER 0 #define CONFIG_COLORSPACE_FILTER 0 -#define CONFIG_COLOR_FILTER 0 -#define CONFIG_COMFORTNOISE_DECODER 0 -#define CONFIG_COMFORTNOISE_ENCODER 0 -#define CONFIG_COMPAND_FILTER 0 -#define CONFIG_COMPENSATIONDELAY_FILTER 0 -#define CONFIG_CONCAT_DEMUXER 0 -#define CONFIG_CONCAT_FILTER 0 -#define CONFIG_CONCAT_PROTOCOL 0 #define CONFIG_CONVOLUTION_FILTER 0 -#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 #define CONFIG_CONVOLVE_FILTER 0 -#define CONFIG_COOK_DECODER 0 -#define CONFIG_COOK_PARSER 0 #define CONFIG_COPY_FILTER 0 -#define CONFIG_COREIMAGESRC_FILTER 0 #define CONFIG_COREIMAGE_FILTER 0 #define CONFIG_COVER_RECT_FILTER 0 -#define CONFIG_CPIA_DECODER 0 -#define CONFIG_CRC_MUXER 0 -#define CONFIG_CROPDETECT_FILTER 0 #define CONFIG_CROP_FILTER 0 -#define CONFIG_CROSSFEED_FILTER 0 -#define CONFIG_CRYPTO_PROTOCOL 0 -#define CONFIG_CRYSTALIZER_FILTER 0 -#define CONFIG_CSCD_DECODER 0 +#define CONFIG_CROPDETECT_FILTER 0 #define CONFIG_CURVES_FILTER 0 -#define CONFIG_CYUV_DECODER 0 -#define CONFIG_DASH_DEMUXER 0 -#define CONFIG_DASH_MUXER 0 #define CONFIG_DATASCOPE_FILTER 0 -#define CONFIG_DATA_DEMUXER 0 -#define CONFIG_DATA_MUXER 0 -#define CONFIG_DATA_PROTOCOL 0 -#define CONFIG_DAUD_DEMUXER 0 -#define CONFIG_DAUD_MUXER 0 -#define CONFIG_DCA_CORE_BSF 0 -#define CONFIG_DCA_DECODER 0 -#define CONFIG_DCA_ENCODER 0 -#define CONFIG_DCA_PARSER 0 -#define CONFIG_DCSHIFT_FILTER 0 -#define CONFIG_DCSTR_DEMUXER 0 #define CONFIG_DCTDNOIZ_FILTER 0 -#define CONFIG_DDS_DECODER 0 #define CONFIG_DEBAND_FILTER 0 #define CONFIG_DECIMATE_FILTER 0 -#define CONFIG_DECKLINK_INDEV 0 -#define CONFIG_DECKLINK_OUTDEV 0 -#define CONFIG_DECONVOLVE_FILTER 0 #define CONFIG_DEFLATE_FILTER 0 #define CONFIG_DEFLICKER_FILTER 0 #define CONFIG_DEINTERLACE_QSV_FILTER 0 #define CONFIG_DEINTERLACE_VAAPI_FILTER 0 #define CONFIG_DEJUDDER_FILTER 0 #define CONFIG_DELOGO_FILTER 0 -#define CONFIG_DEMUXERS 0 -#define CONFIG_DENOISE_VAAPI_FILTER 0 #define CONFIG_DESHAKE_FILTER 0 #define CONFIG_DESPILL_FILTER 0 #define CONFIG_DETELECINE_FILTER 0 -#define CONFIG_DFA_DECODER 0 -#define CONFIG_DFA_DEMUXER 0 #define CONFIG_DILATION_FILTER 0 -#define CONFIG_DIRAC_DECODER 0 -#define CONFIG_DIRAC_DEMUXER 0 -#define CONFIG_DIRAC_MUXER 0 -#define CONFIG_DIRAC_PARSER 0 #define CONFIG_DISPLACE_FILTER 0 -#define CONFIG_DNXHD_DECODER 0 -#define CONFIG_DNXHD_DEMUXER 0 -#define CONFIG_DNXHD_ENCODER 0 -#define CONFIG_DNXHD_MUXER 0 -#define CONFIG_DNXHD_PARSER 0 -#define CONFIG_DOLBY_E_DECODER 0 #define CONFIG_DOUBLEWEAVE_FILTER 0 -#define CONFIG_DPX_DECODER 0 -#define CONFIG_DPX_ENCODER 0 -#define CONFIG_DPX_PARSER 0 #define CONFIG_DRAWBOX_FILTER 0 #define CONFIG_DRAWGRAPH_FILTER 0 #define CONFIG_DRAWGRID_FILTER 0 #define CONFIG_DRAWTEXT_FILTER 0 -#define CONFIG_DRMETER_FILTER 0 -#define CONFIG_DSD_LSBF_DECODER 0 -#define CONFIG_DSD_LSBF_PLANAR_DECODER 0 -#define CONFIG_DSD_MSBF_DECODER 0 -#define CONFIG_DSD_MSBF_PLANAR_DECODER 0 -#define CONFIG_DSF_DEMUXER 0 -#define CONFIG_DSHOW_INDEV 0 -#define CONFIG_DSICINAUDIO_DECODER 0 -#define CONFIG_DSICINVIDEO_DECODER 0 -#define CONFIG_DSICIN_DEMUXER 0 -#define CONFIG_DSS_DEMUXER 0 -#define CONFIG_DSS_SP_DECODER 0 -#define CONFIG_DST_DECODER 0 -#define CONFIG_DTSHD_DEMUXER 0 -#define CONFIG_DTS_DEMUXER 0 -#define CONFIG_DTS_MUXER 0 -#define CONFIG_DUMP_EXTRADATA_BSF 0 -#define CONFIG_DVAUDIO_DECODER 0 -#define CONFIG_DVAUDIO_PARSER 0 -#define CONFIG_DVBSUB_DECODER 0 -#define CONFIG_DVBSUB_DEMUXER 0 -#define CONFIG_DVBSUB_ENCODER 0 -#define CONFIG_DVBSUB_PARSER 0 -#define CONFIG_DVBTXT_DEMUXER 0 -#define CONFIG_DVDSUB_DECODER 0 -#define CONFIG_DVDSUB_ENCODER 0 -#define CONFIG_DVDSUB_PARSER 0 -#define CONFIG_DVD_NAV_PARSER 0 -#define CONFIG_DVVIDEO_DECODER 0 -#define CONFIG_DVVIDEO_ENCODER 0 -#define CONFIG_DV_DEMUXER 0 -#define CONFIG_DV_MUXER 0 -#define CONFIG_DXA_DECODER 0 -#define CONFIG_DXA_DEMUXER 0 -#define CONFIG_DXTORY_DECODER 0 -#define CONFIG_DXV_DECODER 0 -#define CONFIG_DYNAUDNORM_FILTER 0 -#define CONFIG_EAC3_AT_DECODER 0 -#define CONFIG_EAC3_CORE_BSF 0 -#define CONFIG_EAC3_DECODER 0 -#define CONFIG_EAC3_DEMUXER 0 -#define CONFIG_EAC3_ENCODER 0 -#define CONFIG_EAC3_MUXER 0 -#define CONFIG_EACMV_DECODER 0 -#define CONFIG_EAMAD_DECODER 0 -#define CONFIG_EARWAX_FILTER 0 -#define CONFIG_EATGQ_DECODER 0 -#define CONFIG_EATGV_DECODER 0 -#define CONFIG_EATQI_DECODER 0 -#define CONFIG_EA_CDATA_DEMUXER 0 -#define CONFIG_EA_DEMUXER 0 -#define CONFIG_EBUR128_FILTER 0 #define CONFIG_EDGEDETECT_FILTER 0 -#define CONFIG_EIGHTBPS_DECODER 0 -#define CONFIG_EIGHTSVX_EXP_DECODER 0 -#define CONFIG_EIGHTSVX_FIB_DECODER 0 #define CONFIG_ELBG_FILTER 0 -#define CONFIG_ENCODERS 0 -#define CONFIG_ENTROPY_FILTER 0 -#define CONFIG_EPAF_DEMUXER 0 -#define CONFIG_EQUALIZER_FILTER 0 #define CONFIG_EQ_FILTER 0 #define CONFIG_EROSION_FILTER 0 -#define CONFIG_ESCAPE124_DECODER 0 -#define CONFIG_ESCAPE130_DECODER 0 -#define CONFIG_EVRC_DECODER 0 -#define CONFIG_EXR_DECODER 0 #define CONFIG_EXTRACTPLANES_FILTER 0 -#define CONFIG_EXTRACT_EXTRADATA_BSF 0 -#define CONFIG_EXTRASTEREO_FILTER 0 -#define CONFIG_F4V_MUXER 0 #define CONFIG_FADE_FILTER 0 -#define CONFIG_FBDEV_INDEV 0 -#define CONFIG_FBDEV_OUTDEV 0 -#define CONFIG_FFMETADATA_DEMUXER 0 -#define CONFIG_FFMETADATA_MUXER 0 -#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -#define CONFIG_FFRTMPHTTP_PROTOCOL 0 #define CONFIG_FFTFILT_FILTER 0 -#define CONFIG_FFV1_DECODER 0 -#define CONFIG_FFV1_ENCODER 0 -#define CONFIG_FFVHUFF_DECODER 0 -#define CONFIG_FFVHUFF_ENCODER 0 -#define CONFIG_FFWAVESYNTH_DECODER 0 -#define CONFIG_FIC_DECODER 0 +#define CONFIG_FIELD_FILTER 0 #define CONFIG_FIELDHINT_FILTER 0 #define CONFIG_FIELDMATCH_FILTER 0 #define CONFIG_FIELDORDER_FILTER 0 -#define CONFIG_FIELD_FILTER 0 -#define CONFIG_FIFO_FILTER 0 -#define CONFIG_FIFO_MUXER 0 -#define CONFIG_FIFO_TEST_MUXER 0 -#define CONFIG_FILE_PROTOCOL 0 -#define CONFIG_FILLBORDERS_FILTER 0 -#define CONFIG_FILMSTRIP_DEMUXER 0 -#define CONFIG_FILMSTRIP_MUXER 0 -#define CONFIG_FILTERS 0 -#define CONFIG_FILTER_UNITS_BSF 0 #define CONFIG_FIND_RECT_FILTER 0 -#define CONFIG_FIREQUALIZER_FILTER 0 -#define CONFIG_FITS_DECODER 0 -#define CONFIG_FITS_DEMUXER 0 -#define CONFIG_FITS_ENCODER 0 -#define CONFIG_FITS_MUXER 0 -#define CONFIG_FLAC_DEMUXER 0 -#define CONFIG_FLAC_ENCODER 0 -#define CONFIG_FLAC_MUXER 0 -#define CONFIG_FLAC_PARSER 0 -#define CONFIG_FLANGER_FILTER 0 -#define CONFIG_FLASHSV2_DECODER 0 -#define CONFIG_FLASHSV2_ENCODER 0 -#define CONFIG_FLASHSV_DECODER 0 -#define CONFIG_FLASHSV_ENCODER 0 -#define CONFIG_FLIC_DECODER 0 -#define CONFIG_FLIC_DEMUXER 0 -#define CONFIG_FLITE_FILTER 0 #define CONFIG_FLOODFILL_FILTER 0 -#define CONFIG_FLV_DECODER 0 -#define CONFIG_FLV_DEMUXER 0 -#define CONFIG_FLV_ENCODER 0 -#define CONFIG_FLV_MUXER 0 -#define CONFIG_FMVC_DECODER 0 #define CONFIG_FORMAT_FILTER 0 -#define CONFIG_FOURXM_DECODER 0 -#define CONFIG_FOURXM_DEMUXER 0 #define CONFIG_FPS_FILTER 0 -#define CONFIG_FRAMECRC_MUXER 0 -#define CONFIG_FRAMEHASH_MUXER 0 -#define CONFIG_FRAMEMD5_MUXER 0 #define CONFIG_FRAMEPACK_FILTER 0 #define CONFIG_FRAMERATE_FILTER 0 #define CONFIG_FRAMESTEP_FILTER 0 -#define CONFIG_FRAME_THREAD_ENCODER 0 -#define CONFIG_FRAPS_DECODER 0 #define CONFIG_FREI0R_FILTER 0 -#define CONFIG_FREI0R_SRC_FILTER 0 -#define CONFIG_FRM_DEMUXER 0 -#define CONFIG_FRWU_DECODER 0 -#define CONFIG_FSB_DEMUXER 0 #define CONFIG_FSPP_FILTER 0 -#define CONFIG_FTP_PROTOCOL 0 -#define CONFIG_G2M_DECODER 0 -#define CONFIG_G722_DEMUXER 0 -#define CONFIG_G722_MUXER 0 -#define CONFIG_G723_1_DECODER 0 -#define CONFIG_G723_1_DEMUXER 0 -#define CONFIG_G723_1_ENCODER 0 -#define CONFIG_G723_1_MUXER 0 -#define CONFIG_G726LE_DEMUXER 0 -#define CONFIG_G726LE_MUXER 0 -#define CONFIG_G726_DEMUXER 0 -#define CONFIG_G726_MUXER 0 -#define CONFIG_G729_DECODER 0 -#define CONFIG_G729_DEMUXER 0 -#define CONFIG_G729_PARSER 0 #define CONFIG_GBLUR_FILTER 0 -#define CONFIG_GDIGRAB_INDEV 0 -#define CONFIG_GDV_DECODER 0 -#define CONFIG_GDV_DEMUXER 0 -#define CONFIG_GENH_DEMUXER 0 #define CONFIG_GEQ_FILTER 0 -#define CONFIG_GIF_DECODER 0 -#define CONFIG_GIF_DEMUXER 0 -#define CONFIG_GIF_ENCODER 0 -#define CONFIG_GIF_MUXER 0 -#define CONFIG_GOPHER_PROTOCOL 0 #define CONFIG_GRADFUN_FILTER 0 -#define CONFIG_GREMLIN_DPCM_DECODER 0 -#define CONFIG_GSM_DECODER 0 -#define CONFIG_GSM_DEMUXER 0 -#define CONFIG_GSM_MS_AT_DECODER 0 -#define CONFIG_GSM_MS_DECODER 0 -#define CONFIG_GSM_MUXER 0 -#define CONFIG_GSM_PARSER 0 -#define CONFIG_GXF_DEMUXER 0 -#define CONFIG_GXF_MUXER 0 -#define CONFIG_H261_DECODER 0 -#define CONFIG_H261_DEMUXER 0 -#define CONFIG_H261_ENCODER 0 -#define CONFIG_H261_MUXER 0 -#define CONFIG_H261_PARSER 0 -#define CONFIG_H263I_DECODER 0 -#define CONFIG_H263P_DECODER 0 -#define CONFIG_H263P_ENCODER 0 -#define CONFIG_H263_DECODER 0 -#define CONFIG_H263_DEMUXER 0 -#define CONFIG_H263_ENCODER 0 -#define CONFIG_H263_MUXER 0 -#define CONFIG_H263_PARSER 0 -#define CONFIG_H263_V4L2M2M_DECODER 0 -#define CONFIG_H263_V4L2M2M_ENCODER 0 -#define CONFIG_H263_VAAPI_HWACCEL 0 -#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_H264_AMF_ENCODER 0 -#define CONFIG_H264_CRYSTALHD_DECODER 0 -#define CONFIG_H264_CUVID_DECODER 0 -#define CONFIG_H264_D3D11VA2_HWACCEL 0 -#define CONFIG_H264_D3D11VA_HWACCEL 0 -#define CONFIG_H264_DECODER 0 -#define CONFIG_H264_DEMUXER 0 -#define CONFIG_H264_DXVA2_HWACCEL 0 -#define CONFIG_H264_MEDIACODEC_DECODER 0 -#define CONFIG_H264_METADATA_BSF 0 -#define CONFIG_H264_MMAL_DECODER 0 -#define CONFIG_H264_MP4TOANNEXB_BSF 0 -#define CONFIG_H264_MUXER 0 -#define CONFIG_H264_NVDEC_HWACCEL 0 -#define CONFIG_H264_NVENC_ENCODER 0 -#define CONFIG_H264_OMX_ENCODER 0 -#define CONFIG_H264_PARSER 0 -#define CONFIG_H264_QSV_DECODER 0 -#define CONFIG_H264_QSV_ENCODER 0 -#define CONFIG_H264_REDUNDANT_PPS_BSF 0 -#define CONFIG_H264_RKMPP_DECODER 0 -#define CONFIG_H264_V4L2M2M_DECODER 0 -#define CONFIG_H264_V4L2M2M_ENCODER 0 -#define CONFIG_H264_VAAPI_ENCODER 0 -#define CONFIG_H264_VAAPI_HWACCEL 0 -#define CONFIG_H264_VDPAU_HWACCEL 0 -#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_HAAS_FILTER 0 -#define CONFIG_HALDCLUTSRC_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 -#define CONFIG_HAPQA_EXTRACT_BSF 0 -#define CONFIG_HAP_DECODER 0 -#define CONFIG_HAP_ENCODER 0 -#define CONFIG_HASH_MUXER 0 -#define CONFIG_HDCD_FILTER 0 -#define CONFIG_HDS_MUXER 0 -#define CONFIG_HEADPHONE_FILTER 0 -#define CONFIG_HEVC_AMF_ENCODER 0 -#define CONFIG_HEVC_CUVID_DECODER 0 -#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA_HWACCEL 0 -#define CONFIG_HEVC_DECODER 0 -#define CONFIG_HEVC_DEMUXER 0 -#define CONFIG_HEVC_DXVA2_HWACCEL 0 -#define CONFIG_HEVC_MEDIACODEC_DECODER 0 -#define CONFIG_HEVC_METADATA_BSF 0 -#define CONFIG_HEVC_MP4TOANNEXB_BSF 0 -#define CONFIG_HEVC_MUXER 0 -#define CONFIG_HEVC_NVDEC_HWACCEL 0 -#define CONFIG_HEVC_NVENC_ENCODER 0 -#define CONFIG_HEVC_PARSER 0 -#define CONFIG_HEVC_QSV_DECODER 0 -#define CONFIG_HEVC_QSV_ENCODER 0 -#define CONFIG_HEVC_RKMPP_DECODER 0 -#define CONFIG_HEVC_V4L2M2M_DECODER 0 -#define CONFIG_HEVC_V4L2M2M_ENCODER 0 -#define CONFIG_HEVC_VAAPI_ENCODER 0 -#define CONFIG_HEVC_VAAPI_HWACCEL 0 -#define CONFIG_HEVC_VDPAU_HWACCEL 0 -#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 #define CONFIG_HFLIP_FILTER 0 -#define CONFIG_HIGHPASS_FILTER 0 -#define CONFIG_HILBERT_FILTER 0 #define CONFIG_HISTEQ_FILTER 0 #define CONFIG_HISTOGRAM_FILTER 0 -#define CONFIG_HLS_DEMUXER 0 -#define CONFIG_HLS_MUXER 0 -#define CONFIG_HLS_PROTOCOL 0 -#define CONFIG_HNM4_VIDEO_DECODER 0 -#define CONFIG_HNM_DEMUXER 0 #define CONFIG_HQDN3D_FILTER 0 -#define CONFIG_HQX_DECODER 0 #define CONFIG_HQX_FILTER 0 -#define CONFIG_HQ_HQA_DECODER 0 #define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HTTPPROXY_PROTOCOL 0 -#define CONFIG_HTTPS_PROTOCOL 0 -#define CONFIG_HTTP_PROTOCOL 0 #define CONFIG_HUE_FILTER 0 -#define CONFIG_HUFFYUV_DECODER 0 -#define CONFIG_HUFFYUV_ENCODER 0 -#define CONFIG_HWACCELS 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWMAP_FILTER 0 -#define CONFIG_HWUPLOAD_CUDA_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 +#define CONFIG_HWUPLOAD_CUDA_FILTER 0 #define CONFIG_HYSTERESIS_FILTER 0 -#define CONFIG_IAC_DECODER 0 -#define CONFIG_ICECAST_PROTOCOL 0 -#define CONFIG_ICO_DEMUXER 0 -#define CONFIG_ICO_MUXER 0 -#define CONFIG_IDCIN_DECODER 0 -#define CONFIG_IDCIN_DEMUXER 0 #define CONFIG_IDET_FILTER 0 -#define CONFIG_IDF_DECODER 0 -#define CONFIG_IDF_DEMUXER 0 -#define CONFIG_IEC61883_INDEV 0 -#define CONFIG_IFF_DEMUXER 0 -#define CONFIG_IFF_ILBM_DECODER 0 -#define CONFIG_ILBC_AT_DECODER 0 -#define CONFIG_ILBC_AT_ENCODER 0 -#define CONFIG_ILBC_DEMUXER 0 -#define CONFIG_ILBC_MUXER 0 #define CONFIG_IL_FILTER 0 -#define CONFIG_IMAGE2PIPE_DEMUXER 0 -#define CONFIG_IMAGE2PIPE_MUXER 0 -#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 -#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 -#define CONFIG_IMAGE2_DEMUXER 0 -#define CONFIG_IMAGE2_MUXER 0 -#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 -#define CONFIG_IMC_DECODER 0 -#define CONFIG_IMX_DUMP_HEADER_BSF 0 -#define CONFIG_INDEO2_DECODER 0 -#define CONFIG_INDEO3_DECODER 0 -#define CONFIG_INDEO4_DECODER 0 -#define CONFIG_INDEO5_DECODER 0 -#define CONFIG_INDEVS 0 #define CONFIG_INFLATE_FILTER 0 -#define CONFIG_INGENIENT_DEMUXER 0 #define CONFIG_INTERLACE_FILTER 0 #define CONFIG_INTERLEAVE_FILTER 0 -#define CONFIG_INTERPLAY_ACM_DECODER 0 -#define CONFIG_INTERPLAY_DPCM_DECODER 0 -#define CONFIG_INTERPLAY_VIDEO_DECODER 0 -#define CONFIG_IPMOVIE_DEMUXER 0 -#define CONFIG_IPOD_MUXER 0 -#define CONFIG_IRCAM_DEMUXER 0 -#define CONFIG_IRCAM_MUXER 0 -#define CONFIG_ISMV_MUXER 0 -#define CONFIG_ISS_DEMUXER 0 -#define CONFIG_IV8_DEMUXER 0 -#define CONFIG_IVF_DEMUXER 0 -#define CONFIG_IVF_MUXER 0 -#define CONFIG_IVR_DEMUXER 0 -#define CONFIG_JACK_INDEV 0 -#define CONFIG_JACOSUB_DECODER 0 -#define CONFIG_JACOSUB_DEMUXER 0 -#define CONFIG_JACOSUB_MUXER 0 -#define CONFIG_JOIN_FILTER 0 -#define CONFIG_JPEG2000_DECODER 0 -#define CONFIG_JPEG2000_ENCODER 0 -#define CONFIG_JPEGLS_DECODER 0 -#define CONFIG_JPEGLS_ENCODER 0 -#define CONFIG_JV_DECODER 0 -#define CONFIG_JV_DEMUXER 0 #define CONFIG_KERNDEINT_FILTER 0 -#define CONFIG_KGV1_DECODER 0 -#define CONFIG_KMSGRAB_INDEV 0 -#define CONFIG_KMVC_DECODER 0 -#define CONFIG_LADSPA_FILTER 0 -#define CONFIG_LAGARITH_DECODER 0 -#define CONFIG_LATM_MUXER 0 -#define CONFIG_LAVFI_INDEV 0 #define CONFIG_LENSCORRECTION_FILTER 0 -#define CONFIG_LIBAOM_AV1_DECODER 0 -#define CONFIG_LIBAOM_AV1_ENCODER 0 -#define CONFIG_LIBCDIO_INDEV 0 -#define CONFIG_LIBCELT_DECODER 0 -#define CONFIG_LIBCODEC2_DECODER 0 -#define CONFIG_LIBCODEC2_ENCODER 0 -#define CONFIG_LIBDC1394_INDEV 0 -#define CONFIG_LIBFDK_AAC_DECODER 0 -#define CONFIG_LIBFDK_AAC_ENCODER 0 -#define CONFIG_LIBGME_DEMUXER 0 -#define CONFIG_LIBGSM_DECODER 0 -#define CONFIG_LIBGSM_ENCODER 0 -#define CONFIG_LIBGSM_MS_DECODER 0 -#define CONFIG_LIBGSM_MS_ENCODER 0 -#define CONFIG_LIBILBC_DECODER 0 -#define CONFIG_LIBILBC_ENCODER 0 -#define CONFIG_LIBKVAZAAR_ENCODER 0 -#define CONFIG_LIBMODPLUG_DEMUXER 0 -#define CONFIG_LIBMP3LAME_ENCODER 0 -#define CONFIG_LIBNDI_NEWTEK_INDEV 0 -#define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 -#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -#define CONFIG_LIBOPENH264_DECODER 0 -#define CONFIG_LIBOPENH264_ENCODER 0 -#define CONFIG_LIBOPENJPEG_DECODER 0 -#define CONFIG_LIBOPENJPEG_ENCODER 0 -#define CONFIG_LIBOPENMPT_DEMUXER 0 -#define CONFIG_LIBOPUS_DECODER 0 -#define CONFIG_LIBOPUS_ENCODER 0 -#define CONFIG_LIBRSVG_DECODER 0 -#define CONFIG_LIBRTMPE_PROTOCOL 0 -#define CONFIG_LIBRTMPS_PROTOCOL 0 -#define CONFIG_LIBRTMPTE_PROTOCOL 0 -#define CONFIG_LIBRTMPT_PROTOCOL 0 -#define CONFIG_LIBRTMP_PROTOCOL 0 -#define CONFIG_LIBSHINE_ENCODER 0 -#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 -#define CONFIG_LIBSPEEX_DECODER 0 -#define CONFIG_LIBSPEEX_ENCODER 0 -#define CONFIG_LIBSRT_PROTOCOL 0 -#define CONFIG_LIBSSH_PROTOCOL 0 -#define CONFIG_LIBTHEORA_ENCODER 0 -#define CONFIG_LIBTWOLAME_ENCODER 0 #define CONFIG_LIBVMAF_FILTER 0 -#define CONFIG_LIBVORBIS_DECODER 0 -#define CONFIG_LIBVORBIS_ENCODER 0 -#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -#define CONFIG_LIBVPX_VP8_DECODER 0 -#define CONFIG_LIBVPX_VP8_ENCODER 0 -#define CONFIG_LIBVPX_VP9_DECODER 0 -#define CONFIG_LIBVPX_VP9_ENCODER 0 -#define CONFIG_LIBWAVPACK_ENCODER 0 -#define CONFIG_LIBWEBP_ANIM_ENCODER 0 -#define CONFIG_LIBWEBP_ENCODER 0 -#define CONFIG_LIBX262_ENCODER 0 -#define CONFIG_LIBX264RGB_ENCODER 0 -#define CONFIG_LIBX264_ENCODER 0 -#define CONFIG_LIBX265_ENCODER 0 -#define CONFIG_LIBXAVS_ENCODER 0 -#define CONFIG_LIBXVID_ENCODER 0 -#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -#define CONFIG_LIFE_FILTER 0 #define CONFIG_LIMITER_FILTER 0 -#define CONFIG_LIVE_FLV_DEMUXER 0 -#define CONFIG_LJPEG_ENCODER 0 -#define CONFIG_LMLM4_DEMUXER 0 -#define CONFIG_LOAS_DEMUXER 0 -#define CONFIG_LOCO_DECODER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LOUDNORM_FILTER 0 -#define CONFIG_LOWPASS_FILTER 0 -#define CONFIG_LRC_DEMUXER 0 -#define CONFIG_LRC_MUXER 0 #define CONFIG_LUMAKEY_FILTER 0 +#define CONFIG_LUT_FILTER 0 #define CONFIG_LUT2_FILTER 0 #define CONFIG_LUT3D_FILTER 0 #define CONFIG_LUTRGB_FILTER 0 #define CONFIG_LUTYUV_FILTER 0 -#define CONFIG_LUT_FILTER 0 -#define CONFIG_LV2_FILTER 0 -#define CONFIG_LVF_DEMUXER 0 -#define CONFIG_LXF_DEMUXER 0 -#define CONFIG_M101_DECODER 0 -#define CONFIG_M4V_DEMUXER 0 -#define CONFIG_M4V_MUXER 0 -#define CONFIG_MACE3_DECODER 0 -#define CONFIG_MACE6_DECODER 0 -#define CONFIG_MAGICYUV_DECODER 0 -#define CONFIG_MAGICYUV_ENCODER 0 -#define CONFIG_MANDELBROT_FILTER 0 #define CONFIG_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 -#define CONFIG_MATROSKA_AUDIO_MUXER 0 -#define CONFIG_MATROSKA_DEMUXER 0 -#define CONFIG_MATROSKA_MUXER 0 #define CONFIG_MCDEINT_FILTER 0 -#define CONFIG_MCOMPAND_FILTER 0 -#define CONFIG_MD5_MUXER 0 -#define CONFIG_MD5_PROTOCOL 0 -#define CONFIG_MDEC_DECODER 0 #define CONFIG_MERGEPLANES_FILTER 0 #define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 -#define CONFIG_METASOUND_DECODER 0 -#define CONFIG_MGSTS_DEMUXER 0 -#define CONFIG_MICRODVD_DECODER 0 -#define CONFIG_MICRODVD_DEMUXER 0 -#define CONFIG_MICRODVD_MUXER 0 #define CONFIG_MIDEQUALIZER_FILTER 0 -#define CONFIG_MIMIC_DECODER 0 #define CONFIG_MINTERPOLATE_FILTER 0 -#define CONFIG_MIX_FILTER 0 -#define CONFIG_MJPEG2JPEG_BSF 0 -#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 -#define CONFIG_MJPEGB_DECODER 0 -#define CONFIG_MJPEG_2000_DEMUXER 0 -#define CONFIG_MJPEG_CUVID_DECODER 0 -#define CONFIG_MJPEG_DECODER 0 -#define CONFIG_MJPEG_DEMUXER 0 -#define CONFIG_MJPEG_ENCODER 0 -#define CONFIG_MJPEG_MUXER 0 -#define CONFIG_MJPEG_NVDEC_HWACCEL 0 -#define CONFIG_MJPEG_PARSER 0 -#define CONFIG_MJPEG_QSV_ENCODER 0 -#define CONFIG_MJPEG_VAAPI_ENCODER 0 -#define CONFIG_MJPEG_VAAPI_HWACCEL 0 -#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 -#define CONFIG_MLP_DECODER 0 -#define CONFIG_MLP_DEMUXER 0 -#define CONFIG_MLP_ENCODER 0 -#define CONFIG_MLP_MUXER 0 -#define CONFIG_MLP_PARSER 0 -#define CONFIG_MLV_DEMUXER 0 -#define CONFIG_MMF_DEMUXER 0 -#define CONFIG_MMF_MUXER 0 -#define CONFIG_MMSH_PROTOCOL 0 -#define CONFIG_MMST_PROTOCOL 0 -#define CONFIG_MMVIDEO_DECODER 0 -#define CONFIG_MM_DEMUXER 0 -#define CONFIG_MOTIONPIXELS_DECODER 0 -#define CONFIG_MOV2TEXTSUB_BSF 0 -#define CONFIG_MOVIE_FILTER 0 -#define CONFIG_MOVTEXT_DECODER 0 -#define CONFIG_MOVTEXT_ENCODER 0 -#define CONFIG_MOV_DEMUXER 0 -#define CONFIG_MOV_MUXER 0 -#define CONFIG_MP1FLOAT_DECODER 0 -#define CONFIG_MP1_AT_DECODER 0 -#define CONFIG_MP1_DECODER 0 -#define CONFIG_MP2FIXED_ENCODER 0 -#define CONFIG_MP2FLOAT_DECODER 0 -#define CONFIG_MP2_AT_DECODER 0 -#define CONFIG_MP2_DECODER 0 -#define CONFIG_MP2_ENCODER 0 -#define CONFIG_MP2_MUXER 0 -#define CONFIG_MP3ADUFLOAT_DECODER 0 -#define CONFIG_MP3ADU_DECODER 0 -#define CONFIG_MP3FLOAT_DECODER 0 -#define CONFIG_MP3ON4FLOAT_DECODER 0 -#define CONFIG_MP3ON4_DECODER 0 -#define CONFIG_MP3_AT_DECODER 0 -#define CONFIG_MP3_DECODER 0 -#define CONFIG_MP3_DEMUXER 0 -#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 -#define CONFIG_MP3_MUXER 0 -#define CONFIG_MP4_MUXER 0 -#define CONFIG_MPC7_DECODER 0 -#define CONFIG_MPC8_DECODER 0 -#define CONFIG_MPC8_DEMUXER 0 -#define CONFIG_MPC_DEMUXER 0 #define CONFIG_MPDECIMATE_FILTER 0 -#define CONFIG_MPEG1SYSTEM_MUXER 0 -#define CONFIG_MPEG1VCD_MUXER 0 -#define CONFIG_MPEG1VIDEO_DECODER 0 -#define CONFIG_MPEG1VIDEO_ENCODER 0 -#define CONFIG_MPEG1VIDEO_MUXER 0 -#define CONFIG_MPEG1_CUVID_DECODER 0 -#define CONFIG_MPEG1_NVDEC_HWACCEL 0 -#define CONFIG_MPEG1_V4L2M2M_DECODER 0 -#define CONFIG_MPEG1_VDPAU_HWACCEL 0 -#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG1_XVMC_HWACCEL 0 -#define CONFIG_MPEG2DVD_MUXER 0 -#define CONFIG_MPEG2SVCD_MUXER 0 -#define CONFIG_MPEG2VIDEO_DECODER 0 -#define CONFIG_MPEG2VIDEO_ENCODER 0 -#define CONFIG_MPEG2VIDEO_MUXER 0 -#define CONFIG_MPEG2VOB_MUXER 0 -#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG2_CUVID_DECODER 0 -#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -#define CONFIG_MPEG2_DXVA2_HWACCEL 0 -#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 -#define CONFIG_MPEG2_METADATA_BSF 0 -#define CONFIG_MPEG2_MMAL_DECODER 0 -#define CONFIG_MPEG2_NVDEC_HWACCEL 0 -#define CONFIG_MPEG2_QSV_DECODER 0 -#define CONFIG_MPEG2_QSV_ENCODER 0 -#define CONFIG_MPEG2_V4L2M2M_DECODER 0 -#define CONFIG_MPEG2_VAAPI_ENCODER 0 -#define CONFIG_MPEG2_VAAPI_HWACCEL 0 -#define CONFIG_MPEG2_VDPAU_HWACCEL 0 -#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG2_XVMC_HWACCEL 0 -#define CONFIG_MPEG4VIDEO_PARSER 0 -#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG4_CUVID_DECODER 0 -#define CONFIG_MPEG4_DECODER 0 -#define CONFIG_MPEG4_ENCODER 0 -#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -#define CONFIG_MPEG4_MMAL_DECODER 0 -#define CONFIG_MPEG4_NVDEC_HWACCEL 0 -#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 -#define CONFIG_MPEG4_V4L2M2M_DECODER 0 -#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 -#define CONFIG_MPEG4_VAAPI_HWACCEL 0 -#define CONFIG_MPEG4_VDPAU_HWACCEL 0 -#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEGAUDIO_PARSER 0 -#define CONFIG_MPEGPS_DEMUXER 0 -#define CONFIG_MPEGTSRAW_DEMUXER 0 -#define CONFIG_MPEGTS_DEMUXER 0 -#define CONFIG_MPEGTS_MUXER 0 -#define CONFIG_MPEGVIDEO_DECODER 0 -#define CONFIG_MPEGVIDEO_DEMUXER 0 -#define CONFIG_MPEGVIDEO_PARSER 0 -#define CONFIG_MPJPEG_DEMUXER 0 -#define CONFIG_MPJPEG_MUXER 0 -#define CONFIG_MPL2_DECODER 0 -#define CONFIG_MPL2_DEMUXER 0 -#define CONFIG_MPSUB_DEMUXER 0 -#define CONFIG_MPTESTSRC_FILTER 0 -#define CONFIG_MSA1_DECODER 0 -#define CONFIG_MSCC_DECODER 0 -#define CONFIG_MSF_DEMUXER 0 -#define CONFIG_MSMPEG4V1_DECODER 0 -#define CONFIG_MSMPEG4V2_DECODER 0 -#define CONFIG_MSMPEG4V2_ENCODER 0 -#define CONFIG_MSMPEG4V3_DECODER 0 -#define CONFIG_MSMPEG4V3_ENCODER 0 -#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MSNWC_TCP_DEMUXER 0 -#define CONFIG_MSRLE_DECODER 0 -#define CONFIG_MSS1_DECODER 0 -#define CONFIG_MSS2_DECODER 0 -#define CONFIG_MSVIDEO1_DECODER 0 -#define CONFIG_MSVIDEO1_ENCODER 0 -#define CONFIG_MSZH_DECODER 0 -#define CONFIG_MTAF_DEMUXER 0 -#define CONFIG_MTS2_DECODER 0 -#define CONFIG_MTV_DEMUXER 0 -#define CONFIG_MUSX_DEMUXER 0 -#define CONFIG_MUXERS 0 -#define CONFIG_MVC1_DECODER 0 -#define CONFIG_MVC2_DECODER 0 -#define CONFIG_MVI_DEMUXER 0 -#define CONFIG_MV_DEMUXER 0 -#define CONFIG_MXF_D10_MUXER 0 -#define CONFIG_MXF_DEMUXER 0 -#define CONFIG_MXF_MUXER 0 -#define CONFIG_MXF_OPATOM_MUXER 0 -#define CONFIG_MXG_DEMUXER 0 -#define CONFIG_MXPEG_DECODER 0 -#define CONFIG_NC_DEMUXER 0 #define CONFIG_NEGATE_FILTER 0 -#define CONFIG_NELLYMOSER_DECODER 0 -#define CONFIG_NELLYMOSER_ENCODER 0 -#define CONFIG_NISTSPHERE_DEMUXER 0 #define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 -#define CONFIG_NOISE_BSF 0 #define CONFIG_NOISE_FILTER 0 -#define CONFIG_NORMALIZE_FILTER 0 -#define CONFIG_NSP_DEMUXER 0 -#define CONFIG_NSV_DEMUXER 0 -#define CONFIG_NULLSINK_FILTER 0 -#define CONFIG_NULLSRC_FILTER 0 #define CONFIG_NULL_FILTER 0 -#define CONFIG_NULL_MUXER 0 -#define CONFIG_NUT_DEMUXER 0 -#define CONFIG_NUT_MUXER 0 -#define CONFIG_NUV_DECODER 0 -#define CONFIG_NUV_DEMUXER 0 -#define CONFIG_NVENC_ENCODER 0 -#define CONFIG_NVENC_H264_ENCODER 0 -#define CONFIG_NVENC_HEVC_ENCODER 0 #define CONFIG_OCR_FILTER 0 #define CONFIG_OCV_FILTER 0 -#define CONFIG_OGA_MUXER 0 -#define CONFIG_OGG_DEMUXER 0 -#define CONFIG_OGG_MUXER 0 -#define CONFIG_OGV_MUXER 0 -#define CONFIG_OMA_DEMUXER 0 -#define CONFIG_OMA_MUXER 0 -#define CONFIG_ON2AVC_DECODER 0 -#define CONFIG_OPENAL_INDEV 0 -#define CONFIG_OPENCLSRC_FILTER 0 -#define CONFIG_OPENGL_OUTDEV 0 -#define CONFIG_OPUS_DECODER 0 -#define CONFIG_OPUS_ENCODER 0 -#define CONFIG_OPUS_MUXER 0 -#define CONFIG_OPUS_PARSER 0 #define CONFIG_OSCILLOSCOPE_FILTER 0 -#define CONFIG_OSS_INDEV 0 -#define CONFIG_OSS_OUTDEV 0 -#define CONFIG_OUTDEVS 0 #define CONFIG_OVERLAY_FILTER 0 -#define CONFIG_OVERLAY_OPENCL_FILTER 0 -#define CONFIG_OVERLAY_QSV_FILTER 0 #define CONFIG_OWDENOISE_FILTER 0 #define CONFIG_PAD_FILTER 0 -#define CONFIG_PAF_AUDIO_DECODER 0 -#define CONFIG_PAF_DEMUXER 0 -#define CONFIG_PAF_VIDEO_DECODER 0 #define CONFIG_PALETTEGEN_FILTER 0 #define CONFIG_PALETTEUSE_FILTER 0 -#define CONFIG_PAM_DECODER 0 -#define CONFIG_PAM_ENCODER 0 -#define CONFIG_PAN_FILTER 0 -#define CONFIG_PBM_DECODER 0 -#define CONFIG_PBM_ENCODER 0 -#define CONFIG_PCM_ALAW_AT_DECODER 0 -#define CONFIG_PCM_ALAW_AT_ENCODER 0 -#define CONFIG_PCM_ALAW_DECODER 0 -#define CONFIG_PCM_ALAW_DEMUXER 0 -#define CONFIG_PCM_ALAW_ENCODER 0 -#define CONFIG_PCM_ALAW_MUXER 0 -#define CONFIG_PCM_BLURAY_DECODER 0 -#define CONFIG_PCM_DVD_DECODER 0 -#define CONFIG_PCM_F16LE_DECODER 0 -#define CONFIG_PCM_F24LE_DECODER 0 -#define CONFIG_PCM_F32BE_DECODER 0 -#define CONFIG_PCM_F32BE_DEMUXER 0 -#define CONFIG_PCM_F32BE_ENCODER 0 -#define CONFIG_PCM_F32BE_MUXER 0 -#define CONFIG_PCM_F32LE_DECODER 0 -#define CONFIG_PCM_F32LE_DEMUXER 0 -#define CONFIG_PCM_F32LE_ENCODER 0 -#define CONFIG_PCM_F32LE_MUXER 0 -#define CONFIG_PCM_F64BE_DECODER 0 -#define CONFIG_PCM_F64BE_DEMUXER 0 -#define CONFIG_PCM_F64BE_ENCODER 0 -#define CONFIG_PCM_F64BE_MUXER 0 -#define CONFIG_PCM_F64LE_DECODER 0 -#define CONFIG_PCM_F64LE_DEMUXER 0 -#define CONFIG_PCM_F64LE_ENCODER 0 -#define CONFIG_PCM_F64LE_MUXER 0 -#define CONFIG_PCM_LXF_DECODER 0 -#define CONFIG_PCM_MULAW_AT_DECODER 0 -#define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_PCM_MULAW_DECODER 0 -#define CONFIG_PCM_MULAW_DEMUXER 0 -#define CONFIG_PCM_MULAW_ENCODER 0 -#define CONFIG_PCM_MULAW_MUXER 0 -#define CONFIG_PCM_S16BE_DECODER 0 -#define CONFIG_PCM_S16BE_DEMUXER 0 -#define CONFIG_PCM_S16BE_ENCODER 0 -#define CONFIG_PCM_S16BE_MUXER 0 -#define CONFIG_PCM_S16BE_PLANAR_DECODER 0 -#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16LE_DECODER 0 -#define CONFIG_PCM_S16LE_DEMUXER 0 -#define CONFIG_PCM_S16LE_ENCODER 0 -#define CONFIG_PCM_S16LE_MUXER 0 -#define CONFIG_PCM_S16LE_PLANAR_DECODER 0 -#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S24BE_DECODER 0 -#define CONFIG_PCM_S24BE_DEMUXER 0 -#define CONFIG_PCM_S24BE_ENCODER 0 -#define CONFIG_PCM_S24BE_MUXER 0 -#define CONFIG_PCM_S24DAUD_DECODER 0 -#define CONFIG_PCM_S24DAUD_ENCODER 0 -#define CONFIG_PCM_S24LE_DECODER 0 -#define CONFIG_PCM_S24LE_DEMUXER 0 -#define CONFIG_PCM_S24LE_ENCODER 0 -#define CONFIG_PCM_S24LE_MUXER 0 -#define CONFIG_PCM_S24LE_PLANAR_DECODER 0 -#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S32BE_DECODER 0 -#define CONFIG_PCM_S32BE_DEMUXER 0 -#define CONFIG_PCM_S32BE_ENCODER 0 -#define CONFIG_PCM_S32BE_MUXER 0 -#define CONFIG_PCM_S32LE_DECODER 0 -#define CONFIG_PCM_S32LE_DEMUXER 0 -#define CONFIG_PCM_S32LE_ENCODER 0 -#define CONFIG_PCM_S32LE_MUXER 0 -#define CONFIG_PCM_S32LE_PLANAR_DECODER 0 -#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S64BE_DECODER 0 -#define CONFIG_PCM_S64BE_ENCODER 0 -#define CONFIG_PCM_S64LE_DECODER 0 -#define CONFIG_PCM_S64LE_ENCODER 0 -#define CONFIG_PCM_S8_DECODER 0 -#define CONFIG_PCM_S8_DEMUXER 0 -#define CONFIG_PCM_S8_ENCODER 0 -#define CONFIG_PCM_S8_MUXER 0 -#define CONFIG_PCM_S8_PLANAR_DECODER 0 -#define CONFIG_PCM_S8_PLANAR_ENCODER 0 -#define CONFIG_PCM_U16BE_DECODER 0 -#define CONFIG_PCM_U16BE_DEMUXER 0 -#define CONFIG_PCM_U16BE_ENCODER 0 -#define CONFIG_PCM_U16BE_MUXER 0 -#define CONFIG_PCM_U16LE_DECODER 0 -#define CONFIG_PCM_U16LE_DEMUXER 0 -#define CONFIG_PCM_U16LE_ENCODER 0 -#define CONFIG_PCM_U16LE_MUXER 0 -#define CONFIG_PCM_U24BE_DECODER 0 -#define CONFIG_PCM_U24BE_DEMUXER 0 -#define CONFIG_PCM_U24BE_ENCODER 0 -#define CONFIG_PCM_U24BE_MUXER 0 -#define CONFIG_PCM_U24LE_DECODER 0 -#define CONFIG_PCM_U24LE_DEMUXER 0 -#define CONFIG_PCM_U24LE_ENCODER 0 -#define CONFIG_PCM_U24LE_MUXER 0 -#define CONFIG_PCM_U32BE_DECODER 0 -#define CONFIG_PCM_U32BE_DEMUXER 0 -#define CONFIG_PCM_U32BE_ENCODER 0 -#define CONFIG_PCM_U32BE_MUXER 0 -#define CONFIG_PCM_U32LE_DECODER 0 -#define CONFIG_PCM_U32LE_DEMUXER 0 -#define CONFIG_PCM_U32LE_ENCODER 0 -#define CONFIG_PCM_U32LE_MUXER 0 -#define CONFIG_PCM_U8_DECODER 0 -#define CONFIG_PCM_U8_DEMUXER 0 -#define CONFIG_PCM_U8_ENCODER 0 -#define CONFIG_PCM_U8_MUXER 0 -#define CONFIG_PCM_ZORK_DECODER 0 -#define CONFIG_PCX_DECODER 0 -#define CONFIG_PCX_ENCODER 0 #define CONFIG_PERMS_FILTER 0 #define CONFIG_PERSPECTIVE_FILTER 0 -#define CONFIG_PGMYUV_DECODER 0 -#define CONFIG_PGMYUV_ENCODER 0 -#define CONFIG_PGM_DECODER 0 -#define CONFIG_PGM_ENCODER 0 -#define CONFIG_PGSSUB_DECODER 0 #define CONFIG_PHASE_FILTER 0 -#define CONFIG_PICTOR_DECODER 0 -#define CONFIG_PIPE_PROTOCOL 0 #define CONFIG_PIXDESCTEST_FILTER 0 -#define CONFIG_PIXLET_DECODER 0 #define CONFIG_PIXSCOPE_FILTER 0 -#define CONFIG_PJS_DECODER 0 -#define CONFIG_PJS_DEMUXER 0 -#define CONFIG_PMP_DEMUXER 0 -#define CONFIG_PNG_DECODER 0 -#define CONFIG_PNG_ENCODER 0 -#define CONFIG_PNG_PARSER 0 -#define CONFIG_PNM_PARSER 0 -#define CONFIG_PP7_FILTER 0 -#define CONFIG_PPM_DECODER 0 -#define CONFIG_PPM_ENCODER 0 #define CONFIG_PP_FILTER 0 +#define CONFIG_PP7_FILTER 0 #define CONFIG_PREMULTIPLY_FILTER 0 #define CONFIG_PREWITT_FILTER 0 -#define CONFIG_PROCAMP_VAAPI_FILTER 0 -#define CONFIG_PROGRAM_OPENCL_FILTER 0 -#define CONFIG_PROMPEG_PROTOCOL 0 -#define CONFIG_PRORES_AW_ENCODER 0 -#define CONFIG_PRORES_DECODER 0 -#define CONFIG_PRORES_ENCODER 0 -#define CONFIG_PRORES_KS_ENCODER 0 -#define CONFIG_PRORES_LGPL_DECODER 0 -#define CONFIG_PROTOCOLS 0 -#define CONFIG_PSD_DECODER 0 #define CONFIG_PSEUDOCOLOR_FILTER 0 #define CONFIG_PSNR_FILTER 0 -#define CONFIG_PSP_MUXER 0 -#define CONFIG_PTX_DECODER 0 #define CONFIG_PULLUP_FILTER 0 -#define CONFIG_PULSE_INDEV 0 -#define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_PVA_DEMUXER 0 -#define CONFIG_PVF_DEMUXER 0 -#define CONFIG_QCELP_DECODER 0 -#define CONFIG_QCP_DEMUXER 0 -#define CONFIG_QDM2_AT_DECODER 0 -#define CONFIG_QDM2_DECODER 0 -#define CONFIG_QDMC_AT_DECODER 0 -#define CONFIG_QDMC_DECODER 0 -#define CONFIG_QDRAW_DECODER 0 -#define CONFIG_QPEG_DECODER 0 #define CONFIG_QP_FILTER 0 -#define CONFIG_QTRLE_DECODER 0 -#define CONFIG_QTRLE_ENCODER 0 -#define CONFIG_R10K_DECODER 0 -#define CONFIG_R10K_ENCODER 0 -#define CONFIG_R210_DECODER 0 -#define CONFIG_R210_ENCODER 0 -#define CONFIG_R3D_DEMUXER 0 -#define CONFIG_RALF_DECODER 0 #define CONFIG_RANDOM_FILTER 0 -#define CONFIG_RAWVIDEO_DECODER 0 -#define CONFIG_RAWVIDEO_DEMUXER 0 -#define CONFIG_RAWVIDEO_ENCODER 0 -#define CONFIG_RAWVIDEO_MUXER 0 -#define CONFIG_RA_144_DECODER 0 -#define CONFIG_RA_144_ENCODER 0 -#define CONFIG_RA_288_DECODER 0 #define CONFIG_READEIA608_FILTER 0 #define CONFIG_READVITC_FILTER 0 -#define CONFIG_REALTEXT_DECODER 0 -#define CONFIG_REALTEXT_DEMUXER 0 #define CONFIG_REALTIME_FILTER 0 -#define CONFIG_REDSPARK_DEMUXER 0 #define CONFIG_REMAP_FILTER 0 #define CONFIG_REMOVEGRAIN_FILTER 0 #define CONFIG_REMOVELOGO_FILTER 0 -#define CONFIG_REMOVE_EXTRADATA_BSF 0 #define CONFIG_REPEATFIELDS_FILTER 0 -#define CONFIG_REPLAYGAIN_FILTER 0 -#define CONFIG_RESAMPLE_FILTER 0 #define CONFIG_REVERSE_FILTER 0 -#define CONFIG_RGBTESTSRC_FILTER 0 -#define CONFIG_RL2_DECODER 0 -#define CONFIG_RL2_DEMUXER 0 -#define CONFIG_RM_DEMUXER 0 -#define CONFIG_RM_MUXER 0 #define CONFIG_ROBERTS_FILTER 0 -#define CONFIG_ROQ_DECODER 0 -#define CONFIG_ROQ_DEMUXER 0 -#define CONFIG_ROQ_DPCM_DECODER 0 -#define CONFIG_ROQ_DPCM_ENCODER 0 -#define CONFIG_ROQ_ENCODER 0 -#define CONFIG_ROQ_MUXER 0 #define CONFIG_ROTATE_FILTER 0 -#define CONFIG_RPL_DEMUXER 0 -#define CONFIG_RPZA_DECODER 0 -#define CONFIG_RSCC_DECODER 0 -#define CONFIG_RSD_DEMUXER 0 -#define CONFIG_RSO_DEMUXER 0 -#define CONFIG_RSO_MUXER 0 -#define CONFIG_RTMPE_PROTOCOL 0 -#define CONFIG_RTMPS_PROTOCOL 0 -#define CONFIG_RTMPTE_PROTOCOL 0 -#define CONFIG_RTMPTS_PROTOCOL 0 -#define CONFIG_RTMPT_PROTOCOL 0 -#define CONFIG_RTMP_PROTOCOL 0 -#define CONFIG_RTP_DEMUXER 0 -#define CONFIG_RTP_MPEGTS_MUXER 0 -#define CONFIG_RTP_MUXER 0 -#define CONFIG_RTP_PROTOCOL 0 -#define CONFIG_RTSP_DEMUXER 0 -#define CONFIG_RTSP_MUXER 0 -#define CONFIG_RUBBERBAND_FILTER 0 -#define CONFIG_RV10_DECODER 0 -#define CONFIG_RV10_ENCODER 0 -#define CONFIG_RV20_DECODER 0 -#define CONFIG_RV20_ENCODER 0 -#define CONFIG_RV30_DECODER 0 -#define CONFIG_RV30_PARSER 0 -#define CONFIG_RV40_DECODER 0 -#define CONFIG_RV40_PARSER 0 -#define CONFIG_S302M_DECODER 0 -#define CONFIG_S302M_ENCODER 0 -#define CONFIG_S337M_DEMUXER 0 #define CONFIG_SAB_FILTER 0 -#define CONFIG_SAMI_DECODER 0 -#define CONFIG_SAMI_DEMUXER 0 -#define CONFIG_SANM_DECODER 0 -#define CONFIG_SAP_DEMUXER 0 -#define CONFIG_SAP_MUXER 0 -#define CONFIG_SBC_DECODER 0 -#define CONFIG_SBC_DEMUXER 0 -#define CONFIG_SBC_ENCODER 0 -#define CONFIG_SBC_MUXER 0 -#define CONFIG_SBC_PARSER 0 -#define CONFIG_SBG_DEMUXER 0 -#define CONFIG_SCALE2REF_FILTER 0 -#define CONFIG_SCALE_CUDA_FILTER 0 #define CONFIG_SCALE_FILTER 0 +#define CONFIG_SCALE_CUDA_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_QSV_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 -#define CONFIG_SCC_DEMUXER 0 -#define CONFIG_SCC_MUXER 0 -#define CONFIG_SCPR_DECODER 0 -#define CONFIG_SCREENPRESSO_DECODER 0 -#define CONFIG_SCTP_PROTOCOL 0 -#define CONFIG_SDL2_OUTDEV 0 -#define CONFIG_SDP_DEMUXER 0 -#define CONFIG_SDR2_DEMUXER 0 -#define CONFIG_SDS_DEMUXER 0 -#define CONFIG_SDX2_DPCM_DECODER 0 -#define CONFIG_SDX_DEMUXER 0 -#define CONFIG_SEGAFILM_DEMUXER 0 -#define CONFIG_SEGAFILM_MUXER 0 -#define CONFIG_SEGMENT_MUXER 0 -#define CONFIG_SELECTIVECOLOR_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 +#define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 #define CONFIG_SEPARATEFIELDS_FILTER 0 #define CONFIG_SETDAR_FILTER 0 #define CONFIG_SETFIELD_FILTER 0 #define CONFIG_SETPTS_FILTER 0 -#define CONFIG_SETRANGE_FILTER 0 #define CONFIG_SETSAR_FILTER 0 #define CONFIG_SETTB_FILTER 0 -#define CONFIG_SGIRLE_DECODER 0 -#define CONFIG_SGI_DECODER 0 -#define CONFIG_SGI_ENCODER 0 -#define CONFIG_SHARPNESS_VAAPI_FILTER 0 -#define CONFIG_SHEERVIDEO_DECODER 0 -#define CONFIG_SHORTEN_DECODER 0 -#define CONFIG_SHORTEN_DEMUXER 0 -#define CONFIG_SHOWCQT_FILTER 0 -#define CONFIG_SHOWFREQS_FILTER 0 #define CONFIG_SHOWINFO_FILTER 0 #define CONFIG_SHOWPALETTE_FILTER 0 -#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 -#define CONFIG_SHOWSPECTRUM_FILTER 0 -#define CONFIG_SHOWVOLUME_FILTER 0 -#define CONFIG_SHOWWAVESPIC_FILTER 0 -#define CONFIG_SHOWWAVES_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 -#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 -#define CONFIG_SIDECHAINGATE_FILTER 0 #define CONFIG_SIDEDATA_FILTER 0 -#define CONFIG_SIFF_DEMUXER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SIGNATURE_FILTER 0 -#define CONFIG_SILENCEDETECT_FILTER 0 -#define CONFIG_SILENCEREMOVE_FILTER 0 -#define CONFIG_SINE_FILTER 0 -#define CONFIG_SINGLEJPEG_MUXER 0 -#define CONFIG_SIPR_DECODER 0 -#define CONFIG_SIPR_PARSER 0 -#define CONFIG_SLN_DEMUXER 0 -#define CONFIG_SMACKAUD_DECODER 0 -#define CONFIG_SMACKER_DECODER 0 -#define CONFIG_SMACKER_DEMUXER 0 #define CONFIG_SMARTBLUR_FILTER 0 -#define CONFIG_SMC_DECODER 0 -#define CONFIG_SMJPEG_DEMUXER 0 -#define CONFIG_SMJPEG_MUXER 0 -#define CONFIG_SMOOTHSTREAMING_MUXER 0 -#define CONFIG_SMPTEBARS_FILTER 0 -#define CONFIG_SMPTEHDBARS_FILTER 0 -#define CONFIG_SMUSH_DEMUXER 0 -#define CONFIG_SMVJPEG_DECODER 0 -#define CONFIG_SNDIO_INDEV 0 -#define CONFIG_SNDIO_OUTDEV 0 -#define CONFIG_SNOW_DECODER 0 -#define CONFIG_SNOW_ENCODER 0 #define CONFIG_SOBEL_FILTER 0 -#define CONFIG_SOFALIZER_FILTER 0 -#define CONFIG_SOL_DEMUXER 0 -#define CONFIG_SOL_DPCM_DECODER 0 -#define CONFIG_SONIC_DECODER 0 -#define CONFIG_SONIC_ENCODER 0 -#define CONFIG_SONIC_LS_ENCODER 0 -#define CONFIG_SOX_DEMUXER 0 -#define CONFIG_SOX_MUXER 0 -#define CONFIG_SP5X_DECODER 0 -#define CONFIG_SPDIF_DEMUXER 0 -#define CONFIG_SPDIF_MUXER 0 -#define CONFIG_SPECTRUMSYNTH_FILTER 0 -#define CONFIG_SPEEDHQ_DECODER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 -#define CONFIG_SPX_MUXER 0 -#define CONFIG_SRGC_DECODER 0 -#define CONFIG_SRTP_PROTOCOL 0 -#define CONFIG_SRT_DECODER 0 -#define CONFIG_SRT_DEMUXER 0 -#define CONFIG_SRT_ENCODER 0 -#define CONFIG_SRT_MUXER 0 -#define CONFIG_SSA_DECODER 0 -#define CONFIG_SSA_ENCODER 0 #define CONFIG_SSIM_FILTER 0 #define CONFIG_STEREO3D_FILTER 0 -#define CONFIG_STEREOTOOLS_FILTER 0 -#define CONFIG_STEREOWIDEN_FILTER 0 -#define CONFIG_STL_DECODER 0 -#define CONFIG_STL_DEMUXER 0 #define CONFIG_STREAMSELECT_FILTER 0 -#define CONFIG_STREAM_SEGMENT_MUXER 0 -#define CONFIG_STR_DEMUXER 0 -#define CONFIG_SUBFILE_PROTOCOL 0 -#define CONFIG_SUBRIP_DECODER 0 -#define CONFIG_SUBRIP_ENCODER 0 #define CONFIG_SUBTITLES_FILTER 0 -#define CONFIG_SUBVIEWER1_DECODER 0 -#define CONFIG_SUBVIEWER1_DEMUXER 0 -#define CONFIG_SUBVIEWER_DECODER 0 -#define CONFIG_SUBVIEWER_DEMUXER 0 -#define CONFIG_SUNRAST_DECODER 0 -#define CONFIG_SUNRAST_ENCODER 0 #define CONFIG_SUPER2XSAI_FILTER 0 -#define CONFIG_SUPEREQUALIZER_FILTER 0 -#define CONFIG_SUP_DEMUXER 0 -#define CONFIG_SUP_MUXER 0 -#define CONFIG_SURROUND_FILTER 0 -#define CONFIG_SVAG_DEMUXER 0 -#define CONFIG_SVQ1_DECODER 0 -#define CONFIG_SVQ1_ENCODER 0 -#define CONFIG_SVQ3_DECODER 0 #define CONFIG_SWAPRECT_FILTER 0 #define CONFIG_SWAPUV_FILTER 0 -#define CONFIG_SWF_DEMUXER 0 -#define CONFIG_SWF_MUXER 0 -#define CONFIG_TAK_DECODER 0 -#define CONFIG_TAK_DEMUXER 0 -#define CONFIG_TAK_PARSER 0 -#define CONFIG_TARGA_DECODER 0 -#define CONFIG_TARGA_ENCODER 0 -#define CONFIG_TARGA_Y216_DECODER 0 #define CONFIG_TBLEND_FILTER 0 -#define CONFIG_TCP_PROTOCOL 0 -#define CONFIG_TDSC_DECODER 0 -#define CONFIG_TEDCAPTIONS_DEMUXER 0 -#define CONFIG_TEE_MUXER 0 -#define CONFIG_TEE_PROTOCOL 0 #define CONFIG_TELECINE_FILTER 0 -#define CONFIG_TESTSRC2_FILTER 0 -#define CONFIG_TESTSRC_FILTER 0 -#define CONFIG_TEXT2MOVSUB_BSF 0 -#define CONFIG_TEXT_DECODER 0 -#define CONFIG_TEXT_ENCODER 0 -#define CONFIG_TG2_MUXER 0 -#define CONFIG_TGP_MUXER 0 -#define CONFIG_THEORA_DECODER 0 -#define CONFIG_THP_DECODER 0 -#define CONFIG_THP_DEMUXER 0 -#define CONFIG_THREEDOSTR_DEMUXER 0 #define CONFIG_THRESHOLD_FILTER 0 -#define CONFIG_THUMBNAIL_CUDA_FILTER 0 #define CONFIG_THUMBNAIL_FILTER 0 -#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 -#define CONFIG_TIERTEXSEQ_DEMUXER 0 -#define CONFIG_TIFF_DECODER 0 -#define CONFIG_TIFF_ENCODER 0 +#define CONFIG_THUMBNAIL_CUDA_FILTER 0 #define CONFIG_TILE_FILTER 0 #define CONFIG_TINTERLACE_FILTER 0 -#define CONFIG_TLS_PROTOCOL 0 #define CONFIG_TLUT2_FILTER 0 -#define CONFIG_TMV_DECODER 0 -#define CONFIG_TMV_DEMUXER 0 #define CONFIG_TONEMAP_FILTER 0 -#define CONFIG_TRACE_HEADERS_BSF 0 #define CONFIG_TRANSPOSE_FILTER 0 -#define CONFIG_TREBLE_FILTER 0 -#define CONFIG_TREMOLO_FILTER 0 #define CONFIG_TRIM_FILTER 0 -#define CONFIG_TRUEHD_DECODER 0 -#define CONFIG_TRUEHD_DEMUXER 0 -#define CONFIG_TRUEHD_ENCODER 0 -#define CONFIG_TRUEHD_MUXER 0 -#define CONFIG_TRUEMOTION1_DECODER 0 -#define CONFIG_TRUEMOTION2RT_DECODER 0 -#define CONFIG_TRUEMOTION2_DECODER 0 -#define CONFIG_TRUESPEECH_DECODER 0 -#define CONFIG_TSCC2_DECODER 0 -#define CONFIG_TSCC_DECODER 0 -#define CONFIG_TTA_DECODER 0 -#define CONFIG_TTA_DEMUXER 0 -#define CONFIG_TTA_ENCODER 0 -#define CONFIG_TTA_MUXER 0 -#define CONFIG_TTY_DEMUXER 0 -#define CONFIG_TWINVQ_DECODER 0 -#define CONFIG_TXD_DECODER 0 -#define CONFIG_TXD_DEMUXER 0 -#define CONFIG_TY_DEMUXER 0 -#define CONFIG_UDPLITE_PROTOCOL 0 -#define CONFIG_UDP_PROTOCOL 0 -#define CONFIG_ULTI_DECODER 0 -#define CONFIG_UNCODEDFRAMECRC_MUXER 0 -#define CONFIG_UNIX_PROTOCOL 0 #define CONFIG_UNPREMULTIPLY_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 -#define CONFIG_UNSHARP_OPENCL_FILTER 0 #define CONFIG_USPP_FILTER 0 -#define CONFIG_UTVIDEO_DECODER 0 -#define CONFIG_UTVIDEO_ENCODER 0 -#define CONFIG_V210X_DECODER 0 -#define CONFIG_V210X_DEMUXER 0 -#define CONFIG_V210_DECODER 0 -#define CONFIG_V210_DEMUXER 0 -#define CONFIG_V210_ENCODER 0 -#define CONFIG_V308_DECODER 0 -#define CONFIG_V308_ENCODER 0 -#define CONFIG_V408_DECODER 0 -#define CONFIG_V408_ENCODER 0 -#define CONFIG_V410_DECODER 0 -#define CONFIG_V410_ENCODER 0 -#define CONFIG_V4L2_INDEV 0 -#define CONFIG_V4L2_OUTDEV 0 #define CONFIG_VAGUEDENOISER_FILTER 0 -#define CONFIG_VAG_DEMUXER 0 -#define CONFIG_VBLE_DECODER 0 -#define CONFIG_VB_DECODER 0 -#define CONFIG_VC1IMAGE_DECODER 0 -#define CONFIG_VC1T_DEMUXER 0 -#define CONFIG_VC1T_MUXER 0 -#define CONFIG_VC1_CRYSTALHD_DECODER 0 -#define CONFIG_VC1_CUVID_DECODER 0 -#define CONFIG_VC1_D3D11VA2_HWACCEL 0 -#define CONFIG_VC1_D3D11VA_HWACCEL 0 -#define CONFIG_VC1_DECODER 0 -#define CONFIG_VC1_DEMUXER 0 -#define CONFIG_VC1_DXVA2_HWACCEL 0 -#define CONFIG_VC1_MMAL_DECODER 0 -#define CONFIG_VC1_MUXER 0 -#define CONFIG_VC1_NVDEC_HWACCEL 0 -#define CONFIG_VC1_PARSER 0 -#define CONFIG_VC1_QSV_DECODER 0 -#define CONFIG_VC1_V4L2M2M_DECODER 0 -#define CONFIG_VC1_VAAPI_HWACCEL 0 -#define CONFIG_VC1_VDPAU_HWACCEL 0 -#define CONFIG_VC2_ENCODER 0 -#define CONFIG_VCR1_DECODER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 -#define CONFIG_VFRDET_FILTER 0 -#define CONFIG_VFWCAP_INDEV 0 -#define CONFIG_VIBRATO_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 #define CONFIG_VIDSTABTRANSFORM_FILTER 0 #define CONFIG_VIGNETTE_FILTER 0 -#define CONFIG_VIVO_DEMUXER 0 #define CONFIG_VMAFMOTION_FILTER 0 -#define CONFIG_VMDAUDIO_DECODER 0 -#define CONFIG_VMDVIDEO_DECODER 0 -#define CONFIG_VMD_DEMUXER 0 -#define CONFIG_VMNC_DECODER 0 -#define CONFIG_VOBSUB_DEMUXER 0 -#define CONFIG_VOC_DEMUXER 0 -#define CONFIG_VOC_MUXER 0 -#define CONFIG_VOLUMEDETECT_FILTER 0 -#define CONFIG_VOLUME_FILTER 0 -#define CONFIG_VORBIS_DECODER 0 -#define CONFIG_VORBIS_ENCODER 0 -#define CONFIG_VORBIS_PARSER 0 -#define CONFIG_VP3_DECODER 0 -#define CONFIG_VP3_PARSER 0 -#define CONFIG_VP5_DECODER 0 -#define CONFIG_VP6A_DECODER 0 -#define CONFIG_VP6F_DECODER 0 -#define CONFIG_VP6_DECODER 0 -#define CONFIG_VP7_DECODER 0 -#define CONFIG_VP8_CUVID_DECODER 0 -#define CONFIG_VP8_MEDIACODEC_DECODER 0 -#define CONFIG_VP8_NVDEC_HWACCEL 0 -#define CONFIG_VP8_QSV_DECODER 0 -#define CONFIG_VP8_RKMPP_DECODER 0 -#define CONFIG_VP8_V4L2M2M_DECODER 0 -#define CONFIG_VP8_V4L2M2M_ENCODER 0 -#define CONFIG_VP8_VAAPI_ENCODER 0 -#define CONFIG_VP8_VAAPI_HWACCEL 0 -#define CONFIG_VP9_CUVID_DECODER 0 -#define CONFIG_VP9_D3D11VA2_HWACCEL 0 -#define CONFIG_VP9_D3D11VA_HWACCEL 0 -#define CONFIG_VP9_DXVA2_HWACCEL 0 -#define CONFIG_VP9_MEDIACODEC_DECODER 0 -#define CONFIG_VP9_NVDEC_HWACCEL 0 -#define CONFIG_VP9_RAW_REORDER_BSF 0 -#define CONFIG_VP9_RKMPP_DECODER 0 -#define CONFIG_VP9_SUPERFRAME_BSF 0 -#define CONFIG_VP9_V4L2M2M_DECODER 0 -#define CONFIG_VP9_VAAPI_ENCODER 0 -#define CONFIG_VP9_VAAPI_HWACCEL 0 -#define CONFIG_VPK_DEMUXER 0 -#define CONFIG_VPLAYER_DECODER 0 -#define CONFIG_VPLAYER_DEMUXER 0 -#define CONFIG_VPP_QSV_FILTER 0 -#define CONFIG_VQA_DECODER 0 -#define CONFIG_VQF_DEMUXER 0 #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 -#define CONFIG_W64_DEMUXER 0 -#define CONFIG_W64_MUXER 0 #define CONFIG_WAVEFORM_FILTER 0 -#define CONFIG_WAVPACK_DECODER 0 -#define CONFIG_WAVPACK_ENCODER 0 -#define CONFIG_WAV_DEMUXER 0 -#define CONFIG_WAV_MUXER 0 -#define CONFIG_WC3_DEMUXER 0 #define CONFIG_WEAVE_FILTER 0 -#define CONFIG_WEBM_CHUNK_MUXER 0 -#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 -#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 -#define CONFIG_WEBM_MUXER 0 -#define CONFIG_WEBP_DECODER 0 -#define CONFIG_WEBP_MUXER 0 -#define CONFIG_WEBVTT_DECODER 0 -#define CONFIG_WEBVTT_DEMUXER 0 -#define CONFIG_WEBVTT_ENCODER 0 -#define CONFIG_WEBVTT_MUXER 0 -#define CONFIG_WMALOSSLESS_DECODER 0 -#define CONFIG_WMAPRO_DECODER 0 -#define CONFIG_WMAV1_DECODER 0 -#define CONFIG_WMAV1_ENCODER 0 -#define CONFIG_WMAV2_DECODER 0 -#define CONFIG_WMAV2_ENCODER 0 -#define CONFIG_WMAVOICE_DECODER 0 -#define CONFIG_WMV1_DECODER 0 -#define CONFIG_WMV1_ENCODER 0 -#define CONFIG_WMV2_DECODER 0 -#define CONFIG_WMV2_ENCODER 0 -#define CONFIG_WMV3IMAGE_DECODER 0 -#define CONFIG_WMV3_CRYSTALHD_DECODER 0 -#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 +#define CONFIG_XBR_FILTER 0 +#define CONFIG_YADIF_FILTER 0 +#define CONFIG_ZMQ_FILTER 0 +#define CONFIG_ZOOMPAN_FILTER 0 +#define CONFIG_ZSCALE_FILTER 0 +#define CONFIG_ALLRGB_FILTER 0 +#define CONFIG_ALLYUV_FILTER 0 +#define CONFIG_CELLAUTO_FILTER 0 +#define CONFIG_COLOR_FILTER 0 +#define CONFIG_COREIMAGESRC_FILTER 0 +#define CONFIG_FREI0R_SRC_FILTER 0 +#define CONFIG_HALDCLUTSRC_FILTER 0 +#define CONFIG_LIFE_FILTER 0 +#define CONFIG_MANDELBROT_FILTER 0 +#define CONFIG_MPTESTSRC_FILTER 0 +#define CONFIG_NULLSRC_FILTER 0 +#define CONFIG_RGBTESTSRC_FILTER 0 +#define CONFIG_SMPTEBARS_FILTER 0 +#define CONFIG_SMPTEHDBARS_FILTER 0 +#define CONFIG_TESTSRC_FILTER 0 +#define CONFIG_TESTSRC2_FILTER 0 +#define CONFIG_YUVTESTSRC_FILTER 0 +#define CONFIG_NULLSINK_FILTER 0 +#define CONFIG_ABITSCOPE_FILTER 0 +#define CONFIG_ADRAWGRAPH_FILTER 0 +#define CONFIG_AHISTOGRAM_FILTER 0 +#define CONFIG_APHASEMETER_FILTER 0 +#define CONFIG_AVECTORSCOPE_FILTER 0 +#define CONFIG_CONCAT_FILTER 0 +#define CONFIG_SHOWCQT_FILTER 0 +#define CONFIG_SHOWFREQS_FILTER 0 +#define CONFIG_SHOWSPECTRUM_FILTER 0 +#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 +#define CONFIG_SHOWVOLUME_FILTER 0 +#define CONFIG_SHOWWAVES_FILTER 0 +#define CONFIG_SHOWWAVESPIC_FILTER 0 +#define CONFIG_SPECTRUMSYNTH_FILTER 0 +#define CONFIG_AMOVIE_FILTER 0 +#define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_VAAPI_HWACCEL 0 +#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_H264_CUVID_HWACCEL 0 +#define CONFIG_H264_D3D11VA_HWACCEL 0 +#define CONFIG_H264_D3D11VA2_HWACCEL 0 +#define CONFIG_H264_DXVA2_HWACCEL 0 +#define CONFIG_H264_MEDIACODEC_HWACCEL 0 +#define CONFIG_H264_MMAL_HWACCEL 0 +#define CONFIG_H264_QSV_HWACCEL 0 +#define CONFIG_H264_VAAPI_HWACCEL 0 +#define CONFIG_H264_VDA_HWACCEL 0 +#define CONFIG_H264_VDA_OLD_HWACCEL 0 +#define CONFIG_H264_VDPAU_HWACCEL 0 +#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_HEVC_CUVID_HWACCEL 0 +#define CONFIG_HEVC_D3D11VA_HWACCEL 0 +#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 +#define CONFIG_HEVC_DXVA2_HWACCEL 0 +#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0 +#define CONFIG_HEVC_QSV_HWACCEL 0 +#define CONFIG_HEVC_VAAPI_HWACCEL 0 +#define CONFIG_HEVC_VDPAU_HWACCEL 0 +#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MJPEG_CUVID_HWACCEL 0 +#define CONFIG_MPEG1_CUVID_HWACCEL 0 +#define CONFIG_MPEG1_XVMC_HWACCEL 0 +#define CONFIG_MPEG1_VDPAU_HWACCEL 0 +#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MPEG2_CUVID_HWACCEL 0 +#define CONFIG_MPEG2_XVMC_HWACCEL 0 +#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 +#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 +#define CONFIG_MPEG2_DXVA2_HWACCEL 0 +#define CONFIG_MPEG2_MMAL_HWACCEL 0 +#define CONFIG_MPEG2_QSV_HWACCEL 0 +#define CONFIG_MPEG2_VAAPI_HWACCEL 0 +#define CONFIG_MPEG2_VDPAU_HWACCEL 0 +#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_MPEG2_MEDIACODEC_HWACCEL 0 +#define CONFIG_MPEG4_CUVID_HWACCEL 0 +#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0 +#define CONFIG_MPEG4_MMAL_HWACCEL 0 +#define CONFIG_MPEG4_VAAPI_HWACCEL 0 +#define CONFIG_MPEG4_VDPAU_HWACCEL 0 +#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 +#define CONFIG_VC1_CUVID_HWACCEL 0 +#define CONFIG_VC1_D3D11VA_HWACCEL 0 +#define CONFIG_VC1_D3D11VA2_HWACCEL 0 +#define CONFIG_VC1_DXVA2_HWACCEL 0 +#define CONFIG_VC1_VAAPI_HWACCEL 0 +#define CONFIG_VC1_VDPAU_HWACCEL 0 +#define CONFIG_VC1_MMAL_HWACCEL 0 +#define CONFIG_VC1_QSV_HWACCEL 0 +#define CONFIG_VP8_CUVID_HWACCEL 0 +#define CONFIG_VP8_MEDIACODEC_HWACCEL 0 +#define CONFIG_VP8_QSV_HWACCEL 0 +#define CONFIG_VP9_CUVID_HWACCEL 0 +#define CONFIG_VP9_D3D11VA_HWACCEL 0 +#define CONFIG_VP9_D3D11VA2_HWACCEL 0 +#define CONFIG_VP9_DXVA2_HWACCEL 0 +#define CONFIG_VP9_MEDIACODEC_HWACCEL 0 +#define CONFIG_VP9_VAAPI_HWACCEL 0 #define CONFIG_WMV3_D3D11VA_HWACCEL 0 -#define CONFIG_WMV3_DECODER 0 +#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 #define CONFIG_WMV3_DXVA2_HWACCEL 0 -#define CONFIG_WMV3_NVDEC_HWACCEL 0 #define CONFIG_WMV3_VAAPI_HWACCEL 0 #define CONFIG_WMV3_VDPAU_HWACCEL 0 -#define CONFIG_WNV1_DECODER 0 -#define CONFIG_WRAPPED_AVFRAME_DECODER 0 -#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -#define CONFIG_WSAUD_DEMUXER 0 -#define CONFIG_WSD_DEMUXER 0 -#define CONFIG_WSVQA_DEMUXER 0 -#define CONFIG_WS_SND1_DECODER 0 -#define CONFIG_WTV_DEMUXER 0 +#define CONFIG_ALSA_INDEV 0 +#define CONFIG_AVFOUNDATION_INDEV 0 +#define CONFIG_BKTR_INDEV 0 +#define CONFIG_DECKLINK_INDEV 0 +#define CONFIG_LIBNDI_NEWTEK_INDEV 0 +#define CONFIG_DSHOW_INDEV 0 +#define CONFIG_FBDEV_INDEV 0 +#define CONFIG_GDIGRAB_INDEV 0 +#define CONFIG_IEC61883_INDEV 0 +#define CONFIG_JACK_INDEV 0 +#define CONFIG_KMSGRAB_INDEV 0 +#define CONFIG_LAVFI_INDEV 0 +#define CONFIG_OPENAL_INDEV 0 +#define CONFIG_OSS_INDEV 0 +#define CONFIG_PULSE_INDEV 0 +#define CONFIG_SNDIO_INDEV 0 +#define CONFIG_V4L2_INDEV 0 +#define CONFIG_VFWCAP_INDEV 0 +#define CONFIG_XCBGRAB_INDEV 0 +#define CONFIG_LIBCDIO_INDEV 0 +#define CONFIG_LIBDC1394_INDEV 0 +#define CONFIG_A64_MUXER 0 +#define CONFIG_AC3_MUXER 0 +#define CONFIG_ADTS_MUXER 0 +#define CONFIG_ADX_MUXER 0 +#define CONFIG_AIFF_MUXER 0 +#define CONFIG_AMR_MUXER 0 +#define CONFIG_APNG_MUXER 0 +#define CONFIG_ASF_MUXER 0 +#define CONFIG_ASS_MUXER 0 +#define CONFIG_AST_MUXER 0 +#define CONFIG_ASF_STREAM_MUXER 0 +#define CONFIG_AU_MUXER 0 +#define CONFIG_AVI_MUXER 0 +#define CONFIG_AVM2_MUXER 0 +#define CONFIG_BIT_MUXER 0 +#define CONFIG_CAF_MUXER 0 +#define CONFIG_CAVSVIDEO_MUXER 0 +#define CONFIG_CRC_MUXER 0 +#define CONFIG_DASH_MUXER 0 +#define CONFIG_DATA_MUXER 0 +#define CONFIG_DAUD_MUXER 0 +#define CONFIG_DIRAC_MUXER 0 +#define CONFIG_DNXHD_MUXER 0 +#define CONFIG_DTS_MUXER 0 +#define CONFIG_DV_MUXER 0 +#define CONFIG_EAC3_MUXER 0 +#define CONFIG_F4V_MUXER 0 +#define CONFIG_FFM_MUXER 0 +#define CONFIG_FFMETADATA_MUXER 0 +#define CONFIG_FIFO_MUXER 0 +#define CONFIG_FILMSTRIP_MUXER 0 +#define CONFIG_FITS_MUXER 0 +#define CONFIG_FLAC_MUXER 0 +#define CONFIG_FLV_MUXER 0 +#define CONFIG_FRAMECRC_MUXER 0 +#define CONFIG_FRAMEHASH_MUXER 0 +#define CONFIG_FRAMEMD5_MUXER 0 +#define CONFIG_G722_MUXER 0 +#define CONFIG_G723_1_MUXER 0 +#define CONFIG_G726_MUXER 0 +#define CONFIG_G726LE_MUXER 0 +#define CONFIG_GIF_MUXER 0 +#define CONFIG_GSM_MUXER 0 +#define CONFIG_GXF_MUXER 0 +#define CONFIG_H261_MUXER 0 +#define CONFIG_H263_MUXER 0 +#define CONFIG_H264_MUXER 0 +#define CONFIG_HASH_MUXER 0 +#define CONFIG_HDS_MUXER 0 +#define CONFIG_HEVC_MUXER 0 +#define CONFIG_HLS_MUXER 0 +#define CONFIG_ICO_MUXER 0 +#define CONFIG_ILBC_MUXER 0 +#define CONFIG_IMAGE2_MUXER 0 +#define CONFIG_IMAGE2PIPE_MUXER 0 +#define CONFIG_IPOD_MUXER 0 +#define CONFIG_IRCAM_MUXER 0 +#define CONFIG_ISMV_MUXER 0 +#define CONFIG_IVF_MUXER 0 +#define CONFIG_JACOSUB_MUXER 0 +#define CONFIG_LATM_MUXER 0 +#define CONFIG_LRC_MUXER 0 +#define CONFIG_M4V_MUXER 0 +#define CONFIG_MD5_MUXER 0 +#define CONFIG_MATROSKA_MUXER 0 +#define CONFIG_MATROSKA_AUDIO_MUXER 0 +#define CONFIG_MICRODVD_MUXER 0 +#define CONFIG_MJPEG_MUXER 0 +#define CONFIG_MLP_MUXER 0 +#define CONFIG_MMF_MUXER 0 +#define CONFIG_MOV_MUXER 0 +#define CONFIG_MP2_MUXER 0 +#define CONFIG_MP3_MUXER 0 +#define CONFIG_MP4_MUXER 0 +#define CONFIG_MPEG1SYSTEM_MUXER 0 +#define CONFIG_MPEG1VCD_MUXER 0 +#define CONFIG_MPEG1VIDEO_MUXER 0 +#define CONFIG_MPEG2DVD_MUXER 0 +#define CONFIG_MPEG2SVCD_MUXER 0 +#define CONFIG_MPEG2VIDEO_MUXER 0 +#define CONFIG_MPEG2VOB_MUXER 0 +#define CONFIG_MPEGTS_MUXER 0 +#define CONFIG_MPJPEG_MUXER 0 +#define CONFIG_MXF_MUXER 0 +#define CONFIG_MXF_D10_MUXER 0 +#define CONFIG_MXF_OPATOM_MUXER 0 +#define CONFIG_NULL_MUXER 0 +#define CONFIG_NUT_MUXER 0 +#define CONFIG_OGA_MUXER 0 +#define CONFIG_OGG_MUXER 0 +#define CONFIG_OGV_MUXER 0 +#define CONFIG_OMA_MUXER 0 +#define CONFIG_OPUS_MUXER 0 +#define CONFIG_PCM_ALAW_MUXER 0 +#define CONFIG_PCM_MULAW_MUXER 0 +#define CONFIG_PCM_F64BE_MUXER 0 +#define CONFIG_PCM_F64LE_MUXER 0 +#define CONFIG_PCM_F32BE_MUXER 0 +#define CONFIG_PCM_F32LE_MUXER 0 +#define CONFIG_PCM_S32BE_MUXER 0 +#define CONFIG_PCM_S32LE_MUXER 0 +#define CONFIG_PCM_S24BE_MUXER 0 +#define CONFIG_PCM_S24LE_MUXER 0 +#define CONFIG_PCM_S16BE_MUXER 0 +#define CONFIG_PCM_S16LE_MUXER 0 +#define CONFIG_PCM_S8_MUXER 0 +#define CONFIG_PCM_U32BE_MUXER 0 +#define CONFIG_PCM_U32LE_MUXER 0 +#define CONFIG_PCM_U24BE_MUXER 0 +#define CONFIG_PCM_U24LE_MUXER 0 +#define CONFIG_PCM_U16BE_MUXER 0 +#define CONFIG_PCM_U16LE_MUXER 0 +#define CONFIG_PCM_U8_MUXER 0 +#define CONFIG_PSP_MUXER 0 +#define CONFIG_RAWVIDEO_MUXER 0 +#define CONFIG_RM_MUXER 0 +#define CONFIG_ROQ_MUXER 0 +#define CONFIG_RSO_MUXER 0 +#define CONFIG_RTP_MUXER 0 +#define CONFIG_RTP_MPEGTS_MUXER 0 +#define CONFIG_RTSP_MUXER 0 +#define CONFIG_SAP_MUXER 0 +#define CONFIG_SCC_MUXER 0 +#define CONFIG_SEGMENT_MUXER 0 +#define CONFIG_STREAM_SEGMENT_MUXER 0 +#define CONFIG_SINGLEJPEG_MUXER 0 +#define CONFIG_SMJPEG_MUXER 0 +#define CONFIG_SMOOTHSTREAMING_MUXER 0 +#define CONFIG_SOX_MUXER 0 +#define CONFIG_SPX_MUXER 0 +#define CONFIG_SPDIF_MUXER 0 +#define CONFIG_SRT_MUXER 0 +#define CONFIG_SUP_MUXER 0 +#define CONFIG_SWF_MUXER 0 +#define CONFIG_TEE_MUXER 0 +#define CONFIG_TG2_MUXER 0 +#define CONFIG_TGP_MUXER 0 +#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 +#define CONFIG_TRUEHD_MUXER 0 +#define CONFIG_TTA_MUXER 0 +#define CONFIG_UNCODEDFRAMECRC_MUXER 0 +#define CONFIG_VC1_MUXER 0 +#define CONFIG_VC1T_MUXER 0 +#define CONFIG_VOC_MUXER 0 +#define CONFIG_W64_MUXER 0 +#define CONFIG_WAV_MUXER 0 +#define CONFIG_WEBM_MUXER 0 +#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 +#define CONFIG_WEBM_CHUNK_MUXER 0 +#define CONFIG_WEBP_MUXER 0 +#define CONFIG_WEBVTT_MUXER 0 #define CONFIG_WTV_MUXER 0 -#define CONFIG_WVE_DEMUXER 0 -#define CONFIG_WV_DEMUXER 0 #define CONFIG_WV_MUXER 0 -#define CONFIG_XAN_DPCM_DECODER 0 -#define CONFIG_XAN_WC3_DECODER 0 -#define CONFIG_XAN_WC4_DECODER 0 -#define CONFIG_XA_DEMUXER 0 -#define CONFIG_XBIN_DECODER 0 -#define CONFIG_XBIN_DEMUXER 0 -#define CONFIG_XBM_DECODER 0 -#define CONFIG_XBM_ENCODER 0 -#define CONFIG_XBR_FILTER 0 -#define CONFIG_XCBGRAB_INDEV 0 -#define CONFIG_XFACE_DECODER 0 -#define CONFIG_XFACE_ENCODER 0 -#define CONFIG_XL_DECODER 0 -#define CONFIG_XMA1_DECODER 0 -#define CONFIG_XMA2_DECODER 0 -#define CONFIG_XMA_PARSER 0 -#define CONFIG_XMV_DEMUXER 0 -#define CONFIG_XPM_DECODER 0 -#define CONFIG_XSUB_DECODER 0 -#define CONFIG_XSUB_ENCODER 0 -#define CONFIG_XVAG_DEMUXER 0 -#define CONFIG_XV_OUTDEV 0 -#define CONFIG_XWD_DECODER 0 -#define CONFIG_XWD_ENCODER 0 -#define CONFIG_XWMA_DEMUXER 0 -#define CONFIG_Y41P_DECODER 0 -#define CONFIG_Y41P_ENCODER 0 -#define CONFIG_YADIF_FILTER 0 -#define CONFIG_YLC_DECODER 0 -#define CONFIG_YOP_DECODER 0 -#define CONFIG_YOP_DEMUXER 0 -#define CONFIG_YUV4MPEGPIPE_DEMUXER 0 #define CONFIG_YUV4MPEGPIPE_MUXER 0 -#define CONFIG_YUV4_DECODER 0 -#define CONFIG_YUV4_ENCODER 0 -#define CONFIG_YUVTESTSRC_FILTER 0 -#define CONFIG_ZERO12V_DECODER 0 -#define CONFIG_ZEROCODEC_DECODER 0 -#define CONFIG_ZLIB_DECODER 0 -#define CONFIG_ZLIB_ENCODER 0 -#define CONFIG_ZMBV_DECODER 0 -#define CONFIG_ZMBV_ENCODER 0 -#define CONFIG_ZMQ_FILTER 0 -#define CONFIG_ZOOMPAN_FILTER 0 -#define CONFIG_ZSCALE_FILTER 0 +#define CONFIG_CHROMAPRINT_MUXER 0 +#define CONFIG_ALSA_OUTDEV 0 +#define CONFIG_CACA_OUTDEV 0 +#define CONFIG_DECKLINK_OUTDEV 0 +#define CONFIG_LIBNDI_NEWTEK_OUTDEV 0 +#define CONFIG_FBDEV_OUTDEV 0 +#define CONFIG_OPENGL_OUTDEV 0 +#define CONFIG_OSS_OUTDEV 0 +#define CONFIG_PULSE_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 +#define CONFIG_SNDIO_OUTDEV 0 +#define CONFIG_V4L2_OUTDEV 0 +#define CONFIG_XV_OUTDEV 0 +#define CONFIG_AAC_PARSER 0 +#define CONFIG_AAC_LATM_PARSER 0 +#define CONFIG_AC3_PARSER 0 +#define CONFIG_ADX_PARSER 0 +#define CONFIG_BMP_PARSER 0 +#define CONFIG_CAVSVIDEO_PARSER 0 +#define CONFIG_COOK_PARSER 0 +#define CONFIG_DCA_PARSER 0 +#define CONFIG_DIRAC_PARSER 0 +#define CONFIG_DNXHD_PARSER 0 +#define CONFIG_DPX_PARSER 0 +#define CONFIG_DVAUDIO_PARSER 0 +#define CONFIG_DVBSUB_PARSER 0 +#define CONFIG_DVDSUB_PARSER 0 +#define CONFIG_DVD_NAV_PARSER 0 +#define CONFIG_G729_PARSER 0 +#define CONFIG_GSM_PARSER 0 +#define CONFIG_H261_PARSER 0 +#define CONFIG_H263_PARSER 0 +#define CONFIG_H264_PARSER 0 +#define CONFIG_HEVC_PARSER 0 +#define CONFIG_MJPEG_PARSER 0 +#define CONFIG_MLP_PARSER 0 +#define CONFIG_MPEG4VIDEO_PARSER 0 +#define CONFIG_MPEGAUDIO_PARSER 0 +#define CONFIG_MPEGVIDEO_PARSER 0 +#define CONFIG_OPUS_PARSER 0 +#define CONFIG_PNG_PARSER 0 +#define CONFIG_PNM_PARSER 0 +#define CONFIG_RV30_PARSER 0 +#define CONFIG_RV40_PARSER 0 +#define CONFIG_SIPR_PARSER 0 +#define CONFIG_TAK_PARSER 0 +#define CONFIG_VC1_PARSER 0 +#define CONFIG_VORBIS_PARSER 0 +#define CONFIG_VP3_PARSER 0 +#define CONFIG_XMA_PARSER 0 +#define CONFIG_ASYNC_PROTOCOL 0 +#define CONFIG_BLURAY_PROTOCOL 0 +#define CONFIG_CACHE_PROTOCOL 0 +#define CONFIG_CONCAT_PROTOCOL 0 +#define CONFIG_CRYPTO_PROTOCOL 0 +#define CONFIG_DATA_PROTOCOL 0 +#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 +#define CONFIG_FFRTMPHTTP_PROTOCOL 0 +#define CONFIG_FILE_PROTOCOL 0 +#define CONFIG_FTP_PROTOCOL 0 +#define CONFIG_GOPHER_PROTOCOL 0 +#define CONFIG_HLS_PROTOCOL 0 +#define CONFIG_HTTP_PROTOCOL 0 +#define CONFIG_HTTPPROXY_PROTOCOL 0 +#define CONFIG_HTTPS_PROTOCOL 0 +#define CONFIG_ICECAST_PROTOCOL 0 +#define CONFIG_MMSH_PROTOCOL 0 +#define CONFIG_MMST_PROTOCOL 0 +#define CONFIG_MD5_PROTOCOL 0 +#define CONFIG_PIPE_PROTOCOL 0 +#define CONFIG_PROMPEG_PROTOCOL 0 +#define CONFIG_RTMP_PROTOCOL 0 +#define CONFIG_RTMPE_PROTOCOL 0 +#define CONFIG_RTMPS_PROTOCOL 0 +#define CONFIG_RTMPT_PROTOCOL 0 +#define CONFIG_RTMPTE_PROTOCOL 0 +#define CONFIG_RTMPTS_PROTOCOL 0 +#define CONFIG_RTP_PROTOCOL 0 +#define CONFIG_SCTP_PROTOCOL 0 +#define CONFIG_SRTP_PROTOCOL 0 +#define CONFIG_SUBFILE_PROTOCOL 0 +#define CONFIG_TEE_PROTOCOL 0 +#define CONFIG_TCP_PROTOCOL 0 +#define CONFIG_TLS_GNUTLS_PROTOCOL 0 +#define CONFIG_TLS_SCHANNEL_PROTOCOL 0 +#define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 +#define CONFIG_TLS_OPENSSL_PROTOCOL 0 +#define CONFIG_UDP_PROTOCOL 0 +#define CONFIG_UDPLITE_PROTOCOL 0 +#define CONFIG_UNIX_PROTOCOL 0 +#define CONFIG_LIBRTMP_PROTOCOL 0 +#define CONFIG_LIBRTMPE_PROTOCOL 0 +#define CONFIG_LIBRTMPS_PROTOCOL 0 +#define CONFIG_LIBRTMPT_PROTOCOL 0 +#define CONFIG_LIBRTMPTE_PROTOCOL 0 +#define CONFIG_LIBSSH_PROTOCOL 0 +#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcodecs.c index 4d4ef530e..4f34312e6 100644 --- a/media/ffvpx/libavcodec/allcodecs.c +++ b/media/ffvpx/libavcodec/allcodecs.c @@ -29,865 +29,732 @@ #include "avcodec.h" #include "version.h" -extern AVCodec ff_a64multi_encoder; -extern AVCodec ff_a64multi5_encoder; -extern AVCodec ff_aasc_decoder; -extern AVCodec ff_aic_decoder; -extern AVCodec ff_alias_pix_encoder; -extern AVCodec ff_alias_pix_decoder; -extern AVCodec ff_amv_encoder; -extern AVCodec ff_amv_decoder; -extern AVCodec ff_anm_decoder; -extern AVCodec ff_ansi_decoder; -extern AVCodec ff_apng_encoder; -extern AVCodec ff_apng_decoder; -extern AVCodec ff_asv1_encoder; -extern AVCodec ff_asv1_decoder; -extern AVCodec ff_asv2_encoder; -extern AVCodec ff_asv2_decoder; -extern AVCodec ff_aura_decoder; -extern AVCodec ff_aura2_decoder; -extern AVCodec ff_avrp_encoder; -extern AVCodec ff_avrp_decoder; -extern AVCodec ff_avrn_decoder; -extern AVCodec ff_avs_decoder; -extern AVCodec ff_avui_encoder; -extern AVCodec ff_avui_decoder; -extern AVCodec ff_ayuv_encoder; -extern AVCodec ff_ayuv_decoder; -extern AVCodec ff_bethsoftvid_decoder; -extern AVCodec ff_bfi_decoder; -extern AVCodec ff_bink_decoder; -extern AVCodec ff_bmp_encoder; -extern AVCodec ff_bmp_decoder; -extern AVCodec ff_bmv_video_decoder; -extern AVCodec ff_brender_pix_decoder; -extern AVCodec ff_c93_decoder; -extern AVCodec ff_cavs_decoder; -extern AVCodec ff_cdgraphics_decoder; -extern AVCodec ff_cdxl_decoder; -extern AVCodec ff_cfhd_decoder; -extern AVCodec ff_cinepak_encoder; -extern AVCodec ff_cinepak_decoder; -extern AVCodec ff_clearvideo_decoder; -extern AVCodec ff_cljr_encoder; -extern AVCodec ff_cljr_decoder; -extern AVCodec ff_cllc_decoder; -extern AVCodec ff_comfortnoise_encoder; -extern AVCodec ff_comfortnoise_decoder; -extern AVCodec ff_cpia_decoder; -extern AVCodec ff_cscd_decoder; -extern AVCodec ff_cyuv_decoder; -extern AVCodec ff_dds_decoder; -extern AVCodec ff_dfa_decoder; -extern AVCodec ff_dirac_decoder; -extern AVCodec ff_dnxhd_encoder; -extern AVCodec ff_dnxhd_decoder; -extern AVCodec ff_dpx_encoder; -extern AVCodec ff_dpx_decoder; -extern AVCodec ff_dsicinvideo_decoder; -extern AVCodec ff_dvaudio_decoder; -extern AVCodec ff_dvvideo_encoder; -extern AVCodec ff_dvvideo_decoder; -extern AVCodec ff_dxa_decoder; -extern AVCodec ff_dxtory_decoder; -extern AVCodec ff_dxv_decoder; -extern AVCodec ff_eacmv_decoder; -extern AVCodec ff_eamad_decoder; -extern AVCodec ff_eatgq_decoder; -extern AVCodec ff_eatgv_decoder; -extern AVCodec ff_eatqi_decoder; -extern AVCodec ff_eightbps_decoder; -extern AVCodec ff_eightsvx_exp_decoder; -extern AVCodec ff_eightsvx_fib_decoder; -extern AVCodec ff_escape124_decoder; -extern AVCodec ff_escape130_decoder; -extern AVCodec ff_exr_decoder; -extern AVCodec ff_ffv1_encoder; -extern AVCodec ff_ffv1_decoder; -extern AVCodec ff_ffvhuff_encoder; -extern AVCodec ff_ffvhuff_decoder; -extern AVCodec ff_fic_decoder; -extern AVCodec ff_fits_encoder; -extern AVCodec ff_fits_decoder; -extern AVCodec ff_flashsv_encoder; -extern AVCodec ff_flashsv_decoder; -extern AVCodec ff_flashsv2_encoder; -extern AVCodec ff_flashsv2_decoder; -extern AVCodec ff_flic_decoder; -extern AVCodec ff_flv_encoder; -extern AVCodec ff_flv_decoder; -extern AVCodec ff_fmvc_decoder; -extern AVCodec ff_fourxm_decoder; -extern AVCodec ff_fraps_decoder; -extern AVCodec ff_frwu_decoder; -extern AVCodec ff_g2m_decoder; -extern AVCodec ff_gdv_decoder; -extern AVCodec ff_gif_encoder; -extern AVCodec ff_gif_decoder; -extern AVCodec ff_h261_encoder; -extern AVCodec ff_h261_decoder; -extern AVCodec ff_h263_encoder; -extern AVCodec ff_h263_decoder; -extern AVCodec ff_h263i_decoder; -extern AVCodec ff_h263p_encoder; -extern AVCodec ff_h263p_decoder; -extern AVCodec ff_h263_v4l2m2m_decoder; -extern AVCodec ff_h264_decoder; -extern AVCodec ff_h264_crystalhd_decoder; -extern AVCodec ff_h264_v4l2m2m_decoder; -extern AVCodec ff_h264_mediacodec_decoder; -extern AVCodec ff_h264_mmal_decoder; -extern AVCodec ff_h264_qsv_decoder; -extern AVCodec ff_h264_rkmpp_decoder; -extern AVCodec ff_hap_encoder; -extern AVCodec ff_hap_decoder; -extern AVCodec ff_hevc_decoder; -extern AVCodec ff_hevc_qsv_decoder; -extern AVCodec ff_hevc_rkmpp_decoder; -extern AVCodec ff_hevc_v4l2m2m_decoder; -extern AVCodec ff_hnm4_video_decoder; -extern AVCodec ff_hq_hqa_decoder; -extern AVCodec ff_hqx_decoder; -extern AVCodec ff_huffyuv_encoder; -extern AVCodec ff_huffyuv_decoder; -extern AVCodec ff_idcin_decoder; -extern AVCodec ff_iff_ilbm_decoder; -extern AVCodec ff_indeo2_decoder; -extern AVCodec ff_indeo3_decoder; -extern AVCodec ff_indeo4_decoder; -extern AVCodec ff_indeo5_decoder; -extern AVCodec ff_interplay_video_decoder; -extern AVCodec ff_jpeg2000_encoder; -extern AVCodec ff_jpeg2000_decoder; -extern AVCodec ff_jpegls_encoder; -extern AVCodec ff_jpegls_decoder; -extern AVCodec ff_jv_decoder; -extern AVCodec ff_kgv1_decoder; -extern AVCodec ff_kmvc_decoder; -extern AVCodec ff_lagarith_decoder; -extern AVCodec ff_ljpeg_encoder; -extern AVCodec ff_loco_decoder; -extern AVCodec ff_m101_decoder; -extern AVCodec ff_magicyuv_encoder; -extern AVCodec ff_magicyuv_decoder; -extern AVCodec ff_mdec_decoder; -extern AVCodec ff_mimic_decoder; -extern AVCodec ff_mjpeg_encoder; -extern AVCodec ff_mjpeg_decoder; -extern AVCodec ff_mjpegb_decoder; -extern AVCodec ff_mmvideo_decoder; -extern AVCodec ff_motionpixels_decoder; -extern AVCodec ff_mpeg1video_encoder; -extern AVCodec ff_mpeg1video_decoder; -extern AVCodec ff_mpeg2video_encoder; -extern AVCodec ff_mpeg2video_decoder; -extern AVCodec ff_mpeg4_encoder; -extern AVCodec ff_mpeg4_decoder; -extern AVCodec ff_mpeg4_crystalhd_decoder; -extern AVCodec ff_mpeg4_v4l2m2m_decoder; -extern AVCodec ff_mpeg4_mmal_decoder; -extern AVCodec ff_mpegvideo_decoder; -extern AVCodec ff_mpeg1_v4l2m2m_decoder; -extern AVCodec ff_mpeg2_mmal_decoder; -extern AVCodec ff_mpeg2_crystalhd_decoder; -extern AVCodec ff_mpeg2_v4l2m2m_decoder; -extern AVCodec ff_mpeg2_qsv_decoder; -extern AVCodec ff_mpeg2_mediacodec_decoder; -extern AVCodec ff_msa1_decoder; -extern AVCodec ff_mscc_decoder; -extern AVCodec ff_msmpeg4v1_decoder; -extern AVCodec ff_msmpeg4v2_encoder; -extern AVCodec ff_msmpeg4v2_decoder; -extern AVCodec ff_msmpeg4v3_encoder; -extern AVCodec ff_msmpeg4v3_decoder; -extern AVCodec ff_msmpeg4_crystalhd_decoder; -extern AVCodec ff_msrle_decoder; -extern AVCodec ff_mss1_decoder; -extern AVCodec ff_mss2_decoder; -extern AVCodec ff_msvideo1_encoder; -extern AVCodec ff_msvideo1_decoder; -extern AVCodec ff_mszh_decoder; -extern AVCodec ff_mts2_decoder; -extern AVCodec ff_mvc1_decoder; -extern AVCodec ff_mvc2_decoder; -extern AVCodec ff_mxpeg_decoder; -extern AVCodec ff_nuv_decoder; -extern AVCodec ff_paf_video_decoder; -extern AVCodec ff_pam_encoder; -extern AVCodec ff_pam_decoder; -extern AVCodec ff_pbm_encoder; -extern AVCodec ff_pbm_decoder; -extern AVCodec ff_pcx_encoder; -extern AVCodec ff_pcx_decoder; -extern AVCodec ff_pgm_encoder; -extern AVCodec ff_pgm_decoder; -extern AVCodec ff_pgmyuv_encoder; -extern AVCodec ff_pgmyuv_decoder; -extern AVCodec ff_pictor_decoder; -extern AVCodec ff_pixlet_decoder; -extern AVCodec ff_png_encoder; -extern AVCodec ff_png_decoder; -extern AVCodec ff_ppm_encoder; -extern AVCodec ff_ppm_decoder; -extern AVCodec ff_prores_encoder; -extern AVCodec ff_prores_decoder; -extern AVCodec ff_prores_aw_encoder; -extern AVCodec ff_prores_ks_encoder; -extern AVCodec ff_prores_lgpl_decoder; -extern AVCodec ff_psd_decoder; -extern AVCodec ff_ptx_decoder; -extern AVCodec ff_qdraw_decoder; -extern AVCodec ff_qpeg_decoder; -extern AVCodec ff_qtrle_encoder; -extern AVCodec ff_qtrle_decoder; -extern AVCodec ff_r10k_encoder; -extern AVCodec ff_r10k_decoder; -extern AVCodec ff_r210_encoder; -extern AVCodec ff_r210_decoder; -extern AVCodec ff_rawvideo_encoder; -extern AVCodec ff_rawvideo_decoder; -extern AVCodec ff_rl2_decoder; -extern AVCodec ff_roq_encoder; -extern AVCodec ff_roq_decoder; -extern AVCodec ff_rpza_decoder; -extern AVCodec ff_rscc_decoder; -extern AVCodec ff_rv10_encoder; -extern AVCodec ff_rv10_decoder; -extern AVCodec ff_rv20_encoder; -extern AVCodec ff_rv20_decoder; -extern AVCodec ff_rv30_decoder; -extern AVCodec ff_rv40_decoder; -extern AVCodec ff_s302m_encoder; -extern AVCodec ff_s302m_decoder; -extern AVCodec ff_sanm_decoder; -extern AVCodec ff_scpr_decoder; -extern AVCodec ff_screenpresso_decoder; -extern AVCodec ff_sdx2_dpcm_decoder; -extern AVCodec ff_sgi_encoder; -extern AVCodec ff_sgi_decoder; -extern AVCodec ff_sgirle_decoder; -extern AVCodec ff_sheervideo_decoder; -extern AVCodec ff_smacker_decoder; -extern AVCodec ff_smc_decoder; -extern AVCodec ff_smvjpeg_decoder; -extern AVCodec ff_snow_encoder; -extern AVCodec ff_snow_decoder; -extern AVCodec ff_sp5x_decoder; -extern AVCodec ff_speedhq_decoder; -extern AVCodec ff_srgc_decoder; -extern AVCodec ff_sunrast_encoder; -extern AVCodec ff_sunrast_decoder; -extern AVCodec ff_svq1_encoder; -extern AVCodec ff_svq1_decoder; -extern AVCodec ff_svq3_decoder; -extern AVCodec ff_targa_encoder; -extern AVCodec ff_targa_decoder; -extern AVCodec ff_targa_y216_decoder; -extern AVCodec ff_tdsc_decoder; -extern AVCodec ff_theora_decoder; -extern AVCodec ff_thp_decoder; -extern AVCodec ff_tiertexseqvideo_decoder; -extern AVCodec ff_tiff_encoder; -extern AVCodec ff_tiff_decoder; -extern AVCodec ff_tmv_decoder; -extern AVCodec ff_truemotion1_decoder; -extern AVCodec ff_truemotion2_decoder; -extern AVCodec ff_truemotion2rt_decoder; -extern AVCodec ff_tscc_decoder; -extern AVCodec ff_tscc2_decoder; -extern AVCodec ff_txd_decoder; -extern AVCodec ff_ulti_decoder; -extern AVCodec ff_utvideo_encoder; -extern AVCodec ff_utvideo_decoder; -extern AVCodec ff_v210_encoder; -extern AVCodec ff_v210_decoder; -extern AVCodec ff_v210x_decoder; -extern AVCodec ff_v308_encoder; -extern AVCodec ff_v308_decoder; -extern AVCodec ff_v408_encoder; -extern AVCodec ff_v408_decoder; -extern AVCodec ff_v410_encoder; -extern AVCodec ff_v410_decoder; -extern AVCodec ff_vb_decoder; -extern AVCodec ff_vble_decoder; -extern AVCodec ff_vc1_decoder; -extern AVCodec ff_vc1_crystalhd_decoder; -extern AVCodec ff_vc1image_decoder; -extern AVCodec ff_vc1_mmal_decoder; -extern AVCodec ff_vc1_qsv_decoder; -extern AVCodec ff_vc1_v4l2m2m_decoder; -extern AVCodec ff_vc2_encoder; -extern AVCodec ff_vcr1_decoder; -extern AVCodec ff_vmdvideo_decoder; -extern AVCodec ff_vmnc_decoder; -extern AVCodec ff_vp3_decoder; -extern AVCodec ff_vp5_decoder; -extern AVCodec ff_vp6_decoder; -extern AVCodec ff_vp6a_decoder; -extern AVCodec ff_vp6f_decoder; -extern AVCodec ff_vp7_decoder; -extern AVCodec ff_vp8_decoder; -extern AVCodec ff_vp8_rkmpp_decoder; -extern AVCodec ff_vp8_v4l2m2m_decoder; -extern AVCodec ff_vp9_decoder; -extern AVCodec ff_vp9_rkmpp_decoder; -extern AVCodec ff_vp9_v4l2m2m_decoder; -extern AVCodec ff_vqa_decoder; -extern AVCodec ff_bitpacked_decoder; -extern AVCodec ff_webp_decoder; -extern AVCodec ff_wrapped_avframe_encoder; -extern AVCodec ff_wrapped_avframe_decoder; -extern AVCodec ff_wmv1_encoder; -extern AVCodec ff_wmv1_decoder; -extern AVCodec ff_wmv2_encoder; -extern AVCodec ff_wmv2_decoder; -extern AVCodec ff_wmv3_decoder; -extern AVCodec ff_wmv3_crystalhd_decoder; -extern AVCodec ff_wmv3image_decoder; -extern AVCodec ff_wnv1_decoder; -extern AVCodec ff_xan_wc3_decoder; -extern AVCodec ff_xan_wc4_decoder; -extern AVCodec ff_xbm_encoder; -extern AVCodec ff_xbm_decoder; -extern AVCodec ff_xface_encoder; -extern AVCodec ff_xface_decoder; -extern AVCodec ff_xl_decoder; -extern AVCodec ff_xpm_decoder; -extern AVCodec ff_xwd_encoder; -extern AVCodec ff_xwd_decoder; -extern AVCodec ff_y41p_encoder; -extern AVCodec ff_y41p_decoder; -extern AVCodec ff_ylc_decoder; -extern AVCodec ff_yop_decoder; -extern AVCodec ff_yuv4_encoder; -extern AVCodec ff_yuv4_decoder; -extern AVCodec ff_zero12v_decoder; -extern AVCodec ff_zerocodec_decoder; -extern AVCodec ff_zlib_encoder; -extern AVCodec ff_zlib_decoder; -extern AVCodec ff_zmbv_encoder; -extern AVCodec ff_zmbv_decoder; - -/* audio codecs */ -extern AVCodec ff_aac_encoder; -extern AVCodec ff_aac_decoder; -extern AVCodec ff_aac_fixed_decoder; -extern AVCodec ff_aac_latm_decoder; -extern AVCodec ff_ac3_encoder; -extern AVCodec ff_ac3_decoder; -extern AVCodec ff_ac3_fixed_encoder; -extern AVCodec ff_ac3_fixed_decoder; -extern AVCodec ff_alac_encoder; -extern AVCodec ff_alac_decoder; -extern AVCodec ff_als_decoder; -extern AVCodec ff_amrnb_decoder; -extern AVCodec ff_amrwb_decoder; -extern AVCodec ff_ape_decoder; -extern AVCodec ff_aptx_encoder; -extern AVCodec ff_aptx_decoder; -extern AVCodec ff_aptx_hd_encoder; -extern AVCodec ff_aptx_hd_decoder; -extern AVCodec ff_atrac1_decoder; -extern AVCodec ff_atrac3_decoder; -extern AVCodec ff_atrac3al_decoder; -extern AVCodec ff_atrac3p_decoder; -extern AVCodec ff_atrac3pal_decoder; -extern AVCodec ff_binkaudio_dct_decoder; -extern AVCodec ff_binkaudio_rdft_decoder; -extern AVCodec ff_bmv_audio_decoder; -extern AVCodec ff_cook_decoder; -extern AVCodec ff_dca_encoder; -extern AVCodec ff_dca_decoder; -extern AVCodec ff_dolby_e_decoder; -extern AVCodec ff_dsd_lsbf_decoder; -extern AVCodec ff_dsd_msbf_decoder; -extern AVCodec ff_dsd_lsbf_planar_decoder; -extern AVCodec ff_dsd_msbf_planar_decoder; -extern AVCodec ff_dsicinaudio_decoder; -extern AVCodec ff_dss_sp_decoder; -extern AVCodec ff_dst_decoder; -extern AVCodec ff_eac3_encoder; -extern AVCodec ff_eac3_decoder; -extern AVCodec ff_evrc_decoder; -extern AVCodec ff_ffwavesynth_decoder; -extern AVCodec ff_flac_encoder; -extern AVCodec ff_flac_decoder; -extern AVCodec ff_g723_1_encoder; -extern AVCodec ff_g723_1_decoder; -extern AVCodec ff_g729_decoder; -extern AVCodec ff_gsm_decoder; -extern AVCodec ff_gsm_ms_decoder; -extern AVCodec ff_iac_decoder; -extern AVCodec ff_imc_decoder; -extern AVCodec ff_interplay_acm_decoder; -extern AVCodec ff_mace3_decoder; -extern AVCodec ff_mace6_decoder; -extern AVCodec ff_metasound_decoder; -extern AVCodec ff_mlp_encoder; -extern AVCodec ff_mlp_decoder; -extern AVCodec ff_mp1_decoder; -extern AVCodec ff_mp1float_decoder; -extern AVCodec ff_mp2_encoder; -extern AVCodec ff_mp2_decoder; -extern AVCodec ff_mp2float_decoder; -extern AVCodec ff_mp2fixed_encoder; -extern AVCodec ff_mp3float_decoder; -extern AVCodec ff_mp3_decoder; -extern AVCodec ff_mp3adufloat_decoder; -extern AVCodec ff_mp3adu_decoder; -extern AVCodec ff_mp3on4float_decoder; -extern AVCodec ff_mp3on4_decoder; -extern AVCodec ff_mpc7_decoder; -extern AVCodec ff_mpc8_decoder; -extern AVCodec ff_nellymoser_encoder; -extern AVCodec ff_nellymoser_decoder; -extern AVCodec ff_on2avc_decoder; -extern AVCodec ff_opus_encoder; -extern AVCodec ff_opus_decoder; -extern AVCodec ff_paf_audio_decoder; -extern AVCodec ff_qcelp_decoder; -extern AVCodec ff_qdm2_decoder; -extern AVCodec ff_qdmc_decoder; -extern AVCodec ff_ra_144_encoder; -extern AVCodec ff_ra_144_decoder; -extern AVCodec ff_ra_288_decoder; -extern AVCodec ff_ralf_decoder; -extern AVCodec ff_sbc_encoder; -extern AVCodec ff_sbc_decoder; -extern AVCodec ff_shorten_decoder; -extern AVCodec ff_sipr_decoder; -extern AVCodec ff_smackaud_decoder; -extern AVCodec ff_sonic_encoder; -extern AVCodec ff_sonic_decoder; -extern AVCodec ff_sonic_ls_encoder; -extern AVCodec ff_tak_decoder; -extern AVCodec ff_truehd_encoder; -extern AVCodec ff_truehd_decoder; -extern AVCodec ff_truespeech_decoder; -extern AVCodec ff_tta_encoder; -extern AVCodec ff_tta_decoder; -extern AVCodec ff_twinvq_decoder; -extern AVCodec ff_vmdaudio_decoder; -extern AVCodec ff_vorbis_encoder; -extern AVCodec ff_vorbis_decoder; -extern AVCodec ff_wavpack_encoder; -extern AVCodec ff_wavpack_decoder; -extern AVCodec ff_wmalossless_decoder; -extern AVCodec ff_wmapro_decoder; -extern AVCodec ff_wmav1_encoder; -extern AVCodec ff_wmav1_decoder; -extern AVCodec ff_wmav2_encoder; -extern AVCodec ff_wmav2_decoder; -extern AVCodec ff_wmavoice_decoder; -extern AVCodec ff_ws_snd1_decoder; -extern AVCodec ff_xma1_decoder; -extern AVCodec ff_xma2_decoder; - -/* PCM codecs */ -extern AVCodec ff_pcm_alaw_encoder; -extern AVCodec ff_pcm_alaw_decoder; -extern AVCodec ff_pcm_bluray_decoder; -extern AVCodec ff_pcm_dvd_decoder; -extern AVCodec ff_pcm_f16le_decoder; -extern AVCodec ff_pcm_f24le_decoder; -extern AVCodec ff_pcm_f32be_encoder; -extern AVCodec ff_pcm_f32be_decoder; -extern AVCodec ff_pcm_f32le_encoder; -extern AVCodec ff_pcm_f32le_decoder; -extern AVCodec ff_pcm_f64be_encoder; -extern AVCodec ff_pcm_f64be_decoder; -extern AVCodec ff_pcm_f64le_encoder; -extern AVCodec ff_pcm_f64le_decoder; -extern AVCodec ff_pcm_lxf_decoder; -extern AVCodec ff_pcm_mulaw_encoder; -extern AVCodec ff_pcm_mulaw_decoder; -extern AVCodec ff_pcm_s8_encoder; -extern AVCodec ff_pcm_s8_decoder; -extern AVCodec ff_pcm_s8_planar_encoder; -extern AVCodec ff_pcm_s8_planar_decoder; -extern AVCodec ff_pcm_s16be_encoder; -extern AVCodec ff_pcm_s16be_decoder; -extern AVCodec ff_pcm_s16be_planar_encoder; -extern AVCodec ff_pcm_s16be_planar_decoder; -extern AVCodec ff_pcm_s16le_encoder; -extern AVCodec ff_pcm_s16le_decoder; -extern AVCodec ff_pcm_s16le_planar_encoder; -extern AVCodec ff_pcm_s16le_planar_decoder; -extern AVCodec ff_pcm_s24be_encoder; -extern AVCodec ff_pcm_s24be_decoder; -extern AVCodec ff_pcm_s24daud_encoder; -extern AVCodec ff_pcm_s24daud_decoder; -extern AVCodec ff_pcm_s24le_encoder; -extern AVCodec ff_pcm_s24le_decoder; -extern AVCodec ff_pcm_s24le_planar_encoder; -extern AVCodec ff_pcm_s24le_planar_decoder; -extern AVCodec ff_pcm_s32be_encoder; -extern AVCodec ff_pcm_s32be_decoder; -extern AVCodec ff_pcm_s32le_encoder; -extern AVCodec ff_pcm_s32le_decoder; -extern AVCodec ff_pcm_s32le_planar_encoder; -extern AVCodec ff_pcm_s32le_planar_decoder; -extern AVCodec ff_pcm_s64be_encoder; -extern AVCodec ff_pcm_s64be_decoder; -extern AVCodec ff_pcm_s64le_encoder; -extern AVCodec ff_pcm_s64le_decoder; -extern AVCodec ff_pcm_u8_encoder; -extern AVCodec ff_pcm_u8_decoder; -extern AVCodec ff_pcm_u16be_encoder; -extern AVCodec ff_pcm_u16be_decoder; -extern AVCodec ff_pcm_u16le_encoder; -extern AVCodec ff_pcm_u16le_decoder; -extern AVCodec ff_pcm_u24be_encoder; -extern AVCodec ff_pcm_u24be_decoder; -extern AVCodec ff_pcm_u24le_encoder; -extern AVCodec ff_pcm_u24le_decoder; -extern AVCodec ff_pcm_u32be_encoder; -extern AVCodec ff_pcm_u32be_decoder; -extern AVCodec ff_pcm_u32le_encoder; -extern AVCodec ff_pcm_u32le_decoder; -extern AVCodec ff_pcm_zork_decoder; - -/* DPCM codecs */ -extern AVCodec ff_gremlin_dpcm_decoder; -extern AVCodec ff_interplay_dpcm_decoder; -extern AVCodec ff_roq_dpcm_encoder; -extern AVCodec ff_roq_dpcm_decoder; -extern AVCodec ff_sol_dpcm_decoder; -extern AVCodec ff_xan_dpcm_decoder; - -/* ADPCM codecs */ -extern AVCodec ff_adpcm_4xm_decoder; -extern AVCodec ff_adpcm_adx_encoder; -extern AVCodec ff_adpcm_adx_decoder; -extern AVCodec ff_adpcm_afc_decoder; -extern AVCodec ff_adpcm_aica_decoder; -extern AVCodec ff_adpcm_ct_decoder; -extern AVCodec ff_adpcm_dtk_decoder; -extern AVCodec ff_adpcm_ea_decoder; -extern AVCodec ff_adpcm_ea_maxis_xa_decoder; -extern AVCodec ff_adpcm_ea_r1_decoder; -extern AVCodec ff_adpcm_ea_r2_decoder; -extern AVCodec ff_adpcm_ea_r3_decoder; -extern AVCodec ff_adpcm_ea_xas_decoder; -extern AVCodec ff_adpcm_g722_encoder; -extern AVCodec ff_adpcm_g722_decoder; -extern AVCodec ff_adpcm_g726_encoder; -extern AVCodec ff_adpcm_g726_decoder; -extern AVCodec ff_adpcm_g726le_encoder; -extern AVCodec ff_adpcm_g726le_decoder; -extern AVCodec ff_adpcm_ima_amv_decoder; -extern AVCodec ff_adpcm_ima_apc_decoder; -extern AVCodec ff_adpcm_ima_dat4_decoder; -extern AVCodec ff_adpcm_ima_dk3_decoder; -extern AVCodec ff_adpcm_ima_dk4_decoder; -extern AVCodec ff_adpcm_ima_ea_eacs_decoder; -extern AVCodec ff_adpcm_ima_ea_sead_decoder; -extern AVCodec ff_adpcm_ima_iss_decoder; -extern AVCodec ff_adpcm_ima_oki_decoder; -extern AVCodec ff_adpcm_ima_qt_encoder; -extern AVCodec ff_adpcm_ima_qt_decoder; -extern AVCodec ff_adpcm_ima_rad_decoder; -extern AVCodec ff_adpcm_ima_smjpeg_decoder; -extern AVCodec ff_adpcm_ima_wav_encoder; -extern AVCodec ff_adpcm_ima_wav_decoder; -extern AVCodec ff_adpcm_ima_ws_decoder; -extern AVCodec ff_adpcm_ms_encoder; -extern AVCodec ff_adpcm_ms_decoder; -extern AVCodec ff_adpcm_mtaf_decoder; -extern AVCodec ff_adpcm_psx_decoder; -extern AVCodec ff_adpcm_sbpro_2_decoder; -extern AVCodec ff_adpcm_sbpro_3_decoder; -extern AVCodec ff_adpcm_sbpro_4_decoder; -extern AVCodec ff_adpcm_swf_encoder; -extern AVCodec ff_adpcm_swf_decoder; -extern AVCodec ff_adpcm_thp_decoder; -extern AVCodec ff_adpcm_thp_le_decoder; -extern AVCodec ff_adpcm_vima_decoder; -extern AVCodec ff_adpcm_xa_decoder; -extern AVCodec ff_adpcm_yamaha_encoder; -extern AVCodec ff_adpcm_yamaha_decoder; - -/* subtitles */ -extern AVCodec ff_ssa_encoder; -extern AVCodec ff_ssa_decoder; -extern AVCodec ff_ass_encoder; -extern AVCodec ff_ass_decoder; -extern AVCodec ff_ccaption_decoder; -extern AVCodec ff_dvbsub_encoder; -extern AVCodec ff_dvbsub_decoder; -extern AVCodec ff_dvdsub_encoder; -extern AVCodec ff_dvdsub_decoder; -extern AVCodec ff_jacosub_decoder; -extern AVCodec ff_microdvd_decoder; -extern AVCodec ff_movtext_encoder; -extern AVCodec ff_movtext_decoder; -extern AVCodec ff_mpl2_decoder; -extern AVCodec ff_pgssub_decoder; -extern AVCodec ff_pjs_decoder; -extern AVCodec ff_realtext_decoder; -extern AVCodec ff_sami_decoder; -extern AVCodec ff_srt_encoder; -extern AVCodec ff_srt_decoder; -extern AVCodec ff_stl_decoder; -extern AVCodec ff_subrip_encoder; -extern AVCodec ff_subrip_decoder; -extern AVCodec ff_subviewer_decoder; -extern AVCodec ff_subviewer1_decoder; -extern AVCodec ff_text_encoder; -extern AVCodec ff_text_decoder; -extern AVCodec ff_vplayer_decoder; -extern AVCodec ff_webvtt_encoder; -extern AVCodec ff_webvtt_decoder; -extern AVCodec ff_xsub_encoder; -extern AVCodec ff_xsub_decoder; - -/* external libraries */ -extern AVCodec ff_aac_at_encoder; -extern AVCodec ff_aac_at_decoder; -extern AVCodec ff_ac3_at_decoder; -extern AVCodec ff_adpcm_ima_qt_at_decoder; -extern AVCodec ff_alac_at_encoder; -extern AVCodec ff_alac_at_decoder; -extern AVCodec ff_amr_nb_at_decoder; -extern AVCodec ff_eac3_at_decoder; -extern AVCodec ff_gsm_ms_at_decoder; -extern AVCodec ff_ilbc_at_encoder; -extern AVCodec ff_ilbc_at_decoder; -extern AVCodec ff_mp1_at_decoder; -extern AVCodec ff_mp2_at_decoder; -extern AVCodec ff_mp3_at_decoder; -extern AVCodec ff_pcm_alaw_at_encoder; -extern AVCodec ff_pcm_alaw_at_decoder; -extern AVCodec ff_pcm_mulaw_at_encoder; -extern AVCodec ff_pcm_mulaw_at_decoder; -extern AVCodec ff_qdmc_at_decoder; -extern AVCodec ff_qdm2_at_decoder; -extern AVCodec ff_libaom_av1_decoder; -extern AVCodec ff_libaom_av1_encoder; -extern AVCodec ff_libcelt_decoder; -extern AVCodec ff_libcodec2_encoder; -extern AVCodec ff_libcodec2_decoder; -extern AVCodec ff_libfdk_aac_encoder; -extern AVCodec ff_libfdk_aac_decoder; -extern AVCodec ff_libgsm_encoder; -extern AVCodec ff_libgsm_decoder; -extern AVCodec ff_libgsm_ms_encoder; -extern AVCodec ff_libgsm_ms_decoder; -extern AVCodec ff_libilbc_encoder; -extern AVCodec ff_libilbc_decoder; -extern AVCodec ff_libmp3lame_encoder; -extern AVCodec ff_libopencore_amrnb_encoder; -extern AVCodec ff_libopencore_amrnb_decoder; -extern AVCodec ff_libopencore_amrwb_decoder; -extern AVCodec ff_libopenjpeg_encoder; -extern AVCodec ff_libopenjpeg_decoder; -extern AVCodec ff_libopus_encoder; -extern AVCodec ff_libopus_decoder; -extern AVCodec ff_librsvg_decoder; -extern AVCodec ff_libshine_encoder; -extern AVCodec ff_libspeex_encoder; -extern AVCodec ff_libspeex_decoder; -extern AVCodec ff_libtheora_encoder; -extern AVCodec ff_libtwolame_encoder; -extern AVCodec ff_libvo_amrwbenc_encoder; -extern AVCodec ff_libvorbis_encoder; -extern AVCodec ff_libvorbis_decoder; -extern AVCodec ff_libvpx_vp8_encoder; -extern AVCodec ff_libvpx_vp8_decoder; -extern AVCodec ff_libvpx_vp9_encoder; -extern AVCodec ff_libvpx_vp9_decoder; -extern AVCodec ff_libwavpack_encoder; -/* preferred over libwebp */ -extern AVCodec ff_libwebp_anim_encoder; -extern AVCodec ff_libwebp_encoder; -extern AVCodec ff_libx262_encoder; -extern AVCodec ff_libx264_encoder; -extern AVCodec ff_libx264rgb_encoder; -extern AVCodec ff_libx265_encoder; -extern AVCodec ff_libxavs_encoder; -extern AVCodec ff_libxvid_encoder; -extern AVCodec ff_libzvbi_teletext_decoder; - -/* text */ -extern AVCodec ff_bintext_decoder; -extern AVCodec ff_xbin_decoder; -extern AVCodec ff_idf_decoder; - -/* external libraries, that shouldn't be used by default if one of the - * above is available */ -extern AVCodec ff_h263_v4l2m2m_encoder; -extern AVCodec ff_libopenh264_encoder; -extern AVCodec ff_libopenh264_decoder; -extern AVCodec ff_h264_amf_encoder; -extern AVCodec ff_h264_cuvid_decoder; -extern AVCodec ff_h264_nvenc_encoder; -extern AVCodec ff_h264_omx_encoder; -extern AVCodec ff_h264_qsv_encoder; -extern AVCodec ff_h264_v4l2m2m_encoder; -extern AVCodec ff_h264_vaapi_encoder; -extern AVCodec ff_h264_videotoolbox_encoder; -#if FF_API_NVENC_OLD_NAME -extern AVCodec ff_nvenc_encoder; -extern AVCodec ff_nvenc_h264_encoder; -extern AVCodec ff_nvenc_hevc_encoder; -#endif -extern AVCodec ff_hevc_amf_encoder; -extern AVCodec ff_hevc_cuvid_decoder; -extern AVCodec ff_hevc_mediacodec_decoder; -extern AVCodec ff_hevc_nvenc_encoder; -extern AVCodec ff_hevc_qsv_encoder; -extern AVCodec ff_hevc_v4l2m2m_encoder; -extern AVCodec ff_hevc_vaapi_encoder; -extern AVCodec ff_hevc_videotoolbox_encoder; -extern AVCodec ff_libkvazaar_encoder; -extern AVCodec ff_mjpeg_cuvid_decoder; -extern AVCodec ff_mjpeg_qsv_encoder; -extern AVCodec ff_mjpeg_vaapi_encoder; -extern AVCodec ff_mpeg1_cuvid_decoder; -extern AVCodec ff_mpeg2_cuvid_decoder; -extern AVCodec ff_mpeg2_qsv_encoder; -extern AVCodec ff_mpeg2_vaapi_encoder; -extern AVCodec ff_mpeg4_cuvid_decoder; -extern AVCodec ff_mpeg4_mediacodec_decoder; -extern AVCodec ff_mpeg4_v4l2m2m_encoder; -extern AVCodec ff_vc1_cuvid_decoder; -extern AVCodec ff_vp8_cuvid_decoder; -extern AVCodec ff_vp8_mediacodec_decoder; -extern AVCodec ff_vp8_qsv_decoder; -extern AVCodec ff_vp8_v4l2m2m_encoder; -extern AVCodec ff_vp8_vaapi_encoder; -extern AVCodec ff_vp9_cuvid_decoder; -extern AVCodec ff_vp9_mediacodec_decoder; -extern AVCodec ff_vp9_vaapi_encoder; - -#include "libavcodec/codec_list.c" - -static AVOnce av_codec_static_init = AV_ONCE_INIT; -static void av_codec_init_static(void) -{ - for (int i = 0; codec_list[i]; i++) { - if (codec_list[i]->init_static_data) - codec_list[i]->init_static_data((AVCodec*)codec_list[i]); +#define REGISTER_HWACCEL(X, x) \ + { \ + extern AVHWAccel ff_##x##_hwaccel; \ + if (CONFIG_##X##_HWACCEL) \ + av_register_hwaccel(&ff_##x##_hwaccel); \ } -} - -const AVCodec *av_codec_iterate(void **opaque) -{ - uintptr_t i = (uintptr_t)*opaque; - const AVCodec *c = codec_list[i]; - ff_thread_once(&av_codec_static_init, av_codec_init_static); - - if (c) - *opaque = (void*)(i + 1); - - return c; -} - -#if FF_API_NEXT -FF_DISABLE_DEPRECATION_WARNINGS -static AVOnce av_codec_next_init = AV_ONCE_INIT; - -static void av_codec_init_next(void) -{ - AVCodec *prev = NULL, *p; - void *i = 0; - while ((p = (AVCodec*)av_codec_iterate(&i))) { - if (prev) - prev->next = p; - prev = p; +#define REGISTER_ENCODER(X, x) \ + { \ + extern AVCodec ff_##x##_encoder; \ + if (CONFIG_##X##_ENCODER) \ + avcodec_register(&ff_##x##_encoder); \ } -} - - - -av_cold void avcodec_register(AVCodec *codec) -{ - ff_thread_once(&av_codec_next_init, av_codec_init_next); -} - -AVCodec *av_codec_next(const AVCodec *c) -{ - ff_thread_once(&av_codec_next_init, av_codec_init_next); - - if (c) - return c->next; - else - return (AVCodec*)codec_list[0]; -} -void avcodec_register_all(void) -{ - ff_thread_once(&av_codec_next_init, av_codec_init_next); -} -FF_ENABLE_DEPRECATION_WARNINGS -#endif - -static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id) -{ - switch(id){ - //This is for future deprecatec codec ids, its empty since - //last major bump but will fill up again over time, please don't remove it - default : return id; +#define REGISTER_DECODER(X, x) \ + { \ + extern AVCodec ff_##x##_decoder; \ + if (CONFIG_##X##_DECODER) \ + avcodec_register(&ff_##x##_decoder); \ } -} - -static AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *)) -{ - const AVCodec *p, *experimental = NULL; - void *i = 0; - id = remap_deprecated_codec_id(id); +#define REGISTER_ENCDEC(X, x) REGISTER_ENCODER(X, x); REGISTER_DECODER(X, x) - while ((p = av_codec_iterate(&i))) { - if (!x(p)) - continue; - if (p->id == id) { - if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) { - experimental = p; - } else - return (AVCodec*)p; - } +#define REGISTER_PARSER(X, x) \ + { \ + extern AVCodecParser ff_##x##_parser; \ + if (CONFIG_##X##_PARSER) \ + av_register_codec_parser(&ff_##x##_parser); \ } - return (AVCodec*)experimental; -} - -AVCodec *avcodec_find_encoder(enum AVCodecID id) -{ - return find_codec(id, av_codec_is_encoder); -} - -AVCodec *avcodec_find_decoder(enum AVCodecID id) +static void register_all(void) { - return find_codec(id, av_codec_is_decoder); -} - -static AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *)) -{ - void *i = 0; - const AVCodec *p; - - if (!name) - return NULL; - - while ((p = av_codec_iterate(&i))) { - if (!x(p)) - continue; - if (strcmp(name, p->name) == 0) - return (AVCodec*)p; - } - - return NULL; + /* hardware accelerators */ + REGISTER_HWACCEL(H263_VAAPI, h263_vaapi); + REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox); + REGISTER_HWACCEL(H264_CUVID, h264_cuvid); + REGISTER_HWACCEL(H264_D3D11VA, h264_d3d11va); + REGISTER_HWACCEL(H264_D3D11VA2, h264_d3d11va2); + REGISTER_HWACCEL(H264_DXVA2, h264_dxva2); + REGISTER_HWACCEL(H264_MEDIACODEC, h264_mediacodec); + REGISTER_HWACCEL(H264_MMAL, h264_mmal); + REGISTER_HWACCEL(H264_QSV, h264_qsv); + REGISTER_HWACCEL(H264_VAAPI, h264_vaapi); + REGISTER_HWACCEL(H264_VDA, h264_vda); + REGISTER_HWACCEL(H264_VDA_OLD, h264_vda_old); + REGISTER_HWACCEL(H264_VDPAU, h264_vdpau); + REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox); + REGISTER_HWACCEL(HEVC_CUVID, hevc_cuvid); + REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va); + REGISTER_HWACCEL(HEVC_D3D11VA2, hevc_d3d11va2); + REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2); + REGISTER_HWACCEL(HEVC_MEDIACODEC, hevc_mediacodec); + REGISTER_HWACCEL(HEVC_QSV, hevc_qsv); + REGISTER_HWACCEL(HEVC_VAAPI, hevc_vaapi); + REGISTER_HWACCEL(HEVC_VDPAU, hevc_vdpau); + REGISTER_HWACCEL(HEVC_VIDEOTOOLBOX, hevc_videotoolbox); + REGISTER_HWACCEL(MJPEG_CUVID, mjpeg_cuvid); + REGISTER_HWACCEL(MPEG1_CUVID, mpeg1_cuvid); + REGISTER_HWACCEL(MPEG1_XVMC, mpeg1_xvmc); + REGISTER_HWACCEL(MPEG1_VDPAU, mpeg1_vdpau); + REGISTER_HWACCEL(MPEG1_VIDEOTOOLBOX, mpeg1_videotoolbox); + REGISTER_HWACCEL(MPEG2_CUVID, mpeg2_cuvid); + REGISTER_HWACCEL(MPEG2_XVMC, mpeg2_xvmc); + REGISTER_HWACCEL(MPEG2_D3D11VA, mpeg2_d3d11va); + REGISTER_HWACCEL(MPEG2_D3D11VA2, mpeg2_d3d11va2); + REGISTER_HWACCEL(MPEG2_DXVA2, mpeg2_dxva2); + REGISTER_HWACCEL(MPEG2_MMAL, mpeg2_mmal); + REGISTER_HWACCEL(MPEG2_QSV, mpeg2_qsv); + REGISTER_HWACCEL(MPEG2_VAAPI, mpeg2_vaapi); + REGISTER_HWACCEL(MPEG2_VDPAU, mpeg2_vdpau); + REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox); + REGISTER_HWACCEL(MPEG2_MEDIACODEC, mpeg2_mediacodec); + REGISTER_HWACCEL(MPEG4_CUVID, mpeg4_cuvid); + REGISTER_HWACCEL(MPEG4_MEDIACODEC, mpeg4_mediacodec); + REGISTER_HWACCEL(MPEG4_MMAL, mpeg4_mmal); + REGISTER_HWACCEL(MPEG4_VAAPI, mpeg4_vaapi); + REGISTER_HWACCEL(MPEG4_VDPAU, mpeg4_vdpau); + REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox); + REGISTER_HWACCEL(VC1_CUVID, vc1_cuvid); + REGISTER_HWACCEL(VC1_D3D11VA, vc1_d3d11va); + REGISTER_HWACCEL(VC1_D3D11VA2, vc1_d3d11va2); + REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2); + REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi); + REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau); + REGISTER_HWACCEL(VC1_MMAL, vc1_mmal); + REGISTER_HWACCEL(VC1_QSV, vc1_qsv); + REGISTER_HWACCEL(VP8_CUVID, vp8_cuvid); + REGISTER_HWACCEL(VP8_MEDIACODEC, vp8_mediacodec); + REGISTER_HWACCEL(VP8_QSV, vp8_qsv); + REGISTER_HWACCEL(VP9_CUVID, vp9_cuvid); + REGISTER_HWACCEL(VP9_D3D11VA, vp9_d3d11va); + REGISTER_HWACCEL(VP9_D3D11VA2, vp9_d3d11va2); + REGISTER_HWACCEL(VP9_DXVA2, vp9_dxva2); + REGISTER_HWACCEL(VP9_MEDIACODEC, vp9_mediacodec); + REGISTER_HWACCEL(VP9_VAAPI, vp9_vaapi); + REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va); + REGISTER_HWACCEL(WMV3_D3D11VA2, wmv3_d3d11va2); + REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2); + REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi); + REGISTER_HWACCEL(WMV3_VDPAU, wmv3_vdpau); + + /* video codecs */ + REGISTER_ENCODER(A64MULTI, a64multi); + REGISTER_ENCODER(A64MULTI5, a64multi5); + REGISTER_DECODER(AASC, aasc); + REGISTER_DECODER(AIC, aic); + REGISTER_ENCDEC (ALIAS_PIX, alias_pix); + REGISTER_ENCDEC (AMV, amv); + REGISTER_DECODER(ANM, anm); + REGISTER_DECODER(ANSI, ansi); + REGISTER_ENCDEC (APNG, apng); + REGISTER_ENCDEC (ASV1, asv1); + REGISTER_ENCDEC (ASV2, asv2); + REGISTER_DECODER(AURA, aura); + REGISTER_DECODER(AURA2, aura2); + REGISTER_ENCDEC (AVRP, avrp); + REGISTER_DECODER(AVRN, avrn); + REGISTER_DECODER(AVS, avs); + REGISTER_ENCDEC (AVUI, avui); + REGISTER_ENCDEC (AYUV, ayuv); + REGISTER_DECODER(BETHSOFTVID, bethsoftvid); + REGISTER_DECODER(BFI, bfi); + REGISTER_DECODER(BINK, bink); + REGISTER_ENCDEC (BMP, bmp); + REGISTER_DECODER(BMV_VIDEO, bmv_video); + REGISTER_DECODER(BRENDER_PIX, brender_pix); + REGISTER_DECODER(C93, c93); + REGISTER_DECODER(CAVS, cavs); + REGISTER_DECODER(CDGRAPHICS, cdgraphics); + REGISTER_DECODER(CDXL, cdxl); + REGISTER_DECODER(CFHD, cfhd); + REGISTER_ENCDEC (CINEPAK, cinepak); + REGISTER_DECODER(CLEARVIDEO, clearvideo); + REGISTER_ENCDEC (CLJR, cljr); + REGISTER_DECODER(CLLC, cllc); + REGISTER_ENCDEC (COMFORTNOISE, comfortnoise); + REGISTER_DECODER(CPIA, cpia); + REGISTER_DECODER(CSCD, cscd); + REGISTER_DECODER(CYUV, cyuv); + REGISTER_DECODER(DDS, dds); + REGISTER_DECODER(DFA, dfa); + REGISTER_DECODER(DIRAC, dirac); + REGISTER_ENCDEC (DNXHD, dnxhd); + REGISTER_ENCDEC (DPX, dpx); + REGISTER_DECODER(DSICINVIDEO, dsicinvideo); + REGISTER_DECODER(DVAUDIO, dvaudio); + REGISTER_ENCDEC (DVVIDEO, dvvideo); + REGISTER_DECODER(DXA, dxa); + REGISTER_DECODER(DXTORY, dxtory); + REGISTER_DECODER(DXV, dxv); + REGISTER_DECODER(EACMV, eacmv); + REGISTER_DECODER(EAMAD, eamad); + REGISTER_DECODER(EATGQ, eatgq); + REGISTER_DECODER(EATGV, eatgv); + REGISTER_DECODER(EATQI, eatqi); + REGISTER_DECODER(EIGHTBPS, eightbps); + REGISTER_DECODER(EIGHTSVX_EXP, eightsvx_exp); + REGISTER_DECODER(EIGHTSVX_FIB, eightsvx_fib); + REGISTER_DECODER(ESCAPE124, escape124); + REGISTER_DECODER(ESCAPE130, escape130); + REGISTER_DECODER(EXR, exr); + REGISTER_ENCDEC (FFV1, ffv1); + REGISTER_ENCDEC (FFVHUFF, ffvhuff); + REGISTER_DECODER(FIC, fic); + REGISTER_ENCDEC (FITS, fits); + REGISTER_ENCDEC (FLASHSV, flashsv); + REGISTER_ENCDEC (FLASHSV2, flashsv2); + REGISTER_DECODER(FLIC, flic); + REGISTER_ENCDEC (FLV, flv); + REGISTER_DECODER(FMVC, fmvc); + REGISTER_DECODER(FOURXM, fourxm); + REGISTER_DECODER(FRAPS, fraps); + REGISTER_DECODER(FRWU, frwu); + REGISTER_DECODER(G2M, g2m); + REGISTER_DECODER(GDV, gdv); + REGISTER_ENCDEC (GIF, gif); + REGISTER_ENCDEC (H261, h261); + REGISTER_ENCDEC (H263, h263); + REGISTER_DECODER(H263I, h263i); + REGISTER_ENCDEC (H263P, h263p); + REGISTER_DECODER(H263_V4L2M2M, h263_v4l2m2m); + REGISTER_DECODER(H264, h264); + REGISTER_DECODER(H264_CRYSTALHD, h264_crystalhd); + REGISTER_DECODER(H264_V4L2M2M, h264_v4l2m2m); + REGISTER_DECODER(H264_MEDIACODEC, h264_mediacodec); + REGISTER_DECODER(H264_MMAL, h264_mmal); + REGISTER_DECODER(H264_QSV, h264_qsv); + REGISTER_DECODER(H264_RKMPP, h264_rkmpp); + REGISTER_DECODER(H264_VDA, h264_vda); +#if FF_API_VDPAU + REGISTER_DECODER(H264_VDPAU, h264_vdpau); +#endif + REGISTER_ENCDEC (HAP, hap); + REGISTER_DECODER(HEVC, hevc); + REGISTER_DECODER(HEVC_QSV, hevc_qsv); + REGISTER_DECODER(HEVC_RKMPP, hevc_rkmpp); + REGISTER_DECODER(HEVC_V4L2M2M, hevc_v4l2m2m); + REGISTER_DECODER(HNM4_VIDEO, hnm4_video); + REGISTER_DECODER(HQ_HQA, hq_hqa); + REGISTER_DECODER(HQX, hqx); + REGISTER_ENCDEC (HUFFYUV, huffyuv); + REGISTER_DECODER(IDCIN, idcin); + REGISTER_DECODER(IFF_ILBM, iff_ilbm); + REGISTER_DECODER(INDEO2, indeo2); + REGISTER_DECODER(INDEO3, indeo3); + REGISTER_DECODER(INDEO4, indeo4); + REGISTER_DECODER(INDEO5, indeo5); + REGISTER_DECODER(INTERPLAY_VIDEO, interplay_video); + REGISTER_ENCDEC (JPEG2000, jpeg2000); + REGISTER_ENCDEC (JPEGLS, jpegls); + REGISTER_DECODER(JV, jv); + REGISTER_DECODER(KGV1, kgv1); + REGISTER_DECODER(KMVC, kmvc); + REGISTER_DECODER(LAGARITH, lagarith); + REGISTER_ENCODER(LJPEG, ljpeg); + REGISTER_DECODER(LOCO, loco); + REGISTER_DECODER(M101, m101); + REGISTER_DECODER(MAGICYUV, magicyuv); + REGISTER_DECODER(MDEC, mdec); + REGISTER_DECODER(MIMIC, mimic); + REGISTER_ENCDEC (MJPEG, mjpeg); + REGISTER_DECODER(MJPEGB, mjpegb); + REGISTER_DECODER(MMVIDEO, mmvideo); + REGISTER_DECODER(MOTIONPIXELS, motionpixels); +#if FF_API_XVMC + REGISTER_DECODER(MPEG_XVMC, mpeg_xvmc); +#endif /* FF_API_XVMC */ + REGISTER_ENCDEC (MPEG1VIDEO, mpeg1video); + REGISTER_ENCDEC (MPEG2VIDEO, mpeg2video); + REGISTER_ENCDEC (MPEG4, mpeg4); + REGISTER_DECODER(MPEG4_CRYSTALHD, mpeg4_crystalhd); + REGISTER_DECODER(MPEG4_V4L2M2M, mpeg4_v4l2m2m); + REGISTER_DECODER(MPEG4_MMAL, mpeg4_mmal); +#if FF_API_VDPAU + REGISTER_DECODER(MPEG4_VDPAU, mpeg4_vdpau); +#endif + REGISTER_DECODER(MPEGVIDEO, mpegvideo); +#if FF_API_VDPAU + REGISTER_DECODER(MPEG_VDPAU, mpeg_vdpau); + REGISTER_DECODER(MPEG1_VDPAU, mpeg1_vdpau); +#endif + REGISTER_DECODER(MPEG1_V4L2M2M, mpeg1_v4l2m2m); + REGISTER_DECODER(MPEG2_MMAL, mpeg2_mmal); + REGISTER_DECODER(MPEG2_CRYSTALHD, mpeg2_crystalhd); + REGISTER_DECODER(MPEG2_V4L2M2M, mpeg2_v4l2m2m); + REGISTER_DECODER(MPEG2_QSV, mpeg2_qsv); + REGISTER_DECODER(MPEG2_MEDIACODEC, mpeg2_mediacodec); + REGISTER_DECODER(MSA1, msa1); + REGISTER_DECODER(MSCC, mscc); + REGISTER_DECODER(MSMPEG4V1, msmpeg4v1); + REGISTER_ENCDEC (MSMPEG4V2, msmpeg4v2); + REGISTER_ENCDEC (MSMPEG4V3, msmpeg4v3); + REGISTER_DECODER(MSMPEG4_CRYSTALHD, msmpeg4_crystalhd); + REGISTER_DECODER(MSRLE, msrle); + REGISTER_DECODER(MSS1, mss1); + REGISTER_DECODER(MSS2, mss2); + REGISTER_ENCDEC (MSVIDEO1, msvideo1); + REGISTER_DECODER(MSZH, mszh); + REGISTER_DECODER(MTS2, mts2); + REGISTER_DECODER(MVC1, mvc1); + REGISTER_DECODER(MVC2, mvc2); + REGISTER_DECODER(MXPEG, mxpeg); + REGISTER_DECODER(NUV, nuv); + REGISTER_DECODER(PAF_VIDEO, paf_video); + REGISTER_ENCDEC (PAM, pam); + REGISTER_ENCDEC (PBM, pbm); + REGISTER_ENCDEC (PCX, pcx); + REGISTER_ENCDEC (PGM, pgm); + REGISTER_ENCDEC (PGMYUV, pgmyuv); + REGISTER_DECODER(PICTOR, pictor); + REGISTER_DECODER(PIXLET, pixlet); + REGISTER_ENCDEC (PNG, png); + REGISTER_ENCDEC (PPM, ppm); + REGISTER_ENCDEC (PRORES, prores); + REGISTER_ENCODER(PRORES_AW, prores_aw); + REGISTER_ENCODER(PRORES_KS, prores_ks); + REGISTER_DECODER(PRORES_LGPL, prores_lgpl); + REGISTER_DECODER(PSD, psd); + REGISTER_DECODER(PTX, ptx); + REGISTER_DECODER(QDRAW, qdraw); + REGISTER_DECODER(QPEG, qpeg); + REGISTER_ENCDEC (QTRLE, qtrle); + REGISTER_ENCDEC (R10K, r10k); + REGISTER_ENCDEC (R210, r210); + REGISTER_ENCDEC (RAWVIDEO, rawvideo); + REGISTER_DECODER(RL2, rl2); + REGISTER_ENCDEC (ROQ, roq); + REGISTER_DECODER(RPZA, rpza); + REGISTER_DECODER(RSCC, rscc); + REGISTER_ENCDEC (RV10, rv10); + REGISTER_ENCDEC (RV20, rv20); + REGISTER_DECODER(RV30, rv30); + REGISTER_DECODER(RV40, rv40); + REGISTER_ENCDEC (S302M, s302m); + REGISTER_DECODER(SANM, sanm); + REGISTER_DECODER(SCPR, scpr); + REGISTER_DECODER(SCREENPRESSO, screenpresso); + REGISTER_DECODER(SDX2_DPCM, sdx2_dpcm); + REGISTER_ENCDEC (SGI, sgi); + REGISTER_DECODER(SGIRLE, sgirle); + REGISTER_DECODER(SHEERVIDEO, sheervideo); + REGISTER_DECODER(SMACKER, smacker); + REGISTER_DECODER(SMC, smc); + REGISTER_DECODER(SMVJPEG, smvjpeg); + REGISTER_ENCDEC (SNOW, snow); + REGISTER_DECODER(SP5X, sp5x); + REGISTER_DECODER(SPEEDHQ, speedhq); + REGISTER_DECODER(SRGC, srgc); + REGISTER_ENCDEC (SUNRAST, sunrast); + REGISTER_ENCDEC (SVQ1, svq1); + REGISTER_DECODER(SVQ3, svq3); + REGISTER_ENCDEC (TARGA, targa); + REGISTER_DECODER(TARGA_Y216, targa_y216); + REGISTER_DECODER(TDSC, tdsc); + REGISTER_DECODER(THEORA, theora); + REGISTER_DECODER(THP, thp); + REGISTER_DECODER(TIERTEXSEQVIDEO, tiertexseqvideo); + REGISTER_ENCDEC (TIFF, tiff); + REGISTER_DECODER(TMV, tmv); + REGISTER_DECODER(TRUEMOTION1, truemotion1); + REGISTER_DECODER(TRUEMOTION2, truemotion2); + REGISTER_DECODER(TRUEMOTION2RT, truemotion2rt); + REGISTER_DECODER(TSCC, tscc); + REGISTER_DECODER(TSCC2, tscc2); + REGISTER_DECODER(TXD, txd); + REGISTER_DECODER(ULTI, ulti); + REGISTER_ENCDEC (UTVIDEO, utvideo); + REGISTER_ENCDEC (V210, v210); + REGISTER_DECODER(V210X, v210x); + REGISTER_ENCDEC (V308, v308); + REGISTER_ENCDEC (V408, v408); + REGISTER_ENCDEC (V410, v410); + REGISTER_DECODER(VB, vb); + REGISTER_DECODER(VBLE, vble); + REGISTER_DECODER(VC1, vc1); + REGISTER_DECODER(VC1_CRYSTALHD, vc1_crystalhd); +#if FF_API_VDPAU + REGISTER_DECODER(VC1_VDPAU, vc1_vdpau); +#endif + REGISTER_DECODER(VC1IMAGE, vc1image); + REGISTER_DECODER(VC1_MMAL, vc1_mmal); + REGISTER_DECODER(VC1_QSV, vc1_qsv); + REGISTER_DECODER(VC1_V4L2M2M, vc1_v4l2m2m); + REGISTER_ENCODER(VC2, vc2); + REGISTER_DECODER(VCR1, vcr1); + REGISTER_DECODER(VMDVIDEO, vmdvideo); + REGISTER_DECODER(VMNC, vmnc); + REGISTER_DECODER(VP3, vp3); + REGISTER_DECODER(VP5, vp5); + REGISTER_DECODER(VP6, vp6); + REGISTER_DECODER(VP6A, vp6a); + REGISTER_DECODER(VP6F, vp6f); + REGISTER_DECODER(VP7, vp7); + REGISTER_DECODER(VP8, vp8); + REGISTER_DECODER(VP8_RKMPP, vp8_rkmpp); + REGISTER_DECODER(VP8_V4L2M2M, vp8_v4l2m2m); + REGISTER_DECODER(VP9, vp9); + REGISTER_DECODER(VP9_RKMPP, vp9_rkmpp); + REGISTER_DECODER(VP9_V4L2M2M, vp9_v4l2m2m); + REGISTER_DECODER(VQA, vqa); + REGISTER_DECODER(BITPACKED, bitpacked); + REGISTER_DECODER(WEBP, webp); + REGISTER_ENCDEC (WRAPPED_AVFRAME, wrapped_avframe); + REGISTER_ENCDEC (WMV1, wmv1); + REGISTER_ENCDEC (WMV2, wmv2); + REGISTER_DECODER(WMV3, wmv3); + REGISTER_DECODER(WMV3_CRYSTALHD, wmv3_crystalhd); +#if FF_API_VDPAU + REGISTER_DECODER(WMV3_VDPAU, wmv3_vdpau); +#endif + REGISTER_DECODER(WMV3IMAGE, wmv3image); + REGISTER_DECODER(WNV1, wnv1); + REGISTER_DECODER(XAN_WC3, xan_wc3); + REGISTER_DECODER(XAN_WC4, xan_wc4); + REGISTER_ENCDEC (XBM, xbm); + REGISTER_ENCDEC (XFACE, xface); + REGISTER_DECODER(XL, xl); + REGISTER_DECODER(XPM, xpm); + REGISTER_ENCDEC (XWD, xwd); + REGISTER_ENCDEC (Y41P, y41p); + REGISTER_DECODER(YLC, ylc); + REGISTER_DECODER(YOP, yop); + REGISTER_ENCDEC (YUV4, yuv4); + REGISTER_DECODER(ZERO12V, zero12v); + REGISTER_DECODER(ZEROCODEC, zerocodec); + REGISTER_ENCDEC (ZLIB, zlib); + REGISTER_ENCDEC (ZMBV, zmbv); + + /* audio codecs */ + REGISTER_ENCDEC (AAC, aac); + REGISTER_DECODER(AAC_FIXED, aac_fixed); + REGISTER_DECODER(AAC_LATM, aac_latm); + REGISTER_ENCDEC (AC3, ac3); + REGISTER_ENCDEC (AC3_FIXED, ac3_fixed); + REGISTER_ENCDEC (ALAC, alac); + REGISTER_DECODER(ALS, als); + REGISTER_DECODER(AMRNB, amrnb); + REGISTER_DECODER(AMRWB, amrwb); + REGISTER_DECODER(APE, ape); + REGISTER_DECODER(ATRAC1, atrac1); + REGISTER_DECODER(ATRAC3, atrac3); + REGISTER_DECODER(ATRAC3AL, atrac3al); + REGISTER_DECODER(ATRAC3P, atrac3p); + REGISTER_DECODER(ATRAC3PAL, atrac3pal); + REGISTER_DECODER(BINKAUDIO_DCT, binkaudio_dct); + REGISTER_DECODER(BINKAUDIO_RDFT, binkaudio_rdft); + REGISTER_DECODER(BMV_AUDIO, bmv_audio); + REGISTER_DECODER(COOK, cook); + REGISTER_ENCDEC (DCA, dca); + REGISTER_DECODER(DOLBY_E, dolby_e); + REGISTER_DECODER(DSD_LSBF, dsd_lsbf); + REGISTER_DECODER(DSD_MSBF, dsd_msbf); + REGISTER_DECODER(DSD_LSBF_PLANAR, dsd_lsbf_planar); + REGISTER_DECODER(DSD_MSBF_PLANAR, dsd_msbf_planar); + REGISTER_DECODER(DSICINAUDIO, dsicinaudio); + REGISTER_DECODER(DSS_SP, dss_sp); + REGISTER_DECODER(DST, dst); + REGISTER_ENCDEC (EAC3, eac3); + REGISTER_DECODER(EVRC, evrc); + REGISTER_DECODER(FFWAVESYNTH, ffwavesynth); + REGISTER_ENCDEC (FLAC, flac); + REGISTER_ENCDEC (G723_1, g723_1); + REGISTER_DECODER(G729, g729); + REGISTER_DECODER(GSM, gsm); + REGISTER_DECODER(GSM_MS, gsm_ms); + REGISTER_DECODER(IAC, iac); + REGISTER_DECODER(IMC, imc); + REGISTER_DECODER(INTERPLAY_ACM, interplay_acm); + REGISTER_DECODER(MACE3, mace3); + REGISTER_DECODER(MACE6, mace6); + REGISTER_DECODER(METASOUND, metasound); + REGISTER_ENCDEC (MLP, mlp); + REGISTER_DECODER(MP1, mp1); + REGISTER_DECODER(MP1FLOAT, mp1float); + REGISTER_ENCDEC (MP2, mp2); + REGISTER_DECODER(MP2FLOAT, mp2float); + REGISTER_ENCODER(MP2FIXED, mp2fixed); + REGISTER_DECODER(MP3, mp3); + REGISTER_DECODER(MP3FLOAT, mp3float); + REGISTER_DECODER(MP3ADU, mp3adu); + REGISTER_DECODER(MP3ADUFLOAT, mp3adufloat); + REGISTER_DECODER(MP3ON4, mp3on4); + REGISTER_DECODER(MP3ON4FLOAT, mp3on4float); + REGISTER_DECODER(MPC7, mpc7); + REGISTER_DECODER(MPC8, mpc8); + REGISTER_ENCDEC (NELLYMOSER, nellymoser); + REGISTER_DECODER(ON2AVC, on2avc); + REGISTER_ENCDEC (OPUS, opus); + REGISTER_DECODER(PAF_AUDIO, paf_audio); + REGISTER_DECODER(QCELP, qcelp); + REGISTER_DECODER(QDM2, qdm2); + REGISTER_DECODER(QDMC, qdmc); + REGISTER_ENCDEC (RA_144, ra_144); + REGISTER_DECODER(RA_288, ra_288); + REGISTER_DECODER(RALF, ralf); + REGISTER_DECODER(SHORTEN, shorten); + REGISTER_DECODER(SIPR, sipr); + REGISTER_DECODER(SMACKAUD, smackaud); + REGISTER_ENCDEC (SONIC, sonic); + REGISTER_ENCODER(SONIC_LS, sonic_ls); + REGISTER_DECODER(TAK, tak); + REGISTER_ENCDEC (TRUEHD, truehd); + REGISTER_DECODER(TRUESPEECH, truespeech); + REGISTER_ENCDEC (TTA, tta); + REGISTER_DECODER(TWINVQ, twinvq); + REGISTER_DECODER(VMDAUDIO, vmdaudio); + REGISTER_ENCDEC (VORBIS, vorbis); + REGISTER_ENCDEC (WAVPACK, wavpack); + REGISTER_DECODER(WMALOSSLESS, wmalossless); + REGISTER_DECODER(WMAPRO, wmapro); + REGISTER_ENCDEC (WMAV1, wmav1); + REGISTER_ENCDEC (WMAV2, wmav2); + REGISTER_DECODER(WMAVOICE, wmavoice); + REGISTER_DECODER(WS_SND1, ws_snd1); + REGISTER_DECODER(XMA1, xma1); + REGISTER_DECODER(XMA2, xma2); + + /* PCM codecs */ + REGISTER_ENCDEC (PCM_ALAW, pcm_alaw); + REGISTER_DECODER(PCM_BLURAY, pcm_bluray); + REGISTER_DECODER(PCM_DVD, pcm_dvd); + REGISTER_DECODER(PCM_F16LE, pcm_f16le); + REGISTER_DECODER(PCM_F24LE, pcm_f24le); + REGISTER_ENCDEC (PCM_F32BE, pcm_f32be); + REGISTER_ENCDEC (PCM_F32LE, pcm_f32le); + REGISTER_ENCDEC (PCM_F64BE, pcm_f64be); + REGISTER_ENCDEC (PCM_F64LE, pcm_f64le); + REGISTER_DECODER(PCM_LXF, pcm_lxf); + REGISTER_ENCDEC (PCM_MULAW, pcm_mulaw); + REGISTER_ENCDEC (PCM_S8, pcm_s8); + REGISTER_ENCDEC (PCM_S8_PLANAR, pcm_s8_planar); + REGISTER_ENCDEC (PCM_S16BE, pcm_s16be); + REGISTER_ENCDEC (PCM_S16BE_PLANAR, pcm_s16be_planar); + REGISTER_ENCDEC (PCM_S16LE, pcm_s16le); + REGISTER_ENCDEC (PCM_S16LE_PLANAR, pcm_s16le_planar); + REGISTER_ENCDEC (PCM_S24BE, pcm_s24be); + REGISTER_ENCDEC (PCM_S24DAUD, pcm_s24daud); + REGISTER_ENCDEC (PCM_S24LE, pcm_s24le); + REGISTER_ENCDEC (PCM_S24LE_PLANAR, pcm_s24le_planar); + REGISTER_ENCDEC (PCM_S32BE, pcm_s32be); + REGISTER_ENCDEC (PCM_S32LE, pcm_s32le); + REGISTER_ENCDEC (PCM_S32LE_PLANAR, pcm_s32le_planar); + REGISTER_ENCDEC (PCM_S64BE, pcm_s64be); + REGISTER_ENCDEC (PCM_S64LE, pcm_s64le); + REGISTER_ENCDEC (PCM_U8, pcm_u8); + REGISTER_ENCDEC (PCM_U16BE, pcm_u16be); + REGISTER_ENCDEC (PCM_U16LE, pcm_u16le); + REGISTER_ENCDEC (PCM_U24BE, pcm_u24be); + REGISTER_ENCDEC (PCM_U24LE, pcm_u24le); + REGISTER_ENCDEC (PCM_U32BE, pcm_u32be); + REGISTER_ENCDEC (PCM_U32LE, pcm_u32le); + REGISTER_DECODER(PCM_ZORK, pcm_zork); + + /* DPCM codecs */ + REGISTER_DECODER(GREMLIN_DPCM, gremlin_dpcm); + REGISTER_DECODER(INTERPLAY_DPCM, interplay_dpcm); + REGISTER_ENCDEC (ROQ_DPCM, roq_dpcm); + REGISTER_DECODER(SOL_DPCM, sol_dpcm); + REGISTER_DECODER(XAN_DPCM, xan_dpcm); + + /* ADPCM codecs */ + REGISTER_DECODER(ADPCM_4XM, adpcm_4xm); + REGISTER_ENCDEC (ADPCM_ADX, adpcm_adx); + REGISTER_DECODER(ADPCM_AFC, adpcm_afc); + REGISTER_DECODER(ADPCM_AICA, adpcm_aica); + REGISTER_DECODER(ADPCM_CT, adpcm_ct); + REGISTER_DECODER(ADPCM_DTK, adpcm_dtk); + REGISTER_DECODER(ADPCM_EA, adpcm_ea); + REGISTER_DECODER(ADPCM_EA_MAXIS_XA, adpcm_ea_maxis_xa); + REGISTER_DECODER(ADPCM_EA_R1, adpcm_ea_r1); + REGISTER_DECODER(ADPCM_EA_R2, adpcm_ea_r2); + REGISTER_DECODER(ADPCM_EA_R3, adpcm_ea_r3); + REGISTER_DECODER(ADPCM_EA_XAS, adpcm_ea_xas); + REGISTER_ENCDEC (ADPCM_G722, adpcm_g722); + REGISTER_ENCDEC (ADPCM_G726, adpcm_g726); + REGISTER_ENCDEC (ADPCM_G726LE, adpcm_g726le); + REGISTER_DECODER(ADPCM_IMA_AMV, adpcm_ima_amv); + REGISTER_DECODER(ADPCM_IMA_APC, adpcm_ima_apc); + REGISTER_DECODER(ADPCM_IMA_DAT4, adpcm_ima_dat4); + REGISTER_DECODER(ADPCM_IMA_DK3, adpcm_ima_dk3); + REGISTER_DECODER(ADPCM_IMA_DK4, adpcm_ima_dk4); + REGISTER_DECODER(ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs); + REGISTER_DECODER(ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead); + REGISTER_DECODER(ADPCM_IMA_ISS, adpcm_ima_iss); + REGISTER_DECODER(ADPCM_IMA_OKI, adpcm_ima_oki); + REGISTER_ENCDEC (ADPCM_IMA_QT, adpcm_ima_qt); + REGISTER_DECODER(ADPCM_IMA_RAD, adpcm_ima_rad); + REGISTER_DECODER(ADPCM_IMA_SMJPEG, adpcm_ima_smjpeg); + REGISTER_ENCDEC (ADPCM_IMA_WAV, adpcm_ima_wav); + REGISTER_DECODER(ADPCM_IMA_WS, adpcm_ima_ws); + REGISTER_ENCDEC (ADPCM_MS, adpcm_ms); + REGISTER_DECODER(ADPCM_MTAF, adpcm_mtaf); + REGISTER_DECODER(ADPCM_PSX, adpcm_psx); + REGISTER_DECODER(ADPCM_SBPRO_2, adpcm_sbpro_2); + REGISTER_DECODER(ADPCM_SBPRO_3, adpcm_sbpro_3); + REGISTER_DECODER(ADPCM_SBPRO_4, adpcm_sbpro_4); + REGISTER_ENCDEC (ADPCM_SWF, adpcm_swf); + REGISTER_DECODER(ADPCM_THP, adpcm_thp); + REGISTER_DECODER(ADPCM_THP_LE, adpcm_thp_le); + REGISTER_DECODER(ADPCM_VIMA, adpcm_vima); + REGISTER_DECODER(ADPCM_XA, adpcm_xa); + REGISTER_ENCDEC (ADPCM_YAMAHA, adpcm_yamaha); + + /* subtitles */ + REGISTER_ENCDEC (SSA, ssa); + REGISTER_ENCDEC (ASS, ass); + REGISTER_DECODER(CCAPTION, ccaption); + REGISTER_ENCDEC (DVBSUB, dvbsub); + REGISTER_ENCDEC (DVDSUB, dvdsub); + REGISTER_DECODER(JACOSUB, jacosub); + REGISTER_DECODER(MICRODVD, microdvd); + REGISTER_ENCDEC (MOVTEXT, movtext); + REGISTER_DECODER(MPL2, mpl2); + REGISTER_DECODER(PGSSUB, pgssub); + REGISTER_DECODER(PJS, pjs); + REGISTER_DECODER(REALTEXT, realtext); + REGISTER_DECODER(SAMI, sami); + REGISTER_ENCDEC (SRT, srt); + REGISTER_DECODER(STL, stl); + REGISTER_ENCDEC (SUBRIP, subrip); + REGISTER_DECODER(SUBVIEWER, subviewer); + REGISTER_DECODER(SUBVIEWER1, subviewer1); + REGISTER_ENCDEC (TEXT, text); + REGISTER_DECODER(VPLAYER, vplayer); + REGISTER_ENCDEC (WEBVTT, webvtt); + REGISTER_ENCDEC (XSUB, xsub); + + /* external libraries */ + REGISTER_ENCDEC (AAC_AT, aac_at); + REGISTER_DECODER(AC3_AT, ac3_at); + REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at); + REGISTER_ENCDEC (ALAC_AT, alac_at); + REGISTER_DECODER(AMR_NB_AT, amr_nb_at); + REGISTER_DECODER(EAC3_AT, eac3_at); + REGISTER_DECODER(GSM_MS_AT, gsm_ms_at); + REGISTER_ENCDEC (ILBC_AT, ilbc_at); + REGISTER_DECODER(MP1_AT, mp1_at); + REGISTER_DECODER(MP2_AT, mp2_at); + REGISTER_DECODER(MP3_AT, mp3_at); + REGISTER_ENCDEC (PCM_ALAW_AT, pcm_alaw_at); + REGISTER_ENCDEC (PCM_MULAW_AT, pcm_mulaw_at); + REGISTER_DECODER(QDMC_AT, qdmc_at); + REGISTER_DECODER(QDM2_AT, qdm2_at); + REGISTER_DECODER(LIBCELT, libcelt); + REGISTER_ENCDEC (LIBFDK_AAC, libfdk_aac); + REGISTER_ENCDEC (LIBGSM, libgsm); + REGISTER_ENCDEC (LIBGSM_MS, libgsm_ms); + REGISTER_ENCDEC (LIBILBC, libilbc); + REGISTER_ENCODER(LIBMP3LAME, libmp3lame); + REGISTER_ENCDEC (LIBOPENCORE_AMRNB, libopencore_amrnb); + REGISTER_DECODER(LIBOPENCORE_AMRWB, libopencore_amrwb); + REGISTER_ENCDEC (LIBOPENJPEG, libopenjpeg); + REGISTER_ENCDEC (LIBOPUS, libopus); + REGISTER_DECODER(LIBRSVG, librsvg); + REGISTER_ENCODER(LIBSHINE, libshine); + REGISTER_ENCDEC (LIBSPEEX, libspeex); + REGISTER_ENCODER(LIBTHEORA, libtheora); + REGISTER_ENCODER(LIBTWOLAME, libtwolame); + REGISTER_ENCODER(LIBVO_AMRWBENC, libvo_amrwbenc); + REGISTER_ENCDEC (LIBVORBIS, libvorbis); + REGISTER_ENCDEC (LIBVPX_VP8, libvpx_vp8); + REGISTER_ENCDEC (LIBVPX_VP9, libvpx_vp9); + REGISTER_ENCODER(LIBWAVPACK, libwavpack); + REGISTER_ENCODER(LIBWEBP_ANIM, libwebp_anim); /* preferred over libwebp */ + REGISTER_ENCODER(LIBWEBP, libwebp); + REGISTER_ENCODER(LIBX262, libx262); + REGISTER_ENCODER(LIBX264, libx264); + REGISTER_ENCODER(LIBX264RGB, libx264rgb); + REGISTER_ENCODER(LIBX265, libx265); + REGISTER_ENCODER(LIBXAVS, libxavs); + REGISTER_ENCODER(LIBXVID, libxvid); + REGISTER_DECODER(LIBZVBI_TELETEXT, libzvbi_teletext); + + /* text */ + REGISTER_DECODER(BINTEXT, bintext); + REGISTER_DECODER(XBIN, xbin); + REGISTER_DECODER(IDF, idf); + + /* external libraries, that shouldn't be used by default if one of the + * above is available */ + REGISTER_ENCODER(H263_V4L2M2M, h263_v4l2m2m); + REGISTER_ENCDEC (LIBOPENH264, libopenh264); + REGISTER_DECODER(H264_CUVID, h264_cuvid); + REGISTER_ENCODER(H264_NVENC, h264_nvenc); + REGISTER_ENCODER(H264_OMX, h264_omx); + REGISTER_ENCODER(H264_QSV, h264_qsv); + REGISTER_ENCODER(H264_V4L2M2M, h264_v4l2m2m); + REGISTER_ENCODER(H264_VAAPI, h264_vaapi); + REGISTER_ENCODER(H264_VIDEOTOOLBOX, h264_videotoolbox); +#if FF_API_NVENC_OLD_NAME + REGISTER_ENCODER(NVENC, nvenc); + REGISTER_ENCODER(NVENC_H264, nvenc_h264); + REGISTER_ENCODER(NVENC_HEVC, nvenc_hevc); +#endif + REGISTER_DECODER(HEVC_CUVID, hevc_cuvid); + REGISTER_DECODER(HEVC_MEDIACODEC, hevc_mediacodec); + REGISTER_ENCODER(HEVC_NVENC, hevc_nvenc); + REGISTER_ENCODER(HEVC_QSV, hevc_qsv); + REGISTER_ENCODER(HEVC_V4L2M2M, hevc_v4l2m2m); + REGISTER_ENCODER(HEVC_VAAPI, hevc_vaapi); + REGISTER_ENCODER(LIBKVAZAAR, libkvazaar); + REGISTER_DECODER(MJPEG_CUVID, mjpeg_cuvid); + REGISTER_ENCODER(MJPEG_VAAPI, mjpeg_vaapi); + REGISTER_DECODER(MPEG1_CUVID, mpeg1_cuvid); + REGISTER_DECODER(MPEG2_CUVID, mpeg2_cuvid); + REGISTER_ENCODER(MPEG2_QSV, mpeg2_qsv); + REGISTER_ENCODER(MPEG2_VAAPI, mpeg2_vaapi); + REGISTER_DECODER(MPEG4_CUVID, mpeg4_cuvid); + REGISTER_DECODER(MPEG4_MEDIACODEC, mpeg4_mediacodec); + REGISTER_ENCODER(MPEG4_V4L2M2M, mpeg4_v4l2m2m); + REGISTER_DECODER(VC1_CUVID, vc1_cuvid); + REGISTER_DECODER(VP8_CUVID, vp8_cuvid); + REGISTER_DECODER(VP8_MEDIACODEC, vp8_mediacodec); + REGISTER_DECODER(VP8_QSV, vp8_qsv); + REGISTER_ENCODER(VP8_V4L2M2M, vp8_v4l2m2m); + REGISTER_ENCODER(VP8_VAAPI, vp8_vaapi); + REGISTER_DECODER(VP9_CUVID, vp9_cuvid); + REGISTER_DECODER(VP9_MEDIACODEC, vp9_mediacodec); + REGISTER_ENCODER(VP9_VAAPI, vp9_vaapi); + + /* parsers */ + REGISTER_PARSER(AAC, aac); + REGISTER_PARSER(AAC_LATM, aac_latm); + REGISTER_PARSER(AC3, ac3); + REGISTER_PARSER(ADX, adx); + REGISTER_PARSER(BMP, bmp); + REGISTER_PARSER(CAVSVIDEO, cavsvideo); + REGISTER_PARSER(COOK, cook); + REGISTER_PARSER(DCA, dca); + REGISTER_PARSER(DIRAC, dirac); + REGISTER_PARSER(DNXHD, dnxhd); + REGISTER_PARSER(DPX, dpx); + REGISTER_PARSER(DVAUDIO, dvaudio); + REGISTER_PARSER(DVBSUB, dvbsub); + REGISTER_PARSER(DVDSUB, dvdsub); + REGISTER_PARSER(DVD_NAV, dvd_nav); + REGISTER_PARSER(FLAC, flac); + REGISTER_PARSER(G729, g729); + REGISTER_PARSER(GSM, gsm); + REGISTER_PARSER(H261, h261); + REGISTER_PARSER(H263, h263); + REGISTER_PARSER(H264, h264); + REGISTER_PARSER(HEVC, hevc); + REGISTER_PARSER(MJPEG, mjpeg); + REGISTER_PARSER(MLP, mlp); + REGISTER_PARSER(MPEG4VIDEO, mpeg4video); + REGISTER_PARSER(MPEGAUDIO, mpegaudio); + REGISTER_PARSER(MPEGVIDEO, mpegvideo); + REGISTER_PARSER(OPUS, opus); + REGISTER_PARSER(PNG, png); + REGISTER_PARSER(PNM, pnm); + REGISTER_PARSER(RV30, rv30); + REGISTER_PARSER(RV40, rv40); + REGISTER_PARSER(SIPR, sipr); + REGISTER_PARSER(TAK, tak); + REGISTER_PARSER(VC1, vc1); + REGISTER_PARSER(VORBIS, vorbis); + REGISTER_PARSER(VP3, vp3); + REGISTER_PARSER(VP8, vp8); + REGISTER_PARSER(VP9, vp9); + REGISTER_PARSER(XMA, xma); } -AVCodec *avcodec_find_encoder_by_name(const char *name) +void avcodec_register_all(void) { - return find_codec_by_name(name, av_codec_is_encoder); -} + static AVOnce control = AV_ONCE_INIT; -AVCodec *avcodec_find_decoder_by_name(const char *name) -{ - return find_codec_by_name(name, av_codec_is_decoder); + ff_thread_once(&control, register_all); } diff --git a/media/ffvpx/libavcodec/audioconvert.c b/media/ffvpx/libavcodec/audioconvert.c new file mode 100644 index 000000000..5e46fae2d --- /dev/null +++ b/media/ffvpx/libavcodec/audioconvert.c @@ -0,0 +1,120 @@ +/* + * audio conversion + * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * audio conversion + * @author Michael Niedermayer <michaelni@gmx.at> + */ + +#include "libavutil/avstring.h" +#include "libavutil/common.h" +#include "libavutil/libm.h" +#include "libavutil/samplefmt.h" +#include "avcodec.h" +#include "audioconvert.h" + +#if FF_API_AUDIO_CONVERT + +struct AVAudioConvert { + int in_channels, out_channels; + int fmt_pair; +}; + +AVAudioConvert *av_audio_convert_alloc(enum AVSampleFormat out_fmt, int out_channels, + enum AVSampleFormat in_fmt, int in_channels, + const float *matrix, int flags) +{ + AVAudioConvert *ctx; + if (in_channels!=out_channels) + return NULL; /* FIXME: not supported */ + ctx = av_malloc(sizeof(AVAudioConvert)); + if (!ctx) + return NULL; + ctx->in_channels = in_channels; + ctx->out_channels = out_channels; + ctx->fmt_pair = out_fmt + AV_SAMPLE_FMT_NB*in_fmt; + return ctx; +} + +void av_audio_convert_free(AVAudioConvert *ctx) +{ + av_free(ctx); +} + +int av_audio_convert(AVAudioConvert *ctx, + void * const out[6], const int out_stride[6], + const void * const in[6], const int in_stride[6], int len) +{ + int ch; + + //FIXME optimize common cases + + for(ch=0; ch<ctx->out_channels; ch++){ + const int is= in_stride[ch]; + const int os= out_stride[ch]; + const uint8_t *pi= in[ch]; + uint8_t *po= out[ch]; + uint8_t *end= po + os*len; + if(!out[ch]) + continue; + +#define CONV(ofmt, otype, ifmt, expr)\ +if(ctx->fmt_pair == ofmt + AV_SAMPLE_FMT_NB*ifmt){\ + do{\ + *(otype*)po = expr; pi += is; po += os;\ + }while(po < end);\ +} + +//FIXME put things below under ifdefs so we do not waste space for cases no codec will need +//FIXME rounding ? + + CONV(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_U8 , *(const uint8_t*)pi) + else CONV(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_U8 , (*(const uint8_t*)pi - 0x80)<<8) + else CONV(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_U8 , (*(const uint8_t*)pi - 0x80)<<24) + else CONV(AV_SAMPLE_FMT_FLT, float , AV_SAMPLE_FMT_U8 , (*(const uint8_t*)pi - 0x80)*(1.0 / (1<<7))) + else CONV(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_U8 , (*(const uint8_t*)pi - 0x80)*(1.0 / (1<<7))) + else CONV(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_S16, (*(const int16_t*)pi>>8) + 0x80) + else CONV(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_S16, *(const int16_t*)pi) + else CONV(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_S16, *(const int16_t*)pi<<16) + else CONV(AV_SAMPLE_FMT_FLT, float , AV_SAMPLE_FMT_S16, *(const int16_t*)pi*(1.0 / (1<<15))) + else CONV(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_S16, *(const int16_t*)pi*(1.0 / (1<<15))) + else CONV(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_S32, (*(const int32_t*)pi>>24) + 0x80) + else CONV(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_S32, *(const int32_t*)pi>>16) + else CONV(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_S32, *(const int32_t*)pi) + else CONV(AV_SAMPLE_FMT_FLT, float , AV_SAMPLE_FMT_S32, *(const int32_t*)pi*(1.0 / (1U<<31))) + else CONV(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_S32, *(const int32_t*)pi*(1.0 / (1U<<31))) + else CONV(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_FLT, av_clip_uint8( lrintf(*(const float*)pi * (1<<7)) + 0x80)) + else CONV(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, av_clip_int16( lrintf(*(const float*)pi * (1<<15)))) + else CONV(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, av_clipl_int32(llrintf(*(const float*)pi * (1U<<31)))) + else CONV(AV_SAMPLE_FMT_FLT, float , AV_SAMPLE_FMT_FLT, *(const float*)pi) + else CONV(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_FLT, *(const float*)pi) + else CONV(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_DBL, av_clip_uint8( lrint(*(const double*)pi * (1<<7)) + 0x80)) + else CONV(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, av_clip_int16( lrint(*(const double*)pi * (1<<15)))) + else CONV(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, av_clipl_int32(llrint(*(const double*)pi * (1U<<31)))) + else CONV(AV_SAMPLE_FMT_FLT, float , AV_SAMPLE_FMT_DBL, *(const double*)pi) + else CONV(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_DBL, *(const double*)pi) + else return -1; + } + return 0; +} + +#endif /* FF_API_AUDIO_CONVERT */ diff --git a/media/ffvpx/libavcodec/audioconvert.h b/media/ffvpx/libavcodec/audioconvert.h new file mode 100644 index 000000000..996c3f37a --- /dev/null +++ b/media/ffvpx/libavcodec/audioconvert.h @@ -0,0 +1,86 @@ +/* + * audio conversion + * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> + * Copyright (c) 2008 Peter Ross + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AUDIOCONVERT_H +#define AVCODEC_AUDIOCONVERT_H + +#include "version.h" + +/** + * @file + * Audio format conversion routines + * This interface is deprecated and will be dropped in a future + * version. You should use the libswresample library instead. + */ + +#if FF_API_AUDIO_CONVERT + +#include "libavutil/cpu.h" +#include "avcodec.h" +#include "libavutil/channel_layout.h" + +struct AVAudioConvert; +typedef struct AVAudioConvert AVAudioConvert; + +/** + * Create an audio sample format converter context + * @param out_fmt Output sample format + * @param out_channels Number of output channels + * @param in_fmt Input sample format + * @param in_channels Number of input channels + * @param[in] matrix Channel mixing matrix (of dimension in_channel*out_channels). Set to NULL to ignore. + * @param flags See AV_CPU_FLAG_xx + * @return NULL on error + * @deprecated See libswresample + */ + +attribute_deprecated +AVAudioConvert *av_audio_convert_alloc(enum AVSampleFormat out_fmt, int out_channels, + enum AVSampleFormat in_fmt, int in_channels, + const float *matrix, int flags); + +/** + * Free audio sample format converter context + * @deprecated See libswresample + */ + +attribute_deprecated +void av_audio_convert_free(AVAudioConvert *ctx); + +/** + * Convert between audio sample formats + * @param[in] out array of output buffers for each channel. set to NULL to ignore processing of the given channel. + * @param[in] out_stride distance between consecutive output samples (measured in bytes) + * @param[in] in array of input buffers for each channel + * @param[in] in_stride distance between consecutive input samples (measured in bytes) + * @param len length of audio frame size (measured in samples) + * @deprecated See libswresample + */ + +attribute_deprecated +int av_audio_convert(AVAudioConvert *ctx, + void * const out[6], const int out_stride[6], + const void * const in[6], const int in_stride[6], int len); + +#endif /* FF_API_AUDIO_CONVERT */ + +#endif /* AVCODEC_AUDIOCONVERT_H */ diff --git a/media/ffvpx/libavcodec/avcodec.h b/media/ffvpx/libavcodec/avcodec.h index fb0c6fae7..18c3e3ea1 100644 --- a/media/ffvpx/libavcodec/avcodec.h +++ b/media/ffvpx/libavcodec/avcodec.h @@ -36,7 +36,6 @@ #include "libavutil/channel_layout.h" #include "libavutil/dict.h" #include "libavutil/frame.h" -#include "libavutil/hwcontext.h" #include "libavutil/log.h" #include "libavutil/pixfmt.h" #include "libavutil/rational.h" @@ -218,6 +217,9 @@ enum AVCodecID { /* video codecs */ AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding +#if FF_API_XVMC + AV_CODEC_ID_MPEG2VIDEO_XVMC, +#endif /* FF_API_XVMC */ AV_CODEC_ID_H261, AV_CODEC_ID_H263, AV_CODEC_ID_RV10, @@ -518,6 +520,9 @@ enum AVCodecID { AV_CODEC_ID_ADPCM_G722, AV_CODEC_ID_ADPCM_IMA_APC, AV_CODEC_ID_ADPCM_VIMA, +#if FF_API_VIMA_DECODER + AV_CODEC_ID_VIMA = AV_CODEC_ID_ADPCM_VIMA, +#endif AV_CODEC_ID_ADPCM_AFC = 0x11800, AV_CODEC_ID_ADPCM_IMA_OKI, @@ -580,6 +585,9 @@ enum AVCodecID { AV_CODEC_ID_MLP, AV_CODEC_ID_GSM_MS, /* as found in WAV */ AV_CODEC_ID_ATRAC3, +#if FF_API_VOXWARE + AV_CODEC_ID_VOXWARE, +#endif AV_CODEC_ID_APE, AV_CODEC_ID_NELLYMOSER, AV_CODEC_ID_MUSEPACK8, @@ -615,7 +623,6 @@ enum AVCodecID { AV_CODEC_ID_PAF_AUDIO, AV_CODEC_ID_ON2AVC, AV_CODEC_ID_DSS_SP, - AV_CODEC_ID_CODEC2, AV_CODEC_ID_FFWAVESYNTH = 0x15800, AV_CODEC_ID_SONIC, @@ -634,9 +641,6 @@ enum AVCodecID { AV_CODEC_ID_ATRAC3AL, AV_CODEC_ID_ATRAC3PAL, AV_CODEC_ID_DOLBY_E, - AV_CODEC_ID_APTX, - AV_CODEC_ID_APTX_HD, - AV_CODEC_ID_SBC, /* subtitle codecs */ AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. @@ -770,7 +774,7 @@ typedef struct AVCodecDescriptor { * Note: If the first 23 bits of the additional bytes are not 0, then damaged * MPEG bitstreams could cause overread and segfault. */ -#define AV_INPUT_BUFFER_PADDING_SIZE 64 +#define AV_INPUT_BUFFER_PADDING_SIZE 32 /** * @ingroup lavc_encoding @@ -779,6 +783,38 @@ typedef struct AVCodecDescriptor { */ #define AV_INPUT_BUFFER_MIN_SIZE 16384 +#if FF_API_WITHOUT_PREFIX +/** + * @deprecated use AV_INPUT_BUFFER_PADDING_SIZE instead + */ +#define FF_INPUT_BUFFER_PADDING_SIZE 32 + +/** + * @deprecated use AV_INPUT_BUFFER_MIN_SIZE instead + */ +#define FF_MIN_BUFFER_SIZE 16384 +#endif /* FF_API_WITHOUT_PREFIX */ + +/** + * @ingroup lavc_encoding + * motion estimation type. + * @deprecated use codec private option instead + */ +#if FF_API_MOTION_EST +enum Motion_Est_ID { + ME_ZERO = 1, ///< no search, that is use 0,0 vector whenever one is needed + ME_FULL, + ME_LOG, + ME_PHODS, + ME_EPZS, ///< enhanced predictive zonal search + ME_X1, ///< reserved for experiments + ME_HEX, ///< hexagon based search + ME_UMH, ///< uneven multi-hexagon search + ME_TESA, ///< transformed exhaustive search algorithm + ME_ITER=50, ///< iterative search +}; +#endif + /** * @ingroup lavc_decoding */ @@ -817,6 +853,13 @@ typedef struct RcOverride{ float quality_factor; } RcOverride; +#if FF_API_MAX_BFRAMES +/** + * @deprecated there is no libavcodec-wide limit on the number of B-frames + */ +#define FF_MAX_B_FRAMES 16 +#endif + /* encoding support These flags can be passed in AVCodecContext.flags before initialization. Note: Not everything is supported yet. @@ -988,6 +1031,13 @@ typedef struct RcOverride{ */ #define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6) +#if FF_API_CAP_VDPAU +/** + * Codec can export data for HW decoding (VDPAU). + */ +#define AV_CODEC_CAP_HWACCEL_VDPAU (1 << 7) +#endif + /** * Codec can output multiple frames per AVPacket * Normally demuxers return one frame at a time, demuxers which do not do @@ -1048,26 +1098,231 @@ typedef struct RcOverride{ */ #define AV_CODEC_CAP_LOSSLESS 0x80000000 + +#if FF_API_WITHOUT_PREFIX /** - * Codec is backed by a hardware implementation. Typically used to - * identify a non-hwaccel hardware decoder. For information about hwaccels, use - * avcodec_get_hw_config() instead. + * Allow decoders to produce frames with data planes that are not aligned + * to CPU requirements (e.g. due to cropping). */ -#define AV_CODEC_CAP_HARDWARE (1 << 18) +#define CODEC_FLAG_UNALIGNED AV_CODEC_FLAG_UNALIGNED +#define CODEC_FLAG_QSCALE AV_CODEC_FLAG_QSCALE +#define CODEC_FLAG_4MV AV_CODEC_FLAG_4MV +#define CODEC_FLAG_OUTPUT_CORRUPT AV_CODEC_FLAG_OUTPUT_CORRUPT +#define CODEC_FLAG_QPEL AV_CODEC_FLAG_QPEL +#if FF_API_GMC +/** + * @deprecated use the "gmc" private option of the libxvid encoder + */ +#define CODEC_FLAG_GMC 0x0020 ///< Use GMC. +#endif +#if FF_API_MV0 +/** + * @deprecated use the flag "mv0" in the "mpv_flags" private option of the + * mpegvideo encoders + */ +#define CODEC_FLAG_MV0 0x0040 +#endif +#if FF_API_INPUT_PRESERVED +/** + * @deprecated passing reference-counted frames to the encoders replaces this + * flag + */ +#define CODEC_FLAG_INPUT_PRESERVED 0x0100 +#endif +#define CODEC_FLAG_PASS1 AV_CODEC_FLAG_PASS1 +#define CODEC_FLAG_PASS2 AV_CODEC_FLAG_PASS2 +#define CODEC_FLAG_GRAY AV_CODEC_FLAG_GRAY +#if FF_API_EMU_EDGE +/** + * @deprecated edges are not used/required anymore. I.e. this flag is now always + * set. + */ +#define CODEC_FLAG_EMU_EDGE 0x4000 +#endif +#define CODEC_FLAG_PSNR AV_CODEC_FLAG_PSNR +#define CODEC_FLAG_TRUNCATED AV_CODEC_FLAG_TRUNCATED +#if FF_API_NORMALIZE_AQP /** - * Codec is potentially backed by a hardware implementation, but not - * necessarily. This is used instead of AV_CODEC_CAP_HARDWARE, if the - * implementation provides some sort of internal fallback. + * @deprecated use the flag "naq" in the "mpv_flags" private option of the + * mpegvideo encoders */ -#define AV_CODEC_CAP_HYBRID (1 << 19) +#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 +#endif +#define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT +#define CODEC_FLAG_LOW_DELAY AV_CODEC_FLAG_LOW_DELAY +#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER +#define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT +#define CODEC_FLAG_AC_PRED AV_CODEC_FLAG_AC_PRED +#define CODEC_FLAG_LOOP_FILTER AV_CODEC_FLAG_LOOP_FILTER +#define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME +#define CODEC_FLAG_CLOSED_GOP AV_CODEC_FLAG_CLOSED_GOP +#define CODEC_FLAG2_FAST AV_CODEC_FLAG2_FAST +#define CODEC_FLAG2_NO_OUTPUT AV_CODEC_FLAG2_NO_OUTPUT +#define CODEC_FLAG2_LOCAL_HEADER AV_CODEC_FLAG2_LOCAL_HEADER +#define CODEC_FLAG2_DROP_FRAME_TIMECODE AV_CODEC_FLAG2_DROP_FRAME_TIMECODE +#define CODEC_FLAG2_IGNORE_CROP AV_CODEC_FLAG2_IGNORE_CROP + +#define CODEC_FLAG2_CHUNKS AV_CODEC_FLAG2_CHUNKS +#define CODEC_FLAG2_SHOW_ALL AV_CODEC_FLAG2_SHOW_ALL +#define CODEC_FLAG2_EXPORT_MVS AV_CODEC_FLAG2_EXPORT_MVS +#define CODEC_FLAG2_SKIP_MANUAL AV_CODEC_FLAG2_SKIP_MANUAL + +/* Unsupported options : + * Syntax Arithmetic coding (SAC) + * Reference Picture Selection + * Independent Segment Decoding */ +/* /Fx */ +/* codec capabilities */ + +#define CODEC_CAP_DRAW_HORIZ_BAND AV_CODEC_CAP_DRAW_HORIZ_BAND ///< Decoder can use draw_horiz_band callback. +/** + * Codec uses get_buffer() for allocating buffers and supports custom allocators. + * If not set, it might not use get_buffer() at all or use operations that + * assume the buffer was allocated by avcodec_default_get_buffer. + */ +#define CODEC_CAP_DR1 AV_CODEC_CAP_DR1 +#define CODEC_CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED +#if FF_API_XVMC +/* Codec can export data for HW decoding. This flag indicates that + * the codec would call get_format() with list that might contain HW accelerated + * pixel formats (XvMC, VDPAU, VAAPI, etc). The application can pick any of them + * including raw image format. + * The application can use the passed context to determine bitstream version, + * chroma format, resolution etc. + */ +#define CODEC_CAP_HWACCEL 0x0010 +#endif /* FF_API_XVMC */ +/** + * Encoder or decoder requires flushing with NULL input at the end in order to + * give the complete and correct output. + * + * NOTE: If this flag is not set, the codec is guaranteed to never be fed with + * with NULL data. The user can still send NULL data to the public encode + * or decode function, but libavcodec will not pass it along to the codec + * unless this flag is set. + * + * Decoders: + * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to get the delayed data until the decoder no longer + * returns frames. + * + * Encoders: + * The encoder needs to be fed with NULL data at the end of encoding until the + * encoder no longer returns data. + * + * NOTE: For encoders implementing the AVCodec.encode2() function, setting this + * flag also means that the encoder must set the pts and duration for + * each output packet. If this flag is not set, the pts and duration will + * be determined by libavcodec from the input frame. + */ +#define CODEC_CAP_DELAY AV_CODEC_CAP_DELAY +/** + * Codec can be fed a final frame with a smaller size. + * This can be used to prevent truncation of the last audio samples. + */ +#define CODEC_CAP_SMALL_LAST_FRAME AV_CODEC_CAP_SMALL_LAST_FRAME +#if FF_API_CAP_VDPAU +/** + * Codec can export data for HW decoding (VDPAU). + */ +#define CODEC_CAP_HWACCEL_VDPAU AV_CODEC_CAP_HWACCEL_VDPAU +#endif +/** + * Codec can output multiple frames per AVPacket + * Normally demuxers return one frame at a time, demuxers which do not do + * are connected to a parser to split what they return into proper frames. + * This flag is reserved to the very rare category of codecs which have a + * bitstream that cannot be split into frames without timeconsuming + * operations like full decoding. Demuxers carrying such bitstreams thus + * may return multiple frames in a packet. This has many disadvantages like + * prohibiting stream copy in many cases thus it should only be considered + * as a last resort. + */ +#define CODEC_CAP_SUBFRAMES AV_CODEC_CAP_SUBFRAMES +/** + * Codec is experimental and is thus avoided in favor of non experimental + * encoders + */ +#define CODEC_CAP_EXPERIMENTAL AV_CODEC_CAP_EXPERIMENTAL +/** + * Codec should fill in channel configuration and samplerate instead of container + */ +#define CODEC_CAP_CHANNEL_CONF AV_CODEC_CAP_CHANNEL_CONF +#if FF_API_NEG_LINESIZES +/** + * @deprecated no codecs use this capability + */ +#define CODEC_CAP_NEG_LINESIZES 0x0800 +#endif +/** + * Codec supports frame-level multithreading. + */ +#define CODEC_CAP_FRAME_THREADS AV_CODEC_CAP_FRAME_THREADS +/** + * Codec supports slice-based (or partition-based) multithreading. + */ +#define CODEC_CAP_SLICE_THREADS AV_CODEC_CAP_SLICE_THREADS +/** + * Codec supports changed parameters at any point. + */ +#define CODEC_CAP_PARAM_CHANGE AV_CODEC_CAP_PARAM_CHANGE +/** + * Codec supports avctx->thread_count == 0 (auto). + */ +#define CODEC_CAP_AUTO_THREADS AV_CODEC_CAP_AUTO_THREADS +/** + * Audio encoder supports receiving a different number of samples in each call. + */ +#define CODEC_CAP_VARIABLE_FRAME_SIZE AV_CODEC_CAP_VARIABLE_FRAME_SIZE +/** + * Codec is intra only. + */ +#define CODEC_CAP_INTRA_ONLY AV_CODEC_CAP_INTRA_ONLY +/** + * Codec is lossless. + */ +#define CODEC_CAP_LOSSLESS AV_CODEC_CAP_LOSSLESS + +/** + * HWAccel is experimental and is thus avoided in favor of non experimental + * codecs + */ +#define HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200 +#endif /* FF_API_WITHOUT_PREFIX */ + +#if FF_API_MB_TYPE +//The following defines may change, don't expect compatibility if you use them. +#define MB_TYPE_INTRA4x4 0x0001 +#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific +#define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific +#define MB_TYPE_16x16 0x0008 +#define MB_TYPE_16x8 0x0010 +#define MB_TYPE_8x16 0x0020 +#define MB_TYPE_8x8 0x0040 +#define MB_TYPE_INTERLACED 0x0080 +#define MB_TYPE_DIRECT2 0x0100 //FIXME +#define MB_TYPE_ACPRED 0x0200 +#define MB_TYPE_GMC 0x0400 +#define MB_TYPE_SKIP 0x0800 +#define MB_TYPE_P0L0 0x1000 +#define MB_TYPE_P1L0 0x2000 +#define MB_TYPE_P0L1 0x4000 +#define MB_TYPE_P1L1 0x8000 +#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0) +#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1) +#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1) +#define MB_TYPE_QUANT 0x00010000 +#define MB_TYPE_CBP 0x00020000 +// Note bits 24-31 are reserved for codec specific use (H.264 ref0, MPEG-1 0mv, ...) +#endif /** * Pan Scan area. * This specifies the area which should be displayed. * Note there may be multiple such areas for one frame. */ -typedef struct AVPanScan { +typedef struct AVPanScan{ /** * id * - encoding: Set by user. @@ -1089,7 +1344,7 @@ typedef struct AVPanScan { * - decoding: Set by libavcodec. */ int16_t position[3][2]; -} AVPanScan; +}AVPanScan; /** * This structure describes the bitrate properties of an encoded bitstream. It @@ -1129,6 +1384,13 @@ typedef struct AVCPBProperties { uint64_t vbv_delay; } AVCPBProperties; +#if FF_API_QSCALE_TYPE +#define FF_QSCALE_TYPE_MPEG1 0 +#define FF_QSCALE_TYPE_MPEG2 1 +#define FF_QSCALE_TYPE_H264 2 +#define FF_QSCALE_TYPE_VP56 3 +#endif + /** * The decoder will keep a reference to the frame and may reuse it later. */ @@ -1256,7 +1518,7 @@ enum AVPacketSideDataType { * u8 reason for end skip (0=padding silence, 1=convergence) * @endcode */ - AV_PKT_DATA_SKIP_SAMPLES, + AV_PKT_DATA_SKIP_SAMPLES=70, /** * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that @@ -1345,20 +1607,7 @@ enum AVPacketSideDataType { AV_PKT_DATA_A53_CC, /** - * This side data is encryption initialization data. - * The format is not part of ABI, use av_encryption_init_info_* methods to - * access. - */ - AV_PKT_DATA_ENCRYPTION_INIT_INFO, - - /** - * This side data contains encryption info for how to decrypt the packet. - * The format is not part of ABI, use av_encryption_info_* methods to access. - */ - AV_PKT_DATA_ENCRYPTION_INFO, - - /** - * The number of side data types. + * The number of side data elements (in fact a bit more than it). * This is not part of the public API/ABI in the sense that it may * change when new side data types are added. * This must stay the last enum value. @@ -1474,12 +1723,6 @@ typedef struct AVPacket { * outside the packet may be followed. */ #define AV_PKT_FLAG_TRUSTED 0x0008 -/** - * Flag is used to indicate packets that contain frames that can - * be discarded by the decoder. I.e. Non-reference frames. - */ -#define AV_PKT_FLAG_DISPOSABLE 0x0010 - enum AVSideDataParamChangeFlags { AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001, @@ -1525,6 +1768,13 @@ typedef struct AVCodecContext { enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */ const struct AVCodec *codec; +#if FF_API_CODEC_NAME + /** + * @deprecated this field is not used for anything in libavcodec + */ + attribute_deprecated + char codec_name[32]; +#endif enum AVCodecID codec_id; /* see AV_CODEC_ID_xxx */ /** @@ -1542,6 +1792,14 @@ typedef struct AVCodecContext { */ unsigned int codec_tag; +#if FF_API_STREAM_CODEC_TAG + /** + * @deprecated this field is unused + */ + attribute_deprecated + unsigned int stream_codec_tag; +#endif + void *priv_data; /** @@ -1704,6 +1962,10 @@ typedef struct AVCodecContext { */ int coded_width, coded_height; +#if FF_API_ASPECT_EXTENDED +#define FF_ASPECT_EXTENDED 15 +#endif + /** * the number of pictures in a group of pictures, or 0 for intra_only * - encoding: Set by user. @@ -1726,6 +1988,14 @@ typedef struct AVCodecContext { */ enum AVPixelFormat pix_fmt; +#if FF_API_MOTION_EST + /** + * This option does nothing + * @deprecated use codec private options instead + */ + attribute_deprecated int me_method; +#endif + /** * If non NULL, 'draw_horiz_band' is called by the libavcodec * decoder to draw a horizontal band. It improves cache usage. Not @@ -1785,6 +2055,12 @@ typedef struct AVCodecContext { */ float b_quant_factor; +#if FF_API_RC_STRATEGY + /** @deprecated use codec private option instead */ + attribute_deprecated int rc_strategy; +#define FF_RC_STRATEGY_XVID 1 +#endif + #if FF_API_PRIVATE_OPT /** @deprecated use encoder private options instead */ attribute_deprecated @@ -1978,6 +2254,26 @@ typedef struct AVCodecContext { */ int me_subpel_quality; +#if FF_API_AFD + /** + * DTG active format information (additional aspect ratio + * information only used in DVB MPEG-2 transport streams) + * 0 if not set. + * + * - encoding: unused + * - decoding: Set by decoder. + * @deprecated Deprecated in favor of AVSideData + */ + attribute_deprecated int dtg_active_format; +#define FF_DTG_AFD_SAME 8 +#define FF_DTG_AFD_4_3 9 +#define FF_DTG_AFD_16_9 10 +#define FF_DTG_AFD_14_9 11 +#define FF_DTG_AFD_4_3_SP_14_9 13 +#define FF_DTG_AFD_16_9_SP_14_9 14 +#define FF_DTG_AFD_SP_4_3 15 +#endif /* FF_API_AFD */ + /** * maximum motion estimation search range in subpel units * If 0 then no limit. @@ -1987,6 +2283,19 @@ typedef struct AVCodecContext { */ int me_range; +#if FF_API_QUANT_BIAS + /** + * @deprecated use encoder private option instead + */ + attribute_deprecated int intra_quant_bias; +#define FF_DEFAULT_QUANT_BIAS 999999 + + /** + * @deprecated use encoder private option instead + */ + attribute_deprecated int inter_quant_bias; +#endif + /** * slice flags * - encoding: unused @@ -1997,6 +2306,16 @@ typedef struct AVCodecContext { #define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics) #define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1) +#if FF_API_XVMC + /** + * XVideo Motion Acceleration + * - encoding: forbidden + * - decoding: set by decoder + * @deprecated XvMC doesn't need it anymore. + */ + attribute_deprecated int xvmc_acceleration; +#endif /* FF_API_XVMC */ + /** * macroblock decision mode * - encoding: Set by user. @@ -2031,6 +2350,20 @@ typedef struct AVCodecContext { int noise_reduction; #endif +#if FF_API_MPV_OPT + /** + * @deprecated this field is unused + */ + attribute_deprecated + int me_threshold; + + /** + * @deprecated this field is unused + */ + attribute_deprecated + int mb_threshold; +#endif + /** * precision of the intra DC coefficient - 8 * - encoding: Set by user. @@ -2052,6 +2385,14 @@ typedef struct AVCodecContext { */ int skip_bottom; +#if FF_API_MPV_OPT + /** + * @deprecated use encoder private options instead + */ + attribute_deprecated + float border_masking; +#endif + /** * minimum MB Lagrange multiplier * - encoding: Set by user. @@ -2106,6 +2447,15 @@ typedef struct AVCodecContext { int chromaoffset; #endif +#if FF_API_UNUSED_MEMBERS + /** + * Multiplied by qscale for each frame and added to scene_change_score. + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int scenechange_factor; +#endif + /** * Note: Value depends upon the compare function used for fullpel ME. * - encoding: Set by user. @@ -2368,6 +2718,19 @@ typedef struct AVCodecContext { */ int max_qdiff; +#if FF_API_MPV_OPT + /** + * @deprecated use encoder private options instead + */ + attribute_deprecated + float rc_qsquish; + + attribute_deprecated + float rc_qmod_amp; + attribute_deprecated + int rc_qmod_freq; +#endif + /** * decoder bitstream buffer size * - encoding: Set by user. @@ -2383,6 +2746,14 @@ typedef struct AVCodecContext { int rc_override_count; RcOverride *rc_override; +#if FF_API_MPV_OPT + /** + * @deprecated use encoder private options instead + */ + attribute_deprecated + const char *rc_eq; +#endif + /** * maximum bitrate * - encoding: Set by user. @@ -2397,6 +2768,17 @@ typedef struct AVCodecContext { */ int64_t rc_min_rate; +#if FF_API_MPV_OPT + /** + * @deprecated use encoder private options instead + */ + attribute_deprecated + float rc_buffer_aggressivity; + + attribute_deprecated + float rc_initial_cplx; +#endif + /** * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow. * - encoding: Set by user. @@ -2423,6 +2805,9 @@ typedef struct AVCodecContext { #define FF_CODER_TYPE_AC 1 #define FF_CODER_TYPE_RAW 2 #define FF_CODER_TYPE_RLE 3 +#if FF_API_UNUSED_MEMBERS +#define FF_CODER_TYPE_DEFLATE 4 +#endif /* FF_API_UNUSED_MEMBERS */ /** * @deprecated use encoder private options instead */ @@ -2436,6 +2821,20 @@ typedef struct AVCodecContext { int context_model; #endif +#if FF_API_MPV_OPT + /** + * @deprecated use encoder private options instead + */ + attribute_deprecated + int lmin; + + /** + * @deprecated use encoder private options instead + */ + attribute_deprecated + int lmax; +#endif + #if FF_API_PRIVATE_OPT /** @deprecated use encoder private options instead */ attribute_deprecated @@ -2546,10 +2945,16 @@ typedef struct AVCodecContext { */ int workaround_bugs; #define FF_BUG_AUTODETECT 1 ///< autodetection +#if FF_API_OLD_MSMPEG4 +#define FF_BUG_OLD_MSMPEG4 2 +#endif #define FF_BUG_XVID_ILACE 4 #define FF_BUG_UMP4 8 #define FF_BUG_NO_PADDING 16 #define FF_BUG_AMV 32 +#if FF_API_AC_VLC +#define FF_BUG_AC_VLC 0 ///< Will be removed, libavcodec can now handle these non-compliant files by default. +#endif #define FF_BUG_QPEL_CHROMA 64 #define FF_BUG_STD_QPEL 128 #define FF_BUG_QPEL_CHROMA2 256 @@ -2610,6 +3015,9 @@ typedef struct AVCodecContext { #define FF_DEBUG_DCT_COEFF 0x00000040 #define FF_DEBUG_SKIP 0x00000080 #define FF_DEBUG_STARTCODE 0x00000100 +#if FF_API_UNUSED_MEMBERS +#define FF_DEBUG_PTS 0x00000200 +#endif /* FF_API_UNUSED_MEMBERS */ #define FF_DEBUG_ER 0x00000400 #define FF_DEBUG_MMCO 0x00000800 #define FF_DEBUG_BUGS 0x00001000 @@ -2671,7 +3079,7 @@ typedef struct AVCodecContext { * - encoding: unused. * - decoding: Set by libavcodec */ - const struct AVHWAccel *hwaccel; + struct AVHWAccel *hwaccel; /** * Hardware accelerator context. @@ -2717,12 +3125,27 @@ typedef struct AVCodecContext { #define FF_IDCT_SIMPLEMMX 3 #define FF_IDCT_ARM 7 #define FF_IDCT_ALTIVEC 8 +#if FF_API_ARCH_SH4 +#define FF_IDCT_SH4 9 +#endif #define FF_IDCT_SIMPLEARM 10 +#if FF_API_UNUSED_MEMBERS +#define FF_IDCT_IPP 13 +#endif /* FF_API_UNUSED_MEMBERS */ #define FF_IDCT_XVID 14 +#if FF_API_IDCT_XVIDMMX +#define FF_IDCT_XVIDMMX 14 +#endif /* FF_API_IDCT_XVIDMMX */ #define FF_IDCT_SIMPLEARMV5TE 16 #define FF_IDCT_SIMPLEARMV6 17 +#if FF_API_ARCH_SPARC +#define FF_IDCT_SIMPLEVIS 18 +#endif #define FF_IDCT_FAAN 20 #define FF_IDCT_SIMPLENEON 22 +#if FF_API_ARCH_ALPHA +#define FF_IDCT_SIMPLEALPHA 23 +#endif #define FF_IDCT_NONE 24 /* Used by XvMC to extract IDCT coefficients with FF_IDCT_PERM_NONE */ #define FF_IDCT_SIMPLEAUTO 128 @@ -2933,18 +3356,6 @@ typedef struct AVCodecContext { #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 #define FF_PROFILE_HEVC_REXT 4 -#define FF_PROFILE_AV1_MAIN 0 -#define FF_PROFILE_AV1_HIGH 1 -#define FF_PROFILE_AV1_PROFESSIONAL 2 - -#define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0 -#define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1 -#define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2 -#define FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3 -#define FF_PROFILE_MJPEG_JPEG_LS 0xf7 - -#define FF_PROFILE_SBC_MSBC 1 - /** * level * - encoding: Set by user. @@ -2985,6 +3396,15 @@ typedef struct AVCodecContext { uint8_t *subtitle_header; int subtitle_header_size; +#if FF_API_ERROR_RATE + /** + * @deprecated use the 'error_rate' private AVOption of the mpegvideo + * encoders + */ + attribute_deprecated + int error_rate; +#endif + #if FF_API_VBV_DELAY /** * VBV delay coded in the last frame (in periods of a 27 MHz clock). @@ -3096,7 +3516,6 @@ typedef struct AVCodecContext { #define FF_SUB_CHARENC_MODE_DO_NOTHING -1 ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance) #define FF_SUB_CHARENC_MODE_AUTOMATIC 0 ///< libavcodec will select the mode itself #define FF_SUB_CHARENC_MODE_PRE_DECODER 1 ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv -#define FF_SUB_CHARENC_MODE_IGNORE 2 ///< neither convert the subtitles, nor check them for valid UTF-8 /** * Skip processing alpha if supported by codec. @@ -3283,57 +3702,24 @@ typedef struct AVCodecContext { * (with the display dimensions being determined by the crop_* fields). */ int apply_cropping; - - /* - * Video decoding only. Sets the number of extra hardware frames which - * the decoder will allocate for use by the caller. This must be set - * before avcodec_open2() is called. - * - * Some hardware decoders require all frames that they will use for - * output to be defined in advance before decoding starts. For such - * decoders, the hardware frame pool must therefore be of a fixed size. - * The extra frames set here are on top of any number that the decoder - * needs internally in order to operate normally (for example, frames - * used as reference pictures). - */ - int extra_hw_frames; } AVCodecContext; -#if FF_API_CODEC_GET_SET -/** - * Accessors for some AVCodecContext fields. These used to be provided for ABI - * compatibility, and do not need to be used anymore. - */ -attribute_deprecated AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx); -attribute_deprecated void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val); -attribute_deprecated const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx); -attribute_deprecated void av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc); -attribute_deprecated unsigned av_codec_get_codec_properties(const AVCodecContext *avctx); -#if FF_API_LOWRES -attribute_deprecated int av_codec_get_lowres(const AVCodecContext *avctx); -attribute_deprecated void av_codec_set_lowres(AVCodecContext *avctx, int val); -#endif -attribute_deprecated int av_codec_get_seek_preroll(const AVCodecContext *avctx); -attribute_deprecated void av_codec_set_seek_preroll(AVCodecContext *avctx, int val); -attribute_deprecated uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx); -attribute_deprecated void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val); -#endif /** * AVProfile. @@ -3343,61 +3729,6 @@ typedef struct AVProfile { const char *name; ///< short name for the profile } AVProfile; -enum { - /** - * The codec supports this format via the hw_device_ctx interface. - * - * When selecting this format, AVCodecContext.hw_device_ctx should - * have been set to a device of the specified type before calling - * avcodec_open2(). - */ - AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01, - /** - * The codec supports this format via the hw_frames_ctx interface. - * - * When selecting this format for a decoder, - * AVCodecContext.hw_frames_ctx should be set to a suitable frames - * context inside the get_format() callback. The frames context - * must have been created on a device of the specified type. - */ - AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02, - /** - * The codec supports this format by some internal method. - * - * This format can be selected without any additional configuration - - * no device or frames context is required. - */ - AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04, - /** - * The codec supports this format by some ad-hoc method. - * - * Additional settings and/or function calls are required. See the - * codec-specific documentation for details. (Methods requiring - * this sort of configuration are deprecated and others should be - * used in preference.) - */ - AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08, -}; - -typedef struct AVCodecHWConfig { - /** - * A hardware pixel format which the codec can use. - */ - enum AVPixelFormat pix_fmt; - /** - * Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible - * setup methods which can be used with this configuration. - */ - int methods; - /** - * The device type associated with the configuration. - * - * Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and - * AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused. - */ - enum AVHWDeviceType device_type; -} AVCodecHWConfig; - typedef struct AVCodecDefault AVCodecDefault; struct AVSubtitle; @@ -3434,18 +3765,6 @@ typedef struct AVCodec { const AVClass *priv_class; ///< AVClass for the private context const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} - /** - * Group name of the codec implementation. - * This is a short symbolic name of the wrapper backing this codec. A - * wrapper uses some kind of external implementation for the codec, such - * as an external library, or a codec implementation provided by the OS or - * the hardware. - * If this field is NULL, this is a builtin, libavcodec native codec. - * If non-NULL, this will be the suffix in AVCodec.name in most cases - * (usually AVCodec.name will be of the form "<codec_name>_<wrapper_name>"). - */ - const char *wrapper_name; - /***************************************************************** * No fields below this line are part of the public API. They * may not be used outside of libavcodec and can be changed and @@ -3482,9 +3801,6 @@ typedef struct AVCodec { /** * Initialize codec static data, called from avcodec_register(). - * - * This is not intended for time consuming operations as it is - * run for every codec regardless of that codec being used. */ void (*init_static_data)(struct AVCodec *codec); @@ -3538,39 +3854,14 @@ typedef struct AVCodec { * packets before decoding. */ const char *bsfs; - - /** - * Array of pointers to hardware configurations supported by the codec, - * or NULL if no hardware supported. The array is terminated by a NULL - * pointer. - * - * The user can only access this field via avcodec_get_hw_config(). - */ - const struct AVCodecHWConfigInternal **hw_configs; } AVCodec; -#if FF_API_CODEC_GET_SET -attribute_deprecated int av_codec_get_max_lowres(const AVCodec *codec); -#endif struct MpegEncContext; /** - * Retrieve supported hardware configurations for a codec. - * - * Values of index from zero to some maximum return the indexed configuration - * descriptor; all other values return NULL. If the codec does not support - * any hardware configurations then it will always return NULL. - */ -const AVCodecHWConfig *avcodec_get_hw_config(const AVCodec *codec, int index); - -/** * @defgroup lavc_hwaccel AVHWAccel - * - * @note Nothing in this structure should be accessed by the user. At some - * point in future it will not be externally visible at all. - * * @{ */ typedef struct AVHWAccel { @@ -3615,6 +3906,7 @@ typedef struct AVHWAccel { * New public fields should be added right above. ***************************************************************** */ + struct AVHWAccel *next; /** * Allocate a custom buffer @@ -3638,20 +3930,6 @@ typedef struct AVHWAccel { int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size); /** - * Callback for parameter data (SPS/PPS/VPS etc). - * - * Useful for hardware decoders which keep persistent state about the - * video parameters, and need to receive any changes to update that state. - * - * @param avctx the codec context - * @param type the nal unit type - * @param buf the nal unit data buffer - * @param buf_size the size of the nal unit in bytes - * @return zero if successful, a negative value otherwise - */ - int (*decode_params)(AVCodecContext *avctx, int type, const uint8_t *buf, uint32_t buf_size); - - /** * Callback for each slice. * * Meaningful slice information (codec specific) is guaranteed to @@ -3723,16 +4001,6 @@ typedef struct AVHWAccel { * Internal hwaccel capabilities. */ int caps_internal; - - /** - * Fill the given hw_frames context with current codec parameters. Called - * from get_format. Refer to avcodec_get_hw_frames_parameters() for - * details. - * - * This CAN be called before AVHWAccel.init is called, and you must assume - * that avctx->hwaccel_priv_data is invalid. - */ - int (*frame_params)(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx); } AVHWAccel; /** @@ -4025,25 +4293,11 @@ typedef struct AVCodecParameters { } AVCodecParameters; /** - * Iterate over all registered codecs. - * - * @param opaque a pointer where libavcodec will store the iteration state. Must - * point to NULL to start the iteration. - * - * @return the next registered codec or NULL when the iteration is - * finished - */ -const AVCodec *av_codec_iterate(void **opaque); - -#if FF_API_NEXT -/** * If c is NULL, returns the first registered codec, * if c is non-NULL, returns the next registered codec after c, * or NULL if c is the last one. */ -attribute_deprecated AVCodec *av_codec_next(const AVCodec *c); -#endif /** * Return the LIBAVCODEC_VERSION_INT constant. @@ -4060,7 +4314,6 @@ const char *avcodec_configuration(void); */ const char *avcodec_license(void); -#if FF_API_NEXT /** * Register the codec codec and initialize libavcodec. * @@ -4069,7 +4322,6 @@ const char *avcodec_license(void); * * @see avcodec_register_all() */ -attribute_deprecated void avcodec_register(AVCodec *codec); /** @@ -4082,9 +4334,7 @@ void avcodec_register(AVCodec *codec); * @see av_register_codec_parser * @see av_register_bitstream_filter */ -attribute_deprecated void avcodec_register_all(void); -#endif /** * Allocate an AVCodecContext and set its fields to default values. The @@ -4365,7 +4615,7 @@ int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size); * @warning This is a hack - the packet memory allocation stuff is broken. The * packet is allocated if it was not really allocated. * - * @deprecated Use av_packet_ref or av_packet_make_refcounted + * @deprecated Use av_packet_ref */ attribute_deprecated int av_dup_packet(AVPacket *pkt); @@ -4537,33 +4787,6 @@ void av_packet_move_ref(AVPacket *dst, AVPacket *src); int av_packet_copy_props(AVPacket *dst, const AVPacket *src); /** - * Ensure the data described by a given packet is reference counted. - * - * @note This function does not ensure that the reference will be writable. - * Use av_packet_make_writable instead for that purpose. - * - * @see av_packet_ref - * @see av_packet_make_writable - * - * @param pkt packet whose data should be made reference counted. - * - * @return 0 on success, a negative AVERROR on error. On failure, the - * packet is unchanged. - */ -int av_packet_make_refcounted(AVPacket *pkt); - -/** - * Create a writable reference for the data described by a given packet, - * avoiding data copy if possible. - * - * @param pkt Packet whose data should be made writable. - * - * @return 0 on success, a negative AVERROR on failure. On failure, the - * packet is unchanged. - */ -int av_packet_make_writable(AVPacket *pkt); - -/** * Convert valid timing fields (timestamps / durations) in a packet from one * timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be * ignored. @@ -4608,6 +4831,21 @@ AVCodec *avcodec_find_decoder_by_name(const char *name); */ int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags); +#if FF_API_EMU_EDGE +/** + * Return the amount of padding in pixels which the get_buffer callback must + * provide around the edge of the image for codecs which do not have the + * CODEC_FLAG_EMU_EDGE flag. + * + * @return Required padding in pixels. + * + * @deprecated CODEC_FLAG_EMU_EDGE is deprecated, so this function is no longer + * needed + */ +attribute_deprecated +unsigned avcodec_get_edge_width(void); +#endif + /** * Modify width and height values so that they will result in a memory * buffer that is acceptable for the codec if you do not use any horizontal @@ -4913,109 +5151,6 @@ int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame); */ int avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt); -/** - * Create and return a AVHWFramesContext with values adequate for hardware - * decoding. This is meant to get called from the get_format callback, and is - * a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx. - * This API is for decoding with certain hardware acceleration modes/APIs only. - * - * The returned AVHWFramesContext is not initialized. The caller must do this - * with av_hwframe_ctx_init(). - * - * Calling this function is not a requirement, but makes it simpler to avoid - * codec or hardware API specific details when manually allocating frames. - * - * Alternatively to this, an API user can set AVCodecContext.hw_device_ctx, - * which sets up AVCodecContext.hw_frames_ctx fully automatically, and makes - * it unnecessary to call this function or having to care about - * AVHWFramesContext initialization at all. - * - * There are a number of requirements for calling this function: - * - * - It must be called from get_format with the same avctx parameter that was - * passed to get_format. Calling it outside of get_format is not allowed, and - * can trigger undefined behavior. - * - The function is not always supported (see description of return values). - * Even if this function returns successfully, hwaccel initialization could - * fail later. (The degree to which implementations check whether the stream - * is actually supported varies. Some do this check only after the user's - * get_format callback returns.) - * - The hw_pix_fmt must be one of the choices suggested by get_format. If the - * user decides to use a AVHWFramesContext prepared with this API function, - * the user must return the same hw_pix_fmt from get_format. - * - The device_ref passed to this function must support the given hw_pix_fmt. - * - After calling this API function, it is the user's responsibility to - * initialize the AVHWFramesContext (returned by the out_frames_ref parameter), - * and to set AVCodecContext.hw_frames_ctx to it. If done, this must be done - * before returning from get_format (this is implied by the normal - * AVCodecContext.hw_frames_ctx API rules). - * - The AVHWFramesContext parameters may change every time time get_format is - * called. Also, AVCodecContext.hw_frames_ctx is reset before get_format. So - * you are inherently required to go through this process again on every - * get_format call. - * - It is perfectly possible to call this function without actually using - * the resulting AVHWFramesContext. One use-case might be trying to reuse a - * previously initialized AVHWFramesContext, and calling this API function - * only to test whether the required frame parameters have changed. - * - Fields that use dynamically allocated values of any kind must not be set - * by the user unless setting them is explicitly allowed by the documentation. - * If the user sets AVHWFramesContext.free and AVHWFramesContext.user_opaque, - * the new free callback must call the potentially set previous free callback. - * This API call may set any dynamically allocated fields, including the free - * callback. - * - * The function will set at least the following fields on AVHWFramesContext - * (potentially more, depending on hwaccel API): - * - * - All fields set by av_hwframe_ctx_alloc(). - * - Set the format field to hw_pix_fmt. - * - Set the sw_format field to the most suited and most versatile format. (An - * implication is that this will prefer generic formats over opaque formats - * with arbitrary restrictions, if possible.) - * - Set the width/height fields to the coded frame size, rounded up to the - * API-specific minimum alignment. - * - Only _if_ the hwaccel requires a pre-allocated pool: set the initial_pool_size - * field to the number of maximum reference surfaces possible with the codec, - * plus 1 surface for the user to work (meaning the user can safely reference - * at most 1 decoded surface at a time), plus additional buffering introduced - * by frame threading. If the hwaccel does not require pre-allocation, the - * field is left to 0, and the decoder will allocate new surfaces on demand - * during decoding. - * - Possibly AVHWFramesContext.hwctx fields, depending on the underlying - * hardware API. - * - * Essentially, out_frames_ref returns the same as av_hwframe_ctx_alloc(), but - * with basic frame parameters set. - * - * The function is stateless, and does not change the AVCodecContext or the - * device_ref AVHWDeviceContext. - * - * @param avctx The context which is currently calling get_format, and which - * implicitly contains all state needed for filling the returned - * AVHWFramesContext properly. - * @param device_ref A reference to the AVHWDeviceContext describing the device - * which will be used by the hardware decoder. - * @param hw_pix_fmt The hwaccel format you are going to return from get_format. - * @param out_frames_ref On success, set to a reference to an _uninitialized_ - * AVHWFramesContext, created from the given device_ref. - * Fields will be set to values required for decoding. - * Not changed if an error is returned. - * @return zero on success, a negative value on error. The following error codes - * have special semantics: - * AVERROR(ENOENT): the decoder does not support this functionality. Setup - * is always manual, or it is a decoder which does not - * support setting AVCodecContext.hw_frames_ctx at all, - * or it is a software format. - * AVERROR(EINVAL): it is known that hardware decoding is not supported for - * this configuration, or the device_ref is not supported - * for the hwaccel referenced by hw_pix_fmt. - */ -int avcodec_get_hw_frames_parameters(AVCodecContext *avctx, - AVBufferRef *device_ref, - enum AVPixelFormat hw_pix_fmt, - AVBufferRef **out_frames_ref); - - /** * @defgroup lavc_parsing Frame parsing @@ -5211,21 +5346,8 @@ typedef struct AVCodecParser { struct AVCodecParser *next; } AVCodecParser; -/** - * Iterate over all registered codec parsers. - * - * @param opaque a pointer where libavcodec will store the iteration state. Must - * point to NULL to start the iteration. - * - * @return the next registered codec parser or NULL when the iteration is - * finished - */ -const AVCodecParser *av_parser_iterate(void **opaque); - -attribute_deprecated AVCodecParser *av_parser_next(const AVCodecParser *c); -attribute_deprecated void av_register_codec_parser(AVCodecParser *parser); AVCodecParserContext *av_parser_init(int codec_id); @@ -5394,6 +5516,103 @@ int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, * @} */ +#if FF_API_AVCODEC_RESAMPLE +/** + * @defgroup lavc_resample Audio resampling + * @ingroup libavc + * @deprecated use libswresample instead + * + * @{ + */ +struct ReSampleContext; +struct AVResampleContext; + +typedef struct ReSampleContext ReSampleContext; + +/** + * Initialize audio resampling context. + * + * @param output_channels number of output channels + * @param input_channels number of input channels + * @param output_rate output sample rate + * @param input_rate input sample rate + * @param sample_fmt_out requested output sample format + * @param sample_fmt_in input sample format + * @param filter_length length of each FIR filter in the filterbank relative to the cutoff frequency + * @param log2_phase_count log2 of the number of entries in the polyphase filterbank + * @param linear if 1 then the used FIR filter will be linearly interpolated + between the 2 closest, if 0 the closest will be used + * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate + * @return allocated ReSampleContext, NULL if error occurred + */ +attribute_deprecated +ReSampleContext *av_audio_resample_init(int output_channels, int input_channels, + int output_rate, int input_rate, + enum AVSampleFormat sample_fmt_out, + enum AVSampleFormat sample_fmt_in, + int filter_length, int log2_phase_count, + int linear, double cutoff); + +attribute_deprecated +int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples); + +/** + * Free resample context. + * + * @param s a non-NULL pointer to a resample context previously + * created with av_audio_resample_init() + */ +attribute_deprecated +void audio_resample_close(ReSampleContext *s); + + +/** + * Initialize an audio resampler. + * Note, if either rate is not an integer then simply scale both rates up so they are. + * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq + * @param log2_phase_count log2 of the number of entries in the polyphase filterbank + * @param linear If 1 then the used FIR filter will be linearly interpolated + between the 2 closest, if 0 the closest will be used + * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate + */ +attribute_deprecated +struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff); + +/** + * Resample an array of samples using a previously configured context. + * @param src an array of unconsumed samples + * @param consumed the number of samples of src which have been consumed are returned here + * @param src_size the number of unconsumed samples available + * @param dst_size the amount of space in samples available in dst + * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context. + * @return the number of samples written in dst or -1 if an error occurred + */ +attribute_deprecated +int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx); + + +/** + * Compensate samplerate/timestamp drift. The compensation is done by changing + * the resampler parameters, so no audible clicks or similar distortions occur + * @param compensation_distance distance in output samples over which the compensation should be performed + * @param sample_delta number of output samples which should be output less + * + * example: av_resample_compensate(c, 10, 500) + * here instead of 510 samples only 500 samples would be output + * + * note, due to rounding the actual compensation might be slightly different, + * especially if the compensation_distance is large and the in_rate used during init is small + */ +attribute_deprecated +void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance); +attribute_deprecated +void av_resample_close(struct AVResampleContext *c); + +/** + * @} + */ +#endif + #if FF_API_AVPICTURE /** * @addtogroup lavc_picture @@ -5534,6 +5753,14 @@ enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const en * @} */ +#if FF_API_SET_DIMENSIONS +/** + * @deprecated this function is not supposed to be used from outside of lavc + */ +attribute_deprecated +void avcodec_set_dimensions(AVCodecContext *s, int width, int height); +#endif + #if FF_API_TAG_STRING /** * Put a string representing the codec tag codec_tag in buf. @@ -5770,42 +5997,84 @@ typedef struct AVBitStreamFilter { #if FF_API_OLD_BSF /** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use the new bitstream filtering API (using AVBSFContext). + * Register a bitstream filter. + * + * The filter will be accessible to the application code through + * av_bitstream_filter_next() or can be directly initialized with + * av_bitstream_filter_init(). + * + * @see avcodec_register_all() */ attribute_deprecated void av_register_bitstream_filter(AVBitStreamFilter *bsf); + /** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_get_by_name(), av_bsf_alloc(), and av_bsf_init() - * from the new bitstream filtering API (using AVBSFContext). + * Create and initialize a bitstream filter context given a bitstream + * filter name. + * + * The returned context must be freed with av_bitstream_filter_close(). + * + * @param name the name of the bitstream filter + * @return a bitstream filter context if a matching filter was found + * and successfully initialized, NULL otherwise */ attribute_deprecated AVBitStreamFilterContext *av_bitstream_filter_init(const char *name); + /** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_send_packet() and av_bsf_receive_packet() from the - * new bitstream filtering API (using AVBSFContext). + * Filter bitstream. + * + * This function filters the buffer buf with size buf_size, and places the + * filtered buffer in the buffer pointed to by poutbuf. + * + * The output buffer must be freed by the caller. + * + * @param bsfc bitstream filter context created by av_bitstream_filter_init() + * @param avctx AVCodecContext accessed by the filter, may be NULL. + * If specified, this must point to the encoder context of the + * output stream the packet is sent to. + * @param args arguments which specify the filter configuration, may be NULL + * @param poutbuf pointer which is updated to point to the filtered buffer + * @param poutbuf_size pointer which is updated to the filtered buffer size in bytes + * @param buf buffer containing the data to filter + * @param buf_size size in bytes of buf + * @param keyframe set to non-zero if the buffer to filter corresponds to a key-frame packet data + * @return >= 0 in case of success, or a negative error code in case of failure + * + * If the return value is positive, an output buffer is allocated and + * is available in *poutbuf, and is distinct from the input buffer. + * + * If the return value is 0, the output buffer is not allocated and + * should be considered identical to the input buffer, or in case + * *poutbuf was set it points to the input buffer (not necessarily to + * its starting address). A special case is if *poutbuf was set to NULL and + * *poutbuf_size was set to 0, which indicates the packet should be dropped. */ attribute_deprecated int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char *args, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size, int keyframe); + /** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_free() from the new bitstream filtering API (using - * AVBSFContext). + * Release bitstream filter context. + * + * @param bsf the bitstream filter context created with + * av_bitstream_filter_init(), can be NULL */ attribute_deprecated void av_bitstream_filter_close(AVBitStreamFilterContext *bsf); + /** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_iterate() from the new bitstream filtering API (using - * AVBSFContext). + * If f is NULL, return the first registered bitstream filter, + * if f is non-NULL, return the next registered bitstream filter + * after f, or NULL if f is the last one. + * + * This function can be used to iterate over all registered bitstream + * filters. */ attribute_deprecated -const AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f); +AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f); #endif /** @@ -5823,11 +6092,7 @@ const AVBitStreamFilter *av_bsf_get_by_name(const char *name); * @return the next registered bitstream filter or NULL when the iteration is * finished */ -const AVBitStreamFilter *av_bsf_iterate(void **opaque); -#if FF_API_NEXT -attribute_deprecated const AVBitStreamFilter *av_bsf_next(void **opaque); -#endif /** * Allocate a context for a given bitstream filter. The caller must fill in the @@ -6017,32 +6282,51 @@ void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size); */ unsigned int av_xiphlacing(unsigned char *s, unsigned int v); -#if FF_API_USER_VISIBLE_AVHWACCEL +#if FF_API_MISSING_SAMPLE /** - * Register the hardware accelerator hwaccel. - * - * @deprecated This function doesn't do anything. + * Log a generic warning message about a missing feature. This function is + * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.) + * only, and would normally not be used by applications. + * @param[in] avc a pointer to an arbitrary struct of which the first field is + * a pointer to an AVClass struct + * @param[in] feature string containing the name of the missing feature + * @param[in] want_sample indicates if samples are wanted which exhibit this feature. + * If want_sample is non-zero, additional verbiage will be added to the log + * message which tells the user how to report samples to the development + * mailing list. + * @deprecated Use avpriv_report_missing_feature() instead. */ attribute_deprecated +void av_log_missing_feature(void *avc, const char *feature, int want_sample); + +/** + * Log a generic warning message asking for a sample. This function is + * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.) + * only, and would normally not be used by applications. + * @param[in] avc a pointer to an arbitrary struct of which the first field is + * a pointer to an AVClass struct + * @param[in] msg string containing an optional message, or NULL if no message + * @deprecated Use avpriv_request_sample() instead. + */ +attribute_deprecated +void av_log_ask_for_sample(void *avc, const char *msg, ...) av_printf_format(2, 3); +#endif /* FF_API_MISSING_SAMPLE */ + +/** + * Register the hardware accelerator hwaccel. + */ void av_register_hwaccel(AVHWAccel *hwaccel); /** * If hwaccel is NULL, returns the first registered hardware accelerator, * if hwaccel is non-NULL, returns the next registered hardware accelerator * after hwaccel, or NULL if hwaccel is the last one. - * - * @deprecated AVHWaccel structures contain no user-serviceable parts, so - * this function should not be used. */ -attribute_deprecated AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel); -#endif -#if FF_API_LOCKMGR + /** * Lock operation used by lockmgr - * - * @deprecated Deprecated together with av_lockmgr_register(). */ enum AVLockOp { AV_LOCK_CREATE, ///< Create a mutex @@ -6073,13 +6357,8 @@ enum AVLockOp { * mechanism (i.e. do not use a single static object to * implement your lock manager). If cb is set to NULL the * lockmgr will be unregistered. - * - * @deprecated This function does nothing, and always returns 0. Be sure to - * build with thread support to get basic thread safety. */ -attribute_deprecated int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op)); -#endif /** * Get the type of the given codec. diff --git a/media/ffvpx/libavcodec/avcodec.symbols b/media/ffvpx/libavcodec/avcodec.symbols index d34c6ed7e..cf507f722 100644 --- a/media/ffvpx/libavcodec/avcodec.symbols +++ b/media/ffvpx/libavcodec/avcodec.symbols @@ -1,3 +1,7 @@ +av_bitstream_filter_close +av_bitstream_filter_filter +av_bitstream_filter_init +av_bitstream_filter_next av_codec_ffversion av_codec_get_chroma_intra_matrix av_codec_get_codec_descriptor @@ -30,6 +34,8 @@ av_grow_packet av_hwaccel_next av_init_packet av_lockmgr_register +av_log_ask_for_sample +av_log_missing_feature av_new_packet av_packet_copy_props av_packet_free_side_data @@ -51,11 +57,17 @@ av_parser_close av_parser_init av_parser_next av_parser_parse2 -av_rdft_calc -av_rdft_end -av_rdft_init +av_picture_copy +av_picture_crop +av_picture_pad +av_qsv_alloc_context +av_register_bitstream_filter av_register_codec_parser av_register_hwaccel +av_resample +av_resample_close +av_resample_compensate +av_resample_init av_shrink_packet av_vorbis_parse_frame av_vorbis_parse_frame_flags @@ -82,23 +94,36 @@ avcodec_descriptor_get_by_name avcodec_descriptor_next avcodec_enum_to_chroma_pos avcodec_fill_audio_frame +avcodec_find_best_pix_fmt2 +avcodec_find_best_pix_fmt_of_2 +avcodec_find_best_pix_fmt_of_list avcodec_find_decoder avcodec_find_decoder_by_name avcodec_find_encoder avcodec_find_encoder_by_name avcodec_flush_buffers avcodec_free_context +avcodec_get_chroma_sub_sample avcodec_get_class avcodec_get_context_defaults3 +avcodec_get_edge_width avcodec_get_frame_class avcodec_get_name +avcodec_get_pix_fmt_loss avcodec_get_subtitle_rect_class avcodec_get_type avcodec_is_open avcodec_license avcodec_open2 +avcodec_pix_fmt_to_codec_tag avcodec_register avcodec_register_all +avcodec_set_dimensions avcodec_string avcodec_version +avpicture_alloc +avpicture_fill +avpicture_free +avpicture_get_size +avpicture_layout avsubtitle_free diff --git a/media/ffvpx/libavcodec/avpacket.c b/media/ffvpx/libavcodec/avpacket.c index 99a0c1383..d1f4ea9eb 100644 --- a/media/ffvpx/libavcodec/avpacket.c +++ b/media/ffvpx/libavcodec/avpacket.c @@ -479,6 +479,34 @@ int av_packet_split_side_data(AVPacket *pkt){ } #endif +#if FF_API_MERGE_SD +int ff_packet_split_and_drop_side_data(AVPacket *pkt){ + if (!pkt->side_data_elems && pkt->size >12 && AV_RB64(pkt->data + pkt->size - 8) == FF_MERGE_MARKER){ + int i; + unsigned int size; + uint8_t *p; + + p = pkt->data + pkt->size - 8 - 5; + for (i=1; ; i++){ + size = AV_RB32(p); + if (size>INT_MAX - 5 || p - pkt->data < size) + return 0; + if (p[4]&128) + break; + if (p - pkt->data < size + 5) + return 0; + p-= size+5; + if (i > AV_PKT_DATA_NB) + return 0; + } + pkt->size = p - pkt->data - size; + av_assert0(pkt->size >= 0); + return 1; + } + return 0; +} +#endif + uint8_t *av_packet_pack_dictionary(AVDictionary *dict, int *size) { AVDictionaryEntry *t = NULL; @@ -571,8 +599,6 @@ FF_ENABLE_DEPRECATION_WARNINGS dst->flags = src->flags; dst->stream_index = src->stream_index; - dst->side_data = NULL; - dst->side_data_elems = 0; for (i = 0; i < src->side_data_elems; i++) { enum AVPacketSideDataType type = src->side_data[i].type; int size = src->side_data[i].size; @@ -652,45 +678,6 @@ void av_packet_move_ref(AVPacket *dst, AVPacket *src) src->size = 0; } -int av_packet_make_refcounted(AVPacket *pkt) -{ - int ret; - - if (pkt->buf) - return 0; - - ret = packet_alloc(&pkt->buf, pkt->size); - if (ret < 0) - return ret; - if (pkt->size) - memcpy(pkt->buf->data, pkt->data, pkt->size); - - pkt->data = pkt->buf->data; - - return 0; -} - -int av_packet_make_writable(AVPacket *pkt) -{ - AVBufferRef *buf = NULL; - int ret; - - if (pkt->buf && av_buffer_is_writable(pkt->buf)) - return 0; - - ret = packet_alloc(&buf, pkt->size); - if (ret < 0) - return ret; - if (pkt->size) - memcpy(buf->data, pkt->data, pkt->size); - - av_buffer_unref(&pkt->buf); - pkt->buf = buf; - pkt->data = buf->data; - - return 0; -} - void av_packet_rescale_ts(AVPacket *pkt, AVRational src_tb, AVRational dst_tb) { if (pkt->pts != AV_NOPTS_VALUE) diff --git a/media/ffvpx/libavcodec/bit_depth_template.c b/media/ffvpx/libavcodec/bit_depth_template.c index d44d47ea4..80184892f 100644 --- a/media/ffvpx/libavcodec/bit_depth_template.c +++ b/media/ffvpx/libavcodec/bit_depth_template.c @@ -29,7 +29,6 @@ # undef pixel2 # undef pixel4 # undef dctcoef -# undef idctin # undef INIT_CLIP # undef no_rnd_avg_pixel4 # undef rnd_avg_pixel4 @@ -54,16 +53,6 @@ # define pixel4 uint64_t # define dctcoef int32_t -#ifdef IN_IDCT_DEPTH -#if IN_IDCT_DEPTH == 32 -# define idctin int32_t -#else -# define idctin int16_t -#endif -#else -# define idctin int16_t -#endif - # define INIT_CLIP # define no_rnd_avg_pixel4 no_rnd_avg64 # define rnd_avg_pixel4 rnd_avg64 @@ -82,7 +71,6 @@ # define pixel2 uint16_t # define pixel4 uint32_t # define dctcoef int16_t -# define idctin int16_t # define INIT_CLIP # define no_rnd_avg_pixel4 no_rnd_avg32 @@ -99,10 +87,7 @@ # define CLIP(a) av_clip_uint8(a) #endif -#define FUNC3(a, b, c) a ## _ ## b ## c +#define FUNC3(a, b, c) a ## _ ## b ## c #define FUNC2(a, b, c) FUNC3(a, b, c) #define FUNC(a) FUNC2(a, BIT_DEPTH,) #define FUNCC(a) FUNC2(a, BIT_DEPTH, _c) -#define FUNC4(a, b, c) a ## _int ## b ## _ ## c ## bit -#define FUNC5(a, b, c) FUNC4(a, b, c) -#define FUNC6(a) FUNC5(a, IN_IDCT_DEPTH, BIT_DEPTH) diff --git a/media/ffvpx/libavcodec/bitstream_filter.c b/media/ffvpx/libavcodec/bitstream_filter.c index ca11ed371..8599b90d4 100644 --- a/media/ffvpx/libavcodec/bitstream_filter.c +++ b/media/ffvpx/libavcodec/bitstream_filter.c @@ -28,15 +28,15 @@ #if FF_API_OLD_BSF FF_DISABLE_DEPRECATION_WARNINGS -const AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f) +AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f) { const AVBitStreamFilter *filter = NULL; void *opaque = NULL; while (filter != f) - filter = av_bsf_iterate(&opaque); + filter = av_bsf_next(&opaque); - return av_bsf_iterate(&opaque); + return av_bsf_next(&opaque); } void av_register_bitstream_filter(AVBitStreamFilter *bsf) @@ -131,7 +131,7 @@ int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc, return ret; } - pkt.data = (uint8_t *)buf; + pkt.data = buf; pkt.size = buf_size; ret = av_bsf_send_packet(priv->ctx, &pkt); diff --git a/media/ffvpx/libavcodec/bitstream_filters.c b/media/ffvpx/libavcodec/bitstream_filters.c index 18b698a85..ce34de640 100644 --- a/media/ffvpx/libavcodec/bitstream_filters.c +++ b/media/ffvpx/libavcodec/bitstream_filters.c @@ -28,34 +28,26 @@ extern const AVBitStreamFilter ff_aac_adtstoasc_bsf; extern const AVBitStreamFilter ff_chomp_bsf; extern const AVBitStreamFilter ff_dump_extradata_bsf; extern const AVBitStreamFilter ff_dca_core_bsf; -extern const AVBitStreamFilter ff_eac3_core_bsf; extern const AVBitStreamFilter ff_extract_extradata_bsf; -extern const AVBitStreamFilter ff_filter_units_bsf; -extern const AVBitStreamFilter ff_h264_metadata_bsf; extern const AVBitStreamFilter ff_h264_mp4toannexb_bsf; -extern const AVBitStreamFilter ff_h264_redundant_pps_bsf; -extern const AVBitStreamFilter ff_hapqa_extract_bsf; -extern const AVBitStreamFilter ff_hevc_metadata_bsf; extern const AVBitStreamFilter ff_hevc_mp4toannexb_bsf; extern const AVBitStreamFilter ff_imx_dump_header_bsf; extern const AVBitStreamFilter ff_mjpeg2jpeg_bsf; extern const AVBitStreamFilter ff_mjpega_dump_header_bsf; extern const AVBitStreamFilter ff_mp3_header_decompress_bsf; -extern const AVBitStreamFilter ff_mpeg2_metadata_bsf; extern const AVBitStreamFilter ff_mpeg4_unpack_bframes_bsf; extern const AVBitStreamFilter ff_mov2textsub_bsf; extern const AVBitStreamFilter ff_noise_bsf; extern const AVBitStreamFilter ff_null_bsf; extern const AVBitStreamFilter ff_remove_extradata_bsf; extern const AVBitStreamFilter ff_text2movsub_bsf; -extern const AVBitStreamFilter ff_trace_headers_bsf; extern const AVBitStreamFilter ff_vp9_raw_reorder_bsf; extern const AVBitStreamFilter ff_vp9_superframe_bsf; extern const AVBitStreamFilter ff_vp9_superframe_split_bsf; #include "libavcodec/bsf_list.c" -const AVBitStreamFilter *av_bsf_iterate(void **opaque) +const AVBitStreamFilter *av_bsf_next(void **opaque) { uintptr_t i = (uintptr_t)*opaque; const AVBitStreamFilter *f = bitstream_filters[i]; @@ -66,18 +58,12 @@ const AVBitStreamFilter *av_bsf_iterate(void **opaque) return f; } -#if FF_API_NEXT -const AVBitStreamFilter *av_bsf_next(void **opaque) { - return av_bsf_iterate(opaque); -} -#endif - const AVBitStreamFilter *av_bsf_get_by_name(const char *name) { - const AVBitStreamFilter *f = NULL; - void *i = 0; + int i; - while ((f = av_bsf_iterate(&i))) { + for (i = 0; bitstream_filters[i]; i++) { + const AVBitStreamFilter *f = bitstream_filters[i]; if (!strcmp(f->name, name)) return f; } @@ -87,20 +73,19 @@ const AVBitStreamFilter *av_bsf_get_by_name(const char *name) const AVClass *ff_bsf_child_class_next(const AVClass *prev) { - const AVBitStreamFilter *f = NULL; - void *i = 0; + int i; /* find the filter that corresponds to prev */ - while (prev && (f = av_bsf_iterate(&i))) { - if (f->priv_class == prev) { + for (i = 0; prev && bitstream_filters[i]; i++) { + if (bitstream_filters[i]->priv_class == prev) { + i++; break; } } /* find next filter with priv options */ - while ((f = av_bsf_iterate(&i))) { - if (f->priv_class) - return f->priv_class; - } + for (; bitstream_filters[i]; i++) + if (bitstream_filters[i]->priv_class) + return bitstream_filters[i]->priv_class; return NULL; } diff --git a/media/ffvpx/libavcodec/blockdsp.h b/media/ffvpx/libavcodec/blockdsp.h index 26fc2ea13..6e27a02ba 100644 --- a/media/ffvpx/libavcodec/blockdsp.h +++ b/media/ffvpx/libavcodec/blockdsp.h @@ -33,8 +33,8 @@ typedef void (*op_fill_func)(uint8_t *block /* align width (8 or 16) */, uint8_t value, ptrdiff_t line_size, int h); typedef struct BlockDSPContext { - void (*clear_block)(int16_t *block /* align 32 */); - void (*clear_blocks)(int16_t *blocks /* align 32 */); + void (*clear_block)(int16_t *block /* align 16 */); + void (*clear_blocks)(int16_t *blocks /* align 16 */); op_fill_func fill_block_tab[2]; } BlockDSPContext; diff --git a/media/ffvpx/libavcodec/bsf.c b/media/ffvpx/libavcodec/bsf.c index bd611ea16..38b423101 100644 --- a/media/ffvpx/libavcodec/bsf.c +++ b/media/ffvpx/libavcodec/bsf.c @@ -174,8 +174,6 @@ int av_bsf_init(AVBSFContext *ctx) int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt) { - int ret; - if (!pkt || (!pkt->data && !pkt->side_data_elems)) { ctx->internal->eof = 1; return 0; @@ -190,9 +188,6 @@ int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt) ctx->internal->buffer_pkt->side_data_elems) return AVERROR(EAGAIN); - ret = av_packet_make_refcounted(pkt); - if (ret < 0) - return ret; av_packet_move_ref(ctx->internal->buffer_pkt, pkt); return 0; diff --git a/media/ffvpx/libavcodec/bsf_list.c b/media/ffvpx/libavcodec/bsf_list.c index 92d9948b2..d31ece942 100644 --- a/media/ffvpx/libavcodec/bsf_list.c +++ b/media/ffvpx/libavcodec/bsf_list.c @@ -1,6 +1,3 @@ static const AVBitStreamFilter * const bitstream_filters[] = { &ff_null_bsf, -#if CONFIG_VP9_SUPERFRAME_SPLIT_BSF - &ff_vp9_superframe_split_bsf, -#endif NULL }; diff --git a/media/ffvpx/libavcodec/codec_desc.c b/media/ffvpx/libavcodec/codec_desc.c index 79552a910..6a13bbbf0 100644 --- a/media/ffvpx/libavcodec/codec_desc.c +++ b/media/ffvpx/libavcodec/codec_desc.c @@ -46,6 +46,15 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles), }, +#if FF_API_XVMC + { + .id = AV_CODEC_ID_MPEG2VIDEO_XVMC, + .type = AVMEDIA_TYPE_VIDEO, + .name = "mpegvideo_xvmc", + .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video XvMC (X-Video Motion Compensation)"), + .props = AV_CODEC_PROP_LOSSY, + }, +#endif /* FF_API_XVMC */ { .id = AV_CODEC_ID_H261, .type = AVMEDIA_TYPE_VIDEO, @@ -90,28 +99,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_LJPEG, - .type = AVMEDIA_TYPE_VIDEO, - .name = "ljpeg", - .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_SP5X, - .type = AVMEDIA_TYPE_VIDEO, - .name = "sp5x", - .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_JPEGLS, - .type = AVMEDIA_TYPE_VIDEO, - .name = "jpegls", - .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | - AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_MPEG4, .type = AVMEDIA_TYPE_VIDEO, .name = "mpeg4", @@ -183,6 +170,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_SVG, + .type = AVMEDIA_TYPE_VIDEO, + .name = "svg", + .long_name = NULL_IF_CONFIG_SMALL("Scalable Vector Graphics"), + .props = AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/svg+xml"), + }, + { .id = AV_CODEC_ID_SVQ1, .type = AVMEDIA_TYPE_VIDEO, .name = "svq1", @@ -422,6 +417,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { + .id = AV_CODEC_ID_SNOW, + .type = AVMEDIA_TYPE_VIDEO, + .name = "snow", + .long_name = NULL_IF_CONFIG_SMALL("Snow"), + .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_TSCC, .type = AVMEDIA_TYPE_VIDEO, .name = "tscc", @@ -457,50 +459,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_PNG, - .type = AVMEDIA_TYPE_VIDEO, - .name = "png", - .long_name = NULL_IF_CONFIG_SMALL("PNG (Portable Network Graphics) image"), - .props = AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/png"), - }, - { - .id = AV_CODEC_ID_PPM, - .type = AVMEDIA_TYPE_VIDEO, - .name = "ppm", - .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PBM, - .type = AVMEDIA_TYPE_VIDEO, - .name = "pbm", - .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PGM, - .type = AVMEDIA_TYPE_VIDEO, - .name = "pgm", - .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PGMYUV, - .type = AVMEDIA_TYPE_VIDEO, - .name = "pgmyuv", - .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PAM, - .type = AVMEDIA_TYPE_VIDEO, - .name = "pam", - .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/x-portable-pixmap"), - }, - { .id = AV_CODEC_ID_FFVHUFF, .type = AVMEDIA_TYPE_VIDEO, .name = "ffvhuff", @@ -689,14 +647,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_TARGA, - .type = AVMEDIA_TYPE_VIDEO, - .name = "targa", - .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/x-targa", "image/x-tga"), - }, - { .id = AV_CODEC_ID_DSICINVIDEO, .type = AVMEDIA_TYPE_VIDEO, .name = "dsicinvideo", @@ -711,22 +661,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_TIFF, - .type = AVMEDIA_TYPE_VIDEO, - .name = "tiff", - .long_name = NULL_IF_CONFIG_SMALL("TIFF image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/tiff"), - }, - { - .id = AV_CODEC_ID_GIF, - .type = AVMEDIA_TYPE_VIDEO, - .name = "gif", - .long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"), - .props = AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/gif"), - }, - { .id = AV_CODEC_ID_DXA, .type = AVMEDIA_TYPE_VIDEO, .name = "dxa", @@ -749,13 +683,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_SGI, - .type = AVMEDIA_TYPE_VIDEO, - .name = "sgi", - .long_name = NULL_IF_CONFIG_SMALL("SGI image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_C93, .type = AVMEDIA_TYPE_VIDEO, .name = "c93", @@ -770,20 +697,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_PTX, - .type = AVMEDIA_TYPE_VIDEO, - .name = "ptx", - .long_name = NULL_IF_CONFIG_SMALL("V.Flash PTX image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_TXD, - .type = AVMEDIA_TYPE_VIDEO, - .name = "txd", - .long_name = NULL_IF_CONFIG_SMALL("Renderware TXD (TeXture Dictionary) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_VP6A, .type = AVMEDIA_TYPE_VIDEO, .name = "vp6a", @@ -805,21 +718,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_PCX, - .type = AVMEDIA_TYPE_VIDEO, - .name = "pcx", - .long_name = NULL_IF_CONFIG_SMALL("PC Paintbrush PCX image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/x-pcx"), - }, - { - .id = AV_CODEC_ID_SUNRAST, - .type = AVMEDIA_TYPE_VIDEO, - .name = "sunrast", - .long_name = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_INDEO4, .type = AVMEDIA_TYPE_VIDEO, .name = "indeo4", @@ -855,6 +753,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_DAALA, + .type = AVMEDIA_TYPE_VIDEO, + .name = "daala", + .long_name = NULL_IF_CONFIG_SMALL("Daala"), + .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_DIRAC, .type = AVMEDIA_TYPE_VIDEO, .name = "dirac", @@ -939,13 +844,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_DPX, - .type = AVMEDIA_TYPE_VIDEO, - .name = "dpx", - .long_name = NULL_IF_CONFIG_SMALL("DPX (Digital Picture Exchange) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_MAD, .type = AVMEDIA_TYPE_VIDEO, .name = "mad", @@ -1023,6 +921,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_VP9, + .type = AVMEDIA_TYPE_VIDEO, + .name = "vp9", + .long_name = NULL_IF_CONFIG_SMALL("Google VP9"), + .props = AV_CODEC_PROP_LOSSY, + .profiles = NULL_IF_CONFIG_SMALL(ff_vp9_profiles), + }, + { .id = AV_CODEC_ID_PICTOR, .type = AVMEDIA_TYPE_VIDEO, .name = "pictor", @@ -1030,13 +936,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_ANSI, - .type = AVMEDIA_TYPE_VIDEO, - .name = "ansi", - .long_name = NULL_IF_CONFIG_SMALL("ASCII/ANSI art"), - .props = AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_A64_MULTI, .type = AVMEDIA_TYPE_VIDEO, .name = "a64_multi", @@ -1058,6 +957,27 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { + .id = AV_CODEC_ID_M101, + .type = AVMEDIA_TYPE_VIDEO, + .name = "m101", + .long_name = NULL_IF_CONFIG_SMALL("Matrox Uncompressed SD"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_MVC1, + .type = AVMEDIA_TYPE_VIDEO, + .name = "mvc1", + .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 1"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_MVC2, + .type = AVMEDIA_TYPE_VIDEO, + .name = "mvc2", + .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 2"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + }, + { .id = AV_CODEC_ID_MXPEG, .type = AVMEDIA_TYPE_VIDEO, .name = "mxpeg", @@ -1093,20 +1013,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_WMV3IMAGE, - .type = AVMEDIA_TYPE_VIDEO, - .name = "wmv3image", - .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image"), - .props = AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_VC1IMAGE, - .type = AVMEDIA_TYPE_VIDEO, - .name = "vc1image", - .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image v2"), - .props = AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_UTVIDEO, .type = AVMEDIA_TYPE_VIDEO, .name = "utvideo", @@ -1142,14 +1048,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_XWD, - .type = AVMEDIA_TYPE_VIDEO, - .name = "xwd", - .long_name = NULL_IF_CONFIG_SMALL("XWD (X Window Dump) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/x-xwindowdump"), - }, - { .id = AV_CODEC_ID_CDXL, .type = AVMEDIA_TYPE_VIDEO, .name = "cdxl", @@ -1157,14 +1055,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_XBM, - .type = AVMEDIA_TYPE_VIDEO, - .name = "xbm", - .long_name = NULL_IF_CONFIG_SMALL("XBM (X BitMap) image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/x-xbitmap"), - }, - { .id = AV_CODEC_ID_ZEROCODEC, .type = AVMEDIA_TYPE_VIDEO, .name = "zerocodec", @@ -1214,14 +1104,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_VP9, - .type = AVMEDIA_TYPE_VIDEO, - .name = "vp9", - .long_name = NULL_IF_CONFIG_SMALL("Google VP9"), - .props = AV_CODEC_PROP_LOSSY, - .profiles = NULL_IF_CONFIG_SMALL(ff_vp9_profiles), - }, - { .id = AV_CODEC_ID_AIC, .type = AVMEDIA_TYPE_VIDEO, .name = "aic", @@ -1229,6 +1111,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_Y41P, + .type = AVMEDIA_TYPE_VIDEO, + .name = "y41p", + .long_name = NULL_IF_CONFIG_SMALL("Uncompressed YUV 4:1:1 12-bit"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_ESCAPE130, .type = AVMEDIA_TYPE_VIDEO, .name = "escape130", @@ -1236,6 +1125,88 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_AVRP, + .type = AVMEDIA_TYPE_VIDEO, + .name = "avrp", + .long_name = NULL_IF_CONFIG_SMALL("Avid 1:1 10-bit RGB Packer"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_012V, + .type = AVMEDIA_TYPE_VIDEO, + .name = "012v", + .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_AVUI, + .type = AVMEDIA_TYPE_VIDEO, + .name = "avui", + .long_name = NULL_IF_CONFIG_SMALL("Avid Meridien Uncompressed"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_AYUV, + .type = AVMEDIA_TYPE_VIDEO, + .name = "ayuv", + .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed MS 4:4:4:4"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_TARGA_Y216, + .type = AVMEDIA_TYPE_VIDEO, + .name = "targa_y216", + .long_name = NULL_IF_CONFIG_SMALL("Pinnacle TARGA CineWave YUV16"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_V308, + .type = AVMEDIA_TYPE_VIDEO, + .name = "v308", + .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:4:4"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_V408, + .type = AVMEDIA_TYPE_VIDEO, + .name = "v408", + .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed QT 4:4:4:4"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_YUV4, + .type = AVMEDIA_TYPE_VIDEO, + .name = "yuv4", + .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:2:0"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_AVRN, + .type = AVMEDIA_TYPE_VIDEO, + .name = "avrn", + .long_name = NULL_IF_CONFIG_SMALL("Avid AVI Codec"), + }, + { + .id = AV_CODEC_ID_CPIA, + .type = AVMEDIA_TYPE_VIDEO, + .name = "cpia", + .long_name = NULL_IF_CONFIG_SMALL("CPiA video format"), + }, + { + .id = AV_CODEC_ID_XFACE, + .type = AVMEDIA_TYPE_VIDEO, + .name = "xface", + .long_name = NULL_IF_CONFIG_SMALL("X-face image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_SMVJPEG, + .type = AVMEDIA_TYPE_VIDEO, + .name = "smvjpeg", + .long_name = NULL_IF_CONFIG_SMALL("Sigmatel Motion Video"), + }, + + { .id = AV_CODEC_ID_G2M, .type = AVMEDIA_TYPE_VIDEO, .name = "g2m", @@ -1243,15 +1214,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_WEBP, - .type = AVMEDIA_TYPE_VIDEO, - .name = "webp", - .long_name = NULL_IF_CONFIG_SMALL("WebP"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | - AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/webp"), - }, - { .id = AV_CODEC_ID_HNM4_VIDEO, .type = AVMEDIA_TYPE_VIDEO, .name = "hnm4video", @@ -1274,20 +1236,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_ALIAS_PIX, - .type = AVMEDIA_TYPE_VIDEO, - .name = "alias_pix", - .long_name = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_BRENDER_PIX, - .type = AVMEDIA_TYPE_VIDEO, - .name = "brender_pix", - .long_name = NULL_IF_CONFIG_SMALL("BRender PIX image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_PAF_VIDEO, .type = AVMEDIA_TYPE_VIDEO, .name = "paf_video", @@ -1295,14 +1243,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_EXR, - .type = AVMEDIA_TYPE_VIDEO, - .name = "exr", - .long_name = NULL_IF_CONFIG_SMALL("OpenEXR image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | - AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_VP7, .type = AVMEDIA_TYPE_VIDEO, .name = "vp7", @@ -1324,20 +1264,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_MVC1, - .type = AVMEDIA_TYPE_VIDEO, - .name = "mvc1", - .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 1"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_MVC2, - .type = AVMEDIA_TYPE_VIDEO, - .name = "mvc2", - .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 2"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_HQX, .type = AVMEDIA_TYPE_VIDEO, .name = "hqx", @@ -1345,13 +1271,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_TDSC, - .type = AVMEDIA_TYPE_VIDEO, - .name = "tdsc", - .long_name = NULL_IF_CONFIG_SMALL("TDSC"), - .props = AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_HQ_HQA, .type = AVMEDIA_TYPE_VIDEO, .name = "hq_hqa", @@ -1366,14 +1285,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_DDS, - .type = AVMEDIA_TYPE_VIDEO, - .name = "dds", - .long_name = NULL_IF_CONFIG_SMALL("DirectDraw Surface image decoder"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | - AV_CODEC_PROP_LOSSLESS, - }, - { .id = AV_CODEC_ID_DXV, .type = AVMEDIA_TYPE_VIDEO, .name = "dxv", @@ -1388,6 +1299,20 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { + .id = AV_CODEC_ID_SPEEDHQ, + .type = AVMEDIA_TYPE_VIDEO, + .name = "speedhq", + .long_name = NULL_IF_CONFIG_SMALL("NewTek SpeedHQ"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_WRAPPED_AVFRAME, + .type = AVMEDIA_TYPE_VIDEO, + .name = "wrapped_avframe", + .long_name = NULL_IF_CONFIG_SMALL("AVFrame to AVPacket passthrough"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_RSCC, .type = AVMEDIA_TYPE_VIDEO, .name = "rscc", @@ -1395,155 +1320,229 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_Y41P, + .id = AV_CODEC_ID_MAGICYUV, .type = AVMEDIA_TYPE_VIDEO, - .name = "y41p", - .long_name = NULL_IF_CONFIG_SMALL("Uncompressed YUV 4:1:1 12-bit"), + .name = "magicyuv", + .long_name = NULL_IF_CONFIG_SMALL("MagicYUV video"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_AVRP, + .id = AV_CODEC_ID_TRUEMOTION2RT, .type = AVMEDIA_TYPE_VIDEO, - .name = "avrp", - .long_name = NULL_IF_CONFIG_SMALL("Avid 1:1 10-bit RGB Packer"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .name = "truemotion2rt", + .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0 Real Time"), + .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_012V, + .id = AV_CODEC_ID_CFHD, .type = AVMEDIA_TYPE_VIDEO, - .name = "012v", - .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .name = "cfhd", + .long_name = NULL_IF_CONFIG_SMALL("Cineform HD"), + .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_AVUI, + .id = AV_CODEC_ID_SHEERVIDEO, .type = AVMEDIA_TYPE_VIDEO, - .name = "avui", - .long_name = NULL_IF_CONFIG_SMALL("Avid Meridien Uncompressed"), + .name = "sheervideo", + .long_name = NULL_IF_CONFIG_SMALL("BitJazz SheerVideo"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_AYUV, + .id = AV_CODEC_ID_YLC, .type = AVMEDIA_TYPE_VIDEO, - .name = "ayuv", - .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed MS 4:4:4:4"), + .name = "ylc", + .long_name = NULL_IF_CONFIG_SMALL("YUY2 Lossless Codec"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_TARGA_Y216, + .id = AV_CODEC_ID_PIXLET, .type = AVMEDIA_TYPE_VIDEO, - .name = "targa_y216", - .long_name = NULL_IF_CONFIG_SMALL("Pinnacle TARGA CineWave YUV16"), + .name = "pixlet", + .long_name = NULL_IF_CONFIG_SMALL("Apple Pixlet"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_FMVC, + .type = AVMEDIA_TYPE_VIDEO, + .name = "fmvc", + .long_name = NULL_IF_CONFIG_SMALL("FM Screen Capture Codec"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_SCPR, + .type = AVMEDIA_TYPE_VIDEO, + .name = "scpr", + .long_name = NULL_IF_CONFIG_SMALL("ScreenPressor"), + .props = AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_CLEARVIDEO, + .type = AVMEDIA_TYPE_VIDEO, + .name = "clearvideo", + .long_name = NULL_IF_CONFIG_SMALL("Iterated Systems ClearVideo"), + .props = AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_AV1, + .type = AVMEDIA_TYPE_VIDEO, + .name = "av1", + .long_name = NULL_IF_CONFIG_SMALL("Alliance for Open Media AV1"), + .props = AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_BITPACKED, + .type = AVMEDIA_TYPE_VIDEO, + .name = "bitpacked", + .long_name = NULL_IF_CONFIG_SMALL("Bitpacked"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_V308, + .id = AV_CODEC_ID_MSCC, .type = AVMEDIA_TYPE_VIDEO, - .name = "v308", - .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:4:4"), + .name = "mscc", + .long_name = NULL_IF_CONFIG_SMALL("Mandsoft Screen Capture Codec"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_V408, + .id = AV_CODEC_ID_SRGC, .type = AVMEDIA_TYPE_VIDEO, - .name = "v408", - .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed QT 4:4:4:4"), + .name = "srgc", + .long_name = NULL_IF_CONFIG_SMALL("Screen Recorder Gold Codec"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_YUV4, + .id = AV_CODEC_ID_GDV, .type = AVMEDIA_TYPE_VIDEO, - .name = "yuv4", - .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:2:0"), + .name = "gdv", + .long_name = NULL_IF_CONFIG_SMALL("Gremlin Digital Video"), + .props = AV_CODEC_PROP_LOSSY, + }, + + /* image codecs */ + { + .id = AV_CODEC_ID_ALIAS_PIX, + .type = AVMEDIA_TYPE_VIDEO, + .name = "alias_pix", + .long_name = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_AVRN, + .id = AV_CODEC_ID_ANSI, .type = AVMEDIA_TYPE_VIDEO, - .name = "avrn", - .long_name = NULL_IF_CONFIG_SMALL("Avid AVI Codec"), + .name = "ansi", + .long_name = NULL_IF_CONFIG_SMALL("ASCII/ANSI art"), + .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_CPIA, + .id = AV_CODEC_ID_BRENDER_PIX, .type = AVMEDIA_TYPE_VIDEO, - .name = "cpia", - .long_name = NULL_IF_CONFIG_SMALL("CPiA video format"), + .name = "brender_pix", + .long_name = NULL_IF_CONFIG_SMALL("BRender PIX image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_XFACE, + .id = AV_CODEC_ID_DDS, .type = AVMEDIA_TYPE_VIDEO, - .name = "xface", - .long_name = NULL_IF_CONFIG_SMALL("X-face image"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + .name = "dds", + .long_name = NULL_IF_CONFIG_SMALL("DirectDraw Surface image decoder"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | + AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_SNOW, + .id = AV_CODEC_ID_DPX, .type = AVMEDIA_TYPE_VIDEO, - .name = "snow", - .long_name = NULL_IF_CONFIG_SMALL("Snow"), - .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS, + .name = "dpx", + .long_name = NULL_IF_CONFIG_SMALL("DPX (Digital Picture Exchange) image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_SMVJPEG, + .id = AV_CODEC_ID_EXR, .type = AVMEDIA_TYPE_VIDEO, - .name = "smvjpeg", - .long_name = NULL_IF_CONFIG_SMALL("Sigmatel Motion Video"), + .name = "exr", + .long_name = NULL_IF_CONFIG_SMALL("OpenEXR image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | + AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_APNG, + .id = AV_CODEC_ID_FITS, .type = AVMEDIA_TYPE_VIDEO, - .name = "apng", - .long_name = NULL_IF_CONFIG_SMALL("APNG (Animated Portable Network Graphics) image"), + .name = "fits", + .long_name = NULL_IF_CONFIG_SMALL("FITS (Flexible Image Transport System)"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_GIF, + .type = AVMEDIA_TYPE_VIDEO, + .name = "gif", + .long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"), .props = AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/png"), + .mime_types= MT("image/gif"), }, { - .id = AV_CODEC_ID_DAALA, + .id = AV_CODEC_ID_JPEGLS, .type = AVMEDIA_TYPE_VIDEO, - .name = "daala", - .long_name = NULL_IF_CONFIG_SMALL("Daala"), - .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS, + .name = "jpegls", + .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | + AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_CFHD, + .id = AV_CODEC_ID_LJPEG, .type = AVMEDIA_TYPE_VIDEO, - .name = "cfhd", - .long_name = NULL_IF_CONFIG_SMALL("Cineform HD"), - .props = AV_CODEC_PROP_LOSSY, + .name = "ljpeg", + .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_TRUEMOTION2RT, + .id = AV_CODEC_ID_PAM, .type = AVMEDIA_TYPE_VIDEO, - .name = "truemotion2rt", - .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0 Real Time"), - .props = AV_CODEC_PROP_LOSSY, + .name = "pam", + .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/x-portable-pixmap"), }, { - .id = AV_CODEC_ID_M101, + .id = AV_CODEC_ID_PBM, .type = AVMEDIA_TYPE_VIDEO, - .name = "m101", - .long_name = NULL_IF_CONFIG_SMALL("Matrox Uncompressed SD"), + .name = "pbm", + .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_MAGICYUV, + .id = AV_CODEC_ID_PCX, .type = AVMEDIA_TYPE_VIDEO, - .name = "magicyuv", - .long_name = NULL_IF_CONFIG_SMALL("MagicYUV video"), + .name = "pcx", + .long_name = NULL_IF_CONFIG_SMALL("PC Paintbrush PCX image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/x-pcx"), }, { - .id = AV_CODEC_ID_SHEERVIDEO, + .id = AV_CODEC_ID_PGM, .type = AVMEDIA_TYPE_VIDEO, - .name = "sheervideo", - .long_name = NULL_IF_CONFIG_SMALL("BitJazz SheerVideo"), + .name = "pgm", + .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_YLC, + .id = AV_CODEC_ID_PGMYUV, .type = AVMEDIA_TYPE_VIDEO, - .name = "ylc", - .long_name = NULL_IF_CONFIG_SMALL("YUY2 Lossless Codec"), + .name = "pgmyuv", + .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_PNG, + .type = AVMEDIA_TYPE_VIDEO, + .name = "png", + .long_name = NULL_IF_CONFIG_SMALL("PNG (Portable Network Graphics) image"), + .props = AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/png"), + }, + { + .id = AV_CODEC_ID_PPM, + .type = AVMEDIA_TYPE_VIDEO, + .name = "ppm", + .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { @@ -1554,98 +1553,117 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_PIXLET, + .id = AV_CODEC_ID_PTX, .type = AVMEDIA_TYPE_VIDEO, - .name = "pixlet", - .long_name = NULL_IF_CONFIG_SMALL("Apple Pixlet"), + .name = "ptx", + .long_name = NULL_IF_CONFIG_SMALL("V.Flash PTX image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_SPEEDHQ, + .id = AV_CODEC_ID_SGI, .type = AVMEDIA_TYPE_VIDEO, - .name = "speedhq", - .long_name = NULL_IF_CONFIG_SMALL("NewTek SpeedHQ"), + .name = "sgi", + .long_name = NULL_IF_CONFIG_SMALL("SGI image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_SP5X, + .type = AVMEDIA_TYPE_VIDEO, + .name = "sp5x", + .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_FMVC, + .id = AV_CODEC_ID_SUNRAST, .type = AVMEDIA_TYPE_VIDEO, - .name = "fmvc", - .long_name = NULL_IF_CONFIG_SMALL("FM Screen Capture Codec"), - .props = AV_CODEC_PROP_LOSSLESS, + .name = "sunrast", + .long_name = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_SCPR, + .id = AV_CODEC_ID_TARGA, .type = AVMEDIA_TYPE_VIDEO, - .name = "scpr", - .long_name = NULL_IF_CONFIG_SMALL("ScreenPressor"), - .props = AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_LOSSY, + .name = "targa", + .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/x-targa", "image/x-tga"), }, { - .id = AV_CODEC_ID_CLEARVIDEO, + .id = AV_CODEC_ID_TDSC, .type = AVMEDIA_TYPE_VIDEO, - .name = "clearvideo", - .long_name = NULL_IF_CONFIG_SMALL("Iterated Systems ClearVideo"), + .name = "tdsc", + .long_name = NULL_IF_CONFIG_SMALL("TDSC"), .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_XPM, + .id = AV_CODEC_ID_TIFF, .type = AVMEDIA_TYPE_VIDEO, - .name = "xpm", - .long_name = NULL_IF_CONFIG_SMALL("XPM (X PixMap) image"), + .name = "tiff", + .long_name = NULL_IF_CONFIG_SMALL("TIFF image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/x-xpixmap"), + .mime_types= MT("image/tiff"), }, { - .id = AV_CODEC_ID_AV1, + .id = AV_CODEC_ID_TXD, .type = AVMEDIA_TYPE_VIDEO, - .name = "av1", - .long_name = NULL_IF_CONFIG_SMALL("Alliance for Open Media AV1"), + .name = "txd", + .long_name = NULL_IF_CONFIG_SMALL("Renderware TXD (TeXture Dictionary) image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_VC1IMAGE, + .type = AVMEDIA_TYPE_VIDEO, + .name = "vc1image", + .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image v2"), .props = AV_CODEC_PROP_LOSSY, - .profiles = NULL_IF_CONFIG_SMALL(ff_av1_profiles), }, { - .id = AV_CODEC_ID_BITPACKED, + .id = AV_CODEC_ID_WEBP, .type = AVMEDIA_TYPE_VIDEO, - .name = "bitpacked", - .long_name = NULL_IF_CONFIG_SMALL("Bitpacked"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .name = "webp", + .long_name = NULL_IF_CONFIG_SMALL("WebP"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | + AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/webp"), }, { - .id = AV_CODEC_ID_MSCC, + .id = AV_CODEC_ID_WMV3IMAGE, .type = AVMEDIA_TYPE_VIDEO, - .name = "mscc", - .long_name = NULL_IF_CONFIG_SMALL("Mandsoft Screen Capture Codec"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .name = "wmv3image", + .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image"), + .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_SRGC, + .id = AV_CODEC_ID_XBM, .type = AVMEDIA_TYPE_VIDEO, - .name = "srgc", - .long_name = NULL_IF_CONFIG_SMALL("Screen Recorder Gold Codec"), + .name = "xbm", + .long_name = NULL_IF_CONFIG_SMALL("XBM (X BitMap) image"), .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/x-xbitmap"), }, { - .id = AV_CODEC_ID_SVG, + .id = AV_CODEC_ID_XPM, .type = AVMEDIA_TYPE_VIDEO, - .name = "svg", - .long_name = NULL_IF_CONFIG_SMALL("Scalable Vector Graphics"), - .props = AV_CODEC_PROP_LOSSLESS, - .mime_types= MT("image/svg+xml"), + .name = "xpm", + .long_name = NULL_IF_CONFIG_SMALL("XPM (X PixMap) image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/x-xpixmap"), }, { - .id = AV_CODEC_ID_GDV, + .id = AV_CODEC_ID_XWD, .type = AVMEDIA_TYPE_VIDEO, - .name = "gdv", - .long_name = NULL_IF_CONFIG_SMALL("Gremlin Digital Video"), - .props = AV_CODEC_PROP_LOSSY, + .name = "xwd", + .long_name = NULL_IF_CONFIG_SMALL("XWD (X Window Dump) image"), + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/x-xwindowdump"), }, { - .id = AV_CODEC_ID_FITS, + .id = AV_CODEC_ID_APNG, .type = AVMEDIA_TYPE_VIDEO, - .name = "fits", - .long_name = NULL_IF_CONFIG_SMALL("FITS (Flexible Image Transport System)"), - .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, + .name = "apng", + .long_name = NULL_IF_CONFIG_SMALL("APNG (Animated Portable Network Graphics) image"), + .props = AV_CODEC_PROP_LOSSLESS, + .mime_types= MT("image/png"), }, /* various PCM "codecs" */ @@ -1720,6 +1738,20 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { + .id = AV_CODEC_ID_PCM_S64LE, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_s64le", + .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit little-endian"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_PCM_S64BE, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_s64be", + .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit big-endian"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_PCM_U32LE, .type = AVMEDIA_TYPE_AUDIO, .name = "pcm_u32le", @@ -1776,6 +1808,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_PCM_S16BE_PLANAR, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_s16be_planar", + .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit big-endian planar"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_PCM_S16LE_PLANAR, .type = AVMEDIA_TYPE_AUDIO, .name = "pcm_s16le_planar", @@ -1783,6 +1822,20 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { + .id = AV_CODEC_ID_PCM_S24LE_PLANAR, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_s24le_planar", + .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian planar"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_PCM_S32LE_PLANAR, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_s32le_planar", + .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian planar"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_PCM_DVD, .type = AVMEDIA_TYPE_AUDIO, .name = "pcm_dvd", @@ -1790,6 +1843,20 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { + .id = AV_CODEC_ID_PCM_F16LE, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_f16le", + .long_name = NULL_IF_CONFIG_SMALL("PCM 16.8 floating point little-endian"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_PCM_F24LE, + .type = AVMEDIA_TYPE_AUDIO, + .name = "pcm_f24le", + .long_name = NULL_IF_CONFIG_SMALL("PCM 24.0 floating point little-endian"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_PCM_F32BE, .type = AVMEDIA_TYPE_AUDIO, .name = "pcm_f32be", @@ -1845,55 +1912,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit planar"), .props = AV_CODEC_PROP_LOSSLESS, }, - { - .id = AV_CODEC_ID_PCM_S24LE_PLANAR, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_s24le_planar", - .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian planar"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PCM_S32LE_PLANAR, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_s32le_planar", - .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian planar"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PCM_S16BE_PLANAR, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_s16be_planar", - .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit big-endian planar"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PCM_S64LE, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_s64le", - .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit little-endian"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PCM_S64BE, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_s64be", - .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit big-endian"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PCM_F16LE, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_f16le", - .long_name = NULL_IF_CONFIG_SMALL("PCM 16.8 floating point little-endian"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_PCM_F24LE, - .type = AVMEDIA_TYPE_AUDIO, - .name = "pcm_f24le", - .long_name = NULL_IF_CONFIG_SMALL("PCM 24.0 floating point little-endian"), - .props = AV_CODEC_PROP_LOSSLESS, - }, /* various ADPCM codecs */ { @@ -2030,6 +2048,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_ADPCM_THP_LE, + .type = AVMEDIA_TYPE_AUDIO, + .name = "adpcm_thp_le", + .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo THP (Little-Endian)"), + .props = AV_CODEC_PROP_LOSSY, + }, + { .id = AV_CODEC_ID_ADPCM_IMA_AMV, .type = AVMEDIA_TYPE_AUDIO, .name = "adpcm_ima_amv", @@ -2107,13 +2132,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_ADPCM_VIMA, - .type = AVMEDIA_TYPE_AUDIO, - .name = "adpcm_vima", - .long_name = NULL_IF_CONFIG_SMALL("LucasArts VIMA audio"), - .props = AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_ADPCM_AFC, .type = AVMEDIA_TYPE_AUDIO, .name = "adpcm_afc", @@ -2149,10 +2167,10 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_ADPCM_THP_LE, + .id = AV_CODEC_ID_ADPCM_VIMA, .type = AVMEDIA_TYPE_AUDIO, - .name = "adpcm_thp_le", - .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo THP (Little-Endian)"), + .name = "adpcm_vima", + .long_name = NULL_IF_CONFIG_SMALL("LucasArts VIMA audio"), .props = AV_CODEC_PROP_LOSSY, }, { @@ -2176,13 +2194,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Eurocom DAT4"), .props = AV_CODEC_PROP_LOSSY, }, - { - .id = AV_CODEC_ID_ADPCM_MTAF, - .type = AVMEDIA_TYPE_AUDIO, - .name = "adpcm_mtaf", - .long_name = NULL_IF_CONFIG_SMALL("ADPCM MTAF"), - .props = AV_CODEC_PROP_LOSSY, - }, /* AMR */ { @@ -2488,6 +2499,15 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 (Adaptive TRansform Acoustic Coding 3)"), .props = AV_CODEC_PROP_LOSSY, }, +#if FF_API_VOXWARE + { + .id = AV_CODEC_ID_VOXWARE, + .type = AVMEDIA_TYPE_AUDIO, + .name = "voxware", + .long_name = NULL_IF_CONFIG_SMALL("Voxware RT29 Metasound"), + .props = AV_CODEC_PROP_LOSSY, + }, +#endif { .id = AV_CODEC_ID_APE, .type = AVMEDIA_TYPE_AUDIO, @@ -2545,6 +2565,20 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_ATRAC3PAL, + .type = AVMEDIA_TYPE_AUDIO, + .name = "atrac3pal", + .long_name = NULL_IF_CONFIG_SMALL("ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless)"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { + .id = AV_CODEC_ID_ATRAC3AL, + .type = AVMEDIA_TYPE_AUDIO, + .name = "atrac3al", + .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)"), + .props = AV_CODEC_PROP_LOSSLESS, + }, + { .id = AV_CODEC_ID_EAC3, .type = AVMEDIA_TYPE_AUDIO, .name = "eac3", @@ -2637,6 +2671,20 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_DSS_SP, + .type = AVMEDIA_TYPE_AUDIO, + .name = "dss_sp", + .long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard - Standard Play mode (DSS SP)"), + .props = AV_CODEC_PROP_LOSSY, + }, + { + .id = AV_CODEC_ID_DOLBY_E, + .type = AVMEDIA_TYPE_AUDIO, + .name = "dolby_e", + .long_name = NULL_IF_CONFIG_SMALL("Dolby E"), + .props = AV_CODEC_PROP_LOSSY, + }, + { .id = AV_CODEC_ID_G729, .type = AVMEDIA_TYPE_AUDIO, .name = "g729", @@ -2686,6 +2734,24 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_FFWAVESYNTH, + .type = AVMEDIA_TYPE_AUDIO, + .name = "wavesynth", + .long_name = NULL_IF_CONFIG_SMALL("Wave synthesis pseudo-codec"), + }, + { + .id = AV_CODEC_ID_SONIC, + .type = AVMEDIA_TYPE_AUDIO, + .name = "sonic", + .long_name = NULL_IF_CONFIG_SMALL("Sonic"), + }, + { + .id = AV_CODEC_ID_SONIC_LS, + .type = AVMEDIA_TYPE_AUDIO, + .name = "sonicls", + .long_name = NULL_IF_CONFIG_SMALL("Sonic lossless"), + }, + { .id = AV_CODEC_ID_OPUS, .type = AVMEDIA_TYPE_AUDIO, .name = "opus", @@ -2728,38 +2794,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_DSS_SP, - .type = AVMEDIA_TYPE_AUDIO, - .name = "dss_sp", - .long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard - Standard Play mode (DSS SP)"), - .props = AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_CODEC2, - .type = AVMEDIA_TYPE_AUDIO, - .name = "codec2", - .long_name = NULL_IF_CONFIG_SMALL("codec2 (very low bitrate speech codec)"), - .props = AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_FFWAVESYNTH, - .type = AVMEDIA_TYPE_AUDIO, - .name = "wavesynth", - .long_name = NULL_IF_CONFIG_SMALL("Wave synthesis pseudo-codec"), - }, - { - .id = AV_CODEC_ID_SONIC, - .type = AVMEDIA_TYPE_AUDIO, - .name = "sonic", - .long_name = NULL_IF_CONFIG_SMALL("Sonic"), - }, - { - .id = AV_CODEC_ID_SONIC_LS, - .type = AVMEDIA_TYPE_AUDIO, - .name = "sonicls", - .long_name = NULL_IF_CONFIG_SMALL("Sonic lossless"), - }, - { .id = AV_CODEC_ID_EVRC, .type = AVMEDIA_TYPE_AUDIO, .name = "evrc", @@ -2774,6 +2808,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { + .id = AV_CODEC_ID_4GV, + .type = AVMEDIA_TYPE_AUDIO, + .name = "4gv", + .long_name = NULL_IF_CONFIG_SMALL("4GV (Fourth Generation Vocoder)"), + .props = AV_CODEC_PROP_LOSSY, + }, + { .id = AV_CODEC_ID_DSD_LSBF, .type = AVMEDIA_TYPE_AUDIO, .name = "dsd_lsbf", @@ -2802,13 +2843,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSY, }, { - .id = AV_CODEC_ID_4GV, - .type = AVMEDIA_TYPE_AUDIO, - .name = "4gv", - .long_name = NULL_IF_CONFIG_SMALL("4GV (Fourth Generation Vocoder)"), - .props = AV_CODEC_PROP_LOSSY, - }, - { .id = AV_CODEC_ID_INTERPLAY_ACM, .type = AVMEDIA_TYPE_AUDIO, .name = "interplayacm", @@ -2837,45 +2871,10 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_LOSSLESS, }, { - .id = AV_CODEC_ID_ATRAC3AL, - .type = AVMEDIA_TYPE_AUDIO, - .name = "atrac3al", - .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_ATRAC3PAL, - .type = AVMEDIA_TYPE_AUDIO, - .name = "atrac3pal", - .long_name = NULL_IF_CONFIG_SMALL("ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless)"), - .props = AV_CODEC_PROP_LOSSLESS, - }, - { - .id = AV_CODEC_ID_DOLBY_E, - .type = AVMEDIA_TYPE_AUDIO, - .name = "dolby_e", - .long_name = NULL_IF_CONFIG_SMALL("Dolby E"), - .props = AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_APTX, - .type = AVMEDIA_TYPE_AUDIO, - .name = "aptx", - .long_name = NULL_IF_CONFIG_SMALL("aptX (Audio Processing Technology for Bluetooth)"), - .props = AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_APTX_HD, - .type = AVMEDIA_TYPE_AUDIO, - .name = "aptx_hd", - .long_name = NULL_IF_CONFIG_SMALL("aptX HD (Audio Processing Technology for Bluetooth)"), - .props = AV_CODEC_PROP_LOSSY, - }, - { - .id = AV_CODEC_ID_SBC, + .id = AV_CODEC_ID_ADPCM_MTAF, .type = AVMEDIA_TYPE_AUDIO, - .name = "sbc", - .long_name = NULL_IF_CONFIG_SMALL("SBC (low-complexity subband codec)"), + .name = "adpcm_mtaf", + .long_name = NULL_IF_CONFIG_SMALL("ADPCM MTAF"), .props = AV_CODEC_PROP_LOSSY, }, @@ -2909,6 +2908,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_BITMAP_SUB, }, { + .id = AV_CODEC_ID_ASS, + .type = AVMEDIA_TYPE_SUBTITLE, + .name = "ass", + .long_name = NULL_IF_CONFIG_SMALL("ASS (Advanced SSA) subtitle"), + .props = AV_CODEC_PROP_TEXT_SUB, + }, + { .id = AV_CODEC_ID_SSA, .type = AVMEDIA_TYPE_SUBTITLE, .name = "ssa", @@ -2943,6 +2949,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_TEXT_SUB, }, { + .id = AV_CODEC_ID_SUBRIP, + .type = AVMEDIA_TYPE_SUBTITLE, + .name = "subrip", + .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"), + .props = AV_CODEC_PROP_TEXT_SUB, + }, + { .id = AV_CODEC_ID_MICRODVD, .type = AVMEDIA_TYPE_SUBTITLE, .name = "microdvd", @@ -2950,6 +2963,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_TEXT_SUB, }, { + .id = AV_CODEC_ID_MPL2, + .type = AVMEDIA_TYPE_SUBTITLE, + .name = "mpl2", + .long_name = NULL_IF_CONFIG_SMALL("MPL2 subtitle"), + .props = AV_CODEC_PROP_TEXT_SUB, + }, + { .id = AV_CODEC_ID_EIA_608, .type = AVMEDIA_TYPE_SUBTITLE, .name = "eia_608", @@ -2964,6 +2984,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_TEXT_SUB, }, { + .id = AV_CODEC_ID_PJS, + .type = AVMEDIA_TYPE_SUBTITLE, + .name = "pjs", + .long_name = NULL_IF_CONFIG_SMALL("PJS (Phoenix Japanimation Society) subtitle"), + .props = AV_CODEC_PROP_TEXT_SUB, + }, + { .id = AV_CODEC_ID_SAMI, .type = AVMEDIA_TYPE_SUBTITLE, .name = "sami", @@ -2999,27 +3026,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_TEXT_SUB, }, { - .id = AV_CODEC_ID_SUBRIP, - .type = AVMEDIA_TYPE_SUBTITLE, - .name = "subrip", - .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"), - .props = AV_CODEC_PROP_TEXT_SUB, - }, - { - .id = AV_CODEC_ID_WEBVTT, - .type = AVMEDIA_TYPE_SUBTITLE, - .name = "webvtt", - .long_name = NULL_IF_CONFIG_SMALL("WebVTT subtitle"), - .props = AV_CODEC_PROP_TEXT_SUB, - }, - { - .id = AV_CODEC_ID_MPL2, - .type = AVMEDIA_TYPE_SUBTITLE, - .name = "mpl2", - .long_name = NULL_IF_CONFIG_SMALL("MPL2 subtitle"), - .props = AV_CODEC_PROP_TEXT_SUB, - }, - { .id = AV_CODEC_ID_VPLAYER, .type = AVMEDIA_TYPE_SUBTITLE, .name = "vplayer", @@ -3027,17 +3033,10 @@ static const AVCodecDescriptor codec_descriptors[] = { .props = AV_CODEC_PROP_TEXT_SUB, }, { - .id = AV_CODEC_ID_PJS, - .type = AVMEDIA_TYPE_SUBTITLE, - .name = "pjs", - .long_name = NULL_IF_CONFIG_SMALL("PJS (Phoenix Japanimation Society) subtitle"), - .props = AV_CODEC_PROP_TEXT_SUB, - }, - { - .id = AV_CODEC_ID_ASS, + .id = AV_CODEC_ID_WEBVTT, .type = AVMEDIA_TYPE_SUBTITLE, - .name = "ass", - .long_name = NULL_IF_CONFIG_SMALL("ASS (Advanced SSA) subtitle"), + .name = "webvtt", + .long_name = NULL_IF_CONFIG_SMALL("WebVTT subtitle"), .props = AV_CODEC_PROP_TEXT_SUB, }, { @@ -3057,12 +3056,6 @@ static const AVCodecDescriptor codec_descriptors[] = { .mime_types= MT("application/x-truetype-font", "application/x-font"), }, { - .id = AV_CODEC_ID_SCTE_35, - .type = AVMEDIA_TYPE_DATA, - .name = "scte_35", - .long_name = NULL_IF_CONFIG_SMALL("SCTE 35 Message Queue"), - }, - { .id = AV_CODEC_ID_BINTEXT, .type = AVMEDIA_TYPE_VIDEO, .name = "bintext", @@ -3116,26 +3109,23 @@ static const AVCodecDescriptor codec_descriptors[] = { .mime_types= MT("application/octet-stream"), }, { - .id = AV_CODEC_ID_WRAPPED_AVFRAME, - .type = AVMEDIA_TYPE_VIDEO, - .name = "wrapped_avframe", - .long_name = NULL_IF_CONFIG_SMALL("AVFrame to AVPacket passthrough"), - .props = AV_CODEC_PROP_LOSSLESS, + .id = AV_CODEC_ID_SCTE_35, + .type = AVMEDIA_TYPE_DATA, + .name = "scte_35", + .long_name = NULL_IF_CONFIG_SMALL("SCTE 35 Message Queue"), }, -}; - -static int descriptor_compare(const void *key, const void *member) -{ - enum AVCodecID id = *(const enum AVCodecID *) key; - const AVCodecDescriptor *desc = member; - return id - desc->id; -} + /* deprecated codec ids */ +}; const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id) { - return bsearch(&id, codec_descriptors, FF_ARRAY_ELEMS(codec_descriptors), - sizeof(codec_descriptors[0]), descriptor_compare); + int i; + + for (i = 0; i < FF_ARRAY_ELEMS(codec_descriptors); i++) + if (codec_descriptors[i].id == id) + return &codec_descriptors[i]; + return NULL; } const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev) diff --git a/media/ffvpx/libavcodec/codec_list.c b/media/ffvpx/libavcodec/codec_list.c deleted file mode 100644 index 063f8ff78..000000000 --- a/media/ffvpx/libavcodec/codec_list.c +++ /dev/null @@ -1,11 +0,0 @@ -static const AVCodec * const codec_list[] = { -#if CONFIG_VP8_DECODER - &ff_vp8_decoder, -#endif -#if CONFIG_VP9_DECODER - &ff_vp9_decoder, -#endif -#if CONFIG_FLAC_DECODER - &ff_flac_decoder, -#endif - NULL }; diff --git a/media/ffvpx/libavcodec/decode.c b/media/ffvpx/libavcodec/decode.c index 421a8f1a3..fb1824be1 100644 --- a/media/ffvpx/libavcodec/decode.c +++ b/media/ffvpx/libavcodec/decode.c @@ -40,7 +40,6 @@ #include "avcodec.h" #include "bytestream.h" #include "decode.h" -#include "hwaccel.h" #include "internal.h" #include "thread.h" @@ -130,7 +129,7 @@ static int extract_packet_props(AVCodecInternal *avci, const AVPacket *pkt) if (pkt) { ret = av_packet_copy_props(avci->last_pkt_props, pkt); if (!ret) - avci->last_pkt_props->size = pkt->size; // HACK: Needed for ff_decode_frame_props(). + avci->last_pkt_props->size = pkt->size; // HACK: Needed for ff_init_buffer_info(). } return ret; } @@ -370,7 +369,8 @@ static int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame) DecodeSimpleContext *ds = &avci->ds; AVPacket *pkt = ds->in_pkt; // copy to ensure we do not change pkt - int got_frame, actual_got_frame; + AVPacket tmp; + int got_frame, actual_got_frame, did_split; int ret; if (!pkt->data && !avci->draining) { @@ -390,12 +390,31 @@ static int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame) avctx->active_thread_type & FF_THREAD_FRAME)) return AVERROR_EOF; + tmp = *pkt; +#if FF_API_MERGE_SD +FF_DISABLE_DEPRECATION_WARNINGS + did_split = avci->compat_decode_partial_size ? + ff_packet_split_and_drop_side_data(&tmp) : + av_packet_split_side_data(&tmp); + + if (did_split) { + ret = extract_packet_props(avctx->internal, &tmp); + if (ret < 0) + return ret; + + ret = apply_param_change(avctx, &tmp); + if (ret < 0) + return ret; + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + got_frame = 0; if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME) { - ret = ff_thread_decode_frame(avctx, frame, &got_frame, pkt); + ret = ff_thread_decode_frame(avctx, frame, &got_frame, &tmp); } else { - ret = avctx->codec->decode(avctx, frame, &got_frame, pkt); + ret = avctx->codec->decode(avctx, frame, &got_frame, &tmp); if (!(avctx->codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS)) frame->pkt_dts = pkt->dts; @@ -525,6 +544,13 @@ FF_ENABLE_DEPRECATION_WARNINGS } } } +#if FF_API_MERGE_SD + if (did_split) { + av_packet_free_side_data(&tmp); + if(ret == tmp.size) + ret = pkt->size; + } +#endif if (avctx->codec->type == AVMEDIA_TYPE_AUDIO && !avci->showed_multi_packet_warning && @@ -614,28 +640,6 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) if (ret == AVERROR_EOF) avci->draining_done = 1; - if (!ret) { - /* the only case where decode data is not set should be decoders - * that do not call ff_get_buffer() */ - av_assert0((frame->private_ref && frame->private_ref->size == sizeof(FrameDecodeData)) || - !(avctx->codec->capabilities & AV_CODEC_CAP_DR1)); - - if (frame->private_ref) { - FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data; - - if (fdd->post_process) { - ret = fdd->post_process(avctx, frame); - if (ret < 0) { - av_frame_unref(frame); - return ret; - } - } - } - } - - /* free the per-frame decode data */ - av_buffer_unref(&frame->private_ref); - return ret; } @@ -1000,6 +1004,7 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, AVPacket *avpkt) { int i, ret = 0; + AVCodecInternal *avci = avctx->internal; if (!avpkt->data && avpkt->size) { av_log(avctx, AV_LOG_ERROR, "invalid packet: NULL data, size != 0\n"); @@ -1016,9 +1021,29 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, get_subtitle_defaults(sub); if ((avctx->codec->capabilities & AV_CODEC_CAP_DELAY) || avpkt->size) { - AVPacket pkt_recoded = *avpkt; + AVPacket pkt_recoded; + AVPacket tmp = *avpkt; +#if FF_API_MERGE_SD +FF_DISABLE_DEPRECATION_WARNINGS + int did_split = avci->compat_decode_partial_size ? + ff_packet_split_and_drop_side_data(&tmp) : + av_packet_split_side_data(&tmp); + //apply_param_change(avctx, &tmp); + + if (did_split) { + /* FFMIN() prevents overflow in case the packet wasn't allocated with + * proper padding. + * If the side data is smaller than the buffer padding size, the + * remaining bytes should have already been filled with zeros by the + * original packet allocation anyway. */ + memset(tmp.data + tmp.size, 0, + FFMIN(avpkt->size - tmp.size, AV_INPUT_BUFFER_PADDING_SIZE)); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif - ret = recode_subtitle(avctx, &pkt_recoded, avpkt); + pkt_recoded = tmp; + ret = recode_subtitle(avctx, &pkt_recoded, &tmp); if (ret < 0) { *got_sub_ptr = 0; } else { @@ -1057,8 +1082,7 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, sub->format = 1; for (i = 0; i < sub->num_rects; i++) { - if (avctx->sub_charenc_mode != FF_SUB_CHARENC_MODE_IGNORE && - sub->rects[i]->ass && !utf8_check(sub->rects[i]->ass)) { + if (sub->rects[i]->ass && !utf8_check(sub->rects[i]->ass)) { av_log(avctx, AV_LOG_ERROR, "Invalid UTF-8 in decoded subtitles text; " "maybe missing -sub_charenc option\n"); @@ -1068,7 +1092,7 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, } } - if (avpkt->data != pkt_recoded.data) { // did we recode? + if (tmp.data != pkt_recoded.data) { // did we recode? /* prevent from destroying side data from original packet */ pkt_recoded.side_data = NULL; pkt_recoded.side_data_elems = 0; @@ -1077,6 +1101,14 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, } } +#if FF_API_MERGE_SD + if (did_split) { + av_packet_free_side_data(&tmp); + if(ret == tmp.size) + ret = avpkt->size; + } +#endif + if (*got_sub_ptr) avctx->frame_number++; } @@ -1084,238 +1116,84 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, return ret; } -enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *avctx, - const enum AVPixelFormat *fmt) +static int is_hwaccel_pix_fmt(enum AVPixelFormat pix_fmt) { - const AVPixFmtDescriptor *desc; - const AVCodecHWConfig *config; - int i, n; - - // If a device was supplied when the codec was opened, assume that the - // user wants to use it. - if (avctx->hw_device_ctx && avctx->codec->hw_configs) { - AVHWDeviceContext *device_ctx = - (AVHWDeviceContext*)avctx->hw_device_ctx->data; - for (i = 0;; i++) { - config = &avctx->codec->hw_configs[i]->public; - if (!config) - break; - if (!(config->methods & - AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX)) - continue; - if (device_ctx->type != config->device_type) - continue; - for (n = 0; fmt[n] != AV_PIX_FMT_NONE; n++) { - if (config->pix_fmt == fmt[n]) - return fmt[n]; - } - } - } - // No device or other setup, so we have to choose from things which - // don't any other external information. - - // If the last element of the list is a software format, choose it - // (this should be best software format if any exist). - for (n = 0; fmt[n] != AV_PIX_FMT_NONE; n++); - desc = av_pix_fmt_desc_get(fmt[n - 1]); - if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) - return fmt[n - 1]; - - // Finally, traverse the list in order and choose the first entry - // with no external dependencies (if there is no hardware configuration - // information available then this just picks the first entry). - for (n = 0; fmt[n] != AV_PIX_FMT_NONE; n++) { - for (i = 0;; i++) { - config = avcodec_get_hw_config(avctx->codec, i); - if (!config) - break; - if (config->pix_fmt == fmt[n]) - break; - } - if (!config) { - // No specific config available, so the decoder must be able - // to handle this format without any additional setup. - return fmt[n]; - } - if (config->methods & AV_CODEC_HW_CONFIG_METHOD_INTERNAL) { - // Usable with only internal setup. - return fmt[n]; - } - } - - // Nothing is usable, give up. - return AV_PIX_FMT_NONE; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); + return desc->flags & AV_PIX_FMT_FLAG_HWACCEL; } -int ff_decode_get_hw_frames_ctx(AVCodecContext *avctx, - enum AVHWDeviceType dev_type) +enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat *fmt) { - AVHWDeviceContext *device_ctx; - AVHWFramesContext *frames_ctx; - int ret; - - if (!avctx->hwaccel) - return AVERROR(ENOSYS); - - if (avctx->hw_frames_ctx) - return 0; - if (!avctx->hw_device_ctx) { - av_log(avctx, AV_LOG_ERROR, "A hardware frames or device context is " - "required for hardware accelerated decoding.\n"); - return AVERROR(EINVAL); - } - - device_ctx = (AVHWDeviceContext *)avctx->hw_device_ctx->data; - if (device_ctx->type != dev_type) { - av_log(avctx, AV_LOG_ERROR, "Device type %s expected for hardware " - "decoding, but got %s.\n", av_hwdevice_get_type_name(dev_type), - av_hwdevice_get_type_name(device_ctx->type)); - return AVERROR(EINVAL); - } - - ret = avcodec_get_hw_frames_parameters(avctx, - avctx->hw_device_ctx, - avctx->hwaccel->pix_fmt, - &avctx->hw_frames_ctx); - if (ret < 0) - return ret; - - frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data; - - - if (frames_ctx->initial_pool_size) { - // We guarantee 4 base work surfaces. The function above guarantees 1 - // (the absolute minimum), so add the missing count. - frames_ctx->initial_pool_size += 3; - } + while (*fmt != AV_PIX_FMT_NONE && is_hwaccel_pix_fmt(*fmt)) + ++fmt; + return fmt[0]; +} - ret = av_hwframe_ctx_init(avctx->hw_frames_ctx); - if (ret < 0) { - av_buffer_unref(&avctx->hw_frames_ctx); - return ret; - } +static AVHWAccel *find_hwaccel(enum AVCodecID codec_id, + enum AVPixelFormat pix_fmt) +{ + AVHWAccel *hwaccel = NULL; - return 0; + while ((hwaccel = av_hwaccel_next(hwaccel))) + if (hwaccel->id == codec_id + && hwaccel->pix_fmt == pix_fmt) + return hwaccel; + return NULL; } -int avcodec_get_hw_frames_parameters(AVCodecContext *avctx, - AVBufferRef *device_ref, - enum AVPixelFormat hw_pix_fmt, - AVBufferRef **out_frames_ref) +static int setup_hwaccel(AVCodecContext *avctx, + const enum AVPixelFormat fmt, + const char *name) { - AVBufferRef *frames_ref = NULL; - const AVCodecHWConfigInternal *hw_config; - const AVHWAccel *hwa; - int i, ret; + AVHWAccel *hwa = find_hwaccel(avctx->codec_id, fmt); + int ret = 0; - for (i = 0;; i++) { - hw_config = avctx->codec->hw_configs[i]; - if (!hw_config) - return AVERROR(ENOENT); - if (hw_config->public.pix_fmt == hw_pix_fmt) - break; - } - - hwa = hw_config->hwaccel; - if (!hwa || !hwa->frame_params) + if (!hwa) { + av_log(avctx, AV_LOG_ERROR, + "Could not find an AVHWAccel for the pixel format: %s", + name); return AVERROR(ENOENT); - - frames_ref = av_hwframe_ctx_alloc(device_ref); - if (!frames_ref) - return AVERROR(ENOMEM); - - ret = hwa->frame_params(avctx, frames_ref); - if (ret >= 0) { - AVHWFramesContext *frames_ctx = (AVHWFramesContext*)frames_ref->data; - - if (frames_ctx->initial_pool_size) { - // If the user has requested that extra output surfaces be - // available then add them here. - if (avctx->extra_hw_frames > 0) - frames_ctx->initial_pool_size += avctx->extra_hw_frames; - - // If frame threading is enabled then an extra surface per thread - // is also required. - if (avctx->active_thread_type & FF_THREAD_FRAME) - frames_ctx->initial_pool_size += avctx->thread_count; - } - - *out_frames_ref = frames_ref; - } else { - av_buffer_unref(&frames_ref); } - return ret; -} - -static int hwaccel_init(AVCodecContext *avctx, - const AVCodecHWConfigInternal *hw_config) -{ - const AVHWAccel *hwaccel; - int err; - hwaccel = hw_config->hwaccel; - if (hwaccel->capabilities & AV_HWACCEL_CODEC_CAP_EXPERIMENTAL && + if (hwa->capabilities & AV_HWACCEL_CODEC_CAP_EXPERIMENTAL && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { av_log(avctx, AV_LOG_WARNING, "Ignoring experimental hwaccel: %s\n", - hwaccel->name); + hwa->name); return AVERROR_PATCHWELCOME; } - if (hwaccel->priv_data_size) { - avctx->internal->hwaccel_priv_data = - av_mallocz(hwaccel->priv_data_size); + if (hwa->priv_data_size) { + avctx->internal->hwaccel_priv_data = av_mallocz(hwa->priv_data_size); if (!avctx->internal->hwaccel_priv_data) return AVERROR(ENOMEM); } - avctx->hwaccel = hwaccel; - if (hwaccel->init) { - err = hwaccel->init(avctx); - if (err < 0) { - av_log(avctx, AV_LOG_ERROR, "Failed setup for format %s: " - "hwaccel initialisation returned error.\n", - av_get_pix_fmt_name(hw_config->public.pix_fmt)); + avctx->hwaccel = hwa; + if (hwa->init) { + ret = hwa->init(avctx); + if (ret < 0) { av_freep(&avctx->internal->hwaccel_priv_data); avctx->hwaccel = NULL; - return err; + return ret; } } return 0; } -static void hwaccel_uninit(AVCodecContext *avctx) -{ - if (avctx->hwaccel && avctx->hwaccel->uninit) - avctx->hwaccel->uninit(avctx); - - av_freep(&avctx->internal->hwaccel_priv_data); - - avctx->hwaccel = NULL; - - av_buffer_unref(&avctx->hw_frames_ctx); -} - int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) { const AVPixFmtDescriptor *desc; enum AVPixelFormat *choices; - enum AVPixelFormat ret, user_choice; - const AVCodecHWConfigInternal *hw_config; - const AVCodecHWConfig *config; - int i, n, err; - - // Find end of list. - for (n = 0; fmt[n] != AV_PIX_FMT_NONE; n++); - // Must contain at least one entry. + enum AVPixelFormat ret; + unsigned n = 0; + + while (fmt[n] != AV_PIX_FMT_NONE) + ++n; + av_assert0(n >= 1); - // If a software format is available, it must be the last entry. - desc = av_pix_fmt_desc_get(fmt[n - 1]); - if (desc->flags & AV_PIX_FMT_FLAG_HWACCEL) { - // No software format is available. - } else { - avctx->sw_pix_fmt = fmt[n - 1]; - } + avctx->sw_pix_fmt = fmt[n - 1]; + av_assert2(!is_hwaccel_pix_fmt(avctx->sw_pix_fmt)); choices = av_malloc_array(n + 1, sizeof(*choices)); if (!choices) @@ -1324,108 +1202,48 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) memcpy(choices, fmt, (n + 1) * sizeof(*choices)); for (;;) { - // Remove the previous hwaccel, if there was one. - hwaccel_uninit(avctx); + if (avctx->hwaccel && avctx->hwaccel->uninit) + avctx->hwaccel->uninit(avctx); + av_freep(&avctx->internal->hwaccel_priv_data); + avctx->hwaccel = NULL; - user_choice = avctx->get_format(avctx, choices); - if (user_choice == AV_PIX_FMT_NONE) { - // Explicitly chose nothing, give up. - ret = AV_PIX_FMT_NONE; - break; - } + av_buffer_unref(&avctx->hw_frames_ctx); + + ret = avctx->get_format(avctx, choices); - desc = av_pix_fmt_desc_get(user_choice); + desc = av_pix_fmt_desc_get(ret); if (!desc) { - av_log(avctx, AV_LOG_ERROR, "Invalid format returned by " - "get_format() callback.\n"); ret = AV_PIX_FMT_NONE; break; } - av_log(avctx, AV_LOG_DEBUG, "Format %s chosen by get_format().\n", - desc->name); - for (i = 0; i < n; i++) { - if (choices[i] == user_choice) - break; - } - if (i == n) { - av_log(avctx, AV_LOG_ERROR, "Invalid return from get_format(): " - "%s not in possible list.\n", desc->name); + if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) break; - } +#if FF_API_CAP_VDPAU + if (avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) + break; +#endif - if (avctx->codec->hw_configs) { - for (i = 0;; i++) { - hw_config = avctx->codec->hw_configs[i]; - if (!hw_config) - break; - if (hw_config->public.pix_fmt == user_choice) - break; + if (avctx->hw_frames_ctx) { + AVHWFramesContext *hw_frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data; + if (hw_frames_ctx->format != ret) { + av_log(avctx, AV_LOG_ERROR, "Format returned from get_buffer() " + "does not match the format of provided AVHWFramesContext\n"); + ret = AV_PIX_FMT_NONE; + break; } - } else { - hw_config = NULL; } - if (!hw_config) { - // No config available, so no extra setup required. - ret = user_choice; + if (!setup_hwaccel(avctx, ret, desc->name)) break; - } - config = &hw_config->public; - - if (config->methods & - AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX && - avctx->hw_frames_ctx) { - const AVHWFramesContext *frames_ctx = - (AVHWFramesContext*)avctx->hw_frames_ctx->data; - if (frames_ctx->format != user_choice) { - av_log(avctx, AV_LOG_ERROR, "Invalid setup for format %s: " - "does not match the format of the provided frames " - "context.\n", desc->name); - goto try_again; - } - } else if (config->methods & - AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX && - avctx->hw_device_ctx) { - const AVHWDeviceContext *device_ctx = - (AVHWDeviceContext*)avctx->hw_device_ctx->data; - if (device_ctx->type != config->device_type) { - av_log(avctx, AV_LOG_ERROR, "Invalid setup for format %s: " - "does not match the type of the provided device " - "context.\n", desc->name); - goto try_again; - } - } else if (config->methods & - AV_CODEC_HW_CONFIG_METHOD_INTERNAL) { - // Internal-only setup, no additional configuration. - } else if (config->methods & - AV_CODEC_HW_CONFIG_METHOD_AD_HOC) { - // Some ad-hoc configuration we can't see and can't check. - } else { - av_log(avctx, AV_LOG_ERROR, "Invalid setup for format %s: " - "missing configuration.\n", desc->name); - goto try_again; - } - if (hw_config->hwaccel) { - av_log(avctx, AV_LOG_DEBUG, "Format %s requires hwaccel " - "initialisation.\n", desc->name); - err = hwaccel_init(avctx, hw_config); - if (err < 0) - goto try_again; - } - ret = user_choice; - break; - try_again: - av_log(avctx, AV_LOG_DEBUG, "Format %s not usable, retrying " - "get_format() without it.\n", desc->name); - for (i = 0; i < n; i++) { - if (choices[i] == user_choice) - break; - } - for (; i + 1 < n; i++) - choices[i] = choices[i + 1]; - --n; + /* Remove failed hwaccel from choices */ + for (n = 0; choices[n] != ret; n++) + av_assert0(choices[n] != AV_PIX_FMT_NONE); + + do + choices[n] = choices[n + 1]; + while (choices[n++] != AV_PIX_FMT_NONE); } av_freep(&choices); @@ -1614,7 +1432,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic) pic->linesize[i] = 0; } if (desc->flags & AV_PIX_FMT_FLAG_PAL || - ((desc->flags & FF_PSEUDOPAL) && pic->data[1])) + desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) avpriv_set_systematic_pal2((uint32_t *)pic->data[1], pic->format); if (s->debug & FF_DEBUG_BUFFERS) @@ -1662,7 +1480,7 @@ static int add_metadata_from_side_data(const AVPacket *avpkt, AVFrame *frame) return av_packet_unpack_dictionary(side_metadata, size, frame_md); } -int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) +int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame) { const AVPacket *pkt = avctx->internal->last_pkt_props; int i; @@ -1770,6 +1588,11 @@ FF_ENABLE_DEPRECATION_WARNINGS return 0; } +int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) +{ + return ff_init_buffer_info(avctx, frame); +} + static void validate_avframe_allocation(AVCodecContext *avctx, AVFrame *frame) { if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) { @@ -1779,11 +1602,12 @@ static void validate_avframe_allocation(AVCodecContext *avctx, AVFrame *frame) int flags = desc ? desc->flags : 0; if (num_planes == 1 && (flags & AV_PIX_FMT_FLAG_PAL)) num_planes = 2; - if ((flags & FF_PSEUDOPAL) && frame->data[1]) - num_planes = 2; for (i = 0; i < num_planes; i++) { av_assert0(frame->data[i]); } + // For now do not enforce anything for palette of pseudopal formats + if (num_planes == 1 && (flags & AV_PIX_FMT_FLAG_PSEUDOPAL)) + num_planes = 2; // For formats without data like hwaccel allow unused pointers to be non-NULL. for (i = num_planes; num_planes > 0 && i < FF_ARRAY_ELEMS(frame->data); i++) { if (frame->data[i]) @@ -1793,43 +1617,6 @@ static void validate_avframe_allocation(AVCodecContext *avctx, AVFrame *frame) } } -static void decode_data_free(void *opaque, uint8_t *data) -{ - FrameDecodeData *fdd = (FrameDecodeData*)data; - - if (fdd->post_process_opaque_free) - fdd->post_process_opaque_free(fdd->post_process_opaque); - - if (fdd->hwaccel_priv_free) - fdd->hwaccel_priv_free(fdd->hwaccel_priv); - - av_freep(&fdd); -} - -int ff_attach_decode_data(AVFrame *frame) -{ - AVBufferRef *fdd_buf; - FrameDecodeData *fdd; - - av_assert1(!frame->private_ref); - av_buffer_unref(&frame->private_ref); - - fdd = av_mallocz(sizeof(*fdd)); - if (!fdd) - return AVERROR(ENOMEM); - - fdd_buf = av_buffer_create((uint8_t*)fdd, sizeof(*fdd), decode_data_free, - NULL, AV_BUFFER_FLAG_READONLY); - if (!fdd_buf) { - av_freep(&fdd); - return AVERROR(ENOMEM); - } - - frame->private_ref = fdd_buf; - - return 0; -} - static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags) { const AVHWAccel *hwaccel = avctx->hwaccel; @@ -1866,14 +1653,8 @@ static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags) avctx->sw_pix_fmt = avctx->pix_fmt; ret = avctx->get_buffer2(avctx, frame, flags); - if (ret < 0) - goto end; - - validate_avframe_allocation(avctx, frame); - - ret = ff_attach_decode_data(frame); - if (ret < 0) - goto end; + if (ret >= 0) + validate_avframe_allocation(avctx, frame); end: if (avctx->codec_type == AVMEDIA_TYPE_VIDEO && !override_dimensions && @@ -1882,9 +1663,6 @@ end: frame->height = avctx->height; } - if (ret < 0) - av_frame_unref(frame); - return ret; } @@ -1911,6 +1689,8 @@ static int reget_buffer_internal(AVCodecContext *avctx, AVFrame *frame) av_frame_unref(frame); } + ff_init_buffer_info(avctx, frame); + if (!frame->data[0]) return ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF); diff --git a/media/ffvpx/libavcodec/decode.h b/media/ffvpx/libavcodec/decode.h index 15271c529..c9630228d 100644 --- a/media/ffvpx/libavcodec/decode.h +++ b/media/ffvpx/libavcodec/decode.h @@ -21,39 +21,9 @@ #ifndef AVCODEC_DECODE_H #define AVCODEC_DECODE_H -#include "libavutil/buffer.h" -#include "libavutil/frame.h" -#include "libavutil/hwcontext.h" - #include "avcodec.h" /** - * This struct stores per-frame lavc-internal data and is attached to it via - * private_ref. - */ -typedef struct FrameDecodeData { - /** - * The callback to perform some delayed processing on the frame right - * before it is returned to the caller. - * - * @note This code is called at some unspecified point after the frame is - * returned from the decoder's decode/receive_frame call. Therefore it cannot rely - * on AVCodecContext being in any specific state, so it does not get to - * access AVCodecContext directly at all. All the state it needs must be - * stored in the post_process_opaque object. - */ - int (*post_process)(void *logctx, AVFrame *frame); - void *post_process_opaque; - void (*post_process_opaque_free)(void *opaque); - - /** - * Per-frame private data for hwaccels. - */ - void *hwaccel_priv; - void (*hwaccel_priv_free)(void *priv); -} FrameDecodeData; - -/** * Called by decoders to get the next packet for decoding. * * @param pkt An empty packet to be filled with data. @@ -66,14 +36,4 @@ int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt); void ff_decode_bsfs_uninit(AVCodecContext *avctx); -/** - * Make sure avctx.hw_frames_ctx is set. If it's not set, the function will - * try to allocate it from hw_device_ctx. If that is not possible, an error - * message is printed, and an error code is returned. - */ -int ff_decode_get_hw_frames_ctx(AVCodecContext *avctx, - enum AVHWDeviceType dev_type); - -int ff_attach_decode_data(AVFrame *frame); - #endif /* AVCODEC_DECODE_H */ diff --git a/media/ffvpx/libavcodec/dummy_funcs.c b/media/ffvpx/libavcodec/dummy_funcs.c index ac0f0b780..21b469f7e 100644 --- a/media/ffvpx/libavcodec/dummy_funcs.c +++ b/media/ffvpx/libavcodec/dummy_funcs.c @@ -6,23 +6,27 @@ #include "avcodec.h" -typedef struct FFTContext FFTContext; typedef struct H264PredContext H264PredContext; -typedef struct RDFTContext RDFTContext; typedef struct VideoDSPContext VideoDSPContext; typedef struct VP8DSPContext VP8DSPContext; typedef struct VP9DSPContext VP9DSPContext; typedef struct FLACDSPContext FLACDSPContext; AVHWAccel ff_h263_vaapi_hwaccel; +AVHWAccel ff_h263_vdpau_hwaccel; AVHWAccel ff_h263_videotoolbox_hwaccel; AVHWAccel ff_h264_d3d11va_hwaccel; AVHWAccel ff_h264_dxva2_hwaccel; +AVHWAccel ff_h264_mmal_hwaccel; +AVHWAccel ff_h264_qsv_hwaccel; AVHWAccel ff_h264_vaapi_hwaccel; +AVHWAccel ff_h264_vda_hwaccel; +AVHWAccel ff_h264_vda_old_hwaccel; AVHWAccel ff_h264_vdpau_hwaccel; AVHWAccel ff_h264_videotoolbox_hwaccel; AVHWAccel ff_hevc_d3d11va_hwaccel; AVHWAccel ff_hevc_dxva2_hwaccel; +AVHWAccel ff_hevc_qsv_hwaccel; AVHWAccel ff_hevc_vaapi_hwaccel; AVHWAccel ff_hevc_vdpau_hwaccel; AVHWAccel ff_mpeg1_xvmc_hwaccel; @@ -31,9 +35,11 @@ AVHWAccel ff_mpeg1_videotoolbox_hwaccel; AVHWAccel ff_mpeg2_xvmc_hwaccel; AVHWAccel ff_mpeg2_d3d11va_hwaccel; AVHWAccel ff_mpeg2_dxva2_hwaccel; +AVHWAccel ff_mpeg2_qsv_hwaccel; AVHWAccel ff_mpeg2_vaapi_hwaccel; AVHWAccel ff_mpeg2_vdpau_hwaccel; AVHWAccel ff_mpeg2_videotoolbox_hwaccel; +AVHWAccel ff_mpeg4_mmal_hwaccel; AVHWAccel ff_mpeg4_vaapi_hwaccel; AVHWAccel ff_mpeg4_vdpau_hwaccel; AVHWAccel ff_mpeg4_videotoolbox_hwaccel; @@ -41,19 +47,40 @@ AVHWAccel ff_vc1_d3d11va_hwaccel; AVHWAccel ff_vc1_dxva2_hwaccel; AVHWAccel ff_vc1_vaapi_hwaccel; AVHWAccel ff_vc1_vdpau_hwaccel; +AVHWAccel ff_vc1_qsv_hwaccel; AVHWAccel ff_wmv3_d3d11va_hwaccel; AVHWAccel ff_wmv3_dxva2_hwaccel; AVHWAccel ff_wmv3_vaapi_hwaccel; AVHWAccel ff_wmv3_vdpau_hwaccel; +AVHWAccel ff_mpeg2_mmal_hwaccel; +AVHWAccel ff_vc1_mmal_hwaccel; AVHWAccel ff_vp9_d3d11va_hwaccel; AVHWAccel ff_vp9_dxva2_hwaccel; AVHWAccel ff_vp9_vaapi_hwaccel; +AVHWAccel ff_vp9_cuvid_hwaccel; +AVHWAccel ff_vp8_cuvid_hwaccel; +AVHWAccel ff_vc1_cuvid_hwaccel; +AVHWAccel ff_hevc_cuvid_hwaccel; +AVHWAccel ff_h264_cuvid_hwaccel; +/* Added by FFmpeg 3.2 */ +AVHWAccel ff_h263_cuvid_hwaccel; +AVHWAccel ff_mjpeg_cuvid_hwaccel; +AVHWAccel ff_mpeg1_cuvid_hwaccel; +AVHWAccel ff_mpeg2_cuvid_hwaccel; +AVHWAccel ff_mpeg4_cuvid_hwaccel; +AVHWAccel ff_h264_mediacodec_hwaccel; +AVHWAccel ff_hevc_mediacodec_hwaccel; +AVHWAccel ff_mpeg4_mediacodec_hwaccel; +AVHWAccel ff_vp8_mediacodec_hwaccel; +AVHWAccel ff_vp9_mediacodec_hwaccel; /* Added by FFmpeg 3.4 */ AVHWAccel ff_h264_d3d11va2_hwaccel; AVHWAccel ff_hevc_d3d11va2_hwaccel; AVHWAccel ff_hevc_videotoolbox_hwaccel; AVHWAccel ff_mpeg2_d3d11va2_hwaccel; +AVHWAccel ff_mpeg2_mediacodec_hwaccel; AVHWAccel ff_vc1_d3d11va2_hwaccel; +AVHWAccel ff_vp8_qsv_hwaccel; AVHWAccel ff_vp9_d3d11va2_hwaccel; AVHWAccel ff_wmv3_d3d11va2_hwaccel; @@ -158,6 +185,8 @@ AVCodec ff_h264_decoder; AVCodec ff_h264_crystalhd_decoder; AVCodec ff_h264_mmal_decoder; AVCodec ff_h264_qsv_decoder; +AVCodec ff_h264_vda_decoder; +AVCodec ff_h264_vdpau_decoder; AVCodec ff_hap_encoder; AVCodec ff_hap_decoder; AVCodec ff_hevc_decoder; @@ -192,6 +221,7 @@ AVCodec ff_mjpeg_decoder; AVCodec ff_mjpegb_decoder; AVCodec ff_mmvideo_decoder; AVCodec ff_motionpixels_decoder; +AVCodec ff_mpeg_xvmc_decoder; AVCodec ff_mpeg1video_encoder; AVCodec ff_mpeg1video_decoder; AVCodec ff_mpeg2video_encoder; @@ -200,7 +230,10 @@ AVCodec ff_mpeg4_encoder; AVCodec ff_mpeg4_decoder; AVCodec ff_mpeg4_crystalhd_decoder; AVCodec ff_mpeg4_mmal_decoder; +AVCodec ff_mpeg4_vdpau_decoder; AVCodec ff_mpegvideo_decoder; +AVCodec ff_mpeg_vdpau_decoder; +AVCodec ff_mpeg1_vdpau_decoder; AVCodec ff_mpeg2_crystalhd_decoder; AVCodec ff_mpeg2_qsv_decoder; AVCodec ff_msa1_decoder; @@ -311,6 +344,7 @@ AVCodec ff_vb_decoder; AVCodec ff_vble_decoder; AVCodec ff_vc1_decoder; AVCodec ff_vc1_crystalhd_decoder; +AVCodec ff_vc1_vdpau_decoder; AVCodec ff_vc1image_decoder; AVCodec ff_vc1_qsv_decoder; AVCodec ff_vc2_encoder; @@ -331,6 +365,7 @@ AVCodec ff_wmv2_encoder; AVCodec ff_wmv2_decoder; AVCodec ff_wmv3_decoder; AVCodec ff_wmv3_crystalhd_decoder; +AVCodec ff_wmv3_vdpau_decoder; AVCodec ff_wmv3image_decoder; AVCodec ff_wnv1_decoder; AVCodec ff_xan_wc3_decoder; @@ -705,8 +740,10 @@ AVCodec ff_vp8_mediacodec_decoder; AVCodec ff_mpeg4_mediacodec_decoder; AVCodec ff_mpeg4_cuvid_decoder; AVCodec ff_mpeg2_cuvid_decoder; +AVCodec ff_mpeg1_cuvid_decoder; AVCodec ff_mjpeg_cuvid_decoder; AVCodec ff_hevc_mediacodec_decoder; +AVCodec ff_h263_cuvid_decoder; AVCodec ff_libopenh264_decoder; AVCodec ff_pcm_s64le_decoder; AVCodec ff_pcm_s64le_encoder; @@ -763,7 +800,6 @@ AVCodec ff_vp8_v4l2m2m_encoder; AVCodec ff_vp8_vaapi_encoder; AVCodec ff_vp9_vaapi_encoder; - AVCodecParser ff_aac_parser; AVCodecParser ff_aac_latm_parser; AVCodecParser ff_ac3_parser; @@ -779,7 +815,6 @@ AVCodecParser ff_dvaudio_parser; AVCodecParser ff_dvbsub_parser; AVCodecParser ff_dvdsub_parser; AVCodecParser ff_dvd_nav_parser; -AVCodecParser ff_flac_parser; AVCodecParser ff_g729_parser; AVCodecParser ff_gsm_parser; AVCodecParser ff_h261_parser; @@ -819,11 +854,6 @@ AVBitStreamFilter ff_noise_bsf; AVBitStreamFilter ff_remove_extradata_bsf; AVBitStreamFilter ff_text2movsub_bsf; -void ff_fft_init_aarch64(FFTContext *s) {} -void ff_fft_init_arm(FFTContext *s) {} -void ff_fft_init_mips(FFTContext *s) {} -void ff_fft_init_ppc(FFTContext *s) {} -void ff_rdft_init_arm(RDFTContext *s) {} void ff_h264_pred_init_aarch64(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc) {} @@ -847,9 +877,7 @@ void ff_vp8dsp_init_mips(VP8DSPContext *c) {} void ff_vp9dsp_init_mips(VP9DSPContext *dsp, int bpp) {} void ff_vp9dsp_init_aarch64(VP9DSPContext *dsp, int bpp) {} void ff_vp9dsp_init_arm(VP9DSPContext *dsp, int bpp) {} -#if !defined(__arm__) void ff_flacdsp_init_arm(FLACDSPContext *c, enum AVSampleFormat fmt, int channels, int bps) {} -#endif #if !defined(HAVE_64BIT_BUILD) void ff_flac_decorrelate_indep8_16_sse2(uint8_t **out, int32_t **in, int channels, int len, int shift) {} void ff_flac_decorrelate_indep8_32_avx(uint8_t **out, int32_t **in, int channels, int len, int shift) {} diff --git a/media/ffvpx/libavcodec/error_resilience.h b/media/ffvpx/libavcodec/error_resilience.h index 664a76565..27c200869 100644 --- a/media/ffvpx/libavcodec/error_resilience.h +++ b/media/ffvpx/libavcodec/error_resilience.h @@ -20,7 +20,6 @@ #define AVCODEC_ERROR_RESILIENCE_H #include <stdint.h> -#include <stdatomic.h> #include "avcodec.h" #include "me_cmp.h" @@ -61,7 +60,7 @@ typedef struct ERContext { ptrdiff_t mb_stride; ptrdiff_t b8_stride; - atomic_int error_count; + volatile int error_count; int error_occurred; uint8_t *error_status_table; uint8_t *er_temp_buffer; diff --git a/media/ffvpx/libavcodec/flac_parser.c b/media/ffvpx/libavcodec/flac_parser.c index 272128646..84da23f32 100644 --- a/media/ffvpx/libavcodec/flac_parser.c +++ b/media/ffvpx/libavcodec/flac_parser.c @@ -686,17 +686,12 @@ static int flac_parse(AVCodecParserContext *s, AVCodecContext *avctx, } for (curr = fpc->headers; curr; curr = curr->next) { - if (!fpc->best_header || curr->max_score > fpc->best_header->max_score) { + if (curr->max_score > 0 && + (!fpc->best_header || curr->max_score > fpc->best_header->max_score)) { fpc->best_header = curr; } } - if (fpc->best_header && fpc->best_header->max_score <= 0) { - // Only accept a bad header if there is no other option to continue - if (!buf_size || !buf || read_end != buf || fpc->nb_headers_buffered < FLAC_MIN_HEADERS) - fpc->best_header = NULL; - } - if (fpc->best_header) { fpc->best_header_valid = 1; if (fpc->best_header->offset > 0) { diff --git a/media/ffvpx/libavcodec/flacdec.c b/media/ffvpx/libavcodec/flacdec.c index c8eb45604..3d41a1af7 100644 --- a/media/ffvpx/libavcodec/flacdec.c +++ b/media/ffvpx/libavcodec/flacdec.c @@ -220,27 +220,20 @@ static int get_metadata_size(const uint8_t *buf, int buf_size) static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order) { - GetBitContext gb = s->gb; int i, tmp, partition, method_type, rice_order; int rice_bits, rice_esc; int samples; - method_type = get_bits(&gb, 2); - rice_order = get_bits(&gb, 4); - - samples = s->blocksize >> rice_order; - rice_bits = 4 + method_type; - rice_esc = (1 << rice_bits) - 1; - - decoded += pred_order; - i = pred_order; - + method_type = get_bits(&s->gb, 2); if (method_type > 1) { av_log(s->avctx, AV_LOG_ERROR, "illegal residual coding method %d\n", method_type); return AVERROR_INVALIDDATA; } + rice_order = get_bits(&s->gb, 4); + + samples= s->blocksize >> rice_order; if (samples << rice_order != s->blocksize) { av_log(s->avctx, AV_LOG_ERROR, "invalid rice order: %i blocksize %i\n", rice_order, s->blocksize); @@ -253,16 +246,21 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order) return AVERROR_INVALIDDATA; } + rice_bits = 4 + method_type; + rice_esc = (1 << rice_bits) - 1; + + decoded += pred_order; + i= pred_order; for (partition = 0; partition < (1 << rice_order); partition++) { - tmp = get_bits(&gb, rice_bits); + tmp = get_bits(&s->gb, rice_bits); if (tmp == rice_esc) { - tmp = get_bits(&gb, 5); + tmp = get_bits(&s->gb, 5); for (; i < samples; i++) - *decoded++ = get_sbits_long(&gb, tmp); + *decoded++ = get_sbits_long(&s->gb, tmp); } else { int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX; for (; i < samples; i++) { - int v = get_sr_golomb_flac(&gb, tmp, real_limit, 0); + int v = get_sr_golomb_flac(&s->gb, tmp, real_limit, 0); if (v == 0x80000000){ av_log(s->avctx, AV_LOG_ERROR, "invalid residual\n"); return AVERROR_INVALIDDATA; @@ -274,8 +272,6 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order) i= 0; } - s->gb = gb; - return 0; } diff --git a/media/ffvpx/libavcodec/get_bits.h b/media/ffvpx/libavcodec/get_bits.h index 56ef5f0cb..0c7f5ff0c 100644 --- a/media/ffvpx/libavcodec/get_bits.h +++ b/media/ffvpx/libavcodec/get_bits.h @@ -32,7 +32,6 @@ #include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/avassert.h" -#include "avcodec.h" #include "mathops.h" #include "vlc.h" @@ -202,13 +201,6 @@ static inline int get_bits_count(const GetBitContext *s) return s->index; } -/** - * Skips the specified number of bits. - * @param n the number of bits to skip, - * For the UNCHECKED_BITSTREAM_READER this must not cause the distance - * from the start to overflow int32_t. Staying within the bitstream + padding - * is sufficient, too. - */ static inline void skip_bits_long(GetBitContext *s, int n) { #if UNCHECKED_BITSTREAM_READER @@ -436,7 +428,7 @@ static inline int init_get_bits(GetBitContext *s, const uint8_t *buffer, int buffer_size; int ret = 0; - if (bit_size >= INT_MAX - FFMAX(7, AV_INPUT_BUFFER_PADDING_SIZE*8) || bit_size < 0 || !buffer) { + if (bit_size >= INT_MAX - 7 || bit_size < 0 || !buffer) { bit_size = 0; buffer = NULL; ret = AVERROR_INVALIDDATA; diff --git a/media/ffvpx/libavcodec/hwaccel.h b/media/ffvpx/libavcodec/hwaccel.h index 3aaa92571..124fbbf1f 100644 --- a/media/ffvpx/libavcodec/hwaccel.h +++ b/media/ffvpx/libavcodec/hwaccel.h @@ -19,66 +19,6 @@ #ifndef AVCODEC_HWACCEL_H #define AVCODEC_HWACCEL_H -#include "avcodec.h" -#include "hwaccels.h" - - #define HWACCEL_CAP_ASYNC_SAFE (1 << 0) - -typedef struct AVCodecHWConfigInternal { - /** - * This is the structure which will be returned to the user by - * avcodec_get_hw_config(). - */ - AVCodecHWConfig public; - /** - * If this configuration uses a hwaccel, a pointer to it. - * If not, NULL. - */ - const AVHWAccel *hwaccel; -} AVCodecHWConfigInternal; - - -// These macros are used to simplify AVCodecHWConfigInternal definitions. - -#define HW_CONFIG_HWACCEL(device, frames, ad_hoc, format, device_type_, name) \ - &(const AVCodecHWConfigInternal) { \ - .public = { \ - .pix_fmt = AV_PIX_FMT_ ## format, \ - .methods = (device ? AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX : 0) | \ - (frames ? AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX : 0) | \ - (ad_hoc ? AV_CODEC_HW_CONFIG_METHOD_AD_HOC : 0), \ - .device_type = AV_HWDEVICE_TYPE_ ## device_type_, \ - }, \ - .hwaccel = &name, \ - } - -#define HW_CONFIG_INTERNAL(format) \ - &(const AVCodecHWConfigInternal) { \ - .public = { \ - .pix_fmt = AV_PIX_FMT_ ## format, \ - .methods = AV_CODEC_HW_CONFIG_METHOD_INTERNAL, \ - .device_type = AV_HWDEVICE_TYPE_NONE, \ - }, \ - .hwaccel = NULL, \ - } - -#define HWACCEL_DXVA2(codec) \ - HW_CONFIG_HWACCEL(1, 1, 1, DXVA2_VLD, DXVA2, ff_ ## codec ## _dxva2_hwaccel) -#define HWACCEL_D3D11VA2(codec) \ - HW_CONFIG_HWACCEL(1, 1, 0, D3D11, D3D11VA, ff_ ## codec ## _d3d11va2_hwaccel) -#define HWACCEL_NVDEC(codec) \ - HW_CONFIG_HWACCEL(1, 1, 0, CUDA, CUDA, ff_ ## codec ## _nvdec_hwaccel) -#define HWACCEL_VAAPI(codec) \ - HW_CONFIG_HWACCEL(1, 1, 1, VAAPI, VAAPI, ff_ ## codec ## _vaapi_hwaccel) -#define HWACCEL_VDPAU(codec) \ - HW_CONFIG_HWACCEL(1, 1, 1, VDPAU, VDPAU, ff_ ## codec ## _vdpau_hwaccel) -#define HWACCEL_VIDEOTOOLBOX(codec) \ - HW_CONFIG_HWACCEL(1, 1, 1, VIDEOTOOLBOX, VIDEOTOOLBOX, ff_ ## codec ## _videotoolbox_hwaccel) -#define HWACCEL_D3D11VA(codec) \ - HW_CONFIG_HWACCEL(0, 0, 1, D3D11VA_VLD, NONE, ff_ ## codec ## _d3d11va_hwaccel) -#define HWACCEL_XVMC(codec) \ - HW_CONFIG_HWACCEL(0, 0, 1, XVMC, NONE, ff_ ## codec ## _xvmc_hwaccel) - #endif /* AVCODEC_HWACCEL_H */ diff --git a/media/ffvpx/libavcodec/hwaccels.h b/media/ffvpx/libavcodec/hwaccels.h deleted file mode 100644 index 7d73da867..000000000 --- a/media/ffvpx/libavcodec/hwaccels.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AVCODEC_HWACCELS_H -#define AVCODEC_HWACCELS_H - -#include "avcodec.h" - -extern const AVHWAccel ff_h263_vaapi_hwaccel; -extern const AVHWAccel ff_h263_videotoolbox_hwaccel; -extern const AVHWAccel ff_h264_d3d11va_hwaccel; -extern const AVHWAccel ff_h264_d3d11va2_hwaccel; -extern const AVHWAccel ff_h264_dxva2_hwaccel; -extern const AVHWAccel ff_h264_nvdec_hwaccel; -extern const AVHWAccel ff_h264_vaapi_hwaccel; -extern const AVHWAccel ff_h264_vdpau_hwaccel; -extern const AVHWAccel ff_h264_videotoolbox_hwaccel; -extern const AVHWAccel ff_hevc_d3d11va_hwaccel; -extern const AVHWAccel ff_hevc_d3d11va2_hwaccel; -extern const AVHWAccel ff_hevc_dxva2_hwaccel; -extern const AVHWAccel ff_hevc_nvdec_hwaccel; -extern const AVHWAccel ff_hevc_vaapi_hwaccel; -extern const AVHWAccel ff_hevc_vdpau_hwaccel; -extern const AVHWAccel ff_hevc_videotoolbox_hwaccel; -extern const AVHWAccel ff_mjpeg_nvdec_hwaccel; -extern const AVHWAccel ff_mjpeg_vaapi_hwaccel; -extern const AVHWAccel ff_mpeg1_nvdec_hwaccel; -extern const AVHWAccel ff_mpeg1_vdpau_hwaccel; -extern const AVHWAccel ff_mpeg1_videotoolbox_hwaccel; -extern const AVHWAccel ff_mpeg1_xvmc_hwaccel; -extern const AVHWAccel ff_mpeg2_d3d11va_hwaccel; -extern const AVHWAccel ff_mpeg2_d3d11va2_hwaccel; -extern const AVHWAccel ff_mpeg2_nvdec_hwaccel; -extern const AVHWAccel ff_mpeg2_dxva2_hwaccel; -extern const AVHWAccel ff_mpeg2_vaapi_hwaccel; -extern const AVHWAccel ff_mpeg2_vdpau_hwaccel; -extern const AVHWAccel ff_mpeg2_videotoolbox_hwaccel; -extern const AVHWAccel ff_mpeg2_xvmc_hwaccel; -extern const AVHWAccel ff_mpeg4_nvdec_hwaccel; -extern const AVHWAccel ff_mpeg4_vaapi_hwaccel; -extern const AVHWAccel ff_mpeg4_vdpau_hwaccel; -extern const AVHWAccel ff_mpeg4_videotoolbox_hwaccel; -extern const AVHWAccel ff_vc1_d3d11va_hwaccel; -extern const AVHWAccel ff_vc1_d3d11va2_hwaccel; -extern const AVHWAccel ff_vc1_dxva2_hwaccel; -extern const AVHWAccel ff_vc1_nvdec_hwaccel; -extern const AVHWAccel ff_vc1_vaapi_hwaccel; -extern const AVHWAccel ff_vc1_vdpau_hwaccel; -extern const AVHWAccel ff_vp8_nvdec_hwaccel; -extern const AVHWAccel ff_vp8_vaapi_hwaccel; -extern const AVHWAccel ff_vp9_d3d11va_hwaccel; -extern const AVHWAccel ff_vp9_d3d11va2_hwaccel; -extern const AVHWAccel ff_vp9_dxva2_hwaccel; -extern const AVHWAccel ff_vp9_nvdec_hwaccel; -extern const AVHWAccel ff_vp9_vaapi_hwaccel; -extern const AVHWAccel ff_wmv3_d3d11va_hwaccel; -extern const AVHWAccel ff_wmv3_d3d11va2_hwaccel; -extern const AVHWAccel ff_wmv3_dxva2_hwaccel; -extern const AVHWAccel ff_wmv3_nvdec_hwaccel; -extern const AVHWAccel ff_wmv3_vaapi_hwaccel; -extern const AVHWAccel ff_wmv3_vdpau_hwaccel; - -#endif /* AVCODEC_HWACCELS_H */ diff --git a/media/ffvpx/libavcodec/idctdsp.h b/media/ffvpx/libavcodec/idctdsp.h index ca21a31a0..26221f6a9 100644 --- a/media/ffvpx/libavcodec/idctdsp.h +++ b/media/ffvpx/libavcodec/idctdsp.h @@ -95,8 +95,6 @@ typedef struct IDCTDSPContext { */ uint8_t idct_permutation[64]; enum idct_permutation_type perm_type; - - int mpeg4_studio_profile; } IDCTDSPContext; void ff_put_pixels_clamped_c(const int16_t *block, uint8_t *av_restrict pixels, diff --git a/media/ffvpx/libavcodec/imgconvert.c b/media/ffvpx/libavcodec/imgconvert.c index 1fd636c83..1547f1896 100644 --- a/media/ffvpx/libavcodec/imgconvert.c +++ b/media/ffvpx/libavcodec/imgconvert.c @@ -69,15 +69,10 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *p int i; enum AVPixelFormat best = AV_PIX_FMT_NONE; - int loss; - for (i=0; pix_fmt_list[i] != AV_PIX_FMT_NONE; i++) { - loss = loss_ptr ? *loss_ptr : 0; - best = avcodec_find_best_pix_fmt_of_2(best, pix_fmt_list[i], src_pix_fmt, has_alpha, &loss); - } + for(i=0; pix_fmt_list[i] != AV_PIX_FMT_NONE; i++) + best = avcodec_find_best_pix_fmt_of_2(best, pix_fmt_list[i], src_pix_fmt, has_alpha, loss_ptr); - if (loss_ptr) - *loss_ptr = loss; return best; } diff --git a/media/ffvpx/libavcodec/internal.h b/media/ffvpx/libavcodec/internal.h index bb92873d7..faa923c11 100644 --- a/media/ffvpx/libavcodec/internal.h +++ b/media/ffvpx/libavcodec/internal.h @@ -76,20 +76,22 @@ #endif +#if !FF_API_QUANT_BIAS #define FF_DEFAULT_QUANT_BIAS 999999 +#endif +#if !FF_API_QSCALE_TYPE #define FF_QSCALE_TYPE_MPEG1 0 #define FF_QSCALE_TYPE_MPEG2 1 #define FF_QSCALE_TYPE_H264 2 #define FF_QSCALE_TYPE_VP56 3 +#endif #define FF_SANE_NB_CHANNELS 64U #define FF_SIGNBIT(x) ((x) >> CHAR_BIT * sizeof(x) - 1) -#if HAVE_SIMD_ALIGN_64 -# define STRIDE_ALIGN 64 /* AVX-512 */ -#elif HAVE_SIMD_ALIGN_32 +#if HAVE_SIMD_ALIGN_32 # define STRIDE_ALIGN 32 #elif HAVE_SIMD_ALIGN_16 # define STRIDE_ALIGN 16 @@ -235,8 +237,21 @@ int ff_match_2uint16(const uint16_t (*tab)[2], int size, int a, int b); unsigned int avpriv_toupper4(unsigned int x); +/** + * does needed setup of pkt_pts/pos and such for (re)get_buffer(); + */ +int ff_init_buffer_info(AVCodecContext *s, AVFrame *frame); + + void ff_color_frame(AVFrame *frame, const int color[4]); +extern volatile int ff_avcodec_locked; +int ff_lock_avcodec(AVCodecContext *log_ctx, const AVCodec *codec); +int ff_unlock_avcodec(const AVCodec *codec); + +int avpriv_lock_avformat(void); +int avpriv_unlock_avformat(void); + /** * Maximum size in bytes of extradata. * This value was chosen such that every bit of the buffer is @@ -358,16 +373,14 @@ int ff_set_sar(AVCodecContext *avctx, AVRational sar); int ff_side_data_update_matrix_encoding(AVFrame *frame, enum AVMatrixEncoding matrix_encoding); +#if FF_API_MERGE_SD +int ff_packet_split_and_drop_side_data(AVPacket *pkt); +#endif + /** * Select the (possibly hardware accelerated) pixel format. * This is a wrapper around AVCodecContext.get_format() and should be used * instead of calling get_format() directly. - * - * The list of pixel formats must contain at least one valid entry, and is - * terminated with AV_PIX_FMT_NONE. If it is possible to decode to software, - * the last entry in the list must be the most accurate software format. - * If it is not possible to decode to software, AVCodecContext.sw_pix_fmt - * must be set before calling this function. */ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt); @@ -404,10 +417,4 @@ int ff_alloc_a53_sei(const AVFrame *frame, size_t prefix_len, */ int64_t ff_guess_coded_bitrate(AVCodecContext *avctx); -#if defined(_WIN32) && CONFIG_SHARED && !defined(BUILDING_avcodec) -# define av_export_avcodec __declspec(dllimport) -#else -# define av_export_avcodec -#endif - #endif /* AVCODEC_INTERNAL_H */ diff --git a/media/ffvpx/libavcodec/me_cmp.h b/media/ffvpx/libavcodec/me_cmp.h index 0a589e3c3..0dbbcbb1d 100644 --- a/media/ffvpx/libavcodec/me_cmp.h +++ b/media/ffvpx/libavcodec/me_cmp.h @@ -23,7 +23,7 @@ #include "avcodec.h" -extern const uint32_t ff_square_tab[512]; +extern uint32_t ff_square_tab[512]; /* minimum alignment rules ;) @@ -79,6 +79,8 @@ typedef struct MECmpContext { me_cmp_func median_sad[6]; } MECmpContext; +void ff_me_cmp_init_static(void); + int ff_check_alignment(void); void ff_me_cmp_init(MECmpContext *c, AVCodecContext *avctx); diff --git a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build index 05217a6e4..9980e1556 100644 --- a/media/ffvpx/libavcodec/moz.build +++ b/media/ffvpx/libavcodec/moz.build @@ -12,6 +12,7 @@ if CONFIG['FFVPX_ASFLAGS']: SharedLibrary('mozavcodec') SOURCES += [ 'allcodecs.c', + 'audioconvert.c', 'avpacket.c', 'avpicture.c', 'bitstream.c', @@ -40,6 +41,8 @@ SOURCES += [ 'pthread_slice.c', 'qsv_api.c', 'raw.c', + 'resample.c', + 'resample2.c', 'reverse.c', 'utils.c', 'videodsp.c', @@ -50,7 +53,6 @@ SOURCES += [ 'vp8dsp.c', 'vp9.c', 'vp9_parser.c', - 'vp9_superframe_split_bsf.c', 'vp9block.c', 'vp9data.c', 'vp9dsp.c', diff --git a/media/ffvpx/libavcodec/mpegutils.h b/media/ffvpx/libavcodec/mpegutils.h index 1ed21c19b..9cfadfc4c 100644 --- a/media/ffvpx/libavcodec/mpegutils.h +++ b/media/ffvpx/libavcodec/mpegutils.h @@ -48,6 +48,7 @@ #define MAX_FCODE 7 /* MB types */ +#if !FF_API_MB_TYPE #define MB_TYPE_INTRA4x4 (1 << 0) #define MB_TYPE_INTRA16x16 (1 << 1) // FIXME H.264-specific #define MB_TYPE_INTRA_PCM (1 << 2) // FIXME H.264-specific @@ -69,6 +70,7 @@ #define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1) #define MB_TYPE_QUANT (1 << 16) #define MB_TYPE_CBP (1 << 17) +#endif #define MB_TYPE_INTRA MB_TYPE_INTRA4x4 // default mb_type if there is just one type @@ -137,12 +139,4 @@ void ff_draw_horiz_band(AVCodecContext *avctx, AVFrame *cur, AVFrame *last, int y, int h, int picture_structure, int first_field, int low_delay); -/** - * Print debugging info for the given picture. - */ -void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_table, - uint32_t *mbtype_table, int8_t *qscale_table, int16_t (*motion_val[2])[2], - int *low_delay, - int mb_width, int mb_height, int mb_stride, int quarter_sample); - #endif /* AVCODEC_MPEGUTILS_H */ diff --git a/media/ffvpx/libavcodec/mpegvideo.h b/media/ffvpx/libavcodec/mpegvideo.h index 541909cbb..e9eb633d1 100644 --- a/media/ffvpx/libavcodec/mpegvideo.h +++ b/media/ffvpx/libavcodec/mpegvideo.h @@ -45,7 +45,6 @@ #include "mpegpicture.h" #include "mpegvideodsp.h" #include "mpegvideoencdsp.h" -#include "mpegvideodata.h" #include "pixblockdsp.h" #include "put_bits.h" #include "ratecontrol.h" @@ -72,8 +71,6 @@ #define SLICE_MAX_START_CODE 0x000001af #define EXT_START_CODE 0x000001b5 #define USER_START_CODE 0x000001b2 -#define SLICE_START_CODE 0x000001b7 - /** * MpegEncContext. @@ -255,6 +252,9 @@ typedef struct MpegEncContext { int16_t (*b_field_mv_table[2][2][2])[2];///< MV table (4MV per MB) interlaced B-frame encoding uint8_t (*p_field_select_table[2]); uint8_t (*b_field_select_table[2][2]); +#if FF_API_MOTION_EST + int me_method; ///< ME algorithm +#endif int motion_est; ///< ME algorithm int me_penalty_compensation; int me_pre; ///< prepass for motion estimation @@ -381,8 +381,6 @@ typedef struct MpegEncContext { int custom_pcf; /* MPEG-4 specific */ - int studio_profile; - int dct_precision; ///< number of bits to represent the fractional part of time (encoder only) int time_increment_bits; int last_time_base; @@ -469,13 +467,6 @@ typedef struct MpegEncContext { int intra_vlc_format; int alternate_scan; int seq_disp_ext; - int video_format; -#define VIDEO_FORMAT_COMPONENT 0 -#define VIDEO_FORMAT_PAL 1 -#define VIDEO_FORMAT_NTSC 2 -#define VIDEO_FORMAT_SECAM 3 -#define VIDEO_FORMAT_MAC 4 -#define VIDEO_FORMAT_UNSPECIFIED 5 int repeat_first_field; int chroma_420_type; int chroma_format; @@ -506,10 +497,7 @@ typedef struct MpegEncContext { int16_t (*block)[64]; ///< points to one of the following blocks int16_t (*blocks)[12][64]; // for HQ mode we need to keep the best block - int (*decode_mb)(struct MpegEncContext *s, int16_t block[12][64]); // used by some codecs to avoid a switch() - - int32_t (*block32)[12][64]; - + int (*decode_mb)(struct MpegEncContext *s, int16_t block[6][64]); // used by some codecs to avoid a switch() #define SLICE_OK 0 #define SLICE_ERROR -1 #define SLICE_END -2 ///<end marker found @@ -711,6 +699,10 @@ void ff_mpeg_draw_horiz_band(MpegEncContext *s, int y, int h); void ff_mpeg_flush(AVCodecContext *avctx); void ff_print_debug_info(MpegEncContext *s, Picture *p, AVFrame *pict); +void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_table, + uint32_t *mbtype_table, int8_t *qscale_table, int16_t (*motion_val[2])[2], + int *low_delay, + int mb_width, int mb_height, int mb_stride, int quarter_sample); int ff_mpv_export_qp_table(MpegEncContext *s, AVFrame *f, Picture *p, int qp_type); @@ -737,8 +729,7 @@ void ff_mpv_motion(MpegEncContext *s, qpel_mc_func (*qpix_op)[16]); static inline void ff_update_block_index(MpegEncContext *s){ - const int bytes_per_pixel = 1 + (s->avctx->bits_per_raw_sample > 8); - const int block_size= (8*bytes_per_pixel) >> s->avctx->lowres; + const int block_size= 8 >> s->avctx->lowres; s->block_index[0]+=2; s->block_index[1]+=2; @@ -747,8 +738,8 @@ static inline void ff_update_block_index(MpegEncContext *s){ s->block_index[4]++; s->block_index[5]++; s->dest[0]+= 2*block_size; - s->dest[1]+= (2 >> s->chroma_x_shift) * block_size; - s->dest[2]+= (2 >> s->chroma_x_shift) * block_size; + s->dest[1]+= block_size; + s->dest[2]+= block_size; } static inline int get_bits_diff(MpegEncContext *s){ @@ -760,13 +751,4 @@ static inline int get_bits_diff(MpegEncContext *s){ return bits - last; } -static inline int mpeg_get_qscale(MpegEncContext *s) -{ - int qscale = get_bits(&s->gb, 5); - if (s->q_scale_type) - return ff_mpeg2_non_linear_qscale[qscale]; - else - return qscale << 1; -} - #endif /* AVCODEC_MPEGVIDEO_H */ diff --git a/media/ffvpx/libavcodec/mpegvideodata.h b/media/ffvpx/libavcodec/mpegvideodata.h deleted file mode 100644 index 14f4806d6..000000000 --- a/media/ffvpx/libavcodec/mpegvideodata.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AVCODEC_MPEGVIDEODATA_H -#define AVCODEC_MPEGVIDEODATA_H - -#include <stdint.h> - -/* encoding scans */ -extern const uint8_t ff_alternate_horizontal_scan[64]; -extern const uint8_t ff_alternate_vertical_scan[64]; - -extern const uint8_t ff_mpeg1_dc_scale_table[128]; -extern const uint8_t * const ff_mpeg2_dc_scale_table[4]; - -extern const uint8_t ff_mpeg2_non_linear_qscale[32]; - -extern const uint8_t ff_default_chroma_qscale_table[32]; - -#endif /* AVCODEC_MPEGVIDEODATA_H */ diff --git a/media/ffvpx/libavcodec/null_bsf.c b/media/ffvpx/libavcodec/null_bsf.c index 24d26dfb1..feb71248a 100644 --- a/media/ffvpx/libavcodec/null_bsf.c +++ b/media/ffvpx/libavcodec/null_bsf.c @@ -24,9 +24,17 @@ #include "avcodec.h" #include "bsf.h" -static int null_filter(AVBSFContext *ctx, AVPacket *pkt) +static int null_filter(AVBSFContext *ctx, AVPacket *out) { - return ff_bsf_get_packet_ref(ctx, pkt); + AVPacket *in; + int ret; + + ret = ff_bsf_get_packet(ctx, &in); + if (ret < 0) + return ret; + av_packet_move_ref(out, in); + av_packet_free(&in); + return 0; } const AVBitStreamFilter ff_null_bsf = { diff --git a/media/ffvpx/libavcodec/options.c b/media/ffvpx/libavcodec/options.c index 41b60521c..82e12179a 100644 --- a/media/ffvpx/libavcodec/options.c +++ b/media/ffvpx/libavcodec/options.c @@ -30,6 +30,7 @@ #include "libavutil/internal.h" #include "libavutil/mem.h" #include "libavutil/opt.h" +#include <float.h> /* FLT_MIN, FLT_MAX */ #include <string.h> FF_DISABLE_DEPRECATION_WARNINGS diff --git a/media/ffvpx/libavcodec/options_table.h b/media/ffvpx/libavcodec/options_table.h index 099261e16..2ac37c3ff 100644 --- a/media/ffvpx/libavcodec/options_table.h +++ b/media/ffvpx/libavcodec/options_table.h @@ -54,11 +54,26 @@ static const AVOption avcodec_options[] = { {"qpel", "use 1/4-pel motion compensation", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_QPEL }, INT_MIN, INT_MAX, V|E, "flags"}, {"loop", "use loop filter", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_LOOP_FILTER }, INT_MIN, INT_MAX, V|E, "flags"}, {"qscale", "use fixed qscale", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_QSCALE }, INT_MIN, INT_MAX, 0, "flags"}, +#if FF_API_GMC +{"gmc", "use gmc", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_GMC }, INT_MIN, INT_MAX, V|E, "flags"}, +#endif +#if FF_API_MV0 +{"mv0", "always try a mb with mv=<0,0>", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_MV0 }, INT_MIN, INT_MAX, V|E, "flags"}, +#endif +#if FF_API_INPUT_PRESERVED +{"input_preserved", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_INPUT_PRESERVED }, INT_MIN, INT_MAX, 0, "flags"}, +#endif {"pass1", "use internal 2-pass ratecontrol in first pass mode", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_PASS1 }, INT_MIN, INT_MAX, 0, "flags"}, {"pass2", "use internal 2-pass ratecontrol in second pass mode", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_PASS2 }, INT_MIN, INT_MAX, 0, "flags"}, {"gray", "only decode/encode grayscale", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_GRAY }, INT_MIN, INT_MAX, V|E|D, "flags"}, +#if FF_API_EMU_EDGE +{"emu_edge", "do not draw edges", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_EMU_EDGE }, INT_MIN, INT_MAX, 0, "flags"}, +#endif {"psnr", "error[?] variables will be set during encoding", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_PSNR }, INT_MIN, INT_MAX, V|E, "flags"}, {"truncated", "Input bitstream might be randomly truncated", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_TRUNCATED }, INT_MIN, INT_MAX, V|D, "flags"}, +#if FF_API_NORMALIZE_AQP +{"naq", "normalize adaptive quantization", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_NORMALIZE_AQP }, INT_MIN, INT_MAX, V|E, "flags"}, +#endif {"ildct", "use interlaced DCT", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_INTERLACED_DCT }, INT_MIN, INT_MAX, V|E, "flags"}, {"low_delay", "force low delay", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_LOW_DELAY }, INT_MIN, INT_MAX, V|D|E, "flags"}, {"global_header", "place global headers in extradata instead of every keyframe", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_GLOBAL_HEADER }, INT_MIN, INT_MAX, V|A|E, "flags"}, @@ -76,6 +91,21 @@ static const AVOption avcodec_options[] = { {"export_mvs", "export motion vectors through frame side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_EXPORT_MVS}, INT_MIN, INT_MAX, V|D, "flags2"}, {"skip_manual", "do not skip samples and export skip information as frame side data", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_SKIP_MANUAL}, INT_MIN, INT_MAX, V|D, "flags2"}, {"ass_ro_flush_noop", "do not reset ASS ReadOrder field on flush", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_RO_FLUSH_NOOP}, INT_MIN, INT_MAX, S|D, "flags2"}, +#if FF_API_MOTION_EST +{"me_method", "set motion estimation method", OFFSET(me_method), AV_OPT_TYPE_INT, {.i64 = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method"}, +{"zero", "zero motion estimation (fastest)", 0, AV_OPT_TYPE_CONST, {.i64 = ME_ZERO }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"full", "full motion estimation (slowest)", 0, AV_OPT_TYPE_CONST, {.i64 = ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"epzs", "EPZS motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"esa", "esa motion estimation (alias for full)", 0, AV_OPT_TYPE_CONST, {.i64 = ME_FULL }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"tesa", "tesa motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_TESA }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"dia", "diamond motion estimation (alias for EPZS)", 0, AV_OPT_TYPE_CONST, {.i64 = ME_EPZS }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"log", "log motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_LOG }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"phods", "phods motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_PHODS }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"x1", "X1 motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_X1 }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"hex", "hex motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_HEX }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"umh", "umh motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_UMH }, INT_MIN, INT_MAX, V|E, "me_method" }, +{"iter", "iter motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = ME_ITER }, INT_MIN, INT_MAX, V|E, "me_method" }, +#endif {"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, INT_MAX}, {"g", "set the group of picture (GOP) size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.i64 = 12 }, INT_MIN, INT_MAX, V|E}, {"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E}, @@ -93,6 +123,9 @@ static const AVOption avcodec_options[] = { {"qdiff", "maximum difference between the quantizer scales (VBR)", OFFSET(max_qdiff), AV_OPT_TYPE_INT, {.i64 = 3 }, INT_MIN, INT_MAX, V|E}, {"bf", "set maximum number of B-frames between non-B-frames", OFFSET(max_b_frames), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, -1, INT_MAX, V|E}, {"b_qfactor", "QP factor between P- and B-frames", OFFSET(b_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E}, +#if FF_API_RC_STRATEGY +{"rc_strategy", "ratecontrol method", OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, +#endif #if FF_API_PRIVATE_OPT {"b_strategy", "strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, V|E}, {"ps", "RTP payload size in bytes", OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, @@ -111,10 +144,16 @@ static const AVOption avcodec_options[] = { {"codec_tag", NULL, OFFSET(codec_tag), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, {"bug", "work around not autodetected encoder bugs", OFFSET(workaround_bugs), AV_OPT_TYPE_FLAGS, {.i64 = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"}, {"autodetect", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_AUTODETECT }, INT_MIN, INT_MAX, V|D, "bug"}, +#if FF_API_OLD_MSMPEG4 +{"old_msmpeg4", "some old lavc-generated MSMPEG4v3 files (no autodetection)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_OLD_MSMPEG4 }, INT_MIN, INT_MAX, V|D, "bug"}, +#endif {"xvid_ilace", "Xvid interlacing bug (autodetected if FOURCC == XVIX)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_XVID_ILACE }, INT_MIN, INT_MAX, V|D, "bug"}, {"ump4", "(autodetected if FOURCC == UMP4)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_UMP4 }, INT_MIN, INT_MAX, V|D, "bug"}, {"no_padding", "padding bug (autodetected)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_NO_PADDING }, INT_MIN, INT_MAX, V|D, "bug"}, {"amv", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_AMV }, INT_MIN, INT_MAX, V|D, "bug"}, +#if FF_API_AC_VLC +{"ac_vlc", "illegal VLC bug (autodetected per FOURCC)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_AC_VLC }, INT_MIN, INT_MAX, V|D, "bug"}, +#endif {"qpel_chroma", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_QPEL_CHROMA }, INT_MIN, INT_MAX, V|D, "bug"}, {"std_qpel", "old standard qpel (autodetected per FOURCC/version)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_STD_QPEL }, INT_MIN, INT_MAX, V|D, "bug"}, {"qpel_chroma2", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_BUG_QPEL_CHROMA2 }, INT_MIN, INT_MAX, V|D, "bug"}, @@ -146,13 +185,27 @@ static const AVOption avcodec_options[] = { #if FF_API_PRIVATE_OPT {"mpeg_quant", "use MPEG quantizers instead of H.263", OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, #endif +#if FF_API_MPV_OPT +{"qsquish", "deprecated, use encoder private options instead", OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 99, V|E}, +{"rc_qmod_amp", "deprecated, use encoder private options instead", OFFSET(rc_qmod_amp), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E}, +{"rc_qmod_freq", "deprecated, use encoder private options instead", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, +#endif {"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, +#if FF_API_MPV_OPT +{"rc_eq", "deprecated, use encoder private options instead", OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E}, +#endif {"maxrate", "maximum bitrate (in bits/s). Used for VBV together with bufsize.", OFFSET(rc_max_rate), AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, 0, INT_MAX, V|A|E}, {"minrate", "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise.", OFFSET(rc_min_rate), AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E}, {"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, A|V|E}, +#if FF_API_MPV_OPT +{"rc_buf_aggressivity", "deprecated, use encoder private options instead", OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, V|E}, +#endif {"i_qfactor", "QP factor between P- and I-frames", OFFSET(i_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = -0.8 }, -FLT_MAX, FLT_MAX, V|E}, {"i_qoffset", "QP offset between P- and I-frames", OFFSET(i_quant_offset), AV_OPT_TYPE_FLOAT, {.dbl = 0.0 }, -FLT_MAX, FLT_MAX, V|E}, +#if FF_API_MPV_OPT +{"rc_init_cplx", "deprecated, use encoder private options instead", OFFSET(rc_initial_cplx), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E}, +#endif {"dct", "DCT algorithm", OFFSET(dct_algo), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|E, "dct"}, {"auto", "autoselect a good one", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_AUTO }, INT_MIN, INT_MAX, V|E, "dct"}, {"fastint", "fast integer", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FASTINT }, INT_MIN, INT_MAX, V|E, "dct"}, @@ -172,10 +225,19 @@ static const AVOption avcodec_options[] = { {"simplemmx", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"arm", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#if FF_API_ARCH_SH4 +{"sh4", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#endif {"simplearm", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARM }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simplearmv5te", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simplearmv6", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simpleneon", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#if FF_API_ARCH_ALPHA +{"simplealpha", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#endif +#if FF_API_UNUSED_MEMBERS +{"ipp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#endif /* FF_API_UNUSED_MEMBERS */ {"xvid", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"xvidmmx", "deprecated, for compatibility only", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"}, @@ -207,6 +269,9 @@ static const AVOption avcodec_options[] = { {"green_metadata", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_GREEN_MD }, INT_MIN, INT_MAX, V|D, "debug"}, {"skip", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_SKIP }, INT_MIN, INT_MAX, V|D, "debug"}, {"startcode", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_STARTCODE }, INT_MIN, INT_MAX, V|D, "debug"}, +#if FF_API_UNUSED_MEMBERS +{"pts", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_PTS }, INT_MIN, INT_MAX, V|D, "debug"}, +#endif /* FF_API_UNUSED_MEMBERS */ {"er", "error recognition", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_ER }, INT_MIN, INT_MAX, V|D, "debug"}, {"mmco", "memory management control operations (H.264)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_MMCO }, INT_MIN, INT_MAX, V|D, "debug"}, {"bugs", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_BUGS }, INT_MIN, INT_MAX, V|D, "debug"}, @@ -217,6 +282,12 @@ static const AVOption avcodec_options[] = { {"buffers", "picture buffer allocations", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_BUFFERS }, INT_MIN, INT_MAX, V|D, "debug"}, {"thread_ops", "threading operations", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_THREADS }, INT_MIN, INT_MAX, V|A|D, "debug"}, {"nomc", "skip motion compensation", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_NOMC }, INT_MIN, INT_MAX, V|A|D, "debug"}, +#if FF_API_VISMV +{"vismv", "visualize motion vectors (MVs) (deprecated)", OFFSET(debug_mv), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT }, 0, INT_MAX, V|D, "debug_mv"}, +{"pf", "forward predicted MVs of P-frames", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_VIS_MV_P_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"}, +{"bf", "forward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_VIS_MV_B_FOR }, INT_MIN, INT_MAX, V|D, "debug_mv"}, +{"bb", "backward predicted MVs of B-frames", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DEBUG_VIS_MV_B_BACK }, INT_MIN, INT_MAX, V|D, "debug_mv"}, +#endif {"cmp", "full-pel ME compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"}, {"subcmp", "sub-pel ME compare function", OFFSET(me_sub_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"}, {"mbcmp", "macroblock compare function", OFFSET(mb_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"}, @@ -247,7 +318,14 @@ static const AVOption avcodec_options[] = { {"msad", "sum of absolute differences, median predicted", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_MEDIAN_SAD }, INT_MIN, INT_MAX, V|E, "cmp_func"}, {"pre_dia_size", "diamond type & size for motion estimation pre-pass", OFFSET(pre_dia_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, {"subq", "sub-pel motion estimation quality", OFFSET(me_subpel_quality), AV_OPT_TYPE_INT, {.i64 = 8 }, INT_MIN, INT_MAX, V|E}, +#if FF_API_AFD +{"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, +#endif {"me_range", "limit motion vectors range (1023 for DivX player)", OFFSET(me_range), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, +#if FF_API_QUANT_BIAS +{"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E}, +{"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E}, +#endif {"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E}, #if FF_API_CODER_TYPE {"coder", NULL, OFFSET(coder_type), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "coder"}, @@ -255,25 +333,45 @@ static const AVOption avcodec_options[] = { {"ac", "arithmetic coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_AC }, INT_MIN, INT_MAX, V|E, "coder"}, {"raw", "raw (no encoding)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_RAW }, INT_MIN, INT_MAX, V|E, "coder"}, {"rle", "run-length coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_RLE }, INT_MIN, INT_MAX, V|E, "coder"}, +#if FF_API_UNUSED_MEMBERS +{"deflate", "deflate-based coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_DEFLATE }, INT_MIN, INT_MAX, V|E, "coder"}, +#endif /* FF_API_UNUSED_MEMBERS */ #endif /* FF_API_CODER_TYPE */ #if FF_API_PRIVATE_OPT {"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, #endif {"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, +#if FF_API_XVMC +{"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, +#endif /* FF_API_XVMC */ {"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, 2, V|E, "mbd"}, {"simple", "use mbcmp", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"}, {"bits", "use fewest bits", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_BITS }, INT_MIN, INT_MAX, V|E, "mbd"}, {"rd", "use best rate distortion", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_RD }, INT_MIN, INT_MAX, V|E, "mbd"}, +#if FF_API_STREAM_CODEC_TAG +{"stream_codec_tag", NULL, OFFSET(stream_codec_tag), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, +#endif #if FF_API_PRIVATE_OPT {"sc_threshold", "scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, #endif +#if FF_API_MPV_OPT +{"lmin", "deprecated, use encoder private options instead", OFFSET(lmin), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, V|E}, +{"lmax", "deprecated, use encoder private options instead", OFFSET(lmax), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, V|E}, +#endif #if FF_API_PRIVATE_OPT {"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, #endif {"rc_init_occupancy", "number of bits which should be loaded into the rc buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, {"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0, UINT_MAX, V|A|E|D, "flags2"}, +#if FF_API_ERROR_RATE +{"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, +#endif {"threads", "set the number of threads", OFFSET(thread_count), AV_OPT_TYPE_INT, {.i64 = 1 }, 0, INT_MAX, V|A|E|D, "threads"}, {"auto", "autodetect a suitable number of threads to use", 0, AV_OPT_TYPE_CONST, {.i64 = 0 }, INT_MIN, INT_MAX, V|E|D, "threads"}, +#if FF_API_MPV_OPT +{"me_threshold", "motion estimation threshold", OFFSET(me_threshold), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, +{"mb_threshold", "macroblock threshold", OFFSET(mb_threshold), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, +#endif {"dc", "intra_dc_precision", OFFSET(intra_dc_precision), AV_OPT_TYPE_INT, {.i64 = 0 }, -8, 16, V|E}, {"nssew", "nsse weight", OFFSET(nsse_weight), AV_OPT_TYPE_INT, {.i64 = 8 }, INT_MIN, INT_MAX, V|E}, {"skip_top", "number of macroblock rows at the top which are skipped", OFFSET(skip_top), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|D}, @@ -300,7 +398,6 @@ static const AVOption avcodec_options[] = { {"mpeg4_main", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_MAIN }, INT_MIN, INT_MAX, V|E, "profile"}, {"mpeg4_asp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_ADVANCED_SIMPLE }, INT_MIN, INT_MAX, V|E, "profile"}, {"main10", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_HEVC_MAIN_10 }, INT_MIN, INT_MAX, V|E, "profile"}, -{"msbc", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_SBC_MSBC }, INT_MIN, INT_MAX, A|E, "profile"}, {"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"}, {"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"}, {"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, V|A|D}, @@ -310,6 +407,9 @@ static const AVOption avcodec_options[] = { {"skip_exp", "frame skip exponent", OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, {"skipcmp", "frame skip compare function", OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, V|E, "cmp_func"}, #endif +#if FF_API_MPV_OPT +{"border_mask", "deprecated, use encoder private options instead", OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E}, +#endif {"mblmin", "minimum macroblock Lagrange factor (VBR)", OFFSET(mb_lmin), AV_OPT_TYPE_INT, {.i64 = FF_QP2LAMBDA * 2 }, 1, FF_LAMBDA_MAX, V|E}, {"mblmax", "maximum macroblock Lagrange factor (VBR)", OFFSET(mb_lmax), AV_OPT_TYPE_INT, {.i64 = FF_QP2LAMBDA * 31 }, 1, FF_LAMBDA_MAX, V|E}, #if FF_API_PRIVATE_OPT @@ -335,6 +435,9 @@ static const AVOption avcodec_options[] = { {"chromaoffset", "chroma QP offset from luma", OFFSET(chromaoffset), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, #endif {"trellis", "rate-distortion optimal quantization", OFFSET(trellis), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E}, +#if FF_API_UNUSED_MEMBERS +{"sc_factor", "multiplied by qscale for each frame and added to scene_change_score", OFFSET(scenechange_factor), AV_OPT_TYPE_INT, {.i64 = 6 }, 0, INT_MAX, V|E}, +#endif /* FF_API_UNUSED_MEMBERS */ {"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.i64 = 256 }, 0, INT_MAX, V|E}, #if FF_API_PRIVATE_OPT {"b_sensitivity", "adjust sensitivity of b_frame_strategy 1", OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.i64 = 40 }, 1, INT_MAX, V|E}, @@ -447,7 +550,6 @@ static const AVOption avcodec_options[] = { {"do_nothing", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_SUB_CHARENC_MODE_DO_NOTHING}, INT_MIN, INT_MAX, S|D, "sub_charenc_mode"}, {"auto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_SUB_CHARENC_MODE_AUTOMATIC}, INT_MIN, INT_MAX, S|D, "sub_charenc_mode"}, {"pre_decoder", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_SUB_CHARENC_MODE_PRE_DECODER}, INT_MIN, INT_MAX, S|D, "sub_charenc_mode"}, -{"ignore", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_SUB_CHARENC_MODE_IGNORE}, INT_MIN, INT_MAX, S|D, "sub_charenc_mode"}, #if FF_API_ASS_TIMING {"sub_text_format", "set decoded text subtitle format", OFFSET(sub_text_format), AV_OPT_TYPE_INT, {.i64 = FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS}, 0, 1, S|D, "sub_text_format"}, #else @@ -478,7 +580,6 @@ static const AVOption avcodec_options[] = { {"ignore_level", "ignore level even if the codec level used is unknown or higher than the maximum supported level reported by the hardware driver", 0, AV_OPT_TYPE_CONST, { .i64 = AV_HWACCEL_FLAG_IGNORE_LEVEL }, INT_MIN, INT_MAX, V | D, "hwaccel_flags" }, {"allow_high_depth", "allow to output YUV pixel formats with a different chroma sampling than 4:2:0 and/or other than 8 bits per component", 0, AV_OPT_TYPE_CONST, {.i64 = AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH }, INT_MIN, INT_MAX, V | D, "hwaccel_flags"}, {"allow_profile_mismatch", "attempt to decode anyway if HW accelerated decoder's supported profiles do not exactly match the stream", 0, AV_OPT_TYPE_CONST, {.i64 = AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH }, INT_MIN, INT_MAX, V | D, "hwaccel_flags"}, -{"extra_hw_frames", "Number of extra hardware frames to allocate for the user", OFFSET(extra_hw_frames), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, V|D }, {NULL}, }; diff --git a/media/ffvpx/libavcodec/parser.c b/media/ffvpx/libavcodec/parser.c index f43b197d5..670680ea7 100644 --- a/media/ffvpx/libavcodec/parser.c +++ b/media/ffvpx/libavcodec/parser.c @@ -25,108 +25,40 @@ #include <string.h> #include "libavutil/avassert.h" +#include "libavutil/atomic.h" #include "libavutil/internal.h" #include "libavutil/mem.h" -#include "libavutil/thread.h" #include "internal.h" #include "parser.h" -/* Parsers */ -extern AVCodecParser ff_aac_parser; -extern AVCodecParser ff_aac_latm_parser; -extern AVCodecParser ff_ac3_parser; -extern AVCodecParser ff_adx_parser; -extern AVCodecParser ff_bmp_parser; -extern AVCodecParser ff_cavsvideo_parser; -extern AVCodecParser ff_cook_parser; -extern AVCodecParser ff_dca_parser; -extern AVCodecParser ff_dirac_parser; -extern AVCodecParser ff_dnxhd_parser; -extern AVCodecParser ff_dpx_parser; -extern AVCodecParser ff_dvaudio_parser; -extern AVCodecParser ff_dvbsub_parser; -extern AVCodecParser ff_dvdsub_parser; -extern AVCodecParser ff_dvd_nav_parser; -extern AVCodecParser ff_flac_parser; -extern AVCodecParser ff_g729_parser; -extern AVCodecParser ff_gsm_parser; -extern AVCodecParser ff_h261_parser; -extern AVCodecParser ff_h263_parser; -extern AVCodecParser ff_h264_parser; -extern AVCodecParser ff_hevc_parser; -extern AVCodecParser ff_mjpeg_parser; -extern AVCodecParser ff_mlp_parser; -extern AVCodecParser ff_mpeg4video_parser; -extern AVCodecParser ff_mpegaudio_parser; -extern AVCodecParser ff_mpegvideo_parser; -extern AVCodecParser ff_opus_parser; -extern AVCodecParser ff_png_parser; -extern AVCodecParser ff_pnm_parser; -extern AVCodecParser ff_rv30_parser; -extern AVCodecParser ff_rv40_parser; -extern AVCodecParser ff_sbc_parser; -extern AVCodecParser ff_sipr_parser; -extern AVCodecParser ff_tak_parser; -extern AVCodecParser ff_vc1_parser; -extern AVCodecParser ff_vorbis_parser; -extern AVCodecParser ff_vp3_parser; -extern AVCodecParser ff_vp8_parser; -extern AVCodecParser ff_vp9_parser; -extern AVCodecParser ff_xma_parser; - -#include "libavcodec/parser_list.c" - -static AVOnce av_parser_next_init = AV_ONCE_INIT; - -static void av_parser_init_next(void) -{ - AVCodecParser *prev = NULL, *p; - int i = 0; - while ((p = (AVCodecParser*)parser_list[i++])) { - if (prev) - prev->next = p; - prev = p; - } -} +static AVCodecParser *av_first_parser = NULL; AVCodecParser *av_parser_next(const AVCodecParser *p) { - ff_thread_once(&av_parser_next_init, av_parser_init_next); - if (p) return p->next; else - return (AVCodecParser*)parser_list[0]; -} - -const AVCodecParser *av_parser_iterate(void **opaque) -{ - uintptr_t i = (uintptr_t)*opaque; - const AVCodecParser *p = parser_list[i]; - - if (p) - *opaque = (void*)(i + 1); - - return p; + return av_first_parser; } void av_register_codec_parser(AVCodecParser *parser) { - ff_thread_once(&av_parser_next_init, av_parser_init_next); + do { + parser->next = av_first_parser; + } while (parser->next != avpriv_atomic_ptr_cas((void * volatile *)&av_first_parser, parser->next, parser)); } AVCodecParserContext *av_parser_init(int codec_id) { AVCodecParserContext *s = NULL; - const AVCodecParser *parser; - void *i = 0; + AVCodecParser *parser; int ret; if (codec_id == AV_CODEC_ID_NONE) return NULL; - while ((parser = av_parser_iterate(&i))) { + for (parser = av_first_parser; parser; parser = parser->next) { if (parser->codec_ids[0] == codec_id || parser->codec_ids[1] == codec_id || parser->codec_ids[2] == codec_id || @@ -140,7 +72,7 @@ found: s = av_mallocz(sizeof(AVCodecParserContext)); if (!s) goto err_out; - s->parser = (AVCodecParser*)parser; + s->parser = parser; s->priv_data = av_mallocz(parser->priv_data_size); if (!s->priv_data) goto err_out; diff --git a/media/ffvpx/libavcodec/parser_list.c b/media/ffvpx/libavcodec/parser_list.c deleted file mode 100644 index b60c60bce..000000000 --- a/media/ffvpx/libavcodec/parser_list.c +++ /dev/null @@ -1,8 +0,0 @@ -static const AVCodecParser * const parser_list[] = { -#if CONFIG_VP8_PARSER - &ff_vp8_parser, -#endif -#if CONFIG_VP9_PARSER - &ff_vp9_parser, -#endif - NULL }; diff --git a/media/ffvpx/libavcodec/profiles.c b/media/ffvpx/libavcodec/profiles.c index d7dc960f3..30498efed 100644 --- a/media/ffvpx/libavcodec/profiles.c +++ b/media/ffvpx/libavcodec/profiles.c @@ -140,16 +140,4 @@ const AVProfile ff_vp9_profiles[] = { { FF_PROFILE_UNKNOWN }, }; -const AVProfile ff_av1_profiles[] = { - { FF_PROFILE_AV1_MAIN, "Main" }, - { FF_PROFILE_AV1_HIGH, "High" }, - { FF_PROFILE_AV1_PROFESSIONAL, "Professional" }, - { FF_PROFILE_UNKNOWN }, -}; - -const AVProfile ff_sbc_profiles[] = { - { FF_PROFILE_SBC_MSBC, "mSBC" }, - { FF_PROFILE_UNKNOWN }, -}; - #endif /* !CONFIG_SMALL */ diff --git a/media/ffvpx/libavcodec/profiles.h b/media/ffvpx/libavcodec/profiles.h index 9d7e211e1..eb18b406a 100644 --- a/media/ffvpx/libavcodec/profiles.h +++ b/media/ffvpx/libavcodec/profiles.h @@ -31,7 +31,5 @@ extern const AVProfile ff_mpeg2_video_profiles[]; extern const AVProfile ff_mpeg4_video_profiles[]; extern const AVProfile ff_vc1_profiles[]; extern const AVProfile ff_vp9_profiles[]; -extern const AVProfile ff_av1_profiles[]; -extern const AVProfile ff_sbc_profiles[]; #endif /* AVCODEC_PROFILES_H */ diff --git a/media/ffvpx/libavcodec/pthread_frame.c b/media/ffvpx/libavcodec/pthread_frame.c index 5104b1beb..2c702c737 100644 --- a/media/ffvpx/libavcodec/pthread_frame.c +++ b/media/ffvpx/libavcodec/pthread_frame.c @@ -246,7 +246,7 @@ static int update_context_from_thread(AVCodecContext *dst, AVCodecContext *src, { int err = 0; - if (dst != src && (for_user || !(src->codec_descriptor->props & AV_CODEC_PROP_INTRA_ONLY))) { + if (dst != src && (for_user || !(av_codec_get_codec_descriptor(src)->props & AV_CODEC_PROP_INTRA_ONLY))) { dst->time_base = src->time_base; dst->framerate = src->framerate; dst->width = src->width; @@ -262,6 +262,11 @@ static int update_context_from_thread(AVCodecContext *dst, AVCodecContext *src, dst->bits_per_coded_sample = src->bits_per_coded_sample; dst->sample_aspect_ratio = src->sample_aspect_ratio; +#if FF_API_AFD +FF_DISABLE_DEPRECATION_WARNINGS + dst->dtg_active_format = src->dtg_active_format; +FF_ENABLE_DEPRECATION_WARNINGS +#endif /* FF_API_AFD */ dst->profile = src->profile; dst->level = src->level; @@ -728,6 +733,10 @@ int ff_frame_thread_init(AVCodecContext *avctx) FrameThreadContext *fctx; int i, err = 0; +#if HAVE_W32THREADS + w32thread_init(); +#endif + if (!thread_count) { int nb_cpus = av_cpu_count(); #if FF_API_DEBUG_MV @@ -886,6 +895,8 @@ static int thread_get_buffer_internal(AVCodecContext *avctx, ThreadFrame *f, int f->owner[0] = f->owner[1] = avctx; + ff_init_buffer_info(avctx, f->f); + if (!(avctx->active_thread_type & FF_THREAD_FRAME)) return ff_get_buffer(avctx, f->f, flags); diff --git a/media/ffvpx/libavcodec/pthread_slice.c b/media/ffvpx/libavcodec/pthread_slice.c index 77cfe3c9f..d659f9b0b 100644 --- a/media/ffvpx/libavcodec/pthread_slice.c +++ b/media/ffvpx/libavcodec/pthread_slice.c @@ -132,6 +132,10 @@ int ff_slice_thread_init(AVCodecContext *avctx) int thread_count = avctx->thread_count; static void (*mainfunc)(void *); +#if HAVE_W32THREADS + w32thread_init(); +#endif + // We cannot do this in the encoder init as the threads are created before if (av_codec_is_encoder(avctx->codec) && avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO && diff --git a/media/ffvpx/libavcodec/raw.h b/media/ffvpx/libavcodec/raw.h index 28a27b1f9..24bf4cc55 100644 --- a/media/ffvpx/libavcodec/raw.h +++ b/media/ffvpx/libavcodec/raw.h @@ -28,7 +28,6 @@ #define AVCODEC_RAW_H #include "avcodec.h" -#include "internal.h" #include "libavutil/internal.h" typedef struct PixelFormatTag { @@ -42,7 +41,7 @@ const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void); enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags, unsigned int fourcc); -extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_avi[]; -extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_mov[]; +extern av_export const PixelFormatTag avpriv_pix_fmt_bps_avi[]; +extern av_export const PixelFormatTag avpriv_pix_fmt_bps_mov[]; #endif /* AVCODEC_RAW_H */ diff --git a/media/ffvpx/libavcodec/resample.c b/media/ffvpx/libavcodec/resample.c new file mode 100644 index 000000000..4c5eb9f10 --- /dev/null +++ b/media/ffvpx/libavcodec/resample.c @@ -0,0 +1,439 @@ +/* + * samplerate conversion for both audio and video + * Copyright (c) 2000 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * samplerate conversion for both audio and video + */ + +#include <string.h> + +#include "avcodec.h" +#include "audioconvert.h" +#include "libavutil/opt.h" +#include "libavutil/mem.h" +#include "libavutil/samplefmt.h" + +#if FF_API_AVCODEC_RESAMPLE +FF_DISABLE_DEPRECATION_WARNINGS + +#define MAX_CHANNELS 8 + +struct AVResampleContext; + +static const char *context_to_name(void *ptr) +{ + return "audioresample"; +} + +static const AVOption options[] = {{NULL}}; +static const AVClass audioresample_context_class = { + "ReSampleContext", context_to_name, options, LIBAVUTIL_VERSION_INT +}; + +struct ReSampleContext { + struct AVResampleContext *resample_context; + short *temp[MAX_CHANNELS]; + int temp_len; + float ratio; + /* channel convert */ + int input_channels, output_channels, filter_channels; + AVAudioConvert *convert_ctx[2]; + enum AVSampleFormat sample_fmt[2]; ///< input and output sample format + unsigned sample_size[2]; ///< size of one sample in sample_fmt + short *buffer[2]; ///< buffers used for conversion to S16 + unsigned buffer_size[2]; ///< sizes of allocated buffers +}; + +/* n1: number of samples */ +static void stereo_to_mono(short *output, short *input, int n1) +{ + short *p, *q; + int n = n1; + + p = input; + q = output; + while (n >= 4) { + q[0] = (p[0] + p[1]) >> 1; + q[1] = (p[2] + p[3]) >> 1; + q[2] = (p[4] + p[5]) >> 1; + q[3] = (p[6] + p[7]) >> 1; + q += 4; + p += 8; + n -= 4; + } + while (n > 0) { + q[0] = (p[0] + p[1]) >> 1; + q++; + p += 2; + n--; + } +} + +/* n1: number of samples */ +static void mono_to_stereo(short *output, short *input, int n1) +{ + short *p, *q; + int n = n1; + int v; + + p = input; + q = output; + while (n >= 4) { + v = p[0]; q[0] = v; q[1] = v; + v = p[1]; q[2] = v; q[3] = v; + v = p[2]; q[4] = v; q[5] = v; + v = p[3]; q[6] = v; q[7] = v; + q += 8; + p += 4; + n -= 4; + } + while (n > 0) { + v = p[0]; q[0] = v; q[1] = v; + q += 2; + p += 1; + n--; + } +} + +/* +5.1 to stereo input: [fl, fr, c, lfe, rl, rr] +- Left = front_left + rear_gain * rear_left + center_gain * center +- Right = front_right + rear_gain * rear_right + center_gain * center +Where rear_gain is usually around 0.5-1.0 and + center_gain is almost always 0.7 (-3 dB) +*/ +static void surround_to_stereo(short **output, short *input, int channels, int samples) +{ + int i; + short l, r; + + for (i = 0; i < samples; i++) { + int fl,fr,c,rl,rr; + fl = input[0]; + fr = input[1]; + c = input[2]; + // lfe = input[3]; + rl = input[4]; + rr = input[5]; + + l = av_clip_int16(fl + (0.5 * rl) + (0.7 * c)); + r = av_clip_int16(fr + (0.5 * rr) + (0.7 * c)); + + /* output l & r. */ + *output[0]++ = l; + *output[1]++ = r; + + /* increment input. */ + input += channels; + } +} + +static void deinterleave(short **output, short *input, int channels, int samples) +{ + int i, j; + + for (i = 0; i < samples; i++) { + for (j = 0; j < channels; j++) { + *output[j]++ = *input++; + } + } +} + +static void interleave(short *output, short **input, int channels, int samples) +{ + int i, j; + + for (i = 0; i < samples; i++) { + for (j = 0; j < channels; j++) { + *output++ = *input[j]++; + } + } +} + +static void ac3_5p1_mux(short *output, short *input1, short *input2, int n) +{ + int i; + short l, r; + + for (i = 0; i < n; i++) { + l = *input1++; + r = *input2++; + *output++ = l; /* left */ + *output++ = (l / 2) + (r / 2); /* center */ + *output++ = r; /* right */ + *output++ = 0; /* left surround */ + *output++ = 0; /* right surroud */ + *output++ = 0; /* low freq */ + } +} + +#define SUPPORT_RESAMPLE(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8) \ + ch8<<7 | ch7<<6 | ch6<<5 | ch5<<4 | ch4<<3 | ch3<<2 | ch2<<1 | ch1<<0 + +static const uint8_t supported_resampling[MAX_CHANNELS] = { + // output ch: 1 2 3 4 5 6 7 8 + SUPPORT_RESAMPLE(1, 1, 0, 0, 0, 0, 0, 0), // 1 input channel + SUPPORT_RESAMPLE(1, 1, 0, 0, 0, 1, 0, 0), // 2 input channels + SUPPORT_RESAMPLE(0, 0, 1, 0, 0, 0, 0, 0), // 3 input channels + SUPPORT_RESAMPLE(0, 0, 0, 1, 0, 0, 0, 0), // 4 input channels + SUPPORT_RESAMPLE(0, 0, 0, 0, 1, 0, 0, 0), // 5 input channels + SUPPORT_RESAMPLE(0, 1, 0, 0, 0, 1, 0, 0), // 6 input channels + SUPPORT_RESAMPLE(0, 0, 0, 0, 0, 0, 1, 0), // 7 input channels + SUPPORT_RESAMPLE(0, 0, 0, 0, 0, 0, 0, 1), // 8 input channels +}; + +ReSampleContext *av_audio_resample_init(int output_channels, int input_channels, + int output_rate, int input_rate, + enum AVSampleFormat sample_fmt_out, + enum AVSampleFormat sample_fmt_in, + int filter_length, int log2_phase_count, + int linear, double cutoff) +{ + ReSampleContext *s; + + if (input_channels > MAX_CHANNELS) { + av_log(NULL, AV_LOG_ERROR, + "Resampling with input channels greater than %d is unsupported.\n", + MAX_CHANNELS); + return NULL; + } + if (!(supported_resampling[input_channels-1] & (1<<(output_channels-1)))) { + int i; + av_log(NULL, AV_LOG_ERROR, "Unsupported audio resampling. Allowed " + "output channels for %d input channel%s", input_channels, + input_channels > 1 ? "s:" : ":"); + for (i = 0; i < MAX_CHANNELS; i++) + if (supported_resampling[input_channels-1] & (1<<i)) + av_log(NULL, AV_LOG_ERROR, " %d", i + 1); + av_log(NULL, AV_LOG_ERROR, "\n"); + return NULL; + } + + s = av_mallocz(sizeof(ReSampleContext)); + if (!s) { + av_log(NULL, AV_LOG_ERROR, "Can't allocate memory for resample context.\n"); + return NULL; + } + + s->ratio = (float)output_rate / (float)input_rate; + + s->input_channels = input_channels; + s->output_channels = output_channels; + + s->filter_channels = s->input_channels; + if (s->output_channels < s->filter_channels) + s->filter_channels = s->output_channels; + + s->sample_fmt[0] = sample_fmt_in; + s->sample_fmt[1] = sample_fmt_out; + s->sample_size[0] = av_get_bytes_per_sample(s->sample_fmt[0]); + s->sample_size[1] = av_get_bytes_per_sample(s->sample_fmt[1]); + + if (s->sample_fmt[0] != AV_SAMPLE_FMT_S16) { + if (!(s->convert_ctx[0] = av_audio_convert_alloc(AV_SAMPLE_FMT_S16, 1, + s->sample_fmt[0], 1, NULL, 0))) { + av_log(s, AV_LOG_ERROR, + "Cannot convert %s sample format to s16 sample format\n", + av_get_sample_fmt_name(s->sample_fmt[0])); + av_free(s); + return NULL; + } + } + + if (s->sample_fmt[1] != AV_SAMPLE_FMT_S16) { + if (!(s->convert_ctx[1] = av_audio_convert_alloc(s->sample_fmt[1], 1, + AV_SAMPLE_FMT_S16, 1, NULL, 0))) { + av_log(s, AV_LOG_ERROR, + "Cannot convert s16 sample format to %s sample format\n", + av_get_sample_fmt_name(s->sample_fmt[1])); + av_audio_convert_free(s->convert_ctx[0]); + av_free(s); + return NULL; + } + } + + s->resample_context = av_resample_init(output_rate, input_rate, + filter_length, log2_phase_count, + linear, cutoff); + + *(const AVClass**)s->resample_context = &audioresample_context_class; + + return s; +} + +/* resample audio. 'nb_samples' is the number of input samples */ +/* XXX: optimize it ! */ +int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples) +{ + int i, nb_samples1; + short *bufin[MAX_CHANNELS]; + short *bufout[MAX_CHANNELS]; + short *buftmp2[MAX_CHANNELS], *buftmp3[MAX_CHANNELS]; + short *output_bak = NULL; + int lenout; + + if (s->sample_fmt[0] != AV_SAMPLE_FMT_S16) { + int istride[1] = { s->sample_size[0] }; + int ostride[1] = { 2 }; + const void *ibuf[1] = { input }; + void *obuf[1]; + unsigned input_size = nb_samples * s->input_channels * 2; + + if (!s->buffer_size[0] || s->buffer_size[0] < input_size) { + av_free(s->buffer[0]); + s->buffer_size[0] = input_size; + s->buffer[0] = av_malloc(s->buffer_size[0]); + if (!s->buffer[0]) { + av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n"); + return 0; + } + } + + obuf[0] = s->buffer[0]; + + if (av_audio_convert(s->convert_ctx[0], obuf, ostride, + ibuf, istride, nb_samples * s->input_channels) < 0) { + av_log(s->resample_context, AV_LOG_ERROR, + "Audio sample format conversion failed\n"); + return 0; + } + + input = s->buffer[0]; + } + + lenout= 2*s->output_channels*nb_samples * s->ratio + 16; + + if (s->sample_fmt[1] != AV_SAMPLE_FMT_S16) { + int out_size = lenout * av_get_bytes_per_sample(s->sample_fmt[1]) * + s->output_channels; + output_bak = output; + + if (!s->buffer_size[1] || s->buffer_size[1] < out_size) { + av_free(s->buffer[1]); + s->buffer_size[1] = out_size; + s->buffer[1] = av_malloc(s->buffer_size[1]); + if (!s->buffer[1]) { + av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n"); + return 0; + } + } + + output = s->buffer[1]; + } + + /* XXX: move those malloc to resample init code */ + for (i = 0; i < s->filter_channels; i++) { + bufin[i] = av_malloc_array((nb_samples + s->temp_len), sizeof(short)); + bufout[i] = av_malloc_array(lenout, sizeof(short)); + + if (!bufin[i] || !bufout[i]) { + av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n"); + nb_samples1 = 0; + goto fail; + } + + memcpy(bufin[i], s->temp[i], s->temp_len * sizeof(short)); + buftmp2[i] = bufin[i] + s->temp_len; + } + + if (s->input_channels == 2 && s->output_channels == 1) { + buftmp3[0] = output; + stereo_to_mono(buftmp2[0], input, nb_samples); + } else if (s->output_channels >= 2 && s->input_channels == 1) { + buftmp3[0] = bufout[0]; + memcpy(buftmp2[0], input, nb_samples * sizeof(short)); + } else if (s->input_channels == 6 && s->output_channels ==2) { + buftmp3[0] = bufout[0]; + buftmp3[1] = bufout[1]; + surround_to_stereo(buftmp2, input, s->input_channels, nb_samples); + } else if (s->output_channels >= s->input_channels && s->input_channels >= 2) { + for (i = 0; i < s->input_channels; i++) { + buftmp3[i] = bufout[i]; + } + deinterleave(buftmp2, input, s->input_channels, nb_samples); + } else { + buftmp3[0] = output; + memcpy(buftmp2[0], input, nb_samples * sizeof(short)); + } + + nb_samples += s->temp_len; + + /* resample each channel */ + nb_samples1 = 0; /* avoid warning */ + for (i = 0; i < s->filter_channels; i++) { + int consumed; + int is_last = i + 1 == s->filter_channels; + + nb_samples1 = av_resample(s->resample_context, buftmp3[i], bufin[i], + &consumed, nb_samples, lenout, is_last); + s->temp_len = nb_samples - consumed; + s->temp[i] = av_realloc_array(s->temp[i], s->temp_len, sizeof(short)); + memcpy(s->temp[i], bufin[i] + consumed, s->temp_len * sizeof(short)); + } + + if (s->output_channels == 2 && s->input_channels == 1) { + mono_to_stereo(output, buftmp3[0], nb_samples1); + } else if (s->output_channels == 6 && s->input_channels == 2) { + ac3_5p1_mux(output, buftmp3[0], buftmp3[1], nb_samples1); + } else if ((s->output_channels == s->input_channels && s->input_channels >= 2) || + (s->output_channels == 2 && s->input_channels == 6)) { + interleave(output, buftmp3, s->output_channels, nb_samples1); + } + + if (s->sample_fmt[1] != AV_SAMPLE_FMT_S16) { + int istride[1] = { 2 }; + int ostride[1] = { s->sample_size[1] }; + const void *ibuf[1] = { output }; + void *obuf[1] = { output_bak }; + + if (av_audio_convert(s->convert_ctx[1], obuf, ostride, + ibuf, istride, nb_samples1 * s->output_channels) < 0) { + av_log(s->resample_context, AV_LOG_ERROR, + "Audio sample format conversion failed\n"); + return 0; + } + } + +fail: + for (i = 0; i < s->filter_channels; i++) { + av_free(bufin[i]); + av_free(bufout[i]); + } + + return nb_samples1; +} + +void audio_resample_close(ReSampleContext *s) +{ + int i; + av_resample_close(s->resample_context); + for (i = 0; i < s->filter_channels; i++) + av_freep(&s->temp[i]); + av_freep(&s->buffer[0]); + av_freep(&s->buffer[1]); + av_audio_convert_free(s->convert_ctx[0]); + av_audio_convert_free(s->convert_ctx[1]); + av_free(s); +} + +FF_ENABLE_DEPRECATION_WARNINGS +#endif diff --git a/media/ffvpx/libavcodec/resample2.c b/media/ffvpx/libavcodec/resample2.c new file mode 100644 index 000000000..56ae9f722 --- /dev/null +++ b/media/ffvpx/libavcodec/resample2.c @@ -0,0 +1,319 @@ +/* + * audio resampling + * Copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * audio resampling + * @author Michael Niedermayer <michaelni@gmx.at> + */ + +#include "libavutil/avassert.h" +#include "avcodec.h" +#include "libavutil/common.h" + +#if FF_API_AVCODEC_RESAMPLE + +#ifndef CONFIG_RESAMPLE_HP +#define FILTER_SHIFT 15 + +typedef int16_t FELEM; +typedef int32_t FELEM2; +typedef int64_t FELEML; +#define FELEM_MAX INT16_MAX +#define FELEM_MIN INT16_MIN +#define WINDOW_TYPE 9 +#elif !defined(CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE) +#define FILTER_SHIFT 30 + +#define FELEM int32_t +#define FELEM2 int64_t +#define FELEML int64_t +#define FELEM_MAX INT32_MAX +#define FELEM_MIN INT32_MIN +#define WINDOW_TYPE 12 +#else +#define FILTER_SHIFT 0 + +typedef double FELEM; +typedef double FELEM2; +typedef double FELEML; +#define WINDOW_TYPE 24 +#endif + + +typedef struct AVResampleContext{ + const AVClass *av_class; + FELEM *filter_bank; + int filter_length; + int ideal_dst_incr; + int dst_incr; + int index; + int frac; + int src_incr; + int compensation_distance; + int phase_shift; + int phase_mask; + int linear; +}AVResampleContext; + +/** + * 0th order modified bessel function of the first kind. + */ +static double bessel(double x){ + double v=1; + double lastv=0; + double t=1; + int i; + + x= x*x/4; + for(i=1; v != lastv; i++){ + lastv=v; + t *= x/(i*i); + v += t; + } + return v; +} + +/** + * Build a polyphase filterbank. + * @param factor resampling factor + * @param scale wanted sum of coefficients for each filter + * @param type 0->cubic, 1->blackman nuttall windowed sinc, 2..16->kaiser windowed sinc beta=2..16 + * @return 0 on success, negative on error + */ +static int build_filter(FELEM *filter, double factor, int tap_count, int phase_count, int scale, int type){ + int ph, i; + double x, y, w; + double *tab = av_malloc_array(tap_count, sizeof(*tab)); + const int center= (tap_count-1)/2; + + if (!tab) + return AVERROR(ENOMEM); + + /* if upsampling, only need to interpolate, no filter */ + if (factor > 1.0) + factor = 1.0; + + for(ph=0;ph<phase_count;ph++) { + double norm = 0; + for(i=0;i<tap_count;i++) { + x = M_PI * ((double)(i - center) - (double)ph / phase_count) * factor; + if (x == 0) y = 1.0; + else y = sin(x) / x; + switch(type){ + case 0:{ + const float d= -0.5; //first order derivative = -0.5 + x = fabs(((double)(i - center) - (double)ph / phase_count) * factor); + if(x<1.0) y= 1 - 3*x*x + 2*x*x*x + d*( -x*x + x*x*x); + else y= d*(-4 + 8*x - 5*x*x + x*x*x); + break;} + case 1: + w = 2.0*x / (factor*tap_count) + M_PI; + y *= 0.3635819 - 0.4891775 * cos(w) + 0.1365995 * cos(2*w) - 0.0106411 * cos(3*w); + break; + default: + w = 2.0*x / (factor*tap_count*M_PI); + y *= bessel(type*sqrt(FFMAX(1-w*w, 0))); + break; + } + + tab[i] = y; + norm += y; + } + + /* normalize so that an uniform color remains the same */ + for(i=0;i<tap_count;i++) { +#ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE + filter[ph * tap_count + i] = tab[i] / norm; +#else + filter[ph * tap_count + i] = av_clip(lrintf(tab[i] * scale / norm), FELEM_MIN, FELEM_MAX); +#endif + } + } +#if 0 + { +#define LEN 1024 + int j,k; + double sine[LEN + tap_count]; + double filtered[LEN]; + double maxff=-2, minff=2, maxsf=-2, minsf=2; + for(i=0; i<LEN; i++){ + double ss=0, sf=0, ff=0; + for(j=0; j<LEN+tap_count; j++) + sine[j]= cos(i*j*M_PI/LEN); + for(j=0; j<LEN; j++){ + double sum=0; + ph=0; + for(k=0; k<tap_count; k++) + sum += filter[ph * tap_count + k] * sine[k+j]; + filtered[j]= sum / (1<<FILTER_SHIFT); + ss+= sine[j + center] * sine[j + center]; + ff+= filtered[j] * filtered[j]; + sf+= sine[j + center] * filtered[j]; + } + ss= sqrt(2*ss/LEN); + ff= sqrt(2*ff/LEN); + sf= 2*sf/LEN; + maxff= FFMAX(maxff, ff); + minff= FFMIN(minff, ff); + maxsf= FFMAX(maxsf, sf); + minsf= FFMIN(minsf, sf); + if(i%11==0){ + av_log(NULL, AV_LOG_ERROR, "i:%4d ss:%f ff:%13.6e-%13.6e sf:%13.6e-%13.6e\n", i, ss, maxff, minff, maxsf, minsf); + minff=minsf= 2; + maxff=maxsf= -2; + } + } + } +#endif + + av_free(tab); + return 0; +} + +AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_size, int phase_shift, int linear, double cutoff){ + AVResampleContext *c= av_mallocz(sizeof(AVResampleContext)); + double factor= FFMIN(out_rate * cutoff / in_rate, 1.0); + int phase_count= 1<<phase_shift; + + if (!c) + return NULL; + + c->phase_shift= phase_shift; + c->phase_mask= phase_count-1; + c->linear= linear; + + c->filter_length= FFMAX((int)ceil(filter_size/factor), 1); + c->filter_bank= av_mallocz_array(c->filter_length, (phase_count+1)*sizeof(FELEM)); + if (!c->filter_bank) + goto error; + if (build_filter(c->filter_bank, factor, c->filter_length, phase_count, 1<<FILTER_SHIFT, WINDOW_TYPE)) + goto error; + memcpy(&c->filter_bank[c->filter_length*phase_count+1], c->filter_bank, (c->filter_length-1)*sizeof(FELEM)); + c->filter_bank[c->filter_length*phase_count]= c->filter_bank[c->filter_length - 1]; + + if(!av_reduce(&c->src_incr, &c->dst_incr, out_rate, in_rate * (int64_t)phase_count, INT32_MAX/2)) + goto error; + c->ideal_dst_incr= c->dst_incr; + + c->index= -phase_count*((c->filter_length-1)/2); + + return c; +error: + av_free(c->filter_bank); + av_free(c); + return NULL; +} + +void av_resample_close(AVResampleContext *c){ + av_freep(&c->filter_bank); + av_freep(&c); +} + +void av_resample_compensate(AVResampleContext *c, int sample_delta, int compensation_distance){ +// sample_delta += (c->ideal_dst_incr - c->dst_incr)*(int64_t)c->compensation_distance / c->ideal_dst_incr; + c->compensation_distance= compensation_distance; + c->dst_incr = c->ideal_dst_incr - c->ideal_dst_incr * (int64_t)sample_delta / compensation_distance; +} + +int av_resample(AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx){ + int dst_index, i; + int index= c->index; + int frac= c->frac; + int dst_incr_frac= c->dst_incr % c->src_incr; + int dst_incr= c->dst_incr / c->src_incr; + int compensation_distance= c->compensation_distance; + + if(compensation_distance == 0 && c->filter_length == 1 && c->phase_shift==0){ + int64_t index2= ((int64_t)index)<<32; + int64_t incr= (1LL<<32) * c->dst_incr / c->src_incr; + dst_size= FFMIN(dst_size, (src_size-1-index) * (int64_t)c->src_incr / c->dst_incr); + + for(dst_index=0; dst_index < dst_size; dst_index++){ + dst[dst_index] = src[index2>>32]; + index2 += incr; + } + index += dst_index * dst_incr; + index += (frac + dst_index * (int64_t)dst_incr_frac) / c->src_incr; + frac = (frac + dst_index * (int64_t)dst_incr_frac) % c->src_incr; + }else{ + for(dst_index=0; dst_index < dst_size; dst_index++){ + FELEM *filter= c->filter_bank + c->filter_length*(index & c->phase_mask); + int sample_index= index >> c->phase_shift; + FELEM2 val=0; + + if(sample_index < 0){ + for(i=0; i<c->filter_length; i++) + val += src[FFABS(sample_index + i) % src_size] * filter[i]; + }else if(sample_index + c->filter_length > src_size){ + break; + }else if(c->linear){ + FELEM2 v2=0; + for(i=0; i<c->filter_length; i++){ + val += src[sample_index + i] * (FELEM2)filter[i]; + v2 += src[sample_index + i] * (FELEM2)filter[i + c->filter_length]; + } + val+=(v2-val)*(FELEML)frac / c->src_incr; + }else{ + for(i=0; i<c->filter_length; i++){ + val += src[sample_index + i] * (FELEM2)filter[i]; + } + } + +#ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE + dst[dst_index] = av_clip_int16(lrintf(val)); +#else + val = (val + (1<<(FILTER_SHIFT-1)))>>FILTER_SHIFT; + dst[dst_index] = (unsigned)(val + 32768) > 65535 ? (val>>31) ^ 32767 : val; +#endif + + frac += dst_incr_frac; + index += dst_incr; + if(frac >= c->src_incr){ + frac -= c->src_incr; + index++; + } + + if(dst_index + 1 == compensation_distance){ + compensation_distance= 0; + dst_incr_frac= c->ideal_dst_incr % c->src_incr; + dst_incr= c->ideal_dst_incr / c->src_incr; + } + } + } + *consumed= FFMAX(index, 0) >> c->phase_shift; + if(index>=0) index &= c->phase_mask; + + if(compensation_distance){ + compensation_distance -= dst_index; + av_assert2(compensation_distance > 0); + } + if(update_ctx){ + c->frac= frac; + c->index= index; + c->dst_incr= dst_incr_frac + c->src_incr*dst_incr; + c->compensation_distance= compensation_distance; + } + + return dst_index; +} + +#endif diff --git a/media/ffvpx/libavcodec/thread.h b/media/ffvpx/libavcodec/thread.h index 540135fbc..318619316 100644 --- a/media/ffvpx/libavcodec/thread.h +++ b/media/ffvpx/libavcodec/thread.h @@ -29,6 +29,7 @@ #include "libavutil/buffer.h" +#include "config.h" #include "avcodec.h" typedef struct ThreadFrame { diff --git a/media/ffvpx/libavcodec/utils.c b/media/ffvpx/libavcodec/utils.c index 59d41ccbb..0c47e761f 100644 --- a/media/ffvpx/libavcodec/utils.c +++ b/media/ffvpx/libavcodec/utils.c @@ -26,6 +26,7 @@ */ #include "config.h" +#include "libavutil/atomic.h" #include "libavutil/attributes.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" @@ -44,8 +45,8 @@ #include "libavutil/thread.h" #include "avcodec.h" #include "decode.h" -#include "hwaccel.h" #include "libavutil/opt.h" +#include "me_cmp.h" #include "mpegvideo.h" #include "thread.h" #include "frame_thread_encoder.h" @@ -55,7 +56,6 @@ #include "version.h" #include <stdlib.h> #include <stdarg.h> -#include <stdatomic.h> #include <limits.h> #include <float.h> #if CONFIG_ICONV @@ -65,7 +65,58 @@ #include "libavutil/ffversion.h" const char av_codec_ffversion[] = "FFmpeg version " FFMPEG_VERSION; -static AVMutex codec_mutex = AV_MUTEX_INITIALIZER; +#if HAVE_PTHREADS || HAVE_W32THREADS || HAVE_OS2THREADS +static int default_lockmgr_cb(void **arg, enum AVLockOp op) +{ + void * volatile * mutex = arg; + int err; + + switch (op) { + case AV_LOCK_CREATE: + return 0; + case AV_LOCK_OBTAIN: + if (!*mutex) { + pthread_mutex_t *tmp = av_malloc(sizeof(pthread_mutex_t)); + if (!tmp) + return AVERROR(ENOMEM); + if ((err = pthread_mutex_init(tmp, NULL))) { + av_free(tmp); + return AVERROR(err); + } + if (avpriv_atomic_ptr_cas(mutex, NULL, tmp)) { + pthread_mutex_destroy(tmp); + av_free(tmp); + } + } + + if ((err = pthread_mutex_lock(*mutex))) + return AVERROR(err); + + return 0; + case AV_LOCK_RELEASE: + if ((err = pthread_mutex_unlock(*mutex))) + return AVERROR(err); + + return 0; + case AV_LOCK_DESTROY: + if (*mutex) + pthread_mutex_destroy(*mutex); + av_free(*mutex); + avpriv_atomic_ptr_cas(mutex, *mutex, NULL); + return 0; + } + return 1; +} +static int (*lockmgr_cb)(void **mutex, enum AVLockOp op) = default_lockmgr_cb; +#else +static int (*lockmgr_cb)(void **mutex, enum AVLockOp op) = NULL; +#endif + + +volatile int ff_avcodec_locked; +static int volatile entangled_thread_counter = 0; +static void *codec_mutex; +static void *avformat_mutex; void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size) { @@ -91,6 +142,30 @@ void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size) memset(*p, 0, min_size + AV_INPUT_BUFFER_PADDING_SIZE); } +/* encoder management */ +static AVCodec *first_avcodec = NULL; +static AVCodec **last_avcodec = &first_avcodec; + +AVCodec *av_codec_next(const AVCodec *c) +{ + if (c) + return c->next; + else + return first_avcodec; +} + +static av_cold void avcodec_init(void) +{ + static int initialized = 0; + + if (initialized != 0) + return; + initialized = 1; + + if (CONFIG_ME_CMP) + ff_me_cmp_init_static(); +} + int av_codec_is_encoder(const AVCodec *codec) { return codec && (codec->encode_sub || codec->encode2 ||codec->send_frame); @@ -101,6 +176,38 @@ int av_codec_is_decoder(const AVCodec *codec) return codec && (codec->decode || codec->receive_frame); } +av_cold void avcodec_register(AVCodec *codec) +{ + AVCodec **p; + avcodec_init(); + p = last_avcodec; + codec->next = NULL; + + while(*p || avpriv_atomic_ptr_cas((void * volatile *)p, NULL, codec)) + p = &(*p)->next; + last_avcodec = &codec->next; + + if (codec->init_static_data) + codec->init_static_data(codec); +} + +#if FF_API_EMU_EDGE +unsigned avcodec_get_edge_width(void) +{ + return EDGE_WIDTH; +} +#endif + +#if FF_API_SET_DIMENSIONS +void avcodec_set_dimensions(AVCodecContext *s, int width, int height) +{ + int ret = ff_set_dimensions(s, width, height); + if (ret < 0) { + av_log(s, AV_LOG_WARNING, "Failed to set dimensions %d %d\n", width, height); + } +} +#endif + int ff_set_dimensions(AVCodecContext *s, int width, int height) { int ret = av_image_check_size2(width, height, s->max_pixels, AV_PIX_FMT_NONE, 0, s); @@ -312,10 +419,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, *width = FFALIGN(*width, w_align); *height = FFALIGN(*height, h_align); - if (s->codec_id == AV_CODEC_ID_H264 || s->lowres || - s->codec_id == AV_CODEC_ID_VP5 || s->codec_id == AV_CODEC_ID_VP6 || - s->codec_id == AV_CODEC_ID_VP6F || s->codec_id == AV_CODEC_ID_VP6A - ) { + if (s->codec_id == AV_CODEC_ID_H264 || s->lowres) { // some of the optimized chroma MC reads one line too much // which is also done in mpeg decoders with lowres > 0 *height += 2; @@ -465,7 +569,6 @@ enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags, return AV_PIX_FMT_NONE; } -#if FF_API_CODEC_GET_SET MAKE_ACCESSORS(AVCodecContext, codec, AVRational, pkt_timebase) MAKE_ACCESSORS(AVCodecContext, codec, const AVCodecDescriptor *, codec_descriptor) MAKE_ACCESSORS(AVCodecContext, codec, int, lowres) @@ -481,7 +584,6 @@ int av_codec_get_max_lowres(const AVCodec *codec) { return codec->max_lowres; } -#endif int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec){ return !!(codec->caps_internal & FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM); @@ -510,19 +612,6 @@ static int64_t get_bit_rate(AVCodecContext *ctx) return bit_rate; } - -static void ff_lock_avcodec(AVCodecContext *log_ctx, const AVCodec *codec) -{ - if (!(codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE) && codec->init) - ff_mutex_lock(&codec_mutex); -} - -static void ff_unlock_avcodec(const AVCodec *codec) -{ - if (!(codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE) && codec->init) - ff_mutex_unlock(&codec_mutex); -} - int attribute_align_arg ff_codec_open2_recursive(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) { int ret = 0; @@ -562,7 +651,9 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code if (options) av_dict_copy(&tmp, *options, 0); - ff_lock_avcodec(avctx, codec); + ret = ff_lock_avcodec(avctx, codec); + if (ret < 0) + return ret; avctx->internal = av_mallocz(sizeof(*avctx->internal)); if (!avctx->internal) { @@ -742,6 +833,12 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code avctx->lowres = avctx->codec->max_lowres; } +#if FF_API_VISMV + if (avctx->debug_mv) + av_log(avctx, AV_LOG_WARNING, "The 'vismv' option is deprecated, " + "see the codecview filter instead.\n"); +#endif + if (av_codec_is_encoder(avctx->codec)) { int i; #if FF_API_CODED_FRAME @@ -928,6 +1025,11 @@ FF_ENABLE_DEPRECATION_WARNINGS ret=0; +#if FF_API_AUDIOENC_DELAY + if (av_codec_is_encoder(avctx->codec)) + avctx->delay = avctx->initial_padding; +#endif + if (av_codec_is_decoder(avctx->codec)) { if (!avctx->bit_rate) avctx->bit_rate = get_bit_rate(avctx); @@ -1124,6 +1226,71 @@ FF_ENABLE_DEPRECATION_WARNINGS return 0; } +static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id) +{ + switch(id){ + //This is for future deprecatec codec ids, its empty since + //last major bump but will fill up again over time, please don't remove it + default : return id; + } +} + +static AVCodec *find_encdec(enum AVCodecID id, int encoder) +{ + AVCodec *p, *experimental = NULL; + p = first_avcodec; + id= remap_deprecated_codec_id(id); + while (p) { + if ((encoder ? av_codec_is_encoder(p) : av_codec_is_decoder(p)) && + p->id == id) { + if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) { + experimental = p; + } else + return p; + } + p = p->next; + } + return experimental; +} + +AVCodec *avcodec_find_encoder(enum AVCodecID id) +{ + return find_encdec(id, 1); +} + +AVCodec *avcodec_find_encoder_by_name(const char *name) +{ + AVCodec *p; + if (!name) + return NULL; + p = first_avcodec; + while (p) { + if (av_codec_is_encoder(p) && strcmp(name, p->name) == 0) + return p; + p = p->next; + } + return NULL; +} + +AVCodec *avcodec_find_decoder(enum AVCodecID id) +{ + return find_encdec(id, 0); +} + +AVCodec *avcodec_find_decoder_by_name(const char *name) +{ + AVCodec *p; + if (!name) + return NULL; + p = first_avcodec; + while (p) { + if (av_codec_is_decoder(p) && strcmp(name, p->name) == 0) + return p; + p = p->next; + } + return NULL; +} + const char *avcodec_get_name(enum AVCodecID id) { const AVCodecDescriptor *cd; @@ -1669,13 +1836,13 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba, /* calc from frame_bytes, channels, and bits_per_coded_sample */ switch (id) { case AV_CODEC_ID_PCM_DVD: - if(bps<4 || frame_bytes<3) + if(bps<4) return 0; - return 2 * ((frame_bytes - 3) / ((bps * 2 / 8) * ch)); + return 2 * (frame_bytes / ((bps * 2 / 8) * ch)); case AV_CODEC_ID_PCM_BLURAY: - if(bps<4 || frame_bytes<4) + if(bps<4) return 0; - return (frame_bytes - 4) / ((FFALIGN(ch, 2) * bps) / 8); + return frame_bytes / ((FFALIGN(ch, 2) * bps) / 8); case AV_CODEC_ID_S302M: return 2 * (frame_bytes / ((bps + 4) / 4)) / ch; } @@ -1744,34 +1911,143 @@ int ff_match_2uint16(const uint16_t(*tab)[2], int size, int a, int b) return i; } -const AVCodecHWConfig *avcodec_get_hw_config(const AVCodec *codec, int index) +#if FF_API_MISSING_SAMPLE +FF_DISABLE_DEPRECATION_WARNINGS +void av_log_missing_feature(void *avc, const char *feature, int want_sample) { - int i; - if (!codec->hw_configs || index < 0) - return NULL; - for (i = 0; i <= index; i++) - if (!codec->hw_configs[i]) - return NULL; - return &codec->hw_configs[index]->public; + av_log(avc, AV_LOG_WARNING, "%s is not implemented. Update your FFmpeg " + "version to the newest one from Git. If the problem still " + "occurs, it means that your file has a feature which has not " + "been implemented.\n", feature); + if(want_sample) + av_log_ask_for_sample(avc, NULL); } -#if FF_API_USER_VISIBLE_AVHWACCEL -AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel) +void av_log_ask_for_sample(void *avc, const char *msg, ...) { - return NULL; + va_list argument_list; + + va_start(argument_list, msg); + + if (msg) + av_vlog(avc, AV_LOG_WARNING, msg, argument_list); + av_log(avc, AV_LOG_WARNING, "If you want to help, upload a sample " + "of this file to ftp://upload.ffmpeg.org/incoming/ " + "and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)\n"); + + va_end(argument_list); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif /* FF_API_MISSING_SAMPLE */ + +static AVHWAccel *first_hwaccel = NULL; +static AVHWAccel **last_hwaccel = &first_hwaccel; void av_register_hwaccel(AVHWAccel *hwaccel) { + AVHWAccel **p = last_hwaccel; + hwaccel->next = NULL; + while(*p || avpriv_atomic_ptr_cas((void * volatile *)p, NULL, hwaccel)) + p = &(*p)->next; + last_hwaccel = &hwaccel->next; +} + +AVHWAccel *av_hwaccel_next(const AVHWAccel *hwaccel) +{ + return hwaccel ? hwaccel->next : first_hwaccel; } -#endif -#if FF_API_LOCKMGR int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op)) { + if (lockmgr_cb) { + // There is no good way to rollback a failure to destroy the + // mutex, so we ignore failures. + lockmgr_cb(&codec_mutex, AV_LOCK_DESTROY); + lockmgr_cb(&avformat_mutex, AV_LOCK_DESTROY); + lockmgr_cb = NULL; + codec_mutex = NULL; + avformat_mutex = NULL; + } + + if (cb) { + void *new_codec_mutex = NULL; + void *new_avformat_mutex = NULL; + int err; + if (err = cb(&new_codec_mutex, AV_LOCK_CREATE)) { + return err > 0 ? AVERROR_UNKNOWN : err; + } + if (err = cb(&new_avformat_mutex, AV_LOCK_CREATE)) { + // Ignore failures to destroy the newly created mutex. + cb(&new_codec_mutex, AV_LOCK_DESTROY); + return err > 0 ? AVERROR_UNKNOWN : err; + } + lockmgr_cb = cb; + codec_mutex = new_codec_mutex; + avformat_mutex = new_avformat_mutex; + } + + return 0; +} + +int ff_lock_avcodec(AVCodecContext *log_ctx, const AVCodec *codec) +{ + if (codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE || !codec->init) + return 0; + + if (lockmgr_cb) { + if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_OBTAIN)) + return -1; + } + + if (avpriv_atomic_int_add_and_fetch(&entangled_thread_counter, 1) != 1) { + av_log(log_ctx, AV_LOG_ERROR, + "Insufficient thread locking. At least %d threads are " + "calling avcodec_open2() at the same time right now.\n", + entangled_thread_counter); + if (!lockmgr_cb) + av_log(log_ctx, AV_LOG_ERROR, "No lock manager is set, please see av_lockmgr_register()\n"); + ff_avcodec_locked = 1; + ff_unlock_avcodec(codec); + return AVERROR(EINVAL); + } + av_assert0(!ff_avcodec_locked); + ff_avcodec_locked = 1; + return 0; +} + +int ff_unlock_avcodec(const AVCodec *codec) +{ + if (codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE || !codec->init) + return 0; + + av_assert0(ff_avcodec_locked); + ff_avcodec_locked = 0; + avpriv_atomic_int_add_and_fetch(&entangled_thread_counter, -1); + if (lockmgr_cb) { + if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_RELEASE)) + return -1; + } + + return 0; +} + +int avpriv_lock_avformat(void) +{ + if (lockmgr_cb) { + if ((*lockmgr_cb)(&avformat_mutex, AV_LOCK_OBTAIN)) + return -1; + } + return 0; +} + +int avpriv_unlock_avformat(void) +{ + if (lockmgr_cb) { + if ((*lockmgr_cb)(&avformat_mutex, AV_LOCK_RELEASE)) + return -1; + } return 0; } -#endif unsigned int avpriv_toupper4(unsigned int x) { diff --git a/media/ffvpx/libavcodec/version.h b/media/ffvpx/libavcodec/version.h index 6895f1a46..10d9ac4eb 100644 --- a/media/ffvpx/libavcodec/version.h +++ b/media/ffvpx/libavcodec/version.h @@ -27,8 +27,8 @@ #include "libavutil/version.h" -#define LIBAVCODEC_VERSION_MAJOR 58 -#define LIBAVCODEC_VERSION_MINOR 18 +#define LIBAVCODEC_VERSION_MAJOR 57 +#define LIBAVCODEC_VERSION_MINOR 107 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ @@ -51,18 +51,136 @@ * at once through the bump. This improves the git bisect-ability of the change. */ +#ifndef FF_API_VIMA_DECODER +#define FF_API_VIMA_DECODER (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_AUDIO_CONVERT +#define FF_API_AUDIO_CONVERT (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_AVCODEC_RESAMPLE +#define FF_API_AVCODEC_RESAMPLE FF_API_AUDIO_CONVERT +#endif +#ifndef FF_API_MISSING_SAMPLE +#define FF_API_MISSING_SAMPLE (LIBAVCODEC_VERSION_MAJOR < 58) +#endif #ifndef FF_API_LOWRES -#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 59) +#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_CAP_VDPAU +#define FF_API_CAP_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_BUFS_VDPAU +#define FF_API_BUFS_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_VOXWARE +#define FF_API_VOXWARE (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_SET_DIMENSIONS +#define FF_API_SET_DIMENSIONS (LIBAVCODEC_VERSION_MAJOR < 58) #endif #ifndef FF_API_DEBUG_MV #define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58) #endif +#ifndef FF_API_AC_VLC +#define FF_API_AC_VLC (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_OLD_MSMPEG4 +#define FF_API_OLD_MSMPEG4 (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_ASPECT_EXTENDED +#define FF_API_ASPECT_EXTENDED (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_ARCH_ALPHA +#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_XVMC +#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_ERROR_RATE +#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_QSCALE_TYPE +#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_MB_TYPE +#define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_MAX_BFRAMES +#define FF_API_MAX_BFRAMES (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_NEG_LINESIZES +#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_EMU_EDGE +#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_ARCH_SH4 +#define FF_API_ARCH_SH4 (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_ARCH_SPARC +#define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_UNUSED_MEMBERS +#define FF_API_UNUSED_MEMBERS (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_IDCT_XVIDMMX +#define FF_API_IDCT_XVIDMMX (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_INPUT_PRESERVED +#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_NORMALIZE_AQP +#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_GMC +#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_MV0 +#define FF_API_MV0 (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_CODEC_NAME +#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_AFD +#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_VISMV +/* XXX: don't forget to drop the -vismv documentation */ +#define FF_API_VISMV (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_AUDIOENC_DELAY +#define FF_API_AUDIOENC_DELAY (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_VAAPI_CONTEXT +#define FF_API_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 58) +#endif +#ifndef FF_API_MERGE_SD +#define FF_API_MERGE_SD (LIBAVCODEC_VERSION_MAJOR < 58) +#endif #ifndef FF_API_AVCTX_TIMEBASE #define FF_API_AVCTX_TIMEBASE (LIBAVCODEC_VERSION_MAJOR < 59) #endif +#ifndef FF_API_MPV_OPT +#define FF_API_MPV_OPT (LIBAVCODEC_VERSION_MAJOR < 59) +#endif +#ifndef FF_API_STREAM_CODEC_TAG +#define FF_API_STREAM_CODEC_TAG (LIBAVCODEC_VERSION_MAJOR < 59) +#endif +#ifndef FF_API_QUANT_BIAS +#define FF_API_QUANT_BIAS (LIBAVCODEC_VERSION_MAJOR < 59) +#endif +#ifndef FF_API_RC_STRATEGY +#define FF_API_RC_STRATEGY (LIBAVCODEC_VERSION_MAJOR < 59) +#endif #ifndef FF_API_CODED_FRAME #define FF_API_CODED_FRAME (LIBAVCODEC_VERSION_MAJOR < 59) #endif +#ifndef FF_API_MOTION_EST +#define FF_API_MOTION_EST (LIBAVCODEC_VERSION_MAJOR < 59) +#endif +#ifndef FF_API_WITHOUT_PREFIX +#define FF_API_WITHOUT_PREFIX (LIBAVCODEC_VERSION_MAJOR < 59) +#endif #ifndef FF_API_SIDEDATA_ONLY_PKT #define FF_API_SIDEDATA_ONLY_PKT (LIBAVCODEC_VERSION_MAJOR < 59) #endif @@ -120,18 +238,6 @@ #ifndef FF_API_GETCHROMA #define FF_API_GETCHROMA (LIBAVCODEC_VERSION_MAJOR < 59) #endif -#ifndef FF_API_CODEC_GET_SET -#define FF_API_CODEC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 59) -#endif -#ifndef FF_API_USER_VISIBLE_AVHWACCEL -#define FF_API_USER_VISIBLE_AVHWACCEL (LIBAVCODEC_VERSION_MAJOR < 59) -#endif -#ifndef FF_API_LOCKMGR -#define FF_API_LOCKMGR (LIBAVCODEC_VERSION_MAJOR < 59) -#endif -#ifndef FF_API_NEXT -#define FF_API_NEXT (LIBAVCODEC_VERSION_MAJOR < 59) -#endif #endif /* AVCODEC_VERSION_H */ diff --git a/media/ffvpx/libavcodec/vp8.c b/media/ffvpx/libavcodec/vp8.c index 62b9f8bc2..7841a9d96 100644 --- a/media/ffvpx/libavcodec/vp8.c +++ b/media/ffvpx/libavcodec/vp8.c @@ -27,7 +27,6 @@ #include "libavutil/imgutils.h" #include "avcodec.h" -#include "hwaccel.h" #include "internal.h" #include "mathops.h" #include "rectangle.h" @@ -73,30 +72,16 @@ static int vp8_alloc_frame(VP8Context *s, VP8Frame *f, int ref) if ((ret = ff_thread_get_buffer(s->avctx, &f->tf, ref ? AV_GET_BUFFER_FLAG_REF : 0)) < 0) return ret; - if (!(f->seg_map = av_buffer_allocz(s->mb_width * s->mb_height))) - goto fail; - if (s->avctx->hwaccel) { - const AVHWAccel *hwaccel = s->avctx->hwaccel; - if (hwaccel->frame_priv_data_size) { - f->hwaccel_priv_buf = av_buffer_allocz(hwaccel->frame_priv_data_size); - if (!f->hwaccel_priv_buf) - goto fail; - f->hwaccel_picture_private = f->hwaccel_priv_buf->data; - } + if (!(f->seg_map = av_buffer_allocz(s->mb_width * s->mb_height))) { + ff_thread_release_buffer(s->avctx, &f->tf); + return AVERROR(ENOMEM); } return 0; - -fail: - av_buffer_unref(&f->seg_map); - ff_thread_release_buffer(s->avctx, &f->tf); - return AVERROR(ENOMEM); } static void vp8_release_frame(VP8Context *s, VP8Frame *f) { av_buffer_unref(&f->seg_map); - av_buffer_unref(&f->hwaccel_priv_buf); - f->hwaccel_picture_private = NULL; ff_thread_release_buffer(s->avctx, &f->tf); } @@ -114,12 +99,6 @@ static int vp8_ref_frame(VP8Context *s, VP8Frame *dst, VP8Frame *src) vp8_release_frame(s, dst); return AVERROR(ENOMEM); } - if (src->hwaccel_picture_private) { - dst->hwaccel_priv_buf = av_buffer_ref(src->hwaccel_priv_buf); - if (!dst->hwaccel_priv_buf) - return AVERROR(ENOMEM); - dst->hwaccel_picture_private = dst->hwaccel_priv_buf->data; - } return 0; } @@ -161,28 +140,12 @@ static VP8Frame *vp8_find_free_buffer(VP8Context *s) av_log(s->avctx, AV_LOG_FATAL, "Ran out of free frames!\n"); abort(); } - if (frame->tf.f->buf[0]) + if (frame->tf.f->data[0]) vp8_release_frame(s, frame); return frame; } -static enum AVPixelFormat get_pixel_format(VP8Context *s) -{ - enum AVPixelFormat pix_fmts[] = { -#if CONFIG_VP8_VAAPI_HWACCEL - AV_PIX_FMT_VAAPI, -#endif -#if CONFIG_VP8_NVDEC_HWACCEL - AV_PIX_FMT_CUDA, -#endif - AV_PIX_FMT_YUV420P, - AV_PIX_FMT_NONE, - }; - - return ff_get_format(s->avctx, pix_fmts); -} - static av_always_inline int update_dimensions(VP8Context *s, int width, int height, int is_vp7) { @@ -198,13 +161,6 @@ int update_dimensions(VP8Context *s, int width, int height, int is_vp7) return ret; } - if (!s->actually_webp && !is_vp7) { - s->pix_fmt = get_pixel_format(s); - if (s->pix_fmt < 0) - return AVERROR(EINVAL); - avctx->pix_fmt = s->pix_fmt; - } - s->mb_width = (s->avctx->coded_width + 15) / 16; s->mb_height = (s->avctx->coded_height + 15) / 16; @@ -262,9 +218,8 @@ static void parse_segment_info(VP8Context *s) int i; s->segmentation.update_map = vp8_rac_get(c); - s->segmentation.update_feature_data = vp8_rac_get(c); - if (s->segmentation.update_feature_data) { + if (vp8_rac_get(c)) { // update segment feature data s->segmentation.absolute_vals = vp8_rac_get(c); for (i = 0; i < 4; i++) @@ -319,7 +274,6 @@ static int setup_partitions(VP8Context *s, const uint8_t *buf, int buf_size) int size = AV_RL24(sizes + 3 * i); if (buf_size - size < 0) return -1; - s->coeff_partition_size[i] = size; ret = ff_vp56_init_range_decoder(&s->coeff_partition[i], buf, size); if (ret < 0) @@ -327,11 +281,7 @@ static int setup_partitions(VP8Context *s, const uint8_t *buf, int buf_size) buf += size; buf_size -= size; } - - s->coeff_partition_size[i] = buf_size; - ff_vp56_init_range_decoder(&s->coeff_partition[i], buf, buf_size); - - return 0; + return ff_vp56_init_range_decoder(&s->coeff_partition[i], buf, buf_size); } static void vp7_get_quants(VP8Context *s) @@ -358,28 +308,28 @@ static void vp8_get_quants(VP8Context *s) VP56RangeCoder *c = &s->c; int i, base_qi; - s->quant.yac_qi = vp8_rac_get_uint(c, 7); - s->quant.ydc_delta = vp8_rac_get_sint(c, 4); - s->quant.y2dc_delta = vp8_rac_get_sint(c, 4); - s->quant.y2ac_delta = vp8_rac_get_sint(c, 4); - s->quant.uvdc_delta = vp8_rac_get_sint(c, 4); - s->quant.uvac_delta = vp8_rac_get_sint(c, 4); + int yac_qi = vp8_rac_get_uint(c, 7); + int ydc_delta = vp8_rac_get_sint(c, 4); + int y2dc_delta = vp8_rac_get_sint(c, 4); + int y2ac_delta = vp8_rac_get_sint(c, 4); + int uvdc_delta = vp8_rac_get_sint(c, 4); + int uvac_delta = vp8_rac_get_sint(c, 4); for (i = 0; i < 4; i++) { if (s->segmentation.enabled) { base_qi = s->segmentation.base_quant[i]; if (!s->segmentation.absolute_vals) - base_qi += s->quant.yac_qi; + base_qi += yac_qi; } else - base_qi = s->quant.yac_qi; + base_qi = yac_qi; - s->qmat[i].luma_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + s->quant.ydc_delta, 7)]; + s->qmat[i].luma_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + ydc_delta, 7)]; s->qmat[i].luma_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi, 7)]; - s->qmat[i].luma_dc_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + s->quant.y2dc_delta, 7)] * 2; + s->qmat[i].luma_dc_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + y2dc_delta, 7)] * 2; /* 101581>>16 is equivalent to 155/100 */ - s->qmat[i].luma_dc_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi + s->quant.y2ac_delta, 7)] * 101581 >> 16; - s->qmat[i].chroma_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + s->quant.uvdc_delta, 7)]; - s->qmat[i].chroma_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi + s->quant.uvac_delta, 7)]; + s->qmat[i].luma_dc_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi + y2ac_delta, 7)] * 101581 >> 16; + s->qmat[i].chroma_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + uvdc_delta, 7)]; + s->qmat[i].chroma_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi + uvac_delta, 7)]; s->qmat[i].luma_dc_qmul[1] = FFMAX(s->qmat[i].luma_dc_qmul[1], 8); s->qmat[i].chroma_qmul[0] = FFMIN(s->qmat[i].chroma_qmul[0], 132); @@ -656,8 +606,6 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si s->fade_present = vp8_rac_get(c); } - if (c->end <= c->buffer && c->bits >= 0) - return AVERROR_INVALIDDATA; /* E. Fading information for previous frame */ if (s->fade_present && vp8_rac_get(c)) { if ((ret = vp7_fade_frame(s ,c)) < 0) @@ -713,8 +661,6 @@ static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si buf += 3; buf_size -= 3; - s->header_partition_size = header_size; - if (s->profile > 3) av_log(s->avctx, AV_LOG_WARNING, "Unknown profile %d\n", s->profile); @@ -780,11 +726,9 @@ static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si s->filter.level = vp8_rac_get_uint(c, 6); s->filter.sharpness = vp8_rac_get_uint(c, 3); - if ((s->lf_delta.enabled = vp8_rac_get(c))) { - s->lf_delta.update = vp8_rac_get(c); - if (s->lf_delta.update) + if ((s->lf_delta.enabled = vp8_rac_get(c))) + if (vp8_rac_get(c)) update_lf_deltas(s); - } if (setup_partitions(s, buf, buf_size)) { av_log(s->avctx, AV_LOG_ERROR, "Invalid partitions\n"); @@ -824,13 +768,6 @@ static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si vp78_update_pred16x16_pred8x8_mvc_probabilities(s, VP8_MVC_SIZE); } - // Record the entropy coder state here so that hwaccels can use it. - s->c.code_word = vp56_rac_renorm(&s->c); - s->coder_state_at_header_end.input = s->c.buffer - (-s->c.bits / 8); - s->coder_state_at_header_end.range = s->c.high; - s->coder_state_at_header_end.value = s->c.code_word >> 16; - s->coder_state_at_header_end.bit_count = -s->c.bits % 8; - return 0; } @@ -2603,6 +2540,7 @@ static int vp8_decode_mb_row_sliced(AVCodecContext *avctx, void *tdata, return vp78_decode_mb_row_sliced(avctx, tdata, jobnr, threadnr, IS_VP8); } + static av_always_inline int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt, int is_vp7) @@ -2612,6 +2550,8 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, enum AVDiscard skip_thresh; VP8Frame *av_uninit(curframe), *prev_frame; + av_assert0(avctx->pix_fmt == AV_PIX_FMT_YUVA420P || avctx->pix_fmt == AV_PIX_FMT_YUV420P); + if (is_vp7) ret = vp7_decode_frame_header(s, avpkt->data, avpkt->size); else @@ -2620,17 +2560,6 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, if (ret < 0) goto err; - if (s->actually_webp) { - // avctx->pix_fmt already set in caller. - } else if (!is_vp7 && s->pix_fmt == AV_PIX_FMT_NONE) { - s->pix_fmt = get_pixel_format(s); - if (s->pix_fmt < 0) { - ret = AVERROR(EINVAL); - goto err; - } - avctx->pix_fmt = s->pix_fmt; - } - prev_frame = s->framep[VP56_FRAME_CURRENT]; referenced = s->update_last || s->update_golden == VP56_FRAME_CURRENT || @@ -2649,7 +2578,7 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, // release no longer referenced frames for (i = 0; i < 5; i++) - if (s->frames[i].tf.f->buf[0] && + if (s->frames[i].tf.f->data[0] && &s->frames[i] != prev_frame && &s->frames[i] != s->framep[VP56_FRAME_PREVIOUS] && &s->frames[i] != s->framep[VP56_FRAME_GOLDEN] && @@ -2702,70 +2631,56 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, s->next_framep[VP56_FRAME_CURRENT] = curframe; - ff_thread_finish_setup(avctx); - - if (avctx->hwaccel) { - ret = avctx->hwaccel->start_frame(avctx, avpkt->data, avpkt->size); - if (ret < 0) - goto err; + if (avctx->codec->update_thread_context) + ff_thread_finish_setup(avctx); - ret = avctx->hwaccel->decode_slice(avctx, avpkt->data, avpkt->size); - if (ret < 0) - goto err; - - ret = avctx->hwaccel->end_frame(avctx); - if (ret < 0) - goto err; + s->linesize = curframe->tf.f->linesize[0]; + s->uvlinesize = curframe->tf.f->linesize[1]; - } else { - s->linesize = curframe->tf.f->linesize[0]; - s->uvlinesize = curframe->tf.f->linesize[1]; + memset(s->top_nnz, 0, s->mb_width * sizeof(*s->top_nnz)); + /* Zero macroblock structures for top/top-left prediction + * from outside the frame. */ + if (!s->mb_layout) + memset(s->macroblocks + s->mb_height * 2 - 1, 0, + (s->mb_width + 1) * sizeof(*s->macroblocks)); + if (!s->mb_layout && s->keyframe) + memset(s->intra4x4_pred_mode_top, DC_PRED, s->mb_width * 4); - memset(s->top_nnz, 0, s->mb_width * sizeof(*s->top_nnz)); - /* Zero macroblock structures for top/top-left prediction - * from outside the frame. */ - if (!s->mb_layout) - memset(s->macroblocks + s->mb_height * 2 - 1, 0, - (s->mb_width + 1) * sizeof(*s->macroblocks)); - if (!s->mb_layout && s->keyframe) - memset(s->intra4x4_pred_mode_top, DC_PRED, s->mb_width * 4); - - memset(s->ref_count, 0, sizeof(s->ref_count)); - - if (s->mb_layout == 1) { - // Make sure the previous frame has read its segmentation map, - // if we re-use the same map. - if (prev_frame && s->segmentation.enabled && - !s->segmentation.update_map) - ff_thread_await_progress(&prev_frame->tf, 1, 0); - if (is_vp7) - vp7_decode_mv_mb_modes(avctx, curframe, prev_frame); - else - vp8_decode_mv_mb_modes(avctx, curframe, prev_frame); - } + memset(s->ref_count, 0, sizeof(s->ref_count)); - if (avctx->active_thread_type == FF_THREAD_FRAME) - num_jobs = 1; - else - num_jobs = FFMIN(s->num_coeff_partitions, avctx->thread_count); - s->num_jobs = num_jobs; - s->curframe = curframe; - s->prev_frame = prev_frame; - s->mv_bounds.mv_min.y = -MARGIN; - s->mv_bounds.mv_max.y = ((s->mb_height - 1) << 6) + MARGIN; - for (i = 0; i < MAX_THREADS; i++) { - VP8ThreadData *td = &s->thread_data[i]; - atomic_init(&td->thread_mb_pos, 0); - atomic_init(&td->wait_mb_pos, INT_MAX); - } + if (s->mb_layout == 1) { + // Make sure the previous frame has read its segmentation map, + // if we re-use the same map. + if (prev_frame && s->segmentation.enabled && + !s->segmentation.update_map) + ff_thread_await_progress(&prev_frame->tf, 1, 0); if (is_vp7) - avctx->execute2(avctx, vp7_decode_mb_row_sliced, s->thread_data, NULL, - num_jobs); + vp7_decode_mv_mb_modes(avctx, curframe, prev_frame); else - avctx->execute2(avctx, vp8_decode_mb_row_sliced, s->thread_data, NULL, - num_jobs); + vp8_decode_mv_mb_modes(avctx, curframe, prev_frame); } + if (avctx->active_thread_type == FF_THREAD_FRAME) + num_jobs = 1; + else + num_jobs = FFMIN(s->num_coeff_partitions, avctx->thread_count); + s->num_jobs = num_jobs; + s->curframe = curframe; + s->prev_frame = prev_frame; + s->mv_bounds.mv_min.y = -MARGIN; + s->mv_bounds.mv_max.y = ((s->mb_height - 1) << 6) + MARGIN; + for (i = 0; i < MAX_THREADS; i++) { + VP8ThreadData *td = &s->thread_data[i]; + atomic_init(&td->thread_mb_pos, 0); + atomic_init(&td->wait_mb_pos, INT_MAX); + } + if (is_vp7) + avctx->execute2(avctx, vp7_decode_mb_row_sliced, s->thread_data, NULL, + num_jobs); + else + avctx->execute2(avctx, vp8_decode_mb_row_sliced, s->thread_data, NULL, + num_jobs); + ff_thread_report_progress(&curframe->tf, INT_MAX, 0); memcpy(&s->framep[0], &s->next_framep[0], sizeof(s->framep[0]) * 4); @@ -2835,7 +2750,6 @@ int vp78_decode_init(AVCodecContext *avctx, int is_vp7) s->avctx = avctx; s->vp7 = avctx->codec->id == AV_CODEC_ID_VP7; - s->pix_fmt = AV_PIX_FMT_NONE; avctx->pix_fmt = AV_PIX_FMT_YUV420P; avctx->internal->allocate_progress = 1; @@ -2909,14 +2823,13 @@ static int vp8_decode_update_thread_context(AVCodecContext *dst, s->mb_height = s_src->mb_height; } - s->pix_fmt = s_src->pix_fmt; s->prob[0] = s_src->prob[!s_src->update_probabilities]; s->segmentation = s_src->segmentation; s->lf_delta = s_src->lf_delta; memcpy(s->sign_bias, s_src->sign_bias, sizeof(s->sign_bias)); for (i = 0; i < FF_ARRAY_ELEMS(s_src->frames); i++) { - if (s_src->frames[i].tf.f->buf[0]) { + if (s_src->frames[i].tf.f->data[0]) { int ret = vp8_ref_frame(s, &s->frames[i], &s_src->frames[i]); if (ret < 0) return ret; @@ -2963,14 +2876,5 @@ AVCodec ff_vp8_decoder = { .flush = vp8_decode_flush, .init_thread_copy = ONLY_IF_THREADS_ENABLED(vp8_decode_init_thread_copy), .update_thread_context = ONLY_IF_THREADS_ENABLED(vp8_decode_update_thread_context), - .hw_configs = (const AVCodecHWConfigInternal*[]) { -#if CONFIG_VP8_VAAPI_HWACCEL - HWACCEL_VAAPI(vp8), -#endif -#if CONFIG_VP8_NVDEC_HWACCEL - HWACCEL_NVDEC(vp8), -#endif - NULL - }, }; #endif /* CONFIG_VP7_DECODER */ diff --git a/media/ffvpx/libavcodec/vp8.h b/media/ffvpx/libavcodec/vp8.h index 70d21e3c6..8263997e3 100644 --- a/media/ffvpx/libavcodec/vp8.h +++ b/media/ffvpx/libavcodec/vp8.h @@ -138,18 +138,12 @@ typedef struct VP8ThreadData { typedef struct VP8Frame { ThreadFrame tf; AVBufferRef *seg_map; - - AVBufferRef *hwaccel_priv_buf; - void *hwaccel_picture_private; } VP8Frame; #define MAX_THREADS 8 typedef struct VP8Context { VP8ThreadData *thread_data; AVCodecContext *avctx; - enum AVPixelFormat pix_fmt; - int actually_webp; - VP8Frame *framep[4]; VP8Frame *next_framep[4]; VP8Frame *curframe; @@ -178,7 +172,6 @@ typedef struct VP8Context { uint8_t enabled; uint8_t absolute_vals; uint8_t update_map; - uint8_t update_feature_data; int8_t base_quant[4]; int8_t filter_level[4]; ///< base loop filter level } segmentation; @@ -206,19 +199,8 @@ typedef struct VP8Context { int16_t chroma_qmul[2]; } qmat[4]; - // Raw quantisation values, which may be needed by hwaccel decode. - struct { - int yac_qi; - int ydc_delta; - int y2dc_delta; - int y2ac_delta; - int uvdc_delta; - int uvac_delta; - } quant; - struct { uint8_t enabled; ///< whether each mb can have a different strength based on mode/ref - uint8_t update; /** * filter strength adjustment for the following macroblock modes: @@ -246,20 +228,6 @@ typedef struct VP8Context { VP56RangeCoder c; ///< header context, includes mb modes and motion vectors - /* This contains the entropy coder state at the end of the header - * block, in the form specified by the standard. For use by - * hwaccels, so that a hardware decoder has the information to - * start decoding at the macroblock layer. - */ - struct { - const uint8_t *input; - uint32_t range; - uint32_t value; - int bit_count; - } coder_state_at_header_end; - - int header_partition_size; - /** * These are all of the updatable probabilities for binary decisions. * They are only implicitly reset on keyframes, making it quite likely @@ -297,7 +265,6 @@ typedef struct VP8Context { */ int num_coeff_partitions; VP56RangeCoder coeff_partition[8]; - int coeff_partition_size[8]; VideoDSPContext vdsp; VP8DSPContext vp8dsp; H264PredContext hpc; diff --git a/media/ffvpx/libavcodec/vp8_parser.c b/media/ffvpx/libavcodec/vp8_parser.c index e2d91b271..609f5077d 100644 --- a/media/ffvpx/libavcodec/vp8_parser.c +++ b/media/ffvpx/libavcodec/vp8_parser.c @@ -28,9 +28,6 @@ static int parse(AVCodecParserContext *s, unsigned int frame_type; unsigned int profile; - *poutbuf = buf; - *poutbuf_size = buf_size; - if (buf_size < 3) return buf_size; diff --git a/media/ffvpx/libavcodec/vp9.c b/media/ffvpx/libavcodec/vp9.c index b1178c9c0..f2cf19424 100644 --- a/media/ffvpx/libavcodec/vp9.c +++ b/media/ffvpx/libavcodec/vp9.c @@ -23,7 +23,6 @@ #include "avcodec.h" #include "get_bits.h" -#include "hwaccel.h" #include "internal.h" #include "profiles.h" #include "thread.h" @@ -170,10 +169,7 @@ fail: static int update_size(AVCodecContext *avctx, int w, int h) { -#define HWACCEL_MAX (CONFIG_VP9_DXVA2_HWACCEL + \ - CONFIG_VP9_D3D11VA_HWACCEL * 2 + \ - CONFIG_VP9_NVDEC_HWACCEL + \ - CONFIG_VP9_VAAPI_HWACCEL) +#define HWACCEL_MAX (CONFIG_VP9_DXVA2_HWACCEL + CONFIG_VP9_D3D11VA_HWACCEL * 2 + CONFIG_VP9_VAAPI_HWACCEL) enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmtp = pix_fmts; VP9Context *s = avctx->priv_data; uint8_t *p; @@ -188,7 +184,6 @@ static int update_size(AVCodecContext *avctx, int w, int h) switch (s->pix_fmt) { case AV_PIX_FMT_YUV420P: - case AV_PIX_FMT_YUV420P10: #if CONFIG_VP9_DXVA2_HWACCEL *fmtp++ = AV_PIX_FMT_DXVA2_VLD; #endif @@ -196,17 +191,12 @@ static int update_size(AVCodecContext *avctx, int w, int h) *fmtp++ = AV_PIX_FMT_D3D11VA_VLD; *fmtp++ = AV_PIX_FMT_D3D11; #endif -#if CONFIG_VP9_NVDEC_HWACCEL - *fmtp++ = AV_PIX_FMT_CUDA; -#endif #if CONFIG_VP9_VAAPI_HWACCEL *fmtp++ = AV_PIX_FMT_VAAPI; #endif break; + case AV_PIX_FMT_YUV420P10: case AV_PIX_FMT_YUV420P12: -#if CONFIG_VP9_NVDEC_HWACCEL - *fmtp++ = AV_PIX_FMT_CUDA; -#endif #if CONFIG_VP9_VAAPI_HWACCEL *fmtp++ = AV_PIX_FMT_VAAPI; #endif @@ -1797,23 +1787,4 @@ AVCodec ff_vp9_decoder = { .init_thread_copy = ONLY_IF_THREADS_ENABLED(vp9_decode_init_thread_copy), .update_thread_context = ONLY_IF_THREADS_ENABLED(vp9_decode_update_thread_context), .profiles = NULL_IF_CONFIG_SMALL(ff_vp9_profiles), - .bsfs = "vp9_superframe_split", - .hw_configs = (const AVCodecHWConfigInternal*[]) { -#if CONFIG_VP9_DXVA2_HWACCEL - HWACCEL_DXVA2(vp9), -#endif -#if CONFIG_VP9_D3D11VA_HWACCEL - HWACCEL_D3D11VA(vp9), -#endif -#if CONFIG_VP9_D3D11VA2_HWACCEL - HWACCEL_D3D11VA2(vp9), -#endif -#if CONFIG_VP9_NVDEC_HWACCEL - HWACCEL_NVDEC(vp9), -#endif -#if CONFIG_VP9_VAAPI_HWACCEL - HWACCEL_VAAPI(vp9), -#endif - NULL - }, }; diff --git a/media/ffvpx/libavcodec/vp9_parser.c b/media/ffvpx/libavcodec/vp9_parser.c index 9531f34a3..9900e7ab1 100644 --- a/media/ffvpx/libavcodec/vp9_parser.c +++ b/media/ffvpx/libavcodec/vp9_parser.c @@ -25,19 +25,21 @@ #include "libavcodec/get_bits.h" #include "parser.h" -static int parse(AVCodecParserContext *ctx, - AVCodecContext *avctx, - const uint8_t **out_data, int *out_size, - const uint8_t *data, int size) +typedef struct VP9ParseContext { + int n_frames; // 1-8 + int size[8]; + int marker_size; + int64_t pts; +} VP9ParseContext; + +static int parse_frame(AVCodecParserContext *ctx, const uint8_t *buf, int size) { + VP9ParseContext *s = ctx->priv_data; GetBitContext gb; - int res, profile, keyframe; + int res, profile, keyframe, invisible; - *out_data = data; - *out_size = size; - - if ((res = init_get_bits8(&gb, data, size)) < 0) - return size; // parsers can't return errors + if ((res = init_get_bits8(&gb, buf, size)) < 0) + return res; get_bits(&gb, 2); // frame marker profile = get_bits1(&gb); profile |= get_bits1(&gb) << 1; @@ -45,8 +47,10 @@ static int parse(AVCodecParserContext *ctx, if (get_bits1(&gb)) { keyframe = 0; + invisible = 0; } else { keyframe = !get_bits1(&gb); + invisible = !get_bits1(&gb); } if (!keyframe) { @@ -57,10 +61,113 @@ static int parse(AVCodecParserContext *ctx, ctx->key_frame = 1; } + if (!invisible) { + if (ctx->pts == AV_NOPTS_VALUE) + ctx->pts = s->pts; + s->pts = AV_NOPTS_VALUE; + } else if (ctx->pts != AV_NOPTS_VALUE) { + s->pts = ctx->pts; + ctx->pts = AV_NOPTS_VALUE; + } + + return 0; +} + +static int parse(AVCodecParserContext *ctx, + AVCodecContext *avctx, + const uint8_t **out_data, int *out_size, + const uint8_t *data, int size) +{ + VP9ParseContext *s = ctx->priv_data; + int full_size = size; + int marker; + + if (size <= 0) { + *out_size = 0; + *out_data = data; + + return 0; + } + + if (s->n_frames > 0) { + int i; + int size_sum = 0; + + for (i = 0; i < s->n_frames ;i++) + size_sum += s->size[i]; + size_sum += s->marker_size; + + if (size_sum != size) { + av_log(avctx, AV_LOG_ERROR, "Inconsistent input frame sizes %d %d\n", + size_sum, size); + s->n_frames = 0; + } + } + + if (s->n_frames > 0) { + *out_data = data; + *out_size = s->size[--s->n_frames]; + parse_frame(ctx, *out_data, *out_size); + + return s->n_frames > 0 ? *out_size : size /* i.e. include idx tail */; + } + + marker = data[size - 1]; + if ((marker & 0xe0) == 0xc0) { + int nbytes = 1 + ((marker >> 3) & 0x3); + int n_frames = 1 + (marker & 0x7), idx_sz = 2 + n_frames * nbytes; + + if (size >= idx_sz && data[size - idx_sz] == marker) { + const uint8_t *idx = data + size + 1 - idx_sz; + int first = 1; + + switch (nbytes) { +#define case_n(a, rd) \ + case a: \ + while (n_frames--) { \ + unsigned sz = rd; \ + idx += a; \ + if (sz == 0 || sz > size) { \ + s->n_frames = 0; \ + *out_size = size; \ + *out_data = data; \ + av_log(avctx, AV_LOG_ERROR, \ + "Invalid superframe packet size: %u frame size: %d\n", \ + sz, size); \ + return full_size; \ + } \ + if (first) { \ + first = 0; \ + *out_data = data; \ + *out_size = sz; \ + s->n_frames = n_frames; \ + } else { \ + s->size[n_frames] = sz; \ + } \ + data += sz; \ + size -= sz; \ + } \ + s->marker_size = size; \ + parse_frame(ctx, *out_data, *out_size); \ + return s->n_frames > 0 ? *out_size : full_size + + case_n(1, *idx); + case_n(2, AV_RL16(idx)); + case_n(3, AV_RL24(idx)); + case_n(4, AV_RL32(idx)); + } + } + } + + *out_data = data; + *out_size = size; + parse_frame(ctx, data, size); + return size; } AVCodecParser ff_vp9_parser = { .codec_ids = { AV_CODEC_ID_VP9 }, + .priv_data_size = sizeof(VP9ParseContext), .parser_parse = parse, }; diff --git a/media/ffvpx/libavcodec/vp9_superframe_split_bsf.c b/media/ffvpx/libavcodec/vp9_superframe_split_bsf.c deleted file mode 100644 index 9c4aa33dc..000000000 --- a/media/ffvpx/libavcodec/vp9_superframe_split_bsf.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * This bitstream filter splits VP9 superframes into packets containing - * just one frame. - */ - -#include <stddef.h> - -#include "avcodec.h" -#include "bsf.h" -#include "bytestream.h" -#include "get_bits.h" - -typedef struct VP9SFSplitContext { - AVPacket buffer_pkt; - - int nb_frames; - int next_frame; - size_t next_frame_offset; - int sizes[8]; -} VP9SFSplitContext; - -static int vp9_superframe_split_filter(AVBSFContext *ctx, AVPacket *out) -{ - VP9SFSplitContext *s = ctx->priv_data; - AVPacket *in; - int i, j, ret, marker; - int is_superframe = !!s->buffer_pkt.data; - - if (!s->buffer_pkt.data) { - ret = ff_bsf_get_packet_ref(ctx, &s->buffer_pkt); - if (ret < 0) - return ret; - in = &s->buffer_pkt; - - marker = in->data[in->size - 1]; - if ((marker & 0xe0) == 0xc0) { - int length_size = 1 + ((marker >> 3) & 0x3); - int nb_frames = 1 + (marker & 0x7); - int idx_size = 2 + nb_frames * length_size; - - if (in->size >= idx_size && in->data[in->size - idx_size] == marker) { - GetByteContext bc; - int64_t total_size = 0; - - bytestream2_init(&bc, in->data + in->size + 1 - idx_size, - nb_frames * length_size); - - for (i = 0; i < nb_frames; i++) { - int frame_size = 0; - for (j = 0; j < length_size; j++) - frame_size |= bytestream2_get_byte(&bc) << (j * 8); - - total_size += frame_size; - if (frame_size < 0 || total_size > in->size - idx_size) { - av_log(ctx, AV_LOG_ERROR, - "Invalid frame size in a superframe: %d\n", frame_size); - ret = AVERROR(EINVAL); - goto fail; - } - s->sizes[i] = frame_size; - } - s->nb_frames = nb_frames; - s->next_frame = 0; - s->next_frame_offset = 0; - is_superframe = 1; - } - } - } - - if (is_superframe) { - GetBitContext gb; - int profile, invisible = 0; - - ret = av_packet_ref(out, &s->buffer_pkt); - if (ret < 0) - goto fail; - - out->data += s->next_frame_offset; - out->size = s->sizes[s->next_frame]; - - s->next_frame_offset += out->size; - s->next_frame++; - - if (s->next_frame >= s->nb_frames) - av_packet_unref(&s->buffer_pkt); - - ret = init_get_bits8(&gb, out->data, out->size); - if (ret < 0) - goto fail; - - get_bits(&gb, 2); // frame_marker - profile = get_bits1(&gb); - profile |= get_bits1(&gb) << 1; - if (profile == 3) - get_bits1(&gb); - if (!get_bits1(&gb)) { - get_bits1(&gb); - invisible = !get_bits1(&gb); - } - - if (invisible) - out->pts = AV_NOPTS_VALUE; - - } else { - av_packet_move_ref(out, &s->buffer_pkt); - } - - return 0; -fail: - if (ret < 0) - av_packet_unref(out); - av_packet_unref(&s->buffer_pkt); - return ret; -} - -static void vp9_superframe_split_uninit(AVBSFContext *ctx) -{ - VP9SFSplitContext *s = ctx->priv_data; - av_packet_unref(&s->buffer_pkt); -} - -const AVBitStreamFilter ff_vp9_superframe_split_bsf = { - .name = "vp9_superframe_split", - .priv_data_size = sizeof(VP9SFSplitContext), - .close = vp9_superframe_split_uninit, - .filter = vp9_superframe_split_filter, - .codec_ids = (const enum AVCodecID []){ AV_CODEC_ID_VP9, AV_CODEC_ID_NONE }, -}; diff --git a/media/ffvpx/libavcodec/x86/constants.c b/media/ffvpx/libavcodec/x86/constants.c index 4bfb78cc3..11002ee61 100644 --- a/media/ffvpx/libavcodec/x86/constants.c +++ b/media/ffvpx/libavcodec/x86/constants.c @@ -26,23 +26,23 @@ DECLARE_ALIGNED(32, const ymm_reg, ff_pw_1) = { 0x0001000100010001ULL, 0x000 0x0001000100010001ULL, 0x0001000100010001ULL }; DECLARE_ALIGNED(32, const ymm_reg, ff_pw_2) = { 0x0002000200020002ULL, 0x0002000200020002ULL, 0x0002000200020002ULL, 0x0002000200020002ULL }; -DECLARE_ASM_ALIGNED(16, const xmm_reg, ff_pw_3) = { 0x0003000300030003ULL, 0x0003000300030003ULL }; -DECLARE_ASM_ALIGNED(32, const ymm_reg, ff_pw_4) = { 0x0004000400040004ULL, 0x0004000400040004ULL, +DECLARE_ALIGNED(16, const xmm_reg, ff_pw_3) = { 0x0003000300030003ULL, 0x0003000300030003ULL }; +DECLARE_ALIGNED(32, const ymm_reg, ff_pw_4) = { 0x0004000400040004ULL, 0x0004000400040004ULL, 0x0004000400040004ULL, 0x0004000400040004ULL }; -DECLARE_ASM_ALIGNED(16, const xmm_reg, ff_pw_5) = { 0x0005000500050005ULL, 0x0005000500050005ULL }; +DECLARE_ALIGNED(16, const xmm_reg, ff_pw_5) = { 0x0005000500050005ULL, 0x0005000500050005ULL }; DECLARE_ALIGNED(16, const xmm_reg, ff_pw_8) = { 0x0008000800080008ULL, 0x0008000800080008ULL }; -DECLARE_ASM_ALIGNED(16, const xmm_reg, ff_pw_9) = { 0x0009000900090009ULL, 0x0009000900090009ULL }; +DECLARE_ALIGNED(16, const xmm_reg, ff_pw_9) = { 0x0009000900090009ULL, 0x0009000900090009ULL }; DECLARE_ALIGNED(8, const uint64_t, ff_pw_15) = 0x000F000F000F000FULL; DECLARE_ALIGNED(16, const xmm_reg, ff_pw_16) = { 0x0010001000100010ULL, 0x0010001000100010ULL }; DECLARE_ALIGNED(16, const xmm_reg, ff_pw_17) = { 0x0011001100110011ULL, 0x0011001100110011ULL }; -DECLARE_ASM_ALIGNED(16, const xmm_reg, ff_pw_18) = { 0x0012001200120012ULL, 0x0012001200120012ULL }; +DECLARE_ALIGNED(16, const xmm_reg, ff_pw_18) = { 0x0012001200120012ULL, 0x0012001200120012ULL }; DECLARE_ALIGNED(16, const xmm_reg, ff_pw_20) = { 0x0014001400140014ULL, 0x0014001400140014ULL }; DECLARE_ALIGNED(16, const xmm_reg, ff_pw_32) = { 0x0020002000200020ULL, 0x0020002000200020ULL }; -DECLARE_ASM_ALIGNED(8, const uint64_t, ff_pw_42) = 0x002A002A002A002AULL; -DECLARE_ASM_ALIGNED(8, const uint64_t, ff_pw_53) = 0x0035003500350035ULL; -DECLARE_ASM_ALIGNED(16, const xmm_reg, ff_pw_64) = { 0x0040004000400040ULL, 0x0040004000400040ULL }; -DECLARE_ASM_ALIGNED(8, const uint64_t, ff_pw_96) = 0x0060006000600060ULL; -DECLARE_ASM_ALIGNED(8, const uint64_t, ff_pw_128) = 0x0080008000800080ULL; +DECLARE_ALIGNED(8, const uint64_t, ff_pw_42) = 0x002A002A002A002AULL; +DECLARE_ALIGNED(8, const uint64_t, ff_pw_53) = 0x0035003500350035ULL; +DECLARE_ALIGNED(16, const xmm_reg, ff_pw_64) = { 0x0040004000400040ULL, 0x0040004000400040ULL }; +DECLARE_ALIGNED(8, const uint64_t, ff_pw_96) = 0x0060006000600060ULL; +DECLARE_ALIGNED(8, const uint64_t, ff_pw_128) = 0x0080008000800080ULL; DECLARE_ALIGNED(32, const ymm_reg, ff_pw_255) = { 0x00ff00ff00ff00ffULL, 0x00ff00ff00ff00ffULL, 0x00ff00ff00ff00ffULL, 0x00ff00ff00ff00ffULL }; DECLARE_ALIGNED(32, const ymm_reg, ff_pw_256) = { 0x0100010001000100ULL, 0x0100010001000100ULL, @@ -74,8 +74,7 @@ DECLARE_ALIGNED(32, const ymm_reg, ff_pb_2) = { 0x0202020202020202ULL, 0x020 DECLARE_ALIGNED(32, const ymm_reg, ff_pb_3) = { 0x0303030303030303ULL, 0x0303030303030303ULL, 0x0303030303030303ULL, 0x0303030303030303ULL }; DECLARE_ALIGNED(32, const xmm_reg, ff_pb_15) = { 0x0F0F0F0F0F0F0F0FULL, 0x0F0F0F0F0F0F0F0FULL }; -DECLARE_ALIGNED(32, const ymm_reg, ff_pb_80) = { 0x8080808080808080ULL, 0x8080808080808080ULL, - 0x8080808080808080ULL, 0x8080808080808080ULL }; +DECLARE_ALIGNED(16, const xmm_reg, ff_pb_80) = { 0x8080808080808080ULL, 0x8080808080808080ULL }; DECLARE_ALIGNED(32, const ymm_reg, ff_pb_FE) = { 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL }; DECLARE_ALIGNED(8, const uint64_t, ff_pb_FC) = 0xFCFCFCFCFCFCFCFCULL; diff --git a/media/ffvpx/libavcodec/x86/constants.h b/media/ffvpx/libavcodec/x86/constants.h index 85da38b7b..bbb0ef844 100644 --- a/media/ffvpx/libavcodec/x86/constants.h +++ b/media/ffvpx/libavcodec/x86/constants.h @@ -57,7 +57,7 @@ extern const ymm_reg ff_pb_0; extern const ymm_reg ff_pb_1; extern const ymm_reg ff_pb_2; extern const ymm_reg ff_pb_3; -extern const ymm_reg ff_pb_80; +extern const xmm_reg ff_pb_80; extern const ymm_reg ff_pb_FE; extern const uint64_t ff_pb_FC; diff --git a/media/ffvpx/libavcodec/x86/vp8dsp.asm b/media/ffvpx/libavcodec/x86/vp8dsp.asm index 75de5690a..e303b8029 100644 --- a/media/ffvpx/libavcodec/x86/vp8dsp.asm +++ b/media/ffvpx/libavcodec/x86/vp8dsp.asm @@ -664,37 +664,6 @@ INIT_XMM sse2 FILTER_V 8 %macro FILTER_BILINEAR 1 -%if cpuflag(ssse3) -cglobal put_vp8_bilinear%1_v, 7, 7, 5, dst, dststride, src, srcstride, height, picreg, my - shl myd, 4 -%ifdef PIC - lea picregq, [bilinear_filter_vb_m] -%endif - pxor m4, m4 - mova m3, [bilinear_filter_vb+myq-16] -.nextrow: - movh m0, [srcq+srcstrideq*0] - movh m1, [srcq+srcstrideq*1] - movh m2, [srcq+srcstrideq*2] - punpcklbw m0, m1 - punpcklbw m1, m2 - pmaddubsw m0, m3 - pmaddubsw m1, m3 - psraw m0, 2 - psraw m1, 2 - pavgw m0, m4 - pavgw m1, m4 -%if mmsize==8 - packuswb m0, m0 - packuswb m1, m1 - movh [dstq+dststrideq*0], m0 - movh [dstq+dststrideq*1], m1 -%else - packuswb m0, m1 - movh [dstq+dststrideq*0], m0 - movhps [dstq+dststrideq*1], m0 -%endif -%else ; cpuflag(ssse3) cglobal put_vp8_bilinear%1_v, 7, 7, 7, dst, dststride, src, srcstride, height, picreg, my shl myd, 4 %ifdef PIC @@ -732,7 +701,6 @@ cglobal put_vp8_bilinear%1_v, 7, 7, 7, dst, dststride, src, srcstride, height, p movh [dstq+dststrideq*0], m0 movhps [dstq+dststrideq*1], m0 %endif -%endif ; cpuflag(ssse3) lea dstq, [dstq+dststrideq*2] lea srcq, [srcq+srcstrideq*2] @@ -740,37 +708,6 @@ cglobal put_vp8_bilinear%1_v, 7, 7, 7, dst, dststride, src, srcstride, height, p jg .nextrow REP_RET -%if cpuflag(ssse3) -cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 5, dst, dststride, src, srcstride, height, mx, picreg - shl mxd, 4 -%ifdef PIC - lea picregq, [bilinear_filter_vb_m] -%endif - pxor m4, m4 - mova m2, [filter_h2_shuf] - mova m3, [bilinear_filter_vb+mxq-16] -.nextrow: - movu m0, [srcq+srcstrideq*0] - movu m1, [srcq+srcstrideq*1] - pshufb m0, m2 - pshufb m1, m2 - pmaddubsw m0, m3 - pmaddubsw m1, m3 - psraw m0, 2 - psraw m1, 2 - pavgw m0, m4 - pavgw m1, m4 -%if mmsize==8 - packuswb m0, m0 - packuswb m1, m1 - movh [dstq+dststrideq*0], m0 - movh [dstq+dststrideq*1], m1 -%else - packuswb m0, m1 - movh [dstq+dststrideq*0], m0 - movhps [dstq+dststrideq*1], m0 -%endif -%else ; cpuflag(ssse3) cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 7, dst, dststride, src, srcstride, height, mx, picreg shl mxd, 4 %ifdef PIC @@ -809,7 +746,6 @@ cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 7, dst, dststride, src, srcstride movh [dstq+dststrideq*0], m0 movhps [dstq+dststrideq*1], m0 %endif -%endif ; cpuflag(ssse3) lea dstq, [dstq+dststrideq*2] lea srcq, [srcq+srcstrideq*2] @@ -822,10 +758,85 @@ INIT_MMX mmxext FILTER_BILINEAR 4 INIT_XMM sse2 FILTER_BILINEAR 8 + +%macro FILTER_BILINEAR_SSSE3 1 +cglobal put_vp8_bilinear%1_v, 7, 7, 5, dst, dststride, src, srcstride, height, picreg, my + shl myd, 4 +%ifdef PIC + lea picregq, [bilinear_filter_vb_m] +%endif + pxor m4, m4 + mova m3, [bilinear_filter_vb+myq-16] +.nextrow: + movh m0, [srcq+srcstrideq*0] + movh m1, [srcq+srcstrideq*1] + movh m2, [srcq+srcstrideq*2] + punpcklbw m0, m1 + punpcklbw m1, m2 + pmaddubsw m0, m3 + pmaddubsw m1, m3 + psraw m0, 2 + psraw m1, 2 + pavgw m0, m4 + pavgw m1, m4 +%if mmsize==8 + packuswb m0, m0 + packuswb m1, m1 + movh [dstq+dststrideq*0], m0 + movh [dstq+dststrideq*1], m1 +%else + packuswb m0, m1 + movh [dstq+dststrideq*0], m0 + movhps [dstq+dststrideq*1], m0 +%endif + + lea dstq, [dstq+dststrideq*2] + lea srcq, [srcq+srcstrideq*2] + sub heightd, 2 + jg .nextrow + REP_RET + +cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 5, dst, dststride, src, srcstride, height, mx, picreg + shl mxd, 4 +%ifdef PIC + lea picregq, [bilinear_filter_vb_m] +%endif + pxor m4, m4 + mova m2, [filter_h2_shuf] + mova m3, [bilinear_filter_vb+mxq-16] +.nextrow: + movu m0, [srcq+srcstrideq*0] + movu m1, [srcq+srcstrideq*1] + pshufb m0, m2 + pshufb m1, m2 + pmaddubsw m0, m3 + pmaddubsw m1, m3 + psraw m0, 2 + psraw m1, 2 + pavgw m0, m4 + pavgw m1, m4 +%if mmsize==8 + packuswb m0, m0 + packuswb m1, m1 + movh [dstq+dststrideq*0], m0 + movh [dstq+dststrideq*1], m1 +%else + packuswb m0, m1 + movh [dstq+dststrideq*0], m0 + movhps [dstq+dststrideq*1], m0 +%endif + + lea dstq, [dstq+dststrideq*2] + lea srcq, [srcq+srcstrideq*2] + sub heightd, 2 + jg .nextrow + REP_RET +%endmacro + INIT_MMX ssse3 -FILTER_BILINEAR 4 +FILTER_BILINEAR_SSSE3 4 INIT_XMM ssse3 -FILTER_BILINEAR 8 +FILTER_BILINEAR_SSSE3 8 INIT_MMX mmx cglobal put_vp8_pixels8, 5, 5, 0, dst, dststride, src, srcstride, height diff --git a/media/ffvpx/libavutil/atomic.c b/media/ffvpx/libavutil/atomic.c new file mode 100644 index 000000000..64cff2576 --- /dev/null +++ b/media/ffvpx/libavutil/atomic.c @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "atomic.h" + +#if !HAVE_ATOMICS_NATIVE + +#if HAVE_PTHREADS + +#include <pthread.h> + +static pthread_mutex_t atomic_lock = PTHREAD_MUTEX_INITIALIZER; + +int avpriv_atomic_int_get(volatile int *ptr) +{ + int res; + + pthread_mutex_lock(&atomic_lock); + res = *ptr; + pthread_mutex_unlock(&atomic_lock); + + return res; +} + +void avpriv_atomic_int_set(volatile int *ptr, int val) +{ + pthread_mutex_lock(&atomic_lock); + *ptr = val; + pthread_mutex_unlock(&atomic_lock); +} + +int avpriv_atomic_int_add_and_fetch(volatile int *ptr, int inc) +{ + int res; + + pthread_mutex_lock(&atomic_lock); + *ptr += inc; + res = *ptr; + pthread_mutex_unlock(&atomic_lock); + + return res; +} + +void *avpriv_atomic_ptr_cas(void * volatile *ptr, void *oldval, void *newval) +{ + void *ret; + pthread_mutex_lock(&atomic_lock); + ret = *ptr; + if (ret == oldval) + *ptr = newval; + pthread_mutex_unlock(&atomic_lock); + return ret; +} + +#elif !HAVE_THREADS + +int avpriv_atomic_int_get(volatile int *ptr) +{ + return *ptr; +} + +void avpriv_atomic_int_set(volatile int *ptr, int val) +{ + *ptr = val; +} + +int avpriv_atomic_int_add_and_fetch(volatile int *ptr, int inc) +{ + *ptr += inc; + return *ptr; +} + +void *avpriv_atomic_ptr_cas(void * volatile *ptr, void *oldval, void *newval) +{ + if (*ptr == oldval) { + *ptr = newval; + return oldval; + } + return *ptr; +} + +#else /* HAVE_THREADS */ + +/* This should never trigger, unless a new threading implementation + * without correct atomics dependencies in configure or a corresponding + * atomics implementation is added. */ +#error "Threading is enabled, but there is no implementation of atomic operations available" + +#endif /* HAVE_PTHREADS */ + +#endif /* !HAVE_ATOMICS_NATIVE */ diff --git a/media/ffvpx/libavutil/atomic.h b/media/ffvpx/libavutil/atomic.h new file mode 100644 index 000000000..15906d24c --- /dev/null +++ b/media/ffvpx/libavutil/atomic.h @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_ATOMIC_H +#define AVUTIL_ATOMIC_H + +#include "config.h" + +#if HAVE_ATOMICS_NATIVE + +#if HAVE_ATOMICS_GCC +#include "atomic_gcc.h" +#elif HAVE_ATOMICS_WIN32 +#include "atomic_win32.h" +#elif HAVE_ATOMICS_SUNCC +#include "atomic_suncc.h" +#endif + +#else + +/** + * Load the current value stored in an atomic integer. + * + * @param ptr atomic integer + * @return the current value of the atomic integer + * @note This acts as a memory barrier. + */ +int avpriv_atomic_int_get(volatile int *ptr); + +/** + * Store a new value in an atomic integer. + * + * @param ptr atomic integer + * @param val the value to store in the atomic integer + * @note This acts as a memory barrier. + */ +void avpriv_atomic_int_set(volatile int *ptr, int val); + +/** + * Add a value to an atomic integer. + * + * @param ptr atomic integer + * @param inc the value to add to the atomic integer (may be negative) + * @return the new value of the atomic integer. + * @note This does NOT act as a memory barrier. This is primarily + * intended for reference counting. + */ +int avpriv_atomic_int_add_and_fetch(volatile int *ptr, int inc); + +/** + * Atomic pointer compare and swap. + * + * @param ptr pointer to the pointer to operate on + * @param oldval do the swap if the current value of *ptr equals to oldval + * @param newval value to replace *ptr with + * @return the value of *ptr before comparison + */ +void *avpriv_atomic_ptr_cas(void * volatile *ptr, void *oldval, void *newval); + +#endif /* HAVE_ATOMICS_NATIVE */ + +#endif /* AVUTIL_ATOMIC_H */ diff --git a/media/ffvpx/libavutil/atomic_gcc.h b/media/ffvpx/libavutil/atomic_gcc.h new file mode 100644 index 000000000..2bb43c3ce --- /dev/null +++ b/media/ffvpx/libavutil/atomic_gcc.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_ATOMIC_GCC_H +#define AVUTIL_ATOMIC_GCC_H + +#include <stdint.h> + +#include "atomic.h" + +#define avpriv_atomic_int_get atomic_int_get_gcc +static inline int atomic_int_get_gcc(volatile int *ptr) +{ + __sync_synchronize(); + return *ptr; +} + +#define avpriv_atomic_int_set atomic_int_set_gcc +static inline void atomic_int_set_gcc(volatile int *ptr, int val) +{ + *ptr = val; + __sync_synchronize(); +} + +#define avpriv_atomic_int_add_and_fetch atomic_int_add_and_fetch_gcc +static inline int atomic_int_add_and_fetch_gcc(volatile int *ptr, int inc) +{ + return __sync_add_and_fetch(ptr, inc); +} + +#define avpriv_atomic_ptr_cas atomic_ptr_cas_gcc +static inline void *atomic_ptr_cas_gcc(void * volatile *ptr, + void *oldval, void *newval) +{ +#ifdef __ARMCC_VERSION + // armcc will throw an error if ptr is not an integer type + volatile uintptr_t *tmp = (volatile uintptr_t*)ptr; + return (void*)__sync_val_compare_and_swap(tmp, oldval, newval); +#else + return __sync_val_compare_and_swap(ptr, oldval, newval); +#endif +} + +#endif /* AVUTIL_ATOMIC_GCC_H */ diff --git a/media/ffvpx/libavutil/atomic_win32.h b/media/ffvpx/libavutil/atomic_win32.h new file mode 100644 index 000000000..f7299336f --- /dev/null +++ b/media/ffvpx/libavutil/atomic_win32.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_ATOMIC_WIN32_H +#define AVUTIL_ATOMIC_WIN32_H + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +#define avpriv_atomic_int_get atomic_int_get_win32 +static inline int atomic_int_get_win32(volatile int *ptr) +{ + MemoryBarrier(); + return *ptr; +} + +#define avpriv_atomic_int_set atomic_int_set_win32 +static inline void atomic_int_set_win32(volatile int *ptr, int val) +{ + *ptr = val; + MemoryBarrier(); +} + +#define avpriv_atomic_int_add_and_fetch atomic_int_add_and_fetch_win32 +static inline int atomic_int_add_and_fetch_win32(volatile int *ptr, int inc) +{ + return inc + InterlockedExchangeAdd(ptr, inc); +} + +#define avpriv_atomic_ptr_cas atomic_ptr_cas_win32 +static inline void *atomic_ptr_cas_win32(void * volatile *ptr, + void *oldval, void *newval) +{ + return InterlockedCompareExchangePointer(ptr, newval, oldval); +} + +#endif /* AVUTIL_ATOMIC_WIN32_H */ diff --git a/media/ffvpx/libavutil/attributes.h b/media/ffvpx/libavutil/attributes.h index ced108aa2..54d190111 100644 --- a/media/ffvpx/libavutil/attributes.h +++ b/media/ffvpx/libavutil/attributes.h @@ -66,19 +66,19 @@ # define av_noinline #endif -#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) +#if AV_GCC_VERSION_AT_LEAST(3,1) # define av_pure __attribute__((pure)) #else # define av_pure #endif -#if AV_GCC_VERSION_AT_LEAST(2,6) || defined(__clang__) +#if AV_GCC_VERSION_AT_LEAST(2,6) # define av_const __attribute__((const)) #else # define av_const #endif -#if AV_GCC_VERSION_AT_LEAST(4,3) || defined(__clang__) +#if AV_GCC_VERSION_AT_LEAST(4,3) # define av_cold __attribute__((cold)) #else # define av_cold @@ -138,19 +138,19 @@ # define av_used #endif -#if AV_GCC_VERSION_AT_LEAST(3,3) || defined(__clang__) +#if AV_GCC_VERSION_AT_LEAST(3,3) # define av_alias __attribute__((may_alias)) #else # define av_alias #endif -#if (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(__clang__) # define av_uninit(x) x=x #else # define av_uninit(x) x #endif -#if defined(__GNUC__) || defined(__clang__) +#ifdef __GNUC__ # define av_builtin_constant_p __builtin_constant_p # define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos))) #else @@ -158,7 +158,7 @@ # define av_printf_format(fmtpos, attrpos) #endif -#if AV_GCC_VERSION_AT_LEAST(2,5) || defined(__clang__) +#if AV_GCC_VERSION_AT_LEAST(2,5) # define av_noreturn __attribute__((noreturn)) #else # define av_noreturn diff --git a/media/ffvpx/libavutil/avutil.symbols b/media/ffvpx/libavutil/avutil.symbols index ede2ff9ac..ba68dc33c 100644 --- a/media/ffvpx/libavutil/avutil.symbols +++ b/media/ffvpx/libavutil/avutil.symbols @@ -1,7 +1,10 @@ av_add_q av_add_stable +av_adler32_update av_append_path_component av_asprintf +av_base64_decode +av_base64_encode av_basename av_bprint_append_data av_bprint_channel_layout @@ -174,10 +177,8 @@ av_image_get_buffer_size av_image_get_linesize av_int_list_length_for_size av_log -#ifndef MOZ_FFVPX_FLACONLY av_log2 av_log2_16bit -#endif av_log_default_callback av_log_format_line av_log_get_flags @@ -256,6 +257,7 @@ av_pix_fmt_desc_get_id av_pix_fmt_desc_next av_pix_fmt_get_chroma_sub_sample av_pix_fmt_swap_endianness +av_pixelutils_get_sad_fn av_q2intfloat av_read_image_line av_realloc @@ -294,6 +296,20 @@ av_strstart av_strtod av_strtok av_sub_q +av_thread_message_queue_alloc +av_thread_message_queue_free +av_thread_message_queue_recv +av_thread_message_queue_send +av_thread_message_queue_set_err_recv +av_thread_message_queue_set_err_send +av_timecode_adjust_ntsc_framenum2 +av_timecode_check_frame_rate +av_timecode_get_smpte_from_framenum +av_timecode_init +av_timecode_init_from_string +av_timecode_make_mpeg_tc_string +av_timecode_make_smpte_tc_string +av_timecode_make_string av_timegm av_usleep av_utf8_decode @@ -304,10 +320,14 @@ av_vlog av_write_image_line avpriv_alloc_fixed_dsp avpriv_float_dsp_alloc +avpriv_frame_get_metadatap +avpriv_get_gamma_from_trc +avpriv_init_lls avpriv_report_missing_feature avpriv_request_sample avpriv_scalarproduct_float_c avpriv_set_systematic_pal2 +avpriv_solve_lls avutil_configuration avutil_license avutil_version @@ -317,8 +337,3 @@ avpriv_emms_asm avpriv_slicethread_create avpriv_slicethread_execute avpriv_slicethread_free -av_hwdevice_get_type_name -av_hwframe_ctx_alloc -av_hwframe_ctx_init -av_malloc_array -av_mallocz_array diff --git a/media/ffvpx/libavutil/common.h b/media/ffvpx/libavutil/common.h index 8db029117..8142b31fd 100644 --- a/media/ffvpx/libavutil/common.h +++ b/media/ffvpx/libavutil/common.h @@ -158,7 +158,7 @@ static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, in */ static av_always_inline av_const uint8_t av_clip_uint8_c(int a) { - if (a&(~0xFF)) return (~a)>>31; + if (a&(~0xFF)) return (-a)>>31; else return a; } @@ -180,7 +180,7 @@ static av_always_inline av_const int8_t av_clip_int8_c(int a) */ static av_always_inline av_const uint16_t av_clip_uint16_c(int a) { - if (a&(~0xFFFF)) return (~a)>>31; + if (a&(~0xFFFF)) return (-a)>>31; else return a; } @@ -228,7 +228,7 @@ static av_always_inline av_const int av_clip_intp2_c(int a, int p) */ static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) { - if (a & ~((1<<p) - 1)) return (~a) >> 31 & ((1<<p) - 1); + if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1); else return a; } @@ -260,7 +260,7 @@ static av_always_inline int av_sat_add32_c(int a, int b) * * @param a first value * @param b value doubled and added to a - * @return sum sat(a + sat(2*b)) with signed saturation + * @return sum with signed saturation */ static av_always_inline int av_sat_dadd32_c(int a, int b) { @@ -268,30 +268,6 @@ static av_always_inline int av_sat_dadd32_c(int a, int b) } /** - * Subtract two signed 32-bit values with saturation. - * - * @param a one value - * @param b another value - * @return difference with signed saturation - */ -static av_always_inline int av_sat_sub32_c(int a, int b) -{ - return av_clipl_int32((int64_t)a - b); -} - -/** - * Subtract a doubled value from another value with saturation at both stages. - * - * @param a first value - * @param b value doubled and subtracted from a - * @return difference sat(a - sat(2*b)) with signed saturation - */ -static av_always_inline int av_sat_dsub32_c(int a, int b) -{ - return av_sat_sub32(a, av_sat_add32(b, b)); -} - -/** * Clip a float value into the amin-amax range. * @param a value to clip * @param amin minimum value of the clip range @@ -537,12 +513,6 @@ static av_always_inline av_const int av_parity_c(uint32_t v) #ifndef av_sat_dadd32 # define av_sat_dadd32 av_sat_dadd32_c #endif -#ifndef av_sat_sub32 -# define av_sat_sub32 av_sat_sub32_c -#endif -#ifndef av_sat_dsub32 -# define av_sat_dsub32 av_sat_dsub32_c -#endif #ifndef av_clipf # define av_clipf av_clipf_c #endif diff --git a/media/ffvpx/libavutil/cpu.c b/media/ffvpx/libavutil/cpu.c index 6548cc304..c8401b825 100644 --- a/media/ffvpx/libavutil/cpu.c +++ b/media/ffvpx/libavutil/cpu.c @@ -80,8 +80,7 @@ void av_force_cpu_flags(int arg){ AV_CPU_FLAG_XOP | AV_CPU_FLAG_FMA3 | AV_CPU_FLAG_FMA4 | - AV_CPU_FLAG_AVX2 | - AV_CPU_FLAG_AVX512 )) + AV_CPU_FLAG_AVX2 )) && !(arg & AV_CPU_FLAG_MMX)) { av_log(NULL, AV_LOG_WARNING, "MMX implied by specified flags\n"); arg |= AV_CPU_FLAG_MMX; @@ -127,7 +126,6 @@ int av_parse_cpu_flags(const char *s) #define CPUFLAG_AVX2 (AV_CPU_FLAG_AVX2 | CPUFLAG_AVX) #define CPUFLAG_BMI2 (AV_CPU_FLAG_BMI2 | AV_CPU_FLAG_BMI1) #define CPUFLAG_AESNI (AV_CPU_FLAG_AESNI | CPUFLAG_SSE42) -#define CPUFLAG_AVX512 (AV_CPU_FLAG_AVX512 | CPUFLAG_AVX2) static const AVOption cpuflags_opts[] = { { "flags" , NULL, 0, AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT64_MIN, INT64_MAX, .unit = "flags" }, #if ARCH_PPC @@ -156,7 +154,6 @@ int av_parse_cpu_flags(const char *s) { "3dnowext", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = CPUFLAG_3DNOWEXT }, .unit = "flags" }, { "cmov", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_CMOV }, .unit = "flags" }, { "aesni" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = CPUFLAG_AESNI }, .unit = "flags" }, - { "avx512" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = CPUFLAG_AVX512 }, .unit = "flags" }, #elif ARCH_ARM { "armv5te", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_ARMV5TE }, .unit = "flags" }, { "armv6", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_ARMV6 }, .unit = "flags" }, @@ -219,7 +216,6 @@ int av_parse_cpu_caps(unsigned *flags, const char *s) { "3dnowext", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_3DNOWEXT }, .unit = "flags" }, { "cmov", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_CMOV }, .unit = "flags" }, { "aesni", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_AESNI }, .unit = "flags" }, - { "avx512" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_AVX512 }, .unit = "flags" }, #define CPU_FLAG_P2 AV_CPU_FLAG_CMOV | AV_CPU_FLAG_MMX #define CPU_FLAG_P3 CPU_FLAG_P2 | AV_CPU_FLAG_MMX2 | AV_CPU_FLAG_SSE diff --git a/media/ffvpx/libavutil/cpu.h b/media/ffvpx/libavutil/cpu.h index 8bb9eb606..9e5d40aff 100644 --- a/media/ffvpx/libavutil/cpu.h +++ b/media/ffvpx/libavutil/cpu.h @@ -55,7 +55,6 @@ #define AV_CPU_FLAG_FMA3 0x10000 ///< Haswell FMA3 functions #define AV_CPU_FLAG_BMI1 0x20000 ///< Bit Manipulation Instruction Set 1 #define AV_CPU_FLAG_BMI2 0x40000 ///< Bit Manipulation Instruction Set 2 -#define AV_CPU_FLAG_AVX512 0x100000 ///< AVX-512 functions: requires OS support even if YMM/ZMM registers aren't used #define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard #define AV_CPU_FLAG_VSX 0x0002 ///< ISA 2.06 diff --git a/media/ffvpx/libavutil/cpu_internal.h b/media/ffvpx/libavutil/cpu_internal.h index 37122d1c5..b8bf1e539 100644 --- a/media/ffvpx/libavutil/cpu_internal.h +++ b/media/ffvpx/libavutil/cpu_internal.h @@ -19,8 +19,6 @@ #ifndef AVUTIL_CPU_INTERNAL_H #define AVUTIL_CPU_INTERNAL_H -#include "config.h" - #include "cpu.h" #define CPUEXT_SUFFIX(flags, suffix, cpuext) \ diff --git a/media/ffvpx/libavutil/crc.c b/media/ffvpx/libavutil/crc.c index c45ea63a6..495732b16 100644 --- a/media/ffvpx/libavutil/crc.c +++ b/media/ffvpx/libavutil/crc.c @@ -20,8 +20,6 @@ #include "config.h" -#include "thread.h" -#include "avassert.h" #include "bswap.h" #include "common.h" #include "crc.h" @@ -52,30 +50,6 @@ static const AVCRC av_crc_table[AV_CRC_MAX][257] = { 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3, 0x01 }, - [AV_CRC_8_EBU] = { - 0x00, 0x1D, 0x3A, 0x27, 0x74, 0x69, 0x4E, 0x53, 0xE8, 0xF5, 0xD2, 0xCF, - 0x9C, 0x81, 0xA6, 0xBB, 0xCD, 0xD0, 0xF7, 0xEA, 0xB9, 0xA4, 0x83, 0x9E, - 0x25, 0x38, 0x1F, 0x02, 0x51, 0x4C, 0x6B, 0x76, 0x87, 0x9A, 0xBD, 0xA0, - 0xF3, 0xEE, 0xC9, 0xD4, 0x6F, 0x72, 0x55, 0x48, 0x1B, 0x06, 0x21, 0x3C, - 0x4A, 0x57, 0x70, 0x6D, 0x3E, 0x23, 0x04, 0x19, 0xA2, 0xBF, 0x98, 0x85, - 0xD6, 0xCB, 0xEC, 0xF1, 0x13, 0x0E, 0x29, 0x34, 0x67, 0x7A, 0x5D, 0x40, - 0xFB, 0xE6, 0xC1, 0xDC, 0x8F, 0x92, 0xB5, 0xA8, 0xDE, 0xC3, 0xE4, 0xF9, - 0xAA, 0xB7, 0x90, 0x8D, 0x36, 0x2B, 0x0C, 0x11, 0x42, 0x5F, 0x78, 0x65, - 0x94, 0x89, 0xAE, 0xB3, 0xE0, 0xFD, 0xDA, 0xC7, 0x7C, 0x61, 0x46, 0x5B, - 0x08, 0x15, 0x32, 0x2F, 0x59, 0x44, 0x63, 0x7E, 0x2D, 0x30, 0x17, 0x0A, - 0xB1, 0xAC, 0x8B, 0x96, 0xC5, 0xD8, 0xFF, 0xE2, 0x26, 0x3B, 0x1C, 0x01, - 0x52, 0x4F, 0x68, 0x75, 0xCE, 0xD3, 0xF4, 0xE9, 0xBA, 0xA7, 0x80, 0x9D, - 0xEB, 0xF6, 0xD1, 0xCC, 0x9F, 0x82, 0xA5, 0xB8, 0x03, 0x1E, 0x39, 0x24, - 0x77, 0x6A, 0x4D, 0x50, 0xA1, 0xBC, 0x9B, 0x86, 0xD5, 0xC8, 0xEF, 0xF2, - 0x49, 0x54, 0x73, 0x6E, 0x3D, 0x20, 0x07, 0x1A, 0x6C, 0x71, 0x56, 0x4B, - 0x18, 0x05, 0x22, 0x3F, 0x84, 0x99, 0xBE, 0xA3, 0xF0, 0xED, 0xCA, 0xD7, - 0x35, 0x28, 0x0F, 0x12, 0x41, 0x5C, 0x7B, 0x66, 0xDD, 0xC0, 0xE7, 0xFA, - 0xA9, 0xB4, 0x93, 0x8E, 0xF8, 0xE5, 0xC2, 0xDF, 0x8C, 0x91, 0xB6, 0xAB, - 0x10, 0x0D, 0x2A, 0x37, 0x64, 0x79, 0x5E, 0x43, 0xB2, 0xAF, 0x88, 0x95, - 0xC6, 0xDB, 0xFC, 0xE1, 0x5A, 0x47, 0x60, 0x7D, 0x2E, 0x33, 0x14, 0x09, - 0x7F, 0x62, 0x45, 0x58, 0x0B, 0x16, 0x31, 0x2C, 0x97, 0x8A, 0xAD, 0xB0, - 0xE3, 0xFE, 0xD9, 0xC4, 0x01 - }, [AV_CRC_16_ANSI] = { 0x0000, 0x0580, 0x0F80, 0x0A00, 0x1B80, 0x1E00, 0x1400, 0x1180, 0x3380, 0x3600, 0x3C00, 0x3980, 0x2800, 0x2D80, 0x2780, 0x2200, @@ -317,25 +291,20 @@ static const AVCRC av_crc_table[AV_CRC_MAX][257] = { #else #define CRC_TABLE_SIZE 1024 #endif +static struct { + uint8_t le; + uint8_t bits; + uint32_t poly; +} av_crc_table_params[AV_CRC_MAX] = { + [AV_CRC_8_ATM] = { 0, 8, 0x07 }, + [AV_CRC_16_ANSI] = { 0, 16, 0x8005 }, + [AV_CRC_16_CCITT] = { 0, 16, 0x1021 }, + [AV_CRC_24_IEEE] = { 0, 24, 0x864CFB }, + [AV_CRC_32_IEEE] = { 0, 32, 0x04C11DB7 }, + [AV_CRC_32_IEEE_LE] = { 1, 32, 0xEDB88320 }, + [AV_CRC_16_ANSI_LE] = { 1, 16, 0xA001 }, +}; static AVCRC av_crc_table[AV_CRC_MAX][CRC_TABLE_SIZE]; - -#define DECLARE_CRC_INIT_TABLE_ONCE(id, le, bits, poly) \ -static AVOnce id ## _once_control = AV_ONCE_INIT; \ -static void id ## _init_table_once(void) \ -{ \ - av_assert0(av_crc_init(av_crc_table[id], le, bits, poly, sizeof(av_crc_table[id])) >= 0); \ -} - -#define CRC_INIT_TABLE_ONCE(id) ff_thread_once(&id ## _once_control, id ## _init_table_once) - -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_8_ATM, 0, 8, 0x07) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_8_EBU, 0, 8, 0x1D) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_16_ANSI, 0, 16, 0x8005) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_16_CCITT, 0, 16, 0x1021) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_24_IEEE, 0, 24, 0x864CFB) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_32_IEEE, 0, 32, 0x04C11DB7) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_32_IEEE_LE, 1, 32, 0xEDB88320) -DECLARE_CRC_INIT_TABLE_ONCE(AV_CRC_16_ANSI_LE, 1, 16, 0xA001) #endif int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size) @@ -374,17 +343,13 @@ int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size) const AVCRC *av_crc_get_table(AVCRCId crc_id) { #if !CONFIG_HARDCODED_TABLES - switch (crc_id) { - case AV_CRC_8_ATM: CRC_INIT_TABLE_ONCE(AV_CRC_8_ATM); break; - case AV_CRC_8_EBU: CRC_INIT_TABLE_ONCE(AV_CRC_8_EBU); break; - case AV_CRC_16_ANSI: CRC_INIT_TABLE_ONCE(AV_CRC_16_ANSI); break; - case AV_CRC_16_CCITT: CRC_INIT_TABLE_ONCE(AV_CRC_16_CCITT); break; - case AV_CRC_24_IEEE: CRC_INIT_TABLE_ONCE(AV_CRC_24_IEEE); break; - case AV_CRC_32_IEEE: CRC_INIT_TABLE_ONCE(AV_CRC_32_IEEE); break; - case AV_CRC_32_IEEE_LE: CRC_INIT_TABLE_ONCE(AV_CRC_32_IEEE_LE); break; - case AV_CRC_16_ANSI_LE: CRC_INIT_TABLE_ONCE(AV_CRC_16_ANSI_LE); break; - default: av_assert0(0); - } + if (!av_crc_table[crc_id][FF_ARRAY_ELEMS(av_crc_table[crc_id]) - 1]) + if (av_crc_init(av_crc_table[crc_id], + av_crc_table_params[crc_id].le, + av_crc_table_params[crc_id].bits, + av_crc_table_params[crc_id].poly, + sizeof(av_crc_table[crc_id])) < 0) + return NULL; #endif return av_crc_table[crc_id]; } diff --git a/media/ffvpx/libavutil/crc.h b/media/ffvpx/libavutil/crc.h index 47e22b4c7..2a1b0d762 100644 --- a/media/ffvpx/libavutil/crc.h +++ b/media/ffvpx/libavutil/crc.h @@ -53,8 +53,11 @@ typedef enum { AV_CRC_32_IEEE, AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */ AV_CRC_16_ANSI_LE, /*< reversed bitorder version of AV_CRC_16_ANSI */ +#if FF_API_CRC_BIG_TABLE + AV_CRC_24_IEEE = 12, +#else AV_CRC_24_IEEE, - AV_CRC_8_EBU, +#endif /* FF_API_CRC_BIG_TABLE */ AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */ }AVCRCId; diff --git a/media/ffvpx/libavutil/dummy_funcs.c b/media/ffvpx/libavutil/dummy_funcs.c index 5d1cdc819..3a2381074 100644 --- a/media/ffvpx/libavutil/dummy_funcs.c +++ b/media/ffvpx/libavutil/dummy_funcs.c @@ -5,27 +5,22 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "avutil.h" -#include "hwcontext.h" // cpu_internal.c int ff_get_cpu_flags_aarch64(void) { return 0; } -#if !defined(__arm__) int ff_get_cpu_flags_arm(void) { return 0; } -#endif int ff_get_cpu_flags_ppc(void) { return 0; } // float_dsp.c #include "float_dsp.h" void ff_float_dsp_init_aarch64(AVFloatDSPContext *fdsp) {} +void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp) {} void ff_float_dsp_init_ppc(AVFloatDSPContext *fdsp, int strict) {} void ff_float_dsp_init_mips(AVFloatDSPContext *fdsp) {} -#if !defined(__arm__) -void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp) {} -#endif + +int av_hwframe_get_buffer(struct AVBufferRef* hwframe_ref, struct AVFrame* frame, int flags) { return 0; } // cpu.c size_t ff_get_cpu_max_align_aarch64() { return 0; } -size_t ff_get_cpu_max_align_ppc() { return 0; } -#if !defined(__arm__) size_t ff_get_cpu_max_align_arm() { return 0; } -#endif +size_t ff_get_cpu_max_align_ppc() { return 0; } diff --git a/media/ffvpx/libavutil/eval.c b/media/ffvpx/libavutil/eval.c index efed91b6e..e5948793b 100644 --- a/media/ffvpx/libavutil/eval.c +++ b/media/ffvpx/libavutil/eval.c @@ -57,14 +57,7 @@ typedef struct Parser { double *var; } Parser; -static const AVClass eval_class = { - .class_name = "Eval", - .item_name = av_default_item_name, - .option = NULL, - .version = LIBAVUTIL_VERSION_INT, - .log_level_offset_offset = offsetof(Parser, log_offset), - .parent_log_context_offset = offsetof(Parser, log_ctx), -}; +static const AVClass eval_class = { "Eval", av_default_item_name, NULL, LIBAVUTIL_VERSION_INT, offsetof(Parser,log_offset), offsetof(Parser,log_ctx) }; static const struct { double bin_val; diff --git a/media/ffvpx/libavutil/ffversion.h b/media/ffvpx/libavutil/ffversion.h index 9b533e039..3da2a6bf1 100644 --- a/media/ffvpx/libavutil/ffversion.h +++ b/media/ffvpx/libavutil/ffversion.h @@ -1,5 +1,5 @@ /* Automatically generated by version.sh, do not manually edit! */ #ifndef AVUTIL_FFVERSION_H #define AVUTIL_FFVERSION_H -#define FFMPEG_VERSION "n4.0.2" +#define FFMPEG_VERSION "n3.4.2" #endif /* AVUTIL_FFVERSION_H */ diff --git a/media/ffvpx/libavutil/frame.c b/media/ffvpx/libavutil/frame.c index 00215ac29..d5fd2932e 100644 --- a/media/ffvpx/libavutil/frame.c +++ b/media/ffvpx/libavutil/frame.c @@ -26,7 +26,11 @@ #include "mem.h" #include "samplefmt.h" -#if FF_API_FRAME_GET_SET + +static AVFrameSideData *frame_new_side_data(AVFrame *frame, + enum AVFrameSideDataType type, + AVBufferRef *buf); + MAKE_ACCESSORS(AVFrame, frame, int64_t, best_effort_timestamp) MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_duration) MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_pos) @@ -38,84 +42,41 @@ MAKE_ACCESSORS(AVFrame, frame, int, decode_error_flags) MAKE_ACCESSORS(AVFrame, frame, int, pkt_size) MAKE_ACCESSORS(AVFrame, frame, enum AVColorSpace, colorspace) MAKE_ACCESSORS(AVFrame, frame, enum AVColorRange, color_range) -#endif #define CHECK_CHANNELS_CONSISTENCY(frame) \ av_assert2(!(frame)->channel_layout || \ (frame)->channels == \ av_get_channel_layout_nb_channels((frame)->channel_layout)) -#if FF_API_FRAME_QP -struct qp_properties { - int stride; - int type; -}; +AVDictionary **avpriv_frame_get_metadatap(AVFrame *frame) {return &frame->metadata;}; +#if FF_API_FRAME_QP int av_frame_set_qp_table(AVFrame *f, AVBufferRef *buf, int stride, int qp_type) { - struct qp_properties *p; - AVFrameSideData *sd; - AVBufferRef *ref; - -FF_DISABLE_DEPRECATION_WARNINGS av_buffer_unref(&f->qp_table_buf); f->qp_table_buf = buf; + +FF_DISABLE_DEPRECATION_WARNINGS f->qscale_table = buf->data; f->qstride = stride; f->qscale_type = qp_type; FF_ENABLE_DEPRECATION_WARNINGS - av_frame_remove_side_data(f, AV_FRAME_DATA_QP_TABLE_PROPERTIES); - av_frame_remove_side_data(f, AV_FRAME_DATA_QP_TABLE_DATA); - - ref = av_buffer_ref(buf); - if (!av_frame_new_side_data_from_buf(f, AV_FRAME_DATA_QP_TABLE_DATA, ref)) { - av_buffer_unref(&ref); - return AVERROR(ENOMEM); - } - - sd = av_frame_new_side_data(f, AV_FRAME_DATA_QP_TABLE_PROPERTIES, - sizeof(struct qp_properties)); - if (!sd) - return AVERROR(ENOMEM); - - p = (struct qp_properties *)sd->data; - p->stride = stride; - p->type = qp_type; - return 0; } int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type) { - AVBufferRef *buf = NULL; - - *stride = 0; - *type = 0; - FF_DISABLE_DEPRECATION_WARNINGS - if (f->qp_table_buf) { - *stride = f->qstride; - *type = f->qscale_type; - buf = f->qp_table_buf; + *stride = f->qstride; + *type = f->qscale_type; FF_ENABLE_DEPRECATION_WARNINGS - } else { - AVFrameSideData *sd; - struct qp_properties *p; - sd = av_frame_get_side_data(f, AV_FRAME_DATA_QP_TABLE_PROPERTIES); - if (!sd) - return NULL; - p = (struct qp_properties *)sd->data; - sd = av_frame_get_side_data(f, AV_FRAME_DATA_QP_TABLE_DATA); - if (!sd) - return NULL; - *stride = p->stride; - *type = p->type; - buf = sd->buf; - } - return buf ? buf->data : NULL; + if (!f->qp_table_buf) + return NULL; + + return f->qp_table_buf->data; } #endif @@ -247,7 +208,7 @@ static int get_video_buffer(AVFrame *frame, int align) frame->data[i] = frame->buf[i]->data; } - if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & FF_PSEUDOPAL) { + if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) { av_buffer_unref(&frame->buf[1]); frame->buf[1] = av_buffer_alloc(AVPALETTE_SIZE); if (!frame->buf[1]) @@ -395,10 +356,8 @@ FF_ENABLE_DEPRECATION_WARNINGS } memcpy(sd_dst->data, sd_src->data, sd_src->size); } else { - AVBufferRef *ref = av_buffer_ref(sd_src->buf); - sd_dst = av_frame_new_side_data_from_buf(dst, sd_src->type, ref); + sd_dst = frame_new_side_data(dst, sd_src->type, av_buffer_ref(sd_src->buf)); if (!sd_dst) { - av_buffer_unref(&ref); wipe_side_data(dst); return AVERROR(ENOMEM); } @@ -424,17 +383,12 @@ FF_ENABLE_DEPRECATION_WARNINGS #endif av_buffer_unref(&dst->opaque_ref); - av_buffer_unref(&dst->private_ref); if (src->opaque_ref) { dst->opaque_ref = av_buffer_ref(src->opaque_ref); if (!dst->opaque_ref) return AVERROR(ENOMEM); } - if (src->private_ref) { - dst->private_ref = av_buffer_ref(src->private_ref); - if (!dst->private_ref) - return AVERROR(ENOMEM); - } + return 0; } @@ -564,15 +518,12 @@ void av_frame_unref(AVFrame *frame) av_freep(&frame->extended_buf); av_dict_free(&frame->metadata); #if FF_API_FRAME_QP -FF_DISABLE_DEPRECATION_WARNINGS av_buffer_unref(&frame->qp_table_buf); -FF_ENABLE_DEPRECATION_WARNINGS #endif av_buffer_unref(&frame->hw_frames_ctx); av_buffer_unref(&frame->opaque_ref); - av_buffer_unref(&frame->private_ref); get_frame_defaults(frame); } @@ -685,9 +636,9 @@ AVBufferRef *av_frame_get_plane_buffer(AVFrame *frame, int plane) return NULL; } -AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame *frame, - enum AVFrameSideDataType type, - AVBufferRef *buf) +static AVFrameSideData *frame_new_side_data(AVFrame *frame, + enum AVFrameSideDataType type, + AVBufferRef *buf) { AVFrameSideData *ret, **tmp; @@ -695,17 +646,17 @@ AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame *frame, return NULL; if (frame->nb_side_data > INT_MAX / sizeof(*frame->side_data) - 1) - return NULL; + goto fail; tmp = av_realloc(frame->side_data, (frame->nb_side_data + 1) * sizeof(*frame->side_data)); if (!tmp) - return NULL; + goto fail; frame->side_data = tmp; ret = av_mallocz(sizeof(*ret)); if (!ret) - return NULL; + goto fail; ret->buf = buf; ret->data = ret->buf->data; @@ -715,18 +666,17 @@ AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame *frame, frame->side_data[frame->nb_side_data++] = ret; return ret; +fail: + av_buffer_unref(&buf); + return NULL; } AVFrameSideData *av_frame_new_side_data(AVFrame *frame, enum AVFrameSideDataType type, int size) { - AVFrameSideData *ret; - AVBufferRef *buf = av_buffer_alloc(size); - ret = av_frame_new_side_data_from_buf(frame, type, buf); - if (!ret) - av_buffer_unref(&buf); - return ret; + + return frame_new_side_data(frame, type, av_buffer_alloc(size)); } AVFrameSideData *av_frame_get_side_data(const AVFrame *frame, @@ -832,8 +782,6 @@ const char *av_frame_side_data_name(enum AVFrameSideDataType type) case AV_FRAME_DATA_CONTENT_LIGHT_LEVEL: return "Content light level metadata"; case AV_FRAME_DATA_GOP_TIMECODE: return "GOP timecode"; case AV_FRAME_DATA_ICC_PROFILE: return "ICC profile"; - case AV_FRAME_DATA_QP_TABLE_PROPERTIES: return "QP table properties"; - case AV_FRAME_DATA_QP_TABLE_DATA: return "QP table data"; } return NULL; } @@ -848,7 +796,7 @@ static int calc_cropping_offsets(size_t offsets[4], const AVFrame *frame, int shift_x = (i == 1 || i == 2) ? desc->log2_chroma_w : 0; int shift_y = (i == 1 || i == 2) ? desc->log2_chroma_h : 0; - if (desc->flags & (AV_PIX_FMT_FLAG_PAL | FF_PSEUDOPAL) && i == 1) { + if (desc->flags & (AV_PIX_FMT_FLAG_PAL | AV_PIX_FMT_FLAG_PSEUDOPAL) && i == 1) { offsets[i] = 0; break; } diff --git a/media/ffvpx/libavutil/frame.h b/media/ffvpx/libavutil/frame.h index 9d57d6ce6..abe4f4fd1 100644 --- a/media/ffvpx/libavutil/frame.h +++ b/media/ffvpx/libavutil/frame.h @@ -141,23 +141,6 @@ enum AVFrameSideDataType { * metadata key entry "name". */ AV_FRAME_DATA_ICC_PROFILE, - -#if FF_API_FRAME_QP - /** - * Implementation-specific description of the format of AV_FRAME_QP_TABLE_DATA. - * The contents of this side data are undocumented and internal; use - * av_frame_set_qp_table() and av_frame_get_qp_table() to access this in a - * meaningful way instead. - */ - AV_FRAME_DATA_QP_TABLE_PROPERTIES, - - /** - * Raw QP table data. Its format is described by - * AV_FRAME_DATA_QP_TABLE_PROPERTIES. Use av_frame_set_qp_table() and - * av_frame_get_qp_table() to access this instead. - */ - AV_FRAME_DATA_QP_TABLE_DATA, -#endif }; enum AVActiveFormatDescription { @@ -546,7 +529,6 @@ typedef struct AVFrame { attribute_deprecated int qscale_type; - attribute_deprecated AVBufferRef *qp_table_buf; #endif /** @@ -581,77 +563,39 @@ typedef struct AVFrame { /** * @} */ - - /** - * AVBufferRef for internal use by a single libav* library. - * Must not be used to transfer data between libraries. - * Has to be NULL when ownership of the frame leaves the respective library. - * - * Code outside the FFmpeg libs should never check or change the contents of the buffer ref. - * - * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced. - * av_frame_copy_props() calls create a new reference with av_buffer_ref() - * for the target frame's private_ref field. - */ - AVBufferRef *private_ref; } AVFrame; -#if FF_API_FRAME_GET_SET /** * Accessors for some AVFrame fields. These used to be provided for ABI * compatibility, and do not need to be used anymore. */ -attribute_deprecated int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame); -attribute_deprecated void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val); -attribute_deprecated int64_t av_frame_get_pkt_duration (const AVFrame *frame); -attribute_deprecated void av_frame_set_pkt_duration (AVFrame *frame, int64_t val); -attribute_deprecated int64_t av_frame_get_pkt_pos (const AVFrame *frame); -attribute_deprecated void av_frame_set_pkt_pos (AVFrame *frame, int64_t val); -attribute_deprecated int64_t av_frame_get_channel_layout (const AVFrame *frame); -attribute_deprecated void av_frame_set_channel_layout (AVFrame *frame, int64_t val); -attribute_deprecated int av_frame_get_channels (const AVFrame *frame); -attribute_deprecated void av_frame_set_channels (AVFrame *frame, int val); -attribute_deprecated int av_frame_get_sample_rate (const AVFrame *frame); -attribute_deprecated void av_frame_set_sample_rate (AVFrame *frame, int val); -attribute_deprecated AVDictionary *av_frame_get_metadata (const AVFrame *frame); -attribute_deprecated void av_frame_set_metadata (AVFrame *frame, AVDictionary *val); -attribute_deprecated int av_frame_get_decode_error_flags (const AVFrame *frame); -attribute_deprecated void av_frame_set_decode_error_flags (AVFrame *frame, int val); -attribute_deprecated int av_frame_get_pkt_size(const AVFrame *frame); -attribute_deprecated void av_frame_set_pkt_size(AVFrame *frame, int val); +AVDictionary **avpriv_frame_get_metadatap(AVFrame *frame); #if FF_API_FRAME_QP -attribute_deprecated int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type); -attribute_deprecated int av_frame_set_qp_table(AVFrame *f, AVBufferRef *buf, int stride, int type); #endif -attribute_deprecated enum AVColorSpace av_frame_get_colorspace(const AVFrame *frame); -attribute_deprecated void av_frame_set_colorspace(AVFrame *frame, enum AVColorSpace val); -attribute_deprecated enum AVColorRange av_frame_get_color_range(const AVFrame *frame); -attribute_deprecated void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val); -#endif /** * Get the name of a colorspace. @@ -819,22 +763,6 @@ AVFrameSideData *av_frame_new_side_data(AVFrame *frame, int size); /** - * Add a new side data to a frame from an existing AVBufferRef - * - * @param frame a frame to which the side data should be added - * @param type the type of the added side data - * @param buf an AVBufferRef to add as side data. The ownership of - * the reference is transferred to the frame. - * - * @return newly added side data on success, NULL on error. On failure - * the frame is unchanged and the AVBufferRef remains owned by - * the caller. - */ -AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame *frame, - enum AVFrameSideDataType type, - AVBufferRef *buf); - -/** * @return a pointer to the side data of a given type on success, NULL if there * is no side data with such type in this frame. */ diff --git a/media/ffvpx/libavutil/hwcontext.c b/media/ffvpx/libavutil/hwcontext.c deleted file mode 100644 index 70c556eca..000000000 --- a/media/ffvpx/libavutil/hwcontext.c +++ /dev/null @@ -1,873 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#include "buffer.h" -#include "common.h" -#include "hwcontext.h" -#include "hwcontext_internal.h" -#include "imgutils.h" -#include "log.h" -#include "mem.h" -#include "pixdesc.h" -#include "pixfmt.h" - -static const HWContextType * const hw_table[] = { -#if CONFIG_CUDA - &ff_hwcontext_type_cuda, -#endif -#if CONFIG_D3D11VA - &ff_hwcontext_type_d3d11va, -#endif -#if CONFIG_LIBDRM - &ff_hwcontext_type_drm, -#endif -#if CONFIG_DXVA2 - &ff_hwcontext_type_dxva2, -#endif -#if CONFIG_OPENCL - &ff_hwcontext_type_opencl, -#endif -#if CONFIG_QSV - &ff_hwcontext_type_qsv, -#endif -#if CONFIG_VAAPI - &ff_hwcontext_type_vaapi, -#endif -#if CONFIG_VDPAU - &ff_hwcontext_type_vdpau, -#endif -#if CONFIG_VIDEOTOOLBOX - &ff_hwcontext_type_videotoolbox, -#endif -#if CONFIG_MEDIACODEC - &ff_hwcontext_type_mediacodec, -#endif - NULL, -}; - -static const char *const hw_type_names[] = { - [AV_HWDEVICE_TYPE_CUDA] = "cuda", - [AV_HWDEVICE_TYPE_DRM] = "drm", - [AV_HWDEVICE_TYPE_DXVA2] = "dxva2", - [AV_HWDEVICE_TYPE_D3D11VA] = "d3d11va", - [AV_HWDEVICE_TYPE_OPENCL] = "opencl", - [AV_HWDEVICE_TYPE_QSV] = "qsv", - [AV_HWDEVICE_TYPE_VAAPI] = "vaapi", - [AV_HWDEVICE_TYPE_VDPAU] = "vdpau", - [AV_HWDEVICE_TYPE_VIDEOTOOLBOX] = "videotoolbox", - [AV_HWDEVICE_TYPE_MEDIACODEC] = "mediacodec", -}; - -enum AVHWDeviceType av_hwdevice_find_type_by_name(const char *name) -{ - int type; - for (type = 0; type < FF_ARRAY_ELEMS(hw_type_names); type++) { - if (hw_type_names[type] && !strcmp(hw_type_names[type], name)) - return type; - } - return AV_HWDEVICE_TYPE_NONE; -} - -const char *av_hwdevice_get_type_name(enum AVHWDeviceType type) -{ - if (type > AV_HWDEVICE_TYPE_NONE && - type < FF_ARRAY_ELEMS(hw_type_names)) - return hw_type_names[type]; - else - return NULL; -} - -enum AVHWDeviceType av_hwdevice_iterate_types(enum AVHWDeviceType prev) -{ - enum AVHWDeviceType next; - int i, set = 0; - for (i = 0; hw_table[i]; i++) { - if (prev != AV_HWDEVICE_TYPE_NONE && hw_table[i]->type <= prev) - continue; - if (!set || hw_table[i]->type < next) { - next = hw_table[i]->type; - set = 1; - } - } - return set ? next : AV_HWDEVICE_TYPE_NONE; -} - -static const AVClass hwdevice_ctx_class = { - .class_name = "AVHWDeviceContext", - .item_name = av_default_item_name, - .version = LIBAVUTIL_VERSION_INT, -}; - -static void hwdevice_ctx_free(void *opaque, uint8_t *data) -{ - AVHWDeviceContext *ctx = (AVHWDeviceContext*)data; - - /* uninit might still want access the hw context and the user - * free() callback might destroy it, so uninit has to be called first */ - if (ctx->internal->hw_type->device_uninit) - ctx->internal->hw_type->device_uninit(ctx); - - if (ctx->free) - ctx->free(ctx); - - av_buffer_unref(&ctx->internal->source_device); - - av_freep(&ctx->hwctx); - av_freep(&ctx->internal->priv); - av_freep(&ctx->internal); - av_freep(&ctx); -} - -AVBufferRef *av_hwdevice_ctx_alloc(enum AVHWDeviceType type) -{ - AVHWDeviceContext *ctx; - AVBufferRef *buf; - const HWContextType *hw_type = NULL; - int i; - - for (i = 0; hw_table[i]; i++) { - if (hw_table[i]->type == type) { - hw_type = hw_table[i]; - break; - } - } - if (!hw_type) - return NULL; - - ctx = av_mallocz(sizeof(*ctx)); - if (!ctx) - return NULL; - - ctx->internal = av_mallocz(sizeof(*ctx->internal)); - if (!ctx->internal) - goto fail; - - if (hw_type->device_priv_size) { - ctx->internal->priv = av_mallocz(hw_type->device_priv_size); - if (!ctx->internal->priv) - goto fail; - } - - if (hw_type->device_hwctx_size) { - ctx->hwctx = av_mallocz(hw_type->device_hwctx_size); - if (!ctx->hwctx) - goto fail; - } - - buf = av_buffer_create((uint8_t*)ctx, sizeof(*ctx), - hwdevice_ctx_free, NULL, - AV_BUFFER_FLAG_READONLY); - if (!buf) - goto fail; - - ctx->type = type; - ctx->av_class = &hwdevice_ctx_class; - - ctx->internal->hw_type = hw_type; - - return buf; - -fail: - if (ctx->internal) - av_freep(&ctx->internal->priv); - av_freep(&ctx->internal); - av_freep(&ctx->hwctx); - av_freep(&ctx); - return NULL; -} - -int av_hwdevice_ctx_init(AVBufferRef *ref) -{ - AVHWDeviceContext *ctx = (AVHWDeviceContext*)ref->data; - int ret; - - if (ctx->internal->hw_type->device_init) { - ret = ctx->internal->hw_type->device_init(ctx); - if (ret < 0) - goto fail; - } - - return 0; -fail: - if (ctx->internal->hw_type->device_uninit) - ctx->internal->hw_type->device_uninit(ctx); - return ret; -} - -static const AVClass hwframe_ctx_class = { - .class_name = "AVHWFramesContext", - .item_name = av_default_item_name, - .version = LIBAVUTIL_VERSION_INT, -}; - -static void hwframe_ctx_free(void *opaque, uint8_t *data) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)data; - - if (ctx->internal->pool_internal) - av_buffer_pool_uninit(&ctx->internal->pool_internal); - - if (ctx->internal->hw_type->frames_uninit) - ctx->internal->hw_type->frames_uninit(ctx); - - if (ctx->free) - ctx->free(ctx); - - av_buffer_unref(&ctx->internal->source_frames); - - av_buffer_unref(&ctx->device_ref); - - av_freep(&ctx->hwctx); - av_freep(&ctx->internal->priv); - av_freep(&ctx->internal); - av_freep(&ctx); -} - -AVBufferRef *av_hwframe_ctx_alloc(AVBufferRef *device_ref_in) -{ - AVHWDeviceContext *device_ctx = (AVHWDeviceContext*)device_ref_in->data; - const HWContextType *hw_type = device_ctx->internal->hw_type; - AVHWFramesContext *ctx; - AVBufferRef *buf, *device_ref = NULL; - - ctx = av_mallocz(sizeof(*ctx)); - if (!ctx) - return NULL; - - ctx->internal = av_mallocz(sizeof(*ctx->internal)); - if (!ctx->internal) - goto fail; - - if (hw_type->frames_priv_size) { - ctx->internal->priv = av_mallocz(hw_type->frames_priv_size); - if (!ctx->internal->priv) - goto fail; - } - - if (hw_type->frames_hwctx_size) { - ctx->hwctx = av_mallocz(hw_type->frames_hwctx_size); - if (!ctx->hwctx) - goto fail; - } - - device_ref = av_buffer_ref(device_ref_in); - if (!device_ref) - goto fail; - - buf = av_buffer_create((uint8_t*)ctx, sizeof(*ctx), - hwframe_ctx_free, NULL, - AV_BUFFER_FLAG_READONLY); - if (!buf) - goto fail; - - ctx->av_class = &hwframe_ctx_class; - ctx->device_ref = device_ref; - ctx->device_ctx = device_ctx; - ctx->format = AV_PIX_FMT_NONE; - ctx->sw_format = AV_PIX_FMT_NONE; - - ctx->internal->hw_type = hw_type; - - return buf; - -fail: - if (device_ref) - av_buffer_unref(&device_ref); - if (ctx->internal) - av_freep(&ctx->internal->priv); - av_freep(&ctx->internal); - av_freep(&ctx->hwctx); - av_freep(&ctx); - return NULL; -} - -static int hwframe_pool_prealloc(AVBufferRef *ref) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)ref->data; - AVFrame **frames; - int i, ret = 0; - - frames = av_mallocz_array(ctx->initial_pool_size, sizeof(*frames)); - if (!frames) - return AVERROR(ENOMEM); - - for (i = 0; i < ctx->initial_pool_size; i++) { - frames[i] = av_frame_alloc(); - if (!frames[i]) - goto fail; - - ret = av_hwframe_get_buffer(ref, frames[i], 0); - if (ret < 0) - goto fail; - } - -fail: - for (i = 0; i < ctx->initial_pool_size; i++) - av_frame_free(&frames[i]); - av_freep(&frames); - - return ret; -} - -int av_hwframe_ctx_init(AVBufferRef *ref) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)ref->data; - const enum AVPixelFormat *pix_fmt; - int ret; - - if (ctx->internal->source_frames) { - /* A derived frame context is already initialised. */ - return 0; - } - - /* validate the pixel format */ - for (pix_fmt = ctx->internal->hw_type->pix_fmts; *pix_fmt != AV_PIX_FMT_NONE; pix_fmt++) { - if (*pix_fmt == ctx->format) - break; - } - if (*pix_fmt == AV_PIX_FMT_NONE) { - av_log(ctx, AV_LOG_ERROR, - "The hardware pixel format '%s' is not supported by the device type '%s'\n", - av_get_pix_fmt_name(ctx->format), ctx->internal->hw_type->name); - return AVERROR(ENOSYS); - } - - /* validate the dimensions */ - ret = av_image_check_size(ctx->width, ctx->height, 0, ctx); - if (ret < 0) - return ret; - - /* format-specific init */ - if (ctx->internal->hw_type->frames_init) { - ret = ctx->internal->hw_type->frames_init(ctx); - if (ret < 0) - goto fail; - } - - if (ctx->internal->pool_internal && !ctx->pool) - ctx->pool = ctx->internal->pool_internal; - - /* preallocate the frames in the pool, if requested */ - if (ctx->initial_pool_size > 0) { - ret = hwframe_pool_prealloc(ref); - if (ret < 0) - goto fail; - } - - return 0; -fail: - if (ctx->internal->hw_type->frames_uninit) - ctx->internal->hw_type->frames_uninit(ctx); - return ret; -} - -int av_hwframe_transfer_get_formats(AVBufferRef *hwframe_ref, - enum AVHWFrameTransferDirection dir, - enum AVPixelFormat **formats, int flags) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)hwframe_ref->data; - - if (!ctx->internal->hw_type->transfer_get_formats) - return AVERROR(ENOSYS); - - return ctx->internal->hw_type->transfer_get_formats(ctx, dir, formats); -} - -static int transfer_data_alloc(AVFrame *dst, const AVFrame *src, int flags) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)src->hw_frames_ctx->data; - AVFrame *frame_tmp; - int ret = 0; - - frame_tmp = av_frame_alloc(); - if (!frame_tmp) - return AVERROR(ENOMEM); - - /* if the format is set, use that - * otherwise pick the first supported one */ - if (dst->format >= 0) { - frame_tmp->format = dst->format; - } else { - enum AVPixelFormat *formats; - - ret = av_hwframe_transfer_get_formats(src->hw_frames_ctx, - AV_HWFRAME_TRANSFER_DIRECTION_FROM, - &formats, 0); - if (ret < 0) - goto fail; - frame_tmp->format = formats[0]; - av_freep(&formats); - } - frame_tmp->width = ctx->width; - frame_tmp->height = ctx->height; - - ret = av_frame_get_buffer(frame_tmp, 32); - if (ret < 0) - goto fail; - - ret = av_hwframe_transfer_data(frame_tmp, src, flags); - if (ret < 0) - goto fail; - - frame_tmp->width = src->width; - frame_tmp->height = src->height; - - av_frame_move_ref(dst, frame_tmp); - -fail: - av_frame_free(&frame_tmp); - return ret; -} - -int av_hwframe_transfer_data(AVFrame *dst, const AVFrame *src, int flags) -{ - AVHWFramesContext *ctx; - int ret; - - if (!dst->buf[0]) - return transfer_data_alloc(dst, src, flags); - - if (src->hw_frames_ctx) { - ctx = (AVHWFramesContext*)src->hw_frames_ctx->data; - - ret = ctx->internal->hw_type->transfer_data_from(ctx, dst, src); - if (ret < 0) - return ret; - } else if (dst->hw_frames_ctx) { - ctx = (AVHWFramesContext*)dst->hw_frames_ctx->data; - - ret = ctx->internal->hw_type->transfer_data_to(ctx, dst, src); - if (ret < 0) - return ret; - } else - return AVERROR(ENOSYS); - - return 0; -} - -int av_hwframe_get_buffer(AVBufferRef *hwframe_ref, AVFrame *frame, int flags) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)hwframe_ref->data; - int ret; - - if (ctx->internal->source_frames) { - // This is a derived frame context, so we allocate in the source - // and map the frame immediately. - AVFrame *src_frame; - - frame->format = ctx->format; - frame->hw_frames_ctx = av_buffer_ref(hwframe_ref); - if (!frame->hw_frames_ctx) - return AVERROR(ENOMEM); - - src_frame = av_frame_alloc(); - if (!src_frame) - return AVERROR(ENOMEM); - - ret = av_hwframe_get_buffer(ctx->internal->source_frames, - src_frame, 0); - if (ret < 0) { - av_frame_free(&src_frame); - return ret; - } - - ret = av_hwframe_map(frame, src_frame, - ctx->internal->source_allocation_map_flags); - if (ret) { - av_log(ctx, AV_LOG_ERROR, "Failed to map frame into derived " - "frame context: %d.\n", ret); - av_frame_free(&src_frame); - return ret; - } - - // Free the source frame immediately - the mapped frame still - // contains a reference to it. - av_frame_free(&src_frame); - - return 0; - } - - if (!ctx->internal->hw_type->frames_get_buffer) - return AVERROR(ENOSYS); - - if (!ctx->pool) - return AVERROR(EINVAL); - - frame->hw_frames_ctx = av_buffer_ref(hwframe_ref); - if (!frame->hw_frames_ctx) - return AVERROR(ENOMEM); - - ret = ctx->internal->hw_type->frames_get_buffer(ctx, frame); - if (ret < 0) { - av_buffer_unref(&frame->hw_frames_ctx); - return ret; - } - - return 0; -} - -void *av_hwdevice_hwconfig_alloc(AVBufferRef *ref) -{ - AVHWDeviceContext *ctx = (AVHWDeviceContext*)ref->data; - const HWContextType *hw_type = ctx->internal->hw_type; - - if (hw_type->device_hwconfig_size == 0) - return NULL; - - return av_mallocz(hw_type->device_hwconfig_size); -} - -AVHWFramesConstraints *av_hwdevice_get_hwframe_constraints(AVBufferRef *ref, - const void *hwconfig) -{ - AVHWDeviceContext *ctx = (AVHWDeviceContext*)ref->data; - const HWContextType *hw_type = ctx->internal->hw_type; - AVHWFramesConstraints *constraints; - - if (!hw_type->frames_get_constraints) - return NULL; - - constraints = av_mallocz(sizeof(*constraints)); - if (!constraints) - return NULL; - - constraints->min_width = constraints->min_height = 0; - constraints->max_width = constraints->max_height = INT_MAX; - - if (hw_type->frames_get_constraints(ctx, hwconfig, constraints) >= 0) { - return constraints; - } else { - av_hwframe_constraints_free(&constraints); - return NULL; - } -} - -void av_hwframe_constraints_free(AVHWFramesConstraints **constraints) -{ - if (*constraints) { - av_freep(&(*constraints)->valid_hw_formats); - av_freep(&(*constraints)->valid_sw_formats); - } - av_freep(constraints); -} - -int av_hwdevice_ctx_create(AVBufferRef **pdevice_ref, enum AVHWDeviceType type, - const char *device, AVDictionary *opts, int flags) -{ - AVBufferRef *device_ref = NULL; - AVHWDeviceContext *device_ctx; - int ret = 0; - - device_ref = av_hwdevice_ctx_alloc(type); - if (!device_ref) { - ret = AVERROR(ENOMEM); - goto fail; - } - device_ctx = (AVHWDeviceContext*)device_ref->data; - - if (!device_ctx->internal->hw_type->device_create) { - ret = AVERROR(ENOSYS); - goto fail; - } - - ret = device_ctx->internal->hw_type->device_create(device_ctx, device, - opts, flags); - if (ret < 0) - goto fail; - - ret = av_hwdevice_ctx_init(device_ref); - if (ret < 0) - goto fail; - - *pdevice_ref = device_ref; - return 0; -fail: - av_buffer_unref(&device_ref); - *pdevice_ref = NULL; - return ret; -} - -int av_hwdevice_ctx_create_derived(AVBufferRef **dst_ref_ptr, - enum AVHWDeviceType type, - AVBufferRef *src_ref, int flags) -{ - AVBufferRef *dst_ref = NULL, *tmp_ref; - AVHWDeviceContext *dst_ctx, *tmp_ctx; - int ret = 0; - - tmp_ref = src_ref; - while (tmp_ref) { - tmp_ctx = (AVHWDeviceContext*)tmp_ref->data; - if (tmp_ctx->type == type) { - dst_ref = av_buffer_ref(tmp_ref); - if (!dst_ref) { - ret = AVERROR(ENOMEM); - goto fail; - } - goto done; - } - tmp_ref = tmp_ctx->internal->source_device; - } - - dst_ref = av_hwdevice_ctx_alloc(type); - if (!dst_ref) { - ret = AVERROR(ENOMEM); - goto fail; - } - dst_ctx = (AVHWDeviceContext*)dst_ref->data; - - tmp_ref = src_ref; - while (tmp_ref) { - tmp_ctx = (AVHWDeviceContext*)tmp_ref->data; - if (dst_ctx->internal->hw_type->device_derive) { - ret = dst_ctx->internal->hw_type->device_derive(dst_ctx, - tmp_ctx, - flags); - if (ret == 0) { - dst_ctx->internal->source_device = av_buffer_ref(src_ref); - if (!dst_ctx->internal->source_device) { - ret = AVERROR(ENOMEM); - goto fail; - } - goto done; - } - if (ret != AVERROR(ENOSYS)) - goto fail; - } - tmp_ref = tmp_ctx->internal->source_device; - } - - ret = AVERROR(ENOSYS); - goto fail; - -done: - ret = av_hwdevice_ctx_init(dst_ref); - if (ret < 0) - goto fail; - - *dst_ref_ptr = dst_ref; - return 0; - -fail: - av_buffer_unref(&dst_ref); - *dst_ref_ptr = NULL; - return ret; -} - -static void ff_hwframe_unmap(void *opaque, uint8_t *data) -{ - HWMapDescriptor *hwmap = (HWMapDescriptor*)data; - AVHWFramesContext *ctx = opaque; - - if (hwmap->unmap) - hwmap->unmap(ctx, hwmap); - - av_frame_free(&hwmap->source); - - av_buffer_unref(&hwmap->hw_frames_ctx); - - av_free(hwmap); -} - -int ff_hwframe_map_create(AVBufferRef *hwframe_ref, - AVFrame *dst, const AVFrame *src, - void (*unmap)(AVHWFramesContext *ctx, - HWMapDescriptor *hwmap), - void *priv) -{ - AVHWFramesContext *ctx = (AVHWFramesContext*)hwframe_ref->data; - HWMapDescriptor *hwmap; - int ret; - - hwmap = av_mallocz(sizeof(*hwmap)); - if (!hwmap) { - ret = AVERROR(ENOMEM); - goto fail; - } - - hwmap->source = av_frame_alloc(); - if (!hwmap->source) { - ret = AVERROR(ENOMEM); - goto fail; - } - ret = av_frame_ref(hwmap->source, src); - if (ret < 0) - goto fail; - - hwmap->hw_frames_ctx = av_buffer_ref(hwframe_ref); - if (!hwmap->hw_frames_ctx) { - ret = AVERROR(ENOMEM); - goto fail; - } - - hwmap->unmap = unmap; - hwmap->priv = priv; - - dst->buf[0] = av_buffer_create((uint8_t*)hwmap, sizeof(*hwmap), - &ff_hwframe_unmap, ctx, 0); - if (!dst->buf[0]) { - ret = AVERROR(ENOMEM); - goto fail; - } - - return 0; - -fail: - if (hwmap) { - av_buffer_unref(&hwmap->hw_frames_ctx); - av_frame_free(&hwmap->source); - } - av_free(hwmap); - return ret; -} - -int av_hwframe_map(AVFrame *dst, const AVFrame *src, int flags) -{ - AVHWFramesContext *src_frames, *dst_frames; - HWMapDescriptor *hwmap; - int ret; - - if (src->hw_frames_ctx && dst->hw_frames_ctx) { - src_frames = (AVHWFramesContext*)src->hw_frames_ctx->data; - dst_frames = (AVHWFramesContext*)dst->hw_frames_ctx->data; - - if ((src_frames == dst_frames && - src->format == dst_frames->sw_format && - dst->format == dst_frames->format) || - (src_frames->internal->source_frames && - src_frames->internal->source_frames->data == - (uint8_t*)dst_frames)) { - // This is an unmap operation. We don't need to directly - // do anything here other than fill in the original frame, - // because the real unmap will be invoked when the last - // reference to the mapped frame disappears. - if (!src->buf[0]) { - av_log(src_frames, AV_LOG_ERROR, "Invalid mapping " - "found when attempting unmap.\n"); - return AVERROR(EINVAL); - } - hwmap = (HWMapDescriptor*)src->buf[0]->data; - av_frame_unref(dst); - return av_frame_ref(dst, hwmap->source); - } - } - - if (src->hw_frames_ctx) { - src_frames = (AVHWFramesContext*)src->hw_frames_ctx->data; - - if (src_frames->format == src->format && - src_frames->internal->hw_type->map_from) { - ret = src_frames->internal->hw_type->map_from(src_frames, - dst, src, flags); - if (ret != AVERROR(ENOSYS)) - return ret; - } - } - - if (dst->hw_frames_ctx) { - dst_frames = (AVHWFramesContext*)dst->hw_frames_ctx->data; - - if (dst_frames->format == dst->format && - dst_frames->internal->hw_type->map_to) { - ret = dst_frames->internal->hw_type->map_to(dst_frames, - dst, src, flags); - if (ret != AVERROR(ENOSYS)) - return ret; - } - } - - return AVERROR(ENOSYS); -} - -int av_hwframe_ctx_create_derived(AVBufferRef **derived_frame_ctx, - enum AVPixelFormat format, - AVBufferRef *derived_device_ctx, - AVBufferRef *source_frame_ctx, - int flags) -{ - AVBufferRef *dst_ref = NULL; - AVHWFramesContext *dst = NULL; - AVHWFramesContext *src = (AVHWFramesContext*)source_frame_ctx->data; - int ret; - - if (src->internal->source_frames) { - AVHWFramesContext *src_src = - (AVHWFramesContext*)src->internal->source_frames->data; - AVHWDeviceContext *dst_dev = - (AVHWDeviceContext*)derived_device_ctx->data; - - if (src_src->device_ctx == dst_dev) { - // This is actually an unmapping, so we just return a - // reference to the source frame context. - *derived_frame_ctx = - av_buffer_ref(src->internal->source_frames); - if (!*derived_frame_ctx) { - ret = AVERROR(ENOMEM); - goto fail; - } - return 0; - } - } - - dst_ref = av_hwframe_ctx_alloc(derived_device_ctx); - if (!dst_ref) { - ret = AVERROR(ENOMEM); - goto fail; - } - - dst = (AVHWFramesContext*)dst_ref->data; - - dst->format = format; - dst->sw_format = src->sw_format; - dst->width = src->width; - dst->height = src->height; - - dst->internal->source_frames = av_buffer_ref(source_frame_ctx); - if (!dst->internal->source_frames) { - ret = AVERROR(ENOMEM); - goto fail; - } - - dst->internal->source_allocation_map_flags = - flags & (AV_HWFRAME_MAP_READ | - AV_HWFRAME_MAP_WRITE | - AV_HWFRAME_MAP_OVERWRITE | - AV_HWFRAME_MAP_DIRECT); - - ret = AVERROR(ENOSYS); - if (src->internal->hw_type->frames_derive_from) - ret = src->internal->hw_type->frames_derive_from(dst, src, flags); - if (ret == AVERROR(ENOSYS) && - dst->internal->hw_type->frames_derive_to) - ret = dst->internal->hw_type->frames_derive_to(dst, src, flags); - if (ret == AVERROR(ENOSYS)) - ret = 0; - if (ret) - goto fail; - - *derived_frame_ctx = dst_ref; - return 0; - -fail: - if (dst) - av_buffer_unref(&dst->internal->source_frames); - av_buffer_unref(&dst_ref); - return ret; -} diff --git a/media/ffvpx/libavutil/hwcontext.h b/media/ffvpx/libavutil/hwcontext.h index f5a4b6238..03334e20e 100644 --- a/media/ffvpx/libavutil/hwcontext.h +++ b/media/ffvpx/libavutil/hwcontext.h @@ -25,17 +25,15 @@ #include "pixfmt.h" enum AVHWDeviceType { - AV_HWDEVICE_TYPE_NONE, AV_HWDEVICE_TYPE_VDPAU, AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_DXVA2, AV_HWDEVICE_TYPE_QSV, AV_HWDEVICE_TYPE_VIDEOTOOLBOX, + AV_HWDEVICE_TYPE_NONE, AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_DRM, - AV_HWDEVICE_TYPE_OPENCL, - AV_HWDEVICE_TYPE_MEDIACODEC, }; typedef struct AVHWDeviceInternal AVHWDeviceInternal; diff --git a/media/ffvpx/libavutil/hwcontext_internal.h b/media/ffvpx/libavutil/hwcontext_internal.h deleted file mode 100644 index 332062dda..000000000 --- a/media/ffvpx/libavutil/hwcontext_internal.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AVUTIL_HWCONTEXT_INTERNAL_H -#define AVUTIL_HWCONTEXT_INTERNAL_H - -#include <stddef.h> - -#include "buffer.h" -#include "hwcontext.h" -#include "frame.h" -#include "pixfmt.h" - -typedef struct HWContextType { - enum AVHWDeviceType type; - const char *name; - - /** - * An array of pixel formats supported by the AVHWFramesContext instances - * Terminated by AV_PIX_FMT_NONE. - */ - const enum AVPixelFormat *pix_fmts; - - /** - * size of the public hardware-specific context, - * i.e. AVHWDeviceContext.hwctx - */ - size_t device_hwctx_size; - /** - * size of the private data, i.e. - * AVHWDeviceInternal.priv - */ - size_t device_priv_size; - - /** - * Size of the hardware-specific device configuration. - * (Used to query hwframe constraints.) - */ - size_t device_hwconfig_size; - - /** - * size of the public frame pool hardware-specific context, - * i.e. AVHWFramesContext.hwctx - */ - size_t frames_hwctx_size; - /** - * size of the private data, i.e. - * AVHWFramesInternal.priv - */ - size_t frames_priv_size; - - int (*device_create)(AVHWDeviceContext *ctx, const char *device, - AVDictionary *opts, int flags); - int (*device_derive)(AVHWDeviceContext *dst_ctx, - AVHWDeviceContext *src_ctx, int flags); - - int (*device_init)(AVHWDeviceContext *ctx); - void (*device_uninit)(AVHWDeviceContext *ctx); - - int (*frames_get_constraints)(AVHWDeviceContext *ctx, - const void *hwconfig, - AVHWFramesConstraints *constraints); - - int (*frames_init)(AVHWFramesContext *ctx); - void (*frames_uninit)(AVHWFramesContext *ctx); - - int (*frames_get_buffer)(AVHWFramesContext *ctx, AVFrame *frame); - int (*transfer_get_formats)(AVHWFramesContext *ctx, - enum AVHWFrameTransferDirection dir, - enum AVPixelFormat **formats); - int (*transfer_data_to)(AVHWFramesContext *ctx, AVFrame *dst, - const AVFrame *src); - int (*transfer_data_from)(AVHWFramesContext *ctx, AVFrame *dst, - const AVFrame *src); - - int (*map_to)(AVHWFramesContext *ctx, AVFrame *dst, - const AVFrame *src, int flags); - int (*map_from)(AVHWFramesContext *ctx, AVFrame *dst, - const AVFrame *src, int flags); - - int (*frames_derive_to)(AVHWFramesContext *dst_ctx, - AVHWFramesContext *src_ctx, int flags); - int (*frames_derive_from)(AVHWFramesContext *dst_ctx, - AVHWFramesContext *src_ctx, int flags); -} HWContextType; - -struct AVHWDeviceInternal { - const HWContextType *hw_type; - void *priv; - - /** - * For a derived device, a reference to the original device - * context it was derived from. - */ - AVBufferRef *source_device; -}; - -struct AVHWFramesInternal { - const HWContextType *hw_type; - void *priv; - - AVBufferPool *pool_internal; - - /** - * For a derived context, a reference to the original frames - * context it was derived from. - */ - AVBufferRef *source_frames; - /** - * Flags to apply to the mapping from the source to the derived - * frame context when trying to allocate in the derived context. - */ - int source_allocation_map_flags; -}; - -typedef struct HWMapDescriptor { - /** - * A reference to the original source of the mapping. - */ - AVFrame *source; - /** - * A reference to the hardware frames context in which this - * mapping was made. May be the same as source->hw_frames_ctx, - * but need not be. - */ - AVBufferRef *hw_frames_ctx; - /** - * Unmap function. - */ - void (*unmap)(AVHWFramesContext *ctx, - struct HWMapDescriptor *hwmap); - /** - * Hardware-specific private data associated with the mapping. - */ - void *priv; -} HWMapDescriptor; - -int ff_hwframe_map_create(AVBufferRef *hwframe_ref, - AVFrame *dst, const AVFrame *src, - void (*unmap)(AVHWFramesContext *ctx, - HWMapDescriptor *hwmap), - void *priv); - - -extern const HWContextType ff_hwcontext_type_cuda; -extern const HWContextType ff_hwcontext_type_d3d11va; -extern const HWContextType ff_hwcontext_type_drm; -extern const HWContextType ff_hwcontext_type_dxva2; -extern const HWContextType ff_hwcontext_type_opencl; -extern const HWContextType ff_hwcontext_type_qsv; -extern const HWContextType ff_hwcontext_type_vaapi; -extern const HWContextType ff_hwcontext_type_vdpau; -extern const HWContextType ff_hwcontext_type_videotoolbox; -extern const HWContextType ff_hwcontext_type_mediacodec; - -#endif /* AVUTIL_HWCONTEXT_INTERNAL_H */ diff --git a/media/ffvpx/libavutil/imgutils.c b/media/ffvpx/libavutil/imgutils.c index 4938a7ef6..500517880 100644 --- a/media/ffvpx/libavutil/imgutils.c +++ b/media/ffvpx/libavutil/imgutils.c @@ -125,7 +125,7 @@ int av_image_fill_pointers(uint8_t *data[4], enum AVPixelFormat pix_fmt, int hei size[0] = linesizes[0] * height; if (desc->flags & AV_PIX_FMT_FLAG_PAL || - desc->flags & FF_PSEUDOPAL) { + desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) { data[1] = ptr + size[0]; /* palette is stored here as 256 32 bits words */ return size[0] + 256 * 4; } @@ -216,7 +216,7 @@ int av_image_alloc(uint8_t *pointers[4], int linesizes[4], av_free(buf); return ret; } - if (desc->flags & AV_PIX_FMT_FLAG_PAL || (desc->flags & FF_PSEUDOPAL && pointers[1])) { + if (desc->flags & AV_PIX_FMT_FLAG_PAL || desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) { avpriv_set_systematic_pal2((uint32_t*)pointers[1], pix_fmt); if (align < 4) { av_log(NULL, AV_LOG_ERROR, "Formats with a palette require a minimum alignment of 4\n"); @@ -225,7 +225,7 @@ int av_image_alloc(uint8_t *pointers[4], int linesizes[4], } if ((desc->flags & AV_PIX_FMT_FLAG_PAL || - desc->flags & FF_PSEUDOPAL) && pointers[1] && + desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) && pointers[1] - pointers[0] > linesizes[0] * h) { /* zero-initialize the padding before the palette */ memset(pointers[0] + linesizes[0] * h, 0, @@ -242,10 +242,9 @@ typedef struct ImgUtils { } ImgUtils; static const AVClass imgutils_class = { - .class_name = "IMGUTILS", - .item_name = av_default_item_name, - .option = NULL, - .version = LIBAVUTIL_VERSION_INT, + .class_name = "IMGUTILS", + .item_name = av_default_item_name, + .version = LIBAVUTIL_VERSION_INT, .log_level_offset_offset = offsetof(ImgUtils, log_offset), .parent_log_context_offset = offsetof(ImgUtils, log_ctx), }; @@ -354,13 +353,12 @@ static void image_copy(uint8_t *dst_data[4], const ptrdiff_t dst_linesizes[4], return; if (desc->flags & AV_PIX_FMT_FLAG_PAL || - desc->flags & FF_PSEUDOPAL) { + desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) { copy_plane(dst_data[0], dst_linesizes[0], src_data[0], src_linesizes[0], width, height); /* copy the palette */ - if ((desc->flags & AV_PIX_FMT_FLAG_PAL) || (dst_data[1] && src_data[1])) - memcpy(dst_data[1], src_data[1], 4*256); + memcpy(dst_data[1], src_data[1], 4*256); } else { int i, planes_nb = 0; @@ -443,7 +441,7 @@ int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, return ret; // do not include palette for these pseudo-paletted formats - if (desc->flags & FF_PSEUDOPAL) + if (desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) return FFALIGN(width, align) * height; return av_image_fill_arrays(data, linesize, NULL, pix_fmt, diff --git a/media/ffvpx/libavutil/integer.c b/media/ffvpx/libavutil/integer.c index 890e314dc..6d6855fa1 100644 --- a/media/ffvpx/libavutil/integer.c +++ b/media/ffvpx/libavutil/integer.c @@ -164,3 +164,41 @@ int64_t av_i2int(AVInteger a){ } return out; } + +#ifdef TEST + +const uint8_t ff_log2_tab[256]={ + 0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 +}; + +int main(void){ + int64_t a,b; + + for(a=7; a<256*256*256; a+=13215){ + for(b=3; b<256*256*256; b+=27118){ + AVInteger ai= av_int2i(a); + AVInteger bi= av_int2i(b); + + av_assert0(av_i2int(ai) == a); + av_assert0(av_i2int(bi) == b); + av_assert0(av_i2int(av_add_i(ai,bi)) == a+b); + av_assert0(av_i2int(av_sub_i(ai,bi)) == a-b); + av_assert0(av_i2int(av_mul_i(ai,bi)) == a*b); + av_assert0(av_i2int(av_shr_i(ai, 9)) == a>>9); + av_assert0(av_i2int(av_shr_i(ai,-9)) == a<<9); + av_assert0(av_i2int(av_shr_i(ai, 17)) == a>>17); + av_assert0(av_i2int(av_shr_i(ai,-17)) == a<<17); + av_assert0(av_log2_i(ai) == av_log2(a)); + av_assert0(av_i2int(av_div_i(ai,bi)) == a/b); + } + } + return 0; +} +#endif diff --git a/media/ffvpx/libavutil/internal.h b/media/ffvpx/libavutil/internal.h index 06bd561e8..a2d73e3cc 100644 --- a/media/ffvpx/libavutil/internal.h +++ b/media/ffvpx/libavutil/internal.h @@ -43,7 +43,6 @@ #include "cpu.h" #include "dict.h" #include "macros.h" -#include "mem.h" #include "pixfmt.h" #include "version.h" @@ -63,10 +62,10 @@ #endif #endif -#if defined(_WIN32) && CONFIG_SHARED && !defined(BUILDING_avutil) -# define av_export_avutil __declspec(dllimport) +#if defined(_MSC_VER) && CONFIG_SHARED +# define av_export __declspec(dllimport) #else -# define av_export_avutil +# define av_export #endif #if HAVE_PRAGMA_DEPRECATED @@ -77,8 +76,8 @@ # define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:4996)) # define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop)) # else -# define FF_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") -# define FF_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic pop") +# define FF_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define FF_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic warning \"-Wdeprecated-declarations\"") # endif #else # define FF_DISABLE_DEPRECATION_WARNINGS @@ -111,30 +110,24 @@ DECLARE_ALIGNED(a, t, la_##v) s o; \ t (*v) o = la_##v -#define LOCAL_ALIGNED(a, t, v, ...) LOCAL_ALIGNED_##a(t, v, __VA_ARGS__) +#define LOCAL_ALIGNED(a, t, v, ...) E1(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)) -#if HAVE_LOCAL_ALIGNED -# define LOCAL_ALIGNED_4(t, v, ...) E1(LOCAL_ALIGNED_D(4, t, v, __VA_ARGS__,,)) -#else -# define LOCAL_ALIGNED_4(t, v, ...) E1(LOCAL_ALIGNED_A(4, t, v, __VA_ARGS__,,)) -#endif - -#if HAVE_LOCAL_ALIGNED +#if HAVE_LOCAL_ALIGNED_8 # define LOCAL_ALIGNED_8(t, v, ...) E1(LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,)) #else -# define LOCAL_ALIGNED_8(t, v, ...) E1(LOCAL_ALIGNED_A(8, t, v, __VA_ARGS__,,)) +# define LOCAL_ALIGNED_8(t, v, ...) LOCAL_ALIGNED(8, t, v, __VA_ARGS__) #endif -#if HAVE_LOCAL_ALIGNED +#if HAVE_LOCAL_ALIGNED_16 # define LOCAL_ALIGNED_16(t, v, ...) E1(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)) #else -# define LOCAL_ALIGNED_16(t, v, ...) E1(LOCAL_ALIGNED_A(16, t, v, __VA_ARGS__,,)) +# define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__) #endif -#if HAVE_LOCAL_ALIGNED +#if HAVE_LOCAL_ALIGNED_32 # define LOCAL_ALIGNED_32(t, v, ...) E1(LOCAL_ALIGNED_D(32, t, v, __VA_ARGS__,,)) #else -# define LOCAL_ALIGNED_32(t, v, ...) E1(LOCAL_ALIGNED_A(32, t, v, __VA_ARGS__,,)) +# define LOCAL_ALIGNED_32(t, v, ...) LOCAL_ALIGNED(32, t, v, __VA_ARGS__) #endif #define FF_ALLOC_OR_GOTO(ctx, p, size, label)\ @@ -360,13 +353,4 @@ void ff_check_pixfmt_descriptors(void); */ int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp); -// Helper macro for AV_PIX_FMT_FLAG_PSEUDOPAL deprecation. Code inside FFmpeg -// should always use FF_PSEUDOPAL. Once the public API flag gets removed, all -// code using it is dead code. -#if FF_API_PSEUDOPAL -#define FF_PSEUDOPAL AV_PIX_FMT_FLAG_PSEUDOPAL -#else -#define FF_PSEUDOPAL 0 -#endif - #endif /* AVUTIL_INTERNAL_H */ diff --git a/media/ffvpx/libavutil/intreadwrite.h b/media/ffvpx/libavutil/intreadwrite.h index 67c763b13..d54d4b91d 100644 --- a/media/ffvpx/libavutil/intreadwrite.h +++ b/media/ffvpx/libavutil/intreadwrite.h @@ -215,7 +215,7 @@ typedef union { * by per-arch headers. */ -#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__) union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias; union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias; @@ -224,7 +224,12 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; # define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) # define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) -#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_X64) || defined(_M_ARM64)) && AV_HAVE_FAST_UNALIGNED +#elif defined(__DECC) + +# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) +# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) + +#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_X64)) && AV_HAVE_FAST_UNALIGNED # define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) # define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) diff --git a/media/ffvpx/libavutil/log.c b/media/ffvpx/libavutil/log.c index 9b7d48487..be806202f 100644 --- a/media/ffvpx/libavutil/log.c +++ b/media/ffvpx/libavutil/log.c @@ -39,9 +39,11 @@ #include "common.h" #include "internal.h" #include "log.h" -#include "thread.h" -static AVMutex mutex = AV_MUTEX_INITIALIZER; +#if HAVE_PTHREADS +#include <pthread.h> +static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +#endif #define LINE_SZ 1024 @@ -55,7 +57,7 @@ static int av_log_level = AV_LOG_INFO; static int flags; #define NB_LEVELS 8 -#if defined(_WIN32) && HAVE_SETCONSOLETEXTATTRIBUTE +#if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE #include <windows.h> static const uint8_t color[16 + AV_CLASS_CATEGORY_NB] = { [AV_LOG_PANIC /8] = 12, @@ -122,7 +124,7 @@ static int use_color = -1; static void check_color_terminal(void) { -#if defined(_WIN32) && HAVE_SETCONSOLETEXTATTRIBUTE +#if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE CONSOLE_SCREEN_BUFFER_INFO con_info; con = GetStdHandle(STD_ERROR_HANDLE); use_color = (con != INVALID_HANDLE_VALUE) && !getenv("NO_COLOR") && @@ -157,7 +159,7 @@ static void colored_fputs(int level, int tint, const char *str) if (level == AV_LOG_INFO/8) local_use_color = 0; else local_use_color = use_color; -#if defined(_WIN32) && HAVE_SETCONSOLETEXTATTRIBUTE +#if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE if (local_use_color) SetConsoleTextAttribute(con, background | color[level]); fputs(str, stderr); @@ -266,10 +268,10 @@ static void format_line(void *avcl, int level, const char *fmt, va_list vl, av_bprintf(part+1, "[%s @ %p] ", avc->item_name(avcl), avcl); if(type) type[1] = get_category(avcl); - } - if (*print_prefix && (level > AV_LOG_QUIET) && (flags & AV_LOG_PRINT_LEVEL)) - av_bprintf(part+2, "[%s] ", get_level_str(level)); + if (flags & AV_LOG_PRINT_LEVEL) + av_bprintf(part+2, "[%s] ", get_level_str(level)); + } av_vbprintf(part+3, fmt, vl); @@ -315,7 +317,9 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl) if (level > av_log_level) return; - ff_mutex_lock(&mutex); +#if HAVE_PTHREADS + pthread_mutex_lock(&mutex); +#endif format_line(ptr, level, fmt, vl, part, &print_prefix, type); snprintf(line, sizeof(line), "%s%s%s%s", part[0].str, part[1].str, part[2].str, part[3].str); @@ -352,7 +356,9 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl) #endif end: av_bprint_finalize(part+3, NULL); - ff_mutex_unlock(&mutex); +#if HAVE_PTHREADS + pthread_mutex_unlock(&mutex); +#endif } static void (*av_log_callback)(void*, int, const char*, va_list) = diff --git a/media/ffvpx/libavutil/log.h b/media/ffvpx/libavutil/log.h index d9554e609..f0a57385d 100644 --- a/media/ffvpx/libavutil/log.h +++ b/media/ffvpx/libavutil/log.h @@ -334,6 +334,20 @@ void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, int av_log_format_line2(void *ptr, int level, const char *fmt, va_list vl, char *line, int line_size, int *print_prefix); +#if FF_API_DLOG +/** + * av_dlog macros + * @deprecated unused + * Useful to print debug messages that shouldn't get compiled in normally. + */ + +#ifdef DEBUG +# define av_dlog(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__) +#else +# define av_dlog(pctx, ...) do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) +#endif +#endif /* FF_API_DLOG */ + /** * Skip repeated messages, this requires the user app to use av_log() instead of * (f)printf as the 2 would otherwise interfere and lead to diff --git a/media/ffvpx/libavutil/mem.c b/media/ffvpx/libavutil/mem.c index 6149755a6..36740f115 100644 --- a/media/ffvpx/libavutil/mem.c +++ b/media/ffvpx/libavutil/mem.c @@ -61,7 +61,7 @@ void free(void *ptr); #include "mem_internal.h" -#define ALIGN (HAVE_AVX512 ? 64 : (HAVE_AVX ? 32 : 16)) +#define ALIGN (HAVE_AVX ? 32 : 16) /* NOTE: if you want to override these functions with your own * implementations (not recommended) you have to link libav* as @@ -181,20 +181,6 @@ int av_reallocp(void *ptr, size_t size) return 0; } -void *av_malloc_array(size_t nmemb, size_t size) -{ - if (!size || nmemb >= INT_MAX / size) - return NULL; - return av_malloc(nmemb * size); -} - -void *av_mallocz_array(size_t nmemb, size_t size) -{ - if (!size || nmemb >= INT_MAX / size) - return NULL; - return av_mallocz(nmemb * size); -} - void *av_realloc_array(void *ptr, size_t nmemb, size_t size) { if (!size || nmemb >= INT_MAX / size) @@ -463,15 +449,10 @@ void av_memcpy_backptr(uint8_t *dst, int back, int cnt) void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size) { - if (min_size <= *size) + if (min_size < *size) return ptr; - if (min_size > max_alloc_size - 32) { - *size = 0; - return NULL; - } - - min_size = FFMIN(max_alloc_size - 32, FFMAX(min_size + min_size / 16 + 32, min_size)); + min_size = FFMAX(min_size + min_size / 16 + 32, min_size); ptr = av_realloc(ptr, min_size); /* we could set this to the unmodified min_size but this is safer diff --git a/media/ffvpx/libavutil/mem.h b/media/ffvpx/libavutil/mem.h index 7e0b12a8a..527cd0319 100644 --- a/media/ffvpx/libavutil/mem.h +++ b/media/ffvpx/libavutil/mem.h @@ -74,19 +74,6 @@ */ /** - * @def DECLARE_ASM_ALIGNED(n,t,v) - * Declare an aligned variable appropriate for use in inline assembly code. - * - * @code{.c} - * DECLARE_ASM_ALIGNED(16, uint64_t, pw_08) = UINT64_C(0x0008000800080008); - * @endcode - * - * @param n Minimum alignment in bytes - * @param t Type of the variable (or array element) - * @param v Name of the variable - */ - -/** * @def DECLARE_ASM_CONST(n,t,v) * Declare a static constant aligned variable appropriate for use in inline * assembly code. @@ -102,23 +89,25 @@ #if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C) #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v +#elif defined(__TI_COMPILER_VERSION__) + #define DECLARE_ALIGNED(n,t,v) \ + AV_PRAGMA(DATA_ALIGN(v,n)) \ + t __attribute__((aligned(n))) v + #define DECLARE_ASM_CONST(n,t,v) \ + AV_PRAGMA(DATA_ALIGN(v,n)) \ + static const t __attribute__((aligned(n))) v #elif defined(__DJGPP__) #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (FFMIN(n, 16)))) v - #define DECLARE_ASM_ALIGNED(n,t,v) t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v #elif defined(__GNUC__) || defined(__clang__) #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_ALIGNED(n,t,v) t av_used __attribute__ ((aligned (n))) v #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v #elif defined(_MSC_VER) #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v - #define DECLARE_ASM_ALIGNED(n,t,v) __declspec(align(n)) t v #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v #else #define DECLARE_ALIGNED(n,t,v) t v - #define DECLARE_ASM_ALIGNED(n,t,v) t v #define DECLARE_ASM_CONST(n,t,v) static const t v #endif @@ -217,7 +206,12 @@ void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); * be allocated * @see av_malloc() */ -av_alloc_size(1, 2) void *av_malloc_array(size_t nmemb, size_t size); +av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t size) +{ + if (!size || nmemb >= INT_MAX / size) + return NULL; + return av_malloc(nmemb * size); +} /** * Allocate a memory block for an array with av_mallocz(). @@ -232,7 +226,12 @@ av_alloc_size(1, 2) void *av_malloc_array(size_t nmemb, size_t size); * @see av_mallocz() * @see av_malloc_array() */ -av_alloc_size(1, 2) void *av_mallocz_array(size_t nmemb, size_t size); +av_alloc_size(1, 2) static inline void *av_mallocz_array(size_t nmemb, size_t size) +{ + if (!size || nmemb >= INT_MAX / size) + return NULL; + return av_mallocz(nmemb * size); +} /** * Non-inlined equivalent of av_mallocz_array(). diff --git a/media/ffvpx/libavutil/moz.build b/media/ffvpx/libavutil/moz.build index 040ab76ba..201b62fed 100644 --- a/media/ffvpx/libavutil/moz.build +++ b/media/ffvpx/libavutil/moz.build @@ -12,6 +12,7 @@ if CONFIG['FFVPX_ASFLAGS']: SharedLibrary('mozavutil') SOURCES += [ 'adler32.c', + 'atomic.c', 'avstring.c', 'base64.c', 'bprint.c', @@ -28,7 +29,6 @@ SOURCES += [ 'fixed_dsp.c', 'float_dsp.c', 'frame.c', - 'hwcontext.c', 'imgutils.c', 'integer.c', 'intmath.c', diff --git a/media/ffvpx/libavutil/opt.c b/media/ffvpx/libavutil/opt.c index 3b0aab4ee..df88663e3 100644 --- a/media/ffvpx/libavutil/opt.c +++ b/media/ffvpx/libavutil/opt.c @@ -1181,7 +1181,6 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit, av_log(av_log_obj, AV_LOG_INFO, "%c", (opt->flags & AV_OPT_FLAG_SUBTITLE_PARAM) ? 'S' : '.'); av_log(av_log_obj, AV_LOG_INFO, "%c", (opt->flags & AV_OPT_FLAG_EXPORT) ? 'X' : '.'); av_log(av_log_obj, AV_LOG_INFO, "%c", (opt->flags & AV_OPT_FLAG_READONLY) ? 'R' : '.'); - av_log(av_log_obj, AV_LOG_INFO, "%c", (opt->flags & AV_OPT_FLAG_BSF_PARAM) ? 'B' : '.'); if (opt->help) av_log(av_log_obj, AV_LOG_INFO, " %s", opt->help); diff --git a/media/ffvpx/libavutil/opt.h b/media/ffvpx/libavutil/opt.h index 07da68ea2..0d893795d 100644 --- a/media/ffvpx/libavutil/opt.h +++ b/media/ffvpx/libavutil/opt.h @@ -229,15 +229,15 @@ enum AVOptionType{ AV_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length AV_OPT_TYPE_DICT, AV_OPT_TYPE_UINT64, - AV_OPT_TYPE_CONST, - AV_OPT_TYPE_IMAGE_SIZE, ///< offset must point to two consecutive integers - AV_OPT_TYPE_PIXEL_FMT, - AV_OPT_TYPE_SAMPLE_FMT, - AV_OPT_TYPE_VIDEO_RATE, ///< offset must point to AVRational - AV_OPT_TYPE_DURATION, - AV_OPT_TYPE_COLOR, - AV_OPT_TYPE_CHANNEL_LAYOUT, - AV_OPT_TYPE_BOOL, + AV_OPT_TYPE_CONST = 128, + AV_OPT_TYPE_IMAGE_SIZE = MKBETAG('S','I','Z','E'), ///< offset must point to two consecutive integers + AV_OPT_TYPE_PIXEL_FMT = MKBETAG('P','F','M','T'), + AV_OPT_TYPE_SAMPLE_FMT = MKBETAG('S','F','M','T'), + AV_OPT_TYPE_VIDEO_RATE = MKBETAG('V','R','A','T'), ///< offset must point to AVRational + AV_OPT_TYPE_DURATION = MKBETAG('D','U','R',' '), + AV_OPT_TYPE_COLOR = MKBETAG('C','O','L','R'), + AV_OPT_TYPE_CHANNEL_LAYOUT = MKBETAG('C','H','L','A'), + AV_OPT_TYPE_BOOL = MKBETAG('B','O','O','L'), }; /** @@ -275,6 +275,9 @@ typedef struct AVOption { int flags; #define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding #define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding +#if FF_API_OPT_TYPE_METADATA +#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ... +#endif #define AV_OPT_FLAG_AUDIO_PARAM 8 #define AV_OPT_FLAG_VIDEO_PARAM 16 #define AV_OPT_FLAG_SUBTITLE_PARAM 32 @@ -287,7 +290,6 @@ typedef struct AVOption { * This flag only makes sense when AV_OPT_FLAG_EXPORT is also set. */ #define AV_OPT_FLAG_READONLY 128 -#define AV_OPT_FLAG_BSF_PARAM (1<<8) ///< a generic parameter which can be set by the user for bit stream filtering #define AV_OPT_FLAG_FILTERING_PARAM (1<<16) ///< a generic parameter which can be set by the user for filtering //FIXME think about enc-audio, ... style flags diff --git a/media/ffvpx/libavutil/parseutils.c b/media/ffvpx/libavutil/parseutils.c index 9de19d1c1..be4ea1ee1 100644 --- a/media/ffvpx/libavutil/parseutils.c +++ b/media/ffvpx/libavutil/parseutils.c @@ -590,7 +590,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) int64_t t, now64; time_t now; struct tm dt = { 0 }, tmbuf; - int today = 0, negative = 0, microseconds = 0, suffix = 1000000; + int today = 0, negative = 0, microseconds = 0; int i; static const char * const date_fmt[] = { "%Y - %m - %d", @@ -689,16 +689,6 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) if (duration) { t = dt.tm_hour * 3600 + dt.tm_min * 60 + dt.tm_sec; - if (q[0] == 'm' && q[1] == 's') { - suffix = 1000; - microseconds /= 1000; - q += 2; - } else if (q[0] == 'u' && q[1] == 's') { - suffix = 1; - microseconds = 0; - q += 2; - } else if (*q == 's') - q++; } else { int is_utc = *q == 'Z' || *q == 'z'; int tzoffset = 0; @@ -734,7 +724,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) if (*q) return AVERROR(EINVAL); - t *= suffix; + t *= 1000000; t += microseconds; *timeval = negative ? -t : t; return 0; diff --git a/media/ffvpx/libavutil/pixdesc.c b/media/ffvpx/libavutil/pixdesc.c index 8ed52751c..2cfab89c0 100644 --- a/media/ffvpx/libavutil/pixdesc.c +++ b/media/ffvpx/libavutil/pixdesc.c @@ -257,7 +257,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .comp = { { 0, 1, 0, 0, 8, 0, 7, 1 }, /* Y */ }, - .flags = FF_PSEUDOPAL, + .flags = AV_PIX_FMT_FLAG_PSEUDOPAL, .alias = "gray8,y8", }, [AV_PIX_FMT_MONOWHITE] = { @@ -326,10 +326,22 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR, }, +#if FF_API_XVMC + [AV_PIX_FMT_XVMC_MPEG2_MC] = { + .name = "xvmcmc", + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, + [AV_PIX_FMT_XVMC_MPEG2_IDCT] = { + .name = "xvmcidct", + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, +#endif /* FF_API_XVMC */ +#if !FF_API_XVMC [AV_PIX_FMT_XVMC] = { .name = "xvmc", .flags = AV_PIX_FMT_FLAG_HWACCEL, }, +#endif /* !FF_API_XVMC */ [AV_PIX_FMT_UYVY422] = { .name = "uyvy422", .nb_components = 3, @@ -362,7 +374,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { { 0, 1, 0, 3, 3, 0, 2, 1 }, /* G */ { 0, 1, 0, 6, 2, 0, 1, 1 }, /* B */ }, - .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL, + .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL, }, [AV_PIX_FMT_BGR4] = { .name = "bgr4", @@ -386,7 +398,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { { 0, 1, 0, 1, 2, 0, 1, 1 }, /* G */ { 0, 1, 0, 3, 1, 0, 0, 1 }, /* B */ }, - .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL, + .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL, }, [AV_PIX_FMT_RGB8] = { .name = "rgb8", @@ -398,7 +410,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { { 0, 1, 0, 3, 3, 0, 2, 1 }, /* G */ { 0, 1, 0, 0, 3, 0, 2, 1 }, /* B */ }, - .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL, + .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL, }, [AV_PIX_FMT_RGB4] = { .name = "rgb4", @@ -422,7 +434,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { { 0, 1, 0, 1, 2, 0, 1, 1 }, /* G */ { 0, 1, 0, 0, 1, 0, 0, 1 }, /* B */ }, - .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL, + .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL, }, [AV_PIX_FMT_NV12] = { .name = "nv12", @@ -977,6 +989,44 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA, }, +#if FF_API_VDPAU + [AV_PIX_FMT_VDPAU_H264] = { + .name = "vdpau_h264", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, + [AV_PIX_FMT_VDPAU_MPEG1] = { + .name = "vdpau_mpeg1", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, + [AV_PIX_FMT_VDPAU_MPEG2] = { + .name = "vdpau_mpeg2", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, + [AV_PIX_FMT_VDPAU_WMV3] = { + .name = "vdpau_wmv3", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, + [AV_PIX_FMT_VDPAU_VC1] = { + .name = "vdpau_vc1", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, + [AV_PIX_FMT_VDPAU_MPEG4] = { + .name = "vdpau_mpeg4", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, +#endif [AV_PIX_FMT_RGB48BE] = { .name = "rgb48be", .nb_components = 3, @@ -1620,6 +1670,12 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .log2_chroma_h = 1, .flags = AV_PIX_FMT_FLAG_HWACCEL, }, + [AV_PIX_FMT_VDA_VLD] = { + .name = "vda_vld", + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, [AV_PIX_FMT_YA8] = { .name = "ya8", .nb_components = 2, @@ -1973,6 +2029,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE, }, + [AV_PIX_FMT_VDA] = { + .name = "vda", + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, [AV_PIX_FMT_QSV] = { .name = "qsv", .flags = AV_PIX_FMT_FLAG_HWACCEL, @@ -2181,10 +2241,6 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .name = "drm_prime", .flags = AV_PIX_FMT_FLAG_HWACCEL, }, - [AV_PIX_FMT_OPENCL] = { - .name = "opencl", - .flags = AV_PIX_FMT_FLAG_HWACCEL, - }, }; #if FF_API_PLUS1_MINUS1 FF_ENABLE_DEPRECATION_WARNINGS diff --git a/media/ffvpx/libavutil/pixdesc.h b/media/ffvpx/libavutil/pixdesc.h index 1ab372782..fc3737c4a 100644 --- a/media/ffvpx/libavutil/pixdesc.h +++ b/media/ffvpx/libavutil/pixdesc.h @@ -154,14 +154,6 @@ typedef struct AVPixFmtDescriptor { * in some cases be simpler. Or the data can be interpreted purely based on * the pixel format without using the palette. * An example of a pseudo-paletted format is AV_PIX_FMT_GRAY8 - * - * @deprecated This flag is deprecated, and will be removed. When it is removed, - * the extra palette allocation in AVFrame.data[1] is removed as well. Only - * actual paletted formats (as indicated by AV_PIX_FMT_FLAG_PAL) will have a - * palette. Starting with FFmpeg versions which have this flag deprecated, the - * extra "pseudo" palette is already ignored, and API users are not required to - * allocate a palette for AV_PIX_FMT_FLAG_PSEUDOPAL formats (it was required - * before the deprecation, though). */ #define AV_PIX_FMT_FLAG_PSEUDOPAL (1 << 6) @@ -233,6 +225,11 @@ enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc); * Utility function to access log2_chroma_w log2_chroma_h from * the pixel format AVPixFmtDescriptor. * + * See av_get_chroma_sub_sample() for a function that asserts a + * valid pixel format instead of returning an error code. + * Its recommended that you use avcodec_get_chroma_sub_sample unless + * you do check the return code! + * * @param[in] pix_fmt the pixel format * @param[out] h_shift store log2_chroma_w (horizontal/width shift) * @param[out] v_shift store log2_chroma_h (vertical/height shift) diff --git a/media/ffvpx/libavutil/pixfmt.h b/media/ffvpx/libavutil/pixfmt.h index e184a5667..24889c8e5 100644 --- a/media/ffvpx/libavutil/pixfmt.h +++ b/media/ffvpx/libavutil/pixfmt.h @@ -74,6 +74,11 @@ enum AVPixelFormat { AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range +#if FF_API_XVMC + AV_PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing + AV_PIX_FMT_XVMC_MPEG2_IDCT, + AV_PIX_FMT_XVMC = AV_PIX_FMT_XVMC_MPEG2_IDCT, +#endif /* FF_API_XVMC */ AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) @@ -95,6 +100,13 @@ enum AVPixelFormat { AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) +#if FF_API_VDPAU + AV_PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + AV_PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + AV_PIX_FMT_VDPAU_MPEG2,///< MPEG-2 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + AV_PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + AV_PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers +#endif AV_PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian AV_PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian @@ -130,6 +142,9 @@ enum AVPixelFormat { AV_PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian AV_PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian AV_PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian +#if FF_API_VDPAU + AV_PIX_FMT_VDPAU_MPEG4, ///< MPEG-4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers +#endif AV_PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer AV_PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined @@ -161,6 +176,7 @@ enum AVPixelFormat { AV_PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian AV_PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian AV_PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_VDA_VLD, ///< hardware decoding through VDA AV_PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp AV_PIX_FMT_GBR24P = AV_PIX_FMT_GBRP, // alias for #AV_PIX_FMT_GBRP AV_PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big-endian @@ -205,6 +221,8 @@ enum AVPixelFormat { AV_PIX_FMT_YVYU422, ///< packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb + AV_PIX_FMT_VDA, ///< HW acceleration through VDA, data[3] contains a CVPixelBufferRef + AV_PIX_FMT_YA16BE, ///< 16 bits gray, 16 bits alpha (big-endian) AV_PIX_FMT_YA16LE, ///< 16 bits gray, 16 bits alpha (little-endian) @@ -230,7 +248,7 @@ enum AVPixelFormat { */ AV_PIX_FMT_CUDA, - AV_PIX_FMT_0RGB, ///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined + AV_PIX_FMT_0RGB=0x123+4,///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined AV_PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined AV_PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined AV_PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined @@ -265,9 +283,9 @@ enum AVPixelFormat { AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian */ AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian */ AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian */ - +#if !FF_API_XVMC AV_PIX_FMT_XVMC,///< XVideo Motion Acceleration via common packet passing - +#endif /* !FF_API_XVMC */ AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian @@ -322,13 +340,6 @@ enum AVPixelFormat { * data[0] points to an AVDRMFrameDescriptor. */ AV_PIX_FMT_DRM_PRIME, - /** - * Hardware surfaces for OpenCL. - * - * data[i] contain 2D image objects (typed in C as cl_mem, used - * in OpenCL as image2d_t) for each plane of the surface. - */ - AV_PIX_FMT_OPENCL, AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions }; diff --git a/media/ffvpx/libavutil/slicethread.c b/media/ffvpx/libavutil/slicethread.c index dfbe551ef..c43f87a2a 100644 --- a/media/ffvpx/libavutil/slicethread.c +++ b/media/ffvpx/libavutil/slicethread.c @@ -99,6 +99,10 @@ int avpriv_slicethread_create(AVSliceThread **pctx, void *priv, AVSliceThread *ctx; int nb_workers, i; +#if HAVE_W32THREADS + w32thread_init(); +#endif + av_assert0(nb_threads >= 0); if (!nb_threads) { int nb_cpus = av_cpu_count(); diff --git a/media/ffvpx/libavutil/thread.h b/media/ffvpx/libavutil/thread.h index cc5272d37..f108e2005 100644 --- a/media/ffvpx/libavutil/thread.h +++ b/media/ffvpx/libavutil/thread.h @@ -134,7 +134,6 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_ #endif #define AVMutex pthread_mutex_t -#define AV_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER #define ff_mutex_init pthread_mutex_init #define ff_mutex_lock pthread_mutex_lock @@ -149,12 +148,11 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_ #else #define AVMutex char -#define AV_MUTEX_INITIALIZER 0 -static inline int ff_mutex_init(AVMutex *mutex, const void *attr){ return 0; } -static inline int ff_mutex_lock(AVMutex *mutex){ return 0; } -static inline int ff_mutex_unlock(AVMutex *mutex){ return 0; } -static inline int ff_mutex_destroy(AVMutex *mutex){ return 0; } +#define ff_mutex_init(mutex, attr) (0) +#define ff_mutex_lock(mutex) (0) +#define ff_mutex_unlock(mutex) (0) +#define ff_mutex_destroy(mutex) (0) #define AVOnce char #define AV_ONCE_INIT 0 diff --git a/media/ffvpx/libavutil/timecode.c b/media/ffvpx/libavutil/timecode.c index 60077ba0c..c0c67c847 100644 --- a/media/ffvpx/libavutil/timecode.c +++ b/media/ffvpx/libavutil/timecode.c @@ -155,7 +155,7 @@ static int check_fps(int fps) static int check_timecode(void *log_ctx, AVTimecode *tc) { if ((int)tc->fps <= 0) { - av_log(log_ctx, AV_LOG_ERROR, "Valid timecode frame rate must be specified. Minimum value is 1\n"); + av_log(log_ctx, AV_LOG_ERROR, "Timecode frame rate must be specified\n"); return AVERROR(EINVAL); } if ((tc->flags & AV_TIMECODE_FLAG_DROPFRAME) && tc->fps != 30 && tc->fps != 60) { @@ -214,7 +214,7 @@ int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *st tc->start = (hh*3600 + mm*60 + ss) * tc->fps + ff; if (tc->flags & AV_TIMECODE_FLAG_DROPFRAME) { /* adjust frame number */ int tmins = 60*hh + mm; - tc->start -= (tc->fps == 30 ? 2 : 4) * (tmins - tmins/10); + tc->start -= 2 * (tmins - tmins/10); } return 0; } diff --git a/media/ffvpx/libavutil/timer.h b/media/ffvpx/libavutil/timer.h index 0bb353cfc..f7ab455df 100644 --- a/media/ffvpx/libavutil/timer.h +++ b/media/ffvpx/libavutil/timer.h @@ -42,7 +42,7 @@ #include <stdint.h> #include <inttypes.h> -#if HAVE_MACH_ABSOLUTE_TIME +#if HAVE_MACH_MACH_TIME_H #include <mach/mach_time.h> #endif diff --git a/media/ffvpx/libavutil/utils.c b/media/ffvpx/libavutil/utils.c index 230081ea4..2c170db2e 100644 --- a/media/ffvpx/libavutil/utils.c +++ b/media/ffvpx/libavutil/utils.c @@ -41,6 +41,9 @@ unsigned avutil_version(void) if (checks_done) return LIBAVUTIL_VERSION_INT; +#if FF_API_VDPAU + av_assert0(AV_PIX_FMT_VDA_VLD == 81); //check if the pix fmt enum has not had anything inserted or removed by mistake +#endif av_assert0(AV_SAMPLE_FMT_DBLP == 9); av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4); av_assert0(AV_PICTURE_TYPE_BI == 7); diff --git a/media/ffvpx/libavutil/version.h b/media/ffvpx/libavutil/version.h index 3a63e6355..f594dc069 100644 --- a/media/ffvpx/libavutil/version.h +++ b/media/ffvpx/libavutil/version.h @@ -78,8 +78,9 @@ * @{ */ -#define LIBAVUTIL_VERSION_MAJOR 56 -#define LIBAVUTIL_VERSION_MINOR 14 + +#define LIBAVUTIL_VERSION_MAJOR 55 +#define LIBAVUTIL_VERSION_MINOR 78 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ @@ -105,29 +106,38 @@ * @{ */ +#ifndef FF_API_VDPAU +#define FF_API_VDPAU (LIBAVUTIL_VERSION_MAJOR < 56) +#endif +#ifndef FF_API_XVMC +#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 56) +#endif +#ifndef FF_API_OPT_TYPE_METADATA +#define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 56) +#endif +#ifndef FF_API_DLOG +#define FF_API_DLOG (LIBAVUTIL_VERSION_MAJOR < 56) +#endif #ifndef FF_API_VAAPI -#define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 57) +#define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 56) #endif #ifndef FF_API_FRAME_QP -#define FF_API_FRAME_QP (LIBAVUTIL_VERSION_MAJOR < 57) +#define FF_API_FRAME_QP (LIBAVUTIL_VERSION_MAJOR < 56) #endif #ifndef FF_API_PLUS1_MINUS1 -#define FF_API_PLUS1_MINUS1 (LIBAVUTIL_VERSION_MAJOR < 57) +#define FF_API_PLUS1_MINUS1 (LIBAVUTIL_VERSION_MAJOR < 56) #endif #ifndef FF_API_ERROR_FRAME -#define FF_API_ERROR_FRAME (LIBAVUTIL_VERSION_MAJOR < 57) +#define FF_API_ERROR_FRAME (LIBAVUTIL_VERSION_MAJOR < 56) +#endif +#ifndef FF_API_CRC_BIG_TABLE +#define FF_API_CRC_BIG_TABLE (LIBAVUTIL_VERSION_MAJOR < 56) #endif #ifndef FF_API_PKT_PTS -#define FF_API_PKT_PTS (LIBAVUTIL_VERSION_MAJOR < 57) +#define FF_API_PKT_PTS (LIBAVUTIL_VERSION_MAJOR < 56) #endif #ifndef FF_API_CRYPTO_SIZE_T -#define FF_API_CRYPTO_SIZE_T (LIBAVUTIL_VERSION_MAJOR < 57) -#endif -#ifndef FF_API_FRAME_GET_SET -#define FF_API_FRAME_GET_SET (LIBAVUTIL_VERSION_MAJOR < 57) -#endif -#ifndef FF_API_PSEUDOPAL -#define FF_API_PSEUDOPAL (LIBAVUTIL_VERSION_MAJOR < 57) +#define FF_API_CRYPTO_SIZE_T (LIBAVUTIL_VERSION_MAJOR < 56) #endif diff --git a/media/ffvpx/libavutil/x86/cpu.c b/media/ffvpx/libavutil/x86/cpu.c index aca893174..f33088c8c 100644 --- a/media/ffvpx/libavutil/x86/cpu.c +++ b/media/ffvpx/libavutil/x86/cpu.c @@ -97,7 +97,6 @@ int ff_get_cpu_flags_x86(void) int max_std_level, max_ext_level, std_caps = 0, ext_caps = 0; int family = 0, model = 0; union { int i[3]; char c[12]; } vendor; - int xcr0_lo = 0, xcr0_hi = 0; if (!cpuid_test()) return 0; /* CPUID not supported */ @@ -133,8 +132,8 @@ int ff_get_cpu_flags_x86(void) /* Check OXSAVE and AVX bits */ if ((ecx & 0x18000000) == 0x18000000) { /* Check for OS support */ - xgetbv(0, xcr0_lo, xcr0_hi); - if ((xcr0_lo & 0x6) == 0x6) { + xgetbv(0, eax, edx); + if ((eax & 0x6) == 0x6) { rval |= AV_CPU_FLAG_AVX; if (ecx & 0x00001000) rval |= AV_CPU_FLAG_FMA3; @@ -148,13 +147,6 @@ int ff_get_cpu_flags_x86(void) #if HAVE_AVX2 if ((rval & AV_CPU_FLAG_AVX) && (ebx & 0x00000020)) rval |= AV_CPU_FLAG_AVX2; -#if HAVE_AVX512 /* F, CD, BW, DQ, VL */ - if ((xcr0_lo & 0xe0) == 0xe0) { /* OPMASK/ZMM state */ - if ((rval & AV_CPU_FLAG_AVX2) && (ebx & 0xd0030000) == 0xd0030000) - rval |= AV_CPU_FLAG_AVX512; - - } -#endif /* HAVE_AVX512 */ #endif /* HAVE_AVX2 */ /* BMI1/2 don't need OS support */ if (ebx & 0x00000008) { @@ -246,8 +238,6 @@ size_t ff_get_cpu_max_align_x86(void) { int flags = av_get_cpu_flags(); - if (flags & AV_CPU_FLAG_AVX512) - return 64; if (flags & (AV_CPU_FLAG_AVX2 | AV_CPU_FLAG_AVX | AV_CPU_FLAG_XOP | diff --git a/media/ffvpx/libavutil/x86/cpu.h b/media/ffvpx/libavutil/x86/cpu.h index 937c697fa..309b8e746 100644 --- a/media/ffvpx/libavutil/x86/cpu.h +++ b/media/ffvpx/libavutil/x86/cpu.h @@ -19,6 +19,7 @@ #ifndef AVUTIL_X86_CPU_H #define AVUTIL_X86_CPU_H +#include "config.h" #include "libavutil/cpu.h" #include "libavutil/cpu_internal.h" @@ -49,7 +50,6 @@ #define X86_FMA4(flags) CPUEXT(flags, FMA4) #define X86_AVX2(flags) CPUEXT(flags, AVX2) #define X86_AESNI(flags) CPUEXT(flags, AESNI) -#define X86_AVX512(flags) CPUEXT(flags, AVX512) #define EXTERNAL_AMD3DNOW(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOW) #define EXTERNAL_AMD3DNOWEXT(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AMD3DNOWEXT) @@ -79,7 +79,6 @@ #define EXTERNAL_AVX2_FAST(flags) CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, AVX2, AVX) #define EXTERNAL_AVX2_SLOW(flags) CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, AVX2, AVX) #define EXTERNAL_AESNI(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI) -#define EXTERNAL_AVX512(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AVX512) #define INLINE_AMD3DNOW(flags) CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOW) #define INLINE_AMD3DNOWEXT(flags) CPUEXT_SUFFIX(flags, _INLINE, AMD3DNOWEXT) diff --git a/media/ffvpx/libavutil/x86/intmath.h b/media/ffvpx/libavutil/x86/intmath.h index 40743fd13..e83971c08 100644 --- a/media/ffvpx/libavutil/x86/intmath.h +++ b/media/ffvpx/libavutil/x86/intmath.h @@ -47,8 +47,7 @@ static av_always_inline av_const int ff_log2_x86(unsigned int v) # endif # define ff_log2_16bit av_log2 -#if defined(__INTEL_COMPILER) || (defined(_MSC_VER) && (_MSC_VER >= 1700) && \ - (defined(__BMI__) || !defined(__clang__))) +#if defined(__INTEL_COMPILER) || (defined(_MSC_VER) && (_MSC_VER >= 1700)) # define ff_ctz(v) _tzcnt_u32(v) # if ARCH_X86_64 diff --git a/media/ffvpx/libavutil/x86/x86inc.asm b/media/ffvpx/libavutil/x86/x86inc.asm index 5044ee86f..6a054a3e0 100644 --- a/media/ffvpx/libavutil/x86/x86inc.asm +++ b/media/ffvpx/libavutil/x86/x86inc.asm @@ -1,12 +1,12 @@ ;***************************************************************************** ;* x86inc.asm: x264asm abstraction layer ;***************************************************************************** -;* Copyright (C) 2005-2018 x264 project +;* Copyright (C) 2005-2017 x264 project ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> -;* Henrik Gramner <henrik@gramner.com> ;* Anton Mitrofanov <BugMaster@narod.ru> ;* Fiona Glaser <fiona@x264.com> +;* Henrik Gramner <henrik@gramner.com> ;* ;* Permission to use, copy, modify, and/or distribute this software for any ;* purpose with or without fee is hereby granted, provided that the above @@ -90,10 +90,6 @@ SECTION .text %elifidn __OUTPUT_FORMAT__,coff SECTION .text - %elifidn __OUTPUT_FORMAT__,win32 - SECTION .rdata align=%1 - %elif WIN64 - SECTION .rdata align=%1 %else SECTION .rodata align=%1 %endif @@ -341,8 +337,6 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 %endmacro %define required_stack_alignment ((mmsize + 15) & ~15) -%define vzeroupper_required (mmsize > 16 && (ARCH_X86_64 == 0 || xmm_regs_used > 16 || notcpuflag(avx512))) -%define high_mm_regs (16*cpuflag(avx512)) %macro ALLOC_STACK 1-2 0 ; stack_size, n_xmm_regs (for win64 only) %ifnum %1 @@ -456,16 +450,15 @@ DECLARE_REG 14, R13, 120 %macro WIN64_PUSH_XMM 0 ; Use the shadow space to store XMM6 and XMM7, the rest needs stack space allocated. - %if xmm_regs_used > 6 + high_mm_regs + %if xmm_regs_used > 6 movaps [rstk + stack_offset + 8], xmm6 %endif - %if xmm_regs_used > 7 + high_mm_regs + %if xmm_regs_used > 7 movaps [rstk + stack_offset + 24], xmm7 %endif - %assign %%xmm_regs_on_stack xmm_regs_used - high_mm_regs - 8 - %if %%xmm_regs_on_stack > 0 + %if xmm_regs_used > 8 %assign %%i 8 - %rep %%xmm_regs_on_stack + %rep xmm_regs_used-8 movaps [rsp + (%%i-8)*16 + stack_size + 32], xmm %+ %%i %assign %%i %%i+1 %endrep @@ -474,11 +467,10 @@ DECLARE_REG 14, R13, 120 %macro WIN64_SPILL_XMM 1 %assign xmm_regs_used %1 - ASSERT xmm_regs_used <= 16 + high_mm_regs - %assign %%xmm_regs_on_stack xmm_regs_used - high_mm_regs - 8 - %if %%xmm_regs_on_stack > 0 + ASSERT xmm_regs_used <= 16 + %if xmm_regs_used > 8 ; Allocate stack space for callee-saved xmm registers plus shadow space and align the stack. - %assign %%pad %%xmm_regs_on_stack*16 + 32 + %assign %%pad (xmm_regs_used-8)*16 + 32 %assign stack_size_padded %%pad + ((-%%pad-stack_offset-gprsize) & (STACK_ALIGNMENT-1)) SUB rsp, stack_size_padded %endif @@ -487,10 +479,9 @@ DECLARE_REG 14, R13, 120 %macro WIN64_RESTORE_XMM_INTERNAL 0 %assign %%pad_size 0 - %assign %%xmm_regs_on_stack xmm_regs_used - high_mm_regs - 8 - %if %%xmm_regs_on_stack > 0 - %assign %%i xmm_regs_used - high_mm_regs - %rep %%xmm_regs_on_stack + %if xmm_regs_used > 8 + %assign %%i xmm_regs_used + %rep xmm_regs_used-8 %assign %%i %%i-1 movaps xmm %+ %%i, [rsp + (%%i-8)*16 + stack_size + 32] %endrep @@ -503,10 +494,10 @@ DECLARE_REG 14, R13, 120 %assign %%pad_size stack_size_padded %endif %endif - %if xmm_regs_used > 7 + high_mm_regs + %if xmm_regs_used > 7 movaps xmm7, [rsp + stack_offset - %%pad_size + 24] %endif - %if xmm_regs_used > 6 + high_mm_regs + %if xmm_regs_used > 6 movaps xmm6, [rsp + stack_offset - %%pad_size + 8] %endif %endmacro @@ -518,12 +509,12 @@ DECLARE_REG 14, R13, 120 %assign xmm_regs_used 0 %endmacro -%define has_epilogue regs_used > 7 || stack_size > 0 || vzeroupper_required || xmm_regs_used > 6+high_mm_regs +%define has_epilogue regs_used > 7 || xmm_regs_used > 6 || mmsize == 32 || stack_size > 0 %macro RET 0 WIN64_RESTORE_XMM_INTERNAL POP_IF_USED 14, 13, 12, 11, 10, 9, 8, 7 - %if vzeroupper_required + %if mmsize == 32 vzeroupper %endif AUTO_REP_RET @@ -547,10 +538,9 @@ DECLARE_REG 12, R15, 56 DECLARE_REG 13, R12, 64 DECLARE_REG 14, R13, 72 -%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... +%macro PROLOGUE 2-5+ ; #args, #regs, #xmm_regs, [stack_size,] arg_names... %assign num_args %1 %assign regs_used %2 - %assign xmm_regs_used %3 ASSERT regs_used >= num_args SETUP_STACK_POINTER %4 ASSERT regs_used <= 15 @@ -560,7 +550,7 @@ DECLARE_REG 14, R13, 72 DEFINE_ARGS_INTERNAL %0, %4, %5 %endmacro -%define has_epilogue regs_used > 9 || stack_size > 0 || vzeroupper_required +%define has_epilogue regs_used > 9 || mmsize == 32 || stack_size > 0 %macro RET 0 %if stack_size_padded > 0 @@ -571,7 +561,7 @@ DECLARE_REG 14, R13, 72 %endif %endif POP_IF_USED 14, 13, 12, 11, 10, 9 - %if vzeroupper_required + %if mmsize == 32 vzeroupper %endif AUTO_REP_RET @@ -616,7 +606,7 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 DEFINE_ARGS_INTERNAL %0, %4, %5 %endmacro -%define has_epilogue regs_used > 3 || stack_size > 0 || vzeroupper_required +%define has_epilogue regs_used > 3 || mmsize == 32 || stack_size > 0 %macro RET 0 %if stack_size_padded > 0 @@ -627,7 +617,7 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 %endif %endif POP_IF_USED 6, 5, 4, 3 - %if vzeroupper_required + %if mmsize == 32 vzeroupper %endif AUTO_REP_RET @@ -737,22 +727,12 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %assign stack_offset 0 ; stack pointer offset relative to the return address %assign stack_size 0 ; amount of stack space that can be freely used inside a function %assign stack_size_padded 0 ; total amount of allocated stack space, including space for callee-saved xmm registers on WIN64 and alignment padding - %assign xmm_regs_used 0 ; number of XMM registers requested, used for dealing with callee-saved registers on WIN64 and vzeroupper + %assign xmm_regs_used 0 ; number of XMM registers requested, used for dealing with callee-saved registers on WIN64 %ifnidn %3, "" PROLOGUE %3 %endif %endmacro -; Create a global symbol from a local label with the correct name mangling and type -%macro cglobal_label 1 - %if FORMAT_ELF - global current_function %+ %1:function hidden - %else - global current_function %+ %1 - %endif - %1: -%endmacro - %macro cextern 1 %xdefine %1 mangle(private_prefix %+ _ %+ %1) CAT_XDEFINE cglobaled_, %1, 1 @@ -823,10 +803,10 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %assign cpuflags_bmi1 (1<<17)| cpuflags_avx|cpuflags_lzcnt %assign cpuflags_bmi2 (1<<18)| cpuflags_bmi1 %assign cpuflags_avx2 (1<<19)| cpuflags_fma3|cpuflags_bmi2 -%assign cpuflags_avx512 (1<<20)| cpuflags_avx2 ; F, CD, BW, DQ, VL -%assign cpuflags_cache32 (1<<21) -%assign cpuflags_cache64 (1<<22) +%assign cpuflags_cache32 (1<<20) +%assign cpuflags_cache64 (1<<21) +%assign cpuflags_slowctz (1<<22) %assign cpuflags_aligned (1<<23) ; not a cpu feature, but a function variant %assign cpuflags_atom (1<<24) @@ -876,12 +856,11 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %endif %endmacro -; Merge mmx, sse*, and avx* +; Merge mmx and sse* ; m# is a simd register of the currently selected size ; xm# is the corresponding xmm register if mmsize >= 16, otherwise the same as m# ; ym# is the corresponding ymm register if mmsize >= 32, otherwise the same as m# -; zm# is the corresponding zmm register if mmsize >= 64, otherwise the same as m# -; (All 4 remain in sync through SWAP.) +; (All 3 remain in sync through SWAP.) %macro CAT_XDEFINE 3 %xdefine %1%2 %3 @@ -891,99 +870,69 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %undef %1%2 %endmacro -%macro DEFINE_MMREGS 1 ; mmtype - %assign %%prev_mmregs 0 - %ifdef num_mmregs - %assign %%prev_mmregs num_mmregs - %endif - - %assign num_mmregs 8 - %if ARCH_X86_64 && mmsize >= 16 - %assign num_mmregs 16 - %if cpuflag(avx512) || mmsize == 64 - %assign num_mmregs 32 - %endif - %endif - - %assign %%i 0 - %rep num_mmregs - CAT_XDEFINE m, %%i, %1 %+ %%i - CAT_XDEFINE nn%1, %%i, %%i - %assign %%i %%i+1 - %endrep - %if %%prev_mmregs > num_mmregs - %rep %%prev_mmregs - num_mmregs - CAT_UNDEF m, %%i - CAT_UNDEF nn %+ mmtype, %%i - %assign %%i %%i+1 - %endrep - %endif - %xdefine mmtype %1 -%endmacro - -; Prefer registers 16-31 over 0-15 to avoid having to use vzeroupper -%macro AVX512_MM_PERMUTATION 0-1 0 ; start_reg - %if ARCH_X86_64 && cpuflag(avx512) - %assign %%i %1 - %rep 16-%1 - %assign %%i_high %%i+16 - SWAP %%i, %%i_high - %assign %%i %%i+1 - %endrep - %endif -%endmacro - %macro INIT_MMX 0-1+ %assign avx_enabled 0 %define RESET_MM_PERMUTATION INIT_MMX %1 %define mmsize 8 + %define num_mmregs 8 %define mova movq %define movu movq %define movh movd %define movnta movntq + %assign %%i 0 + %rep 8 + CAT_XDEFINE m, %%i, mm %+ %%i + CAT_XDEFINE nnmm, %%i, %%i + %assign %%i %%i+1 + %endrep + %rep 8 + CAT_UNDEF m, %%i + CAT_UNDEF nnmm, %%i + %assign %%i %%i+1 + %endrep INIT_CPUFLAGS %1 - DEFINE_MMREGS mm %endmacro %macro INIT_XMM 0-1+ %assign avx_enabled 0 %define RESET_MM_PERMUTATION INIT_XMM %1 %define mmsize 16 + %define num_mmregs 8 + %if ARCH_X86_64 + %define num_mmregs 16 + %endif %define mova movdqa %define movu movdqu %define movh movq %define movnta movntdq + %assign %%i 0 + %rep num_mmregs + CAT_XDEFINE m, %%i, xmm %+ %%i + CAT_XDEFINE nnxmm, %%i, %%i + %assign %%i %%i+1 + %endrep INIT_CPUFLAGS %1 - DEFINE_MMREGS xmm - %if WIN64 - AVX512_MM_PERMUTATION 6 ; Swap callee-saved registers with volatile registers - %endif %endmacro %macro INIT_YMM 0-1+ %assign avx_enabled 1 %define RESET_MM_PERMUTATION INIT_YMM %1 %define mmsize 32 + %define num_mmregs 8 + %if ARCH_X86_64 + %define num_mmregs 16 + %endif %define mova movdqa %define movu movdqu %undef movh %define movnta movntdq + %assign %%i 0 + %rep num_mmregs + CAT_XDEFINE m, %%i, ymm %+ %%i + CAT_XDEFINE nnymm, %%i, %%i + %assign %%i %%i+1 + %endrep INIT_CPUFLAGS %1 - DEFINE_MMREGS ymm - AVX512_MM_PERMUTATION -%endmacro - -%macro INIT_ZMM 0-1+ - %assign avx_enabled 1 - %define RESET_MM_PERMUTATION INIT_ZMM %1 - %define mmsize 64 - %define mova movdqa - %define movu movdqu - %undef movh - %define movnta movntdq - INIT_CPUFLAGS %1 - DEFINE_MMREGS zmm - AVX512_MM_PERMUTATION %endmacro INIT_XMM @@ -992,26 +941,18 @@ INIT_XMM %define mmmm%1 mm%1 %define mmxmm%1 mm%1 %define mmymm%1 mm%1 - %define mmzmm%1 mm%1 %define xmmmm%1 mm%1 %define xmmxmm%1 xmm%1 %define xmmymm%1 xmm%1 - %define xmmzmm%1 xmm%1 %define ymmmm%1 mm%1 %define ymmxmm%1 xmm%1 %define ymmymm%1 ymm%1 - %define ymmzmm%1 ymm%1 - %define zmmmm%1 mm%1 - %define zmmxmm%1 xmm%1 - %define zmmymm%1 ymm%1 - %define zmmzmm%1 zmm%1 %define xm%1 xmm %+ m%1 %define ym%1 ymm %+ m%1 - %define zm%1 zmm %+ m%1 %endmacro %assign i 0 -%rep 32 +%rep 16 DECLARE_MMCAST i %assign i i+1 %endrep @@ -1146,17 +1087,12 @@ INIT_XMM ;============================================================================= %assign i 0 -%rep 32 +%rep 16 %if i < 8 CAT_XDEFINE sizeofmm, i, 8 - CAT_XDEFINE regnumofmm, i, i %endif CAT_XDEFINE sizeofxmm, i, 16 CAT_XDEFINE sizeofymm, i, 32 - CAT_XDEFINE sizeofzmm, i, 64 - CAT_XDEFINE regnumofxmm, i, i - CAT_XDEFINE regnumofymm, i, i - CAT_XDEFINE regnumofzmm, i, i %assign i i+1 %endrep %undef i @@ -1273,7 +1209,7 @@ INIT_XMM %endmacro %endmacro -; Instructions with both VEX/EVEX and legacy encodings +; Instructions with both VEX and non-VEX encodings ; Non-destructive instructions are written without parameters AVX_INSTR addpd, sse2, 1, 0, 1 AVX_INSTR addps, sse, 1, 0, 1 @@ -1295,42 +1231,10 @@ AVX_INSTR blendpd, sse4, 1, 1, 0 AVX_INSTR blendps, sse4, 1, 1, 0 AVX_INSTR blendvpd, sse4 ; can't be emulated AVX_INSTR blendvps, sse4 ; can't be emulated -AVX_INSTR cmpeqpd, sse2, 1, 0, 1 -AVX_INSTR cmpeqps, sse, 1, 0, 1 -AVX_INSTR cmpeqsd, sse2, 1, 0, 0 -AVX_INSTR cmpeqss, sse, 1, 0, 0 -AVX_INSTR cmplepd, sse2, 1, 0, 0 -AVX_INSTR cmpleps, sse, 1, 0, 0 -AVX_INSTR cmplesd, sse2, 1, 0, 0 -AVX_INSTR cmpless, sse, 1, 0, 0 -AVX_INSTR cmpltpd, sse2, 1, 0, 0 -AVX_INSTR cmpltps, sse, 1, 0, 0 -AVX_INSTR cmpltsd, sse2, 1, 0, 0 -AVX_INSTR cmpltss, sse, 1, 0, 0 -AVX_INSTR cmpneqpd, sse2, 1, 0, 1 -AVX_INSTR cmpneqps, sse, 1, 0, 1 -AVX_INSTR cmpneqsd, sse2, 1, 0, 0 -AVX_INSTR cmpneqss, sse, 1, 0, 0 -AVX_INSTR cmpnlepd, sse2, 1, 0, 0 -AVX_INSTR cmpnleps, sse, 1, 0, 0 -AVX_INSTR cmpnlesd, sse2, 1, 0, 0 -AVX_INSTR cmpnless, sse, 1, 0, 0 -AVX_INSTR cmpnltpd, sse2, 1, 0, 0 -AVX_INSTR cmpnltps, sse, 1, 0, 0 -AVX_INSTR cmpnltsd, sse2, 1, 0, 0 -AVX_INSTR cmpnltss, sse, 1, 0, 0 -AVX_INSTR cmpordpd, sse2 1, 0, 1 -AVX_INSTR cmpordps, sse 1, 0, 1 -AVX_INSTR cmpordsd, sse2 1, 0, 0 -AVX_INSTR cmpordss, sse 1, 0, 0 AVX_INSTR cmppd, sse2, 1, 1, 0 AVX_INSTR cmpps, sse, 1, 1, 0 AVX_INSTR cmpsd, sse2, 1, 1, 0 AVX_INSTR cmpss, sse, 1, 1, 0 -AVX_INSTR cmpunordpd, sse2, 1, 0, 1 -AVX_INSTR cmpunordps, sse, 1, 0, 1 -AVX_INSTR cmpunordsd, sse2, 1, 0, 0 -AVX_INSTR cmpunordss, sse, 1, 0, 0 AVX_INSTR comisd, sse2 AVX_INSTR comiss, sse AVX_INSTR cvtdq2pd, sse2 @@ -1641,52 +1545,6 @@ FMA4_INSTR fmsubadd, pd, ps FMA4_INSTR fnmadd, pd, ps, sd, ss FMA4_INSTR fnmsub, pd, ps, sd, ss -; Macros for converting VEX instructions to equivalent EVEX ones. -%macro EVEX_INSTR 2-3 0 ; vex, evex, prefer_evex - %macro %1 2-7 fnord, fnord, %1, %2, %3 - %ifidn %3, fnord - %define %%args %1, %2 - %elifidn %4, fnord - %define %%args %1, %2, %3 - %else - %define %%args %1, %2, %3, %4 - %endif - %assign %%evex_required cpuflag(avx512) & %7 - %ifnum regnumof%1 - %if regnumof%1 >= 16 || sizeof%1 > 32 - %assign %%evex_required 1 - %endif - %endif - %ifnum regnumof%2 - %if regnumof%2 >= 16 || sizeof%2 > 32 - %assign %%evex_required 1 - %endif - %endif - %if %%evex_required - %6 %%args - %else - %5 %%args ; Prefer VEX over EVEX due to shorter instruction length - %endif - %endmacro -%endmacro - -EVEX_INSTR vbroadcastf128, vbroadcastf32x4 -EVEX_INSTR vbroadcasti128, vbroadcasti32x4 -EVEX_INSTR vextractf128, vextractf32x4 -EVEX_INSTR vextracti128, vextracti32x4 -EVEX_INSTR vinsertf128, vinsertf32x4 -EVEX_INSTR vinserti128, vinserti32x4 -EVEX_INSTR vmovdqa, vmovdqa32 -EVEX_INSTR vmovdqu, vmovdqu32 -EVEX_INSTR vpand, vpandd -EVEX_INSTR vpandn, vpandnd -EVEX_INSTR vpor, vpord -EVEX_INSTR vpxor, vpxord -EVEX_INSTR vrcpps, vrcp14ps, 1 ; EVEX versions have higher precision -EVEX_INSTR vrcpss, vrcp14ss, 1 -EVEX_INSTR vrsqrtps, vrsqrt14ps, 1 -EVEX_INSTR vrsqrtss, vrsqrt14ss, 1 - ; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug (fixed in 1.3.0) %ifdef __YASM_VER__ %if __YASM_VERSION_ID__ < 0x01030000 && ARCH_X86_64 == 0 diff --git a/media/ffvpx/libavutil/x86/x86util.asm b/media/ffvpx/libavutil/x86/x86util.asm index d7cd99684..e1220dfc1 100644 --- a/media/ffvpx/libavutil/x86/x86util.asm +++ b/media/ffvpx/libavutil/x86/x86util.asm @@ -357,7 +357,7 @@ %endif %endmacro -%macro ABSB 2 ; source mmreg, temp mmreg (unused for SSSE3) +%macro ABSB 2 ; source mmreg, temp mmreg (unused for ssse3) %if cpuflag(ssse3) pabsb %1, %1 %else @@ -381,7 +381,7 @@ %endif %endmacro -%macro ABSD2 4 +%macro ABSD2_MMX 4 pxor %3, %3 pxor %4, %4 pcmpgtd %3, %1 @@ -475,7 +475,7 @@ %else palignr %1, %2, %3 %endif -%else ; [dst,] src1, src2, imm, tmp +%elif cpuflag(mmx) ; [dst,] src1, src2, imm, tmp %define %%dst %1 %if %0==5 %ifnidn %1, %2 @@ -799,47 +799,37 @@ pminsw %1, %3 %endmacro -%macro PMINSD 3 ; dst, src, tmp/unused -%if cpuflag(sse4) - pminsd %1, %2 -%elif cpuflag(sse2) - cvtdq2ps %1, %1 - minps %1, %2 - cvtps2dq %1, %1 -%else +%macro PMINSD_MMX 3 ; dst, src, tmp mova %3, %2 pcmpgtd %3, %1 pxor %1, %2 pand %1, %3 pxor %1, %2 -%endif %endmacro -%macro PMAXSD 3 ; dst, src, tmp/unused -%if cpuflag(sse4) - pmaxsd %1, %2 -%else +%macro PMAXSD_MMX 3 ; dst, src, tmp mova %3, %1 pcmpgtd %3, %2 pand %1, %3 pandn %3, %2 por %1, %3 -%endif %endmacro -%macro CLIPD 3-4 -%if cpuflag(sse4); src/dst, min, max, unused - pminsd %1, %3 - pmaxsd %1, %2 -%elif cpuflag(sse2) ; src/dst, min (float), max (float), unused +%macro CLIPD_MMX 3-4 ; src/dst, min, max, tmp + PMINSD_MMX %1, %3, %4 + PMAXSD_MMX %1, %2, %4 +%endmacro + +%macro CLIPD_SSE2 3-4 ; src/dst, min (float), max (float), unused cvtdq2ps %1, %1 minps %1, %3 maxps %1, %2 cvtps2dq %1, %1 -%else ; src/dst, min, max, tmp - PMINSD %1, %3, %4 - PMAXSD %1, %2, %4 -%endif +%endmacro + +%macro CLIPD_SSE41 3-4 ; src/dst, min, max, unused + pminsd %1, %3 + pmaxsd %1, %2 %endmacro %macro VBROADCASTSS 2 ; dst xmm/ymm, src m32/xmm @@ -890,14 +880,6 @@ %endif %endmacro -%macro VBROADCASTI128 2 ; dst xmm/ymm, src : 128bits val -%if mmsize > 16 - vbroadcasti128 %1, %2 -%else - mova %1, %2 -%endif -%endmacro - %macro SHUFFLE_MASK_W 8 %rep 8 %if %1>=0x80 |