diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-02-06 12:03:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-06 12:03:37 +0100 |
commit | 5cc30e0f603a030b97b7be37a7aa5d22d13f7a07 (patch) | |
tree | 01875b465e2f7749cc8f87f1df756b2cb2ca2596 | |
parent | 389c60da5e01761f4a11ef539ffa26e4c1b17875 (diff) | |
parent | 30bfbb3f97bd64b7838bcb55c98fa698b1bcc9d2 (diff) | |
download | uxp-5cc30e0f603a030b97b7be37a7aa5d22d13f7a07.tar.gz |
Merge pull request #10 from trav90/media-work
Update FFmpeg code to n3.2-65-gee56777
66 files changed, 2760 insertions, 806 deletions
diff --git a/dom/media/Benchmark.cpp b/dom/media/Benchmark.cpp index a4761f1b1e..1ba6e561cc 100644 --- a/dom/media/Benchmark.cpp +++ b/dom/media/Benchmark.cpp @@ -22,7 +22,7 @@ namespace mozilla { // Update this version number to force re-running the benchmark. Such as when // an improvement to FFVP9 or LIBVPX is deemed worthwhile. -const uint32_t VP9Benchmark::sBenchmarkVersionID = 1; +const uint32_t VP9Benchmark::sBenchmarkVersionID = 2; const char* VP9Benchmark::sBenchmarkFpsPref = "media.benchmark.vp9.fps"; const char* VP9Benchmark::sBenchmarkFpsVersionCheck = "media.benchmark.vp9.versioncheck"; diff --git a/media/ffvpx/README_MOZILLA b/media/ffvpx/README_MOZILLA index ae62c38395..7f42d0513a 100644 --- a/media/ffvpx/README_MOZILLA +++ b/media/ffvpx/README_MOZILLA @@ -1,6 +1,6 @@ -This directory contains files used in gecko builds from FFmpeg +This directory contains files used in goanna builds from FFmpeg (http://ffmpeg.org). The current files are from FFmpeg as of -revision n3.1.1-6-g86f9228 +revision n3.2-65-gee56777 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 diff --git a/media/ffvpx/config_darwin32.h b/media/ffvpx/config_darwin32.h index 995b71aed2..de232dca27 100644 --- a/media/ffvpx/config_darwin32.h +++ b/media/ffvpx/config_darwin32.h @@ -197,7 +197,6 @@ #define HAVE_YASM 0 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 0 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 #define HAVE_ALSA_ASOUNDLIB_H 0 #define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 1 @@ -300,6 +299,7 @@ #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 @@ -373,7 +373,7 @@ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_SDL 0 +#define HAVE_SDL2 0 #define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 #define HAVE_THREADS 1 @@ -398,14 +398,15 @@ #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODING_ENCODING_EXAMPLE 0 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0 #define CONFIG_EXTRACT_MVS_EXAMPLE 0 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 #define CONFIG_METADATA_EXAMPLE 0 #define CONFIG_MUXING_EXAMPLE 0 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -434,7 +435,6 @@ #define CONFIG_LIBCELT 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFAAC 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 @@ -453,6 +453,7 @@ #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 #define CONFIG_LIBRTMP 0 @@ -494,6 +495,7 @@ #define CONFIG_OPENSSL 0 #define CONFIG_SCHANNEL 0 #define CONFIG_SDL 0 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_X11GRAB 0 @@ -553,7 +555,6 @@ #define CONFIG_NETWORK 0 #define CONFIG_RDFT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 @@ -997,6 +998,8 @@ #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 @@ -1105,11 +1108,21 @@ #define CONFIG_BINTEXT_DECODER 0 #define CONFIG_XBIN_DECODER 0 #define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H263_CUVID_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_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 @@ -1379,6 +1392,7 @@ #define CONFIG_LIBGME_DEMUXER 0 #define CONFIG_LIBMODPLUG_DEMUXER 0 #define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1465,12 +1479,14 @@ #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_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 @@ -1495,6 +1511,8 @@ #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 @@ -1526,7 +1544,6 @@ #define CONFIG_ILBC_AT_ENCODER 0 #define CONFIG_PCM_ALAW_AT_ENCODER 0 #define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1571,6 +1588,7 @@ #define CONFIG_ABENCH_FILTER 0 #define CONFIG_ACOMPRESSOR_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 @@ -1602,6 +1620,7 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1619,6 +1638,7 @@ #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 #define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 @@ -1657,10 +1677,12 @@ #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ASS_FILTER 0 -#define CONFIG_BENCH_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 @@ -1716,6 +1738,7 @@ #define CONFIG_FRAMESTEP_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 @@ -1724,11 +1747,12 @@ #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 +#define CONFIG_HUE_FILTER 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 #define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1737,16 +1761,21 @@ #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 @@ -1764,6 +1793,7 @@ #define CONFIG_PIXDESCTEST_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 @@ -1778,9 +1808,9 @@ #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 #define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 @@ -1794,8 +1824,10 @@ #define CONFIG_SHOWPALETTE_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 #define CONFIG_SSIM_FILTER 0 @@ -1814,6 +1846,7 @@ #define CONFIG_TRIM_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1822,6 +1855,7 @@ #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 #define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 #define CONFIG_YADIF_FILTER 0 #define CONFIG_ZMQ_FILTER 0 @@ -1843,6 +1877,7 @@ #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_ADRAWGRAPH_FILTER 0 #define CONFIG_AHISTOGRAM_FILTER 0 @@ -1859,11 +1894,13 @@ #define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1874,12 +1911,16 @@ #define CONFIG_HEVC_CUVID_HWACCEL 0 #define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1888,6 +1929,8 @@ #define CONFIG_MPEG2_VAAPI_HWACCEL 0 #define CONFIG_MPEG2_VDPAU_HWACCEL 0 #define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1900,9 +1943,11 @@ #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_VP9_CUVID_HWACCEL 0 #define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1959,6 +2004,7 @@ #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_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 @@ -2016,6 +2062,7 @@ #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 @@ -2062,6 +2109,7 @@ #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 @@ -2085,7 +2133,7 @@ #define CONFIG_OPENGL_OUTDEV 0 #define CONFIG_OSS_OUTDEV 0 #define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 #define CONFIG_SNDIO_OUTDEV 0 #define CONFIG_V4L2_OUTDEV 0 #define CONFIG_XV_OUTDEV 0 @@ -2157,6 +2205,7 @@ #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 diff --git a/media/ffvpx/config_darwin64.asm b/media/ffvpx/config_darwin64.asm index a7d7d125b3..0e386ee143 100644 --- a/media/ffvpx/config_darwin64.asm +++ b/media/ffvpx/config_darwin64.asm @@ -181,7 +181,6 @@ %define HAVE_YASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 -%define HAVE_INCOMPATIBLE_LIBAV_ABI 0 %define HAVE_ALSA_ASOUNDLIB_H 0 %define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 1 @@ -284,6 +283,7 @@ %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 @@ -358,7 +358,7 @@ %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 -%define HAVE_SDL 0 +%define HAVE_SDL2 0 %define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 %define HAVE_THREADS 1 @@ -383,14 +383,15 @@ %define CONFIG_MANPAGES 1 %define CONFIG_PODPAGES 1 %define CONFIG_TXTPAGES 1 -%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_DECODING_ENCODING_EXAMPLE 0 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0 %define CONFIG_EXTRACT_MVS_EXAMPLE 0 %define CONFIG_FILTER_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 %define CONFIG_METADATA_EXAMPLE 0 %define CONFIG_MUXING_EXAMPLE 0 %define CONFIG_QSVDEC_EXAMPLE 0 @@ -419,7 +420,6 @@ %define CONFIG_LIBCELT 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBEBUR128 0 -%define CONFIG_LIBFAAC 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_LIBFLITE 0 %define CONFIG_LIBFONTCONFIG 0 @@ -438,6 +438,7 @@ %define CONFIG_LIBOPENCV 0 %define CONFIG_LIBOPENH264 0 %define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPENMPT 0 %define CONFIG_LIBOPUS 0 %define CONFIG_LIBPULSE 0 %define CONFIG_LIBRTMP 0 @@ -479,6 +480,7 @@ %define CONFIG_OPENSSL 0 %define CONFIG_SCHANNEL 0 %define CONFIG_SDL 0 +%define CONFIG_SDL2 0 %define CONFIG_SECURETRANSPORT 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_X11GRAB 0 @@ -538,7 +540,6 @@ %define CONFIG_NETWORK 0 %define CONFIG_RDFT 0 %define CONFIG_FONTCONFIG 0 -%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 %define CONFIG_MEMALIGN_HACK 0 %define CONFIG_MEMORY_POISONING 0 %define CONFIG_NEON_CLOBBER_TEST 0 @@ -982,6 +983,8 @@ %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 @@ -1090,11 +1093,21 @@ %define CONFIG_BINTEXT_DECODER 0 %define CONFIG_XBIN_DECODER 0 %define CONFIG_IDF_DECODER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H263_CUVID_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_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 @@ -1364,6 +1377,7 @@ %define CONFIG_LIBGME_DEMUXER 0 %define CONFIG_LIBMODPLUG_DEMUXER 0 %define CONFIG_LIBNUT_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 %define CONFIG_A64MULTI_ENCODER 0 %define CONFIG_A64MULTI5_ENCODER 0 %define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1450,12 +1464,14 @@ %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_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 @@ -1480,6 +1496,8 @@ %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 @@ -1511,7 +1529,6 @@ %define CONFIG_ILBC_AT_ENCODER 0 %define CONFIG_PCM_ALAW_AT_ENCODER 0 %define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_LIBFAAC_ENCODER 0 %define CONFIG_LIBFDK_AAC_ENCODER 0 %define CONFIG_LIBGSM_ENCODER 0 %define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1556,6 +1573,7 @@ %define CONFIG_ABENCH_FILTER 0 %define CONFIG_ACOMPRESSOR_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 @@ -1587,6 +1605,7 @@ %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 %define CONFIG_ASHOWINFO_FILTER 0 +%define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 %define CONFIG_ASTATS_FILTER 0 %define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1604,6 +1623,7 @@ %define CONFIG_CHORUS_FILTER 0 %define CONFIG_COMPAND_FILTER 0 %define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 %define CONFIG_DCSHIFT_FILTER 0 %define CONFIG_DYNAUDNORM_FILTER 0 %define CONFIG_EARWAX_FILTER 0 @@ -1642,10 +1662,12 @@ %define CONFIG_ANULLSINK_FILTER 0 %define CONFIG_ALPHAEXTRACT_FILTER 0 %define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_ATADENOISE_FILTER 0 %define CONFIG_ASS_FILTER 0 -%define CONFIG_BENCH_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 %define CONFIG_BBOX_FILTER 0 +%define CONFIG_BENCH_FILTER 0 +%define CONFIG_BITPLANENOISE_FILTER 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 @@ -1701,6 +1723,7 @@ %define CONFIG_FRAMESTEP_FILTER 0 %define CONFIG_FREI0R_FILTER 0 %define CONFIG_FSPP_FILTER 0 +%define CONFIG_GBLUR_FILTER 0 %define CONFIG_GEQ_FILTER 0 %define CONFIG_GRADFUN_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 @@ -1709,11 +1732,12 @@ %define CONFIG_HISTOGRAM_FILTER 0 %define CONFIG_HQDN3D_FILTER 0 %define CONFIG_HQX_FILTER 0 +%define CONFIG_HSTACK_FILTER 0 +%define CONFIG_HUE_FILTER 0 %define CONFIG_HWDOWNLOAD_FILTER 0 %define CONFIG_HWUPLOAD_FILTER 0 %define CONFIG_HWUPLOAD_CUDA_FILTER 0 -%define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HUE_FILTER 0 +%define CONFIG_HYSTERESIS_FILTER 0 %define CONFIG_IDET_FILTER 0 %define CONFIG_IL_FILTER 0 %define CONFIG_INFLATE_FILTER 0 @@ -1722,16 +1746,21 @@ %define CONFIG_KERNDEINT_FILTER 0 %define CONFIG_LENSCORRECTION_FILTER 0 %define CONFIG_LOOP_FILTER 0 -%define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 %define CONFIG_MASKEDMERGE_FILTER 0 %define CONFIG_MCDEINT_FILTER 0 %define CONFIG_MERGEPLANES_FILTER 0 +%define CONFIG_MESTIMATE_FILTER 0 %define CONFIG_METADATA_FILTER 0 +%define CONFIG_MINTERPOLATE_FILTER 0 %define CONFIG_MPDECIMATE_FILTER 0 %define CONFIG_NEGATE_FILTER 0 +%define CONFIG_NLMEANS_FILTER 0 %define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 %define CONFIG_NOISE_FILTER 0 @@ -1749,6 +1778,7 @@ %define CONFIG_PIXDESCTEST_FILTER 0 %define CONFIG_PP_FILTER 0 %define CONFIG_PP7_FILTER 0 +%define CONFIG_PREWITT_FILTER 0 %define CONFIG_PSNR_FILTER 0 %define CONFIG_PULLUP_FILTER 0 %define CONFIG_QP_FILTER 0 @@ -1763,9 +1793,9 @@ %define CONFIG_ROTATE_FILTER 0 %define CONFIG_SAB_FILTER 0 %define CONFIG_SCALE_FILTER 0 -%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SCALE_NPP_FILTER 0 %define CONFIG_SCALE_VAAPI_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 %define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 @@ -1779,8 +1809,10 @@ %define CONFIG_SHOWPALETTE_FILTER 0 %define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 +%define CONFIG_SIDEDATA_FILTER 0 %define CONFIG_SIGNALSTATS_FILTER 0 %define CONFIG_SMARTBLUR_FILTER 0 +%define CONFIG_SOBEL_FILTER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 %define CONFIG_SSIM_FILTER 0 @@ -1799,6 +1831,7 @@ %define CONFIG_TRIM_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 %define CONFIG_USPP_FILTER 0 +%define CONFIG_VAGUEDENOISER_FILTER 0 %define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1807,6 +1840,7 @@ %define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 %define CONFIG_WAVEFORM_FILTER 0 +%define CONFIG_WEAVE_FILTER 0 %define CONFIG_XBR_FILTER 0 %define CONFIG_YADIF_FILTER 0 %define CONFIG_ZMQ_FILTER 0 @@ -1828,6 +1862,7 @@ %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_ADRAWGRAPH_FILTER 0 %define CONFIG_AHISTOGRAM_FILTER 0 @@ -1844,11 +1879,13 @@ %define CONFIG_SPECTRUMSYNTH_FILTER 0 %define CONFIG_AMOVIE_FILTER 0 %define CONFIG_MOVIE_FILTER 0 +%define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1859,12 +1896,16 @@ %define CONFIG_HEVC_CUVID_HWACCEL 0 %define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1873,6 +1914,8 @@ %define CONFIG_MPEG2_VAAPI_HWACCEL 0 %define CONFIG_MPEG2_VDPAU_HWACCEL 0 %define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1885,9 +1928,11 @@ %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_VP9_CUVID_HWACCEL 0 %define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1944,6 +1989,7 @@ %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_FLAC_MUXER 0 %define CONFIG_FLV_MUXER 0 @@ -2001,6 +2047,7 @@ %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 @@ -2047,6 +2094,7 @@ %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 @@ -2070,7 +2118,7 @@ %define CONFIG_OPENGL_OUTDEV 0 %define CONFIG_OSS_OUTDEV 0 %define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 %define CONFIG_SNDIO_OUTDEV 0 %define CONFIG_V4L2_OUTDEV 0 %define CONFIG_XV_OUTDEV 0 @@ -2142,6 +2190,7 @@ %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 diff --git a/media/ffvpx/config_darwin64.h b/media/ffvpx/config_darwin64.h index 02825368fd..e1d42ad39c 100644 --- a/media/ffvpx/config_darwin64.h +++ b/media/ffvpx/config_darwin64.h @@ -300,6 +300,7 @@ #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 @@ -373,7 +374,7 @@ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_SDL 0 +#define HAVE_SDL2 0 #define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 #define HAVE_THREADS 1 @@ -398,14 +399,15 @@ #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODING_ENCODING_EXAMPLE 0 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0 #define CONFIG_EXTRACT_MVS_EXAMPLE 0 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 #define CONFIG_METADATA_EXAMPLE 0 #define CONFIG_MUXING_EXAMPLE 0 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -434,7 +436,6 @@ #define CONFIG_LIBCELT 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFAAC 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 @@ -453,6 +454,7 @@ #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 #define CONFIG_LIBRTMP 0 @@ -494,6 +496,7 @@ #define CONFIG_OPENSSL 0 #define CONFIG_SCHANNEL 0 #define CONFIG_SDL 0 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_X11GRAB 0 @@ -553,7 +556,6 @@ #define CONFIG_NETWORK 0 #define CONFIG_RDFT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 @@ -997,6 +999,8 @@ #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 @@ -1105,11 +1109,21 @@ #define CONFIG_BINTEXT_DECODER 0 #define CONFIG_XBIN_DECODER 0 #define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H263_CUVID_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_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 @@ -1379,6 +1393,7 @@ #define CONFIG_LIBGME_DEMUXER 0 #define CONFIG_LIBMODPLUG_DEMUXER 0 #define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1465,12 +1480,14 @@ #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_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 @@ -1495,6 +1512,8 @@ #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 @@ -1526,7 +1545,6 @@ #define CONFIG_ILBC_AT_ENCODER 0 #define CONFIG_PCM_ALAW_AT_ENCODER 0 #define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1571,6 +1589,7 @@ #define CONFIG_ABENCH_FILTER 0 #define CONFIG_ACOMPRESSOR_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 @@ -1602,6 +1621,7 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1619,6 +1639,7 @@ #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 #define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 @@ -1657,10 +1678,12 @@ #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ASS_FILTER 0 -#define CONFIG_BENCH_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 @@ -1716,6 +1739,7 @@ #define CONFIG_FRAMESTEP_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 @@ -1724,11 +1748,12 @@ #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 +#define CONFIG_HUE_FILTER 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 #define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1737,16 +1762,21 @@ #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 @@ -1764,6 +1794,7 @@ #define CONFIG_PIXDESCTEST_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 @@ -1778,9 +1809,9 @@ #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 #define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 @@ -1794,8 +1825,10 @@ #define CONFIG_SHOWPALETTE_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 #define CONFIG_SSIM_FILTER 0 @@ -1814,6 +1847,7 @@ #define CONFIG_TRIM_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1822,6 +1856,7 @@ #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 #define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 #define CONFIG_YADIF_FILTER 0 #define CONFIG_ZMQ_FILTER 0 @@ -1843,6 +1878,7 @@ #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_ADRAWGRAPH_FILTER 0 #define CONFIG_AHISTOGRAM_FILTER 0 @@ -1859,11 +1895,13 @@ #define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1874,12 +1912,16 @@ #define CONFIG_HEVC_CUVID_HWACCEL 0 #define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1888,6 +1930,8 @@ #define CONFIG_MPEG2_VAAPI_HWACCEL 0 #define CONFIG_MPEG2_VDPAU_HWACCEL 0 #define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1900,9 +1944,11 @@ #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_VP9_CUVID_HWACCEL 0 #define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1959,6 +2005,7 @@ #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_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 @@ -2016,6 +2063,7 @@ #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 @@ -2062,6 +2110,7 @@ #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 @@ -2085,7 +2134,7 @@ #define CONFIG_OPENGL_OUTDEV 0 #define CONFIG_OSS_OUTDEV 0 #define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 #define CONFIG_SNDIO_OUTDEV 0 #define CONFIG_V4L2_OUTDEV 0 #define CONFIG_XV_OUTDEV 0 @@ -2157,6 +2206,7 @@ #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 diff --git a/media/ffvpx/config_unix32.h b/media/ffvpx/config_unix32.h index 8fbc4302ea..9318d1851d 100644 --- a/media/ffvpx/config_unix32.h +++ b/media/ffvpx/config_unix32.h @@ -9,7 +9,7 @@ #define CC_IDENT "gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)" #define av_restrict restrict #define EXTERN_PREFIX "" -#define EXTERN_ASM +#define EXTERN_ASM #define BUILDSUF "" #define SLIBSUF ".so" #define HAVE_MMX2 HAVE_MMXEXT @@ -197,7 +197,6 @@ #define HAVE_YASM 0 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 0 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 #define HAVE_ALSA_ASOUNDLIB_H 0 #define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 1 @@ -300,6 +299,7 @@ #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 @@ -373,7 +373,7 @@ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_SDL 0 +#define HAVE_SDL2 0 #define HAVE_SECTION_DATA_REL_RO 1 #define HAVE_TEXI2HTML 0 #define HAVE_THREADS 1 @@ -398,14 +398,15 @@ #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 0 -#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODING_ENCODING_EXAMPLE 0 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0 #define CONFIG_EXTRACT_MVS_EXAMPLE 0 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 #define CONFIG_METADATA_EXAMPLE 0 #define CONFIG_MUXING_EXAMPLE 0 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -434,7 +435,6 @@ #define CONFIG_LIBCELT 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFAAC 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 @@ -453,6 +453,7 @@ #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 #define CONFIG_LIBRTMP 0 @@ -494,6 +495,7 @@ #define CONFIG_OPENSSL 0 #define CONFIG_SCHANNEL 0 #define CONFIG_SDL 0 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_X11GRAB 0 #define CONFIG_XLIB 0 @@ -552,7 +554,6 @@ #define CONFIG_NETWORK 0 #define CONFIG_RDFT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 @@ -996,6 +997,8 @@ #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 @@ -1104,11 +1107,21 @@ #define CONFIG_BINTEXT_DECODER 0 #define CONFIG_XBIN_DECODER 0 #define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H263_CUVID_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_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 @@ -1378,6 +1391,7 @@ #define CONFIG_LIBGME_DEMUXER 0 #define CONFIG_LIBMODPLUG_DEMUXER 0 #define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1464,12 +1478,14 @@ #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_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 @@ -1494,6 +1510,8 @@ #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 @@ -1525,7 +1543,6 @@ #define CONFIG_ILBC_AT_ENCODER 0 #define CONFIG_PCM_ALAW_AT_ENCODER 0 #define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1570,6 +1587,7 @@ #define CONFIG_ABENCH_FILTER 0 #define CONFIG_ACOMPRESSOR_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 @@ -1601,6 +1619,7 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1618,6 +1637,7 @@ #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 #define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 @@ -1656,10 +1676,12 @@ #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ASS_FILTER 0 -#define CONFIG_BENCH_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 @@ -1715,6 +1737,7 @@ #define CONFIG_FRAMESTEP_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 @@ -1723,11 +1746,12 @@ #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 +#define CONFIG_HUE_FILTER 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 #define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1736,16 +1760,21 @@ #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 @@ -1763,6 +1792,7 @@ #define CONFIG_PIXDESCTEST_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 @@ -1777,9 +1807,9 @@ #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 #define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 @@ -1793,8 +1823,10 @@ #define CONFIG_SHOWPALETTE_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 #define CONFIG_SSIM_FILTER 0 @@ -1813,6 +1845,7 @@ #define CONFIG_TRIM_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1821,6 +1854,7 @@ #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 #define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 #define CONFIG_YADIF_FILTER 0 #define CONFIG_ZMQ_FILTER 0 @@ -1842,6 +1876,7 @@ #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_ADRAWGRAPH_FILTER 0 #define CONFIG_AHISTOGRAM_FILTER 0 @@ -1858,11 +1893,13 @@ #define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1873,12 +1910,16 @@ #define CONFIG_HEVC_CUVID_HWACCEL 0 #define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1887,6 +1928,8 @@ #define CONFIG_MPEG2_VAAPI_HWACCEL 0 #define CONFIG_MPEG2_VDPAU_HWACCEL 0 #define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1899,9 +1942,11 @@ #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_VP9_CUVID_HWACCEL 0 #define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1958,6 +2003,7 @@ #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_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 @@ -2015,6 +2061,7 @@ #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 @@ -2061,6 +2108,7 @@ #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 @@ -2084,7 +2132,7 @@ #define CONFIG_OPENGL_OUTDEV 0 #define CONFIG_OSS_OUTDEV 0 #define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 #define CONFIG_SNDIO_OUTDEV 0 #define CONFIG_V4L2_OUTDEV 0 #define CONFIG_XV_OUTDEV 0 @@ -2156,6 +2204,7 @@ #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 diff --git a/media/ffvpx/config_unix64.asm b/media/ffvpx/config_unix64.asm index 222277a9f6..61cfce6a6f 100644 --- a/media/ffvpx/config_unix64.asm +++ b/media/ffvpx/config_unix64.asm @@ -181,7 +181,6 @@ %define HAVE_YASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 -%define HAVE_INCOMPATIBLE_LIBAV_ABI 0 %define HAVE_ALSA_ASOUNDLIB_H 0 %define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 1 @@ -284,6 +283,7 @@ %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 @@ -358,7 +358,7 @@ %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 -%define HAVE_SDL 0 +%define HAVE_SDL2 0 %define HAVE_SECTION_DATA_REL_RO 1 %define HAVE_TEXI2HTML 0 %define HAVE_THREADS 1 @@ -383,14 +383,15 @@ %define CONFIG_MANPAGES 1 %define CONFIG_PODPAGES 1 %define CONFIG_TXTPAGES 0 -%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_DECODING_ENCODING_EXAMPLE 0 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0 %define CONFIG_EXTRACT_MVS_EXAMPLE 0 %define CONFIG_FILTER_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 %define CONFIG_METADATA_EXAMPLE 0 %define CONFIG_MUXING_EXAMPLE 0 %define CONFIG_QSVDEC_EXAMPLE 0 @@ -419,7 +420,6 @@ %define CONFIG_LIBCELT 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBEBUR128 0 -%define CONFIG_LIBFAAC 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_LIBFLITE 0 %define CONFIG_LIBFONTCONFIG 0 @@ -438,6 +438,7 @@ %define CONFIG_LIBOPENCV 0 %define CONFIG_LIBOPENH264 0 %define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPENMPT 0 %define CONFIG_LIBOPUS 0 %define CONFIG_LIBPULSE 0 %define CONFIG_LIBRTMP 0 @@ -479,6 +480,7 @@ %define CONFIG_OPENSSL 0 %define CONFIG_SCHANNEL 0 %define CONFIG_SDL 0 +%define CONFIG_SDL2 0 %define CONFIG_SECURETRANSPORT 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_X11GRAB 0 @@ -538,7 +540,6 @@ %define CONFIG_NETWORK 0 %define CONFIG_RDFT 0 %define CONFIG_FONTCONFIG 0 -%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 %define CONFIG_MEMALIGN_HACK 0 %define CONFIG_MEMORY_POISONING 0 %define CONFIG_NEON_CLOBBER_TEST 0 @@ -982,6 +983,8 @@ %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 @@ -1090,11 +1093,21 @@ %define CONFIG_BINTEXT_DECODER 0 %define CONFIG_XBIN_DECODER 0 %define CONFIG_IDF_DECODER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H263_CUVID_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_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 @@ -1364,6 +1377,7 @@ %define CONFIG_LIBGME_DEMUXER 0 %define CONFIG_LIBMODPLUG_DEMUXER 0 %define CONFIG_LIBNUT_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 %define CONFIG_A64MULTI_ENCODER 0 %define CONFIG_A64MULTI5_ENCODER 0 %define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1450,12 +1464,14 @@ %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_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 @@ -1480,6 +1496,8 @@ %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 @@ -1511,7 +1529,6 @@ %define CONFIG_ILBC_AT_ENCODER 0 %define CONFIG_PCM_ALAW_AT_ENCODER 0 %define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_LIBFAAC_ENCODER 0 %define CONFIG_LIBFDK_AAC_ENCODER 0 %define CONFIG_LIBGSM_ENCODER 0 %define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1556,6 +1573,7 @@ %define CONFIG_ABENCH_FILTER 0 %define CONFIG_ACOMPRESSOR_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 @@ -1587,6 +1605,7 @@ %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 %define CONFIG_ASHOWINFO_FILTER 0 +%define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 %define CONFIG_ASTATS_FILTER 0 %define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1604,6 +1623,7 @@ %define CONFIG_CHORUS_FILTER 0 %define CONFIG_COMPAND_FILTER 0 %define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 %define CONFIG_DCSHIFT_FILTER 0 %define CONFIG_DYNAUDNORM_FILTER 0 %define CONFIG_EARWAX_FILTER 0 @@ -1642,10 +1662,12 @@ %define CONFIG_ANULLSINK_FILTER 0 %define CONFIG_ALPHAEXTRACT_FILTER 0 %define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_ATADENOISE_FILTER 0 %define CONFIG_ASS_FILTER 0 -%define CONFIG_BENCH_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 %define CONFIG_BBOX_FILTER 0 +%define CONFIG_BENCH_FILTER 0 +%define CONFIG_BITPLANENOISE_FILTER 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 @@ -1701,6 +1723,7 @@ %define CONFIG_FRAMESTEP_FILTER 0 %define CONFIG_FREI0R_FILTER 0 %define CONFIG_FSPP_FILTER 0 +%define CONFIG_GBLUR_FILTER 0 %define CONFIG_GEQ_FILTER 0 %define CONFIG_GRADFUN_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 @@ -1709,11 +1732,12 @@ %define CONFIG_HISTOGRAM_FILTER 0 %define CONFIG_HQDN3D_FILTER 0 %define CONFIG_HQX_FILTER 0 +%define CONFIG_HSTACK_FILTER 0 +%define CONFIG_HUE_FILTER 0 %define CONFIG_HWDOWNLOAD_FILTER 0 %define CONFIG_HWUPLOAD_FILTER 0 %define CONFIG_HWUPLOAD_CUDA_FILTER 0 -%define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HUE_FILTER 0 +%define CONFIG_HYSTERESIS_FILTER 0 %define CONFIG_IDET_FILTER 0 %define CONFIG_IL_FILTER 0 %define CONFIG_INFLATE_FILTER 0 @@ -1722,16 +1746,21 @@ %define CONFIG_KERNDEINT_FILTER 0 %define CONFIG_LENSCORRECTION_FILTER 0 %define CONFIG_LOOP_FILTER 0 -%define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 %define CONFIG_MASKEDMERGE_FILTER 0 %define CONFIG_MCDEINT_FILTER 0 %define CONFIG_MERGEPLANES_FILTER 0 +%define CONFIG_MESTIMATE_FILTER 0 %define CONFIG_METADATA_FILTER 0 +%define CONFIG_MINTERPOLATE_FILTER 0 %define CONFIG_MPDECIMATE_FILTER 0 %define CONFIG_NEGATE_FILTER 0 +%define CONFIG_NLMEANS_FILTER 0 %define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 %define CONFIG_NOISE_FILTER 0 @@ -1749,6 +1778,7 @@ %define CONFIG_PIXDESCTEST_FILTER 0 %define CONFIG_PP_FILTER 0 %define CONFIG_PP7_FILTER 0 +%define CONFIG_PREWITT_FILTER 0 %define CONFIG_PSNR_FILTER 0 %define CONFIG_PULLUP_FILTER 0 %define CONFIG_QP_FILTER 0 @@ -1763,9 +1793,9 @@ %define CONFIG_ROTATE_FILTER 0 %define CONFIG_SAB_FILTER 0 %define CONFIG_SCALE_FILTER 0 -%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SCALE_NPP_FILTER 0 %define CONFIG_SCALE_VAAPI_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 %define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 @@ -1779,8 +1809,10 @@ %define CONFIG_SHOWPALETTE_FILTER 0 %define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 +%define CONFIG_SIDEDATA_FILTER 0 %define CONFIG_SIGNALSTATS_FILTER 0 %define CONFIG_SMARTBLUR_FILTER 0 +%define CONFIG_SOBEL_FILTER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 %define CONFIG_SSIM_FILTER 0 @@ -1799,6 +1831,7 @@ %define CONFIG_TRIM_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 %define CONFIG_USPP_FILTER 0 +%define CONFIG_VAGUEDENOISER_FILTER 0 %define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1807,6 +1840,7 @@ %define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 %define CONFIG_WAVEFORM_FILTER 0 +%define CONFIG_WEAVE_FILTER 0 %define CONFIG_XBR_FILTER 0 %define CONFIG_YADIF_FILTER 0 %define CONFIG_ZMQ_FILTER 0 @@ -1828,6 +1862,7 @@ %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_ADRAWGRAPH_FILTER 0 %define CONFIG_AHISTOGRAM_FILTER 0 @@ -1844,11 +1879,13 @@ %define CONFIG_SPECTRUMSYNTH_FILTER 0 %define CONFIG_AMOVIE_FILTER 0 %define CONFIG_MOVIE_FILTER 0 +%define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1859,12 +1896,16 @@ %define CONFIG_HEVC_CUVID_HWACCEL 0 %define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1873,6 +1914,8 @@ %define CONFIG_MPEG2_VAAPI_HWACCEL 0 %define CONFIG_MPEG2_VDPAU_HWACCEL 0 %define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1885,9 +1928,11 @@ %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_VP9_CUVID_HWACCEL 0 %define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1944,6 +1989,7 @@ %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_FLAC_MUXER 0 %define CONFIG_FLV_MUXER 0 @@ -2001,6 +2047,7 @@ %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 @@ -2047,6 +2094,7 @@ %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 @@ -2070,7 +2118,7 @@ %define CONFIG_OPENGL_OUTDEV 0 %define CONFIG_OSS_OUTDEV 0 %define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 %define CONFIG_SNDIO_OUTDEV 0 %define CONFIG_V4L2_OUTDEV 0 %define CONFIG_XV_OUTDEV 0 @@ -2142,6 +2190,7 @@ %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 diff --git a/media/ffvpx/config_unix64.h b/media/ffvpx/config_unix64.h index ac2987f796..26d6be5d4f 100644 --- a/media/ffvpx/config_unix64.h +++ b/media/ffvpx/config_unix64.h @@ -9,7 +9,7 @@ #define CC_IDENT "gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)" #define av_restrict restrict #define EXTERN_PREFIX "" -#define EXTERN_ASM +#define EXTERN_ASM #define BUILDSUF "" #define SLIBSUF ".so" #define HAVE_MMX2 HAVE_MMXEXT @@ -197,7 +197,6 @@ #define HAVE_YASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 #define HAVE_ALSA_ASOUNDLIB_H 0 #define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 1 @@ -300,6 +299,7 @@ #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 @@ -373,7 +373,7 @@ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_SDL 0 +#define HAVE_SDL2 0 #define HAVE_SECTION_DATA_REL_RO 1 #define HAVE_TEXI2HTML 0 #define HAVE_THREADS 1 @@ -398,14 +398,15 @@ #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 0 -#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODING_ENCODING_EXAMPLE 0 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0 #define CONFIG_EXTRACT_MVS_EXAMPLE 0 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 #define CONFIG_METADATA_EXAMPLE 0 #define CONFIG_MUXING_EXAMPLE 0 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -434,7 +435,6 @@ #define CONFIG_LIBCELT 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFAAC 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 @@ -453,6 +453,7 @@ #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 #define CONFIG_LIBRTMP 0 @@ -494,6 +495,7 @@ #define CONFIG_OPENSSL 0 #define CONFIG_SCHANNEL 0 #define CONFIG_SDL 0 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_X11GRAB 0 @@ -553,7 +555,6 @@ #define CONFIG_NETWORK 0 #define CONFIG_RDFT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 @@ -997,6 +998,8 @@ #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 @@ -1105,11 +1108,21 @@ #define CONFIG_BINTEXT_DECODER 0 #define CONFIG_XBIN_DECODER 0 #define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H263_CUVID_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_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 @@ -1379,6 +1392,7 @@ #define CONFIG_LIBGME_DEMUXER 0 #define CONFIG_LIBMODPLUG_DEMUXER 0 #define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1465,12 +1479,14 @@ #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_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 @@ -1495,6 +1511,8 @@ #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 @@ -1526,7 +1544,6 @@ #define CONFIG_ILBC_AT_ENCODER 0 #define CONFIG_PCM_ALAW_AT_ENCODER 0 #define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1571,6 +1588,7 @@ #define CONFIG_ABENCH_FILTER 0 #define CONFIG_ACOMPRESSOR_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 @@ -1602,6 +1620,7 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1619,6 +1638,7 @@ #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 #define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 @@ -1657,10 +1677,12 @@ #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ASS_FILTER 0 -#define CONFIG_BENCH_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 @@ -1716,6 +1738,7 @@ #define CONFIG_FRAMESTEP_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 @@ -1724,11 +1747,12 @@ #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 +#define CONFIG_HUE_FILTER 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 #define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1737,16 +1761,21 @@ #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 @@ -1764,6 +1793,7 @@ #define CONFIG_PIXDESCTEST_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 @@ -1778,9 +1808,9 @@ #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 #define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 @@ -1794,8 +1824,10 @@ #define CONFIG_SHOWPALETTE_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 #define CONFIG_SSIM_FILTER 0 @@ -1814,6 +1846,7 @@ #define CONFIG_TRIM_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1822,6 +1855,7 @@ #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 #define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 #define CONFIG_YADIF_FILTER 0 #define CONFIG_ZMQ_FILTER 0 @@ -1843,6 +1877,7 @@ #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_ADRAWGRAPH_FILTER 0 #define CONFIG_AHISTOGRAM_FILTER 0 @@ -1859,11 +1894,13 @@ #define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1874,12 +1911,16 @@ #define CONFIG_HEVC_CUVID_HWACCEL 0 #define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1888,6 +1929,8 @@ #define CONFIG_MPEG2_VAAPI_HWACCEL 0 #define CONFIG_MPEG2_VDPAU_HWACCEL 0 #define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1900,9 +1943,11 @@ #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_VP9_CUVID_HWACCEL 0 #define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1959,6 +2004,7 @@ #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_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 @@ -2016,6 +2062,7 @@ #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 @@ -2062,6 +2109,7 @@ #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 @@ -2085,7 +2133,7 @@ #define CONFIG_OPENGL_OUTDEV 0 #define CONFIG_OSS_OUTDEV 0 #define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 #define CONFIG_SNDIO_OUTDEV 0 #define CONFIG_V4L2_OUTDEV 0 #define CONFIG_XV_OUTDEV 0 @@ -2157,6 +2205,7 @@ #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 diff --git a/media/ffvpx/config_win32.asm b/media/ffvpx/config_win32.asm index ceefcee373..85eef2216e 100644 --- a/media/ffvpx/config_win32.asm +++ b/media/ffvpx/config_win32.asm @@ -181,7 +181,6 @@ %define HAVE_YASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 -%define HAVE_INCOMPATIBLE_LIBAV_ABI 0 %define HAVE_ALSA_ASOUNDLIB_H 0 %define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 0 @@ -284,6 +283,7 @@ %define HAVE_ISATTY 1 %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 1 +%define HAVE_LOADLIBRARY 0 %define HAVE_LSTAT 0 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 @@ -358,7 +358,7 @@ %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 -%define HAVE_SDL 0 +%define HAVE_SDL2 0 %define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 %define HAVE_THREADS 1 @@ -383,14 +383,15 @@ %define CONFIG_MANPAGES 1 %define CONFIG_PODPAGES 1 %define CONFIG_TXTPAGES 1 -%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_DECODING_ENCODING_EXAMPLE 0 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0 %define CONFIG_EXTRACT_MVS_EXAMPLE 0 %define CONFIG_FILTER_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 %define CONFIG_METADATA_EXAMPLE 0 %define CONFIG_MUXING_EXAMPLE 0 %define CONFIG_QSVDEC_EXAMPLE 0 @@ -419,7 +420,6 @@ %define CONFIG_LIBCELT 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBEBUR128 0 -%define CONFIG_LIBFAAC 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_LIBFLITE 0 %define CONFIG_LIBFONTCONFIG 0 @@ -438,6 +438,7 @@ %define CONFIG_LIBOPENCV 0 %define CONFIG_LIBOPENH264 0 %define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPENMPT 0 %define CONFIG_LIBOPUS 0 %define CONFIG_LIBPULSE 0 %define CONFIG_LIBRTMP 0 @@ -479,6 +480,7 @@ %define CONFIG_OPENSSL 0 %define CONFIG_SCHANNEL 1 %define CONFIG_SDL 0 +%define CONFIG_SDL2 0 %define CONFIG_SECURETRANSPORT 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_X11GRAB 0 @@ -538,7 +540,6 @@ %define CONFIG_NETWORK 0 %define CONFIG_RDFT 0 %define CONFIG_FONTCONFIG 0 -%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 %define CONFIG_MEMALIGN_HACK 0 %define CONFIG_MEMORY_POISONING 0 %define CONFIG_NEON_CLOBBER_TEST 0 @@ -982,6 +983,8 @@ %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 @@ -1090,11 +1093,21 @@ %define CONFIG_BINTEXT_DECODER 0 %define CONFIG_XBIN_DECODER 0 %define CONFIG_IDF_DECODER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H263_CUVID_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_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 @@ -1364,6 +1377,7 @@ %define CONFIG_LIBGME_DEMUXER 0 %define CONFIG_LIBMODPLUG_DEMUXER 0 %define CONFIG_LIBNUT_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 %define CONFIG_A64MULTI_ENCODER 0 %define CONFIG_A64MULTI5_ENCODER 0 %define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1450,12 +1464,14 @@ %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_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 @@ -1480,6 +1496,8 @@ %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 @@ -1511,7 +1529,6 @@ %define CONFIG_ILBC_AT_ENCODER 0 %define CONFIG_PCM_ALAW_AT_ENCODER 0 %define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_LIBFAAC_ENCODER 0 %define CONFIG_LIBFDK_AAC_ENCODER 0 %define CONFIG_LIBGSM_ENCODER 0 %define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1556,6 +1573,7 @@ %define CONFIG_ABENCH_FILTER 0 %define CONFIG_ACOMPRESSOR_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 @@ -1587,6 +1605,7 @@ %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 %define CONFIG_ASHOWINFO_FILTER 0 +%define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 %define CONFIG_ASTATS_FILTER 0 %define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1604,6 +1623,7 @@ %define CONFIG_CHORUS_FILTER 0 %define CONFIG_COMPAND_FILTER 0 %define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 %define CONFIG_DCSHIFT_FILTER 0 %define CONFIG_DYNAUDNORM_FILTER 0 %define CONFIG_EARWAX_FILTER 0 @@ -1642,10 +1662,12 @@ %define CONFIG_ANULLSINK_FILTER 0 %define CONFIG_ALPHAEXTRACT_FILTER 0 %define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_ATADENOISE_FILTER 0 %define CONFIG_ASS_FILTER 0 -%define CONFIG_BENCH_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 %define CONFIG_BBOX_FILTER 0 +%define CONFIG_BENCH_FILTER 0 +%define CONFIG_BITPLANENOISE_FILTER 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 @@ -1701,6 +1723,7 @@ %define CONFIG_FRAMESTEP_FILTER 0 %define CONFIG_FREI0R_FILTER 0 %define CONFIG_FSPP_FILTER 0 +%define CONFIG_GBLUR_FILTER 0 %define CONFIG_GEQ_FILTER 0 %define CONFIG_GRADFUN_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 @@ -1709,11 +1732,12 @@ %define CONFIG_HISTOGRAM_FILTER 0 %define CONFIG_HQDN3D_FILTER 0 %define CONFIG_HQX_FILTER 0 +%define CONFIG_HSTACK_FILTER 0 +%define CONFIG_HUE_FILTER 0 %define CONFIG_HWDOWNLOAD_FILTER 0 %define CONFIG_HWUPLOAD_FILTER 0 %define CONFIG_HWUPLOAD_CUDA_FILTER 0 -%define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HUE_FILTER 0 +%define CONFIG_HYSTERESIS_FILTER 0 %define CONFIG_IDET_FILTER 0 %define CONFIG_IL_FILTER 0 %define CONFIG_INFLATE_FILTER 0 @@ -1722,16 +1746,21 @@ %define CONFIG_KERNDEINT_FILTER 0 %define CONFIG_LENSCORRECTION_FILTER 0 %define CONFIG_LOOP_FILTER 0 -%define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 %define CONFIG_MASKEDMERGE_FILTER 0 %define CONFIG_MCDEINT_FILTER 0 %define CONFIG_MERGEPLANES_FILTER 0 +%define CONFIG_MESTIMATE_FILTER 0 %define CONFIG_METADATA_FILTER 0 +%define CONFIG_MINTERPOLATE_FILTER 0 %define CONFIG_MPDECIMATE_FILTER 0 %define CONFIG_NEGATE_FILTER 0 +%define CONFIG_NLMEANS_FILTER 0 %define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 %define CONFIG_NOISE_FILTER 0 @@ -1749,6 +1778,7 @@ %define CONFIG_PIXDESCTEST_FILTER 0 %define CONFIG_PP_FILTER 0 %define CONFIG_PP7_FILTER 0 +%define CONFIG_PREWITT_FILTER 0 %define CONFIG_PSNR_FILTER 0 %define CONFIG_PULLUP_FILTER 0 %define CONFIG_QP_FILTER 0 @@ -1763,9 +1793,9 @@ %define CONFIG_ROTATE_FILTER 0 %define CONFIG_SAB_FILTER 0 %define CONFIG_SCALE_FILTER 0 -%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SCALE_NPP_FILTER 0 %define CONFIG_SCALE_VAAPI_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 %define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 @@ -1779,8 +1809,10 @@ %define CONFIG_SHOWPALETTE_FILTER 0 %define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 +%define CONFIG_SIDEDATA_FILTER 0 %define CONFIG_SIGNALSTATS_FILTER 0 %define CONFIG_SMARTBLUR_FILTER 0 +%define CONFIG_SOBEL_FILTER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 %define CONFIG_SSIM_FILTER 0 @@ -1799,6 +1831,7 @@ %define CONFIG_TRIM_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 %define CONFIG_USPP_FILTER 0 +%define CONFIG_VAGUEDENOISER_FILTER 0 %define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1807,6 +1840,7 @@ %define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 %define CONFIG_WAVEFORM_FILTER 0 +%define CONFIG_WEAVE_FILTER 0 %define CONFIG_XBR_FILTER 0 %define CONFIG_YADIF_FILTER 0 %define CONFIG_ZMQ_FILTER 0 @@ -1828,6 +1862,7 @@ %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_ADRAWGRAPH_FILTER 0 %define CONFIG_AHISTOGRAM_FILTER 0 @@ -1844,11 +1879,13 @@ %define CONFIG_SPECTRUMSYNTH_FILTER 0 %define CONFIG_AMOVIE_FILTER 0 %define CONFIG_MOVIE_FILTER 0 +%define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1859,12 +1896,16 @@ %define CONFIG_HEVC_CUVID_HWACCEL 0 %define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1873,6 +1914,8 @@ %define CONFIG_MPEG2_VAAPI_HWACCEL 0 %define CONFIG_MPEG2_VDPAU_HWACCEL 0 %define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1885,9 +1928,11 @@ %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_VP9_CUVID_HWACCEL 0 %define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1944,6 +1989,7 @@ %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_FLAC_MUXER 0 %define CONFIG_FLV_MUXER 0 @@ -2001,6 +2047,7 @@ %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 @@ -2047,6 +2094,7 @@ %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 @@ -2070,7 +2118,7 @@ %define CONFIG_OPENGL_OUTDEV 0 %define CONFIG_OSS_OUTDEV 0 %define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 %define CONFIG_SNDIO_OUTDEV 0 %define CONFIG_V4L2_OUTDEV 0 %define CONFIG_XV_OUTDEV 0 @@ -2142,6 +2190,7 @@ %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 diff --git a/media/ffvpx/config_win32.h b/media/ffvpx/config_win32.h index 219b86c640..b23b2ad9f8 100644 --- a/media/ffvpx/config_win32.h +++ b/media/ffvpx/config_win32.h @@ -197,7 +197,6 @@ #define HAVE_YASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 #define HAVE_ALSA_ASOUNDLIB_H 0 #define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 0 @@ -300,6 +299,7 @@ #define HAVE_ISATTY 1 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 1 +#define HAVE_LOADLIBRARY 0 #define HAVE_LSTAT 0 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 @@ -373,7 +373,7 @@ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_SDL 0 +#define HAVE_SDL2 0 #define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 #define HAVE_THREADS 1 @@ -398,14 +398,15 @@ #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODING_ENCODING_EXAMPLE 0 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0 #define CONFIG_EXTRACT_MVS_EXAMPLE 0 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 #define CONFIG_METADATA_EXAMPLE 0 #define CONFIG_MUXING_EXAMPLE 0 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -434,7 +435,6 @@ #define CONFIG_LIBCELT 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFAAC 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 @@ -453,6 +453,7 @@ #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 #define CONFIG_LIBRTMP 0 @@ -494,6 +495,7 @@ #define CONFIG_OPENSSL 0 #define CONFIG_SCHANNEL 1 #define CONFIG_SDL 0 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_X11GRAB 0 @@ -553,7 +555,6 @@ #define CONFIG_NETWORK 0 #define CONFIG_RDFT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 @@ -997,6 +998,8 @@ #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 @@ -1105,11 +1108,21 @@ #define CONFIG_BINTEXT_DECODER 0 #define CONFIG_XBIN_DECODER 0 #define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H263_CUVID_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_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 @@ -1379,6 +1392,7 @@ #define CONFIG_LIBGME_DEMUXER 0 #define CONFIG_LIBMODPLUG_DEMUXER 0 #define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1465,12 +1479,14 @@ #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_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 @@ -1495,6 +1511,8 @@ #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 @@ -1526,7 +1544,6 @@ #define CONFIG_ILBC_AT_ENCODER 0 #define CONFIG_PCM_ALAW_AT_ENCODER 0 #define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1571,6 +1588,7 @@ #define CONFIG_ABENCH_FILTER 0 #define CONFIG_ACOMPRESSOR_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 @@ -1602,6 +1620,7 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1619,6 +1638,7 @@ #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 #define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 @@ -1657,10 +1677,12 @@ #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ASS_FILTER 0 -#define CONFIG_BENCH_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 @@ -1716,6 +1738,7 @@ #define CONFIG_FRAMESTEP_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 @@ -1724,11 +1747,12 @@ #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 +#define CONFIG_HUE_FILTER 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 #define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1737,16 +1761,21 @@ #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 @@ -1764,6 +1793,7 @@ #define CONFIG_PIXDESCTEST_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 @@ -1778,9 +1808,9 @@ #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 #define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 @@ -1794,8 +1824,10 @@ #define CONFIG_SHOWPALETTE_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 #define CONFIG_SSIM_FILTER 0 @@ -1814,6 +1846,7 @@ #define CONFIG_TRIM_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1822,6 +1855,7 @@ #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 #define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 #define CONFIG_YADIF_FILTER 0 #define CONFIG_ZMQ_FILTER 0 @@ -1843,6 +1877,7 @@ #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_ADRAWGRAPH_FILTER 0 #define CONFIG_AHISTOGRAM_FILTER 0 @@ -1859,11 +1894,13 @@ #define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1874,12 +1911,16 @@ #define CONFIG_HEVC_CUVID_HWACCEL 0 #define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1888,6 +1929,8 @@ #define CONFIG_MPEG2_VAAPI_HWACCEL 0 #define CONFIG_MPEG2_VDPAU_HWACCEL 0 #define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1900,9 +1943,11 @@ #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_VP9_CUVID_HWACCEL 0 #define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1959,6 +2004,7 @@ #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_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 @@ -2016,6 +2062,7 @@ #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 @@ -2062,6 +2109,7 @@ #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 @@ -2085,7 +2133,7 @@ #define CONFIG_OPENGL_OUTDEV 0 #define CONFIG_OSS_OUTDEV 0 #define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 #define CONFIG_SNDIO_OUTDEV 0 #define CONFIG_V4L2_OUTDEV 0 #define CONFIG_XV_OUTDEV 0 @@ -2157,6 +2205,7 @@ #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 diff --git a/media/ffvpx/config_win64.asm b/media/ffvpx/config_win64.asm index 968b225c80..d2ff064862 100644 --- a/media/ffvpx/config_win64.asm +++ b/media/ffvpx/config_win64.asm @@ -181,7 +181,6 @@ %define HAVE_YASM 1 %define HAVE_BIGENDIAN 0 %define HAVE_FAST_UNALIGNED 1 -%define HAVE_INCOMPATIBLE_LIBAV_ABI 0 %define HAVE_ALSA_ASOUNDLIB_H 0 %define HAVE_ALTIVEC_H 0 %define HAVE_ARPA_INET_H 0 @@ -284,6 +283,7 @@ %define HAVE_ISATTY 1 %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 %define HAVE_KBHIT 1 +%define HAVE_LOADLIBRARY 0 %define HAVE_LSTAT 0 %define HAVE_LZO1X_999_COMPRESS 0 %define HAVE_MACH_ABSOLUTE_TIME 0 @@ -358,7 +358,7 @@ %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 %define HAVE_PERL 1 %define HAVE_POD2MAN 1 -%define HAVE_SDL 0 +%define HAVE_SDL2 0 %define HAVE_SECTION_DATA_REL_RO 0 %define HAVE_TEXI2HTML 0 %define HAVE_THREADS 1 @@ -383,14 +383,15 @@ %define CONFIG_MANPAGES 1 %define CONFIG_PODPAGES 1 %define CONFIG_TXTPAGES 1 -%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +%define CONFIG_AVIO_READING_EXAMPLE 1 %define CONFIG_DECODING_ENCODING_EXAMPLE 0 %define CONFIG_DEMUXING_DECODING_EXAMPLE 0 %define CONFIG_EXTRACT_MVS_EXAMPLE 0 %define CONFIG_FILTER_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_AUDIO_EXAMPLE 0 %define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 %define CONFIG_METADATA_EXAMPLE 0 %define CONFIG_MUXING_EXAMPLE 0 %define CONFIG_QSVDEC_EXAMPLE 0 @@ -419,7 +420,6 @@ %define CONFIG_LIBCELT 0 %define CONFIG_LIBDC1394 0 %define CONFIG_LIBEBUR128 0 -%define CONFIG_LIBFAAC 0 %define CONFIG_LIBFDK_AAC 0 %define CONFIG_LIBFLITE 0 %define CONFIG_LIBFONTCONFIG 0 @@ -438,6 +438,7 @@ %define CONFIG_LIBOPENCV 0 %define CONFIG_LIBOPENH264 0 %define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPENMPT 0 %define CONFIG_LIBOPUS 0 %define CONFIG_LIBPULSE 0 %define CONFIG_LIBRTMP 0 @@ -479,6 +480,7 @@ %define CONFIG_OPENSSL 0 %define CONFIG_SCHANNEL 1 %define CONFIG_SDL 0 +%define CONFIG_SDL2 0 %define CONFIG_SECURETRANSPORT 0 %define CONFIG_VIDEOTOOLBOX 0 %define CONFIG_X11GRAB 0 @@ -538,7 +540,6 @@ %define CONFIG_NETWORK 0 %define CONFIG_RDFT 0 %define CONFIG_FONTCONFIG 0 -%define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 %define CONFIG_MEMALIGN_HACK 0 %define CONFIG_MEMORY_POISONING 0 %define CONFIG_NEON_CLOBBER_TEST 0 @@ -982,6 +983,8 @@ %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 @@ -1090,11 +1093,21 @@ %define CONFIG_BINTEXT_DECODER 0 %define CONFIG_XBIN_DECODER 0 %define CONFIG_IDF_DECODER 0 +%define CONFIG_LIBOPENH264_DECODER 0 +%define CONFIG_H263_CUVID_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_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 @@ -1364,6 +1377,7 @@ %define CONFIG_LIBGME_DEMUXER 0 %define CONFIG_LIBMODPLUG_DEMUXER 0 %define CONFIG_LIBNUT_DEMUXER 0 +%define CONFIG_LIBOPENMPT_DEMUXER 0 %define CONFIG_A64MULTI_ENCODER 0 %define CONFIG_A64MULTI5_ENCODER 0 %define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1450,12 +1464,14 @@ %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_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 @@ -1480,6 +1496,8 @@ %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 @@ -1511,7 +1529,6 @@ %define CONFIG_ILBC_AT_ENCODER 0 %define CONFIG_PCM_ALAW_AT_ENCODER 0 %define CONFIG_PCM_MULAW_AT_ENCODER 0 -%define CONFIG_LIBFAAC_ENCODER 0 %define CONFIG_LIBFDK_AAC_ENCODER 0 %define CONFIG_LIBGSM_ENCODER 0 %define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1556,6 +1573,7 @@ %define CONFIG_ABENCH_FILTER 0 %define CONFIG_ACOMPRESSOR_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 @@ -1587,6 +1605,7 @@ %define CONFIG_ASETRATE_FILTER 0 %define CONFIG_ASETTB_FILTER 0 %define CONFIG_ASHOWINFO_FILTER 0 +%define CONFIG_ASIDEDATA_FILTER 0 %define CONFIG_ASPLIT_FILTER 0 %define CONFIG_ASTATS_FILTER 0 %define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1604,6 +1623,7 @@ %define CONFIG_CHORUS_FILTER 0 %define CONFIG_COMPAND_FILTER 0 %define CONFIG_COMPENSATIONDELAY_FILTER 0 +%define CONFIG_CRYSTALIZER_FILTER 0 %define CONFIG_DCSHIFT_FILTER 0 %define CONFIG_DYNAUDNORM_FILTER 0 %define CONFIG_EARWAX_FILTER 0 @@ -1642,10 +1662,12 @@ %define CONFIG_ANULLSINK_FILTER 0 %define CONFIG_ALPHAEXTRACT_FILTER 0 %define CONFIG_ALPHAMERGE_FILTER 0 -%define CONFIG_ATADENOISE_FILTER 0 %define CONFIG_ASS_FILTER 0 -%define CONFIG_BENCH_FILTER 0 +%define CONFIG_ATADENOISE_FILTER 0 +%define CONFIG_AVGBLUR_FILTER 0 %define CONFIG_BBOX_FILTER 0 +%define CONFIG_BENCH_FILTER 0 +%define CONFIG_BITPLANENOISE_FILTER 0 %define CONFIG_BLACKDETECT_FILTER 0 %define CONFIG_BLACKFRAME_FILTER 0 %define CONFIG_BLEND_FILTER 0 @@ -1701,6 +1723,7 @@ %define CONFIG_FRAMESTEP_FILTER 0 %define CONFIG_FREI0R_FILTER 0 %define CONFIG_FSPP_FILTER 0 +%define CONFIG_GBLUR_FILTER 0 %define CONFIG_GEQ_FILTER 0 %define CONFIG_GRADFUN_FILTER 0 %define CONFIG_HALDCLUT_FILTER 0 @@ -1709,11 +1732,12 @@ %define CONFIG_HISTOGRAM_FILTER 0 %define CONFIG_HQDN3D_FILTER 0 %define CONFIG_HQX_FILTER 0 +%define CONFIG_HSTACK_FILTER 0 +%define CONFIG_HUE_FILTER 0 %define CONFIG_HWDOWNLOAD_FILTER 0 %define CONFIG_HWUPLOAD_FILTER 0 %define CONFIG_HWUPLOAD_CUDA_FILTER 0 -%define CONFIG_HSTACK_FILTER 0 -%define CONFIG_HUE_FILTER 0 +%define CONFIG_HYSTERESIS_FILTER 0 %define CONFIG_IDET_FILTER 0 %define CONFIG_IL_FILTER 0 %define CONFIG_INFLATE_FILTER 0 @@ -1722,16 +1746,21 @@ %define CONFIG_KERNDEINT_FILTER 0 %define CONFIG_LENSCORRECTION_FILTER 0 %define CONFIG_LOOP_FILTER 0 -%define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 %define CONFIG_MASKEDMERGE_FILTER 0 %define CONFIG_MCDEINT_FILTER 0 %define CONFIG_MERGEPLANES_FILTER 0 +%define CONFIG_MESTIMATE_FILTER 0 %define CONFIG_METADATA_FILTER 0 +%define CONFIG_MINTERPOLATE_FILTER 0 %define CONFIG_MPDECIMATE_FILTER 0 %define CONFIG_NEGATE_FILTER 0 +%define CONFIG_NLMEANS_FILTER 0 %define CONFIG_NNEDI_FILTER 0 %define CONFIG_NOFORMAT_FILTER 0 %define CONFIG_NOISE_FILTER 0 @@ -1749,6 +1778,7 @@ %define CONFIG_PIXDESCTEST_FILTER 0 %define CONFIG_PP_FILTER 0 %define CONFIG_PP7_FILTER 0 +%define CONFIG_PREWITT_FILTER 0 %define CONFIG_PSNR_FILTER 0 %define CONFIG_PULLUP_FILTER 0 %define CONFIG_QP_FILTER 0 @@ -1763,9 +1793,9 @@ %define CONFIG_ROTATE_FILTER 0 %define CONFIG_SAB_FILTER 0 %define CONFIG_SCALE_FILTER 0 -%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SCALE_NPP_FILTER 0 %define CONFIG_SCALE_VAAPI_FILTER 0 +%define CONFIG_SCALE2REF_FILTER 0 %define CONFIG_SELECT_FILTER 0 %define CONFIG_SELECTIVECOLOR_FILTER 0 %define CONFIG_SENDCMD_FILTER 0 @@ -1779,8 +1809,10 @@ %define CONFIG_SHOWPALETTE_FILTER 0 %define CONFIG_SHUFFLEFRAMES_FILTER 0 %define CONFIG_SHUFFLEPLANES_FILTER 0 +%define CONFIG_SIDEDATA_FILTER 0 %define CONFIG_SIGNALSTATS_FILTER 0 %define CONFIG_SMARTBLUR_FILTER 0 +%define CONFIG_SOBEL_FILTER 0 %define CONFIG_SPLIT_FILTER 0 %define CONFIG_SPP_FILTER 0 %define CONFIG_SSIM_FILTER 0 @@ -1799,6 +1831,7 @@ %define CONFIG_TRIM_FILTER 0 %define CONFIG_UNSHARP_FILTER 0 %define CONFIG_USPP_FILTER 0 +%define CONFIG_VAGUEDENOISER_FILTER 0 %define CONFIG_VECTORSCOPE_FILTER 0 %define CONFIG_VFLIP_FILTER 0 %define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1807,6 +1840,7 @@ %define CONFIG_VSTACK_FILTER 0 %define CONFIG_W3FDIF_FILTER 0 %define CONFIG_WAVEFORM_FILTER 0 +%define CONFIG_WEAVE_FILTER 0 %define CONFIG_XBR_FILTER 0 %define CONFIG_YADIF_FILTER 0 %define CONFIG_ZMQ_FILTER 0 @@ -1828,6 +1862,7 @@ %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_ADRAWGRAPH_FILTER 0 %define CONFIG_AHISTOGRAM_FILTER 0 @@ -1844,11 +1879,13 @@ %define CONFIG_SPECTRUMSYNTH_FILTER 0 %define CONFIG_AMOVIE_FILTER 0 %define CONFIG_MOVIE_FILTER 0 +%define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1859,12 +1896,16 @@ %define CONFIG_HEVC_CUVID_HWACCEL 0 %define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1873,6 +1914,8 @@ %define CONFIG_MPEG2_VAAPI_HWACCEL 0 %define CONFIG_MPEG2_VDPAU_HWACCEL 0 %define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1885,9 +1928,11 @@ %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_VP9_CUVID_HWACCEL 0 %define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1944,6 +1989,7 @@ %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_FLAC_MUXER 0 %define CONFIG_FLV_MUXER 0 @@ -2001,6 +2047,7 @@ %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 @@ -2047,6 +2094,7 @@ %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 @@ -2070,7 +2118,7 @@ %define CONFIG_OPENGL_OUTDEV 0 %define CONFIG_OSS_OUTDEV 0 %define CONFIG_PULSE_OUTDEV 0 -%define CONFIG_SDL_OUTDEV 0 +%define CONFIG_SDL2_OUTDEV 0 %define CONFIG_SNDIO_OUTDEV 0 %define CONFIG_V4L2_OUTDEV 0 %define CONFIG_XV_OUTDEV 0 @@ -2142,6 +2190,7 @@ %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 diff --git a/media/ffvpx/config_win64.h b/media/ffvpx/config_win64.h index 9f83fc5308..64d09d2265 100644 --- a/media/ffvpx/config_win64.h +++ b/media/ffvpx/config_win64.h @@ -9,7 +9,7 @@ #define CC_IDENT "Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64" #define av_restrict __restrict #define EXTERN_PREFIX "" -#define EXTERN_ASM +#define EXTERN_ASM #define BUILDSUF "" #define SLIBSUF ".dll" #define HAVE_MMX2 HAVE_MMXEXT @@ -197,7 +197,6 @@ #define HAVE_YASM 1 #define HAVE_BIGENDIAN 0 #define HAVE_FAST_UNALIGNED 1 -#define HAVE_INCOMPATIBLE_LIBAV_ABI 0 #define HAVE_ALSA_ASOUNDLIB_H 0 #define HAVE_ALTIVEC_H 0 #define HAVE_ARPA_INET_H 0 @@ -300,6 +299,7 @@ #define HAVE_ISATTY 1 #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 #define HAVE_KBHIT 1 +#define HAVE_LOADLIBRARY 0 #define HAVE_LSTAT 0 #define HAVE_LZO1X_999_COMPRESS 0 #define HAVE_MACH_ABSOLUTE_TIME 0 @@ -373,7 +373,7 @@ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 #define HAVE_PERL 1 #define HAVE_POD2MAN 1 -#define HAVE_SDL 0 +#define HAVE_SDL2 0 #define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 #define HAVE_THREADS 1 @@ -398,14 +398,15 @@ #define CONFIG_MANPAGES 1 #define CONFIG_PODPAGES 1 #define CONFIG_TXTPAGES 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 +#define CONFIG_AVIO_READING_EXAMPLE 1 #define CONFIG_DECODING_ENCODING_EXAMPLE 0 #define CONFIG_DEMUXING_DECODING_EXAMPLE 0 #define CONFIG_EXTRACT_MVS_EXAMPLE 0 #define CONFIG_FILTER_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_AUDIO_EXAMPLE 0 #define CONFIG_FILTERING_VIDEO_EXAMPLE 0 +#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 0 #define CONFIG_METADATA_EXAMPLE 0 #define CONFIG_MUXING_EXAMPLE 0 #define CONFIG_QSVDEC_EXAMPLE 0 @@ -434,7 +435,6 @@ #define CONFIG_LIBCELT 0 #define CONFIG_LIBDC1394 0 #define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFAAC 0 #define CONFIG_LIBFDK_AAC 0 #define CONFIG_LIBFLITE 0 #define CONFIG_LIBFONTCONFIG 0 @@ -453,6 +453,7 @@ #define CONFIG_LIBOPENCV 0 #define CONFIG_LIBOPENH264 0 #define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPENMPT 0 #define CONFIG_LIBOPUS 0 #define CONFIG_LIBPULSE 0 #define CONFIG_LIBRTMP 0 @@ -494,6 +495,7 @@ #define CONFIG_OPENSSL 0 #define CONFIG_SCHANNEL 1 #define CONFIG_SDL 0 +#define CONFIG_SDL2 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_VIDEOTOOLBOX 0 #define CONFIG_X11GRAB 0 @@ -553,7 +555,6 @@ #define CONFIG_NETWORK 0 #define CONFIG_RDFT 0 #define CONFIG_FONTCONFIG 0 -#define CONFIG_INCOMPATIBLE_LIBAV_ABI 0 #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 @@ -997,6 +998,8 @@ #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 @@ -1105,11 +1108,21 @@ #define CONFIG_BINTEXT_DECODER 0 #define CONFIG_XBIN_DECODER 0 #define CONFIG_IDF_DECODER 0 +#define CONFIG_LIBOPENH264_DECODER 0 +#define CONFIG_H263_CUVID_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_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 @@ -1379,6 +1392,7 @@ #define CONFIG_LIBGME_DEMUXER 0 #define CONFIG_LIBMODPLUG_DEMUXER 0 #define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_LIBOPENMPT_DEMUXER 0 #define CONFIG_A64MULTI_ENCODER 0 #define CONFIG_A64MULTI5_ENCODER 0 #define CONFIG_ALIAS_PIX_ENCODER 0 @@ -1465,12 +1479,14 @@ #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_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 @@ -1495,6 +1511,8 @@ #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 @@ -1526,7 +1544,6 @@ #define CONFIG_ILBC_AT_ENCODER 0 #define CONFIG_PCM_ALAW_AT_ENCODER 0 #define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFAAC_ENCODER 0 #define CONFIG_LIBFDK_AAC_ENCODER 0 #define CONFIG_LIBGSM_ENCODER 0 #define CONFIG_LIBGSM_MS_ENCODER 0 @@ -1571,6 +1588,7 @@ #define CONFIG_ABENCH_FILTER 0 #define CONFIG_ACOMPRESSOR_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 @@ -1602,6 +1620,7 @@ #define CONFIG_ASETRATE_FILTER 0 #define CONFIG_ASETTB_FILTER 0 #define CONFIG_ASHOWINFO_FILTER 0 +#define CONFIG_ASIDEDATA_FILTER 0 #define CONFIG_ASPLIT_FILTER 0 #define CONFIG_ASTATS_FILTER 0 #define CONFIG_ASTREAMSELECT_FILTER 0 @@ -1619,6 +1638,7 @@ #define CONFIG_CHORUS_FILTER 0 #define CONFIG_COMPAND_FILTER 0 #define CONFIG_COMPENSATIONDELAY_FILTER 0 +#define CONFIG_CRYSTALIZER_FILTER 0 #define CONFIG_DCSHIFT_FILTER 0 #define CONFIG_DYNAUDNORM_FILTER 0 #define CONFIG_EARWAX_FILTER 0 @@ -1657,10 +1677,12 @@ #define CONFIG_ANULLSINK_FILTER 0 #define CONFIG_ALPHAEXTRACT_FILTER 0 #define CONFIG_ALPHAMERGE_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 0 #define CONFIG_ASS_FILTER 0 -#define CONFIG_BENCH_FILTER 0 +#define CONFIG_ATADENOISE_FILTER 0 +#define CONFIG_AVGBLUR_FILTER 0 #define CONFIG_BBOX_FILTER 0 +#define CONFIG_BENCH_FILTER 0 +#define CONFIG_BITPLANENOISE_FILTER 0 #define CONFIG_BLACKDETECT_FILTER 0 #define CONFIG_BLACKFRAME_FILTER 0 #define CONFIG_BLEND_FILTER 0 @@ -1716,6 +1738,7 @@ #define CONFIG_FRAMESTEP_FILTER 0 #define CONFIG_FREI0R_FILTER 0 #define CONFIG_FSPP_FILTER 0 +#define CONFIG_GBLUR_FILTER 0 #define CONFIG_GEQ_FILTER 0 #define CONFIG_GRADFUN_FILTER 0 #define CONFIG_HALDCLUT_FILTER 0 @@ -1724,11 +1747,12 @@ #define CONFIG_HISTOGRAM_FILTER 0 #define CONFIG_HQDN3D_FILTER 0 #define CONFIG_HQX_FILTER 0 +#define CONFIG_HSTACK_FILTER 0 +#define CONFIG_HUE_FILTER 0 #define CONFIG_HWDOWNLOAD_FILTER 0 #define CONFIG_HWUPLOAD_FILTER 0 #define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HSTACK_FILTER 0 -#define CONFIG_HUE_FILTER 0 +#define CONFIG_HYSTERESIS_FILTER 0 #define CONFIG_IDET_FILTER 0 #define CONFIG_IL_FILTER 0 #define CONFIG_INFLATE_FILTER 0 @@ -1737,16 +1761,21 @@ #define CONFIG_KERNDEINT_FILTER 0 #define CONFIG_LENSCORRECTION_FILTER 0 #define CONFIG_LOOP_FILTER 0 -#define CONFIG_LUT3D_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_MASKEDCLAMP_FILTER 0 #define CONFIG_MASKEDMERGE_FILTER 0 #define CONFIG_MCDEINT_FILTER 0 #define CONFIG_MERGEPLANES_FILTER 0 +#define CONFIG_MESTIMATE_FILTER 0 #define CONFIG_METADATA_FILTER 0 +#define CONFIG_MINTERPOLATE_FILTER 0 #define CONFIG_MPDECIMATE_FILTER 0 #define CONFIG_NEGATE_FILTER 0 +#define CONFIG_NLMEANS_FILTER 0 #define CONFIG_NNEDI_FILTER 0 #define CONFIG_NOFORMAT_FILTER 0 #define CONFIG_NOISE_FILTER 0 @@ -1764,6 +1793,7 @@ #define CONFIG_PIXDESCTEST_FILTER 0 #define CONFIG_PP_FILTER 0 #define CONFIG_PP7_FILTER 0 +#define CONFIG_PREWITT_FILTER 0 #define CONFIG_PSNR_FILTER 0 #define CONFIG_PULLUP_FILTER 0 #define CONFIG_QP_FILTER 0 @@ -1778,9 +1808,9 @@ #define CONFIG_ROTATE_FILTER 0 #define CONFIG_SAB_FILTER 0 #define CONFIG_SCALE_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SCALE_NPP_FILTER 0 #define CONFIG_SCALE_VAAPI_FILTER 0 +#define CONFIG_SCALE2REF_FILTER 0 #define CONFIG_SELECT_FILTER 0 #define CONFIG_SELECTIVECOLOR_FILTER 0 #define CONFIG_SENDCMD_FILTER 0 @@ -1794,8 +1824,10 @@ #define CONFIG_SHOWPALETTE_FILTER 0 #define CONFIG_SHUFFLEFRAMES_FILTER 0 #define CONFIG_SHUFFLEPLANES_FILTER 0 +#define CONFIG_SIDEDATA_FILTER 0 #define CONFIG_SIGNALSTATS_FILTER 0 #define CONFIG_SMARTBLUR_FILTER 0 +#define CONFIG_SOBEL_FILTER 0 #define CONFIG_SPLIT_FILTER 0 #define CONFIG_SPP_FILTER 0 #define CONFIG_SSIM_FILTER 0 @@ -1814,6 +1846,7 @@ #define CONFIG_TRIM_FILTER 0 #define CONFIG_UNSHARP_FILTER 0 #define CONFIG_USPP_FILTER 0 +#define CONFIG_VAGUEDENOISER_FILTER 0 #define CONFIG_VECTORSCOPE_FILTER 0 #define CONFIG_VFLIP_FILTER 0 #define CONFIG_VIDSTABDETECT_FILTER 0 @@ -1822,6 +1855,7 @@ #define CONFIG_VSTACK_FILTER 0 #define CONFIG_W3FDIF_FILTER 0 #define CONFIG_WAVEFORM_FILTER 0 +#define CONFIG_WEAVE_FILTER 0 #define CONFIG_XBR_FILTER 0 #define CONFIG_YADIF_FILTER 0 #define CONFIG_ZMQ_FILTER 0 @@ -1843,6 +1877,7 @@ #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_ADRAWGRAPH_FILTER 0 #define CONFIG_AHISTOGRAM_FILTER 0 @@ -1859,11 +1894,13 @@ #define CONFIG_SPECTRUMSYNTH_FILTER 0 #define CONFIG_AMOVIE_FILTER 0 #define CONFIG_MOVIE_FILTER 0 +#define CONFIG_H263_CUVID_HWACCEL 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_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 @@ -1874,12 +1911,16 @@ #define CONFIG_HEVC_CUVID_HWACCEL 0 #define CONFIG_HEVC_D3D11VA_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_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_DXVA2_HWACCEL 0 @@ -1888,6 +1929,8 @@ #define CONFIG_MPEG2_VAAPI_HWACCEL 0 #define CONFIG_MPEG2_VDPAU_HWACCEL 0 #define CONFIG_MPEG2_VIDEOTOOLBOX_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 @@ -1900,9 +1943,11 @@ #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_VP9_CUVID_HWACCEL 0 #define CONFIG_VP9_D3D11VA_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_DXVA2_HWACCEL 0 @@ -1959,6 +2004,7 @@ #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_FLAC_MUXER 0 #define CONFIG_FLV_MUXER 0 @@ -2016,6 +2062,7 @@ #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 @@ -2062,6 +2109,7 @@ #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 @@ -2085,7 +2133,7 @@ #define CONFIG_OPENGL_OUTDEV 0 #define CONFIG_OSS_OUTDEV 0 #define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SDL2_OUTDEV 0 #define CONFIG_SNDIO_OUTDEV 0 #define CONFIG_V4L2_OUTDEV 0 #define CONFIG_XV_OUTDEV 0 @@ -2157,6 +2205,7 @@ #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 diff --git a/media/ffvpx/ffvpxcommon.mozbuild b/media/ffvpx/ffvpxcommon.mozbuild index 3a83f781d3..6d17e88074 100644 --- a/media/ffvpx/ffvpxcommon.mozbuild +++ b/media/ffvpx/ffvpxcommon.mozbuild @@ -43,12 +43,19 @@ if CONFIG['GNU_CC']: '-Wno-switch', '-Wno-type-limits', '-Wno-unused-function', + # XXX This does not seem to have any effect on some versions of GCC. '-Wno-deprecated-declarations', ] if CONFIG['CLANG_CXX']: CFLAGS += [ '-Wno-incompatible-pointer-types-discards-qualifiers', - '-Wno-logical-op-parentheses', + '-Wno-string-conversion', + '-Wno-visibility', + ] + else: + CFLAGS += [ + '-Wno-discarded-qualifiers', + '-Wno-maybe-uninitialized', ] # Force visibility of cpu and av_log symbols. CFLAGS += ['-include', 'libavutil_visibility.h'] @@ -73,6 +80,8 @@ elif CONFIG['_MSC_VER']: '-wd4245', # conversion from 'int' to 'uint32_t', signed/unsigned mismatch '-wd4703', # potentially uninitialized local pointer '-wd4293', # '<<' : shift count negative or too big, undefined behavior + '-wd4334', # '<<' : result of 32-bit shift implicitly converted to 64 bits + '-wd4996', # The compiler encountered a deprecated declaration. # from FFmpeg configure '-wd4244', '-wd4127', '-wd4018', '-wd4389', '-wd4146', '-wd4701', '-wd4057', '-wd4204', '-wd4706', '-wd4305', '-wd4152', '-wd4324', @@ -87,3 +96,18 @@ if CONFIG['MOZ_DEBUG']: elif not CONFIG['RELEASE_OR_BETA']: # Enable fast assertions in opt builds of Nightly and Aurora. DEFINES['ASSERT_LEVEL'] = 1 + +# clang-cl's <intrin.h> doesn't work the same as MSVC's. For details, see: +# +# http://lists.llvm.org/pipermail/cfe-dev/2016-September/050943.html +# +# As a temporary workaround while upstream decides how to address this, +# we enable modules to make <intrin.h> more MSVC-compatible. +if CONFIG['CLANG_CL']: + CFLAGS += [ + '-Xclang', + '-fmodules', + '-Xclang', + '-fmodules-cache-path=' + TOPOBJDIR + '/media/ffpvx', + '-fbuiltin-module-map', + ] diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcodecs.c index 54efaad344..b592aa3b26 100644 --- a/media/ffvpx/libavcodec/allcodecs.c +++ b/media/ffvpx/libavcodec/allcodecs.c @@ -67,11 +67,13 @@ void avcodec_register_all(void) initialized = 1; /* hardware accelerators */ + REGISTER_HWACCEL(H263_CUVID, h263_cuvid); 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_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); @@ -82,12 +84,16 @@ void avcodec_register_all(void) REGISTER_HWACCEL(HEVC_CUVID, hevc_cuvid); REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va); 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(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_DXVA2, mpeg2_dxva2); @@ -96,6 +102,8 @@ void avcodec_register_all(void) REGISTER_HWACCEL(MPEG2_VAAPI, mpeg2_vaapi); REGISTER_HWACCEL(MPEG2_VDPAU, mpeg2_vdpau); REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox); + 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); @@ -108,9 +116,11 @@ void avcodec_register_all(void) 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(VP9_CUVID, vp9_cuvid); REGISTER_HWACCEL(VP9_D3D11VA, vp9_d3d11va); 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_DXVA2, wmv3_dxva2); @@ -418,7 +428,7 @@ void avcodec_register_all(void) REGISTER_DECODER(MACE3, mace3); REGISTER_DECODER(MACE6, mace6); REGISTER_DECODER(METASOUND, metasound); - REGISTER_DECODER(MLP, mlp); + REGISTER_ENCDEC (MLP, mlp); REGISTER_DECODER(MP1, mp1); REGISTER_DECODER(MP1FLOAT, mp1float); REGISTER_ENCDEC (MP2, mp2); @@ -447,7 +457,7 @@ void avcodec_register_all(void) REGISTER_ENCDEC (SONIC, sonic); REGISTER_ENCODER(SONIC_LS, sonic_ls); REGISTER_DECODER(TAK, tak); - REGISTER_DECODER(TRUEHD, truehd); + REGISTER_ENCDEC (TRUEHD, truehd); REGISTER_DECODER(TRUESPEECH, truespeech); REGISTER_ENCDEC (TTA, tta); REGISTER_DECODER(TWINVQ, twinvq); @@ -486,6 +496,8 @@ void avcodec_register_all(void) 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); @@ -585,7 +597,6 @@ void avcodec_register_all(void) REGISTER_DECODER(QDMC_AT, qdmc_at); REGISTER_DECODER(QDM2_AT, qdm2_at); REGISTER_DECODER(LIBCELT, libcelt); - REGISTER_ENCODER(LIBFAAC, libfaac); REGISTER_ENCDEC (LIBFDK_AAC, libfdk_aac); REGISTER_ENCDEC (LIBGSM, libgsm); REGISTER_ENCDEC (LIBGSM_MS, libgsm_ms); @@ -622,7 +633,8 @@ void avcodec_register_all(void) /* external libraries, that shouldn't be used by default if one of the * above is available */ - REGISTER_ENCODER(LIBOPENH264, libopenh264); + REGISTER_ENCDEC (LIBOPENH264, libopenh264); + REGISTER_DECODER(H263_CUVID, h263_cuvid); REGISTER_DECODER(H264_CUVID, h264_cuvid); REGISTER_ENCODER(H264_NVENC, h264_nvenc); REGISTER_ENCODER(H264_OMX, h264_omx); @@ -635,15 +647,23 @@ void avcodec_register_all(void) 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_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_DECODER(MPEG4_CUVID, mpeg4_cuvid); + REGISTER_DECODER(MPEG4_MEDIACODEC, mpeg4_mediacodec); REGISTER_DECODER(VC1_CUVID, vc1_cuvid); REGISTER_DECODER(VP8_CUVID, vp8_cuvid); + REGISTER_DECODER(VP8_MEDIACODEC, vp8_mediacodec); REGISTER_DECODER(VP9_CUVID, vp9_cuvid); + REGISTER_DECODER(VP9_MEDIACODEC, vp9_mediacodec); /* parsers */ REGISTER_PARSER(AAC, aac); diff --git a/media/ffvpx/libavcodec/avcodec.h b/media/ffvpx/libavcodec/avcodec.h index 39713ed76b..e5e7f4225d 100644 --- a/media/ffvpx/libavcodec/avcodec.h +++ b/media/ffvpx/libavcodec/avcodec.h @@ -43,7 +43,9 @@ #include "version.h" /** - * @defgroup libavc Encoding/Decoding Library + * @defgroup libavc libavcodec + * Encoding/Decoding Library + * * @{ * * @defgroup lavc_decoding Decoding @@ -443,9 +445,9 @@ enum AVCodecID { AV_CODEC_ID_PCM_S24LE_PLANAR, AV_CODEC_ID_PCM_S32LE_PLANAR, AV_CODEC_ID_PCM_S16BE_PLANAR, - /* new PCM "codecs" should be added right below this line starting with - * an explicit value of for example 0x10800 - */ + + AV_CODEC_ID_PCM_S64LE = 0x10800, + AV_CODEC_ID_PCM_S64BE, /* various ADPCM codecs */ AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, @@ -629,6 +631,7 @@ enum AVCodecID { AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. AV_CODEC_ID_TTF = 0x18000, + AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream. AV_CODEC_ID_BINTEXT = 0x18800, AV_CODEC_ID_XBIN, AV_CODEC_ID_IDF, @@ -1034,6 +1037,16 @@ typedef struct RcOverride{ */ #define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16) /** + * Decoder is not a preferred choice for probing. + * This indicates that the decoder is not a good choice for probing. + * It could for example be an expensive to spin up hardware decoder, + * or it could simply not provide a lot of useful information about + * the stream. + * A decoder marked with this flag should only be used as last resort + * choice for probing. + */ +#define AV_CODEC_CAP_AVOID_PROBING (1 << 17) +/** * Codec is intra only. */ #define AV_CODEC_CAP_INTRA_ONLY 0x40000000 @@ -1348,6 +1361,14 @@ typedef struct AVCPBProperties { */ enum AVPacketSideDataType { AV_PKT_DATA_PALETTE, + + /** + * The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format + * that the extradata buffer was changed and the receiving side should + * act upon it appropriately. The new extradata is embedded in the side + * data buffer and should be immediately used for processing the current + * frame or packet. + */ AV_PKT_DATA_NEW_EXTRADATA, /** @@ -1611,6 +1632,12 @@ typedef struct AVPacket { } AVPacket; #define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe #define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted +/** + * Flag is used to discard packets which are required to maintain valid + * decoder state but are not required for output and should be dropped + * after decoding. + **/ +#define AV_PKT_FLAG_DISCARD 0x0004 enum AVSideDataParamChangeFlags { AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001, @@ -2083,22 +2110,23 @@ typedef struct AVCodecContext { * - decoding: unused */ int ildct_cmp; -#define FF_CMP_SAD 0 -#define FF_CMP_SSE 1 -#define FF_CMP_SATD 2 -#define FF_CMP_DCT 3 -#define FF_CMP_PSNR 4 -#define FF_CMP_BIT 5 -#define FF_CMP_RD 6 -#define FF_CMP_ZERO 7 -#define FF_CMP_VSAD 8 -#define FF_CMP_VSSE 9 -#define FF_CMP_NSSE 10 -#define FF_CMP_W53 11 -#define FF_CMP_W97 12 -#define FF_CMP_DCTMAX 13 -#define FF_CMP_DCT264 14 -#define FF_CMP_CHROMA 256 +#define FF_CMP_SAD 0 +#define FF_CMP_SSE 1 +#define FF_CMP_SATD 2 +#define FF_CMP_DCT 3 +#define FF_CMP_PSNR 4 +#define FF_CMP_BIT 5 +#define FF_CMP_RD 6 +#define FF_CMP_ZERO 7 +#define FF_CMP_VSAD 8 +#define FF_CMP_VSSE 9 +#define FF_CMP_NSSE 10 +#define FF_CMP_W53 11 +#define FF_CMP_W97 12 +#define FF_CMP_DCTMAX 13 +#define FF_CMP_DCT264 14 +#define FF_CMP_MEDIAN_SAD 15 +#define FF_CMP_CHROMA 256 /** * ME diamond size & shape @@ -2850,6 +2878,7 @@ typedef struct AVCodecContext { #define FF_BUG_DC_CLIP 4096 #define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders. #define FF_BUG_TRUNCATED 16384 +#define FF_BUG_IEDGE 32768 /** * strictly follow the standard (MPEG-4, ...). @@ -3165,6 +3194,13 @@ typedef struct AVCodecContext { #define FF_PROFILE_MPEG2_AAC_LOW 128 #define FF_PROFILE_MPEG2_AAC_HE 131 +#define FF_PROFILE_DNXHD 0 +#define FF_PROFILE_DNXHR_LB 1 +#define FF_PROFILE_DNXHR_SQ 2 +#define FF_PROFILE_DNXHR_HQ 3 +#define FF_PROFILE_DNXHR_HQX 4 +#define FF_PROFILE_DNXHR_444 5 + #define FF_PROFILE_DTS 20 #define FF_PROFILE_DTS_ES 30 #define FF_PROFILE_DTS_96_24 40 @@ -3189,8 +3225,10 @@ typedef struct AVCodecContext { #define FF_PROFILE_H264_HIGH 100 #define FF_PROFILE_H264_HIGH_10 110 #define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_MULTIVIEW_HIGH 118 #define FF_PROFILE_H264_HIGH_422 122 #define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_STEREO_HIGH 128 #define FF_PROFILE_H264_HIGH_444 144 #define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244 #define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA) @@ -3482,15 +3520,25 @@ typedef struct AVCodecContext { int nb_coded_side_data; /** - * Encoding only. + * A reference to the AVHWFramesContext describing the input (for encoding) + * or output (decoding) frames. The reference is set by the caller and + * afterwards owned (and freed) by libavcodec. + * + * - decoding: This field should be set by the caller from the get_format() + * callback. The previous reference (if any) will always be + * unreffed by libavcodec before the get_format() call. + * + * If the default get_buffer2() is used with a hwaccel pixel + * format, then this AVHWFramesContext will be used for + * allocating the frame buffers. * - * For hardware encoders configured to use a hwaccel pixel format, this - * field should be set by the caller to a reference to the AVHWFramesContext - * describing input frames. AVHWFramesContext.format must be equal to - * AVCodecContext.pix_fmt. + * - encoding: For hardware encoders configured to use a hwaccel pixel + * format, this field should be set by the caller to a reference + * to the AVHWFramesContext describing input frames. + * AVHWFramesContext.format must be equal to + * AVCodecContext.pix_fmt. * - * This field should be set before avcodec_open2() is called and is - * afterwards owned and managed by libavcodec. + * This field should be set before avcodec_open2() is called. */ AVBufferRef *hw_frames_ctx; @@ -3505,6 +3553,17 @@ typedef struct AVCodecContext { #define FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS 1 #endif + /** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + * + * - decoding: unused + * - encoding: unused + */ + int trailing_padding; + } AVCodecContext; AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx); @@ -5115,7 +5174,10 @@ AVCodecParserContext *av_parser_init(int codec_id); * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished. * @param poutbuf_size set to size of parsed buffer or zero if not yet finished. * @param buf input buffer. - * @param buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output). + * @param buf_size buffer size in bytes without the padding. I.e. the full buffer + size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE. + To signal EOF, this should be 0 (so that the last frame + can be output). * @param pts input presentation timestamp. * @param dts input decoding timestamp. * @param pos input byte position in stream. @@ -5505,15 +5567,8 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); attribute_deprecated -#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI -enum AVPixelFormat avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list, - enum AVPixelFormat src_pix_fmt, - int has_alpha, int *loss_ptr); -#else enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); -#endif - enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt); @@ -5881,7 +5936,8 @@ int av_bsf_init(AVBSFContext *ctx); * av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or * AVERROR_EOF. * - * @param pkt the packet to filter. The bitstream filter will take ownership of + * @param pkt the packet to filter. pkt must contain some payload (i.e data or + * side data must be present in pkt). The bitstream filter will take ownership of * the packet and reset the contents of pkt. pkt is not touched if an error occurs. * This parameter may be NULL, which signals the end of the stream (i.e. no more * packets will be sent). That will cause the filter to output any packets it @@ -5931,6 +5987,91 @@ void av_bsf_free(AVBSFContext **ctx); */ const AVClass *av_bsf_get_class(void); +/** + * Structure for chain/list of bitstream filters. + * Empty list can be allocated by av_bsf_list_alloc(). + */ +typedef struct AVBSFList AVBSFList; + +/** + * Allocate empty list of bitstream filters. + * The list must be later freed by av_bsf_list_free() + * or finalized by av_bsf_list_finalize(). + * + * @return Pointer to @ref AVBSFList on success, NULL in case of failure + */ +AVBSFList *av_bsf_list_alloc(void); + +/** + * Free list of bitstream filters. + * + * @param lst Pointer to pointer returned by av_bsf_list_alloc() + */ +void av_bsf_list_free(AVBSFList **lst); + +/** + * Append bitstream filter to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf Filter context to be appended + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_append(AVBSFList *lst, AVBSFContext *bsf); + +/** + * Construct new bitstream filter context given it's name and options + * and append it to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf_name Name of the bitstream filter + * @param options Options for the bitstream filter, can be set to NULL + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_append2(AVBSFList *lst, const char * bsf_name, AVDictionary **options); +/** + * Finalize list of bitstream filters. + * + * This function will transform @ref AVBSFList to single @ref AVBSFContext, + * so the whole chain of bitstream filters can be treated as single filter + * freshly allocated by av_bsf_alloc(). + * If the call is successful, @ref AVBSFList structure is freed and lst + * will be set to NULL. In case of failure, caller is responsible for + * freeing the structure by av_bsf_list_free() + * + * @param lst Filter list structure to be transformed + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_finalize(AVBSFList **lst, AVBSFContext **bsf); + +/** + * Parse string describing list of bitstream filters and create single + * @ref AVBSFContext describing the whole chain of bitstream filters. + * Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly + * allocated by av_bsf_alloc(). + * + * @param str String describing chain of bitstream filters in format + * `bsf1[=opt1=val1:opt2=val2][,bsf2]` + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf); + +/** + * Get null/pass-through bitstream filter. + * + * @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter + * + * @return + */ +int av_bsf_get_null_filter(AVBSFContext **bsf); + /* memory */ /** diff --git a/media/ffvpx/libavcodec/avpacket.c b/media/ffvpx/libavcodec/avpacket.c index 9218689239..e5a8bdbe42 100644 --- a/media/ffvpx/libavcodec/avpacket.c +++ b/media/ffvpx/libavcodec/avpacket.c @@ -139,7 +139,8 @@ int av_grow_packet(AVPacket *pkt, int grow_by) pkt->buf = av_buffer_alloc(new_size); if (!pkt->buf) return AVERROR(ENOMEM); - memcpy(pkt->buf->data, pkt->data, pkt->size); + if (pkt->size > 0) + memcpy(pkt->buf->data, pkt->data, pkt->size); pkt->data = pkt->buf->data; } pkt->size += grow_by; @@ -198,6 +199,7 @@ static int copy_packet_data(AVPacket *pkt, const AVPacket *src, int dup) { pkt->data = NULL; pkt->side_data = NULL; + pkt->side_data_elems = 0; if (pkt->buf) { AVBufferRef *ref = av_buffer_ref(src->buf); if (!ref) @@ -207,9 +209,11 @@ static int copy_packet_data(AVPacket *pkt, const AVPacket *src, int dup) } else { DUP_DATA(pkt->data, src->data, pkt->size, 1, ALLOC_BUF); } - if (pkt->side_data_elems && dup) + if (src->side_data_elems && dup) { pkt->side_data = src->side_data; - if (pkt->side_data_elems && !dup) { + pkt->side_data_elems = src->side_data_elems; + } + if (src->side_data_elems && !dup) { return av_copy_packet_side_data(pkt, src); } return 0; @@ -291,16 +295,17 @@ FF_ENABLE_DEPRECATION_WARNINGS int av_packet_add_side_data(AVPacket *pkt, enum AVPacketSideDataType type, uint8_t *data, size_t size) { + AVPacketSideData *tmp; int elems = pkt->side_data_elems; if ((unsigned)elems + 1 > INT_MAX / sizeof(*pkt->side_data)) return AVERROR(ERANGE); - pkt->side_data = av_realloc(pkt->side_data, - (elems + 1) * sizeof(*pkt->side_data)); - if (!pkt->side_data) + tmp = av_realloc(pkt->side_data, (elems + 1) * sizeof(*tmp)); + if (!tmp) return AVERROR(ENOMEM); + pkt->side_data = tmp; pkt->side_data[elems].data = data; pkt->side_data[elems].size = size; pkt->side_data[elems].type = type; @@ -581,7 +586,8 @@ int av_packet_ref(AVPacket *dst, const AVPacket *src) ret = packet_alloc(&dst->buf, src->size); if (ret < 0) goto fail; - memcpy(dst->buf->data, src->data, src->size); + if (src->size) + memcpy(dst->buf->data, src->data, src->size); dst->data = dst->buf->data; } else { diff --git a/media/ffvpx/libavcodec/bsf.h b/media/ffvpx/libavcodec/bsf.h index 3435df5d86..af035eee44 100644 --- a/media/ffvpx/libavcodec/bsf.h +++ b/media/ffvpx/libavcodec/bsf.h @@ -28,6 +28,17 @@ */ int ff_bsf_get_packet(AVBSFContext *ctx, AVPacket **pkt); +/** + * Called by bitstream filters to get packet for filtering. + * The reference to packet is moved to provided packet structure. + * + * @param ctx pointer to AVBSFContext of filter + * @param pkt pointer to packet to move reference to + * + * @return 0>= on success, negative AVERROR in case of failure + */ +int ff_bsf_get_packet_ref(AVBSFContext *ctx, AVPacket *pkt); + const AVClass *ff_bsf_child_class_next(const AVClass *prev); #endif /* AVCODEC_BSF_H */ diff --git a/media/ffvpx/libavcodec/codec_desc.c b/media/ffvpx/libavcodec/codec_desc.c index 9d94b72ed2..d862cc8f6c 100644 --- a/media/ffvpx/libavcodec/codec_desc.c +++ b/media/ffvpx/libavcodec/codec_desc.c @@ -2281,7 +2281,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .id = AV_CODEC_ID_COOK, .type = AVMEDIA_TYPE_AUDIO, .name = "cook", - .long_name = NULL_IF_CONFIG_SMALL("Cook / Cooker / Gecko (RealAudio G2)"), + .long_name = NULL_IF_CONFIG_SMALL("Cook / Cooker / Goanna (RealAudio G2)"), .props = AV_CODEC_PROP_LOSSY, }, { diff --git a/media/ffvpx/libavcodec/dummy_funcs.c b/media/ffvpx/libavcodec/dummy_funcs.c index a065c35763..200e1d266d 100644 --- a/media/ffvpx/libavcodec/dummy_funcs.c +++ b/media/ffvpx/libavcodec/dummy_funcs.c @@ -62,6 +62,17 @@ 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; AVCodec ff_a64multi_encoder; AVCodec ff_a64multi5_encoder; @@ -713,6 +724,23 @@ AVCodec ff_sheervideo_decoder; AVCodec ff_magicyuv_decoder; AVCodec ff_m101_decoder; AVCodec ff_h264_mediacodec_decoder; +/* Added by FFmpeg 3.2 */ +AVCodec ff_vp9_mediacodec_decoder; +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; +AVCodec ff_pcm_s64be_decoder; +AVCodec ff_pcm_s64be_encoder; +AVCodec ff_truehd_encoder; +AVCodec ff_mlp_encoder; AVCodecParser ff_aac_parser; AVCodecParser ff_aac_latm_parser; diff --git a/media/ffvpx/libavcodec/h264dsp.h b/media/ffvpx/libavcodec/h264dsp.h index 7f24376b89..bcd76abcc1 100644 --- a/media/ffvpx/libavcodec/h264dsp.h +++ b/media/ffvpx/libavcodec/h264dsp.h @@ -28,11 +28,12 @@ #define AVCODEC_H264DSP_H #include <stdint.h> +#include <stddef.h> -typedef void (*h264_weight_func)(uint8_t *block, int stride, int height, +typedef void (*h264_weight_func)(uint8_t *block, ptrdiff_t stride, int height, int log2_denom, int weight, int offset); typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, - int stride, int height, int log2_denom, + ptrdiff_t stride, int height, int log2_denom, int weightd, int weights, int offset); /** diff --git a/media/ffvpx/libavcodec/imgconvert.c b/media/ffvpx/libavcodec/imgconvert.c index 46fa7809bd..1547f18966 100644 --- a/media/ffvpx/libavcodec/imgconvert.c +++ b/media/ffvpx/libavcodec/imgconvert.c @@ -57,19 +57,11 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt return av_find_best_pix_fmt_of_2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, has_alpha, loss_ptr); } -#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI -enum AVPixelFormat avcodec_find_best_pix_fmt2(const enum AVPixelFormat *pix_fmt_list, - enum AVPixelFormat src_pix_fmt, - int has_alpha, int *loss_ptr){ - return avcodec_find_best_pix_fmt_of_list(pix_fmt_list, src_pix_fmt, has_alpha, loss_ptr); -} -#else enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr) { return avcodec_find_best_pix_fmt_of_2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, has_alpha, loss_ptr); } -#endif enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list, enum AVPixelFormat src_pix_fmt, diff --git a/media/ffvpx/libavcodec/internal.h b/media/ffvpx/libavcodec/internal.h index 000fe263cc..35b9630b52 100644 --- a/media/ffvpx/libavcodec/internal.h +++ b/media/ffvpx/libavcodec/internal.h @@ -173,6 +173,7 @@ typedef struct AVCodecInternal { int buffer_pkt_valid; // encoding: packet without data can be valid AVFrame *buffer_frame; int draining_done; + int showed_multi_packet_warning; } AVCodecInternal; struct AVCodecDefault { diff --git a/media/ffvpx/libavcodec/me_cmp.h b/media/ffvpx/libavcodec/me_cmp.h index a3603ec2c1..5666f59ade 100644 --- a/media/ffvpx/libavcodec/me_cmp.h +++ b/media/ffvpx/libavcodec/me_cmp.h @@ -76,6 +76,7 @@ typedef struct MECmpContext { me_cmp_func frame_skip_cmp[6]; // only width 8 used me_cmp_func pix_abs[2][4]; + me_cmp_func median_sad[2]; } MECmpContext; void ff_me_cmp_init_static(void); diff --git a/media/ffvpx/libavcodec/mpegvideo.h b/media/ffvpx/libavcodec/mpegvideo.h index a1f3d4bd9a..c82fa3e1a1 100644 --- a/media/ffvpx/libavcodec/mpegvideo.h +++ b/media/ffvpx/libavcodec/mpegvideo.h @@ -594,7 +594,8 @@ enum rc_strategy { { "nsse", "Noise preserving sum of squared differences", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_NSSE }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \ { "dct264", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_DCT264 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \ { "dctmax", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \ -{ "chroma", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_CHROMA }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" } +{ "chroma", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_CHROMA }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \ +{ "msad", "Sum of absolute differences, median predicted", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_MEDIAN_SAD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" } #ifndef FF_MPV_OFFSET #define FF_MPV_OFFSET(x) offsetof(MpegEncContext, x) diff --git a/media/ffvpx/libavcodec/parser.c b/media/ffvpx/libavcodec/parser.c index 2c8fc69047..30cfc55cbc 100644 --- a/media/ffvpx/libavcodec/parser.c +++ b/media/ffvpx/libavcodec/parser.c @@ -182,6 +182,11 @@ int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx, index = s->parser->parser_parse(s, avctx, (const uint8_t **) poutbuf, poutbuf_size, buf, buf_size); av_assert0(index > -0x20000000); // The API does not allow returning AVERROR codes +#define FILL(name) if(s->name > 0 && avctx->name <= 0) avctx->name = s->name + if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) { + FILL(field_order); + } + /* update the file pointer */ if (*poutbuf_size) { /* fill the data for the current frame */ diff --git a/media/ffvpx/libavcodec/raw.c b/media/ffvpx/libavcodec/raw.c index bfa2537b5a..f73a134a99 100644 --- a/media/ffvpx/libavcodec/raw.c +++ b/media/ffvpx/libavcodec/raw.c @@ -31,6 +31,7 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { { AV_PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */ { AV_PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') }, + { AV_PIX_FMT_YUV420P, MKTAG('y', 'v', '1', '2') }, { AV_PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') }, { AV_PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') }, { AV_PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') }, @@ -187,6 +188,14 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { { AV_PIX_FMT_GBRP16LE, MKTAG('G', '3', 00 , 16 ) }, { AV_PIX_FMT_GBRP16BE, MKTAG(16 , 00 , '3', 'G') }, + { AV_PIX_FMT_GBRAP, MKTAG('G', '4', 00 , 8 ) }, + { AV_PIX_FMT_GBRAP10LE, MKTAG('G', '4', 00 , 10 ) }, + { AV_PIX_FMT_GBRAP10BE, MKTAG(10 , 00 , '4', 'G') }, + { AV_PIX_FMT_GBRAP12LE, MKTAG('G', '4', 00 , 12 ) }, + { AV_PIX_FMT_GBRAP12BE, MKTAG(12 , 00 , '4', 'G') }, + { AV_PIX_FMT_GBRAP16LE, MKTAG('G', '4', 00 , 16 ) }, + { AV_PIX_FMT_GBRAP16BE, MKTAG(16 , 00 , '4', 'G') }, + { AV_PIX_FMT_XYZ12LE, MKTAG('X', 'Y', 'Z' , 36 ) }, { AV_PIX_FMT_XYZ12BE, MKTAG(36 , 'Z' , 'Y', 'X') }, @@ -224,6 +233,7 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') }, { AV_PIX_FMT_GRAY16BE,MKTAG('b', '1', '6', 'g') }, { AV_PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') }, + { AV_PIX_FMT_RGBA64BE,MKTAG('b', '6', '4', 'a') }, /* vlc */ { AV_PIX_FMT_YUV410P, MKTAG('I', '4', '1', '0') }, diff --git a/media/ffvpx/libavcodec/utils.c b/media/ffvpx/libavcodec/utils.c index f7adb525f8..87de15fc62 100644 --- a/media/ffvpx/libavcodec/utils.c +++ b/media/ffvpx/libavcodec/utils.c @@ -724,6 +724,9 @@ int avcodec_default_get_buffer2(AVCodecContext *avctx, AVFrame *frame, int flags { int ret; + if (avctx->hw_frames_ctx) + return av_hwframe_get_buffer(avctx->hw_frames_ctx, frame, 0); + if ((ret = update_frame_pool(avctx, frame)) < 0) return ret; @@ -765,7 +768,12 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame) }; if (pkt) { + frame->pts = pkt->pts; +#if FF_API_PKT_PTS +FF_DISABLE_DEPRECATION_WARNINGS frame->pkt_pts = pkt->pts; +FF_ENABLE_DEPRECATION_WARNINGS +#endif av_frame_set_pkt_pos (frame, pkt->pos); av_frame_set_pkt_duration(frame, pkt->duration); av_frame_set_pkt_size (frame, pkt->size); @@ -784,8 +792,19 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame) } } add_metadata_from_side_data(pkt, frame); + + if (pkt->flags & AV_PKT_FLAG_DISCARD) { + frame->flags |= AV_FRAME_FLAG_DISCARD; + } else { + frame->flags = (frame->flags & ~AV_FRAME_FLAG_DISCARD); + } } else { + frame->pts = AV_NOPTS_VALUE; +#if FF_API_PKT_PTS +FF_DISABLE_DEPRECATION_WARNINGS frame->pkt_pts = AV_NOPTS_VALUE; +FF_ENABLE_DEPRECATION_WARNINGS +#endif av_frame_set_pkt_pos (frame, -1); av_frame_set_pkt_duration(frame, 0); av_frame_set_pkt_size (frame, -1); @@ -991,6 +1010,7 @@ int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, v if (ret) ret[i] = r; } + emms_c(); return 0; } @@ -1003,6 +1023,7 @@ int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, if (ret) ret[i] = r; } + emms_c(); return 0; } @@ -1113,6 +1134,8 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) av_freep(&avctx->internal->hwaccel_priv_data); avctx->hwaccel = NULL; + av_buffer_unref(&avctx->hw_frames_ctx); + ret = avctx->get_format(avctx, choices); desc = av_pix_fmt_desc_get(ret); @@ -1128,6 +1151,16 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) break; #endif + 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; + } + } + if (!setup_hwaccel(avctx, ret, desc->name)) break; @@ -1389,10 +1422,9 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code avctx->thread_count = 1; if (avctx->codec->max_lowres < avctx->lowres || avctx->lowres < 0) { - av_log(avctx, AV_LOG_ERROR, "The maximum value for lowres supported by the decoder is %d\n", + av_log(avctx, AV_LOG_WARNING, "The maximum value for lowres supported by the decoder is %d\n", avctx->codec->max_lowres); - ret = AVERROR(EINVAL); - goto free_and_end; + avctx->lowres = avctx->codec->max_lowres; } #if FF_API_VISMV @@ -1962,6 +1994,8 @@ int attribute_align_arg avcodec_encode_video2(AVCodecContext *avctx, ret = avctx->codec->encode2(avctx, avpkt, frame, got_packet_ptr); av_assert0(ret <= 0); + emms_c(); + if (avpkt->data && avpkt->data == avctx->internal->byte_buffer) { needs_realloc = 0; if (user_pkt.data) { @@ -1999,7 +2033,6 @@ int attribute_align_arg avcodec_encode_video2(AVCodecContext *avctx, if (ret < 0 || !*got_packet_ptr) av_packet_unref(avpkt); - emms_c(); return ret; } @@ -2023,7 +2056,7 @@ int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, * which case the output will as well. * * @param pts the pts field of the decoded AVPacket, as passed through - * AVFrame.pkt_pts + * AVFrame.pts * @param dts the dts field of the decoded AVPacket * @return one of the input values, may be AV_NOPTS_VALUE */ @@ -2248,7 +2281,9 @@ fail: if(ret == tmp.size) ret = avpkt->size; } - + if (picture->flags & AV_FRAME_FLAG_DISCARD) { + *got_picture_ptr = 0; + } if (*got_picture_ptr) { if (!avctx->refcounted_frames) { int err = unrefcount_frame(avci, picture); @@ -2259,7 +2294,7 @@ fail: avctx->frame_number++; av_frame_set_best_effort_timestamp(picture, guess_correct_pts(avctx, - picture->pkt_pts, + picture->pts, picture->pkt_dts)); } else av_frame_unref(picture); @@ -2332,7 +2367,7 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, avctx->frame_number++; av_frame_set_best_effort_timestamp(frame, guess_correct_pts(avctx, - frame->pkt_pts, + frame->pts, frame->pkt_dts)); if (frame->format == AV_SAMPLE_FMT_NONE) frame->format = avctx->sample_fmt; @@ -2353,6 +2388,13 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, skip_reason = AV_RL8(side + 8); discard_reason = AV_RL8(side + 9); } + + if ((frame->flags & AV_FRAME_FLAG_DISCARD) && *got_frame_ptr && + !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { + avctx->internal->skip_samples -= frame->nb_samples; + *got_frame_ptr = 0; + } + if (avctx->internal->skip_samples > 0 && *got_frame_ptr && !(avctx->flags2 & AV_CODEC_FLAG2_SKIP_MANUAL)) { if(frame->nb_samples <= avctx->internal->skip_samples){ @@ -2367,8 +2409,14 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, int64_t diff_ts = av_rescale_q(avctx->internal->skip_samples, (AVRational){1, avctx->sample_rate}, avctx->pkt_timebase); + if(frame->pts!=AV_NOPTS_VALUE) + frame->pts += diff_ts; +#if FF_API_PKT_PTS +FF_DISABLE_DEPRECATION_WARNINGS if(frame->pkt_pts!=AV_NOPTS_VALUE) frame->pkt_pts += diff_ts; +FF_ENABLE_DEPRECATION_WARNINGS +#endif if(frame->pkt_dts!=AV_NOPTS_VALUE) frame->pkt_dts += diff_ts; if (av_frame_get_pkt_duration(frame) >= diff_ts) @@ -2432,6 +2480,12 @@ fail: av_assert0(ret <= avpkt->size); + if (!avci->showed_multi_packet_warning && + ret >= 0 && ret != avpkt->size && !(avctx->codec->capabilities & AV_CODEC_CAP_SUBFRAMES)) { + av_log(avctx, AV_LOG_WARNING, "Multiple frames in a packet.\n"); + avci->showed_multi_packet_warning = 1; + } + return ret; } @@ -2784,6 +2838,9 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke if (avctx->internal->draining) return AVERROR_EOF; + if (avpkt && !avpkt->size && avpkt->data) + return AVERROR(EINVAL); + if (!avpkt || !avpkt->size) { avctx->internal->draining = 1; avpkt = NULL; @@ -2832,7 +2889,14 @@ int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *fr if (avctx->codec->receive_frame) { if (avctx->internal->draining && !(avctx->codec->capabilities & AV_CODEC_CAP_DELAY)) return AVERROR_EOF; - return avctx->codec->receive_frame(avctx, frame); + ret = avctx->codec->receive_frame(avctx, frame); + if (ret >= 0) { + if (av_frame_get_best_effort_timestamp(frame) == AV_NOPTS_VALUE) { + av_frame_set_best_effort_timestamp(frame, + guess_correct_pts(avctx, frame->pts, frame->pkt_dts)); + } + } + return ret; } // Emulation via old API. @@ -3190,7 +3254,21 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) av_get_colorspace_name(enc->colorspace)); } - if (av_log_get_level() >= AV_LOG_DEBUG && + if (enc->field_order != AV_FIELD_UNKNOWN) { + const char *field_order = "progressive"; + if (enc->field_order == AV_FIELD_TT) + field_order = "top first"; + else if (enc->field_order == AV_FIELD_BB) + field_order = "bottom first"; + else if (enc->field_order == AV_FIELD_TB) + field_order = "top coded first (swapped)"; + else if (enc->field_order == AV_FIELD_BT) + field_order = "bottom coded first (swapped)"; + + av_strlcatf(detail, sizeof(detail), "%s, ", field_order); + } + + if (av_log_get_level() >= AV_LOG_VERBOSE && enc->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED) av_strlcatf(detail, sizeof(detail), "%s, ", av_chroma_location_name(enc->chroma_sample_location)); @@ -3259,6 +3337,14 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) && enc->bits_per_raw_sample != av_get_bytes_per_sample(enc->sample_fmt) * 8) snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%d bit)", enc->bits_per_raw_sample); + if (av_log_get_level() >= AV_LOG_VERBOSE) { + if (enc->initial_padding) + snprintf(buf + strlen(buf), buf_size - strlen(buf), + ", delay %d", enc->initial_padding); + if (enc->trailing_padding) + snprintf(buf + strlen(buf), buf_size - strlen(buf), + ", padding %d", enc->trailing_padding); + } break; case AVMEDIA_TYPE_DATA: if (av_log_get_level() >= AV_LOG_DEBUG) { @@ -3416,6 +3502,8 @@ int av_get_exact_bits_per_sample(enum AVCodecID codec_id) return 32; case AV_CODEC_ID_PCM_F64BE: case AV_CODEC_ID_PCM_F64LE: + case AV_CODEC_ID_PCM_S64BE: + case AV_CODEC_ID_PCM_S64LE: return 64; default: return 0; @@ -3433,6 +3521,7 @@ enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be) [AV_SAMPLE_FMT_U8P ] = { AV_CODEC_ID_PCM_U8, AV_CODEC_ID_PCM_U8 }, [AV_SAMPLE_FMT_S16P] = { AV_CODEC_ID_PCM_S16LE, AV_CODEC_ID_PCM_S16BE }, [AV_SAMPLE_FMT_S32P] = { AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE }, + [AV_SAMPLE_FMT_S64P] = { AV_CODEC_ID_PCM_S64LE, AV_CODEC_ID_PCM_S64BE }, [AV_SAMPLE_FMT_FLTP] = { AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F32BE }, [AV_SAMPLE_FMT_DBLP] = { AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_F64BE }, }; @@ -4104,14 +4193,15 @@ int avcodec_parameters_from_context(AVCodecParameters *par, par->video_delay = codec->has_b_frames; break; case AVMEDIA_TYPE_AUDIO: - par->format = codec->sample_fmt; - par->channel_layout = codec->channel_layout; - par->channels = codec->channels; - par->sample_rate = codec->sample_rate; - par->block_align = codec->block_align; - par->frame_size = codec->frame_size; - par->initial_padding = codec->initial_padding; - par->seek_preroll = codec->seek_preroll; + par->format = codec->sample_fmt; + par->channel_layout = codec->channel_layout; + par->channels = codec->channels; + par->sample_rate = codec->sample_rate; + par->block_align = codec->block_align; + par->frame_size = codec->frame_size; + par->initial_padding = codec->initial_padding; + par->trailing_padding = codec->trailing_padding; + par->seek_preroll = codec->seek_preroll; break; case AVMEDIA_TYPE_SUBTITLE: par->width = codec->width; @@ -4158,15 +4248,16 @@ int avcodec_parameters_to_context(AVCodecContext *codec, codec->has_b_frames = par->video_delay; break; case AVMEDIA_TYPE_AUDIO: - codec->sample_fmt = par->format; - codec->channel_layout = par->channel_layout; - codec->channels = par->channels; - codec->sample_rate = par->sample_rate; - codec->block_align = par->block_align; - codec->frame_size = par->frame_size; - codec->delay = - codec->initial_padding = par->initial_padding; - codec->seek_preroll = par->seek_preroll; + codec->sample_fmt = par->format; + codec->channel_layout = par->channel_layout; + codec->channels = par->channels; + codec->sample_rate = par->sample_rate; + codec->block_align = par->block_align; + codec->frame_size = par->frame_size; + codec->delay = + codec->initial_padding = par->initial_padding; + codec->trailing_padding = par->trailing_padding; + codec->seek_preroll = par->seek_preroll; break; case AVMEDIA_TYPE_SUBTITLE: codec->width = par->width; diff --git a/media/ffvpx/libavcodec/version.h b/media/ffvpx/libavcodec/version.h index 4f6423b15e..ec8837a4e7 100644 --- a/media/ffvpx/libavcodec/version.h +++ b/media/ffvpx/libavcodec/version.h @@ -28,7 +28,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 57 -#define LIBAVCODEC_VERSION_MINOR 48 +#define LIBAVCODEC_VERSION_MINOR 64 #define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/media/ffvpx/libavcodec/vp9.c b/media/ffvpx/libavcodec/vp9.c index 3b721495d9..1aab6ba03c 100644 --- a/media/ffvpx/libavcodec/vp9.c +++ b/media/ffvpx/libavcodec/vp9.c @@ -3991,7 +3991,12 @@ static int vp9_decode_frame(AVCodecContext *ctx, void *frame, } if ((res = av_frame_ref(frame, s->s.refs[ref].f)) < 0) return res; + ((AVFrame *)frame)->pts = pkt->pts; +#if FF_API_PKT_PTS +FF_DISABLE_DEPRECATION_WARNINGS ((AVFrame *)frame)->pkt_pts = pkt->pts; +FF_ENABLE_DEPRECATION_WARNINGS +#endif ((AVFrame *)frame)->pkt_dts = pkt->dts; for (i = 0; i < 8; i++) { if (s->next_refs[i].f->buf[0]) diff --git a/media/ffvpx/libavcodec/x86/h264_i386.h b/media/ffvpx/libavcodec/x86/h264_i386.h index 4dfbc30933..19cd128381 100644 --- a/media/ffvpx/libavcodec/x86/h264_i386.h +++ b/media/ffvpx/libavcodec/x86/h264_i386.h @@ -91,13 +91,13 @@ static int decode_significance_x86(CABACContext *c, int max_coeff, "sub %10, %1 \n\t" "mov %2, %0 \n\t" "movl %7, %%ecx \n\t" - "add %1, %%"REG_c" \n\t" + "add %1, %%"FF_REG_c" \n\t" "movl %%ecx, (%0) \n\t" "test $1, %4 \n\t" " jnz 5f \n\t" - "add"OPSIZE" $4, %2 \n\t" + "add"FF_OPSIZE" $4, %2 \n\t" "4: \n\t" "add $1, %1 \n\t" @@ -105,7 +105,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff, " jb 3b \n\t" "mov %2, %0 \n\t" "movl %7, %%ecx \n\t" - "add %1, %%"REG_c" \n\t" + "add %1, %%"FF_REG_c" \n\t" "movl %%ecx, (%0) \n\t" "5: \n\t" "add %9, %k0 \n\t" @@ -116,7 +116,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff, "i"(offsetof(CABACContext, bytestream)), "i"(offsetof(CABACContext, bytestream_end)) TABLES_ARG - : "%"REG_c, "memory" + : "%"FF_REG_c, "memory" ); return coeff_count; } @@ -183,7 +183,7 @@ static int decode_significance_8x8_x86(CABACContext *c, "test $1, %4 \n\t" " jnz 5f \n\t" - "add"OPSIZE" $4, %2 \n\t" + "add"FF_OPSIZE" $4, %2 \n\t" "4: \n\t" "add $1, %6 \n\t" @@ -202,7 +202,7 @@ static int decode_significance_8x8_x86(CABACContext *c, "i"(offsetof(CABACContext, bytestream)), "i"(offsetof(CABACContext, bytestream_end)), "i"(H264_LAST_COEFF_FLAG_OFFSET_8x8_OFFSET) TABLES_ARG - : "%"REG_c, "memory" + : "%"FF_REG_c, "memory" ); return coeff_count; } diff --git a/media/ffvpx/libavcodec/x86/vp9dsp_init.c b/media/ffvpx/libavcodec/x86/vp9dsp_init.c index 469a661717..cc781a009b 100644 --- a/media/ffvpx/libavcodec/x86/vp9dsp_init.c +++ b/media/ffvpx/libavcodec/x86/vp9dsp_init.c @@ -114,6 +114,8 @@ itxfm_func(idct, idct, 32, sse2); itxfm_func(idct, idct, 32, ssse3); itxfm_func(idct, idct, 32, avx); itxfm_func(iwht, iwht, 4, mmx); +itxfm_func(idct, idct, 16, avx2); +itxfm_func(idct, idct, 32, avx2); #undef itxfm_func #undef itxfm_funcs @@ -124,6 +126,8 @@ void ff_vp9_loop_filter_v_##size1##_##size2##_##opt(uint8_t *dst, ptrdiff_t stri void ff_vp9_loop_filter_h_##size1##_##size2##_##opt(uint8_t *dst, ptrdiff_t stride, \ int E, int I, int H) +lpf_funcs(4, 8, mmxext); +lpf_funcs(8, 8, mmxext); lpf_funcs(16, 16, sse2); lpf_funcs(16, 16, ssse3); lpf_funcs(16, 16, avx); @@ -279,6 +283,10 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPContext *dsp, int bpp, int bitexact) } if (EXTERNAL_MMXEXT(cpu_flags)) { + dsp->loop_filter_8[0][0] = ff_vp9_loop_filter_h_4_8_mmxext; + dsp->loop_filter_8[0][1] = ff_vp9_loop_filter_v_4_8_mmxext; + dsp->loop_filter_8[1][0] = ff_vp9_loop_filter_h_8_8_mmxext; + dsp->loop_filter_8[1][1] = ff_vp9_loop_filter_v_8_8_mmxext; init_subpel2(4, 0, 4, put, 8, mmxext); init_subpel2(4, 1, 4, avg, 8, mmxext); init_fpel_func(4, 1, 4, avg, _8, mmxext); @@ -382,6 +390,8 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPContext *dsp, int bpp, int bitexact) init_fpel_func(0, 1, 64, avg, _8, avx2); if (ARCH_X86_64) { #if ARCH_X86_64 && HAVE_AVX2_EXTERNAL + dsp->itxfm_add[TX_16X16][DCT_DCT] = ff_vp9_idct_idct_16x16_add_avx2; + dsp->itxfm_add[TX_32X32][DCT_DCT] = ff_vp9_idct_idct_32x32_add_avx2; init_subpel3_32_64(0, put, 8, avx2); init_subpel3_32_64(1, avg, 8, avx2); #endif diff --git a/media/ffvpx/libavcodec/x86/vp9itxfm.asm b/media/ffvpx/libavcodec/x86/vp9itxfm.asm index 6d5008e334..57d6d353bd 100644 --- a/media/ffvpx/libavcodec/x86/vp9itxfm.asm +++ b/media/ffvpx/libavcodec/x86/vp9itxfm.asm @@ -24,36 +24,36 @@ %include "libavutil/x86/x86util.asm" %include "vp9itxfm_template.asm" -SECTION_RODATA +SECTION_RODATA 32 %macro VP9_IDCT_COEFFS 2-3 0 const pw_m%1_%2 -times 4 dw -%1, %2 +times 8 dw -%1, %2 const pw_%2_%1 -times 4 dw %2, %1 +times 8 dw %2, %1 %if %3 == 1 const pw_m%2_m%1 -times 4 dw -%2, -%1 +times 8 dw -%2, -%1 %if %1 != %2 const pw_m%2_%1 -times 4 dw -%2, %1 +times 8 dw -%2, %1 const pw_%1_%2 -times 4 dw %1, %2 +times 8 dw %1, %2 %endif %endif %if %1 < 11585 -pw_m%1x2: times 8 dw -%1*2 +pw_m%1x2: times 16 dw -%1*2 %elif %1 > 11585 -pw_%1x2: times 8 dw %1*2 +pw_%1x2: times 16 dw %1*2 %else const pw_%1x2 -times 8 dw %1*2 +times 16 dw %1*2 %endif %if %2 != %1 -pw_%2x2: times 8 dw %2*2 +pw_%2x2: times 16 dw %2*2 %endif %endmacro @@ -127,16 +127,33 @@ SECTION .text %endmacro %macro VP9_STORE_2X 5-6 dstq ; reg1, reg2, tmp1, tmp2, zero, dst +%if mmsize == 32 + pmovzxbw m%3, [%6] + pmovzxbw m%4, [%6+strideq] +%else movh m%3, [%6] movh m%4, [%6+strideq] punpcklbw m%3, m%5 punpcklbw m%4, m%5 +%endif paddw m%3, m%1 paddw m%4, m%2 +%if mmsize == 32 + packuswb m%3, m%4 + ; Intel... + vpermq m%3, m%3, q3120 + mova [%6], xm%3 + vextracti128 [%6+strideq], m%3, 1 +%elif mmsize == 16 + packuswb m%3, m%4 + movh [%6], m%3 + movhps [%6+strideq], m%3 +%else packuswb m%3, m%5 packuswb m%4, m%5 movh [%6], m%3 movh [%6+strideq], m%4 +%endif %endmacro %macro ZERO_BLOCK 4 ; mem, stride, nnzcpl, zero_reg @@ -1421,6 +1438,180 @@ VP9_IDCT_IDCT_16x16_ADD_XMM sse2 VP9_IDCT_IDCT_16x16_ADD_XMM ssse3 VP9_IDCT_IDCT_16x16_ADD_XMM avx +%macro VP9_IDCT16_YMM_1D 0 + VP9_UNPACK_MULSUB_2W_4X 1, 15, 16305, 1606, [pd_8192], 0, 4 ; t8, t15 + VP9_UNPACK_MULSUB_2W_4X 9, 7, 10394, 12665, [pd_8192], 0, 4 ; t9, t14 + + SUMSUB_BA w, 9, 1, 0 ; t8, t9 + SUMSUB_BA w, 7, 15, 0 ; t15, t14 + + VP9_UNPACK_MULSUB_2W_4X 15, 1, 15137, 6270, [pd_8192], 0, 4 ; t9, t14 + + VP9_UNPACK_MULSUB_2W_4X 5, 11, 14449, 7723, [pd_8192], 0, 4 ; t10, t13 + VP9_UNPACK_MULSUB_2W_4X 13, 3, 4756, 15679, [pd_8192], 0, 4 ; t11, t12 + + SUMSUB_BA w, 5, 13, 0 ; t11, t10 + SUMSUB_BA w, 11, 3, 0 ; t12, t13 + + VP9_UNPACK_MULSUB_2W_4X 3, 13, 6270, m15137, [pd_8192], 0, 4 ; t10, t13 + + SUMSUB_BA w, 5, 9, 0 ; t8, t11 + SUMSUB_BA w, 3, 15, 0 ; t9, t10 + SUMSUB_BA w, 11, 7, 0 ; t15, t12 + SUMSUB_BA w, 13, 1, 0 ; t14, t13 + + SUMSUB_BA w, 15, 1, 0 + SUMSUB_BA w, 9, 7, 0 + pmulhrsw m1, [pw_11585x2] ; t10 + pmulhrsw m7, [pw_11585x2] ; t11 + pmulhrsw m9, [pw_11585x2] ; t12 + pmulhrsw m15, [pw_11585x2] ; t13 + + ; even (tx8x8) + mova m4, [blockq+128] + mova [blockq+128], m5 + VP9_UNPACK_MULSUB_2W_4X 4, 12, 15137, 6270, [pd_8192], 0, 5 ; t2, t3 + VP9_UNPACK_MULSUB_2W_4X 2, 14, 16069, 3196, [pd_8192], 0, 5 ; t4, t7 + VP9_UNPACK_MULSUB_2W_4X 10, 6, 9102, 13623, [pd_8192], 0, 5 ; t5, t6 + mova m0, [blockq+ 0] + SUMSUB_BA w, 8, 0, 5 + pmulhrsw m8, [pw_11585x2] ; t0 + pmulhrsw m0, [pw_11585x2] ; t1 + + SUMSUB_BA w, 10, 2, 5 ; t4, t5 + SUMSUB_BA w, 6, 14, 5 ; t7, t6 + SUMSUB_BA w, 12, 8, 5 ; t0, t3 + SUMSUB_BA w, 4, 0, 5 ; t1, t2 + + SUMSUB_BA w, 2, 14, 5 + pmulhrsw m14, [pw_11585x2] ; t5 + pmulhrsw m2, [pw_11585x2] ; t6 + + SUMSUB_BA w, 6, 12, 5 ; t0, t7 + SUMSUB_BA w, 2, 4, 5 ; t1, t6 + SUMSUB_BA w, 14, 0, 5 ; t2, t5 + SUMSUB_BA w, 10, 8, 5 ; t3, t4 + + ; final stage + SUMSUB_BA w, 11, 6, 5 ; out0, out15 + SUMSUB_BA w, 13, 2, 5 ; out1, out14 + SUMSUB_BA w, 15, 14, 5 ; out2, out13 + SUMSUB_BA w, 9, 10, 5 ; out3, out12 + SUMSUB_BA w, 7, 8, 5 ; out4, out11 + SUMSUB_BA w, 1, 0, 5 ; out5, out10 + SUMSUB_BA w, 3, 4, 5 ; out6, out9 + mova m5, [blockq+128] + mova [blockq+192], m3 + SUMSUB_BA w, 5, 12, 3 ; out7, out8 + + SWAP 0, 11, 8, 12, 10 + SWAP 1, 13, 14, 2, 15, 6, 3, 9, 4, 7, 5 +%endmacro + +; this is almost identical to VP9_STORE_2X, but it does two rows +; for slightly improved interleaving, and it omits vpermq since the +; input is DC so all values are identical +%macro VP9_STORE_YMM_DC_4X 6 ; reg, tmp1, tmp2, tmp3, tmp4, zero + mova xm%2, [dstq] + mova xm%4, [dstq+strideq*2] + vinserti128 m%2, m%2, [dstq+strideq], 1 + vinserti128 m%4, m%4, [dstq+stride3q], 1 + punpckhbw m%3, m%2, m%6 + punpcklbw m%2, m%6 + punpckhbw m%5, m%4, m%6 + punpcklbw m%4, m%6 + paddw m%3, m%1 + paddw m%2, m%1 + paddw m%5, m%1 + paddw m%4, m%1 + packuswb m%2, m%3 + packuswb m%4, m%5 + mova [dstq], xm%2 + mova [dstq+strideq*2], xm%4 + vextracti128 [dstq+strideq], m%2, 1 + vextracti128 [dstq+stride3q], m%4, 1 +%endmacro + +%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL +INIT_YMM avx2 +cglobal vp9_idct_idct_16x16_add, 4, 4, 16, dst, stride, block, eob + cmp eobd, 1 ; faster path for when only DC is set + jg .idctfull + + ; dc-only + mova m1, [pw_11585x2] + vpbroadcastw m0, [blockq] + pmulhrsw m0, m1 + pmulhrsw m0, m1 + pxor m5, m5 + pmulhrsw m0, [pw_512] + movd [blockq], xm5 + + DEFINE_ARGS dst, stride, stride3, cnt + mov cntd, 4 + lea stride3q, [strideq*3] +.loop_dc: + VP9_STORE_YMM_DC_4X 0, 1, 2, 3, 4, 5 + lea dstq, [dstq+4*strideq] + dec cntd + jg .loop_dc + RET + + DEFINE_ARGS dst, stride, block, eob +.idctfull: + mova m1, [blockq+ 32] + mova m2, [blockq+ 64] + mova m3, [blockq+ 96] + mova m5, [blockq+160] + mova m6, [blockq+192] + mova m7, [blockq+224] + mova m8, [blockq+256] + mova m9, [blockq+288] + mova m10, [blockq+320] + mova m11, [blockq+352] + mova m12, [blockq+384] + mova m13, [blockq+416] + mova m14, [blockq+448] + mova m15, [blockq+480] + + VP9_IDCT16_YMM_1D + TRANSPOSE16x16W 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \ + [blockq+192], [blockq+128], 1 + mova [blockq+ 0], m0 + VP9_IDCT16_YMM_1D + + mova [blockq+224], m7 + mova [blockq+480], m15 + pxor m15, m15 + + ; store + VP9_IDCT8_WRITEx2 0, 1, 6, 7, 15, [pw_512], 6 + lea dstq, [dstq+2*strideq] + VP9_IDCT8_WRITEx2 2, 3, 6, 7, 15, [pw_512], 6 + lea dstq, [dstq+2*strideq] + VP9_IDCT8_WRITEx2 4, 5, 6, 7, 15, [pw_512], 6 + lea dstq, [dstq+2*strideq] + mova m6, [blockq+192] + mova m7, [blockq+224] + SWAP 0, 15 + mova m15, [blockq+480] + VP9_IDCT8_WRITEx2 6, 7, 1, 2, 0, [pw_512], 6 + lea dstq, [dstq+2*strideq] + VP9_IDCT8_WRITEx2 8, 9, 1, 2, 0, [pw_512], 6 + lea dstq, [dstq+2*strideq] + VP9_IDCT8_WRITEx2 10, 11, 1, 2, 0, [pw_512], 6 + lea dstq, [dstq+2*strideq] + VP9_IDCT8_WRITEx2 12, 13, 1, 2, 0, [pw_512], 6 + lea dstq, [dstq+2*strideq] + VP9_IDCT8_WRITEx2 14, 15, 1, 2, 0, [pw_512], 6 + lea dstq, [dstq+2*strideq] + + ; at the end of the loop, m0 should still be zero + ; use that to zero out block coefficients + ZERO_BLOCK blockq, 32, 16, m0 + RET +%endif + ;--------------------------------------------------------------------------------------------- ; void vp9_iadst_iadst_16x16_add_<opt>(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); ;--------------------------------------------------------------------------------------------- @@ -1801,7 +1992,12 @@ IADST16_FN iadst, IADST16, iadst, IADST16, avx ;--------------------------------------------------------------------------------------------- %macro VP9_IDCT32_1D 2-3 32 ; src, pass, nnzc -%assign %%str 16*%2*%2 +%if %2 == 1 +%assign %%str mmsize +%else +%assign %%str 64 +%endif + ; first do t0-15, this can be done identical to idct16x16 VP9_IDCT16_1D_START %1, %3/2, 64*2, tmpq, 2*%%str, 1 @@ -2096,17 +2292,125 @@ IADST16_FN iadst, IADST16, iadst, IADST16, avx mova m3, [tmpq+20*%%str] ; t5 mova m13, [tmpq+24*%%str] ; t6 - SUMSUB_BA w, 6, 8, 10 + SUMSUB_BA w, 6, 8, 10 mova [tmpq+ 3*%%str], m8 ; t15 - mova m10, [tmpq+28*%%str] ; t7 SUMSUB_BA w, 0, 9, 8 SUMSUB_BA w, 15, 12, 8 SUMSUB_BA w, 14, 11, 8 SUMSUB_BA w, 1, 2, 8 SUMSUB_BA w, 7, 3, 8 SUMSUB_BA w, 5, 13, 8 + mova m10, [tmpq+28*%%str] ; t7 SUMSUB_BA w, 4, 10, 8 +%if cpuflag(avx2) + ; the "shitty" about this idct is that the final pass does the outermost + ; interleave sumsubs (t0/31, t1/30, etc) but the tN for the 16x16 need + ; to be sequential, which means I need to load/store half of the sumsub + ; intermediates back to/from memory to get a 16x16 transpose going... + ; This would be easier if we had more (e.g. 32) YMM regs here. + mova [tmpq+ 7*%%str], m9 + mova [tmpq+11*%%str], m12 + mova [tmpq+15*%%str], m11 + mova [tmpq+19*%%str], m2 + mova [tmpq+23*%%str], m3 + mova [tmpq+27*%%str], m13 + mova [tmpq+31*%%str], m10 + mova [tmpq+12*%%str], m5 + + mova m13, [tmpq+30*%%str] ; t8 + mova m12, [tmpq+26*%%str] ; t9 + mova m11, [tmpq+22*%%str] ; t10 + mova m10, [tmpq+18*%%str] ; t11 + mova m9, [tmpq+17*%%str] ; t20 + mova m8, [tmpq+ 1*%%str] ; t21 + mova m3, [tmpq+25*%%str] ; t22 + mova m2, [tmpq+ 5*%%str] ; t23 + + SUMSUB_BA w, 9, 10, 5 + SUMSUB_BA w, 8, 11, 5 + SUMSUB_BA w, 3, 12, 5 + SUMSUB_BA w, 2, 13, 5 + mova [tmpq+ 1*%%str], m10 + mova [tmpq+ 5*%%str], m11 + mova [tmpq+17*%%str], m12 + mova [tmpq+25*%%str], m13 + + mova m13, [tmpq+14*%%str] ; t12 + mova m12, [tmpq+10*%%str] ; t13 + mova m11, [tmpq+ 9*%%str] ; t18 + mova m10, [tmpq+13*%%str] ; t19 + + SUMSUB_BA w, 11, 12, 5 + SUMSUB_BA w, 10, 13, 5 + mova [tmpq+ 9*%%str], m13 + mova [tmpq+13*%%str], m12 + mova [tmpq+10*%%str], m10 + mova [tmpq+14*%%str], m11 + mova m13, [tmpq+ 6*%%str] ; t14 + mova m12, [tmpq+ 2*%%str] ; t15 + mova m11, [tmpq+21*%%str] ; t16 + mova m10, [tmpq+29*%%str] ; t17 + SUMSUB_BA w, 11, 12, 5 + SUMSUB_BA w, 10, 13, 5 + mova [tmpq+21*%%str], m12 + mova [tmpq+29*%%str], m13 + mova m12, [tmpq+10*%%str] + mova m13, [tmpq+14*%%str] + + TRANSPOSE16x16W 6, 0, 15, 14, 1, 7, 5, 4, \ + 2, 3, 8, 9, 12, 13, 10, 11, \ + [tmpq+12*%%str], [tmpq+ 8*%%str], 1 + mova [tmpq+ 0*%%str], m6 + mova [tmpq+ 2*%%str], m0 + mova [tmpq+ 4*%%str], m15 + mova [tmpq+ 6*%%str], m14 + mova [tmpq+10*%%str], m7 + mova [tmpq+12*%%str], m5 + mova [tmpq+14*%%str], m4 + mova [tmpq+16*%%str], m2 + mova [tmpq+18*%%str], m3 + mova [tmpq+20*%%str], m8 + mova [tmpq+22*%%str], m9 + mova [tmpq+24*%%str], m12 + mova [tmpq+26*%%str], m13 + mova [tmpq+28*%%str], m10 + mova [tmpq+30*%%str], m11 + + mova m0, [tmpq+21*%%str] + mova m1, [tmpq+29*%%str] + mova m2, [tmpq+13*%%str] + mova m3, [tmpq+ 9*%%str] + mova m4, [tmpq+ 1*%%str] + mova m5, [tmpq+ 5*%%str] + mova m7, [tmpq+25*%%str] + mova m8, [tmpq+31*%%str] + mova m9, [tmpq+27*%%str] + mova m10, [tmpq+23*%%str] + mova m11, [tmpq+19*%%str] + mova m12, [tmpq+15*%%str] + mova m13, [tmpq+11*%%str] + mova m14, [tmpq+ 7*%%str] + mova m15, [tmpq+ 3*%%str] + TRANSPOSE16x16W 0, 1, 2, 3, 4, 5, 6, 7, \ + 8, 9, 10, 11, 12, 13, 14, 15, \ + [tmpq+17*%%str], [tmpq+ 9*%%str], 1 + mova [tmpq+ 1*%%str], m0 + mova [tmpq+ 3*%%str], m1 + mova [tmpq+ 5*%%str], m2 + mova [tmpq+ 7*%%str], m3 + mova [tmpq+11*%%str], m5 + mova [tmpq+13*%%str], m6 + mova [tmpq+15*%%str], m7 + mova [tmpq+17*%%str], m8 + mova [tmpq+19*%%str], m9 + mova [tmpq+21*%%str], m10 + mova [tmpq+23*%%str], m11 + mova [tmpq+25*%%str], m12 + mova [tmpq+27*%%str], m13 + mova [tmpq+29*%%str], m14 + mova [tmpq+31*%%str], m15 +%else ; !avx2 TRANSPOSE8x8W 6, 0, 15, 14, 1, 7, 5, 4, 8 mova [tmpq+ 0*%%str], m6 mova [tmpq+ 4*%%str], m0 @@ -2175,6 +2479,7 @@ IADST16_FN iadst, IADST16, iadst, IADST16, avx mova [tmpq+22*%%str], m13 mova [tmpq+26*%%str], m14 mova [tmpq+30*%%str], m15 +%endif ; avx2 %else mova m2, [tmpq+24*%%str] ; t6 mova m3, [tmpq+28*%%str] ; t7 @@ -2623,3 +2928,106 @@ cglobal vp9_idct_idct_32x32_add, 0, 6 + ARCH_X86_64 * 3, 16, 2048, dst, stride, VP9_IDCT_IDCT_32x32_ADD_XMM sse2 VP9_IDCT_IDCT_32x32_ADD_XMM ssse3 VP9_IDCT_IDCT_32x32_ADD_XMM avx + +; this is almost identical to VP9_STORE_2X, but it does two rows +; for slightly improved interleaving, and it omits vpermq since the +; input is DC so all values are identical +%macro VP9_STORE_YMM_DC_2X2 6 ; reg, tmp1, tmp2, tmp3, tmp4, zero + mova m%2, [dstq] + mova m%4, [dstq+strideq] + punpckhbw m%3, m%2, m%6 + punpcklbw m%2, m%6 + punpckhbw m%5, m%4, m%6 + punpcklbw m%4, m%6 + paddw m%3, m%1 + paddw m%2, m%1 + paddw m%5, m%1 + paddw m%4, m%1 + packuswb m%2, m%3 + packuswb m%4, m%5 + mova [dstq+strideq*0], m%2 + mova [dstq+strideq*1], m%4 +%endmacro + +%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL +INIT_YMM avx2 +cglobal vp9_idct_idct_32x32_add, 4, 9, 16, 2048, dst, stride, block, eob + cmp eobd, 135 + jg .idctfull + cmp eobd, 1 + jg .idct16x16 + + ; dc-only case + mova m1, [pw_11585x2] + vpbroadcastw m0, [blockq] + pmulhrsw m0, m1 + pmulhrsw m0, m1 + pxor m5, m5 + pmulhrsw m0, [pw_512] + movd [blockq], xm5 + + DEFINE_ARGS dst, stride, cnt + mov cntd, 16 +.loop_dc: + VP9_STORE_YMM_DC_2X2 0, 1, 2, 3, 4, 5 + lea dstq, [dstq+2*strideq] + dec cntd + jg .loop_dc + RET + + DEFINE_ARGS dst_bak, stride, block, cnt, dst, stride30, dst_end, stride2, tmp +.idct16x16: + mov tmpq, rsp + VP9_IDCT32_1D blockq, 1, 16 + + mov stride30q, strideq ; stride + lea stride2q, [strideq*2] ; stride*2 + shl stride30q, 5 ; stride*32 + mov cntd, 2 + sub stride30q, stride2q ; stride*30 +.loop2_16x16: + mov dstq, dst_bakq + lea dst_endq, [dstq+stride30q] + VP9_IDCT32_1D tmpq, 2, 16 + add dst_bakq, 16 + add tmpq, 32 + dec cntd + jg .loop2_16x16 + + ; at the end of the loop, m1 should still be zero + ; use that to zero out block coefficients + ZERO_BLOCK blockq, 64, 16, m1 + RET + +.idctfull: + mov cntd, 2 + mov tmpq, rsp +.loop1_full: + VP9_IDCT32_1D blockq, 1 + add blockq, 32 + add tmpq, 1024 + dec cntd + jg .loop1_full + + sub blockq, 64 + + mov stride30q, strideq ; stride + lea stride2q, [strideq*2] ; stride*2 + shl stride30q, 5 ; stride*32 + mov cntd, 2 + mov tmpq, rsp + sub stride30q, stride2q ; stride*30 +.loop2_full: + mov dstq, dst_bakq + lea dst_endq, [dstq+stride30q] + VP9_IDCT32_1D tmpq, 2 + add dst_bakq, 16 + add tmpq, 32 + dec cntd + jg .loop2_full + + ; at the end of the loop, m1 should still be zero + ; use that to zero out block coefficients + ZERO_BLOCK blockq, 64, 32, m1 + RET +%endif diff --git a/media/ffvpx/libavcodec/x86/vp9lpf.asm b/media/ffvpx/libavcodec/x86/vp9lpf.asm index 2c4fe214da..4e7ede2235 100644 --- a/media/ffvpx/libavcodec/x86/vp9lpf.asm +++ b/media/ffvpx/libavcodec/x86/vp9lpf.asm @@ -52,7 +52,7 @@ mask_mix48: times 8 db 0x00 SECTION .text %macro SCRATCH 3 -%if ARCH_X86_64 +%ifdef m8 SWAP %1, %2 %else mova [%3], m%1 @@ -60,7 +60,7 @@ SECTION .text %endmacro %macro UNSCRATCH 3 -%if ARCH_X86_64 +%ifdef m8 SWAP %1, %2 %else mova m%1, [%3] @@ -69,7 +69,7 @@ SECTION .text ; %1 = abs(%2-%3) %macro ABSSUB 4 ; dst, src1 (RO), src2 (RO), tmp -%if ARCH_X86_64 +%ifdef m8 psubusb %1, %3, %2 psubusb %4, %2, %3 %else @@ -102,7 +102,7 @@ SECTION .text %endmacro %macro UNPACK 4 -%if ARCH_X86_64 +%ifdef m8 punpck%1bw %2, %3, %4 %else mova %2, %3 @@ -112,27 +112,27 @@ SECTION .text %macro FILTER_SUBx2_ADDx2 11 ; %1=dst %2=h/l %3=cache %4=stack_off %5=sub1 %6=sub2 %7=add1 ; %8=add2 %9=rshift, [unpack], [unpack_is_mem_on_x86_32] - psubw %3, [rsp+%4+%5*32] - psubw %3, [rsp+%4+%6*32] - paddw %3, [rsp+%4+%7*32] + psubw %3, [rsp+%4+%5*mmsize*2] + psubw %3, [rsp+%4+%6*mmsize*2] + paddw %3, [rsp+%4+%7*mmsize*2] %ifnidn %10, "" %if %11 == 0 punpck%2bw %1, %10, m0 %else UNPACK %2, %1, %10, m0 %endif - mova [rsp+%4+%8*32], %1 + mova [rsp+%4+%8*mmsize*2], %1 paddw %3, %1 %else - paddw %3, [rsp+%4+%8*32] + paddw %3, [rsp+%4+%8*mmsize*2] %endif psraw %1, %3, %9 %endmacro ; FIXME interleave l/h better (for instruction pairing) %macro FILTER_INIT 9 ; tmp1, tmp2, cacheL, cacheH, dstp, stack_off, filterid, mask, source - FILTER%7_INIT %1, l, %3, %6 + 0 - FILTER%7_INIT %2, h, %4, %6 + 16 + FILTER%7_INIT %1, l, %3, %6 + 0 + FILTER%7_INIT %2, h, %4, %6 + mmsize packuswb %1, %2 MASK_APPLY %1, %9, %8, %2 mova %5, %1 @@ -147,8 +147,8 @@ SECTION .text mova %14, %15 %endif %endif - FILTER_SUBx2_ADDx2 %1, l, %3, %6 + 0, %7, %8, %9, %10, %11, %14, %16 - FILTER_SUBx2_ADDx2 %2, h, %4, %6 + 16, %7, %8, %9, %10, %11, %14, %16 + FILTER_SUBx2_ADDx2 %1, l, %3, %6 + 0, %7, %8, %9, %10, %11, %14, %16 + FILTER_SUBx2_ADDx2 %2, h, %4, %6 + mmsize, %7, %8, %9, %10, %11, %14, %16 packuswb %1, %2 %ifnidn %13, "" MASK_APPLY %1, %13, %12, %2 @@ -195,21 +195,21 @@ SECTION .text %macro FILTER6_INIT 4 ; %1=dst %2=h/l %3=cache, %4=stack_off UNPACK %2, %1, rp3, m0 ; p3: B->W - mova [rsp+%4+0*32], %1 + mova [rsp+%4+0*mmsize*2], %1 paddw %3, %1, %1 ; p3*2 paddw %3, %1 ; p3*3 punpck%2bw %1, m1, m0 ; p2: B->W - mova [rsp+%4+1*32], %1 + mova [rsp+%4+1*mmsize*2], %1 paddw %3, %1 ; p3*3 + p2 paddw %3, %1 ; p3*3 + p2*2 UNPACK %2, %1, rp1, m0 ; p1: B->W - mova [rsp+%4+2*32], %1 + mova [rsp+%4+2*mmsize*2], %1 paddw %3, %1 ; p3*3 + p2*2 + p1 UNPACK %2, %1, rp0, m0 ; p0: B->W - mova [rsp+%4+3*32], %1 + mova [rsp+%4+3*mmsize*2], %1 paddw %3, %1 ; p3*3 + p2*2 + p1 + p0 UNPACK %2, %1, rq0, m0 ; q0: B->W - mova [rsp+%4+4*32], %1 + mova [rsp+%4+4*mmsize*2], %1 paddw %3, %1 ; p3*3 + p2*2 + p1 + p0 + q0 paddw %3, [pw_4] ; p3*3 + p2*2 + p1 + p0 + q0 + 4 psraw %1, %3, 3 ; (p3*3 + p2*2 + p1 + p0 + q0 + 4) >> 3 @@ -217,24 +217,24 @@ SECTION .text %macro FILTER14_INIT 4 ; %1=dst %2=h/l %3=cache, %4=stack_off punpck%2bw %1, m2, m0 ; p7: B->W - mova [rsp+%4+ 8*32], %1 + mova [rsp+%4+ 8*mmsize*2], %1 psllw %3, %1, 3 ; p7*8 psubw %3, %1 ; p7*7 punpck%2bw %1, m3, m0 ; p6: B->W - mova [rsp+%4+ 9*32], %1 + mova [rsp+%4+ 9*mmsize*2], %1 paddw %3, %1 ; p7*7 + p6 paddw %3, %1 ; p7*7 + p6*2 UNPACK %2, %1, rp5, m0 ; p5: B->W - mova [rsp+%4+10*32], %1 + mova [rsp+%4+10*mmsize*2], %1 paddw %3, %1 ; p7*7 + p6*2 + p5 UNPACK %2, %1, rp4, m0 ; p4: B->W - mova [rsp+%4+11*32], %1 + mova [rsp+%4+11*mmsize*2], %1 paddw %3, %1 ; p7*7 + p6*2 + p5 + p4 - paddw %3, [rsp+%4+ 0*32] ; p7*7 + p6*2 + p5 + p4 + p3 - paddw %3, [rsp+%4+ 1*32] ; p7*7 + p6*2 + p5 + .. + p2 - paddw %3, [rsp+%4+ 2*32] ; p7*7 + p6*2 + p5 + .. + p1 - paddw %3, [rsp+%4+ 3*32] ; p7*7 + p6*2 + p5 + .. + p0 - paddw %3, [rsp+%4+ 4*32] ; p7*7 + p6*2 + p5 + .. + p0 + q0 + paddw %3, [rsp+%4+ 0*mmsize*2] ; p7*7 + p6*2 + p5 + p4 + p3 + paddw %3, [rsp+%4+ 1*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p2 + paddw %3, [rsp+%4+ 2*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p1 + paddw %3, [rsp+%4+ 3*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p0 + paddw %3, [rsp+%4+ 4*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p0 + q0 paddw %3, [pw_8] ; p7*7 + p6*2 + p5 + .. + p0 + q0 + 8 psraw %1, %3, 4 ; (p7*7 + p6*2 + p5 + .. + p0 + q0 + 8) >> 4 %endmacro @@ -334,22 +334,24 @@ SECTION .text %endmacro %macro DEFINE_TRANSPOSED_P7_TO_Q7 0-1 0 -%define P3 rsp + 0 + %1 -%define P2 rsp + 16 + %1 -%define P1 rsp + 32 + %1 -%define P0 rsp + 48 + %1 -%define Q0 rsp + 64 + %1 -%define Q1 rsp + 80 + %1 -%define Q2 rsp + 96 + %1 -%define Q3 rsp + 112 + %1 -%define P7 rsp + 128 + %1 -%define P6 rsp + 144 + %1 -%define P5 rsp + 160 + %1 -%define P4 rsp + 176 + %1 -%define Q4 rsp + 192 + %1 -%define Q5 rsp + 208 + %1 -%define Q6 rsp + 224 + %1 -%define Q7 rsp + 240 + %1 +%define P3 rsp + 0*mmsize + %1 +%define P2 rsp + 1*mmsize + %1 +%define P1 rsp + 2*mmsize + %1 +%define P0 rsp + 3*mmsize + %1 +%define Q0 rsp + 4*mmsize + %1 +%define Q1 rsp + 5*mmsize + %1 +%define Q2 rsp + 6*mmsize + %1 +%define Q3 rsp + 7*mmsize + %1 +%if mmsize == 16 +%define P7 rsp + 8*mmsize + %1 +%define P6 rsp + 9*mmsize + %1 +%define P5 rsp + 10*mmsize + %1 +%define P4 rsp + 11*mmsize + %1 +%define Q4 rsp + 12*mmsize + %1 +%define Q5 rsp + 13*mmsize + %1 +%define Q6 rsp + 14*mmsize + %1 +%define Q7 rsp + 15*mmsize + %1 +%endif %endmacro ; ..............AB -> AAAAAAAABBBBBBBB @@ -363,14 +365,19 @@ SECTION .text %endif %endmacro -%macro LOOPFILTER 5 ; %1=v/h %2=size1 %3+%4=stack, %5=32bit stack only +%macro LOOPFILTER 5 ; %1=v/h %2=size1 %3+%4=stack, %5=mmx/32bit stack only +%assign %%ext 0 +%if ARCH_X86_32 || mmsize == 8 +%assign %%ext %5 +%endif + %if UNIX64 -cglobal vp9_loop_filter_%1_%2_16, 5, 9, 16, %3 + %4, dst, stride, E, I, H, mstride, dst2, stride3, mstride3 +cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 5, 9, 16, %3 + %4 + %%ext, dst, stride, E, I, H, mstride, dst2, stride3, mstride3 %else %if WIN64 -cglobal vp9_loop_filter_%1_%2_16, 4, 8, 16, %3 + %4, dst, stride, E, I, mstride, dst2, stride3, mstride3 +cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 4, 8, 16, %3 + %4 + %%ext, dst, stride, E, I, mstride, dst2, stride3, mstride3 %else -cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, dst2, stride3, mstride3 +cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride, mstride, dst2, stride3, mstride3 %define Ed dword r2m %define Id dword r3m %endif @@ -384,18 +391,22 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, lea mstride3q, [mstrideq*3] %ifidn %1, h -%if %2 > 16 +%if %2 != 16 +%if mmsize == 16 %define movx movh +%else +%define movx mova +%endif lea dstq, [dstq + 4*strideq - 4] %else %define movx movu lea dstq, [dstq + 4*strideq - 8] ; go from top center (h pos) to center left (v pos) %endif - lea dst2q, [dstq + 8*strideq] %else lea dstq, [dstq + 4*mstrideq] - lea dst2q, [dstq + 8*strideq] %endif + ; FIXME we shouldn't need two dts registers if mmsize == 8 + lea dst2q, [dstq + 8*strideq] DEFINE_REAL_P7_TO_Q7 @@ -406,11 +417,11 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, movx m3, [P4] movx m4, [P3] movx m5, [P2] -%if ARCH_X86_64 || %2 != 16 +%if (ARCH_X86_64 && mmsize == 16) || %2 > 16 movx m6, [P1] %endif movx m7, [P0] -%if ARCH_X86_64 +%ifdef m8 movx m8, [Q0] movx m9, [Q1] movx m10, [Q2] @@ -502,7 +513,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, movhps [Q5], m6 movhps [Q7], m7 DEFINE_TRANSPOSED_P7_TO_Q7 -%else ; %2 == 44/48/84/88 +%elif %2 > 16 ; %2 == 44/48/84/88 punpcklbw m0, m1 punpcklbw m2, m3 punpcklbw m4, m5 @@ -529,12 +540,31 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, mova [Q1], m5 mova [Q2], m7 mova [Q3], m3 +%else ; %2 == 4 || %2 == 8 + SBUTTERFLY bw, 0, 1, 6 + SBUTTERFLY bw, 2, 3, 6 + SBUTTERFLY bw, 4, 5, 6 + mova [rsp+4*mmsize], m5 + mova m6, [P1] + SBUTTERFLY bw, 6, 7, 5 + DEFINE_TRANSPOSED_P7_TO_Q7 + TRANSPOSE4x4W 0, 2, 4, 6, 5 + mova [P3], m0 + mova [P2], m2 + mova [P1], m4 + mova [P0], m6 + mova m5, [rsp+4*mmsize] + TRANSPOSE4x4W 1, 3, 5, 7, 0 + mova [Q0], m1 + mova [Q1], m3 + mova [Q2], m5 + mova [Q3], m7 %endif ; %2 %endif ; x86-32/64 %endif ; %1 == h ; calc fm mask -%if %2 == 16 +%if %2 == 16 || mmsize == 8 %if cpuflag(ssse3) pxor m0, m0 %endif @@ -552,7 +582,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, mova m0, [pb_80] pxor m2, m0 pxor m3, m0 -%if ARCH_X86_64 +%ifdef m8 %ifidn %1, v mova m8, [P3] mova m9, [P2] @@ -613,10 +643,10 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, ; (m3: fm, m8..15: p3 p2 p1 p0 q0 q1 q2 q3) ; calc flat8in (if not 44_16) and hev masks -%if %2 != 44 +%if %2 != 44 && %2 != 4 mova m6, [pb_81] ; [1 1 1 1 ...] ^ 0x80 ABSSUB_GT m2, rp3, rp0, m6, m5 ; abs(p3 - p0) <= 1 -%if ARCH_X86_64 +%ifdef m8 mova m8, [pb_80] %define rb80 m8 %else @@ -625,7 +655,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, ABSSUB_GT m1, rp2, rp0, m6, m5, rb80 ; abs(p2 - p0) <= 1 por m2, m1 ABSSUB m4, rp1, rp0, m5 ; abs(p1 - p0) -%if %2 == 16 +%if %2 <= 16 %if cpuflag(ssse3) pxor m0, m0 %endif @@ -655,8 +685,15 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, %endif %else mova m6, [pb_80] +%if %2 == 44 movd m7, Hd SPLATB_MIX m7 +%else +%if cpuflag(ssse3) + pxor m0, m0 +%endif + SPLATB_REG m7, H, m0 ; H H H H ... +%endif pxor m7, m6 ABSSUB m4, rp1, rp0, m1 ; abs(p1 - p0) pxor m4, m6 @@ -670,7 +707,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, %if %2 == 16 ; (m0: hev, m2: flat8in, m3: fm, m6: pb_81, m9..15: p2 p1 p0 q0 q1 q2 q3) ; calc flat8out mask -%if ARCH_X86_64 +%ifdef m8 mova m8, [P7] mova m9, [P6] %define rp7 m8 @@ -682,7 +719,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, ABSSUB_GT m1, rp7, rp0, m6, m5 ; abs(p7 - p0) <= 1 ABSSUB_GT m7, rp6, rp0, m6, m5 ; abs(p6 - p0) <= 1 por m1, m7 -%if ARCH_X86_64 +%ifdef m8 mova m8, [P5] mova m9, [P4] %define rp5 m8 @@ -695,7 +732,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, por m1, m7 ABSSUB_GT m7, rp4, rp0, m6, m5 ; abs(p4 - p0) <= 1 por m1, m7 -%if ARCH_X86_64 +%ifdef m8 mova m14, [Q4] mova m15, [Q5] %define rq4 m14 @@ -708,7 +745,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, por m1, m7 ABSSUB_GT m7, rq5, rq0, m6, m5 ; abs(q5 - q0) <= 1 por m1, m7 -%if ARCH_X86_64 +%ifdef m8 mova m14, [Q6] mova m15, [Q7] %define rq6 m14 @@ -738,7 +775,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, ; (m0: hev, [m1: flat8out], [m2: flat8in], m3: fm, m8..15: p5 p4 p1 p0 q0 q1 q6 q7) ; filter2() -%if %2 != 44 +%if %2 != 44 && %2 != 4 mova m6, [pb_80] ; already in m6 if 44_16 SCRATCH 2, 15, rsp+%3+%4 %if %2 == 16 @@ -756,7 +793,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, paddsb m4, m2 ; 3*(q0 - p0) + (p1 - q1) paddsb m6, m4, [pb_4] ; m6: f1 = clip(f + 4, 127) paddsb m4, [pb_3] ; m4: f2 = clip(f + 3, 127) -%if ARCH_X86_64 +%ifdef m8 mova m14, [pb_10] ; will be reused in filter4() %define rb10 m14 %else @@ -765,8 +802,8 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, SRSHIFT3B_2X m6, m4, rb10, m7 ; f1 and f2 sign byte shift by 3 SIGN_SUB m7, rq0, m6, m5 ; m7 = q0 - f1 SIGN_ADD m1, rp0, m4, m5 ; m1 = p0 + f2 -%if %2 != 44 -%if ARCH_X86_64 +%if %2 != 44 && %2 != 4 +%ifdef m8 pandn m6, m15, m3 ; ~mask(in) & mask(fm) %else mova m6, [rsp+%3+%4] @@ -787,8 +824,8 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, paddsb m6, m2, [pb_4] ; m6: f1 = clip(f + 4, 127) paddsb m2, [pb_3] ; m2: f2 = clip(f + 3, 127) SRSHIFT3B_2X m6, m2, rb10, m4 ; f1 and f2 sign byte shift by 3 -%if %2 != 44 -%if ARCH_X86_64 +%if %2 != 44 && %2 != 4 +%ifdef m8 pandn m5, m15, m3 ; ~mask(in) & mask(fm) %else mova m5, [rsp+%3+%4] @@ -815,26 +852,26 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, mova [P1], m1 mova [Q1], m4 -%if %2 != 44 +%if %2 != 44 && %2 != 4 UNSCRATCH 2, 15, rsp+%3+%4 %endif ; ([m1: flat8out], m2: flat8in, m3: fm, m10..13: p1 p0 q0 q1) ; filter6() -%if %2 != 44 +%if %2 != 44 && %2 != 4 pxor m0, m0 -%if %2 > 16 +%if %2 != 16 pand m3, m2 %else pand m2, m3 ; mask(fm) & mask(in) -%if ARCH_X86_64 +%ifdef m8 pandn m3, m8, m2 ; ~mask(out) & (mask(fm) & mask(in)) %else mova m3, [rsp+%3+%4+16] pandn m3, m2 %endif %endif -%if ARCH_X86_64 +%ifdef m8 mova m14, [P3] mova m9, [Q3] %define rp3 m14 @@ -882,7 +919,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, pand m1, m2 ; mask(out) & (mask(fm) & mask(in)) mova m2, [P7] mova m3, [P6] -%if ARCH_X86_64 +%ifdef m8 mova m8, [P5] mova m9, [P4] %define rp5 m8 @@ -1008,7 +1045,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, movhps [Q5], m6 movhps [Q7], m7 %endif -%elif %2 == 44 +%elif %2 == 44 || %2 == 4 SWAP 0, 1 ; m0 = p1 SWAP 1, 7 ; m1 = p0 SWAP 2, 5 ; m2 = q0 @@ -1018,6 +1055,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, SBUTTERFLY bw, 2, 3, 4 SBUTTERFLY wd, 0, 2, 4 SBUTTERFLY wd, 1, 3, 4 +%if mmsize == 16 movd [P7], m0 movd [P3], m2 movd [Q0], m1 @@ -1047,6 +1085,20 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, movd [Q3], m1 movd [Q7], m3 %else + movd [P7], m0 + movd [P5], m2 + movd [P3], m1 + movd [P1], m3 + psrlq m0, 32 + psrlq m2, 32 + psrlq m1, 32 + psrlq m3, 32 + movd [P6], m0 + movd [P4], m2 + movd [P2], m1 + movd [P0], m3 +%endif +%else ; the following code do a transpose of 8 full lines to 16 half ; lines (high part). It is inlined to avoid the need of a staging area mova m0, [P3] @@ -1055,12 +1107,12 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, mova m3, [P0] mova m4, [Q0] mova m5, [Q1] -%if ARCH_X86_64 +%ifdef m8 mova m6, [Q2] %endif mova m7, [Q3] DEFINE_REAL_P7_TO_Q7 -%if ARCH_X86_64 +%ifdef m8 SBUTTERFLY bw, 0, 1, 8 SBUTTERFLY bw, 2, 3, 8 SBUTTERFLY bw, 4, 5, 8 @@ -1075,27 +1127,32 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, SBUTTERFLY dq, 3, 7, 8 %else SBUTTERFLY bw, 0, 1, 6 - mova [rsp+64], m1 - mova m6, [rsp+96] + mova [rsp+mmsize*4], m1 + mova m6, [rsp+mmsize*6] SBUTTERFLY bw, 2, 3, 1 SBUTTERFLY bw, 4, 5, 1 SBUTTERFLY bw, 6, 7, 1 SBUTTERFLY wd, 0, 2, 1 - mova [rsp+96], m2 - mova m1, [rsp+64] + mova [rsp+mmsize*6], m2 + mova m1, [rsp+mmsize*4] SBUTTERFLY wd, 1, 3, 2 SBUTTERFLY wd, 4, 6, 2 SBUTTERFLY wd, 5, 7, 2 SBUTTERFLY dq, 0, 4, 2 SBUTTERFLY dq, 1, 5, 2 +%if mmsize == 16 movh [Q0], m1 movhps [Q1], m1 - mova m2, [rsp+96] +%else + mova [P3], m1 +%endif + mova m2, [rsp+mmsize*6] SBUTTERFLY dq, 2, 6, 1 SBUTTERFLY dq, 3, 7, 1 %endif SWAP 3, 6 SWAP 1, 4 +%if mmsize == 16 movh [P7], m0 movhps [P6], m0 movh [P5], m1 @@ -1104,7 +1161,7 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, movhps [P2], m2 movh [P1], m3 movhps [P0], m3 -%if ARCH_X86_64 +%ifdef m8 movh [Q0], m4 movhps [Q1], m4 %endif @@ -1114,6 +1171,15 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3 + %4 + %5, dst, stride, mstride, movhps [Q5], m6 movh [Q6], m7 movhps [Q7], m7 +%else + mova [P7], m0 + mova [P6], m1 + mova [P5], m2 + mova [P4], m3 + mova [P2], m5 + mova [P1], m6 + mova [P0], m7 +%endif %endif %endif @@ -1137,3 +1203,9 @@ LPF_16_VH_ALL_OPTS 44, 0, 128, 0 LPF_16_VH_ALL_OPTS 48, 256, 128, 16 LPF_16_VH_ALL_OPTS 84, 256, 128, 16 LPF_16_VH_ALL_OPTS 88, 256, 128, 16 + +INIT_MMX mmxext +LOOPFILTER v, 4, 0, 0, 0 +LOOPFILTER h, 4, 0, 64, 0 +LOOPFILTER v, 8, 128, 0, 8 +LOOPFILTER h, 8, 128, 64, 8 diff --git a/media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm b/media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm index c15437b8ba..c0888170c9 100644 --- a/media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm +++ b/media/ffvpx/libavcodec/x86/vp9lpf_16bpp.asm @@ -78,7 +78,7 @@ SECTION .text %endif %endmacro -; calulate p or q portion of flat8out +; calculate p or q portion of flat8out %macro FLAT8OUT_HALF 0 psubw m4, m0 ; q4-q0 psubw m5, m0 ; q5-q0 diff --git a/media/ffvpx/libavutil/adler32.h b/media/ffvpx/libavutil/adler32.h index 0dc69ec0a8..a1f035b734 100644 --- a/media/ffvpx/libavutil/adler32.h +++ b/media/ffvpx/libavutil/adler32.h @@ -18,6 +18,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/** + * @file + * @ingroup lavu_adler32 + * Public header for Adler-32 hash function implementation. + */ + #ifndef AVUTIL_ADLER32_H #define AVUTIL_ADLER32_H @@ -25,11 +31,10 @@ #include "attributes.h" /** - * @file - * Public header for libavutil Adler32 hasher + * @defgroup lavu_adler32 Adler-32 + * @ingroup lavu_hash + * Adler-32 hash function implementation. * - * @defgroup lavu_adler32 Adler32 - * @ingroup lavu_crypto * @{ */ diff --git a/media/ffvpx/libavutil/avassert.h b/media/ffvpx/libavutil/avassert.h index f473637649..46f3fea580 100644 --- a/media/ffvpx/libavutil/avassert.h +++ b/media/ffvpx/libavutil/avassert.h @@ -59,8 +59,17 @@ */ #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 #define av_assert2(cond) av_assert0(cond) +#define av_assert2_fpu() av_assert0_fpu() #else #define av_assert2(cond) ((void)0) +#define av_assert2_fpu() ((void)0) #endif +/** + * Assert that floating point opperations can be executed. + * + * This will av_assert0() that the cpu is not in MMX state on X86 + */ +void av_assert0_fpu(void); + #endif /* AVUTIL_AVASSERT_H */ diff --git a/media/ffvpx/libavutil/avconfig.h b/media/ffvpx/libavutil/avconfig.h index 36a8cd14da..2ec333d158 100644 --- a/media/ffvpx/libavutil/avconfig.h +++ b/media/ffvpx/libavutil/avconfig.h @@ -3,5 +3,5 @@ #define AVUTIL_AVCONFIG_H #define AV_HAVE_BIGENDIAN 0 #define AV_HAVE_FAST_UNALIGNED 1 -#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0 +#define AV_HAVE_INCOMPATIBLE_FORK_ABI 0 #endif /* AVUTIL_AVCONFIG_H */ diff --git a/media/ffvpx/libavutil/avutil.h b/media/ffvpx/libavutil/avutil.h index c1f76c16ea..29dd830bf5 100644 --- a/media/ffvpx/libavutil/avutil.h +++ b/media/ffvpx/libavutil/avutil.h @@ -23,7 +23,8 @@ /** * @file - * external API header + * @ingroup lavu + * Convenience header that includes @ref lavu "libavutil"'s core. */ /** @@ -78,14 +79,15 @@ */ /** - * @defgroup lavu Common utility functions + * @defgroup lavu libavutil + * Common code shared across all FFmpeg libraries. * - * @brief - * libavutil contains the code shared across all the other FFmpeg - * libraries - * - * @note In order to use the functions provided by avutil you must include - * the specific header. + * @note + * libavutil is designed to be modular. In most cases, in order to use the + * functions provided by one component of libavutil you must explicitly include + * the specific header containing that feature. If you are only using + * media-related components, you could simply include libavutil/avutil.h, which + * brings in most of the "core" components. * * @{ * @@ -94,7 +96,7 @@ * @{ * @} * - * @defgroup lavu_math Maths + * @defgroup lavu_math Mathematics * @{ * * @} diff --git a/media/ffvpx/libavutil/avutil.symbols b/media/ffvpx/libavutil/avutil.symbols index ecd33c60ab..81cf6a8ef3 100644 --- a/media/ffvpx/libavutil/avutil.symbols +++ b/media/ffvpx/libavutil/avutil.symbols @@ -162,6 +162,7 @@ av_get_token av_gettime av_gettime_relative av_gettime_relative_is_monotonic +av_hwframe_get_buffer av_image_alloc av_image_check_sar av_image_check_size diff --git a/media/ffvpx/libavutil/crc.h b/media/ffvpx/libavutil/crc.h index ef8a7137e4..2a1b0d7624 100644 --- a/media/ffvpx/libavutil/crc.h +++ b/media/ffvpx/libavutil/crc.h @@ -18,6 +18,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/** + * @file + * @ingroup lavu_crc32 + * Public header for CRC hash function implementation. + */ + #ifndef AVUTIL_CRC_H #define AVUTIL_CRC_H @@ -27,8 +33,14 @@ #include "version.h" /** - * @defgroup lavu_crc32 CRC32 - * @ingroup lavu_crypto + * @defgroup lavu_crc32 CRC + * @ingroup lavu_hash + * CRC (Cyclic Redundancy Check) hash function implementation. + * + * This module supports numerous CRC polynomials, in addition to the most + * widely used CRC-32-IEEE. See @ref AVCRCId for a list of available + * polynomials. + * * @{ */ diff --git a/media/ffvpx/libavutil/dict.c b/media/ffvpx/libavutil/dict.c index f70c7e0051..0ea71386e5 100644 --- a/media/ffvpx/libavutil/dict.c +++ b/media/ffvpx/libavutil/dict.c @@ -24,6 +24,7 @@ #include "dict.h" #include "internal.h" #include "mem.h" +#include "time_internal.h" #include "bprint.h" struct AVDictionary { @@ -253,3 +254,19 @@ int av_dict_get_string(const AVDictionary *m, char **buffer, } return av_bprint_finalize(&bprint, buffer); } + +int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp) +{ + time_t seconds = timestamp / 1000000; + struct tm *ptm, tmbuf; + ptm = gmtime_r(&seconds, &tmbuf); + if (ptm) { + char buf[32]; + if (!strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", ptm)) + return AVERROR_EXTERNAL; + av_strlcatf(buf, sizeof(buf), ".%06dZ", (int)(timestamp % 1000000)); + return av_dict_set(dict, key, buf, 0); + } else { + return AVERROR_EXTERNAL; + } +} diff --git a/media/ffvpx/libavutil/dummy_funcs.c b/media/ffvpx/libavutil/dummy_funcs.c index dc13fe3a4a..2ea84a1407 100644 --- a/media/ffvpx/libavutil/dummy_funcs.c +++ b/media/ffvpx/libavutil/dummy_funcs.c @@ -79,3 +79,5 @@ int av_opt_is_set_to_default(void *obj, const AVOption *o) { return 0; } int av_opt_is_set_to_default_by_name(void *obj, const char *name, int search_flags) { return 0; } int av_opt_serialize(void *obj, int opt_flags, int flags, char **buffer, const char key_val_sep, const char pairs_sep) { return 0; } + +int av_hwframe_get_buffer(struct AVBufferRef* hwframe_ref, struct AVFrame* frame, int flags) { return 0; } diff --git a/media/ffvpx/libavutil/dynarray.h b/media/ffvpx/libavutil/dynarray.h index 4947d93dc8..034a9fedfe 100644 --- a/media/ffvpx/libavutil/dynarray.h +++ b/media/ffvpx/libavutil/dynarray.h @@ -42,7 +42,7 @@ * array and size are not changed; the statement can end * with a return or a goto */ -#define AV_DYNARRAY_ADD(av_size_max, av_elt_size, av_array, av_size, \ +#define FF_DYNARRAY_ADD(av_size_max, av_elt_size, av_array, av_size, \ av_success, av_failure) \ do { \ size_t av_size_new = (av_size); \ diff --git a/media/ffvpx/libavutil/frame.c b/media/ffvpx/libavutil/frame.c index d5c7c9f32f..53e6174223 100644 --- a/media/ffvpx/libavutil/frame.c +++ b/media/ffvpx/libavutil/frame.c @@ -99,12 +99,16 @@ static void get_frame_defaults(AVFrame *frame) memset(frame, 0, sizeof(*frame)); frame->pts = - frame->pkt_dts = + frame->pkt_dts = AV_NOPTS_VALUE; +#if FF_API_PKT_PTS +FF_DISABLE_DEPRECATION_WARNINGS frame->pkt_pts = AV_NOPTS_VALUE; - av_frame_set_best_effort_timestamp(frame, AV_NOPTS_VALUE); - av_frame_set_pkt_duration (frame, 0); - av_frame_set_pkt_pos (frame, -1); - av_frame_set_pkt_size (frame, -1); +FF_ENABLE_DEPRECATION_WARNINGS +#endif + frame->best_effort_timestamp = AV_NOPTS_VALUE; + frame->pkt_duration = 0; + frame->pkt_pos = -1; + frame->pkt_size = -1; frame->key_frame = 1; frame->sample_aspect_ratio = (AVRational){ 0, 1 }; frame->format = -1; /* unknown */ @@ -114,6 +118,7 @@ static void get_frame_defaults(AVFrame *frame) frame->colorspace = AVCOL_SPC_UNSPECIFIED; frame->color_range = AVCOL_RANGE_UNSPECIFIED; frame->chroma_location = AVCHROMA_LOC_UNSPECIFIED; + frame->flags = 0; } static void free_side_data(AVFrameSideData **ptr_sd) @@ -294,7 +299,11 @@ static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy) dst->palette_has_changed = src->palette_has_changed; dst->sample_rate = src->sample_rate; dst->opaque = src->opaque; +#if FF_API_PKT_PTS +FF_DISABLE_DEPRECATION_WARNINGS dst->pkt_pts = src->pkt_pts; +FF_ENABLE_DEPRECATION_WARNINGS +#endif dst->pkt_dts = src->pkt_dts; dst->pkt_pos = src->pkt_pos; dst->pkt_size = src->pkt_size; diff --git a/media/ffvpx/libavutil/frame.h b/media/ffvpx/libavutil/frame.h index 2b5c3320c3..8e51361e29 100644 --- a/media/ffvpx/libavutil/frame.h +++ b/media/ffvpx/libavutil/frame.h @@ -178,7 +178,7 @@ typedef struct AVFrameSideData { * without breaking compatibility with each other. * * Fields can be accessed through AVOptions, the name string used, matches the - * C structure field name for fields accessable through AVOptions. The AVClass + * C structure field name for fields accessible through AVOptions. The AVClass * for AVFrame can be obtained from avcodec_get_frame_class() */ typedef struct AVFrame { @@ -267,10 +267,14 @@ typedef struct AVFrame { */ int64_t pts; +#if FF_API_PKT_PTS /** * PTS copied from the AVPacket that was decoded to produce this frame. + * @deprecated use the pts field instead */ + attribute_deprecated int64_t pkt_pts; +#endif /** * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used) @@ -385,6 +389,7 @@ typedef struct AVFrame { /** * @defgroup lavu_frame_flags AV_FRAME_FLAGS + * @ingroup lavu_frame * Flags describing additional frame properties. * * @{ @@ -395,6 +400,10 @@ typedef struct AVFrame { */ #define AV_FRAME_FLAG_CORRUPT (1 << 0) /** + * A flag to mark the frames which need to be decoded, but shouldn't be output. + */ +#define AV_FRAME_FLAG_DISCARD (1 << 2) +/** * @} */ diff --git a/media/ffvpx/libavutil/hwcontext.h b/media/ffvpx/libavutil/hwcontext.h index 4e9da0224d..5e2af092a4 100644 --- a/media/ffvpx/libavutil/hwcontext.h +++ b/media/ffvpx/libavutil/hwcontext.h @@ -29,6 +29,7 @@ enum AVHWDeviceType { AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_DXVA2, + AV_HWDEVICE_TYPE_QSV, }; typedef struct AVHWDeviceInternal AVHWDeviceInternal; diff --git a/media/ffvpx/libavutil/internal.h b/media/ffvpx/libavutil/internal.h index 61784b5128..e995af97e4 100644 --- a/media/ffvpx/libavutil/internal.h +++ b/media/ffvpx/libavutil/internal.h @@ -330,6 +330,16 @@ static av_always_inline av_const int avpriv_mirror(int x, int w) void ff_check_pixfmt_descriptors(void); +/** + * Set a dictionary value to an ISO-8601 compliant timestamp string. + * + * @param s AVFormatContext + * @param key metadata key + * @param timestamp unix timestamp in microseconds + * @return <0 on error + */ +int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp); + extern const uint8_t ff_reverse[256]; #endif /* AVUTIL_INTERNAL_H */ diff --git a/media/ffvpx/libavutil/log.h b/media/ffvpx/libavutil/log.h index 0acc1b9214..f0a57385df 100644 --- a/media/ffvpx/libavutil/log.h +++ b/media/ffvpx/libavutil/log.h @@ -44,7 +44,7 @@ typedef enum { AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, AV_CLASS_CATEGORY_DEVICE_OUTPUT, AV_CLASS_CATEGORY_DEVICE_INPUT, - AV_CLASS_CATEGORY_NB, ///< not part of ABI/API + AV_CLASS_CATEGORY_NB ///< not part of ABI/API }AVClassCategory; #define AV_IS_INPUT_DEVICE(category) \ diff --git a/media/ffvpx/libavutil/mathematics.h b/media/ffvpx/libavutil/mathematics.h index 57c44f845d..54901800ba 100644 --- a/media/ffvpx/libavutil/mathematics.h +++ b/media/ffvpx/libavutil/mathematics.h @@ -18,6 +18,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/** + * @file + * @addtogroup lavu_math + * Mathematical utilities for working with timestamp and time base. + */ + #ifndef AVUTIL_MATHEMATICS_H #define AVUTIL_MATHEMATICS_H @@ -63,84 +69,155 @@ /** * @addtogroup lavu_math + * * @{ */ - +/** + * Rounding methods. + */ enum AVRounding { AV_ROUND_ZERO = 0, ///< Round toward zero. AV_ROUND_INF = 1, ///< Round away from zero. AV_ROUND_DOWN = 2, ///< Round toward -infinity. AV_ROUND_UP = 3, ///< Round toward +infinity. AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. - AV_ROUND_PASS_MINMAX = 8192, ///< Flag to pass INT64_MIN/MAX through instead of rescaling, this avoids special cases for AV_NOPTS_VALUE + /** + * Flag telling rescaling functions to pass `INT64_MIN`/`MAX` through + * unchanged, avoiding special cases for #AV_NOPTS_VALUE. + * + * Unlike other values of the enumeration AVRounding, this value is a + * bitmask that must be used in conjunction with another value of the + * enumeration through a bitwise OR, in order to set behavior for normal + * cases. + * + * @code{.c} + * av_rescale_rnd(3, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling 3: + * // Calculating 3 * 1 / 2 + * // 3 / 2 is rounded up to 2 + * // => 2 + * + * av_rescale_rnd(AV_NOPTS_VALUE, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling AV_NOPTS_VALUE: + * // AV_NOPTS_VALUE == INT64_MIN + * // AV_NOPTS_VALUE is passed through + * // => AV_NOPTS_VALUE + * @endcode + */ + AV_ROUND_PASS_MINMAX = 8192, }; /** - * Compute the greatest common divisor of a and b. + * Compute the greatest common divisor of two integer operands. * - * @return gcd of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0; + * @param a,b Operands + * @return GCD of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0; * if a == 0 and b == 0, returns 0. */ int64_t av_const av_gcd(int64_t a, int64_t b); /** * Rescale a 64-bit integer with rounding to nearest. - * A simple a*b/c isn't possible as it can overflow. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow. + * + * This function is equivalent to av_rescale_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale_rnd(), av_rescale_q(), av_rescale_q_rnd() */ int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const; /** * Rescale a 64-bit integer with specified rounding. - * A simple a*b/c isn't possible as it can overflow. * - * @return rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is - * INT64_MIN or INT64_MAX then a is passed through unchanged. + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow, and does not support different rounding methods. + * + * @see av_rescale(), av_rescale_q(), av_rescale_q_rnd() */ -int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const; +int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) av_const; /** * Rescale a 64-bit integer by 2 rational numbers. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * This function is equivalent to av_rescale_q_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q_rnd() */ int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; /** * Rescale a 64-bit integer by 2 rational numbers with specified rounding. * - * @return rescaled value a, or if AV_ROUND_PASS_MINMAX is set and a is - * INT64_MIN or INT64_MAX then a is passed through unchanged. + * The operation is mathematically equivalent to `a * bq / cq`. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q() */ int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, - enum AVRounding) av_const; + enum AVRounding rnd) av_const; /** - * Compare 2 timestamps each in its own timebases. - * The result of the function is undefined if one of the timestamps - * is outside the int64_t range when represented in the others timebase. - * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position + * Compare two timestamps each in its own time base. + * + * @return One of the following values: + * - -1 if `ts_a` is before `ts_b` + * - 1 if `ts_a` is after `ts_b` + * - 0 if they represent the same position + * + * @warning + * The result of the function is undefined if one of the timestamps is outside + * the `int64_t` range when represented in the other's timebase. */ int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); /** - * Compare 2 integers modulo mod. - * That is we compare integers a and b for which only the least - * significant log2(mod) bits are known. - * - * @param mod must be a power of 2 - * @return a negative value if a is smaller than b - * a positive value if a is greater than b - * 0 if a equals b + * Compare the remainders of two integer operands divided by a common divisor. + * + * In other words, compare the least significant `log2(mod)` bits of integers + * `a` and `b`. + * + * @code{.c} + * av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10 (0x1) < 0x02 % 0x10 (0x2) + * av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02) + * @endcode + * + * @param a,b Operands + * @param mod Divisor; must be a power of 2 + * @return + * - a negative value if `a % mod < b % mod` + * - a positive value if `a % mod > b % mod` + * - zero if `a % mod == b % mod` */ int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); /** * Rescale a timestamp while preserving known durations. * - * @param in_ts Input timestamp - * @param in_tb Input timebase - * @param fs_tb Duration and *last timebase - * @param duration duration till the next call - * @param out_tb Output timebase + * This function is designed to be called per audio packet to scale the input + * timestamp to a different time base. Compared to a simple av_rescale_q() + * call, this function is robust against possible inconsistent frame durations. + * + * The `last` parameter is a state variable that must be preserved for all + * subsequent calls for the same stream. For the first call, `*last` should be + * initialized to #AV_NOPTS_VALUE. + * + * @param[in] in_tb Input time base + * @param[in] in_ts Input timestamp + * @param[in] fs_tb Duration time base; typically this is finer-grained + * (greater) than `in_tb` and `out_tb` + * @param[in] duration Duration till the next call to this function (i.e. + * duration of the current packet/frame) + * @param[in,out] last Pointer to a timestamp expressed in terms of + * `fs_tb`, acting as a state variable + * @param[in] out_tb Output timebase + * @return Timestamp expressed in terms of `out_tb` + * + * @note In the context of this function, "duration" is in term of samples, not + * seconds. */ int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb); @@ -150,15 +227,15 @@ int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int * This function guarantees that when the same value is repeatly added that * no accumulation of rounding errors occurs. * - * @param ts Input timestamp - * @param ts_tb Input timestamp timebase - * @param inc value to add to ts - * @param inc_tb inc timebase + * @param[in] ts Input timestamp + * @param[in] ts_tb Input timestamp time base + * @param[in] inc Value to be added + * @param[in] inc_tb Time base of `inc` */ int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc); - /** +/** * @} */ diff --git a/media/ffvpx/libavutil/mem.c b/media/ffvpx/libavutil/mem.c index 8dfaad8271..1a8fc21e98 100644 --- a/media/ffvpx/libavutil/mem.c +++ b/media/ffvpx/libavutil/mem.c @@ -179,7 +179,7 @@ void *av_realloc_f(void *ptr, size_t nelem, size_t elsize) return NULL; } r = av_realloc(ptr, size); - if (!r && size) + if (!r) av_free(ptr); return r; } @@ -312,7 +312,7 @@ int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem) void **tab; memcpy(&tab, tab_ptr, sizeof(tab)); - AV_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, { + FF_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, { tab[*nb_ptr] = elem; memcpy(tab_ptr, &tab, sizeof(tab)); }, { @@ -326,7 +326,7 @@ void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem) void **tab; memcpy(&tab, tab_ptr, sizeof(tab)); - AV_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, { + FF_DYNARRAY_ADD(INT_MAX, sizeof(*tab), tab, *nb_ptr, { tab[*nb_ptr] = elem; memcpy(tab_ptr, &tab, sizeof(tab)); }, { @@ -340,7 +340,7 @@ void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size, { uint8_t *tab_elem_data = NULL; - AV_DYNARRAY_ADD(INT_MAX, elem_size, *tab_ptr, *nb_ptr, { + FF_DYNARRAY_ADD(INT_MAX, elem_size, *tab_ptr, *nb_ptr, { tab_elem_data = (uint8_t *)*tab_ptr + (*nb_ptr) * elem_size; if (elem_data) memcpy(tab_elem_data, elem_data, elem_size); diff --git a/media/ffvpx/libavutil/mem.h b/media/ffvpx/libavutil/mem.h index d25b3229b7..f9d8884788 100644 --- a/media/ffvpx/libavutil/mem.h +++ b/media/ffvpx/libavutil/mem.h @@ -20,7 +20,8 @@ /** * @file - * memory handling functions + * @ingroup lavu_mem + * Memory handling functions */ #ifndef AVUTIL_MEM_H @@ -35,9 +36,56 @@ /** * @addtogroup lavu_mem + * Utilities for manipulating memory. + * + * FFmpeg has several applications of memory that are not required of a typical + * program. For example, the computing-heavy components like video decoding and + * encoding can be sped up significantly through the use of aligned memory. + * + * However, for each of FFmpeg's applications of memory, there might not be a + * recognized or standardized API for that specific use. Memory alignment, for + * instance, varies wildly depending on operating systems, architectures, and + * compilers. Hence, this component of @ref libavutil is created to make + * dealing with memory consistently possible on all platforms. + * * @{ + * + * @defgroup lavu_mem_macros Alignment Macros + * Helper macros for declaring aligned variables. + * @{ + */ + +/** + * @def DECLARE_ALIGNED(n,t,v) + * Declare a variable that is aligned in memory. + * + * @code{.c} + * DECLARE_ALIGNED(16, uint16_t, aligned_int) = 42; + * DECLARE_ALIGNED(32, uint8_t, aligned_array)[128]; + * + * // The default-alignment equivalent would be + * uint16_t aligned_int = 42; + * uint8_t aligned_array[128]; + * @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. + * + * @code{.c} + * DECLARE_ASM_CONST(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 + */ #if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C) #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v @@ -60,12 +108,47 @@ #define DECLARE_ASM_CONST(n,t,v) static const t v #endif +/** + * @} + */ + +/** + * @defgroup lavu_mem_attrs Function Attributes + * Function attributes applicable to memory handling functions. + * + * These function attributes can help compilers emit more useful warnings, or + * generate better code. + * @{ + */ + +/** + * @def av_malloc_attrib + * Function attribute denoting a malloc-like function. + * + * @see <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-g_t_0040code_007bmalloc_007d-function-attribute-3251">Function attribute `malloc` in GCC's documentation</a> + */ + #if AV_GCC_VERSION_AT_LEAST(3,1) #define av_malloc_attrib __attribute__((__malloc__)) #else #define av_malloc_attrib #endif +/** + * @def av_alloc_size(...) + * Function attribute used on a function that allocates memory, whose size is + * given by the specified parameter(s). + * + * @code{.c} + * void *av_malloc(size_t size) av_alloc_size(1); + * void *av_calloc(size_t nmemb, size_t size) av_alloc_size(1, 2); + * @endcode + * + * @param ... One or two parameter indexes, separated by a comma + * + * @see <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-g_t_0040code_007balloc_005fsize_007d-function-attribute-3220">Function attribute `alloc_size` in GCC's documentation</a> + */ + #if AV_GCC_VERSION_AT_LEAST(4,3) #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) #else @@ -73,21 +156,51 @@ #endif /** - * Allocate a block of size bytes with alignment suitable for all - * memory accesses (including vectors if available on the CPU). - * @param size Size in bytes for the memory block to be allocated. - * @return Pointer to the allocated block, NULL if the block cannot - * be allocated. + * @} + */ + +/** + * @defgroup lavu_mem_funcs Heap Management + * Functions responsible for allocating, freeing, and copying memory. + * + * All memory allocation functions have a built-in upper limit of `INT_MAX` + * bytes. This may be changed with av_max_alloc(), although exercise extreme + * caution when doing so. + * + * @{ + */ + +/** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU). + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated * @see av_mallocz() */ void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1); /** - * Allocate a block of size * nmemb bytes with av_malloc(). - * @param nmemb Number of elements - * @param size Size of the single element - * @return Pointer to the allocated block, NULL if the block cannot - * be allocated. + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU) and zero all the bytes of the + * block. + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if it cannot be allocated + * @see av_malloc() + */ +void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate a memory block for an array with av_malloc(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of element + * @param size Size of a single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated * @see av_malloc() */ av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t size) @@ -98,179 +211,378 @@ av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t siz } /** - * Allocate or reallocate a block of memory. - * If ptr is NULL and size > 0, allocate a new block. If - * size is zero, free the memory block pointed to by ptr. - * @param ptr Pointer to a memory block already allocated with - * av_realloc() or NULL. + * Allocate a memory block for an array with av_mallocz(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of elements + * @param size Size of the single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * + * @see av_mallocz() + * @see av_malloc_array() + */ +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(). + * + * Created for symmetry with the calloc() C function. + */ +void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib; + +/** + * Allocate, reallocate, or free a block of memory. + * + * If `ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is + * zero, free the memory block pointed to by `ptr`. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` * @param size Size in bytes of the memory block to be allocated or - * reallocated. - * @return Pointer to a newly-reallocated block or NULL if the block - * cannot be reallocated or the function is used to free the memory block. - * @warning Pointers originating from the av_malloc() family of functions must - * not be passed to av_realloc(). The former can be implemented using - * memalign() (or other functions), and there is no guarantee that - * pointers from such functions can be passed to realloc() at all. - * The situation is undefined according to POSIX and may crash with - * some libc implementations. + * reallocated + * + * @return Pointer to a newly-reallocated block or `NULL` if the block + * cannot be reallocated or the function is used to free the memory block + * + * @warning Unlike av_malloc(), the returned pointer is not guaranteed to be + * correctly aligned. * @see av_fast_realloc() + * @see av_reallocp() */ void *av_realloc(void *ptr, size_t size) av_alloc_size(2); /** - * Allocate or reallocate a block of memory. - * This function does the same thing as av_realloc, except: - * - It takes two arguments and checks the result of the multiplication for - * integer overflow. - * - It frees the input block in case of failure, thus avoiding the memory - * leak with the classic "buf = realloc(buf); if (!buf) return -1;". + * Allocate, reallocate, or free a block of memory through a pointer to a + * pointer. + * + * If `*ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is + * zero, free the memory block pointed to by `*ptr`. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already allocated + * with av_realloc(), or a pointer to `NULL`. The pointer + * is updated on success, or freed on failure. + * @param[in] size Size in bytes for the memory block to be allocated or + * reallocated + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. */ -void *av_realloc_f(void *ptr, size_t nelem, size_t elsize); +av_warn_unused_result +int av_reallocp(void *ptr, size_t size); /** - * Allocate or reallocate a block of memory. - * If *ptr is NULL and size > 0, allocate a new block. If - * size is zero, free the memory block pointed to by ptr. - * @param ptr Pointer to a pointer to a memory block already allocated - * with av_realloc(), or pointer to a pointer to NULL. - * The pointer is updated on success, or freed on failure. - * @param size Size in bytes for the memory block to be allocated or - * reallocated - * @return Zero on success, an AVERROR error code on failure. - * @warning Pointers originating from the av_malloc() family of functions must - * not be passed to av_reallocp(). The former can be implemented using - * memalign() (or other functions), and there is no guarantee that - * pointers from such functions can be passed to realloc() at all. - * The situation is undefined according to POSIX and may crash with - * some libc implementations. + * Allocate, reallocate, or free a block of memory. + * + * This function does the same thing as av_realloc(), except: + * - It takes two size arguments and allocates `nelem * elsize` bytes, + * after checking the result of the multiplication for integer overflow. + * - It frees the input block in case of failure, thus avoiding the memory + * leak with the classic + * @code{.c} + * buf = realloc(buf); + * if (!buf) + * return -1; + * @endcode + * pattern. */ -av_warn_unused_result -int av_reallocp(void *ptr, size_t size); +void *av_realloc_f(void *ptr, size_t nelem, size_t elsize); /** - * Allocate or reallocate an array. - * If ptr is NULL and nmemb > 0, allocate a new block. If - * nmemb is zero, free the memory block pointed to by ptr. - * @param ptr Pointer to a memory block already allocated with - * av_realloc() or NULL. - * @param nmemb Number of elements - * @param size Size of the single element + * Allocate, reallocate, or free an array. + * + * If `ptr` is `NULL` and `nmemb` > 0, allocate a new block. If + * `nmemb` is zero, free the memory block pointed to by `ptr`. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param nmemb Number of elements in the array + * @param size Size of the single element of the array + * * @return Pointer to a newly-reallocated block or NULL if the block - * cannot be reallocated or the function is used to free the memory block. - * @warning Pointers originating from the av_malloc() family of functions must - * not be passed to av_realloc(). The former can be implemented using - * memalign() (or other functions), and there is no guarantee that - * pointers from such functions can be passed to realloc() at all. - * The situation is undefined according to POSIX and may crash with - * some libc implementations. + * cannot be reallocated or the function is used to free the memory block + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. + * @see av_reallocp_array() */ av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size); /** - * Allocate or reallocate an array through a pointer to a pointer. - * If *ptr is NULL and nmemb > 0, allocate a new block. If - * nmemb is zero, free the memory block pointed to by ptr. - * @param ptr Pointer to a pointer to a memory block already allocated - * with av_realloc(), or pointer to a pointer to NULL. - * The pointer is updated on success, or freed on failure. - * @param nmemb Number of elements - * @param size Size of the single element - * @return Zero on success, an AVERROR error code on failure. - * @warning Pointers originating from the av_malloc() family of functions must - * not be passed to av_realloc(). The former can be implemented using - * memalign() (or other functions), and there is no guarantee that - * pointers from such functions can be passed to realloc() at all. - * The situation is undefined according to POSIX and may crash with - * some libc implementations. + * Allocate, reallocate, or free an array through a pointer to a pointer. + * + * If `*ptr` is `NULL` and `nmemb` > 0, allocate a new block. If `nmemb` is + * zero, free the memory block pointed to by `*ptr`. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already + * allocated with av_realloc(), or a pointer to `NULL`. + * The pointer is updated on success, or freed on failure. + * @param[in] nmemb Number of elements + * @param[in] size Size of the single element + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. */ av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size); /** - * Free a memory block which has been allocated with av_malloc(z)() or - * av_realloc(). - * @param ptr Pointer to the memory block which should be freed. - * @note ptr = NULL is explicitly allowed. - * @note It is recommended that you use av_freep() instead. - * @see av_freep() + * Reallocate the given buffer if it is not large enough, otherwise do nothing. + * + * If the given buffer is `NULL`, then a new uninitialized buffer is allocated. + * + * If the given buffer is not large enough, and reallocation fails, `NULL` is + * returned and `*size` is set to 0, but the original buffer is not changed or + * freed. + * + * A typical use pattern follows: + * + * @code{.c} + * uint8_t *buf = ...; + * uint8_t *new_buf = av_fast_realloc(buf, ¤t_size, size_needed); + * if (!new_buf) { + * // Allocation failed; clean up original buffer + * av_freep(&buf); + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Already allocated buffer, or `NULL` + * @param[in,out] size Pointer to current size of buffer `ptr`. `*size` is + * changed to `min_size` in case of success or 0 in + * case of failure + * @param[in] min_size New size of buffer `ptr` + * @return `ptr` if the buffer is large enough, a pointer to newly reallocated + * buffer if the buffer was not large enough, or `NULL` in case of + * error + * @see av_realloc() + * @see av_fast_malloc() */ -void av_free(void *ptr); +void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size); /** - * Allocate a block of size bytes with alignment suitable for all - * memory accesses (including vectors if available on the CPU) and - * zero all the bytes of the block. - * @param size Size in bytes for the memory block to be allocated. - * @return Pointer to the allocated block, NULL if it cannot be allocated. - * @see av_malloc() + * Allocate a buffer, reusing the given one if large enough. + * + * Contrary to av_fast_realloc(), the current buffer contents might not be + * preserved and on error the old buffer is freed, thus no special handling to + * avoid memleaks is necessary. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @code{.c} + * uint8_t *buf = ...; + * av_fast_malloc(&buf, ¤t_size, size_needed); + * if (!buf) { + * // Allocation failed; buf already freed + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to current size of buffer `*ptr`. `*size` is + * changed to `min_size` in case of success or 0 in + * case of failure + * @param[in] min_size New size of buffer `*ptr` + * @see av_realloc() + * @see av_fast_mallocz() */ -void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); +void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size); /** - * Allocate a block of nmemb * size bytes with alignment suitable for all - * memory accesses (including vectors if available on the CPU) and - * zero all the bytes of the block. - * The allocation will fail if nmemb * size is greater than or equal - * to INT_MAX. - * @param nmemb - * @param size - * @return Pointer to the allocated block, NULL if it cannot be allocated. + * Allocate and clear a buffer, reusing the given one if large enough. + * + * Like av_fast_malloc(), but all newly allocated space is initially cleared. + * Reused buffer is not cleared. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to current size of buffer `*ptr`. `*size` is + * changed to `min_size` in case of success or 0 in + * case of failure + * @param[in] min_size New size of buffer `*ptr` + * @see av_fast_malloc() */ -void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib; +void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size); /** - * Allocate a block of size * nmemb bytes with av_mallocz(). - * @param nmemb Number of elements - * @param size Size of the single element - * @return Pointer to the allocated block, NULL if the block cannot - * be allocated. - * @see av_mallocz() - * @see av_malloc_array() + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family. + * + * @param ptr Pointer to the memory block which should be freed. + * + * @note `ptr = NULL` is explicitly allowed. + * @note It is recommended that you use av_freep() instead, to prevent leaving + * behind dangling pointers. + * @see av_freep() */ -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); -} +void av_free(void *ptr); + +/** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family, and set the pointer pointing to it to `NULL`. + * + * @code{.c} + * uint8_t *buf = av_malloc(16); + * av_free(buf); + * // buf now contains a dangling pointer to freed memory, and accidental + * // dereference of buf will result in a use-after-free, which may be a + * // security risk. + * + * uint8_t *buf = av_malloc(16); + * av_freep(&buf); + * // buf is now NULL, and accidental dereference will only result in a + * // NULL-pointer dereference. + * @endcode + * + * @param ptr Pointer to the pointer to the memory block which should be freed + * @note `*ptr = NULL` is safe and leads to no action. + * @see av_free() + */ +void av_freep(void *ptr); /** - * Duplicate the string s. - * @param s string to be duplicated + * Duplicate a string. + * + * @param s String to be duplicated * @return Pointer to a newly-allocated string containing a - * copy of s or NULL if the string cannot be allocated. + * copy of `s` or `NULL` if the string cannot be allocated + * @see av_strndup() */ char *av_strdup(const char *s) av_malloc_attrib; /** - * Duplicate a substring of the string s. - * @param s string to be duplicated - * @param len the maximum length of the resulting string (not counting the - * terminating byte). + * Duplicate a substring of a string. + * + * @param s String to be duplicated + * @param len Maximum length of the resulting string (not counting the + * terminating byte) * @return Pointer to a newly-allocated string containing a - * copy of s or NULL if the string cannot be allocated. + * substring of `s` or `NULL` if the string cannot be allocated */ char *av_strndup(const char *s, size_t len) av_malloc_attrib; /** - * Duplicate the buffer p. - * @param p buffer to be duplicated + * Duplicate a buffer with av_malloc(). + * + * @param p Buffer to be duplicated + * @param size Size in bytes of the buffer copied * @return Pointer to a newly allocated buffer containing a - * copy of p or NULL if the buffer cannot be allocated. + * copy of `p` or `NULL` if the buffer cannot be allocated */ void *av_memdup(const void *p, size_t size); /** - * Free a memory block which has been allocated with av_malloc(z)() or - * av_realloc() and set the pointer pointing to it to NULL. - * @param ptr Pointer to the pointer to the memory block which should - * be freed. - * @note passing a pointer to a NULL pointer is safe and leads to no action. - * @see av_free() + * Overlapping memcpy() implementation. + * + * @param dst Destination buffer + * @param back Number of bytes back to start copying (i.e. the initial size of + * the overlapping window); must be > 0 + * @param cnt Number of bytes to copy; must be >= 0 + * + * @note `cnt > back` is valid, this will copy the bytes we just copied, + * thus creating a repeating pattern with a period length of `back`. */ -void av_freep(void *ptr); +void av_memcpy_backptr(uint8_t *dst, int back, int cnt); /** - * Add an element to a dynamic array. + * @} + */ + +/** + * @defgroup lavu_mem_dynarray Dynamic Array + * + * Utilities to make an array grow when needed. + * + * Sometimes, the programmer would want to have an array that can grow when + * needed. The libavutil dynamic array utilities fill that need. + * + * libavutil supports two systems of appending elements onto a dynamically + * allocated array, the first one storing the pointer to the value in the + * array, and the second storing the value directly. In both systems, the + * caller is responsible for maintaining a variable containing the length of + * the array, as well as freeing of the array after use. + * + * The first system stores pointers to values in a block of dynamically + * allocated memory. Since only pointers are stored, the function does not need + * to know the size of the type. Both av_dynarray_add() and + * av_dynarray_add_nofree() implement this system. + * + * @code + * type **array = NULL; //< an array of pointers to values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * av_dynarray_add(&array, &nb, &to_be_added); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * av_dynarray_add(&array, &nb, &to_be_added2); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // &to_be_added == array[0] + * // &to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * The second system stores the value directly in a block of memory. As a + * result, the function has to know the size of the type. av_dynarray2_add() + * implements this mechanism. + * + * @code + * type *array = NULL; //< an array of values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), NULL); + * if (!addr) + * return AVERROR(ENOMEM); + * memcpy(addr, &to_be_added, sizeof(to_be_added)); + * + * // Shortcut of the above. + * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), + * (const void *)&to_be_added2); + * if (!addr) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // to_be_added == array[0] + * // to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * @{ + */ + +/** + * Add the pointer to an element to a dynamic array. * * The array to grow is supposed to be an array of pointers to * structures, and the element to add must be a pointer to an already @@ -280,14 +592,14 @@ void av_freep(void *ptr); * Therefore, the amortized cost of adding an element is constant. * * In case of success, the pointer to the array is updated in order to - * point to the new grown array, and the number pointed to by nb_ptr + * point to the new grown array, and the number pointed to by `nb_ptr` * is incremented. - * In case of failure, the array is freed, *tab_ptr is set to NULL and - * *nb_ptr is set to 0. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. * - * @param tab_ptr pointer to the array to grow - * @param nb_ptr pointer to the number of elements in the array - * @param elem element to add + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem Element to add * @see av_dynarray_add_nofree(), av_dynarray2_add() */ void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem); @@ -299,108 +611,86 @@ void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem); * but it doesn't free memory on fails. It returns error code * instead and leave current buffer untouched. * - * @param tab_ptr pointer to the array to grow - * @param nb_ptr pointer to the number of elements in the array - * @param elem element to add - * @return >=0 on success, negative otherwise. + * @return >=0 on success, negative otherwise * @see av_dynarray_add(), av_dynarray2_add() */ av_warn_unused_result int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem); /** - * Add an element of size elem_size to a dynamic array. + * Add an element of size `elem_size` to a dynamic array. * * The array is reallocated when its number of elements reaches powers of 2. * Therefore, the amortized cost of adding an element is constant. * * In case of success, the pointer to the array is updated in order to - * point to the new grown array, and the number pointed to by nb_ptr + * point to the new grown array, and the number pointed to by `nb_ptr` * is incremented. - * In case of failure, the array is freed, *tab_ptr is set to NULL and - * *nb_ptr is set to 0. - * - * @param tab_ptr pointer to the array to grow - * @param nb_ptr pointer to the number of elements in the array - * @param elem_size size in bytes of the elements in the array - * @param elem_data pointer to the data of the element to add. If NULL, the space of - * the new added element is not filled. - * @return pointer to the data of the element to copy in the new allocated space. - * If NULL, the new allocated space is left uninitialized." + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem_size Size in bytes of an element in the array + * @param[in] elem_data Pointer to the data of the element to add. If + * `NULL`, the space of the newly added element is + * allocated but left uninitialized. + * + * @return Pointer to the data of the element to copy in the newly allocated + * space * @see av_dynarray_add(), av_dynarray_add_nofree() */ void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size, const uint8_t *elem_data); /** - * Multiply two size_t values checking for overflow. - * @return 0 if success, AVERROR(EINVAL) if overflow. - */ -static inline int av_size_mult(size_t a, size_t b, size_t *r) -{ - size_t t = a * b; - /* Hack inspired from glibc: only try the division if nelem and elsize - * are both greater than sqrt(SIZE_MAX). */ - if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) - return AVERROR(EINVAL); - *r = t; - return 0; -} - -/** - * Set the maximum size that may me allocated in one block. + * @} */ -void av_max_alloc(size_t max); /** - * deliberately overlapping memcpy implementation - * @param dst destination buffer - * @param back how many bytes back we start (the initial size of the overlapping window), must be > 0 - * @param cnt number of bytes to copy, must be >= 0 + * @defgroup lavu_mem_misc Miscellaneous Functions + * + * Other functions related to memory allocation. * - * cnt > back is valid, this will copy the bytes we just copied, - * thus creating a repeating pattern with a period length of back. + * @{ */ -void av_memcpy_backptr(uint8_t *dst, int back, int cnt); /** - * Reallocate the given block if it is not large enough, otherwise do nothing. + * Multiply two `size_t` values checking for overflow. * - * @see av_realloc + * @param[in] a,b Operands of multiplication + * @param[out] r Pointer to the result of the operation + * @return 0 on success, AVERROR(EINVAL) on overflow */ -void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size); +static inline int av_size_mult(size_t a, size_t b, size_t *r) +{ + size_t t = a * b; + /* Hack inspired from glibc: don't try the division if nelem and elsize + * are both less than sqrt(SIZE_MAX). */ + if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) + return AVERROR(EINVAL); + *r = t; + return 0; +} /** - * Allocate a buffer, reusing the given one if large enough. + * Set the maximum size that may be allocated in one block. * - * Contrary to av_fast_realloc the current buffer contents might not be - * preserved and on error the old buffer is freed, thus no special - * handling to avoid memleaks is necessary. + * The value specified with this function is effective for all libavutil's @ref + * lavu_mem_funcs "heap management functions." * - * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer - * @param size size of the buffer *ptr points to - * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and - * *size 0 if an error occurred. - */ -void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size); - -/** - * Allocate a buffer, reusing the given one if large enough. + * By default, the max value is defined as `INT_MAX`. * - * All newly allocated space is initially cleared - * Contrary to av_fast_realloc the current buffer contents might not be - * preserved and on error the old buffer is freed, thus no special - * handling to avoid memleaks is necessary. + * @param max Value to be set as the new maximum size * - * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer - * @param size size of the buffer *ptr points to - * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and - * *size 0 if an error occurred. + * @warning Exercise extreme caution when using this function. Don't touch + * this if you do not understand the full consequence of doing so. */ -void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size); +void av_max_alloc(size_t max); /** * @} + * @} */ #endif /* AVUTIL_MEM_H */ diff --git a/media/ffvpx/libavutil/opt.h b/media/ffvpx/libavutil/opt.h index 9a76a47f75..9430b989e9 100644 --- a/media/ffvpx/libavutil/opt.h +++ b/media/ffvpx/libavutil/opt.h @@ -58,7 +58,7 @@ * The following example illustrates an AVOptions-enabled struct: * @code * typedef struct test_struct { - * AVClass *class; + * const AVClass *class; * int int_opt; * char *str_opt; * uint8_t *bin_opt; @@ -96,7 +96,7 @@ * @code * test_struct *alloc_test_struct(void) * { - * test_struct *ret = av_malloc(sizeof(*ret)); + * test_struct *ret = av_mallocz(sizeof(*ret)); * ret->class = &test_class; * av_opt_set_defaults(ret); * return ret; diff --git a/media/ffvpx/libavutil/parseutils.c b/media/ffvpx/libavutil/parseutils.c index 6be3730f48..a2464cfc6e 100644 --- a/media/ffvpx/libavutil/parseutils.c +++ b/media/ffvpx/libavutil/parseutils.c @@ -687,6 +687,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) dt2.tm_sec = dt.tm_sec; dt = dt2; } + dt.tm_isdst = is_utc ? 0 : -1; t = is_utc ? av_timegm(&dt) : mktime(&dt); t += tzoffset; } diff --git a/media/ffvpx/libavutil/pixdesc.c b/media/ffvpx/libavutil/pixdesc.c index 0dffa4dbdb..b715fce15d 100644 --- a/media/ffvpx/libavutil/pixdesc.c +++ b/media/ffvpx/libavutil/pixdesc.c @@ -1974,6 +1974,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { .name = "qsv", .flags = AV_PIX_FMT_FLAG_HWACCEL, }, + [AV_PIX_FMT_MEDIACODEC] = { + .name = "mediacodec", + .flags = AV_PIX_FMT_FLAG_HWACCEL, + }, [AV_PIX_FMT_MMAL] = { .name = "mmal", .flags = AV_PIX_FMT_FLAG_HWACCEL, @@ -2093,33 +2097,73 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { FF_ENABLE_DEPRECATION_WARNINGS #endif -static const char *color_range_names[AVCOL_RANGE_NB] = { - "unknown", "tv", "pc", +static const char *color_range_names[] = { + [AVCOL_RANGE_UNSPECIFIED] = "unknown", + [AVCOL_RANGE_MPEG] = "tv", + [AVCOL_RANGE_JPEG] = "pc", }; static const char *color_primaries_names[AVCOL_PRI_NB] = { - "reserved", "bt709", "unknown", "reserved", "bt470m", - "bt470bg", "smpte170m", "smpte240m", "film", "bt2020", - "smpte428-1", + [AVCOL_PRI_RESERVED0] = "reserved", + [AVCOL_PRI_BT709] = "bt709", + [AVCOL_PRI_UNSPECIFIED] = "unknown", + [AVCOL_PRI_RESERVED] = "reserved", + [AVCOL_PRI_BT470M] = "bt470m", + [AVCOL_PRI_BT470BG] = "bt470bg", + [AVCOL_PRI_SMPTE170M] = "smpte170m", + [AVCOL_PRI_SMPTE240M] = "smpte240m", + [AVCOL_PRI_FILM] = "film", + [AVCOL_PRI_BT2020] = "bt2020", + [AVCOL_PRI_SMPTEST428_1] = "smpte428-1", + [AVCOL_PRI_SMPTE431] = "smpte431", + [AVCOL_PRI_SMPTE432] = "smpte432", }; -static const char *color_transfer_names[AVCOL_TRC_NB] = { - "reserved", "bt709", "unknown", "reserved", "bt470m", - "bt470bg", "smpte170m", "smpte240m", "linear", "log100", - "log316", "iec61966-2-4", "bt1361e", "iec61966-2-1", - "bt2020-10", "bt2020-20", "smpte2084", "smpte428-1", - "arib-std-b67" +static const char *color_transfer_names[] = { + [AVCOL_TRC_RESERVED0] = "reserved", + [AVCOL_TRC_BT709] = "bt709", + [AVCOL_TRC_UNSPECIFIED] = "unknown", + [AVCOL_TRC_RESERVED] = "reserved", + [AVCOL_TRC_GAMMA22] = "bt470m", + [AVCOL_TRC_GAMMA28] = "bt470bg", + [AVCOL_TRC_SMPTE170M] = "smpte170m", + [AVCOL_TRC_SMPTE240M] = "smpte240m", + [AVCOL_TRC_LINEAR] = "linear", + [AVCOL_TRC_LOG] = "log100", + [AVCOL_TRC_LOG_SQRT] = "log316", + [AVCOL_TRC_IEC61966_2_4] = "iec61966-2-4", + [AVCOL_TRC_BT1361_ECG] = "bt1361e", + [AVCOL_TRC_IEC61966_2_1] = "iec61966-2-1", + [AVCOL_TRC_BT2020_10] = "bt2020-10", + [AVCOL_TRC_BT2020_12] = "bt2020-20", + [AVCOL_TRC_SMPTEST2084] = "smpte2084", + [AVCOL_TRC_SMPTEST428_1] = "smpte428-1", + [AVCOL_TRC_ARIB_STD_B67] = "arib-std-b67", }; -static const char *color_space_names[AVCOL_SPC_NB] = { - "gbr", "bt709", "unknown", "reserved", "fcc", - "bt470bg", "smpte170m", "smpte240m", "ycgco", - "bt2020nc", "bt2020c", +static const char *color_space_names[] = { + [AVCOL_SPC_RGB] = "gbr", + [AVCOL_SPC_BT709] = "bt709", + [AVCOL_SPC_UNSPECIFIED] = "unknown", + [AVCOL_SPC_RESERVED] = "reserved", + [AVCOL_SPC_FCC] = "fcc", + [AVCOL_SPC_BT470BG] = "bt470bg", + [AVCOL_SPC_SMPTE170M] = "smpte170m", + [AVCOL_SPC_SMPTE240M] = "smpte240m", + [AVCOL_SPC_YCOCG] = "ycgco", + [AVCOL_SPC_BT2020_NCL] = "bt2020nc", + [AVCOL_SPC_BT2020_CL] = "bt2020c", + [AVCOL_SPC_SMPTE2085] = "smpte2085", }; -static const char *chroma_location_names[AVCHROMA_LOC_NB] = { - "unspecified", "left", "center", "topleft", - "top", "bottomleft", "bottom", +static const char *chroma_location_names[] = { + [AVCHROMA_LOC_UNSPECIFIED] = "unspecified", + [AVCHROMA_LOC_LEFT] = "left", + [AVCHROMA_LOC_CENTER] = "center", + [AVCHROMA_LOC_TOPLEFT] = "topleft", + [AVCHROMA_LOC_TOP] = "top", + [AVCHROMA_LOC_BOTTOMLEFT] = "bottomleft", + [AVCHROMA_LOC_BOTTOM] = "bottom", }; static enum AVPixelFormat get_pix_fmt_internal(const char *name) diff --git a/media/ffvpx/libavutil/pixdesc.h b/media/ffvpx/libavutil/pixdesc.h index 3b0bcdb3d8..a8ad588913 100644 --- a/media/ffvpx/libavutil/pixdesc.h +++ b/media/ffvpx/libavutil/pixdesc.h @@ -173,78 +173,6 @@ typedef struct AVPixFmtDescriptor { #define AV_PIX_FMT_FLAG_ALPHA (1 << 7) /** - * Read a line from an image, and write the values of the - * pixel format component c to dst. - * - * @param data the array containing the pointers to the planes of the image - * @param linesize the array containing the linesizes of the image - * @param desc the pixel format descriptor for the image - * @param x the horizontal coordinate of the first pixel to read - * @param y the vertical coordinate of the first pixel to read - * @param w the width of the line to read, that is the number of - * values to write to dst - * @param read_pal_component if not zero and the format is a paletted - * format writes the values corresponding to the palette - * component c in data[1] to dst, rather than the palette indexes in - * data[0]. The behavior is undefined if the format is not paletted. - */ -void av_read_image_line(uint16_t *dst, const uint8_t *data[4], - const int linesize[4], const AVPixFmtDescriptor *desc, - int x, int y, int c, int w, int read_pal_component); - -/** - * Write the values from src to the pixel format component c of an - * image line. - * - * @param src array containing the values to write - * @param data the array containing the pointers to the planes of the - * image to write into. It is supposed to be zeroed. - * @param linesize the array containing the linesizes of the image - * @param desc the pixel format descriptor for the image - * @param x the horizontal coordinate of the first pixel to write - * @param y the vertical coordinate of the first pixel to write - * @param w the width of the line to write, that is the number of - * values to write to the image line - */ -void av_write_image_line(const uint16_t *src, uint8_t *data[4], - const int linesize[4], const AVPixFmtDescriptor *desc, - int x, int y, int c, int w); - -/** - * Return the pixel format corresponding to name. - * - * If there is no pixel format with name name, then looks for a - * pixel format with the name corresponding to the native endian - * format of name. - * For example in a little-endian system, first looks for "gray16", - * then for "gray16le". - * - * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE. - */ -enum AVPixelFormat av_get_pix_fmt(const char *name); - -/** - * Return the short name for a pixel format, NULL in case pix_fmt is - * unknown. - * - * @see av_get_pix_fmt(), av_get_pix_fmt_string() - */ -const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt); - -/** - * Print in buf the string corresponding to the pixel format with - * number pix_fmt, or a header if pix_fmt is negative. - * - * @param buf the buffer where to write the string - * @param buf_size the size of buf - * @param pix_fmt the number of the pixel format to print the - * corresponding info string, or a negative value to print the - * corresponding header. - */ -char *av_get_pix_fmt_string(char *buf, int buf_size, - enum AVPixelFormat pix_fmt); - -/** * Return the number of bits per pixel used by the pixel format * described by pixdesc. Note that this is not the same as the number * of bits per sample. @@ -307,6 +235,103 @@ int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); /** + * @return the name for provided color range or NULL if unknown. + */ +const char *av_color_range_name(enum AVColorRange range); + +/** + * @return the name for provided color primaries or NULL if unknown. + */ +const char *av_color_primaries_name(enum AVColorPrimaries primaries); + +/** + * @return the name for provided color transfer or NULL if unknown. + */ +const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer); + +/** + * @return the name for provided color space or NULL if unknown. + */ +const char *av_color_space_name(enum AVColorSpace space); + +/** + * @return the name for provided chroma location or NULL if unknown. + */ +const char *av_chroma_location_name(enum AVChromaLocation location); + +/** + * Return the pixel format corresponding to name. + * + * If there is no pixel format with name name, then looks for a + * pixel format with the name corresponding to the native endian + * format of name. + * For example in a little-endian system, first looks for "gray16", + * then for "gray16le". + * + * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE. + */ +enum AVPixelFormat av_get_pix_fmt(const char *name); + +/** + * Return the short name for a pixel format, NULL in case pix_fmt is + * unknown. + * + * @see av_get_pix_fmt(), av_get_pix_fmt_string() + */ +const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt); + +/** + * Print in buf the string corresponding to the pixel format with + * number pix_fmt, or a header if pix_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param pix_fmt the number of the pixel format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + */ +char *av_get_pix_fmt_string(char *buf, int buf_size, + enum AVPixelFormat pix_fmt); + +/** + * Read a line from an image, and write the values of the + * pixel format component c to dst. + * + * @param data the array containing the pointers to the planes of the image + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to read + * @param y the vertical coordinate of the first pixel to read + * @param w the width of the line to read, that is the number of + * values to write to dst + * @param read_pal_component if not zero and the format is a paletted + * format writes the values corresponding to the palette + * component c in data[1] to dst, rather than the palette indexes in + * data[0]. The behavior is undefined if the format is not paletted. + */ +void av_read_image_line(uint16_t *dst, const uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int read_pal_component); + +/** + * Write the values from src to the pixel format component c of an + * image line. + * + * @param src array containing the values to write + * @param data the array containing the pointers to the planes of the + * image to write into. It is supposed to be zeroed. + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to write + * @param y the vertical coordinate of the first pixel to write + * @param w the width of the line to write, that is the number of + * values to write to the image line + */ +void av_write_image_line(const uint16_t *src, uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w); + +/** * Utility function to swap the endianness of a pixel format. * * @param[in] pix_fmt the pixel format @@ -366,29 +391,4 @@ int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); -/** - * @return the name for provided color range or NULL if unknown. - */ -const char *av_color_range_name(enum AVColorRange range); - -/** - * @return the name for provided color primaries or NULL if unknown. - */ -const char *av_color_primaries_name(enum AVColorPrimaries primaries); - -/** - * @return the name for provided color transfer or NULL if unknown. - */ -const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer); - -/** - * @return the name for provided color space or NULL if unknown. - */ -const char *av_color_space_name(enum AVColorSpace space); - -/** - * @return the name for provided chroma location or NULL if unknown. - */ -const char *av_chroma_location_name(enum AVChromaLocation location); - #endif /* AVUTIL_PIXDESC_H */ diff --git a/media/ffvpx/libavutil/pixfmt.h b/media/ffvpx/libavutil/pixfmt.h index 0ed01c4844..7a3f68be7e 100644 --- a/media/ffvpx/libavutil/pixfmt.h +++ b/media/ffvpx/libavutil/pixfmt.h @@ -77,7 +77,7 @@ enum AVPixelFormat { #if FF_API_XVMC AV_PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing AV_PIX_FMT_XVMC_MPEG2_IDCT, -#define AV_PIX_FMT_XVMC 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 @@ -178,6 +178,7 @@ enum AVPixelFormat { 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 AV_PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little-endian AV_PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big-endian @@ -303,11 +304,10 @@ enum AVPixelFormat { AV_PIX_FMT_GBRAP10BE, ///< planar GBR 4:4:4:4 40bpp, big-endian AV_PIX_FMT_GBRAP10LE, ///< planar GBR 4:4:4:4 40bpp, little-endian - 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 -}; + AV_PIX_FMT_MEDIACODEC, ///< hardware decoding through MediaCodec -#define AV_PIX_FMT_Y400A AV_PIX_FMT_GRAY8A -#define AV_PIX_FMT_GBR24P AV_PIX_FMT_GBRP + 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 +}; #if AV_HAVE_BIGENDIAN # define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be @@ -398,8 +398,10 @@ enum AVColorPrimaries { AVCOL_PRI_SMPTE240M = 7, ///< functionally identical to above AVCOL_PRI_FILM = 8, ///< colour filters using Illuminant C AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020 - AVCOL_PRI_SMPTEST428_1= 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) - AVCOL_PRI_NB, ///< Not part of ABI + AVCOL_PRI_SMPTEST428_1 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) + AVCOL_PRI_SMPTE431 = 11, ///< SMPTE ST 431-2 (2011) + AVCOL_PRI_SMPTE432 = 12, ///< SMPTE ST 432-1 D65 (2010) + AVCOL_PRI_NB ///< Not part of ABI }; /** @@ -425,7 +427,7 @@ enum AVColorTransferCharacteristic { AVCOL_TRC_SMPTEST2084 = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems AVCOL_TRC_SMPTEST428_1 = 17, ///< SMPTE ST 428-1 AVCOL_TRC_ARIB_STD_B67 = 18, ///< ARIB STD-B67, known as "Hybrid log-gamma" - AVCOL_TRC_NB, ///< Not part of ABI + AVCOL_TRC_NB ///< Not part of ABI }; /** @@ -443,7 +445,8 @@ enum AVColorSpace { AVCOL_SPC_YCOCG = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16 AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system - AVCOL_SPC_NB, ///< Not part of ABI + AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x + AVCOL_SPC_NB ///< Not part of ABI }; #define AVCOL_SPC_YCGCO AVCOL_SPC_YCOCG @@ -455,7 +458,7 @@ enum AVColorRange { AVCOL_RANGE_UNSPECIFIED = 0, AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges - AVCOL_RANGE_NB, ///< Not part of ABI + AVCOL_RANGE_NB ///< Not part of ABI }; /** @@ -481,7 +484,7 @@ enum AVChromaLocation { AVCHROMA_LOC_TOP = 4, AVCHROMA_LOC_BOTTOMLEFT = 5, AVCHROMA_LOC_BOTTOM = 6, - AVCHROMA_LOC_NB, ///< Not part of ABI + AVCHROMA_LOC_NB ///< Not part of ABI }; #endif /* AVUTIL_PIXFMT_H */ diff --git a/media/ffvpx/libavutil/rational.h b/media/ffvpx/libavutil/rational.h index 2897469680..5c6b67b4e9 100644 --- a/media/ffvpx/libavutil/rational.h +++ b/media/ffvpx/libavutil/rational.h @@ -21,7 +21,8 @@ /** * @file - * rational numbers + * @ingroup lavu_math_rational + * Utilties for rational number calculation. * @author Michael Niedermayer <michaelni@gmx.at> */ @@ -33,22 +34,39 @@ #include "attributes.h" /** - * @addtogroup lavu_math + * @defgroup lavu_math_rational AVRational + * @ingroup lavu_math + * Rational number calculation. + * + * While rational numbers can be expressed as floating-point numbers, the + * conversion process is a lossy one, so are floating-point operations. On the + * other hand, the nature of FFmpeg demands highly accurate calculation of + * timestamps. This set of rational number utilities serves as a generic + * interface for manipulating rational numbers as pairs of numerators and + * denominators. + * + * Many of the functions that operate on AVRational's have the suffix `_q`, in + * reference to the mathematical symbol "ℚ" (Q) which denotes the set of all + * rational numbers. + * * @{ */ /** - * rational number numerator/denominator + * Rational number (pair of numerator and denominator). */ typedef struct AVRational{ - int num; ///< numerator - int den; ///< denominator + int num; ///< Numerator + int den; ///< Denominator } AVRational; /** - * Create a rational. + * Create an AVRational. + * * Useful for compilers that do not support compound literals. - * @note The return value is not reduced. + * + * @note The return value is not reduced. + * @see av_reduce() */ static inline AVRational av_make_q(int num, int den) { @@ -58,10 +76,15 @@ static inline AVRational av_make_q(int num, int den) /** * Compare two rationals. - * @param a first rational - * @param b second rational - * @return 0 if a==b, 1 if a>b, -1 if a<b, and INT_MIN if one of the - * values is of the form 0/0 + * + * @param a First rational + * @param b Second rational + * + * @return One of the following values: + * - 0 if `a == b` + * - 1 if `a > b` + * - -1 if `a < b` + * - `INT_MIN` if one of the values is of the form `0 / 0` */ static inline int av_cmp_q(AVRational a, AVRational b){ const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; @@ -73,9 +96,10 @@ static inline int av_cmp_q(AVRational a, AVRational b){ } /** - * Convert rational to double. - * @param a rational to convert - * @return (double) a + * Convert an AVRational to a `double`. + * @param a AVRational to convert + * @return `a` in floating-point form + * @see av_d2q() */ static inline double av_q2d(AVRational a){ return a.num / (double) a.den; @@ -83,44 +107,46 @@ static inline double av_q2d(AVRational a){ /** * Reduce a fraction. + * * This is useful for framerate calculations. - * @param dst_num destination numerator - * @param dst_den destination denominator - * @param num source numerator - * @param den source denominator - * @param max the maximum allowed for dst_num & dst_den - * @return 1 if exact, 0 otherwise + * + * @param[out] dst_num Destination numerator + * @param[out] dst_den Destination denominator + * @param[in] num Source numerator + * @param[in] den Source denominator + * @param[in] max Maximum allowed values for `dst_num` & `dst_den` + * @return 1 if the operation is exact, 0 otherwise */ int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max); /** * Multiply two rationals. - * @param b first rational - * @param c second rational + * @param b First rational + * @param c Second rational * @return b*c */ AVRational av_mul_q(AVRational b, AVRational c) av_const; /** * Divide one rational by another. - * @param b first rational - * @param c second rational + * @param b First rational + * @param c Second rational * @return b/c */ AVRational av_div_q(AVRational b, AVRational c) av_const; /** * Add two rationals. - * @param b first rational - * @param c second rational + * @param b First rational + * @param c Second rational * @return b+c */ AVRational av_add_q(AVRational b, AVRational c) av_const; /** * Subtract one rational from another. - * @param b first rational - * @param c second rational + * @param b First rational + * @param c Second rational * @return b-c */ AVRational av_sub_q(AVRational b, AVRational c) av_const; @@ -138,31 +164,46 @@ static av_always_inline AVRational av_inv_q(AVRational q) /** * Convert a double precision floating point number to a rational. - * inf is expressed as {1,0} or {-1,0} depending on the sign. * - * @param d double to convert - * @param max the maximum allowed numerator and denominator - * @return (AVRational) d + * In case of infinity, the returned value is expressed as `{1, 0}` or + * `{-1, 0}` depending on the sign. + * + * @param d `double` to convert + * @param max Maximum allowed numerator and denominator + * @return `d` in AVRational form + * @see av_q2d() */ AVRational av_d2q(double d, int max) av_const; /** - * @return 1 if q1 is nearer to q than q2, -1 if q2 is nearer - * than q1, 0 if they have the same distance. + * Find which of the two rationals is closer to another rational. + * + * @param q Rational to be compared against + * @param q1,q2 Rationals to be tested + * @return One of the following values: + * - 1 if `q1` is nearer to `q` than `q2` + * - -1 if `q2` is nearer to `q` than `q1` + * - 0 if they have the same distance */ int av_nearer_q(AVRational q, AVRational q1, AVRational q2); /** - * Find the nearest value in q_list to q. - * @param q_list an array of rationals terminated by {0, 0} - * @return the index of the nearest value found in the array + * Find the value in a list of rationals nearest a given reference rational. + * + * @param q Reference rational + * @param q_list Array of rationals terminated by `{0, 0}` + * @return Index of the nearest value found in the array */ int av_find_nearest_q_idx(AVRational q, const AVRational* q_list); /** - * Converts a AVRational to a IEEE 32bit float. + * Convert an AVRational to a IEEE 32-bit `float` expressed in fixed-point + * format. * - * The float is returned in a uint32_t and its value is platform indepenant. + * @param q Rational to be converted + * @return Equivalent floating-point value, expressed as an unsigned 32-bit + * integer. + * @note The returned value is platform-indepedant. */ uint32_t av_q2intfloat(AVRational q); diff --git a/media/ffvpx/libavutil/samplefmt.c b/media/ffvpx/libavutil/samplefmt.c index c605b5ebdf..fc077f6444 100644 --- a/media/ffvpx/libavutil/samplefmt.c +++ b/media/ffvpx/libavutil/samplefmt.c @@ -35,11 +35,13 @@ static const SampleFmtInfo sample_fmt_info[AV_SAMPLE_FMT_NB] = { [AV_SAMPLE_FMT_U8] = { .name = "u8", .bits = 8, .planar = 0, .altform = AV_SAMPLE_FMT_U8P }, [AV_SAMPLE_FMT_S16] = { .name = "s16", .bits = 16, .planar = 0, .altform = AV_SAMPLE_FMT_S16P }, [AV_SAMPLE_FMT_S32] = { .name = "s32", .bits = 32, .planar = 0, .altform = AV_SAMPLE_FMT_S32P }, + [AV_SAMPLE_FMT_S64] = { .name = "s64", .bits = 64, .planar = 0, .altform = AV_SAMPLE_FMT_S64P }, [AV_SAMPLE_FMT_FLT] = { .name = "flt", .bits = 32, .planar = 0, .altform = AV_SAMPLE_FMT_FLTP }, [AV_SAMPLE_FMT_DBL] = { .name = "dbl", .bits = 64, .planar = 0, .altform = AV_SAMPLE_FMT_DBLP }, [AV_SAMPLE_FMT_U8P] = { .name = "u8p", .bits = 8, .planar = 1, .altform = AV_SAMPLE_FMT_U8 }, [AV_SAMPLE_FMT_S16P] = { .name = "s16p", .bits = 16, .planar = 1, .altform = AV_SAMPLE_FMT_S16 }, [AV_SAMPLE_FMT_S32P] = { .name = "s32p", .bits = 32, .planar = 1, .altform = AV_SAMPLE_FMT_S32 }, + [AV_SAMPLE_FMT_S64P] = { .name = "s64p", .bits = 64, .planar = 1, .altform = AV_SAMPLE_FMT_S64 }, [AV_SAMPLE_FMT_FLTP] = { .name = "fltp", .bits = 32, .planar = 1, .altform = AV_SAMPLE_FMT_FLT }, [AV_SAMPLE_FMT_DBLP] = { .name = "dblp", .bits = 64, .planar = 1, .altform = AV_SAMPLE_FMT_DBL }, }; diff --git a/media/ffvpx/libavutil/samplefmt.h b/media/ffvpx/libavutil/samplefmt.h index 57da2784d2..8cd43ae856 100644 --- a/media/ffvpx/libavutil/samplefmt.h +++ b/media/ffvpx/libavutil/samplefmt.h @@ -68,6 +68,8 @@ enum AVSampleFormat { AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar AV_SAMPLE_FMT_FLTP, ///< float, planar AV_SAMPLE_FMT_DBLP, ///< double, planar + AV_SAMPLE_FMT_S64, ///< signed 64 bits + AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically }; diff --git a/media/ffvpx/libavutil/timestamp.h b/media/ffvpx/libavutil/timestamp.h index f010a7ee38..e082f01b40 100644 --- a/media/ffvpx/libavutil/timestamp.h +++ b/media/ffvpx/libavutil/timestamp.h @@ -43,7 +43,7 @@ static inline char *av_ts_make_string(char *buf, int64_t ts) { if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); - else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64, ts); + else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%" PRId64, ts); return buf; } diff --git a/media/ffvpx/libavutil/utils.c b/media/ffvpx/libavutil/utils.c index f409f32216..36e4dd5fdb 100644 --- a/media/ffvpx/libavutil/utils.c +++ b/media/ffvpx/libavutil/utils.c @@ -125,3 +125,16 @@ AVRational av_get_time_base_q(void) { return (AVRational){1, AV_TIME_BASE}; } + +void av_assert0_fpu(void) { +#if HAVE_MMX_INLINE + uint16_t state[14]; + __asm volatile ( + "fstenv %0 \n\t" + : "+m" (state) + : + : "memory" + ); + av_assert0((state[4] & 3) == 3); +#endif +} diff --git a/media/ffvpx/libavutil/version.h b/media/ffvpx/libavutil/version.h index 07618fc0bc..bdd310f855 100644 --- a/media/ffvpx/libavutil/version.h +++ b/media/ffvpx/libavutil/version.h @@ -18,6 +18,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/** + * @file + * @ingroup lavu + * Libavutil version macros + */ + #ifndef AVUTIL_VERSION_H #define AVUTIL_VERSION_H @@ -29,6 +35,21 @@ * Useful to check and match library version in order to maintain * backward compatibility. * + * The FFmpeg libraries follow a versioning sheme very similar to + * Semantic Versioning (http://semver.org/) + * The difference is that the component called PATCH is called MICRO in FFmpeg + * and its value is reset to 100 instead of 0 to keep it above or equal to 100. + * Also we do not increase MICRO for every bugfix or change in git master. + * + * Prior to FFmpeg 3.2 point releases did not change any lib version number to + * avoid aliassing different git master checkouts. + * Starting with FFmpeg 3.2, the released library versions will occupy + * a separate MAJOR.MINOR that is not used on the master development branch. + * That is if we branch a release of master 55.10.123 we will bump to 55.11.100 + * for the release and master will continue at 55.12.100 after it. Each new + * point release will then bump the MICRO improving the usefulness of the lib + * versions. + * * @{ */ @@ -49,12 +70,6 @@ */ /** - * @file - * @ingroup lavu - * Libavutil version macros - */ - -/** * @defgroup lavu_ver Version and Build diagnostics * * Macros and function useful to check at compiletime and at runtime @@ -64,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 55 -#define LIBAVUTIL_VERSION_MINOR 28 +#define LIBAVUTIL_VERSION_MINOR 34 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ @@ -78,9 +93,7 @@ #define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) /** - * @} - * - * @defgroup depr_guards Deprecation guards + * @defgroup lavu_depr_guards Deprecation Guards * FF_API_* defines may be placed below to indicate public API that will be * dropped at a future version bump. The defines themselves are not part of * the public API and may change, break or disappear at any time. @@ -119,10 +132,14 @@ #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 < 56) +#endif /** * @} + * @} */ #endif /* AVUTIL_VERSION_H */ diff --git a/media/ffvpx/libavutil/x86/asm.h b/media/ffvpx/libavutil/x86/asm.h index 109b65e542..9bff42d628 100644 --- a/media/ffvpx/libavutil/x86/asm.h +++ b/media/ffvpx/libavutil/x86/asm.h @@ -28,46 +28,46 @@ typedef struct xmm_reg { uint64_t a, b; } xmm_reg; typedef struct ymm_reg { uint64_t a, b, c, d; } ymm_reg; #if ARCH_X86_64 -# define OPSIZE "q" -# define REG_a "rax" -# define REG_b "rbx" -# define REG_c "rcx" -# define REG_d "rdx" -# define REG_D "rdi" -# define REG_S "rsi" -# define PTR_SIZE "8" +# define FF_OPSIZE "q" +# define FF_REG_a "rax" +# define FF_REG_b "rbx" +# define FF_REG_c "rcx" +# define FF_REG_d "rdx" +# define FF_REG_D "rdi" +# define FF_REG_S "rsi" +# define FF_PTR_SIZE "8" typedef int64_t x86_reg; -/* REG_SP is defined in Solaris sys headers, so use REG_sp */ -# define REG_sp "rsp" -# define REG_BP "rbp" -# define REGBP rbp -# define REGa rax -# define REGb rbx -# define REGc rcx -# define REGd rdx -# define REGSP rsp +/* FF_REG_SP is defined in Solaris sys headers, so use FF_REG_sp */ +# define FF_REG_sp "rsp" +# define FF_REG_BP "rbp" +# define FF_REGBP rbp +# define FF_REGa rax +# define FF_REGb rbx +# define FF_REGc rcx +# define FF_REGd rdx +# define FF_REGSP rsp #elif ARCH_X86_32 -# define OPSIZE "l" -# define REG_a "eax" -# define REG_b "ebx" -# define REG_c "ecx" -# define REG_d "edx" -# define REG_D "edi" -# define REG_S "esi" -# define PTR_SIZE "4" +# define FF_OPSIZE "l" +# define FF_REG_a "eax" +# define FF_REG_b "ebx" +# define FF_REG_c "ecx" +# define FF_REG_d "edx" +# define FF_REG_D "edi" +# define FF_REG_S "esi" +# define FF_PTR_SIZE "4" typedef int32_t x86_reg; -# define REG_sp "esp" -# define REG_BP "ebp" -# define REGBP ebp -# define REGa eax -# define REGb ebx -# define REGc ecx -# define REGd edx -# define REGSP esp +# define FF_REG_sp "esp" +# define FF_REG_BP "ebp" +# define FF_REGBP ebp +# define FF_REGa eax +# define FF_REGb ebx +# define FF_REGc ecx +# define FF_REGd edx +# define FF_REGSP esp #else typedef int x86_reg; #endif diff --git a/media/ffvpx/libavutil/x86/cpu.c b/media/ffvpx/libavutil/x86/cpu.c index b9f239be4f..f3a49c6772 100644 --- a/media/ffvpx/libavutil/x86/cpu.c +++ b/media/ffvpx/libavutil/x86/cpu.c @@ -41,9 +41,9 @@ /* ebx saving is necessary for PIC. gcc seems unable to see it alone */ #define cpuid(index, eax, ebx, ecx, edx) \ __asm__ volatile ( \ - "mov %%"REG_b", %%"REG_S" \n\t" \ + "mov %%"FF_REG_b", %%"FF_REG_S" \n\t" \ "cpuid \n\t" \ - "xchg %%"REG_b", %%"REG_S \ + "xchg %%"FF_REG_b", %%"FF_REG_S \ : "=a" (eax), "=S" (ebx), "=c" (ecx), "=d" (edx) \ : "0" (index), "2"(0)) diff --git a/media/ffvpx/libavutil/x86/emms.h b/media/ffvpx/libavutil/x86/emms.h index 6fda6e2763..42c18e2953 100644 --- a/media/ffvpx/libavutil/x86/emms.h +++ b/media/ffvpx/libavutil/x86/emms.h @@ -31,6 +31,8 @@ void avpriv_emms_yasm(void); * Empty mmx state. * this must be called between any dsp function and float/double code. * for example sin(); dsp->idct_put(); emms_c(); cos() + * Note, *alloc() and *free() also use float code in some libc implementations + * thus this also applies to them or any function using them. */ static av_always_inline void emms_c(void) { diff --git a/media/ffvpx/libavutil/x86/x86util.asm b/media/ffvpx/libavutil/x86/x86util.asm index e7493f4883..44ed750ae5 100644 --- a/media/ffvpx/libavutil/x86/x86util.asm +++ b/media/ffvpx/libavutil/x86/x86util.asm @@ -30,7 +30,10 @@ %include "libavutil/x86/x86inc.asm" %macro SBUTTERFLY 4 -%if avx_enabled == 0 +%ifidn %1, dqqq + vperm2i128 m%4, m%2, m%3, q0301 + vinserti128 m%2, m%2, xm%3, 1 +%elif avx_enabled == 0 mova m%4, m%2 punpckl%1 m%2, m%3 punpckh%1 m%4, m%3 @@ -193,6 +196,70 @@ %endif %endmacro +%macro TRANSPOSE16x16W 18-19 +; in: m0..m15, unless %19 in which case m6 is in %17 +; out: m0..m15, unless %19 in which case m4 is in %18 +; spills into %17 and %18 +%if %0 < 19 + mova %17, m%7 +%endif + + SBUTTERFLY dqqq, %1, %9, %7 + SBUTTERFLY dqqq, %2, %10, %7 + SBUTTERFLY dqqq, %3, %11, %7 + SBUTTERFLY dqqq, %4, %12, %7 + SBUTTERFLY dqqq, %5, %13, %7 + SBUTTERFLY dqqq, %6, %14, %7 + mova %18, m%14 + mova m%7, %17 + SBUTTERFLY dqqq, %7, %15, %14 + SBUTTERFLY dqqq, %8, %16, %14 + + SBUTTERFLY wd, %1, %2, %14 + SBUTTERFLY wd, %3, %4, %14 + SBUTTERFLY wd, %5, %6, %14 + SBUTTERFLY wd, %7, %8, %14 + SBUTTERFLY wd, %9, %10, %14 + SBUTTERFLY wd, %11, %12, %14 + mova %17, m%12 + mova m%14, %18 + SBUTTERFLY wd, %13, %14, %12 + SBUTTERFLY wd, %15, %16, %12 + + SBUTTERFLY dq, %1, %3, %12 + SBUTTERFLY dq, %2, %4, %12 + SBUTTERFLY dq, %5, %7, %12 + SBUTTERFLY dq, %6, %8, %12 + SBUTTERFLY dq, %9, %11, %12 + mova %18, m%11 + mova m%12, %17 + SBUTTERFLY dq, %10, %12, %11 + SBUTTERFLY dq, %13, %15, %11 + SBUTTERFLY dq, %14, %16, %11 + + SBUTTERFLY qdq, %1, %5, %11 + SBUTTERFLY qdq, %2, %6, %11 + SBUTTERFLY qdq, %3, %7, %11 + SBUTTERFLY qdq, %4, %8, %11 + + SWAP %2, %5 + SWAP %4, %7 + + SBUTTERFLY qdq, %9, %13, %11 + SBUTTERFLY qdq, %10, %14, %11 + mova m%11, %18 + mova %18, m%5 + SBUTTERFLY qdq, %11, %15, %5 + SBUTTERFLY qdq, %12, %16, %5 + +%if %0 < 19 + mova m%5, %18 +%endif + + SWAP %10, %13 + SWAP %12, %15 +%endmacro + ; PABSW macro assumes %1 != %2, while ABS1/2 macros work in-place %macro PABSW 2 %if cpuflag(ssse3) |