From c1a7bf0ae231d5bdcd001fb679f43e4e3f655e9d Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 12 Jul 2016 01:58:18 +0200 Subject: [PATCH] Imported Upstream version 3.1.1 --- Changelog | 125 +- LICENSE.md | 62 +- MAINTAINERS | 110 +- Makefile | 17 +- RELEASE | 2 +- RELEASE_NOTES | 10 +- VERSION | 2 +- common.mak | 10 +- compat/dispatch_semaphore/semaphore.h | 42 + configure | 555 +- doc/APIchanges | 127 +- doc/Doxyfile | 4 +- doc/bitstream_filters.texi | 4 + doc/build_system.txt | 3 - doc/codecs.texi | 36 +- doc/demuxers.texi | 4 +- doc/developer.texi | 29 + doc/examples/decoding_encoding.c | 20 +- doc/examples/filtering_audio.c | 2 +- doc/examples/muxing.c | 54 +- doc/examples/qsvdec.c | 12 +- doc/examples/transcode_aac.c | 66 +- doc/examples/transcoding.c | 5 +- doc/ffmpeg.texi | 2 +- doc/filters.texi | 1265 ++++- doc/formats.texi | 2 +- doc/general.texi | 6 +- doc/git-howto.texi | 4 +- doc/muxers.texi | 219 +- doc/nut.texi | 2 +- doc/optimization.txt | 4 +- doc/platform.texi | 4 +- doc/protocols.texi | 27 + doc/resampler.texi | 9 +- doc/snow.txt | 2 +- doc/swscale.txt | 4 +- ffmpeg.c | 66 +- ffmpeg.h | 13 +- ffmpeg_cuvid.c | 237 + ffmpeg_dxva2.c | 336 +- ffmpeg_filter.c | 35 +- ffmpeg_opt.c | 62 +- ffmpeg_vaapi.c | 538 ++ ffmpeg_vdpau.c | 289 +- ffplay.c | 141 +- ffprobe.c | 535 +- ffserver.c | 15 +- ffserver_config.c | 2 + libavcodec/8bps.c | 1 - libavcodec/Makefile | 173 +- libavcodec/aac_ac3_parser.c | 49 +- libavcodec/aac_adtstoasc_bsf.c | 102 +- libavcodec/aac_defines.h | 6 +- libavcodec/aaccoder_twoloop.h | 14 +- libavcodec/aacdec.c | 2 +- libavcodec/aacdec_fixed.c | 6 +- libavcodec/aacdec_template.c | 4 +- libavcodec/aacenc.c | 27 +- libavcodec/aacenc.h | 5 +- libavcodec/aacenc_quantization_misc.h | 3 +- libavcodec/aacenc_utils.h | 2 +- libavcodec/aacpsy.c | 43 +- libavcodec/aacsbr_template.c | 2 +- libavcodec/aactab.h | 22 +- libavcodec/aarch64/Makefile | 15 +- libavcodec/aarch64/fft_init_aarch64.c | 3 + libavcodec/aarch64/h264idct_neon.S | 24 +- libavcodec/aarch64/mpegaudiodsp_neon.S | 2 +- libavcodec/aarch64/neon.S | 12 +- libavcodec/aarch64/neontest.c | 2 +- libavcodec/aasc.c | 2 +- libavcodec/ac3dec.c | 5 +- libavcodec/ac3dec.h | 2 + libavcodec/ac3dsp.c | 1 - libavcodec/acelp_filters.h | 1 - libavcodec/acelp_pitch_delay.c | 3 +- libavcodec/adpcm.c | 101 +- libavcodec/adpcm.h | 2 +- libavcodec/adpcm_data.c | 69 +- libavcodec/adpcm_data.h | 3 +- libavcodec/adpcmenc.c | 2 +- libavcodec/aic.c | 7 +- libavcodec/alac.c | 35 +- libavcodec/alacenc.c | 8 +- libavcodec/allcodecs.c | 68 +- libavcodec/alsdec.c | 20 +- libavcodec/amrnbdec.c | 4 +- libavcodec/amrwbdata.h | 2 +- libavcodec/amrwbdec.c | 3 - libavcodec/ansi.c | 2 +- libavcodec/apedec.c | 16 +- libavcodec/arm/Makefile | 15 +- libavcodec/arm/fft_fixed_init_arm.c | 2 + libavcodec/arm/fft_init_arm.c | 17 +- libavcodec/arm/mlpdsp_armv6.S | 2 +- libavcodec/arm/mpegvideo_armv5te.c | 2 +- libavcodec/arm/neontest.c | 2 +- libavcodec/arm/rdft_init_arm.c | 33 + libavcodec/arm/simple_idct_arm.S | 6 +- libavcodec/arm/vp8dsp_neon.S | 2 +- libavcodec/ass.c | 97 +- libavcodec/ass.h | 60 +- libavcodec/ass_split.c | 49 + libavcodec/ass_split.h | 17 +- libavcodec/assdec.c | 85 +- libavcodec/assenc.c | 21 +- libavcodec/atrac3.c | 4 +- libavcodec/audiotoolboxdec.c | 625 +++ libavcodec/audiotoolboxenc.c | 645 +++ libavcodec/avcodec.h | 802 ++- libavcodec/avfft.c | 34 - libavcodec/avpacket.c | 69 +- libavcodec/bink.c | 2 +- libavcodec/bitstream.c | 10 +- libavcodec/bitstream_filter.c | 164 +- libavcodec/bitstream_filters.c | 87 + libavcodec/bmp_parser.c | 16 +- libavcodec/bsf.c | 219 + libavcodec/bsf.h | 33 + libavcodec/cabac.c | 150 +- libavcodec/cabac_functions.h | 1 - libavcodec/cavs.c | 1 - libavcodec/cbrt_data.c | 30 + libavcodec/cbrt_data.h | 38 + libavcodec/cbrt_data_fixed.c | 29 + libavcodec/cbrt_tablegen.h | 18 +- libavcodec/cbrt_tablegen_template.c | 8 +- libavcodec/ccaption_dec.c | 207 +- libavcodec/cdxl.c | 38 +- libavcodec/cfhd.c | 88 +- libavcodec/cfhd.h | 2 + libavcodec/chomp_bsf.c | 24 +- libavcodec/cinepak.c | 2 +- libavcodec/cngdec.c | 2 +- libavcodec/codec_desc.c | 58 +- libavcodec/cook.c | 6 +- libavcodec/cookdata.h | 2 +- libavcodec/cos_tablegen.c | 2 +- libavcodec/cpia.c | 2 +- libavcodec/cuvid.c | 698 +++ libavcodec/cyuv.c | 2 +- libavcodec/dca.c | 10 + libavcodec/dca.h | 31 + libavcodec/dca_core.c | 114 +- libavcodec/dca_core.h | 2 +- libavcodec/dca_core_bsf.c | 66 + libavcodec/dca_exss.c | 48 +- libavcodec/dca_exss.h | 2 +- libavcodec/dca_lbr.c | 1819 +++++++ libavcodec/dca_lbr.h | 130 + libavcodec/dca_parser.c | 194 +- libavcodec/dca_xll.c | 34 +- libavcodec/dcadata.c | 508 +- libavcodec/dcadata.h | 48 +- libavcodec/dcadec.c | 135 +- libavcodec/dcadec.h | 31 +- libavcodec/dcadsp.c | 82 +- libavcodec/dcadsp.h | 7 + libavcodec/dcaenc.c | 16 +- libavcodec/dcaenc.h | 45 +- libavcodec/dcahuff.c | 1337 +++++ libavcodec/dcahuff.h | 1046 +--- libavcodec/dds.c | 22 +- libavcodec/dirac.c | 58 +- libavcodec/diracdec.c | 60 +- libavcodec/dnxhdenc.c | 7 +- libavcodec/dpcm.c | 2 +- libavcodec/dpx.c | 31 +- libavcodec/dsd.c | 86 + libavcodec/dsd.h | 52 + libavcodec/dsd_tablegen.h | 18 +- libavcodec/dsddec.c | 63 +- libavcodec/dss_sp.c | 4 +- libavcodec/dstdec.c | 374 ++ libavcodec/dump_extradata_bsf.c | 93 +- libavcodec/dv_tablegen.c | 2 +- libavcodec/dvaudiodec.c | 2 +- libavcodec/dvbsubdec.c | 5 +- libavcodec/dvbtxt.h | 41 + libavcodec/dxva2.c | 12 +- libavcodec/dxva2_h264.c | 114 +- libavcodec/eac3dec.c | 10 +- libavcodec/eamad.c | 4 +- libavcodec/eatqi.c | 95 +- libavcodec/elbg.c | 4 +- libavcodec/error_resilience.c | 29 +- libavcodec/error_resilience.h | 3 +- libavcodec/escape124.c | 2 +- libavcodec/exif.c | 16 +- libavcodec/exif.h | 2 +- libavcodec/exr.c | 515 +- libavcodec/faxcompr.h | 2 +- libavcodec/ffjni.c | 402 ++ libavcodec/ffjni.h | 150 + libavcodec/fft.h | 4 +- libavcodec/fft_init_table.c | 386 +- libavcodec/fft_table.h | 2 +- libavcodec/fft_template.c | 40 +- libavcodec/ffv1.c | 1 + libavcodec/ffv1dec.c | 15 +- libavcodec/ffv1enc.c | 5 + libavcodec/fic.c | 6 +- libavcodec/flac_parser.c | 6 +- libavcodec/flicvideo.c | 14 +- libavcodec/flvenc.c | 2 +- libavcodec/frame_thread_encoder.c | 4 +- libavcodec/g2meet.c | 2 +- libavcodec/g723_1dec.c | 4 +- libavcodec/g726.c | 26 +- libavcodec/get_bits.h | 138 +- libavcodec/golomb.h | 12 +- libavcodec/h261.c | 4 +- libavcodec/h261.h | 4 +- libavcodec/h261_parser.c | 4 +- libavcodec/h261dec.c | 4 +- libavcodec/h261enc.c | 2 +- libavcodec/h263.c | 8 +- libavcodec/h263.h | 4 +- libavcodec/h263data.c | 2 +- libavcodec/h263data.h | 2 +- libavcodec/h263dec.c | 8 +- libavcodec/h264.c | 1257 ++--- libavcodec/h264.h | 329 +- libavcodec/{hevc_parse.c => h2645_parse.c} | 127 +- libavcodec/h2645_parse.h | 91 + libavcodec/h264_cabac.c | 68 +- libavcodec/h264_cavlc.c | 78 +- libavcodec/h264_direct.c | 12 +- libavcodec/h264_loopfilter.c | 10 +- libavcodec/h264_mb.c | 214 +- libavcodec/h264_mb_template.c | 96 +- libavcodec/h264_mc_template.c | 10 +- libavcodec/h264_mp4toannexb_bsf.c | 231 +- libavcodec/h264_mvpred.h | 6 +- libavcodec/h264_parse.c | 497 ++ libavcodec/h264_parse.h | 95 + libavcodec/h264_parser.c | 377 +- libavcodec/h264_picture.c | 10 +- libavcodec/h264_ps.c | 557 +- libavcodec/h264_refs.c | 119 +- libavcodec/h264_sei.c | 409 +- libavcodec/h264_sei.h | 173 + libavcodec/h264_slice.c | 694 ++- libavcodec/h264addpx_template.c | 2 +- libavcodec/h264data.c | 232 + libavcodec/h264data.h | 148 +- libavcodec/h264dsp.c | 2 +- libavcodec/h264dsp.h | 2 +- libavcodec/h264dsp_template.c | 2 +- libavcodec/h264pred.c | 4 +- libavcodec/h264pred.h | 4 +- libavcodec/h264pred_template.c | 2 +- libavcodec/hevc.c | 30 +- libavcodec/hevc.h | 51 +- libavcodec/hevc_cabac.c | 2 +- libavcodec/hevc_mp4toannexb_bsf.c | 151 +- libavcodec/hevc_mvs.c | 2 +- libavcodec/hevc_parser.c | 27 +- libavcodec/hevc_ps.c | 37 +- libavcodec/hevc_sei.c | 8 +- libavcodec/hq_hqa.c | 4 +- libavcodec/huffman.c | 4 +- libavcodec/huffman.h | 2 +- libavcodec/idcinvideo.c | 2 +- libavcodec/iff.c | 1026 +++- libavcodec/iirfilter.c | 150 +- libavcodec/imc.c | 5 +- libavcodec/imgconvert.c | 28 - libavcodec/imx_dump_header_bsf.c | 58 +- libavcodec/indeo3.c | 4 +- libavcodec/indeo3data.h | 4 +- libavcodec/indeo4.c | 20 +- libavcodec/intelh263dec.c | 12 +- libavcodec/internal.h | 30 + libavcodec/interplayvideo.c | 2 +- libavcodec/intrax8.c | 1114 ++-- libavcodec/intrax8.h | 81 +- libavcodec/intrax8dsp.c | 662 +-- libavcodec/intrax8dsp.h | 4 +- libavcodec/intrax8huf.h | 1793 +++---- libavcodec/ituh263dec.c | 36 +- libavcodec/ituh263enc.c | 18 +- libavcodec/ivi.c | 33 +- libavcodec/ivi.h | 7 +- libavcodec/ivi_dsp.c | 2 +- libavcodec/ivi_dsp.h | 2 +- libavcodec/jacosubdec.c | 5 +- libavcodec/jni.c | 80 + libavcodec/jni.h | 46 + libavcodec/jpeg2000.c | 2 +- libavcodec/jpeg2000dec.c | 19 +- libavcodec/jpeg2000dwt.c | 122 - libavcodec/jpeglsenc.c | 2 +- libavcodec/lagarith.c | 10 +- libavcodec/lcldec.c | 19 - libavcodec/lclenc.c | 19 - libavcodec/libdcadec.c | 311 -- libavcodec/libopencore-amr.c | 14 +- libavcodec/libopenh264enc.c | 2 +- libavcodec/libopenjpegdec.c | 8 +- libavcodec/libopenjpegenc.c | 11 +- libavcodec/libopusdec.c | 4 +- libavcodec/libschroedingerenc.c | 2 +- libavcodec/libspeexenc.c | 2 +- libavcodec/libtheoraenc.c | 2 +- libavcodec/libutvideo.h | 72 - libavcodec/libutvideodec.cpp | 282 - libavcodec/libutvideoenc.cpp | 281 - libavcodec/libvo-amrwbenc.c | 4 +- libavcodec/libvpx.c | 24 +- libavcodec/libvpxdec.c | 20 +- libavcodec/libvpxenc.c | 63 +- libavcodec/libwebpenc_animencoder.c | 2 +- libavcodec/libx264.c | 82 +- libavcodec/libx265.c | 12 + libavcodec/libxvid.c | 50 +- libavcodec/libxvid.h | 2 - libavcodec/libxvid_rc.c | 4 +- libavcodec/libzvbi-teletextdec.c | 51 +- libavcodec/lossless_audiodsp.c | 22 +- libavcodec/lossless_audiodsp.h | 5 + libavcodec/lpc.c | 3 +- libavcodec/lsp.c | 2 +- libavcodec/lsp.h | 2 +- libavcodec/m101.c | 116 + libavcodec/magicyuv.c | 479 ++ libavcodec/mathops.c | 26 - libavcodec/mathops.h | 1 + libavcodec/mathtables.c | 7 + libavcodec/mediacodec_sw_buffer.c | 339 ++ libavcodec/mediacodec_sw_buffer.h | 62 + libavcodec/mediacodec_wrapper.c | 1808 +++++++ libavcodec/mediacodec_wrapper.h | 127 + libavcodec/mediacodecdec.c | 580 +++ libavcodec/mediacodecdec.h | 81 + libavcodec/mediacodecdec_h264.c | 289 ++ libavcodec/microdvddec.c | 12 +- libavcodec/mips/Makefile | 1 + libavcodec/mips/blockdsp_mmi.c | 195 +- libavcodec/mips/constants.c | 1 + libavcodec/mips/constants.h | 1 + libavcodec/mips/fft_mips.c | 10 +- libavcodec/mips/h264chroma_mmi.c | 1103 ++-- libavcodec/mips/h264dsp_mmi.c | 4576 +++++++++-------- libavcodec/mips/h264pred_init_mips.c | 5 +- libavcodec/mips/h264pred_mmi.c | 1504 +++--- libavcodec/mips/h264qpel_mmi.c | 3818 ++++++++------ libavcodec/mips/hpeldsp_init_mips.c | 49 + libavcodec/mips/hpeldsp_mips.h | 87 + libavcodec/mips/hpeldsp_mmi.c | 1257 +++++ libavcodec/mips/idctdsp_mmi.c | 290 +- libavcodec/mips/mpegvideo_mmi.c | 667 +-- libavcodec/mips/pixblockdsp_mmi.c | 101 +- libavcodec/mjpeg2jpeg_bsf.c | 77 +- libavcodec/mjpega_dump_header_bsf.c | 105 +- libavcodec/mjpegdec.c | 151 +- libavcodec/mjpegenc.h | 2 +- libavcodec/mlp_parser.h | 6 +- libavcodec/mmaldec.c | 52 +- libavcodec/motion_est.c | 9 +- libavcodec/motion_est_template.c | 28 +- libavcodec/motionpixels_tablegen.c | 2 +- libavcodec/motionpixels_tablegen.h | 2 +- libavcodec/movsub_bsf.c | 86 +- libavcodec/movtextdec.c | 20 +- libavcodec/movtextenc.c | 20 +- libavcodec/mp3_header_decompress_bsf.c | 73 +- libavcodec/mpc8.c | 8 +- libavcodec/mpeg12.c | 95 + libavcodec/mpeg12.h | 8 +- libavcodec/mpeg12data.c | 4 +- libavcodec/mpeg12data.h | 4 +- libavcodec/mpeg12dec.c | 181 +- libavcodec/mpeg12enc.c | 12 +- libavcodec/mpeg12vlc.h | 4 +- libavcodec/mpeg4_unpack_bframes_bsf.c | 131 +- libavcodec/mpeg4data.h | 6 +- libavcodec/mpeg4video.c | 6 +- libavcodec/mpeg4video.h | 5 +- libavcodec/mpeg4video_parser.c | 2 +- libavcodec/mpeg4video_parser.h | 2 +- libavcodec/mpeg4videodec.c | 94 +- libavcodec/mpeg4videoenc.c | 26 +- libavcodec/mpegaudiodec_template.c | 32 +- libavcodec/mpegaudiodecheader.h | 2 +- libavcodec/mpegaudioenc_template.c | 4 +- libavcodec/mpegpicture.c | 4 +- libavcodec/mpegvideo.c | 36 +- libavcodec/mpegvideo.h | 86 +- libavcodec/mpegvideo_enc.c | 44 +- libavcodec/mpegvideo_motion.c | 8 +- libavcodec/mpegvideo_parser.c | 2 +- libavcodec/mpl2dec.c | 8 +- libavcodec/mqc.h | 4 +- libavcodec/msmpeg4.c | 10 +- libavcodec/msmpeg4data.c | 3604 +++++++------ libavcodec/msmpeg4data.h | 3 - libavcodec/msmpeg4dec.c | 5 +- libavcodec/msmpeg4enc.c | 9 +- libavcodec/msrle.c | 2 +- libavcodec/mss12.c | 4 +- libavcodec/mss2.c | 2 +- libavcodec/msvideo1.c | 3 +- libavcodec/mvcdec.c | 32 +- libavcodec/noise_bsf.c | 72 +- libavcodec/nuv.c | 4 +- libavcodec/nvenc.c | 2587 +++++----- libavcodec/nvenc.h | 188 + libavcodec/nvenc_h264.c | 183 + libavcodec/nvenc_hevc.c | 152 + libavcodec/omx.c | 931 ++++ libavcodec/on2avc.c | 2 +- libavcodec/options.c | 23 +- libavcodec/options_table.h | 23 +- libavcodec/opus.c | 6 +- libavcodec/opus_silk.c | 6 +- libavcodec/parser.c | 2 + libavcodec/pcm-dvd.c | 4 +- libavcodec/pcm_tablegen.h | 5 +- libavcodec/pcxenc.c | 2 +- libavcodec/pgssubdec.c | 8 +- libavcodec/pngdec.c | 2 +- libavcodec/pngenc.c | 12 +- libavcodec/pnm_parser.c | 2 + libavcodec/ppc/Makefile | 4 +- libavcodec/ppc/asm.S | 2 +- libavcodec/ppc/fft_altivec.S | 26 +- libavcodec/ppc/fft_init.c | 4 +- libavcodec/ppc/h264dsp.c | 8 +- libavcodec/profiles.c | 1 - libavcodec/profiles.h | 3 +- libavcodec/proresdec2.c | 11 +- libavcodec/psymodel.c | 7 +- libavcodec/pthread_frame.c | 12 +- libavcodec/pthread_internal.h | 2 +- libavcodec/qcelpdec.c | 2 +- libavcodec/qdm2.c | 5 +- libavcodec/qdrw.c | 4 +- libavcodec/qsv.c | 34 +- libavcodec/qsv_internal.h | 2 + libavcodec/qsvdec.c | 34 +- libavcodec/qsvdec_h2645.c | 6 +- libavcodec/qsvdec_mpeg2.c | 2 +- libavcodec/qsvenc.c | 36 +- libavcodec/qsvenc.h | 2 + libavcodec/qsvenc_h264.c | 68 +- libavcodec/qsvenc_hevc.c | 5 +- libavcodec/qtrle.c | 2 +- libavcodec/qtrleenc.c | 9 +- libavcodec/ra144.c | 2 +- libavcodec/ra144.h | 2 +- libavcodec/ra144enc.c | 6 +- libavcodec/ra288.c | 2 +- libavcodec/ra288.h | 2 +- libavcodec/ralf.c | 2 +- libavcodec/rangecoder.c | 48 +- libavcodec/ratecontrol.c | 10 +- libavcodec/ratecontrol.h | 2 +- libavcodec/rawdec.c | 38 +- libavcodec/realtextdec.c | 7 +- libavcodec/rectangle.h | 2 +- libavcodec/remove_extradata_bsf.c | 111 +- libavcodec/rl.c | 2 + libavcodec/rl.h | 4 +- libavcodec/roqvideodec.c | 2 +- libavcodec/roqvideoenc.c | 2 +- libavcodec/rpza.c | 4 +- libavcodec/rscc.c | 53 +- libavcodec/rv10.c | 4 +- libavcodec/rv10enc.c | 2 +- libavcodec/rv30.c | 4 +- libavcodec/rv34.c | 6 +- libavcodec/rv34.h | 4 +- libavcodec/rv40.c | 2 +- libavcodec/samidec.c | 15 +- libavcodec/screenpresso.c | 49 +- libavcodec/sgirledec.c | 32 +- libavcodec/sheervideo.c | 3156 ++++++++++++ libavcodec/shorten.c | 158 +- libavcodec/simple_idct_template.c | 24 +- libavcodec/smacker.c | 15 +- libavcodec/smc.c | 4 +- libavcodec/snow.h | 38 +- libavcodec/snowenc.c | 129 - libavcodec/sp5x.h | 2 +- libavcodec/srtdec.c | 17 +- libavcodec/srtenc.c | 26 +- libavcodec/subviewerdec.c | 7 +- libavcodec/svq1.c | 4 +- libavcodec/svq1.h | 4 +- libavcodec/svq1_cb.h | 4 +- libavcodec/svq1_vlc.h | 2 +- libavcodec/svq1dec.c | 4 +- libavcodec/svq1enc.c | 2 +- libavcodec/svq3.c | 888 ++-- libavcodec/tak_parser.c | 2 +- libavcodec/takdec.c | 13 +- libavcodec/tdsc.c | 4 +- .../{arm/dct-test.c => tests/arm/dct.c} | 2 +- libavcodec/tests/avfft.c | 53 + libavcodec/tests/cabac.c | 165 + libavcodec/{dct-test.c => tests/dct.c} | 25 +- .../{fft-fixed-test.c => tests/fft-fixed.c} | 2 +- .../fft-fixed32.c} | 2 +- libavcodec/{fft-test.c => tests/fft.c} | 6 +- libavcodec/{golomb-test.c => tests/golomb.c} | 6 +- libavcodec/tests/iirfilter.c | 54 + libavcodec/tests/imgconvert.c | 50 + libavcodec/tests/jpeg2000dwt.c | 141 + libavcodec/tests/mathops.c | 41 + libavcodec/{motion-test.c => tests/motion.c} | 2 +- libavcodec/tests/options.c | 195 + .../{ppc/dct-test.c => tests/ppc/dct.c} | 2 +- libavcodec/tests/rangecoder.c | 64 + libavcodec/tests/snowenc.c | 147 + libavcodec/tests/utils.c | 37 + .../{x86/dct-test.c => tests/x86/dct.c} | 6 +- libavcodec/textdec.c | 20 +- libavcodec/texturedsp.c | 2 +- libavcodec/texturedspenc.c | 10 +- libavcodec/truemotion2rt.c | 221 + libavcodec/tscc.c | 1 - libavcodec/tscc2.c | 3 +- libavcodec/tscc2data.h | 7 - libavcodec/twinvq.h | 2 +- libavcodec/twinvqdec.c | 2 +- libavcodec/utils.c | 771 ++- libavcodec/utvideo.c | 6 + libavcodec/utvideo.h | 4 +- libavcodec/utvideodec.c | 325 +- libavcodec/utvideoenc.c | 6 +- libavcodec/v210enc.c | 19 +- libavcodec/v210enc.h | 4 +- libavcodec/vaapi.c | 2 - libavcodec/vaapi_encode.c | 1238 +++++ libavcodec/vaapi_encode.h | 228 + libavcodec/vaapi_encode_h264.c | 1001 ++++ libavcodec/vaapi_encode_h265.c | 1372 +++++ libavcodec/vaapi_encode_h26x.c | 68 + libavcodec/vaapi_encode_h26x.h | 45 + libavcodec/vaapi_encode_mjpeg.c | 422 ++ libavcodec/vaapi_h264.c | 100 +- libavcodec/vaapi_mpeg2.c | 4 - libavcodec/vaapi_mpeg4.c | 4 - libavcodec/vaapi_vc1.c | 4 - libavcodec/vble.c | 7 +- libavcodec/vc1.c | 9 +- libavcodec/vc1.h | 32 +- libavcodec/vc1_block.c | 17 +- libavcodec/vc1_mc.c | 4 +- libavcodec/vc1_pred.c | 2 +- libavcodec/vc1dec.c | 57 +- libavcodec/vc1dsp.c | 1 - libavcodec/vc1dsp.h | 1 - libavcodec/vc2enc.c | 582 ++- libavcodec/vc2enc_dwt.c | 46 + libavcodec/vc2enc_dwt.h | 5 +- libavcodec/vda_h264_dec.c | 2 +- libavcodec/vdpau.c | 69 +- libavcodec/vdpau_h264.c | 60 +- libavcodec/vdpau_hevc.c | 185 +- libavcodec/version.h | 20 +- libavcodec/videotoolbox.c | 28 +- libavcodec/videotoolboxenc.c | 2003 ++++++++ libavcodec/vlc.h | 65 + libavcodec/vorbis_parser.h | 1 - libavcodec/vp3.c | 12 +- libavcodec/vp3data.h | 2 +- libavcodec/vp3dsp.c | 2 +- libavcodec/vp8.c | 19 +- libavcodec/vp8.h | 4 +- libavcodec/vp8data.h | 8 - libavcodec/vp9.c | 22 +- libavcodec/vp9_superframe_bsf.c | 205 + libavcodec/vp9dsp.h | 2 +- libavcodec/vqavideo.c | 2 +- libavcodec/webp.c | 11 +- libavcodec/webvttdec.c | 11 +- libavcodec/webvttenc.c | 21 +- libavcodec/wma.c | 2 +- libavcodec/wmadec.c | 9 +- libavcodec/wmaenc.c | 4 +- libavcodec/wmalosslessdec.c | 212 +- libavcodec/wmaprodec.c | 2 +- libavcodec/wmavoice.c | 4 +- libavcodec/wmv2.c | 1 + libavcodec/wmv2data.c | 35 + libavcodec/{svq3.h => wmv2data.h} | 10 +- libavcodec/wmv2dec.c | 15 +- libavcodec/wmv2enc.c | 2 +- libavcodec/x86/Makefile | 7 +- libavcodec/x86/aacpsdsp.asm | 30 +- libavcodec/x86/audiodsp_init.c | 1 - libavcodec/x86/cabac.h | 2 +- libavcodec/x86/dcadsp.asm | 79 + libavcodec/x86/dcadsp_init.c | 9 +- libavcodec/x86/fft.asm | 4 +- libavcodec/x86/fft_init.c | 14 +- libavcodec/x86/fmtconvert_init.c | 1 - libavcodec/x86/h264_chromamc.asm | 2 +- libavcodec/x86/h264_i386.h | 2 +- libavcodec/x86/hpeldsp_init.c | 1 - libavcodec/x86/inline_asm.h | 2 +- libavcodec/x86/lossless_audiodsp.asm | 33 + libavcodec/x86/lossless_audiodsp_init.c | 7 + libavcodec/x86/mpegvideo.c | 4 +- libavcodec/x86/mpegvideodsp.c | 1 - libavcodec/x86/rv34dsp_init.c | 1 - libavcodec/x86/rv40dsp.asm | 10 +- libavcodec/x86/sbrdsp.asm | 24 +- libavcodec/x86/v210enc.asm | 6 + libavcodec/x86/v210enc_init.c | 9 +- libavcodec/x86/vc1dsp_loopfilter.asm | 317 ++ libavcodec/x86/{vc1dsp.asm => vc1dsp_mc.asm} | 295 +- libavcodec/x86/vc1dsp_mmx.c | 12 +- libavcodec/x86/vp6dsp_init.c | 1 - libavcodec/x86/vp8dsp_init.c | 1 - libavcodec/xan.c | 2 +- libavcodec/xsubdec.c | 6 +- libavcodec/ylc.c | 472 ++ libavcodec/yop.c | 6 +- libavcodec/zmbv.c | 2 +- libavdevice/Makefile | 6 +- libavdevice/alsa.c | 2 +- libavdevice/alsa_dec.c | 10 +- libavdevice/alsa_enc.c | 14 +- libavdevice/avfoundation.m | 28 +- libavdevice/bktr.c | 14 +- libavdevice/caca.c | 8 +- libavdevice/decklink_dec.cpp | 50 +- libavdevice/dshow.c | 91 +- libavdevice/dshow_capture.h | 2 + libavdevice/dshow_crossbar.c | 4 +- libavdevice/fbdev_dec.c | 18 +- libavdevice/fbdev_enc.c | 12 +- libavdevice/gdigrab.c | 17 +- libavdevice/jack.c | 20 +- libavdevice/lavfi.c | 30 +- libavdevice/libcdio.c | 12 +- libavdevice/libdc1394.c | 15 +- libavdevice/openal-dec.c | 12 +- libavdevice/opengl_enc.c | 16 +- libavdevice/oss_dec.c | 8 +- libavdevice/oss_enc.c | 4 +- libavdevice/pulse_audio_dec.c | 8 +- libavdevice/pulse_audio_enc.c | 25 +- libavdevice/sdl.c | 32 +- libavdevice/sndio_dec.c | 8 +- libavdevice/sndio_enc.c | 4 +- libavdevice/tests/timefilter.c | 98 + libavdevice/timefilter.c | 79 +- libavdevice/v4l2.c | 35 +- libavdevice/v4l2enc.c | 18 +- libavdevice/vfwcap.c | 37 +- libavdevice/x11grab.c | 21 +- libavdevice/xcbgrab.c | 11 +- libavdevice/xv.c | 38 +- libavfilter/Makefile | 32 +- libavfilter/af_afftfilt.c | 3 +- libavfilter/af_amix.c | 3 + libavfilter/af_anequalizer.c | 1 + libavfilter/af_astats.c | 40 +- libavfilter/af_compand.c | 1 + libavfilter/af_firequalizer.c | 599 +++ libavfilter/af_hdcd.c | 1149 +++++ libavfilter/af_loudnorm.c | 920 ++++ libavfilter/af_sofalizer.c | 120 +- libavfilter/af_volume.c | 1 + libavfilter/allfilters.c | 21 + libavfilter/avf_ahistogram.c | 6 +- libavfilter/avf_aphasemeter.c | 4 +- libavfilter/avf_avectorscope.c | 4 +- libavfilter/avf_showcqt.c | 531 +- libavfilter/avf_showcqt.h | 20 +- libavfilter/avf_showvolume.c | 144 +- libavfilter/avf_showwaves.c | 4 +- libavfilter/avfilter.c | 17 + libavfilter/avfilter.h | 16 + libavfilter/avfiltergraph.c | 7 +- libavfilter/blend.h | 4 +- libavfilter/buffersrc.c | 80 +- libavfilter/buffersrc.h | 75 +- libavfilter/bwdif.h | 72 + libavfilter/colorspacedsp.c | 147 + libavfilter/colorspacedsp.h | 83 + libavfilter/colorspacedsp_template.c | 342 ++ libavfilter/colorspacedsp_yuv2yuv_template.c | 98 + libavfilter/drawutils.c | 328 +- libavfilter/drawutils.h | 6 +- libavfilter/dualinput.c | 3 + libavfilter/dualinput.h | 1 + libavfilter/f_bench.c | 151 + libavfilter/f_ebur128.c | 1 + libavfilter/f_loop.c | 383 ++ libavfilter/f_metadata.c | 7 +- libavfilter/f_streamselect.c | 2 +- libavfilter/formats.c | 49 - libavfilter/formats.h | 1 - libavfilter/graphparser.c | 8 +- libavfilter/interlace.h | 2 +- libavfilter/pthread.c | 1 - libavfilter/split.c | 2 +- libavfilter/src_movie.c | 132 +- libavfilter/tests/drawutils.c | 56 + libavfilter/{ => tests}/filtfmts.c | 0 libavfilter/tests/formats.c | 65 + libavfilter/thread.h | 1 - libavfilter/trim.c | 26 +- libavfilter/vaf_spectrumsynth.c | 1 + libavfilter/version.h | 2 +- libavfilter/vf_blend.c | 24 +- libavfilter/vf_bwdif.c | 584 +++ libavfilter/vf_ciescope.c | 1510 ++++++ libavfilter/vf_codecview.c | 55 +- libavfilter/vf_colormatrix.c | 70 +- libavfilter/vf_colorspace.c | 1110 ++++ libavfilter/vf_copy.c | 18 + libavfilter/vf_coreimage.m | 688 +++ libavfilter/vf_datascope.c | 398 ++ libavfilter/vf_decimate.c | 14 +- libavfilter/vf_delogo.c | 15 + libavfilter/vf_detelecine.c | 131 +- libavfilter/vf_drawbox.c | 125 +- libavfilter/vf_drawtext.c | 4 +- libavfilter/vf_elbg.c | 3 +- libavfilter/vf_eq.c | 1 + libavfilter/vf_extractplanes.c | 54 +- libavfilter/vf_fade.c | 2 +- libavfilter/vf_fieldhint.c | 283 + libavfilter/vf_format.c | 2 +- libavfilter/vf_fps.c | 2 +- libavfilter/vf_frei0r.c | 50 +- libavfilter/vf_gradfun.c | 6 +- libavfilter/vf_histogram.c | 32 +- libavfilter/vf_hqdn3d.c | 2 +- libavfilter/vf_hwdownload.c | 213 + libavfilter/vf_hwupload.c | 241 + libavfilter/vf_hwupload_cuda.c | 232 + libavfilter/vf_mcdeint.c | 2 +- libavfilter/vf_nnedi.c | 3 +- libavfilter/vf_overlay.c | 2 +- libavfilter/vf_owdenoise.c | 26 +- libavfilter/vf_pad.c | 1 - libavfilter/vf_paletteuse.c | 1 + libavfilter/vf_perspective.c | 82 +- libavfilter/vf_readvitc.c | 258 + libavfilter/vf_remap.c | 337 ++ libavfilter/vf_scale.c | 4 +- libavfilter/vf_scale_npp.c | 660 +++ libavfilter/vf_scale_vaapi.c | 460 ++ libavfilter/vf_subtitles.c | 53 +- libavfilter/vf_telecine.c | 2 + libavfilter/vf_vectorscope.c | 711 ++- libavfilter/vf_waveform.c | 2297 +++++++-- libavfilter/vf_zoompan.c | 2 +- libavfilter/vf_zscale.c | 8 +- libavfilter/vsrc_cellauto.c | 4 +- libavfilter/vsrc_life.c | 4 +- libavfilter/vsrc_mptestsrc.c | 4 +- libavfilter/vsrc_testsrc.c | 19 +- libavfilter/x86/Makefile | 6 + libavfilter/x86/avf_showcqt.asm | 201 + libavfilter/x86/avf_showcqt_init.c | 63 + libavfilter/x86/colorspacedsp.asm | 1097 ++++ libavfilter/x86/colorspacedsp_init.c | 119 + libavfilter/x86/vf_blend.asm | 30 + libavfilter/x86/vf_blend_init.c | 4 +- libavfilter/x86/vf_bwdif.asm | 270 + libavfilter/x86/vf_bwdif_init.c | 78 + libavfilter/x86/vf_gradfun_init.c | 1 - libavfilter/x86/vf_interlace_init.c | 1 - libavfilter/x86/vf_yadif_init.c | 1 - libavformat/3dostr.c | 20 +- libavformat/4xm.c | 46 +- libavformat/Makefile | 99 +- libavformat/a64.c | 10 +- libavformat/aacdec.c | 6 +- libavformat/aadec.c | 22 +- libavformat/acm.c | 20 +- libavformat/act.c | 22 +- libavformat/adp.c | 14 +- libavformat/ads.c | 28 +- libavformat/adtsenc.c | 8 +- libavformat/adxdec.c | 31 +- libavformat/aea.c | 22 +- libavformat/afc.c | 16 +- libavformat/aiffdec.c | 90 +- libavformat/aiffenc.c | 50 +- libavformat/aixdec.c | 140 + libavformat/allformats.c | 73 +- libavformat/amr.c | 40 +- libavformat/anm.c | 18 +- libavformat/apc.c | 24 +- libavformat/ape.c | 20 +- libavformat/apetag.c | 9 +- libavformat/apngdec.c | 66 +- libavformat/apngenc.c | 18 +- libavformat/aqtitledec.c | 4 +- libavformat/asf.c | 8 + libavformat/asf.h | 4 +- libavformat/asfdec_f.c | 74 +- libavformat/asfdec_o.c | 35 +- libavformat/asfenc.c | 105 +- libavformat/assdec.c | 6 +- libavformat/assenc.c | 101 +- libavformat/astdec.c | 26 +- libavformat/astenc.c | 22 +- libavformat/async.c | 8 +- libavformat/au.c | 166 +- libavformat/audiointerleave.c | 12 +- libavformat/avc.c | 2 +- libavformat/avformat.h | 71 +- libavformat/avi.h | 6 +- libavformat/avidec.c | 190 +- libavformat/avienc.c | 325 +- libavformat/avio.c | 120 +- libavformat/avio.h | 77 +- libavformat/avio_internal.h | 3 +- libavformat/aviobuf.c | 150 +- libavformat/avisynth.c | 62 +- libavformat/avlanguage.h | 2 +- libavformat/avr.c | 18 +- libavformat/avs.c | 12 +- libavformat/bethsoftvid.c | 24 +- libavformat/bfi.c | 42 +- libavformat/bink.c | 81 +- libavformat/bintext.c | 88 +- libavformat/bit.c | 18 +- libavformat/bluray.c | 2 +- libavformat/bmv.c | 22 +- libavformat/boadec.c | 12 +- libavformat/brstm.c | 62 +- libavformat/c93.c | 10 +- libavformat/cache.c | 8 +- libavformat/caf.c | 2 +- libavformat/cafdec.c | 64 +- libavformat/cafenc.c | 52 +- libavformat/cdg.c | 4 +- libavformat/cdxl.c | 34 +- libavformat/chromaprint.c | 6 +- libavformat/cinedec.c | 34 +- libavformat/concat.c | 4 +- libavformat/concatdec.c | 73 +- libavformat/crypto.c | 4 +- libavformat/dashenc.c | 99 +- libavformat/data_uri.c | 2 +- libavformat/dauddec.c | 18 +- libavformat/daudenc.c | 4 +- libavformat/dcstr.c | 22 +- libavformat/dfa.c | 12 +- libavformat/dsfdec.c | 26 +- libavformat/dsicin.c | 26 +- libavformat/dss.c | 20 +- libavformat/dtsdec.c | 46 +- libavformat/dtshddec.c | 47 +- libavformat/dump.c | 127 +- libavformat/dv.c | 79 +- libavformat/dvbtxt.c | 50 + libavformat/dvenc.c | 51 +- libavformat/dxa.c | 20 +- libavformat/eacdata.c | 12 +- libavformat/electronicarts.c | 36 +- libavformat/epafdec.c | 16 +- libavformat/ffmdec.c | 30 +- libavformat/ffmetadec.c | 4 +- libavformat/file.c | 16 +- libavformat/filmstripdec.c | 22 +- libavformat/filmstripenc.c | 6 +- libavformat/flac_picture.c | 8 +- libavformat/flacdec.c | 27 +- libavformat/flacenc.c | 18 +- libavformat/flic.c | 50 +- libavformat/flvdec.c | 287 +- libavformat/flvenc.c | 300 +- libavformat/format.c | 24 +- libavformat/framecrcenc.c | 8 +- libavformat/framehash.c | 13 + libavformat/frmdec.c | 20 +- libavformat/fsb.c | 94 +- libavformat/ftp.c | 18 +- libavformat/g722.c | 16 +- libavformat/g723_1.c | 12 +- libavformat/g729dec.c | 60 +- libavformat/genh.c | 84 +- libavformat/gif.c | 28 +- libavformat/gifdec.c | 8 +- libavformat/gopher.c | 4 +- libavformat/gsmdec.c | 30 +- libavformat/gxf.c | 82 +- libavformat/gxfenc.c | 68 +- libavformat/h264dec.c | 50 +- libavformat/hashenc.c | 262 + libavformat/hdsenc.c | 15 +- libavformat/hls.c | 160 +- libavformat/hlsenc.c | 88 +- libavformat/hlsproto.c | 6 +- libavformat/hnm.c | 16 +- libavformat/http.c | 17 +- libavformat/httpauth.h | 2 +- libavformat/icecast.c | 4 +- libavformat/icodec.c | 44 +- libavformat/icoenc.c | 46 +- libavformat/id3v2.c | 6 +- libavformat/id3v2enc.c | 5 +- libavformat/idcin.c | 38 +- libavformat/idroqdec.c | 38 +- libavformat/idroqenc.c | 13 +- libavformat/iff.c | 334 +- libavformat/ilbc.c | 36 +- libavformat/img2.c | 4 +- libavformat/img2dec.c | 201 +- libavformat/img2enc.c | 16 +- libavformat/internal.h | 85 +- libavformat/ipmovie.c | 38 +- libavformat/ircamdec.c | 16 +- libavformat/ircamenc.c | 8 +- libavformat/isom.c | 155 +- libavformat/isom.h | 3 + libavformat/iss.c | 30 +- libavformat/iv8.c | 4 +- libavformat/ivfdec.c | 10 +- libavformat/ivfenc.c | 27 +- libavformat/jacosubdec.c | 6 +- libavformat/jacosubenc.c | 6 +- libavformat/jvdec.c | 24 +- libavformat/latmenc.c | 42 +- libavformat/libgme.c | 8 +- libavformat/libmodplug.c | 16 +- libavformat/libnut.c | 62 +- libavformat/librtmp.c | 10 +- libavformat/libsmbclient.c | 2 +- libavformat/libssh.c | 2 +- libavformat/lmlm4.c | 8 +- libavformat/loasdec.c | 4 +- libavformat/lrcdec.c | 4 +- libavformat/lrcenc.c | 9 +- libavformat/lvfdec.c | 26 +- libavformat/lxfdec.c | 34 +- libavformat/matroska.c | 2 +- libavformat/matroska.h | 46 +- libavformat/matroskadec.c | 332 +- libavformat/matroskaenc.c | 392 +- libavformat/md5enc.c | 171 - libavformat/md5proto.c | 4 +- libavformat/mgsts.c | 12 +- libavformat/microdvddec.c | 12 +- libavformat/microdvdenc.c | 12 +- libavformat/mlvdec.c | 50 +- libavformat/mm.c | 22 +- libavformat/mmf.c | 28 +- libavformat/mms.c | 2 +- libavformat/mmsh.c | 4 +- libavformat/mmst.c | 8 +- libavformat/mov.c | 751 +-- libavformat/mov_chan.c | 4 +- libavformat/movenc.c | 1244 +++-- libavformat/movenc.h | 9 +- libavformat/movenchint.c | 12 +- libavformat/mp3dec.c | 64 +- libavformat/mp3enc.c | 22 +- libavformat/mpc.c | 18 +- libavformat/mpc8.c | 16 +- libavformat/mpeg.c | 32 +- libavformat/mpeg.h | 2 +- libavformat/mpegenc.c | 42 +- libavformat/mpegts.c | 331 +- libavformat/mpegts.h | 3 +- libavformat/mpegtsenc.c | 214 +- libavformat/mpjpegdec.c | 11 +- libavformat/mpl2dec.c | 4 +- libavformat/mpsubdec.c | 4 +- libavformat/msf.c | 33 +- libavformat/msnwc_tcp.c | 10 +- libavformat/mtaf.c | 81 + libavformat/mtv.c | 22 +- libavformat/musx.c | 177 + libavformat/mux.c | 302 +- libavformat/mvdec.c | 74 +- libavformat/mvi.c | 34 +- libavformat/mxf.c | 10 +- libavformat/mxfdec.c | 158 +- libavformat/mxfenc.c | 142 +- libavformat/mxg.c | 18 +- libavformat/ncdec.c | 4 +- libavformat/nistspheredec.c | 35 +- libavformat/nsvdec.c | 34 +- libavformat/nut.c | 1 - libavformat/nutdec.c | 46 +- libavformat/nutenc.c | 90 +- libavformat/nuv.c | 68 +- libavformat/oggdec.c | 7 +- libavformat/oggenc.c | 80 +- libavformat/oggparsecelt.c | 14 +- libavformat/oggparsedaala.c | 24 +- libavformat/oggparsedirac.c | 34 +- libavformat/oggparseflac.c | 39 +- libavformat/oggparseogm.c | 60 +- libavformat/oggparseopus.c | 24 +- libavformat/oggparseskeleton.c | 2 +- libavformat/oggparsespeex.c | 24 +- libavformat/oggparsetheora.c | 28 +- libavformat/oggparsevorbis.c | 36 +- libavformat/oggparsevp8.c | 8 +- libavformat/omadec.c | 50 +- libavformat/omaenc.c | 28 +- libavformat/options.c | 2 +- libavformat/options_table.h | 4 +- libavformat/os_support.h | 24 + libavformat/paf.c | 22 +- libavformat/pcm.c | 10 +- libavformat/pcmdec.c | 20 +- libavformat/pjsdec.c | 4 +- libavformat/pmpdec.c | 20 +- libavformat/protocols.c | 131 + libavformat/psxstr.c | 44 +- libavformat/pva.c | 8 +- libavformat/pvfdec.c | 14 +- libavformat/qcp.c | 18 +- libavformat/r3d.c | 26 +- libavformat/rawdec.c | 17 +- libavformat/rawenc.c | 18 +- libavformat/rawutils.c | 67 + libavformat/rawvideodec.c | 16 +- libavformat/rdt.c | 12 +- libavformat/realtextdec.c | 10 +- libavformat/redspark.c | 80 +- libavformat/riff.c | 14 + libavformat/riff.h | 6 +- libavformat/riffdec.c | 94 +- libavformat/riffenc.c | 200 +- libavformat/rl2.c | 38 +- libavformat/rmdec.c | 118 +- libavformat/rmenc.c | 58 +- libavformat/rpl.c | 72 +- libavformat/rsd.c | 90 +- libavformat/rsodec.c | 14 +- libavformat/rsoenc.c | 14 +- libavformat/rtmpcrypt.c | 4 +- libavformat/rtmpdh.c | 149 +- libavformat/rtmpdh.h | 3 +- libavformat/rtmphttp.c | 4 +- libavformat/rtmpproto.c | 16 +- libavformat/rtp.c | 28 +- libavformat/rtp.h | 8 +- libavformat/rtpdec.c | 29 +- libavformat/rtpdec_amr.c | 8 +- libavformat/rtpdec_asf.c | 8 +- libavformat/rtpdec_formats.h | 3 +- libavformat/rtpdec_g726.c | 6 +- libavformat/rtpdec_h263_rfc2190.c | 2 +- libavformat/rtpdec_h264.c | 40 +- libavformat/rtpdec_hevc.c | 31 +- libavformat/rtpdec_ilbc.c | 6 +- libavformat/rtpdec_latm.c | 8 +- libavformat/rtpdec_mpeg12.c | 2 +- libavformat/rtpdec_mpeg4.c | 16 +- libavformat/rtpdec_qdm2.c | 24 +- libavformat/rtpdec_qt.c | 6 +- libavformat/rtpdec_svq3.c | 14 +- libavformat/rtpdec_vc2hq.c | 225 + libavformat/rtpdec_vp8.c | 2 +- libavformat/rtpdec_vp9.c | 100 +- libavformat/rtpdec_xiph.c | 35 +- libavformat/rtpenc.c | 77 +- libavformat/rtpenc.h | 4 +- libavformat/rtpenc_aac.c | 2 +- libavformat/rtpenc_chain.c | 4 +- libavformat/rtpenc_h261.c | 4 +- libavformat/rtpenc_h263_rfc2190.c | 4 +- libavformat/rtpenc_h264_hevc.c | 4 +- libavformat/rtpenc_jpeg.c | 18 +- libavformat/rtpenc_latm.c | 2 +- libavformat/rtpenc_mpegts.c | 4 +- libavformat/rtpenc_vc2hq.c | 134 + libavformat/rtpenc_vp9.c | 54 + libavformat/rtpenc_xiph.c | 2 +- libavformat/rtpproto.c | 14 +- libavformat/rtsp.c | 92 +- libavformat/rtsp.h | 3 + libavformat/rtspdec.c | 4 +- libavformat/samidec.c | 6 +- libavformat/sapdec.c | 8 +- libavformat/sapenc.c | 4 +- libavformat/sauce.c | 8 +- libavformat/sbgdec.c | 26 +- libavformat/sctp.c | 2 +- libavformat/sdp.c | 192 +- libavformat/sdr2.c | 16 +- libavformat/segafilm.c | 40 +- libavformat/segment.c | 113 +- libavformat/sierravmd.c | 56 +- libavformat/siff.c | 28 +- libavformat/smacker.c | 58 +- libavformat/smjpegdec.c | 28 +- libavformat/smjpegenc.c | 27 +- libavformat/smoothstreamingenc.c | 54 +- libavformat/smush.c | 28 +- libavformat/sol.c | 14 +- libavformat/soxdec.c | 28 +- libavformat/soxenc.c | 18 +- libavformat/spdif.h | 4 +- libavformat/spdifdec.c | 10 +- libavformat/spdifenc.c | 10 +- libavformat/srtdec.c | 13 +- libavformat/srtenc.c | 8 +- libavformat/srtp.c | 147 - libavformat/srtpproto.c | 4 +- libavformat/stldec.c | 4 +- libavformat/subfile.c | 4 +- libavformat/subviewer1dec.c | 4 +- libavformat/subviewerdec.c | 8 +- libavformat/supdec.c | 4 +- libavformat/svag.c | 24 +- libavformat/swf.h | 2 +- libavformat/swfdec.c | 58 +- libavformat/swfenc.c | 94 +- libavformat/takdec.c | 20 +- libavformat/tcp.c | 2 +- libavformat/tedcaptionsdec.c | 4 +- libavformat/tee.c | 209 +- libavformat/{movenc-test.c => tests/movenc.c} | 128 +- .../{noproxy-test.c => tests/noproxy.c} | 2 +- libavformat/tests/rtmpdh.c | 158 + libavformat/{seek-test.c => tests/seek.c} | 3 + libavformat/tests/srtp.c | 167 + libavformat/{url-test.c => tests/url.c} | 2 +- libavformat/thp.c | 23 +- libavformat/tiertexseq.c | 28 +- libavformat/tls.c | 2 +- libavformat/tls_gnutls.c | 2 +- libavformat/tls_openssl.c | 2 +- libavformat/tls_schannel.c | 2 +- libavformat/tls_securetransport.c | 4 +- libavformat/tmv.c | 40 +- libavformat/tta.c | 21 +- libavformat/tty.c | 12 +- libavformat/txd.c | 4 +- libavformat/udp.c | 187 +- libavformat/uncodedframecrcenc.c | 9 +- libavformat/unix.c | 6 +- libavformat/url.h | 41 +- libavformat/utils.c | 939 +++- libavformat/v210.c | 18 +- libavformat/vag.c | 24 +- libavformat/vc1test.c | 10 +- libavformat/vc1testenc.c | 10 +- libavformat/version.h | 7 +- libavformat/vivo.c | 30 +- libavformat/voc_packet.c | 141 + libavformat/vocdec.c | 144 +- libavformat/vocenc.c | 30 +- libavformat/vpcc.c | 148 + libavformat/vpcc.h | 47 + libavformat/vpk.c | 30 +- libavformat/vplayerdec.c | 15 +- libavformat/vqf.c | 42 +- libavformat/wavdec.c | 129 +- libavformat/wavenc.c | 52 +- libavformat/wc3movie.c | 32 +- libavformat/webm_chunk.c | 6 +- libavformat/webmdashenc.c | 62 +- libavformat/webpenc.c | 10 +- libavformat/webvttdec.c | 4 +- libavformat/webvttenc.c | 4 +- libavformat/westwood_aud.c | 24 +- libavformat/westwood_vqa.c | 40 +- libavformat/wsddec.c | 173 + libavformat/wtvdec.c | 64 +- libavformat/wtvenc.c | 59 +- libavformat/wvdec.c | 12 +- libavformat/wvedec.c | 14 +- libavformat/wvenc.c | 2 +- libavformat/xa.c | 18 +- libavformat/xmv.c | 105 +- libavformat/xvag.c | 28 +- libavformat/xwma.c | 58 +- libavformat/yop.c | 34 +- libavformat/yuv4mpegdec.c | 19 +- libavformat/yuv4mpegenc.c | 42 +- libavresample/aarch64/Makefile | 8 +- libavresample/arm/Makefile | 8 +- libavresample/dither.h | 4 +- libavresample/resample.c | 2 +- .../{avresample-test.c => tests/avresample.c} | 3 +- libavutil/Makefile | 25 +- libavutil/adler32.c | 35 - libavutil/aes.c | 112 +- libavutil/atomic.c | 18 - libavutil/atomic_suncc.h | 1 - libavutil/audio_fifo.c | 24 + libavutil/audio_fifo.h | 17 + libavutil/avassert.h | 2 +- libavutil/avr32/intreadwrite.h | 2 +- libavutil/avstring.c | 66 +- libavutil/avstring.h | 2 +- libavutil/avutil.h | 2 +- libavutil/base64.c | 107 - libavutil/base64.h | 9 +- libavutil/blowfish.c | 170 - libavutil/bprint.c | 78 +- libavutil/buffer.c | 27 +- libavutil/buffer.h | 18 +- libavutil/buffer_internal.h | 3 + libavutil/camellia.c | 58 - libavutil/cast5.c | 86 - libavutil/color_utils.c | 17 + libavutil/colorspace.h | 19 +- libavutil/cpu.c | 127 - libavutil/cpu.h | 2 +- libavutil/crc.c | 31 +- libavutil/des.c | 350 +- libavutil/dict.c | 121 +- libavutil/dict.h | 10 +- libavutil/display.h | 1 + libavutil/error.c | 22 - libavutil/eval.c | 154 +- libavutil/ffmath.h | 67 + libavutil/fifo.c | 59 +- libavutil/file.c | 67 +- libavutil/file.h | 1 + libavutil/file_open.c | 59 + libavutil/float_dsp.c | 318 -- libavutil/frame.c | 17 +- libavutil/frame.h | 27 +- libavutil/hmac.c | 81 - libavutil/hwcontext.c | 490 ++ libavutil/hwcontext.h | 428 ++ libavutil/hwcontext_cuda.c | 314 ++ libavutil/hwcontext_cuda.h | 46 + libavutil/hwcontext_dxva2.c | 439 ++ libavutil/hwcontext_dxva2.h | 72 + libavutil/hwcontext_internal.h | 107 + libavutil/hwcontext_vaapi.c | 973 ++++ libavutil/hwcontext_vaapi.h | 82 + libavutil/hwcontext_vdpau.c | 489 ++ libavutil/hwcontext_vdpau.h | 44 + libavutil/imgutils.c | 5 +- libavutil/internal.h | 50 +- libavutil/lfg.c | 42 - libavutil/lls.c | 39 - libavutil/log.c | 34 +- libavutil/log.h | 17 + libavutil/lzo.c | 55 - libavutil/md5.c | 72 +- libavutil/mips/asmdefs.h | 12 + libavutil/murmur3.c | 37 - libavutil/opencl.c | 2 +- libavutil/opt.c | 600 +-- libavutil/opt.h | 2 +- libavutil/parseutils.c | 189 - libavutil/pca.c | 83 - libavutil/pixdesc.c | 97 +- libavutil/pixdesc.h | 6 +- libavutil/pixelutils.c | 135 - libavutil/pixfmt.h | 44 +- libavutil/random_seed.c | 26 - libavutil/rational.c | 119 +- libavutil/replaygain.h | 1 - libavutil/ripemd.c | 54 - libavutil/samplefmt.h | 1 - libavutil/sha.c | 52 - libavutil/sha512.c | 62 - libavutil/softfloat.h | 35 +- libavutil/stereo3d.c | 33 + libavutil/stereo3d.h | 18 + libavutil/tea.c | 92 - libavutil/tests/adler32.c | 53 + libavutil/tests/aes.c | 119 + libavutil/tests/atomic.c | 34 + libavutil/tests/avstring.c | 83 + libavutil/tests/base64.c | 128 + libavutil/tests/blowfish.c | 194 + libavutil/tests/bprint.c | 93 + libavutil/tests/camellia.c | 75 + libavutil/tests/cast5.c | 103 + libavutil/tests/color_utils.c | 43 + libavutil/tests/cpu.c | 147 + libavutil/tests/crc.c | 46 + libavutil/tests/des.c | 128 + libavutil/tests/dict.c | 133 + libavutil/tests/display.c | 61 + libavutil/tests/error.c | 37 + libavutil/tests/eval.c | 183 + libavutil/tests/fifo.c | 74 + libavutil/tests/file.c | 34 + libavutil/tests/float_dsp.c | 333 ++ libavutil/tests/hash.c | 65 + libavutil/tests/hmac.c | 99 + libavutil/tests/lfg.c | 74 + libavutil/tests/lls.c | 54 + libavutil/tests/log.c | 71 + libavutil/tests/lzo.c | 79 + libavutil/tests/md5.c | 55 + libavutil/tests/murmur3.c | 58 + libavutil/tests/opt.c | 312 ++ libavutil/tests/parseutils.c | 260 + libavutil/tests/pca.c | 102 + libavutil/tests/pixdesc.c | 46 + libavutil/tests/pixelutils.c | 152 + libavutil/tests/random_seed.c | 46 + libavutil/tests/rational.c | 134 + libavutil/tests/ripemd.c | 80 + libavutil/tests/sha.c | 75 + libavutil/tests/sha512.c | 90 + libavutil/{ => tests}/softfloat.c | 9 +- libavutil/tests/tea.c | 115 + libavutil/tests/tree.c | 108 + libavutil/tests/twofish.c | 94 + libavutil/{ => tests}/utf8.c | 2 - libavutil/tests/xtea.c | 125 + libavutil/threadmessage.h | 16 +- libavutil/tree.c | 89 - libavutil/tree.h | 4 +- libavutil/twofish.c | 74 - libavutil/version.h | 4 +- libavutil/x86/cpu.c | 2 +- libavutil/x86/intmath.h | 2 + libavutil/x86/x86inc.asm | 95 +- libavutil/x86/x86util.asm | 11 + libavutil/xtea.c | 101 - library.mak | 22 +- libswresample/arm/Makefile | 7 +- libswresample/arm/resample.S | 77 + libswresample/arm/resample_init.c | 122 + libswresample/options.c | 1 + libswresample/rematrix.c | 31 +- libswresample/rematrix_template.c | 7 +- libswresample/resample.c | 117 +- libswresample/resample.h | 5 +- libswresample/resample_dsp.c | 1 + libswresample/resample_template.c | 30 +- libswresample/soxr_resample.c | 2 +- libswresample/swresample.c | 10 +- libswresample/swresample_internal.h | 3 +- .../{swresample-test.c => tests/swresample.c} | 5 +- libswresample/version.h | 4 +- libswresample/x86/resample.asm | 87 +- libswscale/Makefile | 6 +- libswscale/aarch64/Makefile | 6 + libswscale/aarch64/hscale.S | 59 + libswscale/aarch64/output.S | 66 + libswscale/aarch64/swscale.c | 44 + libswscale/aarch64/swscale_unscaled.c | 132 + libswscale/aarch64/yuv2rgb_neon.S | 210 + libswscale/arm/Makefile | 11 +- libswscale/arm/hscale.S | 70 + libswscale/arm/output.S | 78 + libswscale/arm/swscale.c | 44 + libswscale/arm/swscale_unscaled.c | 78 +- libswscale/arm/yuv2rgb_neon.S | 421 +- libswscale/input.c | 14 +- libswscale/output.c | 50 +- libswscale/ppc/swscale_altivec.c | 4 +- libswscale/ppc/yuv2rgb_altivec.c | 2 - libswscale/slice.c | 57 +- libswscale/swscale.c | 346 +- libswscale/swscale.h | 40 +- libswscale/swscale_internal.h | 133 +- libswscale/swscale_unscaled.c | 9 +- .../{colorspace-test.c => tests/colorspace.c} | 5 +- .../{swscale-test.c => tests/swscale.c} | 3 +- libswscale/utils.c | 145 +- libswscale/version.h | 6 +- libswscale/vscale.c | 4 +- libswscale/x86/output.asm | 8 +- libswscale/x86/rgb2rgb.c | 1 - libswscale/x86/scale.asm | 6 +- libswscale/x86/swscale.c | 39 +- libswscale/x86/swscale_template.c | 12 +- libswscale/yuv2rgb.c | 45 +- tests/Makefile | 8 +- tests/api/api-band-test.c | 9 +- tests/api/api-codec-param-test.c | 2 +- tests/api/api-h264-test.c | 9 +- tests/api/api-seek-test.c | 9 +- tests/audiomatch.c | 110 + tests/checkasm/Makefile | 16 +- tests/checkasm/checkasm.c | 13 +- tests/checkasm/checkasm.h | 3 +- tests/checkasm/h264pred.c | 6 +- tests/checkasm/vf_blend.c | 4 +- tests/checkasm/vf_colorspace.c | 314 ++ tests/fate-run.sh | 46 +- tests/fate.sh | 4 +- tests/fate/aac.mak | 11 + tests/fate/api.mak | 2 +- tests/fate/avformat.mak | 2 + tests/fate/dca.mak | 2 +- tests/fate/demux.mak | 34 +- tests/fate/dnxhd.mak | 4 +- tests/fate/fft.mak | 49 +- tests/fate/filter-audio.mak | 116 +- tests/fate/filter-video.mak | 70 +- tests/fate/gapless.mak | 120 +- tests/fate/gif.mak | 3 + tests/fate/h264.mak | 57 +- tests/fate/image.mak | 73 +- tests/fate/indeo.mak | 21 +- tests/fate/libavcodec.mak | 37 +- tests/fate/libavdevice.mak | 6 +- tests/fate/libavformat.mak | 31 +- tests/fate/libavresample.mak | 8 +- tests/fate/libavutil.mak | 132 +- tests/fate/libswresample.mak | 343 ++ tests/fate/lossless-audio.mak | 6 +- tests/fate/lossless-video.mak | 7 + tests/fate/matroska.mak | 9 + tests/fate/microsoft.mak | 19 +- tests/fate/mpeg4.mak | 7 + tests/fate/prores.mak | 2 + tests/fate/real.mak | 3 + tests/fate/screen.mak | 31 +- tests/fate/seek.mak | 24 +- tests/fate/vcodec.mak | 17 +- tests/fate/video.mak | 6 + tests/fate/voice.mak | 7 +- tests/fate/vorbis.mak | 16 +- tests/fate/vpx.mak | 7 +- tests/filtergraphs/anequalizer | 1 + tests/filtergraphs/overlay-dvdsub-2397 | 2 + tests/lavf-regression.sh | 11 + tests/ref/acodec/pcm-s16be_planar | 4 +- tests/ref/acodec/pcm-s16le_planar | 4 +- tests/ref/acodec/pcm-s24le_planar | 4 +- tests/ref/acodec/pcm-s32le_planar | 4 +- tests/ref/acodec/pcm-s8_planar | 4 +- tests/ref/acodec/pcm-u16be | 4 +- tests/ref/acodec/pcm-u16le | 4 +- tests/ref/acodec/pcm-u24be | 4 +- tests/ref/acodec/pcm-u24le | 4 +- tests/ref/acodec/pcm-u32be | 4 +- tests/ref/acodec/pcm-u32le | 4 +- tests/ref/acodec/s302m | 2 +- tests/ref/fate/012v | 6 + tests/ref/fate/4xm-1 | 4 + tests/ref/fate/4xm-2 | 4 + tests/ref/fate/8bps | 8 + tests/ref/fate/aasc | 4 + tests/ref/fate/adpcm-4xm | 4 + tests/ref/fate/adpcm-afc | 4 + tests/ref/fate/adpcm-dtk | 4 + tests/ref/fate/adpcm-ea-1 | 4 + tests/ref/fate/adpcm-ea-2 | 4 + tests/ref/fate/adpcm-ea-maxis-xa | 4 + tests/ref/fate/adpcm-ea-r1 | 4 + tests/ref/fate/adpcm-ima-amv | 4 + tests/ref/fate/adpcm-ima-ea-eacs | 4 + tests/ref/fate/adpcm-ima-ea-sead | 4 + tests/ref/fate/adpcm-ima-smjpeg | 4 + tests/ref/fate/adpcm-ima-ws | 4 + tests/ref/fate/adpcm-ms-mono | 4 + tests/ref/fate/adpcm-thp | 4 + tests/ref/fate/adpcm-vima | 4 + tests/ref/fate/adpcm-xa | 4 + tests/ref/fate/aic | 4 + tests/ref/fate/aic-oddsize | 4 + tests/ref/fate/alg-mm | 4 + tests/ref/fate/aliaspix-bgr | 4 + tests/ref/fate/aliaspix-gray | 4 + tests/ref/fate/amv | 4 + tests/ref/fate/ansi | 4 + tests/ref/fate/ansi256 | 4 + tests/ref/fate/api-mjpeg-codec-param | 4 + tests/ref/fate/api-png-codec-param | 4 + tests/ref/fate/armovie-escape124 | 8 + tests/ref/fate/armovie-escape130 | 4 + tests/ref/fate/asf-repldata | 4 + .../audiomatch-afconvert-16000-mono-he-adts | 1 + .../audiomatch-afconvert-16000-mono-he-m4a | 1 + .../audiomatch-afconvert-16000-mono-lc-adts | 1 + .../audiomatch-afconvert-16000-mono-lc-m4a | 1 + .../audiomatch-afconvert-16000-stereo-he-adts | 1 + .../audiomatch-afconvert-16000-stereo-he-m4a | 1 + ...audiomatch-afconvert-16000-stereo-he2-adts | 1 + .../audiomatch-afconvert-16000-stereo-he2-m4a | 1 + .../audiomatch-afconvert-16000-stereo-lc-adts | 1 + .../audiomatch-afconvert-16000-stereo-lc-m4a | 1 + .../audiomatch-afconvert-44100-mono-he-adts | 1 + .../audiomatch-afconvert-44100-mono-he-m4a | 1 + .../audiomatch-afconvert-44100-mono-lc-adts | 1 + .../audiomatch-afconvert-44100-mono-lc-m4a | 1 + .../audiomatch-afconvert-44100-stereo-he-adts | 1 + .../audiomatch-afconvert-44100-stereo-he-m4a | 1 + ...audiomatch-afconvert-44100-stereo-he2-adts | 1 + .../audiomatch-afconvert-44100-stereo-he2-m4a | 1 + .../audiomatch-afconvert-44100-stereo-lc-adts | 1 + .../audiomatch-afconvert-44100-stereo-lc-m4a | 1 + .../fate/audiomatch-dolby-44100-mono-he-mp4 | 1 + .../fate/audiomatch-dolby-44100-mono-lc-mp4 | 1 + .../fate/audiomatch-dolby-44100-stereo-he-mp4 | 1 + .../audiomatch-dolby-44100-stereo-he2-mp4 | 1 + .../fate/audiomatch-dolby-44100-stereo-lc-mp4 | 1 + .../fate/audiomatch-faac-16000-mono-lc-adts | 1 + .../fate/audiomatch-faac-16000-mono-lc-m4a | 1 + .../fate/audiomatch-faac-16000-stereo-lc-adts | 1 + .../fate/audiomatch-faac-16000-stereo-lc-m4a | 1 + .../fate/audiomatch-faac-44100-mono-lc-adts | 1 + .../fate/audiomatch-faac-44100-mono-lc-m4a | 1 + .../fate/audiomatch-faac-44100-stereo-lc-adts | 1 + .../fate/audiomatch-faac-44100-stereo-lc-m4a | 1 + .../fate/audiomatch-nero-16000-mono-he-m4a | 1 + .../fate/audiomatch-nero-16000-mono-lc-m4a | 1 + .../fate/audiomatch-nero-16000-stereo-he-m4a | 1 + .../fate/audiomatch-nero-16000-stereo-he2-m4a | 1 + .../fate/audiomatch-nero-16000-stereo-lc-m4a | 1 + .../fate/audiomatch-nero-44100-mono-he-m4a | 1 + .../fate/audiomatch-nero-44100-mono-lc-m4a | 1 + .../fate/audiomatch-nero-44100-stereo-he-m4a | 1 + .../fate/audiomatch-nero-44100-stereo-he2-m4a | 1 + .../fate/audiomatch-nero-44100-stereo-lc-m4a | 1 + .../audiomatch-quicktime7-44100-stereo-lc-mp4 | 1 + .../audiomatch-quicktimeX-44100-stereo-lc-m4a | 1 + tests/ref/fate/audiomatch-square-aac | 1 + tests/ref/fate/audiomatch-square-mp3 | 1 + tests/ref/fate/auravision-v1 | 4 + tests/ref/fate/auravision-v2 | 4 + tests/ref/fate/avio-direct | 4 + tests/ref/fate/bethsoft-vid | 8 + tests/ref/fate/bfi | 8 + tests/ref/fate/bink-video-b | 4 + tests/ref/fate/bink-video-f | 4 + tests/ref/fate/bink-video-i | 4 + tests/ref/fate/bmp-15bit | 4 + tests/ref/fate/bmp-15bit-mask | 4 + tests/ref/fate/bmp-16bit-mask | 4 + tests/ref/fate/bmp-1bit | 4 + tests/ref/fate/bmp-24bit | 4 + tests/ref/fate/bmp-32bit | 4 + tests/ref/fate/bmp-32bit-mask | 4 + tests/ref/fate/bmp-4bit | 4 + tests/ref/fate/bmp-4bit-os2 | 4 + tests/ref/fate/bmp-8bit | 4 + tests/ref/fate/bmp-8bit-os2 | 4 + tests/ref/fate/bmp-rle4 | 4 + tests/ref/fate/bmp-rle8 | 4 + tests/ref/fate/bmpparser | 4 + tests/ref/fate/bmv-audio | 4 + tests/ref/fate/bmv-video | 4 + tests/ref/fate/brenderpix-24 | 4 + tests/ref/fate/brenderpix-565 | 4 + tests/ref/fate/brenderpix-defpal | 4 + tests/ref/fate/brenderpix-intpal | 4 + tests/ref/fate/brenderpix-y400a | 4 + tests/ref/fate/canopus-cllc-argb | 4 + tests/ref/fate/canopus-cllc-rgb | 4 + tests/ref/fate/canopus-cllc-yuy2-noblock | 4 + tests/ref/fate/canopus-hq_hqa-hq | 4 + tests/ref/fate/canopus-hq_hqa-hqa | 4 + tests/ref/fate/canopus-hq_hqa-inter | 4 + tests/ref/fate/canopus-hqx422 | 4 + tests/ref/fate/canopus-hqx422a | 4 + tests/ref/fate/cavs | 4 + tests/ref/fate/cdgraphics | 4 + tests/ref/fate/cdxl-bitline-ham6 | 4 + tests/ref/fate/cdxl-demux | 8 + tests/ref/fate/cdxl-ham6 | 4 + tests/ref/fate/cdxl-ham8 | 4 + tests/ref/fate/cdxl-pal8 | 4 + tests/ref/fate/cdxl-pal8-small | 4 + tests/ref/fate/cljr | 4 + tests/ref/fate/color_utils | 304 ++ .../ref/fate/concat-demuxer-extended-lavf-mxf | 2 +- .../fate/concat-demuxer-extended-lavf-mxf_d10 | 2 +- .../ref/fate/concat-demuxer-simple1-lavf-mxf | 2 +- .../fate/concat-demuxer-simple1-lavf-mxf_d10 | 2 +- tests/ref/fate/concat-demuxer-simple2-lavf-ts | 130 +- tests/ref/fate/corepng | 8 + tests/ref/fate/creatureshock-avs | 8 + tests/ref/fate/cscd | 4 + tests/ref/fate/cvid-grayscale | 4 + tests/ref/fate/cvid-palette | 4 + tests/ref/fate/cvid-partial | 4 + tests/ref/fate/cyberia-c93 | 8 + tests/ref/fate/cyuv | 4 + tests/ref/fate/d-cinema-demux | 4 + tests/ref/fate/d-eavp6-demux | 8 + tests/ref/fate/dca-xll_51_16_192_768_0 | 6 +- tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 | 6 +- tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 | 6 +- tests/ref/fate/dca-xll_51_16_192_768_1 | 6 +- tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 | 6 +- tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 | 6 +- tests/ref/fate/dca-xll_51_24_48_768 | 6 +- tests/ref/fate/dca-xll_51_24_48_768-dmix_2 | 6 +- tests/ref/fate/dca-xll_51_24_48_768-dmix_6 | 6 +- tests/ref/fate/dca-xll_51_24_48_none | 6 +- tests/ref/fate/dca-xll_51_24_48_none-dmix_2 | 6 +- tests/ref/fate/dca-xll_51_24_48_none-dmix_6 | 6 +- tests/ref/fate/dca-xll_71_24_48_768_0 | 6 +- tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 | 6 +- tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 | 6 +- tests/ref/fate/dca-xll_71_24_48_768_1 | 6 +- tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 | 6 +- tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 | 6 +- tests/ref/fate/dca-xll_71_24_96_768 | 6 +- tests/ref/fate/dca-xll_71_24_96_768-dmix_2 | 6 +- tests/ref/fate/dca-xll_71_24_96_768-dmix_6 | 6 +- tests/ref/fate/dca-xll_x96_51_24_96_1509 | 6 +- .../ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 | 6 +- .../ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 | 6 +- tests/ref/fate/dca-xll_xch_61_24_48_768 | 6 +- .../ref/fate/dca-xll_xch_61_24_48_768-dmix_2 | 6 +- .../ref/fate/dca-xll_xch_61_24_48_768-dmix_6 | 6 +- tests/ref/fate/dcinema-encode | 6 +- tests/ref/fate/dds-alpha8 | 6 + tests/ref/fate/dds-argb | 4 + tests/ref/fate/dds-argb-aexp | 4 + tests/ref/fate/dds-dx10-bc1 | 4 + tests/ref/fate/dds-dx10-bc1a | 4 + tests/ref/fate/dds-dx10-bc2 | 4 + tests/ref/fate/dds-dx10-bc3 | 4 + tests/ref/fate/dds-dx10-bc4 | 4 + tests/ref/fate/dds-dx10-bc5 | 4 + tests/ref/fate/dds-dxt1 | 4 + tests/ref/fate/dds-dxt1-normalmap | 4 + tests/ref/fate/dds-dxt1a | 4 + tests/ref/fate/dds-dxt2 | 4 + tests/ref/fate/dds-dxt3 | 4 + tests/ref/fate/dds-dxt4 | 4 + tests/ref/fate/dds-dxt5 | 4 + tests/ref/fate/dds-dxt5-aexp | 4 + tests/ref/fate/dds-dxt5-normalmap | 4 + tests/ref/fate/dds-dxt5-normalmap-ati | 4 + tests/ref/fate/dds-dxt5-rbxg | 4 + tests/ref/fate/dds-dxt5-rgxb | 4 + tests/ref/fate/dds-dxt5-rxbg | 4 + tests/ref/fate/dds-dxt5-rxgb | 4 + tests/ref/fate/dds-dxt5-xgbr | 4 + tests/ref/fate/dds-dxt5-xgxr | 4 + tests/ref/fate/dds-dxt5-xrbg | 4 + tests/ref/fate/dds-dxt5-ycocg | 4 + tests/ref/fate/dds-dxt5-ycocg-scaled | 4 + tests/ref/fate/dds-monob | 6 + tests/ref/fate/dds-pal | 4 + tests/ref/fate/dds-pal-ati | 4 + tests/ref/fate/dds-rgb1555 | 6 + tests/ref/fate/dds-rgb16 | 4 + tests/ref/fate/dds-rgb24 | 4 + tests/ref/fate/dds-rgb555 | 6 + tests/ref/fate/dds-rgba | 4 + tests/ref/fate/dds-rgtc1s | 4 + tests/ref/fate/dds-rgtc1u | 4 + tests/ref/fate/dds-rgtc2s | 4 + tests/ref/fate/dds-rgtc2u | 4 + tests/ref/fate/dds-rgtc2u-xy | 4 + tests/ref/fate/dds-uyvy | 4 + tests/ref/fate/dds-xbgr | 4 + tests/ref/fate/dds-xrgb | 4 + tests/ref/fate/dds-y | 4 + tests/ref/fate/dds-ya | 6 +- tests/ref/fate/dds-ycocg | 4 + tests/ref/fate/dds-yuyv | 4 + tests/ref/fate/delphine-cin-audio | 4 + tests/ref/fate/delphine-cin-video | 4 + tests/ref/fate/deluxepaint-anm | 4 + tests/ref/fate/dfa1 | 4 + tests/ref/fate/dfa10 | 4 + tests/ref/fate/dfa11 | 4 + tests/ref/fate/dfa2 | 4 + tests/ref/fate/dfa3 | 4 + tests/ref/fate/dfa4 | 4 + tests/ref/fate/dfa5 | 4 + tests/ref/fate/dfa6 | 4 + tests/ref/fate/dfa7 | 4 + tests/ref/fate/dfa8 | 4 + tests/ref/fate/dfa9 | 4 + tests/ref/fate/dirac | 4 + tests/ref/fate/display | 16 + tests/ref/fate/dnxhd-mbaff | 4 + tests/ref/fate/dnxhr-444 | 4 + tests/ref/fate/dnxhr-parse | 9 + tests/ref/fate/dpcm-idroq | 4 + tests/ref/fate/dpcm-interplay | 4 + tests/ref/fate/dpx | 4 + tests/ref/fate/dpxparser | 4 + tests/ref/fate/dss-lp | 4 + tests/ref/fate/dss-sp | 4 + tests/ref/fate/dxa-feeble | 4 + tests/ref/fate/dxa-scummvm | 4 + tests/ref/fate/dxtory | 5 +- tests/ref/fate/dxv-dxt1 | 4 + tests/ref/fate/dxv-dxt5 | 4 + tests/ref/fate/dxv3-dxt1 | 4 + tests/ref/fate/dxv3-dxt5 | 4 + tests/ref/fate/ea-cmv | 4 + tests/ref/fate/ea-mad | 4 + tests/ref/fate/ea-tgq | 4 + tests/ref/fate/ea-tgv-1 | 4 + tests/ref/fate/ea-tgv-2 | 4 + tests/ref/fate/ea-tqi | 4 + tests/ref/fate/eval | 26 + tests/ref/fate/exr-rgb-scanline-float-b44 | 6 + tests/ref/fate/exr-rgb-scanline-half-b44-12x8 | 6 + tests/ref/fate/exr-rgb-scanline-half-b44-13x9 | 6 + .../fate/exr-rgb-scanline-pxr24-float-12x8 | 6 + tests/ref/fate/exr-rgb-tile-float-raw-12x8 | 6 + tests/ref/fate/exr-rgb-tile-float-raw-150x130 | 6 + tests/ref/fate/exr-rgb-tile-half-raw-12x8 | 6 + .../ref/fate/exr-rgba-multiscanline-half-b44 | 6 + tests/ref/fate/exr-slice-pxr24 | 4 + tests/ref/fate/exr-slice-raw | 4 + tests/ref/fate/exr-slice-rle | 4 + tests/ref/fate/exr-slice-zip1 | 4 + tests/ref/fate/exr-slice-zip16 | 4 + tests/ref/fate/ffmpeg-filter_colorkey | 8 + tests/ref/fate/ffmpeg-filter_complex | 4 + tests/ref/fate/ffmpeg-lavfi | 4 + tests/ref/fate/ffprobe_compact | 62 +- tests/ref/fate/ffprobe_csv | 62 +- tests/ref/fate/ffprobe_default | 64 +- tests/ref/fate/ffprobe_flat | 64 +- tests/ref/fate/ffprobe_ini | 64 +- tests/ref/fate/ffprobe_json | 64 +- tests/ref/fate/ffprobe_xml | 62 +- tests/ref/fate/fic-avi | 4 + tests/ref/fate/film-cvid | 4 + tests/ref/fate/filter-2xbr | 4 + tests/ref/fate/filter-3xbr | 4 + tests/ref/fate/filter-4xbr | 4 + tests/ref/fate/filter-acrossfade | 502 ++ tests/ref/fate/filter-adelay | 4 + tests/ref/fate/filter-aecho | 265 + tests/ref/fate/filter-aemphasis | 528 ++ tests/ref/fate/filter-aemphasis-50fm | 264 + tests/ref/fate/filter-aemphasis-75kf | 264 + tests/ref/fate/filter-afade-esin | 264 + tests/ref/fate/filter-afade-exp | 264 + tests/ref/fate/filter-afade-hsin | 264 + tests/ref/fate/filter-afade-iqsin | 264 + tests/ref/fate/filter-afade-log | 264 + tests/ref/fate/filter-afade-qsin | 264 + tests/ref/fate/filter-agate | 264 + tests/ref/fate/filter-alimiter | 264 + .../fate/filter-alphaextract_alphamerge_rgb | 4 + .../fate/filter-alphaextract_alphamerge_yuv | 4 + tests/ref/fate/filter-amerge | 135 + tests/ref/fate/filter-anequalizer | 264 + tests/ref/fate/filter-apad | 265 + tests/ref/fate/filter-atrim-duration | 4 + tests/ref/fate/filter-atrim-mixed | 4 + tests/ref/fate/filter-atrim-samples | 4 + tests/ref/fate/filter-atrim-time | 4 + tests/ref/fate/filter-boxblur | 4 + tests/ref/fate/filter-codecview-mvs | 4 + tests/ref/fate/filter-colorchannelmixer | 4 + tests/ref/fate/filter-colormatrix1 | 2 +- tests/ref/fate/filter-colormatrix2 | 2 +- tests/ref/fate/filter-concat | 8 + tests/ref/fate/filter-curves | 4 + tests/ref/fate/filter-delogo | 4 + tests/ref/fate/filter-drawbox | 4 + tests/ref/fate/filter-fade | 4 + tests/ref/fate/filter-fieldorder | 4 + tests/ref/fate/filter-fps | 87 + tests/ref/fate/filter-fps-cfr | 94 + tests/ref/fate/filter-fps-r | 74 + tests/ref/fate/filter-framepack-columns | 4 + tests/ref/fate/filter-framepack-frameseq | 4 + tests/ref/fate/filter-framepack-lines | 4 + tests/ref/fate/filter-framepack-sbs | 4 + tests/ref/fate/filter-framepack-tab | 4 + tests/ref/fate/filter-gradfun | 4 + tests/ref/fate/filter-gradfun-sample | 4 + tests/ref/fate/filter-histogram-levels | 4 + tests/ref/fate/filter-hls | 772 +++ tests/ref/fate/filter-hq2x | 4 + tests/ref/fate/filter-hq3x | 4 + tests/ref/fate/filter-hq4x | 4 + tests/ref/fate/filter-hqdn3d | 4 + tests/ref/fate/filter-hqdn3d-sample | 4 + tests/ref/fate/filter-idet | 4 + tests/ref/fate/filter-interlace | 4 + tests/ref/fate/filter-lavd-life | 4 + tests/ref/fate/filter-lavd-scalenorm | 4 + tests/ref/fate/filter-lavd-testsrc | 4 + tests/ref/fate/filter-mcdeint-fast | 4 + tests/ref/fate/filter-mcdeint-medium | 4 + tests/ref/fate/filter-mergeplanes | 4 + tests/ref/fate/filter-meta-4560-rotate0 | 267 + tests/ref/fate/filter-metadata-cropdetect | 32 + tests/ref/fate/filter-metadata-readvitc-def | 5 + tests/ref/fate/filter-metadata-readvitc-thr | 5 + tests/ref/fate/filter-mpdecimate | 4 + tests/ref/fate/filter-negate | 4 + tests/ref/fate/filter-overlay | 4 + tests/ref/fate/filter-overlay-dvdsub-2397 | 856 +++ tests/ref/fate/filter-overlay_rgb | 4 + tests/ref/fate/filter-overlay_yuv420 | 4 + tests/ref/fate/filter-overlay_yuv422 | 4 + tests/ref/fate/filter-overlay_yuv444 | 4 + tests/ref/fate/filter-palettegen-1 | 4 + tests/ref/fate/filter-palettegen-2 | 4 + tests/ref/fate/filter-paletteuse-bayer | 4 + tests/ref/fate/filter-paletteuse-nodither | 4 + tests/ref/fate/filter-paletteuse-sierra2_4a | 4 + tests/ref/fate/filter-phase | 4 + tests/ref/fate/filter-pixfmts-fieldmatch | 2 +- tests/ref/fate/filter-pixfmts-pad | 34 + tests/ref/fate/filter-pp | 4 + tests/ref/fate/filter-removegrain-mode-00 | 4 + tests/ref/fate/filter-removegrain-mode-01 | 4 + tests/ref/fate/filter-removegrain-mode-02 | 4 + tests/ref/fate/filter-removegrain-mode-03 | 4 + tests/ref/fate/filter-removegrain-mode-04 | 4 + tests/ref/fate/filter-removegrain-mode-05 | 4 + tests/ref/fate/filter-removegrain-mode-06 | 4 + tests/ref/fate/filter-removegrain-mode-07 | 4 + tests/ref/fate/filter-removegrain-mode-08 | 4 + tests/ref/fate/filter-removegrain-mode-09 | 4 + tests/ref/fate/filter-removegrain-mode-10 | 4 + tests/ref/fate/filter-removegrain-mode-11 | 4 + tests/ref/fate/filter-removegrain-mode-12 | 4 + tests/ref/fate/filter-removegrain-mode-13 | 4 + tests/ref/fate/filter-removegrain-mode-14 | 4 + tests/ref/fate/filter-removegrain-mode-15 | 4 + tests/ref/fate/filter-removegrain-mode-16 | 4 + tests/ref/fate/filter-removegrain-mode-17 | 4 + tests/ref/fate/filter-removegrain-mode-18 | 4 + tests/ref/fate/filter-removegrain-mode-19 | 4 + tests/ref/fate/filter-removegrain-mode-20 | 4 + tests/ref/fate/filter-removegrain-mode-21 | 4 + tests/ref/fate/filter-removegrain-mode-22 | 4 + tests/ref/fate/filter-removegrain-mode-23 | 4 + tests/ref/fate/filter-removegrain-mode-24 | 4 + tests/ref/fate/filter-scalechroma | 4 + tests/ref/fate/filter-select | 4 + tests/ref/fate/filter-select-alternate | 4 + tests/ref/fate/filter-separatefields | 4 + tests/ref/fate/filter-setpts | 4 + tests/ref/fate/filter-showpalette | 4 + tests/ref/fate/filter-shuffleplanes-dup-luma | 4 + tests/ref/fate/filter-shuffleplanes-swapuv | 4 + tests/ref/fate/filter-stereo3d-abr-ml | 4 + tests/ref/fate/filter-stereo3d-abr-mr | 4 + tests/ref/fate/filter-stereo3d-al-sbsl | 4 + tests/ref/fate/filter-stereo3d-ar-abl | 4 + tests/ref/fate/filter-stereo3d-sbsl-abl | 4 + tests/ref/fate/filter-stereo3d-sbsl-abr | 4 + tests/ref/fate/filter-stereo3d-sbsl-agmc | 4 + tests/ref/fate/filter-stereo3d-sbsl-agmd | 4 + tests/ref/fate/filter-stereo3d-sbsl-agmg | 4 + tests/ref/fate/filter-stereo3d-sbsl-agmh | 4 + tests/ref/fate/filter-stereo3d-sbsl-al | 4 + tests/ref/fate/filter-stereo3d-sbsl-arbg | 4 + tests/ref/fate/filter-stereo3d-sbsl-arcc | 4 + tests/ref/fate/filter-stereo3d-sbsl-arcd | 4 + tests/ref/fate/filter-stereo3d-sbsl-arcg | 4 + tests/ref/fate/filter-stereo3d-sbsl-arch | 4 + tests/ref/fate/filter-stereo3d-sbsl-argg | 4 + tests/ref/fate/filter-stereo3d-sbsl-aybc | 4 + tests/ref/fate/filter-stereo3d-sbsl-aybd | 4 + tests/ref/fate/filter-stereo3d-sbsl-aybg | 4 + tests/ref/fate/filter-stereo3d-sbsl-aybh | 4 + tests/ref/fate/filter-stereo3d-sbsl-sbsr | 4 + tests/ref/fate/filter-tblend | 4 + tests/ref/fate/filter-telecine | 4 + tests/ref/fate/filter-testsrc2-rgb24 | 4 + tests/ref/fate/filter-testsrc2-yuv420p | 4 + tests/ref/fate/filter-testsrc2-yuv444p | 4 + tests/ref/fate/filter-transpose | 4 + tests/ref/fate/filter-trim-duration | 4 + tests/ref/fate/filter-trim-frame | 4 + tests/ref/fate/filter-trim-mixed | 4 + tests/ref/fate/filter-trim-time | 4 + tests/ref/fate/filter-unsharp | 4 + tests/ref/fate/filter-vectorscope_color | 10 +- tests/ref/fate/filter-vectorscope_color2 | 10 +- tests/ref/fate/filter-vectorscope_color3 | 10 +- tests/ref/fate/filter-vectorscope_color4 | 10 +- tests/ref/fate/filter-vectorscope_gray | 10 +- tests/ref/fate/filter-vectorscope_xy | 10 +- tests/ref/fate/filter-w3fdif-complex | 4 + tests/ref/fate/filter-w3fdif-simple | 4 + tests/ref/fate/filter-waveform_column | 104 +- tests/ref/fate/filter-waveform_envelope | 104 +- tests/ref/fate/filter-waveform_row | 104 +- tests/ref/fate/filter-waveform_uv | 104 +- tests/ref/fate/filter-yadif-mode0 | 4 + tests/ref/fate/filter-yadif-mode1 | 4 + tests/ref/fate/filter-yadif10 | 4 + tests/ref/fate/filter-yadif16 | 4 + tests/ref/fate/flic-af11-palette-change | 4 + tests/ref/fate/flic-af12 | 4 + tests/ref/fate/flic-magiccarpet | 4 + tests/ref/fate/flv-demux | 615 +++ tests/ref/fate/force_key_frames | 4 +- tests/ref/fate/fraps-v0 | 4 + tests/ref/fate/fraps-v1 | 4 + tests/ref/fate/fraps-v2 | 4 + tests/ref/fate/fraps-v3 | 4 + tests/ref/fate/fraps-v4 | 4 + tests/ref/fate/fraps-v5 | 4 + tests/ref/fate/frwu | 4 + tests/ref/fate/g2m2 | 4 + tests/ref/fate/g2m3 | 4 + tests/ref/fate/g2m4 | 4 + tests/ref/fate/g722-encode | 6 +- tests/ref/fate/g722dec-1 | 4 + tests/ref/fate/g723_1-dec-1 | 4 + tests/ref/fate/g723_1-dec-2 | 4 + tests/ref/fate/g723_1-dec-3 | 4 + tests/ref/fate/g723_1-dec-4 | 4 + tests/ref/fate/g723_1-dec-5 | 4 + tests/ref/fate/g723_1-dec-6 | 4 + tests/ref/fate/g723_1-dec-7 | 4 + tests/ref/fate/g723_1-dec-8 | 4 + tests/ref/fate/g726-encode-2bit | 6 +- tests/ref/fate/g726-encode-3bit | 6 +- tests/ref/fate/g726-encode-4bit | 6 +- tests/ref/fate/g726-encode-5bit | 6 +- tests/ref/fate/gapless-mp3 | 6 +- tests/ref/fate/gaplessenc-itunes-to-ipod-aac | 43 + tests/ref/fate/gaplessenc-pcm-to-mov-aac | 43 + tests/ref/fate/gaplessinfo-itunes1 | 43 + tests/ref/fate/gaplessinfo-itunes2 | 43 + tests/ref/fate/gif-color | 4 + tests/ref/fate/gif-deal | 31 + tests/ref/fate/gif-demux | 4 + tests/ref/fate/gif-disposal-background | 4 + tests/ref/fate/gif-disposal-restore | 4 + tests/ref/fate/gif-gray | 4 + tests/ref/fate/gifenc-bgr4_byte | 4 + tests/ref/fate/gifenc-bgr8 | 4 + tests/ref/fate/gifenc-gray | 4 + tests/ref/fate/gifenc-pal8 | 4 + tests/ref/fate/gifenc-rgb4_byte | 4 + tests/ref/fate/gifenc-rgb8 | 4 + tests/ref/fate/gsm-ms | 4 + tests/ref/fate/gsm-toast | 4 + tests/ref/fate/h264-attachment-631 | 20 + tests/ref/fate/h264-brokensps-2580 | 84 + tests/ref/fate/h264-conformance-aud_mw_e | 4 + tests/ref/fate/h264-conformance-ba1_ft_c | 6 +- tests/ref/fate/h264-conformance-ba1_sony_d | 4 + tests/ref/fate/h264-conformance-ba2_sony_f | 4 + tests/ref/fate/h264-conformance-ba3_sva_c | 4 + tests/ref/fate/h264-conformance-ba_mw_d | 4 + tests/ref/fate/h264-conformance-bamq1_jvc_c | 4 + tests/ref/fate/h264-conformance-bamq2_jvc_c | 4 + tests/ref/fate/h264-conformance-banm_mw_d | 4 + tests/ref/fate/h264-conformance-basqp1_sony_c | 4 + tests/ref/fate/h264-conformance-caba1_sony_d | 4 + tests/ref/fate/h264-conformance-caba1_sva_b | 4 + tests/ref/fate/h264-conformance-caba2_sony_e | 4 + tests/ref/fate/h264-conformance-caba2_sva_b | 4 + tests/ref/fate/h264-conformance-caba3_sony_c | 4 + tests/ref/fate/h264-conformance-caba3_sva_b | 4 + .../ref/fate/h264-conformance-caba3_toshiba_e | 4 + .../fate/h264-conformance-cabac_mot_fld0_full | 4 + .../fate/h264-conformance-cabac_mot_frm0_full | 4 + .../h264-conformance-cabac_mot_mbaff0_full | 4 + .../h264-conformance-cabac_mot_picaff0_full | 4 + .../ref/fate/h264-conformance-cabaci3_sony_b | 4 + .../ref/fate/h264-conformance-cabast3_sony_e | 4 + .../fate/h264-conformance-cabastbr3_sony_b | 4 + .../ref/fate/h264-conformance-cabref3_sand_d | 4 + tests/ref/fate/h264-conformance-cacqp3_sony_d | 4 + tests/ref/fate/h264-conformance-cafi1_sva_c | 4 + tests/ref/fate/h264-conformance-cama1_sony_c | 4 + .../ref/fate/h264-conformance-cama1_toshiba_b | 4 + tests/ref/fate/h264-conformance-cama1_vtc_c | 4 + tests/ref/fate/h264-conformance-cama2_vtc_b | 4 + tests/ref/fate/h264-conformance-cama3_sand_e | 4 + tests/ref/fate/h264-conformance-cama3_vtc_b | 4 + .../ref/fate/h264-conformance-camaci3_sony_c | 4 + .../fate/h264-conformance-camanl1_toshiba_b | 4 + .../fate/h264-conformance-camanl2_toshiba_b | 4 + .../ref/fate/h264-conformance-camanl3_sand_e | 4 + .../ref/fate/h264-conformance-camasl3_sony_b | 4 + .../fate/h264-conformance-camp_mot_mbaff_l30 | 4 + .../fate/h264-conformance-camp_mot_mbaff_l31 | 4 + tests/ref/fate/h264-conformance-canl1_sony_e | 4 + tests/ref/fate/h264-conformance-canl1_sva_b | 4 + .../ref/fate/h264-conformance-canl1_toshiba_g | 4 + tests/ref/fate/h264-conformance-canl2_sony_e | 4 + tests/ref/fate/h264-conformance-canl2_sva_b | 4 + tests/ref/fate/h264-conformance-canl3_sony_c | 4 + tests/ref/fate/h264-conformance-canl3_sva_b | 4 + tests/ref/fate/h264-conformance-canl4_sva_b | 4 + .../ref/fate/h264-conformance-canlma2_sony_c | 4 + .../ref/fate/h264-conformance-canlma3_sony_c | 4 + .../ref/fate/h264-conformance-capa1_toshiba_b | 4 + .../ref/fate/h264-conformance-capama3_sand_f | 4 + tests/ref/fate/h264-conformance-capcm1_sand_e | 4 + .../ref/fate/h264-conformance-capcmnl1_sand_e | 4 + tests/ref/fate/h264-conformance-capm3_sony_d | 4 + tests/ref/fate/h264-conformance-caqp1_sony_b | 4 + .../h264-conformance-cavlc_mot_fld0_full_b | 4 + .../h264-conformance-cavlc_mot_frm0_full_b | 4 + .../h264-conformance-cavlc_mot_mbaff0_full_b | 4 + .../h264-conformance-cavlc_mot_picaff0_full_b | 4 + .../ref/fate/h264-conformance-cawp1_toshiba_e | 4 + .../ref/fate/h264-conformance-cawp5_toshiba_e | 4 + tests/ref/fate/h264-conformance-ci1_ft_b | 4 + tests/ref/fate/h264-conformance-ci_mw_d | 4 + tests/ref/fate/h264-conformance-cvbs3_sony_c | 4 + .../fate/h264-conformance-cvcanlma2_sony_c | 4 + tests/ref/fate/h264-conformance-cvfc1_sony_c | 4 + tests/ref/fate/h264-conformance-cvfi1_sony_d | 4 + tests/ref/fate/h264-conformance-cvfi1_sva_c | 4 + tests/ref/fate/h264-conformance-cvfi2_sony_h | 4 + tests/ref/fate/h264-conformance-cvfi2_sva_c | 4 + tests/ref/fate/h264-conformance-cvma1_sony_d | 4 + .../ref/fate/h264-conformance-cvma1_toshiba_b | 4 + .../fate/h264-conformance-cvmanl1_toshiba_b | 4 + .../fate/h264-conformance-cvmanl2_toshiba_b | 4 + .../fate/h264-conformance-cvmapaqp3_sony_e | 4 + .../ref/fate/h264-conformance-cvmaqp2_sony_g | 4 + .../ref/fate/h264-conformance-cvmaqp3_sony_d | 4 + .../fate/h264-conformance-cvmp_mot_fld_l30_b | 4 + .../fate/h264-conformance-cvmp_mot_frm_l31_b | 4 + .../ref/fate/h264-conformance-cvnlfi1_sony_c | 4 + .../ref/fate/h264-conformance-cvnlfi2_sony_h | 4 + .../ref/fate/h264-conformance-cvpa1_toshiba_b | 4 + .../ref/fate/h264-conformance-cvpcmnl1_sva_c | 4 + .../ref/fate/h264-conformance-cvpcmnl2_sva_c | 4 + .../ref/fate/h264-conformance-cvwp1_toshiba_e | 4 + .../ref/fate/h264-conformance-cvwp2_toshiba_e | 4 + .../ref/fate/h264-conformance-cvwp3_toshiba_e | 4 + .../ref/fate/h264-conformance-cvwp5_toshiba_e | 4 + tests/ref/fate/h264-conformance-fi1_sony_e | 4 + .../h264-conformance-frext-alphaconformanceg | 4 + .../fate/h264-conformance-frext-bcrm_freh10 | 4 + .../fate/h264-conformance-frext-brcm_freh11 | 4 + .../fate/h264-conformance-frext-brcm_freh3 | 4 + .../fate/h264-conformance-frext-brcm_freh4 | 4 + .../fate/h264-conformance-frext-brcm_freh5 | 4 + .../fate/h264-conformance-frext-brcm_freh8 | 4 + .../fate/h264-conformance-frext-brcm_freh9 | 4 + .../ref/fate/h264-conformance-frext-freh12_b | 4 + tests/ref/fate/h264-conformance-frext-freh1_b | 4 + tests/ref/fate/h264-conformance-frext-freh2_b | 4 + tests/ref/fate/h264-conformance-frext-freh6 | 4 + tests/ref/fate/h264-conformance-frext-freh7_b | 4 + .../fate/h264-conformance-frext-frext01_jvc_d | 4 + .../fate/h264-conformance-frext-frext02_jvc_c | 4 + .../h264-conformance-frext-frext1_panasonic_c | 4 + .../h264-conformance-frext-frext2_panasonic_b | 4 + .../h264-conformance-frext-frext3_panasonic_d | 4 + .../h264-conformance-frext-frext4_panasonic_a | 4 + .../h264-conformance-frext-frext_mmco4_sony_b | 4 + .../fate/h264-conformance-frext-hcaff1_hhi_b | 4 + .../fate/h264-conformance-frext-hcafr1_hhi_c | 4 + .../fate/h264-conformance-frext-hcafr2_hhi_a | 4 + .../fate/h264-conformance-frext-hcafr3_hhi_a | 4 + .../fate/h264-conformance-frext-hcafr4_hhi_a | 4 + .../fate/h264-conformance-frext-hcamff1_hhi_b | 4 + .../h264-conformance-frext-hi422fr10_sony_b | 4 + .../h264-conformance-frext-hi422fr13_sony_b | 4 + .../h264-conformance-frext-hi422fr1_sony_a | 4 + .../h264-conformance-frext-hi422fr6_sony_a | 4 + .../fate/h264-conformance-frext-hpca_brcm_c | 4 + .../fate/h264-conformance-frext-hpcadq_brcm_b | 4 + .../fate/h264-conformance-frext-hpcafl_bcrm_c | 4 + .../h264-conformance-frext-hpcaflnl_bcrm_c | 4 + .../fate/h264-conformance-frext-hpcalq_brcm_b | 4 + .../h264-conformance-frext-hpcamapalq_bcrm_b | 4 + .../h264-conformance-frext-hpcamolq_brcm_b | 4 + .../fate/h264-conformance-frext-hpcanl_brcm_c | 4 + .../h264-conformance-frext-hpcaq2lq_brcm_b | 4 + .../fate/h264-conformance-frext-hpcv_brcm_a | 4 + .../fate/h264-conformance-frext-hpcvfl_bcrm_a | 4 + .../h264-conformance-frext-hpcvflnl_bcrm_a | 4 + .../h264-conformance-frext-hpcvmolq_brcm_b | 4 + .../fate/h264-conformance-frext-hpcvnl_brcm_a | 4 + ...h264-conformance-frext-pph10i1_panasonic_a | 4 + ...h264-conformance-frext-pph10i2_panasonic_a | 4 + ...h264-conformance-frext-pph10i3_panasonic_a | 4 + ...h264-conformance-frext-pph10i4_panasonic_a | 4 + ...h264-conformance-frext-pph10i5_panasonic_a | 4 + ...h264-conformance-frext-pph10i6_panasonic_a | 4 + ...h264-conformance-frext-pph10i7_panasonic_a | 4 + ...264-conformance-frext-pph422i1_panasonic_a | 4 + ...264-conformance-frext-pph422i2_panasonic_a | 4 + ...264-conformance-frext-pph422i3_panasonic_a | 4 + ...264-conformance-frext-pph422i4_panasonic_a | 4 + ...264-conformance-frext-pph422i5_panasonic_a | 4 + ...264-conformance-frext-pph422i6_panasonic_a | 4 + ...264-conformance-frext-pph422i7_panasonic_a | 4 + tests/ref/fate/h264-conformance-hcbp2_hhi_a | 4 + tests/ref/fate/h264-conformance-hcmp1_hhi_a | 4 + tests/ref/fate/h264-conformance-ls_sva_d | 4 + tests/ref/fate/h264-conformance-midr_mw_d | 4 + tests/ref/fate/h264-conformance-mps_mw_a | 4 + tests/ref/fate/h264-conformance-mr1_bt_a | 4 + tests/ref/fate/h264-conformance-mr1_mw_a | 4 + tests/ref/fate/h264-conformance-mr2_mw_a | 4 + .../ref/fate/h264-conformance-mr2_tandberg_e | 4 + .../ref/fate/h264-conformance-mr3_tandberg_b | 4 + .../ref/fate/h264-conformance-mr4_tandberg_c | 4 + .../ref/fate/h264-conformance-mr5_tandberg_c | 4 + tests/ref/fate/h264-conformance-mr6_bt_b | 4 + tests/ref/fate/h264-conformance-mr7_bt_b | 4 + tests/ref/fate/h264-conformance-mr8_bt_b | 4 + tests/ref/fate/h264-conformance-mr9_bt_b | 4 + tests/ref/fate/h264-conformance-mv1_brcm_d | 4 + tests/ref/fate/h264-conformance-nl1_sony_d | 4 + tests/ref/fate/h264-conformance-nl2_sony_h | 4 + tests/ref/fate/h264-conformance-nl3_sva_e | 4 + tests/ref/fate/h264-conformance-nlmq1_jvc_c | 4 + tests/ref/fate/h264-conformance-nlmq2_jvc_c | 4 + tests/ref/fate/h264-conformance-nrf_mw_e | 4 + .../fate/h264-conformance-sharp_mp_field_1_b | 4 + .../fate/h264-conformance-sharp_mp_field_2_b | 4 + .../fate/h264-conformance-sharp_mp_field_3_b | 4 + .../fate/h264-conformance-sharp_mp_paff_1r2 | 4 + .../fate/h264-conformance-sharp_mp_paff_2r | 4 + tests/ref/fate/h264-conformance-sl1_sva_b | 4 + tests/ref/fate/h264-conformance-sva_ba1_b | 4 + tests/ref/fate/h264-conformance-sva_ba2_d | 4 + tests/ref/fate/h264-conformance-sva_base_b | 4 + tests/ref/fate/h264-conformance-sva_cl1_e | 4 + tests/ref/fate/h264-conformance-sva_fm1_e | 4 + tests/ref/fate/h264-conformance-sva_nl1_b | 4 + tests/ref/fate/h264-conformance-sva_nl2_e | 4 + tests/ref/fate/h264-crop-to-container | 6 +- tests/ref/fate/h264-direct-bff | 4 + tests/ref/fate/h264-dts_5frames | 125 + tests/ref/fate/h264-extreme-plane-pred | 6 +- tests/ref/fate/h264-interlace-crop | 4 + tests/ref/fate/h264-invalid-ref-mod | 15 + tests/ref/fate/h264-lossless | 4 + .../h264-reinit-large_420_8-to-small_420_8 | 4 + .../h264-reinit-small_420_8-to-large_444_10 | 4 + .../h264-reinit-small_420_9-to-small_420_8 | 4 + .../h264-reinit-small_422_9-to-small_420_9 | 4 + tests/ref/fate/h264-unescaped-extradata | 15 + tests/ref/fate/h264-xavc-4389 | 22 + tests/ref/fate/hap-chunk | 4 + tests/ref/fate/hap1 | 4 + tests/ref/fate/hap5 | 4 + tests/ref/fate/hapy | 4 + tests/ref/fate/hash | 45 + ...nce-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 | 4 + .../ref/fate/hevc-conformance-AMP_A_Samsung_4 | 4 + .../ref/fate/hevc-conformance-AMP_A_Samsung_6 | 4 + .../ref/fate/hevc-conformance-AMP_B_Samsung_4 | 4 + .../ref/fate/hevc-conformance-AMP_B_Samsung_6 | 4 + .../ref/fate/hevc-conformance-AMP_D_Hisilicon | 4 + .../ref/fate/hevc-conformance-AMP_E_Hisilicon | 4 + .../fate/hevc-conformance-AMP_F_Hisilicon_3 | 4 + tests/ref/fate/hevc-conformance-AMVP_A_MTK_4 | 4 + tests/ref/fate/hevc-conformance-AMVP_B_MTK_4 | 4 + .../fate/hevc-conformance-AMVP_C_Samsung_4 | 4 + .../fate/hevc-conformance-AMVP_C_Samsung_6 | 4 + .../hevc-conformance-BUMPING_A_ericsson_1 | 4 + .../fate/hevc-conformance-CAINIT_A_SHARP_4 | 4 + .../fate/hevc-conformance-CAINIT_B_SHARP_4 | 4 + .../fate/hevc-conformance-CAINIT_C_SHARP_3 | 4 + .../fate/hevc-conformance-CAINIT_D_SHARP_3 | 4 + .../fate/hevc-conformance-CAINIT_E_SHARP_3 | 4 + .../fate/hevc-conformance-CAINIT_F_SHARP_3 | 4 + .../fate/hevc-conformance-CAINIT_G_SHARP_3 | 4 + .../fate/hevc-conformance-CAINIT_H_SHARP_3 | 4 + .../fate/hevc-conformance-CIP_A_Panasonic_3 | 4 + .../fate/hevc-conformance-CIP_C_Panasonic_2 | 4 + .../fate/hevc-conformance-CONFWIN_A_Sony_1 | 4 + .../hevc-conformance-DBLK_A_MAIN10_VIXS_3 | 4 + tests/ref/fate/hevc-conformance-DBLK_A_SONY_3 | 4 + tests/ref/fate/hevc-conformance-DBLK_B_SONY_3 | 4 + tests/ref/fate/hevc-conformance-DBLK_C_SONY_3 | 4 + tests/ref/fate/hevc-conformance-DBLK_D_VIXS_2 | 4 + tests/ref/fate/hevc-conformance-DBLK_E_VIXS_2 | 4 + tests/ref/fate/hevc-conformance-DBLK_F_VIXS_2 | 4 + tests/ref/fate/hevc-conformance-DBLK_G_VIXS_2 | 4 + .../fate/hevc-conformance-DELTAQP_A_BRCM_4 | 4 + .../fate/hevc-conformance-DELTAQP_B_SONY_3 | 4 + .../fate/hevc-conformance-DELTAQP_C_SONY_3 | 4 + .../ref/fate/hevc-conformance-DSLICE_A_HHI_5 | 4 + .../ref/fate/hevc-conformance-DSLICE_B_HHI_5 | 4 + .../ref/fate/hevc-conformance-DSLICE_C_HHI_5 | 4 + .../fate/hevc-conformance-ENTP_A_Qualcomm_1 | 4 + .../fate/hevc-conformance-ENTP_B_Qualcomm_1 | 4 + .../fate/hevc-conformance-ENTP_C_Qualcomm_1 | 4 + .../fate/hevc-conformance-EXT_A_ericsson_4 | 4 + .../ref/fate/hevc-conformance-FILLER_A_Sony_1 | 4 + .../ref/fate/hevc-conformance-HRD_A_Fujitsu_2 | 4 + .../ref/fate/hevc-conformance-HRD_A_Fujitsu_3 | 4 + .../ref/fate/hevc-conformance-INITQP_A_Sony_1 | 4 + .../ref/fate/hevc-conformance-INITQP_B_Sony_1 | 4 + .../ref/fate/hevc-conformance-IPCM_A_RExt_NEC | 4 + .../ref/fate/hevc-conformance-IPCM_B_RExt_NEC | 4 + .../fate/hevc-conformance-IPRED_A_docomo_2 | 4 + .../ref/fate/hevc-conformance-IPRED_B_Nokia_3 | 4 + .../hevc-conformance-IPRED_C_Mitsubishi_3 | 4 + tests/ref/fate/hevc-conformance-LS_A_Orange_2 | 4 + tests/ref/fate/hevc-conformance-LS_B_ORANGE_4 | 4 + .../hevc-conformance-LTRPSPS_A_Qualcomm_1 | 4 + .../ref/fate/hevc-conformance-MAXBINS_A_TI_4 | 4 + .../ref/fate/hevc-conformance-MAXBINS_B_TI_4 | 4 + .../ref/fate/hevc-conformance-MAXBINS_C_TI_4 | 4 + tests/ref/fate/hevc-conformance-MERGE_A_TI_3 | 4 + tests/ref/fate/hevc-conformance-MERGE_B_TI_3 | 4 + tests/ref/fate/hevc-conformance-MERGE_C_TI_3 | 4 + tests/ref/fate/hevc-conformance-MERGE_D_TI_3 | 4 + tests/ref/fate/hevc-conformance-MERGE_E_TI_3 | 4 + tests/ref/fate/hevc-conformance-MERGE_F_MTK_4 | 4 + tests/ref/fate/hevc-conformance-MERGE_G_HHI_4 | 4 + .../fate/hevc-conformance-MVCLIP_A_qualcomm_3 | 4 + .../hevc-conformance-MVDL1ZERO_A_docomo_3 | 4 + .../fate/hevc-conformance-MVEDGE_A_qualcomm_3 | 4 + ...hevc-conformance-Main_422_10_A_RExt_Sony_1 | 4 + ...hevc-conformance-Main_422_10_B_RExt_Sony_1 | 4 + .../fate/hevc-conformance-NUT_A_ericsson_5 | 4 + .../hevc-conformance-NoOutPrior_A_Qualcomm_1 | 4 + .../hevc-conformance-NoOutPrior_B_Qualcomm_1 | 4 + .../fate/hevc-conformance-OPFLAG_A_Qualcomm_1 | 4 + .../fate/hevc-conformance-OPFLAG_B_Qualcomm_1 | 4 + .../fate/hevc-conformance-OPFLAG_C_Qualcomm_1 | 4 + ...c-conformance-PERSIST_RPARAM_A_RExt_Sony_1 | 4 + .../fate/hevc-conformance-PICSIZE_A_Bossen_1 | 4 + .../fate/hevc-conformance-PICSIZE_B_Bossen_1 | 4 + .../fate/hevc-conformance-PICSIZE_C_Bossen_1 | 4 + .../fate/hevc-conformance-PICSIZE_D_Bossen_1 | 4 + tests/ref/fate/hevc-conformance-PMERGE_A_TI_3 | 4 + tests/ref/fate/hevc-conformance-PMERGE_B_TI_3 | 4 + tests/ref/fate/hevc-conformance-PMERGE_C_TI_3 | 4 + tests/ref/fate/hevc-conformance-PMERGE_D_TI_3 | 4 + tests/ref/fate/hevc-conformance-PMERGE_E_TI_3 | 4 + .../ref/fate/hevc-conformance-POC_A_Bossen_3 | 4 + .../fate/hevc-conformance-PPS_A_qualcomm_7 | 4 + tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 | 4 + tests/ref/fate/hevc-conformance-PS_B_VIDYO_3 | 4 + .../hevc-conformance-QMATRIX_A_RExt_Sony_1 | 4 + .../ref/fate/hevc-conformance-RAP_A_docomo_4 | 4 + .../ref/fate/hevc-conformance-RAP_B_Bossen_1 | 4 + .../fate/hevc-conformance-RPLM_A_qualcomm_4 | 4 + .../fate/hevc-conformance-RPLM_B_qualcomm_4 | 4 + .../ref/fate/hevc-conformance-RPS_A_docomo_4 | 4 + .../fate/hevc-conformance-RPS_B_qualcomm_5 | 4 + .../fate/hevc-conformance-RPS_C_ericsson_5 | 4 + .../fate/hevc-conformance-RPS_D_ericsson_6 | 4 + .../fate/hevc-conformance-RPS_E_qualcomm_5 | 4 + .../ref/fate/hevc-conformance-RPS_F_docomo_1 | 4 + tests/ref/fate/hevc-conformance-RQT_A_HHI_4 | 4 + tests/ref/fate/hevc-conformance-RQT_B_HHI_4 | 4 + tests/ref/fate/hevc-conformance-RQT_C_HHI_4 | 4 + tests/ref/fate/hevc-conformance-RQT_D_HHI_4 | 4 + tests/ref/fate/hevc-conformance-RQT_E_HHI_4 | 4 + tests/ref/fate/hevc-conformance-RQT_F_HHI_4 | 4 + tests/ref/fate/hevc-conformance-RQT_G_HHI_4 | 4 + .../fate/hevc-conformance-SAO_A_MediaTek_4 | 4 + .../hevc-conformance-SAO_A_RExt_MediaTek_1 | 4 + .../fate/hevc-conformance-SAO_B_MediaTek_5 | 4 + .../ref/fate/hevc-conformance-SAO_C_Samsung_4 | 4 + .../ref/fate/hevc-conformance-SAO_C_Samsung_5 | 4 + .../ref/fate/hevc-conformance-SAO_D_Samsung_4 | 4 + .../ref/fate/hevc-conformance-SAO_D_Samsung_5 | 4 + tests/ref/fate/hevc-conformance-SAO_E_Canon_4 | 4 + tests/ref/fate/hevc-conformance-SAO_F_Canon_3 | 4 + tests/ref/fate/hevc-conformance-SAO_G_Canon_3 | 4 + .../ref/fate/hevc-conformance-SDH_A_Orange_3 | 4 + .../ref/fate/hevc-conformance-SLICES_A_Rovi_3 | 4 + .../ref/fate/hevc-conformance-SLIST_A_Sony_4 | 4 + .../ref/fate/hevc-conformance-SLIST_B_Sony_8 | 4 + .../ref/fate/hevc-conformance-SLIST_C_Sony_3 | 4 + .../ref/fate/hevc-conformance-SLIST_D_Sony_9 | 4 + .../fate/hevc-conformance-SLPPLP_A_VIDYO_1 | 4 + .../fate/hevc-conformance-SLPPLP_A_VIDYO_2 | 4 + .../fate/hevc-conformance-STRUCT_A_Samsung_5 | 4 + .../fate/hevc-conformance-STRUCT_B_Samsung_4 | 4 + .../fate/hevc-conformance-STRUCT_B_Samsung_6 | 4 + .../ref/fate/hevc-conformance-TILES_A_Cisco_2 | 4 + .../ref/fate/hevc-conformance-TILES_B_Cisco_1 | 4 + tests/ref/fate/hevc-conformance-TMVP_A_MS_3 | 4 + .../ref/fate/hevc-conformance-TSCL_A_VIDYO_5 | 4 + .../ref/fate/hevc-conformance-TSCL_B_VIDYO_4 | 4 + tests/ref/fate/hevc-conformance-TSKIP_A_MS_3 | 4 + .../fate/hevc-conformance-TUSIZE_A_Samsung_1 | 4 + .../ref/fate/hevc-conformance-VPSID_A_VIDYO_1 | 4 + .../ref/fate/hevc-conformance-VPSID_A_VIDYO_2 | 4 + .../hevc-conformance-WPP_A_ericsson_MAIN10_2 | 4 + .../hevc-conformance-WPP_A_ericsson_MAIN_2 | 4 + .../hevc-conformance-WPP_B_ericsson_MAIN10_2 | 4 + .../hevc-conformance-WPP_B_ericsson_MAIN_2 | 4 + .../hevc-conformance-WPP_C_ericsson_MAIN10_2 | 4 + .../hevc-conformance-WPP_C_ericsson_MAIN_2 | 4 + .../hevc-conformance-WPP_D_ericsson_MAIN10_2 | 4 + .../hevc-conformance-WPP_D_ericsson_MAIN_2 | 4 + .../hevc-conformance-WPP_E_ericsson_MAIN10_2 | 4 + .../hevc-conformance-WPP_E_ericsson_MAIN_2 | 4 + .../hevc-conformance-WPP_F_ericsson_MAIN10_2 | 4 + .../hevc-conformance-WPP_F_ericsson_MAIN_2 | 4 + .../hevc-conformance-WP_A_MAIN10_Toshiba_3 | 4 + .../ref/fate/hevc-conformance-WP_A_Toshiba_3 | 4 + .../ref/fate/hevc-conformance-WP_B_Toshiba_3 | 4 + .../hevc-conformance-WP_MAIN10_B_Toshiba_3 | 4 + tests/ref/fate/hevc-conformance-cip_B_NEC_3 | 4 + tests/ref/fate/hevc-conformance-ipcm_A_NEC_3 | 4 + tests/ref/fate/hevc-conformance-ipcm_B_NEC_3 | 4 + tests/ref/fate/hevc-conformance-ipcm_C_NEC_3 | 4 + tests/ref/fate/hevc-conformance-ipcm_D_NEC_3 | 4 + tests/ref/fate/hevc-conformance-ipcm_E_NEC_2 | 4 + .../fate/hevc-paramchange-yuv420p-yuv420p10 | 4 + tests/ref/fate/id-cin-video | 8 + tests/ref/fate/iff-byterun1 | 4 + tests/ref/fate/iff-ilbm | 4 + tests/ref/fate/indeo2-delta | 119 + tests/ref/fate/{indeo2 => indeo2-intra} | 4 + tests/ref/fate/{indeo3 => indeo3-1} | 4 + tests/ref/fate/indeo3-2 | 4 + tests/ref/fate/indeo4 | 4 + tests/ref/fate/indeo5 | 4 + tests/ref/fate/interplay-mve-16bit | 4 + tests/ref/fate/interplay-mve-8bit | 4 + tests/ref/fate/{rscc => iscc} | 4 + tests/ref/fate/iv8-demux | 52 +- tests/ref/fate/jpeg2000-dcinema | 4 + tests/ref/fate/jv | 4 + tests/ref/fate/jv-demux | 8 + tests/ref/fate/kgv1 | 4 + tests/ref/fate/kmvc | 4 + tests/ref/fate/lagarith-red | 4 + tests/ref/fate/lagarith-rgb24 | 4 + tests/ref/fate/lagarith-rgb32 | 4 + tests/ref/fate/lagarith-ticket4119 | 8 + tests/ref/fate/lagarith-ticket4119-cfr | 79 + tests/ref/fate/lagarith-ticket4119-drop | 8 + tests/ref/fate/lagarith-ticket4119-pass | 8 + tests/ref/fate/lagarith-ticket4119-vfr | 8 + tests/ref/fate/lagarith-yuy2 | 4 + tests/ref/fate/lagarith-yv12 | 4 + tests/ref/fate/lmlm4-demux | 8 + tests/ref/fate/loco-rgb | 4 + tests/ref/fate/loco-yuy2 | 4 + tests/ref/fate/lossless-wma24-1 | 1 + tests/ref/fate/lossless-wma24-2 | 1 + tests/ref/fate/lossless-wma24-rawtile | 1 + tests/ref/fate/m4v | 47 + tests/ref/fate/m4v-cfr | 47 + tests/ref/fate/maxis-xa | 4 + tests/ref/fate/mdec | 4 + tests/ref/fate/mdec-v3 | 4 + tests/ref/fate/mimic | 4 + tests/ref/fate/mjpegb | 4 + tests/ref/fate/mkv | 8 + tests/ref/fate/mkv-1242 | 47 + tests/ref/fate/motionpixels | 4 + tests/ref/fate/mov-mp3-demux | 293 ++ tests/ref/fate/movenc | 147 +- tests/ref/fate/mpeg2-field-enc | 4 + tests/ref/fate/mpeg4-packed | 21 + .../fate/mpeg4-resolution-change-down-down | 6 +- .../ref/fate/mpeg4-resolution-change-down-up | 6 +- .../ref/fate/mpeg4-resolution-change-up-down | 6 +- tests/ref/fate/mpeg4-resolution-change-up-up | 6 +- tests/ref/fate/msmpeg4v1 | 4 + tests/ref/fate/msrle-8bit | 4 + tests/ref/fate/mss1-pal | 25 + tests/ref/fate/mss2-pal | 4 + tests/ref/fate/mss2-pals | 4 + tests/ref/fate/mss2-rgb555 | 4 + tests/ref/fate/mss2-rgb555s | 4 + tests/ref/fate/mss2-wmv | 4 + tests/ref/fate/msvideo1-16bit | 4 + tests/ref/fate/msvideo1-8bit | 4 + tests/ref/fate/mszh | 4 + tests/ref/fate/mts2 | 133 + tests/ref/fate/mts2-xesc | 22 + tests/ref/fate/mtv | 8 + tests/ref/fate/mv-mvc1 | 4 + tests/ref/fate/mv-mvc2 | 4 + tests/ref/fate/mv-sgirle | 4 + tests/ref/fate/mxf-demux | 8 + tests/ref/fate/mxf-essencegroup-demux | 4 + tests/ref/fate/mxpeg | 4 + tests/ref/fate/nc-demux | 186 +- tests/ref/fate/nsv-demux | 8 + tests/ref/fate/nuv-rtjpeg | 4 + tests/ref/fate/nuv-rtjpeg-fh | 4 + tests/ref/fate/oggopus-demux | 47 + tests/ref/fate/oggvp8-demux | 4 + tests/ref/fate/on2avc | 4 + tests/ref/fate/paf-audio | 4 + tests/ref/fate/paf-demux | 8 + tests/ref/fate/paf-video | 4 + tests/ref/fate/parseutils | 151 + tests/ref/fate/pcm-planar | 4 + tests/ref/fate/pcm_dvd | 4 + tests/ref/fate/pict | 4 + tests/ref/fate/pictor | 4 + tests/ref/fate/pmp-demux | 4 + tests/ref/fate/png-gray16 | 4 + tests/ref/fate/png-gray8 | 4 + tests/ref/fate/png-rgb24 | 4 + tests/ref/fate/png-rgb48 | 4 + tests/ref/fate/png-rgba | 4 + tests/ref/fate/png-ya16 | 4 + tests/ref/fate/png-ya8 | 4 + tests/ref/fate/pngparser | 4 + tests/ref/fate/prores-422 | 4 + tests/ref/fate/prores-422_hq | 4 + tests/ref/fate/prores-422_lt | 4 + tests/ref/fate/prores-422_proxy | 4 + tests/ref/fate/prores-alpha | 4 + tests/ref/fate/prores-alpha_skip | 4 + tests/ref/fate/prores-gray | 15 + tests/ref/fate/prores-transparency | 8 + tests/ref/fate/prores-transparency_skip | 8 + tests/ref/fate/psx-str-demux | 8 + tests/ref/fate/ptx | 4 + tests/ref/fate/pva-demux | 8 + tests/ref/fate/qpeg | 4 + tests/ref/fate/qtrle-16bit | 4 + tests/ref/fate/qtrle-1bit | 4 + tests/ref/fate/qtrle-24bit | 4 + tests/ref/fate/qtrle-2bit | 4 + tests/ref/fate/qtrle-32bit | 4 + tests/ref/fate/qtrle-4bit | 4 + tests/ref/fate/qtrle-8bit | 4 + tests/ref/fate/quickdraw | 4 + tests/ref/fate/r210 | 4 + tests/ref/fate/ra3-144 | 4 + tests/ref/fate/redcode-demux | 8 + tests/ref/fate/rgbapng-4816 | 6 + tests/ref/fate/rl2 | 4 + tests/ref/fate/roqvideo | 4 + tests/ref/fate/rpza | 4 + tests/ref/fate/rscc-16bit | 20 + tests/ref/fate/rscc-24bit | 6 + tests/ref/fate/rscc-32bit | 13 + tests/ref/fate/rv20-1239 | 95 + tests/ref/fate/rv30 | 4 + tests/ref/fate/rv40 | 4 + tests/ref/fate/sanm | 4 + tests/ref/fate/screenpresso-16bit | 13 + .../fate/{screenpresso => screenpresso-24bit} | 4 + tests/ref/fate/screenpresso-32bit | 9 + tests/ref/fate/sgi-gray16 | 4 + tests/ref/fate/sgi-gray16-rle | 4 + tests/ref/fate/sgi-gray8 | 4 + tests/ref/fate/sgi-gray8-rle | 4 + tests/ref/fate/sgi-rgb24 | 4 + tests/ref/fate/sgi-rgb24-rle | 4 + tests/ref/fate/sgi-rgb48 | 4 + tests/ref/fate/sgi-rgb48-rle | 4 + tests/ref/fate/sgi-rgba | 4 + tests/ref/fate/sgi-rgba-rle | 4 + tests/ref/fate/sgi-rgba64 | 4 + tests/ref/fate/sgi-rgba64-rle | 4 + tests/ref/fate/sierra-vmd-audio | 4 + tests/ref/fate/sierra-vmd-video | 4 + tests/ref/fate/siff-demux | 8 + tests/ref/fate/smacker-audio | 4 + tests/ref/fate/smacker-video | 4 + tests/ref/fate/smc | 4 + tests/ref/fate/smjpeg-demux | 8 + tests/ref/fate/smvjpeg | 4 + tests/ref/fate/source | 1 - tests/ref/fate/sp5x | 8 + tests/ref/fate/sub-charenc | 2 +- tests/ref/fate/sub-textenc | 66 +- tests/ref/fate/sub-webvttenc | 66 +- tests/ref/fate/sub2video | 6 + tests/ref/fate/sunraster-1bit-raw | 4 + tests/ref/fate/sunraster-1bit-rle | 4 + tests/ref/fate/sunraster-24bit-raw | 4 + tests/ref/fate/sunraster-24bit-rle | 4 + tests/ref/fate/sunraster-8bit-raw | 4 + tests/ref/fate/sunraster-8bit-rle | 4 + tests/ref/fate/sunraster-8bit_gray-raw | 4 + tests/ref/fate/svq1 | 4 + tests/ref/fate/svq1-headerswap | 4 + tests/ref/fate/svq3 | 4 + tests/ref/fate/targa-conformance-CBW8 | 4 + tests/ref/fate/targa-conformance-CCM8 | 4 + tests/ref/fate/targa-conformance-CTC16 | 4 + tests/ref/fate/targa-conformance-CTC24 | 4 + tests/ref/fate/targa-conformance-CTC32 | 4 + tests/ref/fate/targa-conformance-UBW8 | 4 + tests/ref/fate/targa-conformance-UCM8 | 4 + tests/ref/fate/targa-conformance-UTC16 | 4 + tests/ref/fate/targa-conformance-UTC24 | 4 + tests/ref/fate/targa-conformance-UTC32 | 4 + tests/ref/fate/targa-top-to-bottom | 4 + tests/ref/fate/tdsc | 4 + tests/ref/fate/theora-coeff-level64 | 4 + tests/ref/fate/theora-offset | 4 + tests/ref/fate/thp | 4 + tests/ref/fate/tiertex-seq | 8 + tests/ref/fate/tiff-fax-g3 | 4 + tests/ref/fate/tiff-fax-g3s | 4 + tests/ref/fate/tmv | 8 + tests/ref/fate/truemotion1-15 | 4 + tests/ref/fate/truemotion1-24 | 4 + tests/ref/fate/truemotion2 | 4 + tests/ref/fate/ts-demux | 31 + tests/ref/fate/ts-opus-demux | 518 ++ tests/ref/fate/tscc-15bit | 8 + tests/ref/fate/tscc-32bit | 4 + tests/ref/fate/tscc2-avi | 4 + tests/ref/fate/tscc2-mov | 4 + tests/ref/fate/txd-16bpp | 4 + tests/ref/fate/txd-odd | 4 + tests/ref/fate/txd-pal8 | 4 + tests/ref/fate/ulti | 4 + tests/ref/fate/utvideo_rgb_left | 4 + tests/ref/fate/utvideo_rgb_median | 4 + tests/ref/fate/utvideo_rgba_left | 4 + tests/ref/fate/utvideo_rgba_median | 4 + tests/ref/fate/utvideo_rgba_single_symbol | 4 + tests/ref/fate/utvideo_yuv420_left | 4 + tests/ref/fate/utvideo_yuv420_median | 4 + tests/ref/fate/utvideo_yuv422_left | 4 + tests/ref/fate/utvideo_yuv422_median | 4 + tests/ref/fate/utvideoenc_rgb_left | 7 +- tests/ref/fate/utvideoenc_rgb_median | 7 +- tests/ref/fate/utvideoenc_rgb_none | 7 +- tests/ref/fate/utvideoenc_rgba_left | 7 +- tests/ref/fate/utvideoenc_rgba_median | 7 +- tests/ref/fate/utvideoenc_rgba_none | 7 +- tests/ref/fate/utvideoenc_yuv420_left | 7 +- tests/ref/fate/utvideoenc_yuv420_median | 7 +- tests/ref/fate/utvideoenc_yuv420_none | 7 +- tests/ref/fate/utvideoenc_yuv422_left | 7 +- tests/ref/fate/utvideoenc_yuv422_median | 7 +- tests/ref/fate/utvideoenc_yuv422_none | 7 +- tests/ref/fate/v210 | 4 + tests/ref/fate/v410dec | 4 + tests/ref/fate/vb | 4 + tests/ref/fate/vble | 4 + tests/ref/fate/vc1-ism | 4 + tests/ref/fate/vc1_ilaced_twomv | 4 + tests/ref/fate/vc1_sa00040 | 4 + tests/ref/fate/vc1_sa00050 | 4 + tests/ref/fate/vc1_sa10091 | 4 + tests/ref/fate/vc1_sa10143 | 4 + tests/ref/fate/vc1_sa20021 | 4 + tests/ref/fate/vcr1 | 4 + tests/ref/fate/vcr2 | 4 + tests/ref/fate/videoxl | 4 + tests/ref/fate/vmnc-16bit | 4 + tests/ref/fate/vmnc-32bit | 4 + tests/ref/fate/vorbis-1833-chapters | 36 + tests/ref/fate/vp31 | 4 + tests/ref/fate/vp5 | 4 + tests/ref/fate/vp60 | 4 + tests/ref/fate/vp61 | 4 + tests/ref/fate/vp6a | 4 + tests/ref/fate/vp6a-skip_alpha | 4 + tests/ref/fate/vp6f | 4 + tests/ref/fate/vp7 | 4 + tests/ref/fate/vp8-2451 | 112 + tests/ref/fate/vp8-alpha | 4 + tests/ref/fate/vp8-sign-bias | 6 +- tests/ref/fate/vp8-size-change | 6 +- tests/ref/fate/vp8-test-vector-001 | 6 +- tests/ref/fate/vp8-test-vector-002 | 6 +- tests/ref/fate/vp8-test-vector-003 | 6 +- tests/ref/fate/vp8-test-vector-004 | 6 +- tests/ref/fate/vp8-test-vector-005 | 6 +- tests/ref/fate/vp8-test-vector-006 | 6 +- tests/ref/fate/vp8-test-vector-007 | 6 +- tests/ref/fate/vp8-test-vector-008 | 6 +- tests/ref/fate/vp8-test-vector-009 | 6 +- tests/ref/fate/vp8-test-vector-010 | 6 +- tests/ref/fate/vp8-test-vector-011 | 6 +- tests/ref/fate/vp8-test-vector-012 | 6 +- tests/ref/fate/vp8-test-vector-013 | 6 +- tests/ref/fate/vp8-test-vector-014 | 6 +- tests/ref/fate/vp8-test-vector-015 | 6 +- tests/ref/fate/vp8-test-vector-016 | 6 +- tests/ref/fate/vp8-test-vector-017 | 6 +- tests/ref/fate/vp9-00-quantizer-00 | 6 +- tests/ref/fate/vp9-00-quantizer-01 | 6 +- tests/ref/fate/vp9-00-quantizer-02 | 6 +- tests/ref/fate/vp9-00-quantizer-03 | 6 +- tests/ref/fate/vp9-00-quantizer-04 | 6 +- tests/ref/fate/vp9-00-quantizer-05 | 6 +- tests/ref/fate/vp9-00-quantizer-06 | 6 +- tests/ref/fate/vp9-00-quantizer-07 | 6 +- tests/ref/fate/vp9-00-quantizer-08 | 6 +- tests/ref/fate/vp9-00-quantizer-09 | 6 +- tests/ref/fate/vp9-00-quantizer-10 | 6 +- tests/ref/fate/vp9-00-quantizer-11 | 6 +- tests/ref/fate/vp9-00-quantizer-12 | 6 +- tests/ref/fate/vp9-00-quantizer-13 | 6 +- tests/ref/fate/vp9-00-quantizer-14 | 6 +- tests/ref/fate/vp9-00-quantizer-15 | 6 +- tests/ref/fate/vp9-00-quantizer-16 | 6 +- tests/ref/fate/vp9-00-quantizer-17 | 6 +- tests/ref/fate/vp9-00-quantizer-18 | 6 +- tests/ref/fate/vp9-00-quantizer-19 | 6 +- tests/ref/fate/vp9-00-quantizer-20 | 6 +- tests/ref/fate/vp9-00-quantizer-21 | 6 +- tests/ref/fate/vp9-00-quantizer-22 | 6 +- tests/ref/fate/vp9-00-quantizer-23 | 6 +- tests/ref/fate/vp9-00-quantizer-24 | 6 +- tests/ref/fate/vp9-00-quantizer-25 | 6 +- tests/ref/fate/vp9-00-quantizer-26 | 6 +- tests/ref/fate/vp9-00-quantizer-27 | 6 +- tests/ref/fate/vp9-00-quantizer-28 | 6 +- tests/ref/fate/vp9-00-quantizer-29 | 6 +- tests/ref/fate/vp9-00-quantizer-30 | 6 +- tests/ref/fate/vp9-00-quantizer-31 | 6 +- tests/ref/fate/vp9-00-quantizer-32 | 6 +- tests/ref/fate/vp9-00-quantizer-33 | 6 +- tests/ref/fate/vp9-00-quantizer-34 | 6 +- tests/ref/fate/vp9-00-quantizer-35 | 6 +- tests/ref/fate/vp9-00-quantizer-36 | 6 +- tests/ref/fate/vp9-00-quantizer-37 | 6 +- tests/ref/fate/vp9-00-quantizer-38 | 6 +- tests/ref/fate/vp9-00-quantizer-39 | 6 +- tests/ref/fate/vp9-00-quantizer-40 | 6 +- tests/ref/fate/vp9-00-quantizer-41 | 6 +- tests/ref/fate/vp9-00-quantizer-42 | 6 +- tests/ref/fate/vp9-00-quantizer-43 | 6 +- tests/ref/fate/vp9-00-quantizer-44 | 6 +- tests/ref/fate/vp9-00-quantizer-45 | 6 +- tests/ref/fate/vp9-00-quantizer-46 | 6 +- tests/ref/fate/vp9-00-quantizer-47 | 6 +- tests/ref/fate/vp9-00-quantizer-48 | 6 +- tests/ref/fate/vp9-00-quantizer-49 | 6 +- tests/ref/fate/vp9-00-quantizer-50 | 6 +- tests/ref/fate/vp9-00-quantizer-51 | 6 +- tests/ref/fate/vp9-00-quantizer-52 | 6 +- tests/ref/fate/vp9-00-quantizer-53 | 6 +- tests/ref/fate/vp9-00-quantizer-54 | 6 +- tests/ref/fate/vp9-00-quantizer-55 | 6 +- tests/ref/fate/vp9-00-quantizer-56 | 6 +- tests/ref/fate/vp9-00-quantizer-57 | 6 +- tests/ref/fate/vp9-00-quantizer-58 | 6 +- tests/ref/fate/vp9-00-quantizer-59 | 6 +- tests/ref/fate/vp9-00-quantizer-60 | 6 +- tests/ref/fate/vp9-00-quantizer-61 | 6 +- tests/ref/fate/vp9-00-quantizer-62 | 6 +- tests/ref/fate/vp9-00-quantizer-63 | 6 +- tests/ref/fate/vp9-01-sharpness-1 | 6 +- tests/ref/fate/vp9-01-sharpness-2 | 6 +- tests/ref/fate/vp9-01-sharpness-3 | 6 +- tests/ref/fate/vp9-01-sharpness-4 | 6 +- tests/ref/fate/vp9-01-sharpness-5 | 6 +- tests/ref/fate/vp9-01-sharpness-6 | 6 +- tests/ref/fate/vp9-01-sharpness-7 | 6 +- tests/ref/fate/vp9-02-size-08x08 | 6 +- tests/ref/fate/vp9-02-size-08x10 | 6 +- tests/ref/fate/vp9-02-size-08x16 | 6 +- tests/ref/fate/vp9-02-size-08x18 | 6 +- tests/ref/fate/vp9-02-size-08x32 | 6 +- tests/ref/fate/vp9-02-size-08x34 | 6 +- tests/ref/fate/vp9-02-size-08x64 | 6 +- tests/ref/fate/vp9-02-size-08x66 | 6 +- tests/ref/fate/vp9-02-size-10x08 | 6 +- tests/ref/fate/vp9-02-size-10x10 | 6 +- tests/ref/fate/vp9-02-size-10x16 | 6 +- tests/ref/fate/vp9-02-size-10x18 | 6 +- tests/ref/fate/vp9-02-size-10x32 | 6 +- tests/ref/fate/vp9-02-size-10x34 | 6 +- tests/ref/fate/vp9-02-size-10x64 | 6 +- tests/ref/fate/vp9-02-size-10x66 | 6 +- tests/ref/fate/vp9-02-size-16x08 | 6 +- tests/ref/fate/vp9-02-size-16x10 | 6 +- tests/ref/fate/vp9-02-size-16x16 | 6 +- tests/ref/fate/vp9-02-size-16x18 | 6 +- tests/ref/fate/vp9-02-size-16x32 | 6 +- tests/ref/fate/vp9-02-size-16x34 | 6 +- tests/ref/fate/vp9-02-size-16x64 | 6 +- tests/ref/fate/vp9-02-size-16x66 | 6 +- tests/ref/fate/vp9-02-size-18x08 | 6 +- tests/ref/fate/vp9-02-size-18x10 | 6 +- tests/ref/fate/vp9-02-size-18x16 | 6 +- tests/ref/fate/vp9-02-size-18x18 | 6 +- tests/ref/fate/vp9-02-size-18x32 | 6 +- tests/ref/fate/vp9-02-size-18x34 | 6 +- tests/ref/fate/vp9-02-size-18x64 | 6 +- tests/ref/fate/vp9-02-size-18x66 | 6 +- tests/ref/fate/vp9-02-size-32x08 | 6 +- tests/ref/fate/vp9-02-size-32x10 | 6 +- tests/ref/fate/vp9-02-size-32x16 | 6 +- tests/ref/fate/vp9-02-size-32x18 | 6 +- tests/ref/fate/vp9-02-size-32x32 | 6 +- tests/ref/fate/vp9-02-size-32x34 | 6 +- tests/ref/fate/vp9-02-size-32x64 | 6 +- tests/ref/fate/vp9-02-size-32x66 | 6 +- tests/ref/fate/vp9-02-size-34x08 | 6 +- tests/ref/fate/vp9-02-size-34x10 | 6 +- tests/ref/fate/vp9-02-size-34x16 | 6 +- tests/ref/fate/vp9-02-size-34x18 | 6 +- tests/ref/fate/vp9-02-size-34x32 | 6 +- tests/ref/fate/vp9-02-size-34x34 | 6 +- tests/ref/fate/vp9-02-size-34x64 | 6 +- tests/ref/fate/vp9-02-size-34x66 | 6 +- tests/ref/fate/vp9-02-size-64x08 | 6 +- tests/ref/fate/vp9-02-size-64x10 | 6 +- tests/ref/fate/vp9-02-size-64x16 | 6 +- tests/ref/fate/vp9-02-size-64x18 | 6 +- tests/ref/fate/vp9-02-size-64x32 | 6 +- tests/ref/fate/vp9-02-size-64x34 | 6 +- tests/ref/fate/vp9-02-size-64x64 | 6 +- tests/ref/fate/vp9-02-size-64x66 | 6 +- tests/ref/fate/vp9-02-size-66x08 | 6 +- tests/ref/fate/vp9-02-size-66x10 | 6 +- tests/ref/fate/vp9-02-size-66x16 | 6 +- tests/ref/fate/vp9-02-size-66x18 | 6 +- tests/ref/fate/vp9-02-size-66x32 | 6 +- tests/ref/fate/vp9-02-size-66x34 | 6 +- tests/ref/fate/vp9-02-size-66x64 | 6 +- tests/ref/fate/vp9-02-size-66x66 | 6 +- tests/ref/fate/vp9-03-deltaq | 6 +- tests/ref/fate/vp9-03-size-196x196 | 6 +- tests/ref/fate/vp9-03-size-196x198 | 6 +- tests/ref/fate/vp9-03-size-196x200 | 6 +- tests/ref/fate/vp9-03-size-196x202 | 6 +- tests/ref/fate/vp9-03-size-196x208 | 6 +- tests/ref/fate/vp9-03-size-196x210 | 6 +- tests/ref/fate/vp9-03-size-196x224 | 6 +- tests/ref/fate/vp9-03-size-196x226 | 6 +- tests/ref/fate/vp9-03-size-198x196 | 6 +- tests/ref/fate/vp9-03-size-198x198 | 6 +- tests/ref/fate/vp9-03-size-198x200 | 6 +- tests/ref/fate/vp9-03-size-198x202 | 6 +- tests/ref/fate/vp9-03-size-198x208 | 6 +- tests/ref/fate/vp9-03-size-198x210 | 6 +- tests/ref/fate/vp9-03-size-198x224 | 6 +- tests/ref/fate/vp9-03-size-198x226 | 6 +- tests/ref/fate/vp9-03-size-200x196 | 6 +- tests/ref/fate/vp9-03-size-200x198 | 6 +- tests/ref/fate/vp9-03-size-200x200 | 6 +- tests/ref/fate/vp9-03-size-200x202 | 6 +- tests/ref/fate/vp9-03-size-200x208 | 6 +- tests/ref/fate/vp9-03-size-200x210 | 6 +- tests/ref/fate/vp9-03-size-200x224 | 6 +- tests/ref/fate/vp9-03-size-200x226 | 6 +- tests/ref/fate/vp9-03-size-202x196 | 6 +- tests/ref/fate/vp9-03-size-202x198 | 6 +- tests/ref/fate/vp9-03-size-202x200 | 6 +- tests/ref/fate/vp9-03-size-202x202 | 6 +- tests/ref/fate/vp9-03-size-202x208 | 6 +- tests/ref/fate/vp9-03-size-202x210 | 6 +- tests/ref/fate/vp9-03-size-202x224 | 6 +- tests/ref/fate/vp9-03-size-202x226 | 6 +- tests/ref/fate/vp9-03-size-208x196 | 6 +- tests/ref/fate/vp9-03-size-208x198 | 6 +- tests/ref/fate/vp9-03-size-208x200 | 6 +- tests/ref/fate/vp9-03-size-208x202 | 6 +- tests/ref/fate/vp9-03-size-208x208 | 6 +- tests/ref/fate/vp9-03-size-208x210 | 6 +- tests/ref/fate/vp9-03-size-208x224 | 6 +- tests/ref/fate/vp9-03-size-208x226 | 6 +- tests/ref/fate/vp9-03-size-210x196 | 6 +- tests/ref/fate/vp9-03-size-210x198 | 6 +- tests/ref/fate/vp9-03-size-210x200 | 6 +- tests/ref/fate/vp9-03-size-210x202 | 6 +- tests/ref/fate/vp9-03-size-210x208 | 6 +- tests/ref/fate/vp9-03-size-210x210 | 6 +- tests/ref/fate/vp9-03-size-210x224 | 6 +- tests/ref/fate/vp9-03-size-210x226 | 6 +- tests/ref/fate/vp9-03-size-224x196 | 6 +- tests/ref/fate/vp9-03-size-224x198 | 6 +- tests/ref/fate/vp9-03-size-224x200 | 6 +- tests/ref/fate/vp9-03-size-224x202 | 6 +- tests/ref/fate/vp9-03-size-224x208 | 6 +- tests/ref/fate/vp9-03-size-224x210 | 6 +- tests/ref/fate/vp9-03-size-224x224 | 6 +- tests/ref/fate/vp9-03-size-224x226 | 6 +- tests/ref/fate/vp9-03-size-226x196 | 6 +- tests/ref/fate/vp9-03-size-226x198 | 6 +- tests/ref/fate/vp9-03-size-226x200 | 6 +- tests/ref/fate/vp9-03-size-226x202 | 6 +- tests/ref/fate/vp9-03-size-226x208 | 6 +- tests/ref/fate/vp9-03-size-226x210 | 6 +- tests/ref/fate/vp9-03-size-226x224 | 6 +- tests/ref/fate/vp9-03-size-226x226 | 6 +- tests/ref/fate/vp9-05-resize | 6 +- tests/ref/fate/vp9-06-bilinear | 6 +- tests/ref/fate/vp9-09-lf_deltas | 6 +- tests/ref/fate/vp9-10-show-existing-frame | 6 +- tests/ref/fate/vp9-10-show-existing-frame2 | 6 +- tests/ref/fate/vp9-15-segkey_adpq | 6 +- tests/ref/fate/vp9-16-intra-only | 6 +- tests/ref/fate/vp9-2pass-akiyo | 6 +- tests/ref/fate/vp9-parallelmode-akiyo | 6 +- tests/ref/fate/vp9-segmentation-aq-akiyo | 6 +- tests/ref/fate/vp9-segmentation-sf-akiyo | 6 +- tests/ref/fate/vp9-tiling-pedestrian | 6 +- tests/ref/fate/vp9-trac3849 | 6 +- tests/ref/fate/vp9-trac4359 | 6 +- tests/ref/fate/vp9p1-04-yuv422 | 6 +- tests/ref/fate/vp9p1-04-yuv440 | 6 +- tests/ref/fate/vp9p1-04-yuv444 | 6 +- tests/ref/fate/vp9p2-20-10bit-yuv420 | 6 +- tests/ref/fate/vp9p2-20-12bit-yuv420 | 6 +- tests/ref/fate/vp9p3-20-10bit-yuv422 | 6 +- tests/ref/fate/vp9p3-20-10bit-yuv440 | 6 +- tests/ref/fate/vp9p3-20-10bit-yuv444 | 6 +- tests/ref/fate/vp9p3-20-12bit-yuv422 | 6 +- tests/ref/fate/vp9p3-20-12bit-yuv440 | 6 +- tests/ref/fate/vp9p3-20-12bit-yuv444 | 6 +- tests/ref/fate/vqa-cc | 4 + tests/ref/fate/vqf-demux | 2 +- tests/ref/fate/wav-ac3 | 47 + tests/ref/fate/wc3movie-xan | 8 + tests/ref/fate/westwood-aud | 4 + tests/ref/fate/wmv8-drm | 4 + tests/ref/fate/wmv8-drm-nodec | 8 + tests/ref/fate/wmv8-x8intra | 857 +-- tests/ref/fate/wnv1 | 4 + tests/ref/fate/wtv-demux | 8 + tests/ref/fate/xbm10 | 4 + tests/ref/fate/xbm11 | 4 + tests/ref/fate/xface | 4 + tests/ref/fate/xmv-demux | 36 +- tests/ref/fate/xvid-custom-matrix | 6 +- tests/ref/fate/xvid-idct | 6 +- tests/ref/fate/xxan-wc4 | 4 + tests/ref/fate/yop | 4 + tests/ref/fate/zerocodec | 4 + tests/ref/fate/zlib | 4 + tests/ref/fate/zmbv-15bit | 4 + tests/ref/fate/zmbv-16bit | 4 + tests/ref/fate/zmbv-32bit | 4 + tests/ref/fate/zmbv-8bit | 4 + tests/ref/lavf-fate/avi_cram | 3 + tests/ref/lavf-fate/mov_qtrle_mace6 | 3 + tests/ref/lavf/au | 4 +- tests/ref/lavf/mkv | 8 +- tests/ref/lavf/mov | 9 + tests/ref/lavf/ts | 2 +- tests/ref/seek/cache-pipe | 49 + tests/ref/seek/lavf-au | 30 +- tests/ref/seek/lavf-mkv | 44 +- tests/ref/seek/lavf-pbmpipe | 50 +- tests/ref/seek/lavf-pgmpipe | 50 +- tests/ref/seek/lavf-ppmpipe | 50 +- tests/ref/seek/lavf-ts | 54 +- tests/ref/seek/lavf-voc | 12 +- tests/ref/seek/lavf-yuv4mpeg | 24 +- tests/ref/vsynth/vsynth1-bpp1 | 8 +- tests/ref/vsynth/vsynth1-vc2-420p | 4 + tests/ref/vsynth/vsynth1-vc2-420p10 | 4 + tests/ref/vsynth/vsynth1-vc2-420p12 | 4 + tests/ref/vsynth/vsynth1-vc2-422p | 4 + tests/ref/vsynth/vsynth1-vc2-422p10 | 4 + tests/ref/vsynth/vsynth1-vc2-422p12 | 4 + tests/ref/vsynth/vsynth1-vc2-444p | 4 + tests/ref/vsynth/vsynth1-vc2-444p10 | 4 + tests/ref/vsynth/vsynth1-vc2-444p12 | 4 + tests/ref/vsynth/vsynth2-bpp1 | 8 +- tests/ref/vsynth/vsynth2-vc2-420p | 4 + tests/ref/vsynth/vsynth2-vc2-420p10 | 4 + tests/ref/vsynth/vsynth2-vc2-420p12 | 4 + tests/ref/vsynth/vsynth2-vc2-422p | 4 + tests/ref/vsynth/vsynth2-vc2-422p10 | 4 + tests/ref/vsynth/vsynth2-vc2-422p12 | 4 + tests/ref/vsynth/vsynth2-vc2-444p | 4 + tests/ref/vsynth/vsynth2-vc2-444p10 | 4 + tests/ref/vsynth/vsynth2-vc2-444p12 | 4 + tests/ref/vsynth/vsynth3-bpp1 | 8 +- tests/ref/vsynth/vsynth3-rgb | 4 +- tests/ref/vsynth/vsynth_lena-bpp1 | 8 +- tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420 | 4 - tests/ref/vsynth/vsynth_lena-vc2-420p | 4 + tests/ref/vsynth/vsynth_lena-vc2-420p10 | 4 + tests/ref/vsynth/vsynth_lena-vc2-420p12 | 4 + tests/ref/vsynth/vsynth_lena-vc2-422p | 4 + tests/ref/vsynth/vsynth_lena-vc2-422p10 | 4 + tests/ref/vsynth/vsynth_lena-vc2-422p12 | 4 + tests/ref/vsynth/vsynth_lena-vc2-444p | 4 + tests/ref/vsynth/vsynth_lena-vc2-444p10 | 4 + tests/ref/vsynth/vsynth_lena-vc2-444p12 | 4 + tests/tiny_psnr.c | 10 +- tools/dvd2concat | 2 +- tools/ismindex.c | 60 +- tools/sidxindex.c | 33 +- version.sh | 2 +- 2865 files changed, 114123 insertions(+), 38236 deletions(-) create mode 100644 compat/dispatch_semaphore/semaphore.h create mode 100644 ffmpeg_cuvid.c create mode 100644 ffmpeg_vaapi.c create mode 100644 libavcodec/arm/rdft_init_arm.c create mode 100644 libavcodec/audiotoolboxdec.c create mode 100644 libavcodec/audiotoolboxenc.c create mode 100644 libavcodec/bitstream_filters.c create mode 100644 libavcodec/bsf.c create mode 100644 libavcodec/bsf.h create mode 100644 libavcodec/cbrt_data.c create mode 100644 libavcodec/cbrt_data.h create mode 100644 libavcodec/cbrt_data_fixed.c create mode 100644 libavcodec/cuvid.c create mode 100644 libavcodec/dca_core_bsf.c create mode 100644 libavcodec/dca_lbr.c create mode 100644 libavcodec/dca_lbr.h create mode 100644 libavcodec/dcahuff.c create mode 100644 libavcodec/dsd.c create mode 100644 libavcodec/dsd.h create mode 100644 libavcodec/dstdec.c create mode 100644 libavcodec/dvbtxt.h create mode 100644 libavcodec/ffjni.c create mode 100644 libavcodec/ffjni.h rename libavcodec/{hevc_parse.c => h2645_parse.c} (70%) create mode 100644 libavcodec/h2645_parse.h create mode 100644 libavcodec/h264_parse.c create mode 100644 libavcodec/h264_parse.h create mode 100644 libavcodec/h264_sei.h create mode 100644 libavcodec/h264data.c create mode 100644 libavcodec/jni.c create mode 100644 libavcodec/jni.h delete mode 100644 libavcodec/libdcadec.c delete mode 100644 libavcodec/libutvideo.h delete mode 100644 libavcodec/libutvideodec.cpp delete mode 100644 libavcodec/libutvideoenc.cpp create mode 100644 libavcodec/m101.c create mode 100644 libavcodec/magicyuv.c delete mode 100644 libavcodec/mathops.c create mode 100644 libavcodec/mediacodec_sw_buffer.c create mode 100644 libavcodec/mediacodec_sw_buffer.h create mode 100644 libavcodec/mediacodec_wrapper.c create mode 100644 libavcodec/mediacodec_wrapper.h create mode 100644 libavcodec/mediacodecdec.c create mode 100644 libavcodec/mediacodecdec.h create mode 100644 libavcodec/mediacodecdec_h264.c create mode 100644 libavcodec/mips/hpeldsp_mmi.c create mode 100644 libavcodec/nvenc.h create mode 100644 libavcodec/nvenc_h264.c create mode 100644 libavcodec/nvenc_hevc.c create mode 100644 libavcodec/omx.c create mode 100644 libavcodec/sheervideo.c rename libavcodec/{arm/dct-test.c => tests/arm/dct.c} (97%) create mode 100644 libavcodec/tests/avfft.c create mode 100644 libavcodec/tests/cabac.c rename libavcodec/{dct-test.c => tests/dct.c} (97%) rename libavcodec/{fft-fixed-test.c => tests/fft-fixed.c} (97%) rename libavcodec/{fft-fixed32-test.c => tests/fft-fixed32.c} (97%) rename libavcodec/{fft-test.c => tests/fft.c} (99%) rename libavcodec/{golomb-test.c => tests/golomb.c} (96%) create mode 100644 libavcodec/tests/iirfilter.c create mode 100644 libavcodec/tests/imgconvert.c create mode 100644 libavcodec/tests/jpeg2000dwt.c create mode 100644 libavcodec/tests/mathops.c rename libavcodec/{motion-test.c => tests/motion.c} (99%) create mode 100644 libavcodec/tests/options.c rename libavcodec/{ppc/dct-test.c => tests/ppc/dct.c} (96%) create mode 100644 libavcodec/tests/rangecoder.c create mode 100644 libavcodec/tests/snowenc.c create mode 100644 libavcodec/tests/utils.c rename libavcodec/{x86/dct-test.c => tests/x86/dct.c} (97%) create mode 100644 libavcodec/truemotion2rt.c create mode 100644 libavcodec/vaapi_encode.c create mode 100644 libavcodec/vaapi_encode.h create mode 100644 libavcodec/vaapi_encode_h264.c create mode 100644 libavcodec/vaapi_encode_h265.c create mode 100644 libavcodec/vaapi_encode_h26x.c create mode 100644 libavcodec/vaapi_encode_h26x.h create mode 100644 libavcodec/vaapi_encode_mjpeg.c create mode 100644 libavcodec/videotoolboxenc.c create mode 100644 libavcodec/vlc.h create mode 100644 libavcodec/vp9_superframe_bsf.c create mode 100644 libavcodec/wmv2data.c rename libavcodec/{svq3.h => wmv2data.h} (77%) create mode 100644 libavcodec/x86/vc1dsp_loopfilter.asm rename libavcodec/x86/{vc1dsp.asm => vc1dsp_mc.asm} (56%) create mode 100644 libavcodec/ylc.c create mode 100644 libavdevice/tests/timefilter.c create mode 100644 libavfilter/af_firequalizer.c create mode 100644 libavfilter/af_hdcd.c create mode 100644 libavfilter/af_loudnorm.c create mode 100644 libavfilter/bwdif.h create mode 100644 libavfilter/colorspacedsp.c create mode 100644 libavfilter/colorspacedsp.h create mode 100644 libavfilter/colorspacedsp_template.c create mode 100644 libavfilter/colorspacedsp_yuv2yuv_template.c create mode 100644 libavfilter/f_bench.c create mode 100644 libavfilter/f_loop.c create mode 100644 libavfilter/tests/drawutils.c rename libavfilter/{ => tests}/filtfmts.c (100%) create mode 100644 libavfilter/tests/formats.c create mode 100644 libavfilter/vf_bwdif.c create mode 100644 libavfilter/vf_ciescope.c create mode 100644 libavfilter/vf_colorspace.c create mode 100644 libavfilter/vf_coreimage.m create mode 100644 libavfilter/vf_datascope.c create mode 100644 libavfilter/vf_fieldhint.c create mode 100644 libavfilter/vf_hwdownload.c create mode 100644 libavfilter/vf_hwupload.c create mode 100644 libavfilter/vf_hwupload_cuda.c create mode 100644 libavfilter/vf_readvitc.c create mode 100644 libavfilter/vf_remap.c create mode 100644 libavfilter/vf_scale_npp.c create mode 100644 libavfilter/vf_scale_vaapi.c create mode 100644 libavfilter/x86/avf_showcqt.asm create mode 100644 libavfilter/x86/avf_showcqt_init.c create mode 100644 libavfilter/x86/colorspacedsp.asm create mode 100644 libavfilter/x86/colorspacedsp_init.c create mode 100644 libavfilter/x86/vf_bwdif.asm create mode 100644 libavfilter/x86/vf_bwdif_init.c create mode 100644 libavformat/aixdec.c create mode 100644 libavformat/dvbtxt.c create mode 100644 libavformat/hashenc.c delete mode 100644 libavformat/md5enc.c create mode 100644 libavformat/mtaf.c create mode 100644 libavformat/musx.c create mode 100644 libavformat/protocols.c create mode 100644 libavformat/rawutils.c create mode 100644 libavformat/rtpdec_vc2hq.c create mode 100644 libavformat/rtpenc_vc2hq.c create mode 100644 libavformat/rtpenc_vp9.c rename libavformat/{movenc-test.c => tests/movenc.c} (81%) rename libavformat/{noproxy-test.c => tests/noproxy.c} (97%) create mode 100644 libavformat/tests/rtmpdh.c rename libavformat/{seek-test.c => tests/seek.c} (97%) create mode 100644 libavformat/tests/srtp.c rename libavformat/{url-test.c => tests/url.c} (98%) create mode 100644 libavformat/voc_packet.c create mode 100644 libavformat/vpcc.c create mode 100644 libavformat/vpcc.h create mode 100644 libavformat/wsddec.c rename libavresample/{avresample-test.c => tests/avresample.c} (99%) create mode 100644 libavutil/ffmath.h create mode 100644 libavutil/hwcontext.c create mode 100644 libavutil/hwcontext.h create mode 100644 libavutil/hwcontext_cuda.c create mode 100644 libavutil/hwcontext_cuda.h create mode 100644 libavutil/hwcontext_dxva2.c create mode 100644 libavutil/hwcontext_dxva2.h create mode 100644 libavutil/hwcontext_internal.h create mode 100644 libavutil/hwcontext_vaapi.c create mode 100644 libavutil/hwcontext_vaapi.h create mode 100644 libavutil/hwcontext_vdpau.c create mode 100644 libavutil/hwcontext_vdpau.h create mode 100644 libavutil/tests/adler32.c create mode 100644 libavutil/tests/aes.c create mode 100644 libavutil/tests/atomic.c create mode 100644 libavutil/tests/avstring.c create mode 100644 libavutil/tests/base64.c create mode 100644 libavutil/tests/blowfish.c create mode 100644 libavutil/tests/bprint.c create mode 100644 libavutil/tests/camellia.c create mode 100644 libavutil/tests/cast5.c create mode 100644 libavutil/tests/color_utils.c create mode 100644 libavutil/tests/cpu.c create mode 100644 libavutil/tests/crc.c create mode 100644 libavutil/tests/des.c create mode 100644 libavutil/tests/dict.c create mode 100644 libavutil/tests/display.c create mode 100644 libavutil/tests/error.c create mode 100644 libavutil/tests/eval.c create mode 100644 libavutil/tests/fifo.c create mode 100644 libavutil/tests/file.c create mode 100644 libavutil/tests/float_dsp.c create mode 100644 libavutil/tests/hash.c create mode 100644 libavutil/tests/hmac.c create mode 100644 libavutil/tests/lfg.c create mode 100644 libavutil/tests/lls.c create mode 100644 libavutil/tests/log.c create mode 100644 libavutil/tests/lzo.c create mode 100644 libavutil/tests/md5.c create mode 100644 libavutil/tests/murmur3.c create mode 100644 libavutil/tests/opt.c create mode 100644 libavutil/tests/parseutils.c create mode 100644 libavutil/tests/pca.c create mode 100644 libavutil/tests/pixdesc.c create mode 100644 libavutil/tests/pixelutils.c create mode 100644 libavutil/tests/random_seed.c create mode 100644 libavutil/tests/rational.c create mode 100644 libavutil/tests/ripemd.c create mode 100644 libavutil/tests/sha.c create mode 100644 libavutil/tests/sha512.c rename libavutil/{ => tests}/softfloat.c (98%) create mode 100644 libavutil/tests/tea.c create mode 100644 libavutil/tests/tree.c create mode 100644 libavutil/tests/twofish.c rename libavutil/{ => tests}/utf8.c (99%) create mode 100644 libavutil/tests/xtea.c create mode 100644 libswresample/arm/resample.S create mode 100644 libswresample/arm/resample_init.c rename libswresample/{swresample-test.c => tests/swresample.c} (99%) create mode 100644 libswscale/aarch64/Makefile create mode 100644 libswscale/aarch64/hscale.S create mode 100644 libswscale/aarch64/output.S create mode 100644 libswscale/aarch64/swscale.c create mode 100644 libswscale/aarch64/swscale_unscaled.c create mode 100644 libswscale/aarch64/yuv2rgb_neon.S create mode 100644 libswscale/arm/hscale.S create mode 100644 libswscale/arm/output.S create mode 100644 libswscale/arm/swscale.c rename libswscale/{colorspace-test.c => tests/colorspace.c} (98%) rename libswscale/{swscale-test.c => tests/swscale.c} (99%) create mode 100644 tests/audiomatch.c create mode 100644 tests/checkasm/vf_colorspace.c create mode 100644 tests/fate/matroska.mak create mode 100644 tests/filtergraphs/anequalizer create mode 100644 tests/filtergraphs/overlay-dvdsub-2397 create mode 100644 tests/ref/fate/012v create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-mono-he-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-mono-he-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-mono-lc-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-mono-lc-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-stereo-he-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-stereo-he-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-mono-he-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-mono-he-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-mono-lc-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-mono-lc-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-stereo-he-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-stereo-he-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-m4a create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-adts create mode 100644 tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-dolby-44100-mono-he-mp4 create mode 100644 tests/ref/fate/audiomatch-dolby-44100-mono-lc-mp4 create mode 100644 tests/ref/fate/audiomatch-dolby-44100-stereo-he-mp4 create mode 100644 tests/ref/fate/audiomatch-dolby-44100-stereo-he2-mp4 create mode 100644 tests/ref/fate/audiomatch-dolby-44100-stereo-lc-mp4 create mode 100644 tests/ref/fate/audiomatch-faac-16000-mono-lc-adts create mode 100644 tests/ref/fate/audiomatch-faac-16000-mono-lc-m4a create mode 100644 tests/ref/fate/audiomatch-faac-16000-stereo-lc-adts create mode 100644 tests/ref/fate/audiomatch-faac-16000-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-faac-44100-mono-lc-adts create mode 100644 tests/ref/fate/audiomatch-faac-44100-mono-lc-m4a create mode 100644 tests/ref/fate/audiomatch-faac-44100-stereo-lc-adts create mode 100644 tests/ref/fate/audiomatch-faac-44100-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-nero-16000-mono-he-m4a create mode 100644 tests/ref/fate/audiomatch-nero-16000-mono-lc-m4a create mode 100644 tests/ref/fate/audiomatch-nero-16000-stereo-he-m4a create mode 100644 tests/ref/fate/audiomatch-nero-16000-stereo-he2-m4a create mode 100644 tests/ref/fate/audiomatch-nero-16000-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-nero-44100-mono-he-m4a create mode 100644 tests/ref/fate/audiomatch-nero-44100-mono-lc-m4a create mode 100644 tests/ref/fate/audiomatch-nero-44100-stereo-he-m4a create mode 100644 tests/ref/fate/audiomatch-nero-44100-stereo-he2-m4a create mode 100644 tests/ref/fate/audiomatch-nero-44100-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-quicktime7-44100-stereo-lc-mp4 create mode 100644 tests/ref/fate/audiomatch-quicktimeX-44100-stereo-lc-m4a create mode 100644 tests/ref/fate/audiomatch-square-aac create mode 100644 tests/ref/fate/audiomatch-square-mp3 create mode 100644 tests/ref/fate/color_utils create mode 100644 tests/ref/fate/dds-alpha8 create mode 100644 tests/ref/fate/dds-monob create mode 100644 tests/ref/fate/dds-rgb1555 create mode 100644 tests/ref/fate/dds-rgb555 create mode 100644 tests/ref/fate/display create mode 100644 tests/ref/fate/dnxhr-parse create mode 100644 tests/ref/fate/exr-rgb-scanline-float-b44 create mode 100644 tests/ref/fate/exr-rgb-scanline-half-b44-12x8 create mode 100644 tests/ref/fate/exr-rgb-scanline-half-b44-13x9 create mode 100644 tests/ref/fate/exr-rgb-scanline-pxr24-float-12x8 create mode 100644 tests/ref/fate/exr-rgb-tile-float-raw-12x8 create mode 100644 tests/ref/fate/exr-rgb-tile-float-raw-150x130 create mode 100644 tests/ref/fate/exr-rgb-tile-half-raw-12x8 create mode 100644 tests/ref/fate/exr-rgba-multiscanline-half-b44 create mode 100644 tests/ref/fate/filter-acrossfade create mode 100644 tests/ref/fate/filter-aecho create mode 100644 tests/ref/fate/filter-aemphasis create mode 100644 tests/ref/fate/filter-aemphasis-50fm create mode 100644 tests/ref/fate/filter-aemphasis-75kf create mode 100644 tests/ref/fate/filter-afade-esin create mode 100644 tests/ref/fate/filter-afade-exp create mode 100644 tests/ref/fate/filter-afade-hsin create mode 100644 tests/ref/fate/filter-afade-iqsin create mode 100644 tests/ref/fate/filter-afade-log create mode 100644 tests/ref/fate/filter-afade-qsin create mode 100644 tests/ref/fate/filter-agate create mode 100644 tests/ref/fate/filter-alimiter create mode 100644 tests/ref/fate/filter-amerge create mode 100644 tests/ref/fate/filter-anequalizer create mode 100644 tests/ref/fate/filter-apad create mode 100644 tests/ref/fate/filter-fps create mode 100644 tests/ref/fate/filter-fps-cfr create mode 100644 tests/ref/fate/filter-fps-r create mode 100644 tests/ref/fate/filter-hls create mode 100644 tests/ref/fate/filter-meta-4560-rotate0 create mode 100644 tests/ref/fate/filter-metadata-cropdetect create mode 100644 tests/ref/fate/filter-metadata-readvitc-def create mode 100644 tests/ref/fate/filter-metadata-readvitc-thr create mode 100644 tests/ref/fate/filter-overlay-dvdsub-2397 create mode 100644 tests/ref/fate/flv-demux create mode 100644 tests/ref/fate/gaplessenc-itunes-to-ipod-aac create mode 100644 tests/ref/fate/gaplessenc-pcm-to-mov-aac create mode 100644 tests/ref/fate/gaplessinfo-itunes1 create mode 100644 tests/ref/fate/gaplessinfo-itunes2 create mode 100644 tests/ref/fate/gif-deal create mode 100644 tests/ref/fate/h264-attachment-631 create mode 100644 tests/ref/fate/h264-brokensps-2580 create mode 100644 tests/ref/fate/h264-dts_5frames create mode 100644 tests/ref/fate/h264-invalid-ref-mod create mode 100644 tests/ref/fate/h264-unescaped-extradata create mode 100644 tests/ref/fate/h264-xavc-4389 create mode 100644 tests/ref/fate/hash create mode 100644 tests/ref/fate/indeo2-delta rename tests/ref/fate/{indeo2 => indeo2-intra} (98%) rename tests/ref/fate/{indeo3 => indeo3-1} (96%) rename tests/ref/fate/{rscc => iscc} (79%) create mode 100644 tests/ref/fate/lagarith-ticket4119 create mode 100644 tests/ref/fate/lagarith-ticket4119-cfr create mode 100644 tests/ref/fate/lagarith-ticket4119-drop create mode 100644 tests/ref/fate/lagarith-ticket4119-pass create mode 100644 tests/ref/fate/lagarith-ticket4119-vfr create mode 100644 tests/ref/fate/lossless-wma24-1 create mode 100644 tests/ref/fate/lossless-wma24-2 create mode 100644 tests/ref/fate/lossless-wma24-rawtile create mode 100644 tests/ref/fate/m4v create mode 100644 tests/ref/fate/m4v-cfr create mode 100644 tests/ref/fate/mkv-1242 create mode 100644 tests/ref/fate/mov-mp3-demux create mode 100644 tests/ref/fate/mpeg4-packed create mode 100644 tests/ref/fate/mss1-pal create mode 100644 tests/ref/fate/mts2 create mode 100644 tests/ref/fate/mts2-xesc create mode 100644 tests/ref/fate/oggopus-demux create mode 100644 tests/ref/fate/prores-gray create mode 100644 tests/ref/fate/rgbapng-4816 create mode 100644 tests/ref/fate/rscc-16bit create mode 100644 tests/ref/fate/rscc-24bit create mode 100644 tests/ref/fate/rscc-32bit create mode 100644 tests/ref/fate/rv20-1239 create mode 100644 tests/ref/fate/screenpresso-16bit rename tests/ref/fate/{screenpresso => screenpresso-24bit} (75%) create mode 100644 tests/ref/fate/screenpresso-32bit create mode 100644 tests/ref/fate/ts-demux create mode 100644 tests/ref/fate/ts-opus-demux create mode 100644 tests/ref/fate/vorbis-1833-chapters create mode 100644 tests/ref/fate/vp8-2451 create mode 100644 tests/ref/fate/wav-ac3 create mode 100644 tests/ref/lavf-fate/avi_cram create mode 100644 tests/ref/lavf-fate/mov_qtrle_mace6 create mode 100644 tests/ref/seek/cache-pipe create mode 100644 tests/ref/vsynth/vsynth1-vc2-420p create mode 100644 tests/ref/vsynth/vsynth1-vc2-420p10 create mode 100644 tests/ref/vsynth/vsynth1-vc2-420p12 create mode 100644 tests/ref/vsynth/vsynth1-vc2-422p create mode 100644 tests/ref/vsynth/vsynth1-vc2-422p10 create mode 100644 tests/ref/vsynth/vsynth1-vc2-422p12 create mode 100644 tests/ref/vsynth/vsynth1-vc2-444p create mode 100644 tests/ref/vsynth/vsynth1-vc2-444p10 create mode 100644 tests/ref/vsynth/vsynth1-vc2-444p12 create mode 100644 tests/ref/vsynth/vsynth2-vc2-420p create mode 100644 tests/ref/vsynth/vsynth2-vc2-420p10 create mode 100644 tests/ref/vsynth/vsynth2-vc2-420p12 create mode 100644 tests/ref/vsynth/vsynth2-vc2-422p create mode 100644 tests/ref/vsynth/vsynth2-vc2-422p10 create mode 100644 tests/ref/vsynth/vsynth2-vc2-422p12 create mode 100644 tests/ref/vsynth/vsynth2-vc2-444p create mode 100644 tests/ref/vsynth/vsynth2-vc2-444p10 create mode 100644 tests/ref/vsynth/vsynth2-vc2-444p12 delete mode 100644 tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420 create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-420p create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-420p10 create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-420p12 create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-422p create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-422p10 create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-422p12 create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-444p create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-444p10 create mode 100644 tests/ref/vsynth/vsynth_lena-vc2-444p12 diff --git a/Changelog b/Changelog index 248f8b50a..2a8791620 100644 --- a/Changelog +++ b/Changelog @@ -1,67 +1,68 @@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. - -version 3.0.2: -- avcodec/ttaenc: Reallocate packet if its too small -- configure: build fix for P5600 with mips code restructuring -- mips: add support for R6 -- pgssubdec: fix subpicture output colorspace and range -- avcodec/ac3dec: Reset SPX when switching from EAC3 to AC3 -- avfilter/vf_drawtext: Check return code of load_glyph() -- avformat/mux: Check that deinit is set before calling it -- avcodec/takdec: add code that got somehow lost in process of REing -- avcodec/apedec: fix decoding of stereo files with one channel full of silence -- avcodec/avpacket: Fix off by 5 error -- avcodec/h264: Fix for H.264 configuration parsing -- avcodec/bmp_parser: Ensure remaining_size is not too small in startcode packet crossing corner case -- avcodec/pngdec: Fix alpha detection with skip_frame -- Changelog: Make formating consistent -- avfilter/src_movie: fix how we check for overflows with seek_point -- avcodec/j2kenc: Add attribution to OpenJPEG project: +version : -version 3.0.1: -- avcodec/libutvideodec: copy frame so it has reference counters when refcounted_frames is set -- avformat/rtpdec_jpeg: fix low contrast image on low quality setting -- avformat/mpegtsenc: Fix used service -- avformat/mpegtsenc: Keep track of the program for each service -- avformat/file: Add crypto to default whitelist -- avcodec/mjpegenc_common: Store approximate aspect if exact cannot be stored -- lavc/hevc: Allow arbitrary garbage in bytestream as long as at least one NAL unit is found. -- avcodec/resample: Remove disabled and faulty code -- indeo2: Fix banding artefacts -- indeo2data: K&R formatting cosmetics -- avformat/hlsenc: Fix passing options, regression since bc9a5965c815cf7fd998d8ce14a18b8e861dd9ce -- avutil/random_seed: Add the runtime in cycles of the main loop to the entropy pool -- avutil/channel_layout: AV_CH_LAYOUT_6POINT1_BACK not reachable in parsing -- avformat/concatdec: set safe mode to enabled instead of auto -- avformat/utils: fix dts from pts code in compute_pkt_fields() during ascending delay -- avformat/rtpenc: Fix integer overflow in NTP_TO_RTP_FORMAT -- avcodec/dca: clear X96 channels if nothing was decoded -- fate/aac: Increase fuzz from of fate-aac-pns-encode from 72 to 74 for Loongson -- avformat/cache: Fix memleak of tree entries -- lavf/mov: downgrade sidx errors to non-fatal warnings; fixes trac #5216 -- lavf/mov: fix sidx with edit lists -- avcodec/mjpegdec: Fix decoding slightly odd progressive jpeg -- swscale/utils: Fix chrSrcHSubSample for GBRAP16 -- swscale/input: Fix GBRAP16 input -- avutil/pixdesc: Make get_color_type() aware of CIE XYZ formats -- avcodec/h264: Execute error concealment before marking the frame as done. -- swscale/x86/output: Fix yuv2planeX_16* with unaligned destination -- swscale/x86/output: Move code into yuv2planeX_mainloop -- MAINTAINERS: add myself as an OS/2 maintainer -- libwebpenc_animencoder: print library messages in verbose log levels -- libwebpenc_animencoder: zero initialize the WebPAnimEncoderOptions struct -- configure: check for SEC_I_CONTEXT_EXPIRED before enabling SChannel -- lavf/http: Add httpproxy to the default protocol whitelist. -- doc/utils: fix typo for min() description -- ffserver&ffm: Fixed issues preventing ffserver write_index and files_size from being set correctly which was breaking ffserver streaming. -- postproc: fix unaligned access -- vc2enc: fix use of uninitialized variables in the rate control system, correctly zero out coefficient array padding -- aacenc: optimize encoding speed -- avcodec/diracdec: check bitstream size related fields for overflows -- avcodec/h264_slice: Check PPS more extensively when its not copied +version 3.1.1: +- doc/APIchanges: document the lavu/lavf field moves +- avformat/avformat: Move new field to the end of AVStream +- avformat/utils: update deprecated AVStream->codec when the context is updated +- avutil/frame: Move new field to the end of AVFrame +- libavcodec/exr : fix decoding piz float file. +- avformat/mov: Check sample size +- lavfi: Move new field to the end of AVFilterContext +- lavfi: Move new field to the end of AVFilterLink +- ffplay: Fix usage of private lavfi API +- lavc/mediacodecdec_h264: add missing NAL headers to SPS/PPS buffers +- lavc/pnm_parser: disable parsing for text based PNMs + + +version 3.1: +- DXVA2-accelerated HEVC Main10 decoding +- fieldhint filter +- loop video filter and aloop audio filter +- Bob Weaver deinterlacing filter +- firequalizer filter +- datascope filter +- bench and abench filters +- ciescope filter +- protocol blacklisting API +- MediaCodec H264 decoding +- VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer +- VP9 RTP payload format (draft v2) packetizer +- AudioToolbox audio decoders +- AudioToolbox audio encoders +- coreimage filter (GPU based image filtering on OSX) +- libdcadec removed +- bitstream filter for extracting DTS core +- ADPCM IMA DAT4 decoder +- musx demuxer +- aix demuxer +- remap filter +- hash and framehash muxers +- colorspace filter +- hdcd filter +- readvitc filter +- VAAPI-accelerated format conversion and scaling +- libnpp/CUDA-accelerated format conversion and scaling +- Duck TrueMotion 2.0 Real Time decoder +- Wideband Single-bit Data (WSD) demuxer +- VAAPI-accelerated H.264/HEVC/MJPEG encoding +- DTS Express (LBR) decoder +- Generic OpenMAX IL encoder with support for Raspberry Pi +- IFF ANIM demuxer & decoder +- Direct Stream Transfer (DST) decoder +- loudnorm filter +- MTAF demuxer and decoder +- MagicYUV decoder +- OpenExr improvements (tile data and B44/B44A support) +- BitJazz SheerVideo decoder +- CUDA CUVID H264/HEVC decoder +- 10-bit depth support in native utvideo decoder +- libutvideo wrapper removed +- YUY2 Lossless Codec decoder +- VideoToolbox H.264 encoder version 3.0: @@ -934,8 +935,8 @@ version 0.8: - showinfo filter added - SMPTE 302M AES3 audio decoder - Apple Core Audio Format muxer -- 9bit and 10bit per sample support in the H.264 decoder -- 9bit and 10bit FFV1 encoding / decoding +- 9 bits and 10 bits per sample support in the H.264 decoder +- 9 bits and 10 bits FFV1 encoding / decoding - split filter added - select filter added - sdl output device added @@ -1228,7 +1229,7 @@ version 0.4.9-pre1: - rate distorted optimal lambda->qp support - AAC encoding with libfaac - Sunplus JPEG codec (SP5X) support -- use Lagrange multipler instead of QP for ratecontrol +- use Lagrange multiplier instead of QP for ratecontrol - Theora/VP3 decoding support - XA and ADX ADPCM codecs - export MPEG-2 active display area / pan scan diff --git a/LICENSE.md b/LICENSE.md index 0c53d0f5a..d08c747ae 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -#FFmpeg: +# License Most files in FFmpeg are under the GNU Lesser General Public License version 2.1 or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other @@ -13,16 +13,18 @@ configure to activate them. In this case, FFmpeg's license changes to GPL v2+. Specifically, the GPL parts of FFmpeg are: - libpostproc -- optional x86 optimizations in the files - - `libavcodec/x86/flac_dsp_gpl.asm` - - `libavcodec/x86/idct_mmx.c` - - `libavfilter/x86/vf_removegrain.asm` -- libutvideo encoding/decoding wrappers in - `libavcodec/libutvideo*.cpp` +- optional x86 optimization in the files + - `libavcodec/x86/flac_dsp_gpl.asm` + - `libavcodec/x86/idct_mmx.c` + - `libavfilter/x86/vf_removegrain.asm` - the X11 grabber in `libavdevice/x11grab.c` -- the swresample test app in - `libswresample/swresample-test.c` -- the `texi2pod.pl` tool +- the following building and testing tools + - `compat/solaris/make_sunver.pl` + - `doc/t2h.pm` + - `doc/texi2pod.pl` + - `libswresample/swresample-test.c` + - `tests/checkasm/*` + - `tests/tiny_ssim.c` - the following filters in libavfilter: - `f_ebur128.c` - `vf_blackframe.c` @@ -47,9 +49,9 @@ Specifically, the GPL parts of FFmpeg are: - `vf_pp.c` - `vf_pp7.c` - `vf_pullup.c` + - `vf_repeatfields.c` - `vf_sab.c` - `vf_smartblur.c` - - `vf_repeatfields.c` - `vf_spp.c` - `vf_stereo3d.c` - `vf_super2xsai.c` @@ -73,20 +75,17 @@ There are a handful of files under other licensing terms, namely: * `tests/reference.pnm` is under the expat license. -external libraries -================== +## External libraries FFmpeg can be combined with a number of external libraries, which sometimes affect the licensing of binaries resulting from the combination. -compatible libraries --------------------- +### Compatible libraries The following libraries are under GPL: - frei0r - libcdio - librubberband -- libutvideo - libvidstab - libx264 - libx265 @@ -101,14 +100,25 @@ license is incompatible with the LGPL v2.1 and the GPL v2, but not with version 3 of those licenses. So to combine these libraries with FFmpeg, the license version needs to be upgraded by passing `--enable-version3` to configure. -incompatible libraries ----------------------- +### Incompatible libraries -The Fraunhofer AAC library and FAAC are under licenses which -are incompatible with the GPLv2 and v3. We do not know for certain if their -licenses are compatible with the LGPL. -If you wish to enable these libraries, pass `--enable-nonfree` to configure. -But note that if you enable any of these libraries the resulting binary will -be under a complex license mix that is more restrictive than the LGPL and that -may result in additional obligations. It is possible that these -restrictions cause the resulting binary to be unredistributeable. +There are certain libraries you can combine with FFmpeg whose licenses are not +compatible with the GPL and/or the LGPL. If you wish to enable these +libraries, even in circumstances that their license may be incompatible, pass +`--enable-nonfree` to configure. But note that if you enable any of these +libraries the resulting binary will be under a complex license mix that is +more restrictive than the LGPL and that may result in additional obligations. +It is possible that these restrictions cause the resulting binary to be +unredistributable. + +The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are +incompatible with the GPLv2 and v3. To the best of our knowledge, they are +compatible with the LGPL. + +The FAAC library is incompatible with all versions of GPL and LGPL. + +The NVENC library, while its header file is licensed under the compatible MIT +license, requires a proprietary binary blob at run time, and is deemed to be +incompatible with the GPL. We are not certain if it is compatible with the +LGPL, but we require `--enable-nonfree` even with LGPL configurations in case +it is not. diff --git a/MAINTAINERS b/MAINTAINERS index 0705a6999..fd87db551 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -43,8 +43,7 @@ Miscellaneous Areas =================== documentation Stefano Sabatini, Mike Melanson, Timothy Gu, Lou Logan -build system (configure, makefiles) Diego Biurrun, Mans Rullgard -project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser, Lou Logan +project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser presets Robert Swain metadata subsystem Aurelien Jacobs release management Michael Niedermayer @@ -56,7 +55,7 @@ Communication website Deby Barbara Lepage fate.ffmpeg.org Timothy Gu Trac bug tracker Alexander Strasser, Michael Niedermayer, Carl Eugen Hoyos, Lou Logan -mailing lists Michael Niedermayer, Baptiste Coudurier, Lou Logan +mailing lists Baptiste Coudurier, Lou Logan Google+ Paul B Mahol, Michael Niedermayer, Alexander Strasser Twitter Lou Logan, Reynaldo H. Verdejo Pinochet Launchpad Timothy Gu @@ -89,7 +88,6 @@ Other: rational.c, rational.h Michael Niedermayer rc4 Reimar Doeffinger ripemd.c, ripemd.h James Almer - timecode Clément Bœsch libavcodec @@ -117,8 +115,6 @@ Generic Parts: faandct.c, faandct.h Michael Niedermayer Golomb coding: golomb.c, golomb.h Michael Niedermayer - LPC: - lpc.c, lpc.h Justin Ruggles motion estimation: motion* Michael Niedermayer rate control: @@ -139,19 +135,13 @@ Codecs: 8bps.c Roberto Togni 8svx.c Jaikrishnan Menon aacenc*, aaccoder.c Rostislav Pehlivanov - aasc.c Kostya Shishkov - ac3* Justin Ruggles alacenc.c Jaikrishnan Menon alsdec.c Thilo Borgmann - apedec.c Kostya Shishkov ass* Aurelien Jacobs asv* Michael Niedermayer - atrac3* Benjamin Larsson atrac3plus* Maxim Poliakovski bgmc.c, bgmc.h Thilo Borgmann - bink.c Kostya Shishkov binkaudio.c Peter Ross - bmp.c Mans Rullgard, Kostya Shishkov cavs* Stefan Gehrer cdxl.c Paul B Mahol celp_filters.* Vitor Sessak @@ -159,27 +149,21 @@ Codecs: cinepakenc.c Rl / Aetey G.T. AB ccaption_dec.c Anshul Maheshwari cljr Alex Beregszaszi - cllc.c Derek Buitenhuis - cook.c, cookdata.h Benjamin Larsson cpia.c Stephan Hilb crystalhd.c Philip Langdale cscd.c Reimar Doeffinger - dca.c Kostya Shishkov, Benjamin Larsson + cuvid.c Timo Rothenpieler dirac* Rostislav Pehlivanov dnxhd* Baptiste Coudurier dpcm.c Mike Melanson - dss_sp.c Oleksij Rempel, Michael Niedermayer + dss_sp.c Oleksij Rempel dv.c Roman Shaposhnik dvbsubdec.c Anshul Maheshwari - dxa.c Kostya Shishkov eacmv*, eaidct*, eat* Peter Ross evrc* Paul B Mahol exif.c, exif.h Thilo Borgmann ffv1* Michael Niedermayer ffwavesynth.c Nicolas George - fic.c Derek Buitenhuis - flac* Justin Ruggles - flashsv* Benjamin Larsson flicvideo.c Mike Melanson g722.c Martin Storsjo g726.c Roman Shaposhnik @@ -190,16 +174,10 @@ Codecs: hap* Tom Butterworth huffyuv* Michael Niedermayer, Christophe Gisquet idcinvideo.c Mike Melanson - imc* Benjamin Larsson - indeo2* Kostya Shishkov - indeo5* Kostya Shishkov interplayvideo.c Mike Melanson - ivi* Kostya Shishkov - jacosub* Clément Bœsch + jni*, ffjni* Matthieu Bouron jpeg2000* Nicolas Bertrand - jpeg_ls.c Kostya Shishkov jvdec.c Peter Ross - kmvc.c Kostya Shishkov lcl*.c Roberto Togni, Reimar Doeffinger libcelt_dec.c Nicolas George libdirac* David Conrad @@ -208,40 +186,31 @@ Codecs: libopenjpeg.c Jaikrishnan Menon libopenjpegenc.c Michael Bradshaw libschroedinger* David Conrad - libspeexdec.c Justin Ruggles libtheoraenc.c David Conrad - libutvideo* Carl Eugen Hoyos libvorbis.c David Conrad libvpx* James Zern - libx264.c Mans Rullgard, Jason Garrett-Glaser - libx265.c Derek Buitenhuis libxavs.c Stefan Gehrer libzvbi-teletextdec.c Marton Balint - loco.c Kostya Shishkov lzo.h, lzo.c Reimar Doeffinger mdec.c Michael Niedermayer mimic.c Ramiro Polla mjpeg*.c Michael Niedermayer mlp* Ramiro Polla mmvideo.c Peter Ross - mpc* Kostya Shishkov mpeg12.c, mpeg12data.h Michael Niedermayer mpegvideo.c, mpegvideo.h Michael Niedermayer mqc* Nicolas Bertrand msmpeg4.c, msmpeg4data.h Michael Niedermayer msrle.c Mike Melanson msvideo1.c Mike Melanson - nellymoserdec.c Benjamin Larsson nuv.c Reimar Doeffinger - nvenc.c Timo Rothenpieler + nvenc* Timo Rothenpieler paf.* Paul B Mahol pcx.c Ivo van Poorten pgssubdec.c Reimar Doeffinger ptx.c Ivo van Poorten qcelp* Reynaldo H. Verdejo Pinochet - qdm2.c, qdm2data.h Roberto Togni, Benjamin Larsson - qdrw.c Kostya Shishkov - qpeg.c Kostya Shishkov + qdm2.c, qdm2data.h Roberto Togni qsv* Ivan Uskov qtrle.c Mike Melanson ra144.c, ra144.h, ra288.c, ra288.h Roberto Togni @@ -250,10 +219,8 @@ Codecs: rpza.c Roberto Togni rtjpeg.c, rtjpeg.h Reimar Doeffinger rv10.c Michael Niedermayer - rv3* Kostya Shishkov - rv4* Kostya Shishkov, Christophe Gisquet + rv4* Christophe Gisquet s3tc* Ivo van Poorten - smacker.c Kostya Shishkov smc.c Mike Melanson smvjpegdec.c Ash Hughes snow* Michael Niedermayer, Loren Merritt @@ -262,54 +229,41 @@ Codecs: sunrast.c Ivo van Poorten svq3.c Michael Niedermayer tak* Paul B Mahol - targa.c Kostya Shishkov - tiff.c Kostya Shishkov truemotion1* Mike Melanson - truemotion2* Kostya Shishkov - truespeech.c Kostya Shishkov - tscc.c Kostya Shishkov tta.c Alex Beregszaszi, Jaikrishnan Menon ttaenc.c Paul B Mahol txd.c Ivo van Poorten - ulti* Kostya Shishkov - v410*.c Derek Buitenhuis - vb.c Kostya Shishkov - vble.c Derek Buitenhuis - vc1* Kostya Shishkov, Christophe Gisquet + vc1* Christophe Gisquet vc2* Rostislav Pehlivanov vcr1.c Michael Niedermayer vda_h264_dec.c Xidorn Quan + videotoolboxenc.c Rick Kern vima.c Paul B Mahol - vmnc.c Kostya Shishkov vorbisdec.c Denes Balatoni, David Conrad vorbisenc.c Oded Shimon vp3* Mike Melanson vp5 Aurelien Jacobs vp6 Aurelien Jacobs - vp8 David Conrad, Jason Garrett-Glaser, Ronald Bultje - vp9 Ronald Bultje, Clément Bœsch + vp8 David Conrad, Ronald Bultje + vp9 Ronald Bultje vqavideo.c Mike Melanson - wavpack.c Kostya Shishkov wmaprodec.c Sascha Sommer wmavoice.c Ronald S. Bultje wmv2.c Michael Niedermayer - wnv1.c Kostya Shishkov xan.c Mike Melanson xbm* Paul B Mahol xface Stefano Sabatini - xl.c Kostya Shishkov xvmc.c Ivan Kalvachev xwd* Paul B Mahol - zerocodec.c Derek Buitenhuis - zmbv* Kostya Shishkov Hardware acceleration: crystalhd.c Philip Langdale dxva2* Hendrik Leppkes, Laurent Aimar + mediacodec* Matthieu Bouron vaapi* Gwenole Beauchesne - vda* Sebastien Zwickert + vaapi_encode* Mark Thompson vdpau* Philip Langdale, Carl Eugen Hoyos - videotoolbox* Sebastien Zwickert + videotoolbox* Rick Kern libavdevice @@ -353,7 +307,9 @@ Filters: af_biquads.c Paul B Mahol af_chorus.c Paul B Mahol af_compand.c Paul B Mahol + af_firequalizer.c Muhammad Faiz af_ladspa.c Paul B Mahol + af_loudnorm.c Kyle Swanson af_pan.c Nicolas George af_sidechaincompress.c Paul B Mahol af_silenceremove.c Paul B Mahol @@ -366,6 +322,7 @@ Filters: vf_colorbalance.c Paul B Mahol vf_colorkey.c Timo Rothenpieler vf_colorlevels.c Paul B Mahol + vf_coreimage.m Thilo Borgmann vf_deband.c Paul B Mahol vf_dejudder.c Nicholas Robbins vf_delogo.c Jean Delvare (CC ) @@ -380,6 +337,7 @@ Filters: vf_neighbor.c Paul B Mahol vf_psnr.c Paul B Mahol vf_random.c Paul B Mahol + vf_readvitc.c Tobias Rapp (CC t.rapp at noa-archive dot com) vf_scale.c Michael Niedermayer vf_separatefields.c Paul B Mahol vf_ssim.c Paul B Mahol @@ -399,6 +357,7 @@ Generic parts: libavformat/avformat.h Michael Niedermayer Utility Code: libavformat/utils.c Michael Niedermayer + Text Subtitles Clément Bœsch Muxers/Demuxers: @@ -408,7 +367,6 @@ Muxers/Demuxers: afc.c Paul B Mahol aiffdec.c Baptiste Coudurier, Matthieu Bouron aiffenc.c Baptiste Coudurier, Matthieu Bouron - ape.c Kostya Shishkov apngdec.c Benoit Fouet ass* Aurelien Jacobs astdec.c Paul B Mahol @@ -422,14 +380,12 @@ Muxers/Demuxers: cdxl.c Paul B Mahol crc.c Michael Niedermayer daud.c Reimar Doeffinger - dss.c Oleksij Rempel, Michael Niedermayer + dss.c Oleksij Rempel dtshddec.c Paul B Mahol dv.c Roman Shaposhnik - dxa.c Kostya Shishkov electronicarts.c Peter Ross epafdec.c Paul B Mahol ffm* Baptiste Coudurier - flac* Justin Ruggles flic.c Mike Melanson flvdec.c, flvenc.c Michael Niedermayer gxf.c Reimar Doeffinger @@ -443,7 +399,6 @@ Muxers/Demuxers: ipmovie.c Mike Melanson ircam* Paul B Mahol iss.c Stefan Gehrer - jacosub* Clément Bœsch jvdec.c Peter Ross libmodplug.c Clément Bœsch libnut.c Oded Shimon @@ -458,10 +413,9 @@ Muxers/Demuxers: mgsts.c Paul B Mahol microdvd* Aurelien Jacobs mm.c Peter Ross - mov.c Michael Niedermayer, Baptiste Coudurier + mov.c Baptiste Coudurier movenc.c Baptiste Coudurier, Matthieu Bouron movenccenc.c Eran Kornblau - mpc.c Kostya Shishkov mpeg.c Michael Niedermayer mpegenc.c Michael Niedermayer mpegts.c Marton Balint @@ -487,8 +441,7 @@ Muxers/Demuxers: raw.c Michael Niedermayer rdt.c Ronald S. Bultje rl2.c Sascha Sommer - rmdec.c, rmenc.c Ronald S. Bultje, Kostya Shishkov - rtmp* Kostya Shishkov + rmdec.c, rmenc.c Ronald S. Bultje rtp.c, rtpenc.c Martin Storsjo rtpdec_ac3.* Gilles Chanteperdrix rtpdec_dv.* Thomas Volkert @@ -496,15 +449,13 @@ Muxers/Demuxers: rtpdec_hevc.*, rtpenc_hevc.* Thomas Volkert rtpdec_mpa_robust.* Gilles Chanteperdrix rtpdec_asf.* Ronald S. Bultje + rtpdec_vc2hq.*, rtpenc_vc2hq.* Thomas Volkert rtpdec_vp9.c Thomas Volkert rtpenc_mpv.*, rtpenc_aac.* Martin Storsjo - rtsp.c Luca Barbato sbgdec.c Nicolas George sdp.c Martin Storsjo segafilm.c Mike Melanson segment.c Stefano Sabatini - siff.c Kostya Shishkov - smacker.c Kostya Shishkov smjpeg* Paul B Mahol spdif* Anssi Hannula srtdec.c Aurelien Jacobs @@ -519,7 +470,6 @@ Muxers/Demuxers: webvtt* Matthew J Heaney westwood.c Mike Melanson wtv.c Peter Ross - wv.c Kostya Shishkov wvenc.c Paul B Mahol Protocols: @@ -550,20 +500,16 @@ Resamplers: Operating systems / CPU architectures ===================================== -Alpha Mans Rullgard, Falk Hueffner -ARM Mans Rullgard -AVR32 Mans Rullgard -MIPS Mans Rullgard, Nedeljko Babic +Alpha Falk Hueffner +MIPS Nedeljko Babic Mac OS X / PowerPC Romain Dolbeau, Guillaume Poirier Amiga / PowerPC Colin Ward -Linux / PowerPC Luca Barbato Windows MinGW Alex Beregszaszi, Ramiro Polla Windows Cygwin Victor Paesa Windows MSVC Matthew Oliver, Hendrik Leppkes Windows ICL Matthew Oliver ADI/Blackfin DSP Marc Hoffman Sparc Roman Shaposhnik -x86 Michael Niedermayer OS/2 KO Myung-Hun @@ -584,7 +530,6 @@ GnuPG Fingerprints of maintainers and contributors Alexander Strasser 1C96 78B7 83CB 8AA7 9AF5 D1EB A7D8 A57B A876 E58F Anssi Hannula 1A92 FF42 2DD9 8D2E 8AF7 65A9 4278 C520 513D F3CB -Anton Khirnov 6D0C 6625 56F8 65D1 E5F5 814B B50A 1241 C067 07AB Ash Hughes 694D 43D2 D180 C7C7 6421 ABD3 A641 D0B7 623D 6029 Attila Kinali 11F0 F9A6 A1D2 11F6 C745 D10C 6520 BCDD F2DF E765 Baptiste Coudurier 8D77 134D 20CC 9220 201F C5DB 0AC9 325C 5C1A BAAA @@ -592,16 +537,13 @@ Ben Littler 3EE3 3723 E560 3214 A8CD 4DEB 2CDB FCE7 768C 8D2C Benoit Fouet B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8 Clément Bœsch 52D0 3A82 D445 F194 DB8B 2B16 87EE 2CB8 F4B8 FCF9 Daniel Verkamp 78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7 -Diego Biurrun 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5 FFmpeg release signing key FCF9 86EA 15E6 E293 A564 4F10 B432 2F04 D676 58D8 Ganesh Ajjanagadde C96A 848E 97C3 CEA2 AB72 5CE4 45F9 6A2D 3C36 FB1B Gwenole Beauchesne 2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4 Jaikrishnan Menon 61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368 Jean Delvare 7CA6 9F44 60F1 BDC4 1FD2 C858 A552 6B9B B3CD 4E6A -Justin Ruggles 3136 ECC0 C10D 6C04 5F43 CA29 FCBE CD2A 3787 1EBF Loren Merritt ABD9 08F4 C920 3F65 D8BE 35D7 1540 DAA7 060F 56DE Lou Logan 7D68 DC73 CBEF EABB 671A B6CF 621C 2E28 82F8 DC3A -Luca Barbato 6677 4209 213C 8843 5B67 29E7 E84C 78C2 84E9 0E34 Michael Niedermayer 9FF2 128B 147E F673 0BAD F133 611E C787 040B 0FAB Nicolas George 24CE 01CE 9ACC 5CEB 74D8 8D9D B063 D997 36E5 4C93 Panagiotis Issaris 6571 13A3 33D9 3726 F728 AA98 F643 B12E ECF3 E029 diff --git a/Makefile b/Makefile index 87a986965..8aa72fd63 100644 --- a/Makefile +++ b/Makefile @@ -30,16 +30,18 @@ $(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog) += cmdutils.o)) $(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog)-$(CONFIG_OPENCL) += cmdutils_opencl.o)) OBJS-ffmpeg += ffmpeg_opt.o ffmpeg_filter.o -OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o -OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.o +OBJS-ffmpeg-$(CONFIG_VIDEOTOOLBOX) += ffmpeg_videotoolbox.o +OBJS-ffmpeg-$(CONFIG_LIBMFX) += ffmpeg_qsv.o +OBJS-ffmpeg-$(CONFIG_VAAPI) += ffmpeg_vaapi.o ifndef CONFIG_VIDEOTOOLBOX OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_videotoolbox.o endif -OBJS-ffmpeg-$(CONFIG_VIDEOTOOLBOX) += ffmpeg_videotoolbox.o -OBJS-ffmpeg-$(CONFIG_LIBMFX) += ffmpeg_qsv.o +OBJS-ffmpeg-$(CONFIG_CUVID) += ffmpeg_cuvid.o +OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.o +OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o OBJS-ffserver += ffserver_config.o -TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 +TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options TOOLS = qt-faststart trasher uncoded_frame TOOLS-$(CONFIG_ZLIB) += cws2fws @@ -59,7 +61,8 @@ FFLIBS := avutil DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README -SKIPHEADERS = cmdutils_common_opts.h compat/w32pthreads.h +SKIPHEADERS = cmdutils_common_opts.h \ + compat/w32pthreads.h include $(SRC_PATH)/common.mak @@ -181,7 +184,7 @@ clean:: distclean:: $(RM) $(DISTCLEANSUFFIXES) - $(RM) config.* .config libavutil/avconfig.h .version avversion.h version.h libavutil/ffversion.h libavcodec/codec_names.h + $(RM) config.* .config libavutil/avconfig.h .version mapfile avversion.h version.h libavutil/ffversion.h libavcodec/codec_names.h libavcodec/bsf_list.c libavformat/protocol_list.c ifeq ($(SRC_LINK),src) $(RM) src endif diff --git a/RELEASE b/RELEASE index b50214693..94ff29cc4 100644 --- a/RELEASE +++ b/RELEASE @@ -1 +1 @@ -3.0.2 +3.1.1 diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 861dc04a1..afa25ae4e 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -1,10 +1,10 @@ - ┌─────────────────────────────────────────┐ - │ RELEASE NOTES for FFmpeg 3.0 "Einstein" │ - └─────────────────────────────────────────┘ + ┌────────────────────────────────────────┐ + │ RELEASE NOTES for FFmpeg 3.1 "Laplace" │ + └────────────────────────────────────────┘ - The FFmpeg Project proudly presents FFmpeg 3.0 "Einstein", about 5 - months after the release of FFmpeg 2.8. + The FFmpeg Project proudly presents FFmpeg 3.1 "Laplace", about 4 + months after the release of FFmpeg 3.0. A complete Changelog is available at the root of the project, and the complete Git history on http://source.ffmpeg.org. diff --git a/VERSION b/VERSION index b50214693..94ff29cc4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.2 +3.1.1 diff --git a/common.mak b/common.mak index 03b51c596..3f2096d23 100644 --- a/common.mak +++ b/common.mak @@ -39,7 +39,7 @@ CCFLAGS = $(CPPFLAGS) $(CFLAGS) OBJCFLAGS += $(EOBJCFLAGS) OBJCCFLAGS = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS) ASFLAGS := $(CPPFLAGS) $(ASFLAGS) -CXXFLAGS += $(CPPFLAGS) $(CFLAGS) +CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS) @@ -114,8 +114,8 @@ FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS) OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%)) -TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o) -TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF)) +TESTOBJS := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o) +TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF)) HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF)) TOOLS += $(TOOLS-yes) @@ -158,9 +158,7 @@ LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a define RULES clean:: - $(RM) $(OBJS) $(OBJS:.o=.d) $(OBJS:.o=$(DEFAULT_YASMD).d) - $(RM) $(HOSTPROGS) - $(RM) $(TOOLS) + $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS) endef $(eval $(RULES)) diff --git a/compat/dispatch_semaphore/semaphore.h b/compat/dispatch_semaphore/semaphore.h new file mode 100644 index 000000000..008c637c0 --- /dev/null +++ b/compat/dispatch_semaphore/semaphore.h @@ -0,0 +1,42 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H +#define COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H + +#include +#include + +#define sem_t dispatch_semaphore_t +#define sem_post(psem) dispatch_semaphore_signal(*psem) +#define sem_wait(psem) dispatch_semaphore_wait(*psem, DISPATCH_TIME_FOREVER) +#define sem_timedwait(psem, val) dispatch_semaphore_wait(*psem, dispatch_walltime(val, 0)) +#define sem_destroy(psem) dispatch_release(*psem) + +static inline int compat_sem_init(dispatch_semaphore_t *psem, + int unused, int val) +{ + int ret = !!(*psem = dispatch_semaphore_create(val)) - 1; + if (ret < 0) + errno = ENOMEM; + return ret; +} + +#define sem_init compat_sem_init + +#endif /* COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H */ diff --git a/configure b/configure index 9103e8560..376064138 100755 --- a/configure +++ b/configure @@ -91,6 +91,7 @@ Standard options: --enable-rpath use rpath to allow installing libraries in paths not part of the dynamic linker search path use rpath when linking programs [USE WITH CARE] + --install-name-dir=DIR Darwin directory name for installed targets Licensing options: --enable-gpl allow use of GPL code, the resulting libs @@ -148,14 +149,6 @@ Component options: --disable-faan disable floating point AAN (I)DCT code --disable-pixelutils disable pixel utils in libavutil -Hardware accelerators: - --disable-d3d11va disable D3D11VA code [autodetect] - --disable-dxva2 disable DXVA2 code [autodetect] - --disable-vaapi disable VAAPI code [autodetect] - --disable-vda disable VDA code [autodetect] - --disable-vdpau disable VDPAU code [autodetect] - --enable-videotoolbox enable VideoToolbox code [autodetect] - Individual component options: --disable-everything disable all components listed below --disable-encoder=NAME disable encoder NAME @@ -194,10 +187,23 @@ Individual component options: --disable-filters disable all filters External library support: + + Using any of the following switches will allow FFmpeg to link to the + corresponding external library. All the components depending on that library + will become enabled, if all their other dependencies are met and they are not + explicitly disabled. E.g. --enable-libwavpack will enable linking to + libwavpack and allow the libwavpack encoder to be built, unless it is + specifically disabled with --disable-encoder=libwavpack. + + Note that only the system libraries are auto-detected. All the other external + libraries must be explicitly enabled. + + Also note that the following help text describes the purpose of the libraries + themselves, not all their features will necessarily be usable by FFmpeg. + --enable-avisynth enable reading of AviSynth script files [no] --disable-bzlib disable bzlib [autodetect] --enable-chromaprint enable audio fingerprinting with chromaprint [no] - --enable-fontconfig enable fontconfig, useful for drawtext filter [no] --enable-frei0r enable frei0r video filtering [no] --enable-gcrypt enable gcrypt, needed for rtmp(t)e support if openssl, librtmp or gmp is not used [no] @@ -206,6 +212,7 @@ External library support: --enable-gnutls enable gnutls, needed for https support if openssl is not used [no] --disable-iconv disable iconv [autodetect] + --enable-jni enable JNI support [no] --enable-ladspa enable LADSPA audio filtering [no] --enable-libass enable libass subtitles rendering, needed for subtitles and ass filter [no] @@ -216,10 +223,12 @@ External library support: --enable-libcdio enable audio CD grabbing with libcdio [no] --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no] - --enable-libdcadec enable DCA decoding via libdcadec [no] + --enable-libebur128 enable libebur128 for EBU R128 measurement, + needed for loudnorm filter [no] --enable-libfaac enable AAC encoding via libfaac [no] --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] --enable-libflite enable flite (voice synthesis) support via libflite [no] + --enable-libfontconfig enable libfontconfig, useful for drawtext filter [no] --enable-libfreetype enable libfreetype, needed for drawtext filter [no] --enable-libfribidi enable libfribidi, improves drawtext filter [no] --enable-libgme enable Game Music Emu via libgme [no] @@ -227,7 +236,6 @@ External library support: --enable-libiec61883 enable iec61883 via libiec61883 [no] --enable-libilbc enable iLBC de/encoding via libilbc [no] --enable-libkvazaar enable HEVC encoding via libkvazaar [no] - --enable-libmfx enable HW acceleration through libmfx --enable-libmodplug enable ModPlug via libmodplug [no] --enable-libmp3lame enable MP3 encoding via libmp3lame [no] --enable-libnut enable NUT (de)muxing via libnut, @@ -251,7 +259,6 @@ External library support: --enable-libtesseract enable Tesseract, needed for ocr filter [no] --enable-libtheora enable Theora encoding via libtheora [no] --enable-libtwolame enable MP2 encoding via libtwolame [no] - --enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no] --enable-libv4l2 enable libv4l2/v4l-utils [no] --enable-libvidstab enable video stabilization using vid.stab [no] --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no] @@ -274,9 +281,8 @@ External library support: --enable-libzvbi enable teletext support via libzvbi [no] --disable-lzma disable lzma [autodetect] --enable-decklink enable Blackmagic DeckLink I/O support [no] - --enable-mmal enable decoding via MMAL [no] + --enable-mediacodec enable Android MediaCodec support [no] --enable-netcdf enable NetCDF, needed for sofalizer filter [no] - --enable-nvenc enable NVIDIA NVENC support [no] --enable-openal enable OpenAL 1.1 capture support [no] --enable-opencl enable OpenCL code --enable-opengl enable OpenGL rendering [no] @@ -291,6 +297,23 @@ External library support: --disable-xlib disable xlib [autodetect] --disable-zlib disable zlib [autodetect] + The following libraries provide various hardware acceleration features: + --disable-audiotoolbox disable Apple AudioToolbox code [autodetect] + --enable-cuda enable dynamically linked Nvidia CUDA code [no] + --enable-cuvid enable Nvidia CUVID support [autodetect] + --disable-d3d11va disable Microsoft Direct3D 11 video acceleration code [autodetect] + --disable-dxva2 disable Microsoft DirectX 9 video acceleration code [autodetect] + --enable-libmfx enable Intel MediaSDK (AKA Quick Sync Video) code via libmfx [no] + --enable-libnpp enable Nvidia Performance Primitives-based code [no] + --enable-mmal enable Broadcom Multi-Media Abstraction Layer (Raspberry Pi) via MMAL [no] + --enable-nvenc enable Nvidia video encoding code [no] + --enable-omx enable OpenMAX IL code [no] + --enable-omx-rpi enable OpenMAX IL code for Raspberry Pi [no] + --disable-vaapi disable Video Acceleration API (mainly Unix/Intel) code [autodetect] + --disable-vda disable Apple Video Decode Acceleration code [autodetect] + --disable-vdpau disable Nvidia Video Decode and Presentation API for Unix code [autodetect] + --disable-videotoolbox disable VideoToolbox code [autodetect] + Toolchain options: --arch=ARCH select architecture [$arch] --cpu=CPU select the minimum required CPU (affects @@ -309,6 +332,8 @@ Toolchain options: --nm=NM use nm tool NM [$nm_default] --ar=AR use archive tool AR [$ar_default] --as=AS use assembler AS [$as_default] + --ln_s=LN_S use symbolic link tool LN_S [$ln_s_default] + --strip=STRIP use strip tool STRIP [$strip_default] --windres=WINDRES use windows resource compiler WINDRES [$windres_default] --yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default] --cc=CC use C compiler CC [$cc_default] @@ -762,7 +787,7 @@ print_enabled(){ suf=$1 shift for v; do - enabled $v && printf "%s\n" ${v%$suf}; + enabled $v && printf "%s\n" ${v%$suf} done } @@ -1451,6 +1476,7 @@ EXTERNAL_LIBRARY_LIST=" gmp gnutls iconv + jni ladspa libass libbluray @@ -1459,7 +1485,7 @@ EXTERNAL_LIBRARY_LIST=" libcdio libcelt libdc1394 - libdcadec + libebur128 libfaac libfdk_aac libflite @@ -1471,7 +1497,6 @@ EXTERNAL_LIBRARY_LIST=" libiec61883 libilbc libkvazaar - libmfx libmodplug libmp3lame libnut @@ -1494,7 +1519,6 @@ EXTERNAL_LIBRARY_LIST=" libtesseract libtheora libtwolame - libutvideo libv4l2 libvidstab libvo_amrwbenc @@ -1514,9 +1538,8 @@ EXTERNAL_LIBRARY_LIST=" libzmq libzvbi lzma - mmal + mediacodec netcdf - nvenc openal opencl opengl @@ -1524,11 +1547,30 @@ EXTERNAL_LIBRARY_LIST=" schannel sdl securetransport + videotoolbox x11grab xlib zlib " +HWACCEL_LIBRARY_LIST=" + audiotoolbox + cuda + cuvid + d3d11va + dxva2 + libmfx + libnpp + mmal + nvenc + omx + vaapi + vda + vdpau + videotoolbox_hwaccel + xvmc +" + DOCUMENT_LIST=" doc htmlpages @@ -1541,6 +1583,7 @@ FEATURE_LIST=" ftrapv gray hardcoded_tables + omx_rpi runtime_cpudetect safe_bitstream_reader shared @@ -1549,16 +1592,6 @@ FEATURE_LIST=" swscale_alpha " -HWACCEL_LIST=" - d3d11va - dxva2 - vaapi - vda - vdpau - videotoolbox - xvmc -" - LIBRARY_LIST=" avcodec avdevice @@ -1604,8 +1637,8 @@ CONFIG_LIST=" $DOCUMENT_LIST $EXAMPLE_LIST $EXTERNAL_LIBRARY_LIST + $HWACCEL_LIBRARY_LIST $FEATURE_LIST - $HWACCEL_LIST $LICENSE_LIST $LIBRARY_LIST $PROGRAM_LIST @@ -1752,6 +1785,7 @@ BUILTIN_LIST=" mm_empty rdtsc sarestart + sem_timedwait sync_val_compare_and_swap " HAVE_LIST_CMDLINE=" @@ -1773,6 +1807,7 @@ HEADERS_LIST=" asm_types_h cdio_paranoia_h cdio_paranoia_paranoia_h + dispatch_dispatch_h dev_bktr_ioctl_bt848_h dev_bktr_ioctl_meteor_h dev_ic_bt8xx_h @@ -1943,6 +1978,7 @@ TYPES_LIST=" struct_group_source_req struct_ip_mreq_source struct_ipv6_mreq + struct_msghdr_msg_flags struct_pollfd struct_rusage_ru_maxrss struct_sctp_event_subscribe @@ -1979,12 +2015,14 @@ HAVE_LIST=" libdc1394_2 makeinfo makeinfo_html + MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS perl pod2man sdl section_data_rel_ro texi2html threads + vaapi_drm vaapi_x11 vdpau_x11 winrt @@ -2025,6 +2063,7 @@ CONFIG_EXTRA=" iirfilter imdct15 intrax8 + iso_media ividsp jpegtables lgplv3 @@ -2053,14 +2092,18 @@ CONFIG_EXTRA=" rv34dsp sinewin snappy + srtp startcode texturedsp texturedspenc tpeldsp + vaapi_encode + vc1dsp videodsp vp3dsp vp56dsp vp8dsp + vt_bt2020 wma_freqs wmv2dsp " @@ -2091,6 +2134,7 @@ PATHS_LIST=" pkgconfigdir prefix shlibdir + install_name_dir " CMDLINE_SET=" @@ -2119,6 +2163,7 @@ CMDLINE_SET=" host_os install ld + ln_s logfile malloc_prefix nm @@ -2241,8 +2286,9 @@ dirac_parse_select="golomb" error_resilience_select="me_cmp" faandct_deps="faan fdctdsp" faanidct_deps="faan idctdsp" +h264dsp_select="startcode" frame_thread_encoder_deps="encoders threads" -intrax8_select="error_resilience" +intrax8_select="blockdsp idctdsp" mdct_select="fft" me_cmp_select="fdctdsp idctdsp pixblockdsp" mpeg_er_select="error_resilience" @@ -2250,8 +2296,7 @@ mpegaudio_select="mpegaudiodsp" mpegaudiodsp_select="dct" mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp me_cmp mpeg_er videodsp" mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp" -qsvdec_select="qsv" -qsvenc_select="qsv" +vc1dsp_select="h264chroma qpeldsp startcode" rdft_select="fft" # decoders / encoders @@ -2305,7 +2350,7 @@ eac3_decoder_select="ac3_decoder" eac3_encoder_select="ac3_encoder" eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo" eatgq_decoder_select="aandcttables" -eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpeg1video_decoder" +eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp" exr_decoder_select="zlib" ffv1_decoder_select="golomb rangecoder" ffv1_encoder_select="rangecoder" @@ -2331,20 +2376,12 @@ h263_encoder_select="aandcttables h263dsp mpegvideoenc" h263i_decoder_select="h263_decoder" h263p_decoder_select="h263_decoder" h263p_encoder_select="h263_encoder" -h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel startcode videodsp" +h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel videodsp" h264_decoder_suggest="error_resilience" -h264_qsv_decoder_deps="libmfx" -h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel" -h264_qsv_encoder_deps="libmfx" -h264_qsv_encoder_select="qsvenc" hap_decoder_select="snappy texturedsp" hap_encoder_deps="libsnappy" hap_encoder_select="texturedspenc" hevc_decoder_select="bswapdsp cabac golomb videodsp" -hevc_qsv_decoder_deps="libmfx" -hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec hevc_qsv_hwaccel" -hevc_qsv_encoder_deps="libmfx" -hevc_qsv_encoder_select="qsvenc" huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp" huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llviddsp" iac_decoder_select="imc_decoder" @@ -2359,12 +2396,15 @@ jv_decoder_select="blockdsp" lagarith_decoder_select="huffyuvdsp" ljpeg_encoder_select="aandcttables idctdsp jpegtables" loco_decoder_select="golomb" +magicyuv_decoder_select="huffyuvdsp" mdec_decoder_select="blockdsp idctdsp mpegvideo" metasound_decoder_select="lsp mdct sinewin" mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp jpegtables" mjpeg_encoder_select="aandcttables jpegtables mpegvideoenc" mjpegb_decoder_select="mjpeg_decoder" +mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG" +mjpeg_vaapi_encoder_select="vaapi_encode jpegtables" mlp_decoder_select="mlp_parser" motionpixels_decoder_select="bswapdsp" mp1_decoder_select="mpegaudio" @@ -2386,10 +2426,6 @@ mpeg1video_decoder_select="mpegvideo" mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp" mpeg2video_decoder_select="mpegvideo" mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp" -mpeg2_qsv_decoder_deps="libmfx" -mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel" -mpeg2_qsv_encoder_deps="libmfx" -mpeg2_qsv_encoder_select="qsvenc" mpeg4_decoder_select="h263_decoder mpeg4video_parser" mpeg4_encoder_select="h263_encoder" msa1_decoder_select="mss34dsp" @@ -2398,7 +2434,7 @@ msmpeg4v2_decoder_select="h263_decoder" msmpeg4v2_encoder_select="h263_encoder" msmpeg4v3_decoder_select="h263_decoder" msmpeg4v3_encoder_select="h263_encoder" -mss2_decoder_select="vc1_decoder" +mss2_decoder_select="vc1_decoder mpegvideo" mts2_decoder_select="mss34dsp" mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" @@ -2436,7 +2472,7 @@ sonic_ls_encoder_select="golomb rangecoder" sp5x_decoder_select="mjpeg_decoder" svq1_decoder_select="hpeldsp" svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc" -svq3_decoder_select="h264_decoder hpeldsp tpeldsp" +svq3_decoder_select="golomb h264dsp h264pred hpeldsp tpeldsp videodsp" svq3_decoder_suggest="zlib" tak_decoder_select="audiodsp" tdsc_decoder_select="zlib mjpeg_decoder" @@ -2453,7 +2489,7 @@ txd_decoder_select="texturedsp" utvideo_decoder_select="bswapdsp" utvideo_encoder_select="bswapdsp huffman huffyuvencdsp" vble_decoder_select="huffyuvdsp" -vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 qpeldsp startcode" +vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 mpegvideo vc1dsp" vc1_qsv_decoder_deps="libmfx" vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel" vc1image_decoder_select="vc1_decoder" @@ -2477,7 +2513,7 @@ wmav2_encoder_select="mdct sinewin wma_freqs" wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" -wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp wmv2dsp" +wmv2_decoder_select="blockdsp error_resilience h263_decoder idctdsp intrax8 videodsp wmv2dsp" wmv2_encoder_select="h263_encoder wmv2dsp" wmv3_decoder_select="vc1_decoder" wmv3image_decoder_select="wmv3_decoder" @@ -2489,16 +2525,23 @@ zlib_encoder_select="zlib" zmbv_decoder_select="zlib" zmbv_encoder_select="zlib" +# platform codecs +audiotoolbox_deps="AudioToolbox_AudioToolbox_h" +audiotoolbox_extralibs="-framework CoreFoundation -framework AudioToolbox -framework CoreMedia" + # hardware accelerators crystalhd_deps="libcrystalhd_libcrystalhd_if_h" +cuvid_deps="cuda" d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder ID3D11VideoContext" dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode" vaapi_deps="va_va_h" -vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" -vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore" +vda_framework_deps="VideoDecodeAcceleration_VDADecoder_h" +vda_framework_extralibs="-framework VideoDecodeAcceleration" +vda_deps="vda_framework pthreads" +vda_extralibs="-framework CoreFoundation -framework QuartzCore" vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" -videotoolbox_deps="VideoToolbox_VideoToolbox_h pthreads" -videotoolbox_extralibs="-framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework QuartzCore -framework CoreVideo" +videotoolbox_hwaccel_deps="videotoolbox pthreads" +videotoolbox_hwaccel_extralibs="-framework QuartzCore" xvmc_deps="X11_extensions_XvMClib_h" h263_vaapi_hwaccel_deps="vaapi" @@ -2506,13 +2549,17 @@ h263_vaapi_hwaccel_select="h263_decoder" h263_videotoolbox_hwaccel_deps="videotoolbox" h263_videotoolbox_hwaccel_select="h263_decoder" h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" +h264_cuvid_hwaccel_deps="cuda cuvid CUVIDH264PICPARAMS" h264_d3d11va_hwaccel_deps="d3d11va" h264_d3d11va_hwaccel_select="h264_decoder" h264_dxva2_hwaccel_deps="dxva2" h264_dxva2_hwaccel_select="h264_decoder" +h264_mediacodec_decoder_deps="mediacodec" +h264_mediacodec_decoder_select="h264_mp4toannexb_bsf h264_parser" h264_mmal_decoder_deps="mmal" h264_mmal_decoder_select="mmal" h264_mmal_hwaccel_deps="mmal" +h264_omx_encoder_deps="omx" h264_qsv_hwaccel_deps="libmfx" h264_vaapi_hwaccel_deps="vaapi" h264_vaapi_hwaccel_select="h264_decoder" @@ -2528,6 +2575,7 @@ h264_vdpau_hwaccel_deps="vdpau" h264_vdpau_hwaccel_select="h264_decoder" h264_videotoolbox_hwaccel_deps="videotoolbox" h264_videotoolbox_hwaccel_select="h264_decoder" +hevc_cuvid_hwaccel_deps="cuda cuvid CUVIDHEVCPICPARAMS" hevc_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_HEVC" hevc_d3d11va_hwaccel_select="hevc_decoder" hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" @@ -2571,6 +2619,7 @@ mpeg4_crystalhd_decoder_select="crystalhd" mpeg4_mmal_decoder_deps="mmal" mpeg4_mmal_decoder_select="mmal" mpeg4_mmal_hwaccel_deps="mmal" +mpeg4_omx_encoder_deps="omx" mpeg4_vaapi_hwaccel_deps="vaapi" mpeg4_vaapi_hwaccel_select="mpeg4_decoder" mpeg4_vdpau_decoder_deps="vdpau" @@ -2581,6 +2630,7 @@ mpeg4_videotoolbox_hwaccel_deps="videotoolbox" mpeg4_videotoolbox_hwaccel_select="mpeg4_decoder" msmpeg4_crystalhd_decoder_select="crystalhd" vc1_crystalhd_decoder_select="crystalhd" +vc1_cuvid_hwaccel_deps="cuda cuvid CUVIDVC1PICPARAMS" vc1_d3d11va_hwaccel_deps="d3d11va" vc1_d3d11va_hwaccel_select="vc1_decoder" vc1_dxva2_hwaccel_deps="dxva2" @@ -2596,6 +2646,8 @@ vc1_vdpau_decoder_deps="vdpau" vc1_vdpau_decoder_select="vc1_decoder" vc1_vdpau_hwaccel_deps="vdpau" vc1_vdpau_hwaccel_select="vc1_decoder" +vp8_cuvid_hwaccel_deps="cuda cuvid CUVIDVP9PICPARAMS" +vp9_cuvid_hwaccel_deps="cuda cuvid CUVIDVP9PICPARAMS" vp9_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_VP9" vp9_d3d11va_hwaccel_select="vp9_decoder" vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9" @@ -2609,20 +2661,91 @@ wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" wmv3_vdpau_decoder_select="vc1_vdpau_decoder" wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" +# hardware-accelerated codecs +omx_deps="dlopen pthreads" +omx_extralibs='$ldl' +qsvdec_select="qsv" +qsvenc_select="qsv" +vaapi_encode_deps="vaapi" + +hwupload_cuda_filter_deps="cuda" +scale_npp_filter_deps="cuda libnpp" + +nvenc_encoder_deps="nvenc" +h264_cuvid_decoder_deps="cuda cuvid CUVIDH264PICPARAMS" +h264_cuvid_decoder_select="h264_mp4toannexb_bsf h264_cuvid_hwaccel" +h264_nvenc_encoder_deps="nvenc" +h264_qsv_decoder_deps="libmfx" +h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel" +h264_qsv_encoder_deps="libmfx" +h264_qsv_encoder_select="qsvenc" +h264_vaapi_encoder_deps="VAEncPictureParameterBufferH264" +h264_vaapi_encoder_select="vaapi_encode golomb" + +hevc_cuvid_decoder_deps="cuda cuvid CUVIDHEVCPICPARAMS" +hevc_cuvid_decoder_select="hevc_mp4toannexb_bsf hevc_cuvid_hwaccel" +hevc_nvenc_encoder_deps="nvenc" +hevc_qsv_decoder_deps="libmfx" +hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec hevc_qsv_hwaccel" +hevc_qsv_encoder_deps="libmfx" +hevc_qsv_encoder_select="qsvenc" +hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC" +hevc_vaapi_encoder_select="vaapi_encode golomb" +mpeg2_qsv_decoder_deps="libmfx" +mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel" +mpeg2_qsv_encoder_deps="libmfx" +mpeg2_qsv_encoder_select="qsvenc" +nvenc_h264_encoder_deps="nvenc" +nvenc_hevc_encoder_deps="nvenc" + +vc1_cuvid_decoder_deps="cuda cuvid CUVIDVC1PICPARAMS" +vc1_cuvid_decoder_select="vc1_cuvid_hwaccel" +vp8_cuvid_decoder_deps="cuda cuvid CUVIDVP9PICPARAMS" +vp8_cuvid_decoder_select="vp8_cuvid_hwaccel" +vp9_cuvid_decoder_deps="cuda cuvid CUVIDVP9PICPARAMS" +vp9_cuvid_decoder_select="vp9_cuvid_hwaccel" + # parsers -h264_parser_select="h264_decoder" +h264_parser_select="golomb h264dsp" hevc_parser_select="golomb" mpegvideo_parser_select="mpegvideo" mpeg4video_parser_select="h263dsp mpegvideo qpeldsp" -vc1_parser_select="mpegvideo startcode vc1_decoder" +vc1_parser_select="vc1dsp" # bitstream_filters mjpeg2jpeg_bsf_select="jpegtables" # external libraries +aac_at_decoder_deps="audiotoolbox" +ac3_at_decoder_deps="audiotoolbox" +ac3_at_decoder_select="ac3_parser" +adpcm_ima_qt_at_decoder_deps="audiotoolbox" +alac_at_decoder_deps="audiotoolbox" +amr_nb_at_decoder_deps="audiotoolbox" +eac3_at_decoder_deps="audiotoolbox" +eac3_at_decoder_select="ac3_parser" +gsm_ms_at_decoder_deps="audiotoolbox" +ilbc_at_decoder_deps="audiotoolbox" +mp1_at_decoder_deps="audiotoolbox" +mp2_at_decoder_deps="audiotoolbox" +mp3_at_decoder_deps="audiotoolbox" +pcm_alaw_at_decoder_deps="audiotoolbox" +pcm_mulaw_at_decoder_deps="audiotoolbox" +qdmc_at_decoder_deps="audiotoolbox" +qdm2_at_decoder_deps="audiotoolbox" +aac_at_encoder_deps="audiotoolbox" +aac_at_encoder_select="audio_frame_queue" +alac_at_encoder_deps="audiotoolbox" +alac_at_encoder_select="audio_frame_queue" +ilbc_at_encoder_deps="audiotoolbox" +ilbc_at_encoder_select="audio_frame_queue" +pcm_alaw_at_encoder_deps="audiotoolbox" +pcm_alaw_at_encoder_select="audio_frame_queue" +pcm_mulaw_at_encoder_deps="audiotoolbox" +pcm_mulaw_at_encoder_select="audio_frame_queue" chromaprint_muxer_deps="chromaprint" +h264_videotoolbox_encoder_deps="videotoolbox_encoder pthreads" libcelt_decoder_deps="libcelt" -libdcadec_decoder_deps="libdcadec" libfaac_encoder_deps="libfaac" libfaac_encoder_select="audio_frame_queue" libfdk_aac_decoder_deps="libfdk_aac" @@ -2658,8 +2781,6 @@ libspeex_encoder_deps="libspeex" libspeex_encoder_select="audio_frame_queue" libtheora_encoder_deps="libtheora" libtwolame_encoder_deps="libtwolame" -libutvideo_decoder_deps="libutvideo" -libutvideo_encoder_deps="libutvideo" libvo_amrwbenc_encoder_deps="libvo_amrwbenc" libvorbis_decoder_deps="libvorbis" libvorbis_encoder_deps="libvorbis" @@ -2673,15 +2794,17 @@ libwebp_encoder_deps="libwebp" libwebp_anim_encoder_deps="libwebp" libx262_encoder_deps="libx262" libx264_encoder_deps="libx264" -libx264rgb_encoder_deps="libx264" +libx264rgb_encoder_deps="libx264 x264_csp_bgr" libx264rgb_encoder_select="libx264_encoder" libx265_encoder_deps="libx265" libxavs_encoder_deps="libxavs" libxvid_encoder_deps="libxvid" libzvbi_teletext_decoder_deps="libzvbi" -nvenc_encoder_deps="nvenc" -nvenc_h264_encoder_deps="nvenc" -nvenc_hevc_encoder_deps="nvenc" +videotoolbox_deps="VideoToolbox_VideoToolbox_h" +videotoolbox_extralibs="-framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo" +videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames" +videotoolbox_encoder_suggest="vda_framework vt_bt2020" +vt_bt2020_deps="kCVImageBufferColorPrimaries_ITU_R_2020" # demuxers / muxers ac3_demuxer_select="ac3_parser" @@ -2689,11 +2812,11 @@ asf_demuxer_select="riffdec" asf_o_demuxer_select="riffdec" asf_muxer_select="riffenc" asf_stream_muxer_select="asf_muxer" -avi_demuxer_select="riffdec exif" +avi_demuxer_select="iso_media riffdec exif" avi_muxer_select="riffenc" avisynth_demuxer_deps="avisynth" avisynth_demuxer_select="riffdec" -caf_demuxer_select="riffdec" +caf_demuxer_select="iso_media riffdec" dash_muxer_select="mp4_muxer" dirac_demuxer_select="dirac_parser" dts_demuxer_select="dca_parser" @@ -2713,15 +2836,16 @@ ismv_muxer_select="mov_muxer" libnut_demuxer_deps="libnut" libnut_muxer_deps="libnut" matroska_audio_muxer_select="matroska_muxer" -matroska_demuxer_select="riffdec" +matroska_demuxer_select="iso_media riffdec" matroska_demuxer_suggest="bzlib lzo zlib" -matroska_muxer_select="riffenc" +matroska_muxer_select="iso_media riffenc" mmf_muxer_select="riffenc" -mov_demuxer_select="riffdec" +mov_demuxer_select="iso_media riffdec" mov_demuxer_suggest="zlib" -mov_muxer_select="riffenc rtpenc_chain" +mov_muxer_select="iso_media riffenc rtpenc_chain" mp3_demuxer_select="mpegaudio_parser" mp4_muxer_select="mov_muxer" +mpegts_demuxer_select="iso_media" mpegts_muxer_select="adts_muxer latm_muxer" mpegtsraw_demuxer_select="mpegts_demuxer" mxf_d10_muxer_select="mxf_muxer" @@ -2733,7 +2857,7 @@ ogg_demuxer_select="dirac_parse" opus_muxer_select="ogg_muxer" psp_muxer_select="mov_muxer" rtp_demuxer_select="sdp_demuxer" -rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol" +rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol srtp" rtsp_demuxer_select="http_protocol rtpdec" rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain" sap_demuxer_select="sdp_demuxer" @@ -2751,9 +2875,10 @@ w64_demuxer_select="wav_demuxer" w64_muxer_select="wav_muxer" wav_demuxer_select="riffdec" wav_muxer_select="riffenc" -webm_muxer_select="riffenc" -wtv_demuxer_select="riffdec" -wtv_muxer_select="riffenc" +webm_muxer_select="iso_media riffenc" +webm_dash_manifest_demuxer_select="matroska_demuxer" +wtv_demuxer_select="mpegts_demuxer riffdec" +wtv_muxer_select="mpegts_muxer riffenc" xmv_demuxer_select="riffdec" xwma_demuxer_select="riffdec" @@ -2778,7 +2903,8 @@ gdigrab_indev_deps="CreateDIBSection" gdigrab_indev_extralibs="-lgdi32" gdigrab_indev_select="bmp_decoder" iec61883_indev_deps="libiec61883" -jack_indev_deps="jack_jack_h sem_timedwait" +jack_indev_deps="jack_jack_h" +jack_indev_deps_any="sem_timedwait dispatch_dispatch_h" lavfi_indev_deps="avfilter" libcdio_indev_deps="libcdio" libdc1394_indev_deps="libdc1394" @@ -2836,9 +2962,9 @@ rtmpt_protocol_select="ffrtmphttp_protocol" rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" rtp_protocol_select="udp_protocol" -sctp_protocol_deps="struct_sctp_event_subscribe" +sctp_protocol_deps="struct_sctp_event_subscribe struct_msghdr_msg_flags" sctp_protocol_select="network" -srtp_protocol_select="rtp_protocol" +srtp_protocol_select="rtp_protocol srtp" tcp_protocol_select="network" tls_gnutls_protocol_deps="gnutls !tls_schannel_protocol !tls_securetransport_protocol" tls_gnutls_protocol_select="tcp_protocol" @@ -2878,7 +3004,10 @@ eq_filter_deps="gpl" fftfilt_filter_deps="avcodec" fftfilt_filter_select="rdft" find_rect_filter_deps="avcodec avformat gpl" +firequalizer_filter_deps="avcodec" +firequalizer_filter_select="rdft" flite_filter_deps="libflite" +framerate_filter_select="pixelutils" frei0r_filter_deps="frei0r dlopen" frei0r_src_filter_deps="frei0r dlopen" fspp_filter_deps="gpl" @@ -2888,6 +3017,7 @@ hqdn3d_filter_deps="gpl" interlace_filter_deps="gpl" kerndeint_filter_deps="gpl" ladspa_filter_deps="ladspa dlopen" +loudnorm_filter_deps="libebur128" mcdeint_filter_deps="avcodec gpl" movie_filter_deps="avcodec avformat" mpdecimate_filter_deps="gpl" @@ -2940,6 +3070,7 @@ vidstabtransform_filter_deps="libvidstab" zmq_filter_deps="libzmq" zoompan_filter_deps="swscale" zscale_filter_deps="libzimg" +scale_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer" # examples avcodec_example_deps="avcodec avutil" @@ -3011,7 +3142,7 @@ host_cc_default="gcc" cp_f="cp -f" doxygen_default="doxygen" install="install" -ln_s="ln -s -f" +ln_s_default="ln -s -f" nm_default="nm -g" objformat="elf" pkg_config_default=pkg-config @@ -3055,10 +3186,15 @@ enable valgrind_backtrace sws_max_filter_size_default=256 set_default sws_max_filter_size +# Enable platform codecs by default. +enable audiotoolbox + # Enable hwaccels by default. -enable d3d11va dxva2 vaapi vda vdpau videotoolbox xvmc +enable d3d11va dxva2 vaapi vda vdpau videotoolbox_hwaccel xvmc enable xlib +enable vda_framework videotoolbox videotoolbox_encoder + # build settings SHFLAGS='-shared -Wl,-soname,$$(@F)' LIBPREF="lib" @@ -3137,14 +3273,22 @@ ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c) DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c) HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c) PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c) -BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c) MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c) DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c) OUTDEV_LIST=$(find_things outdev OUTDEV libavdevice/alldevices.c) INDEV_LIST=$(find_things indev _IN libavdevice/alldevices.c) -PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c) FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) +find_things_extern(){ + thing=$1 + pattern=$2 + file=$source_path/$3 + sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$thing/p" "$file" +} + +BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c) +PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c) + ALL_COMPONENTS=" $BSF_LIST $DECODER_LIST @@ -3315,43 +3459,42 @@ set >> $logfile test -n "$valgrind" && toolchain="valgrind-memcheck" case "$toolchain" in - clang-asan) - cc_default="clang" + *-asan) + cc_default="${toolchain%-asan}" add_cflags -fsanitize=address add_ldflags -fsanitize=address ;; - clang-tsan) - cc_default="clang" + *-msan) + cc_default="${toolchain%-msan}" + add_cflags -fsanitize=memory -fsanitize-memory-track-origins + add_ldflags -fsanitize=memory + ;; + *-tsan) + cc_default="${toolchain%-tsan}" add_cflags -fsanitize=thread -pie add_ldflags -fsanitize=thread -pie + case "$toolchain" in + gcc-tsan) + add_cflags -fPIC + add_ldflags -fPIC + ;; + esac ;; - clang-usan) - cc_default="clang" + *-usan) + cc_default="${toolchain%-usan}" add_cflags -fsanitize=undefined add_ldflags -fsanitize=undefined ;; - gcc-asan) - cc_default="gcc" - add_cflags -fsanitize=address - add_ldflags -fsanitize=address - ;; - gcc-tsan) - cc_default="gcc" - add_cflags -fsanitize=thread -pie -fPIC - add_ldflags -fsanitize=thread -pie -fPIC - ;; - gcc-usan) - cc_default="gcc" - add_cflags -fsanitize=undefined - add_ldflags -fsanitize=undefined - ;; - valgrind-massif) - target_exec_default=${valgrind:-"valgrind"} - target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc" - ;; - valgrind-memcheck) - target_exec_default=${valgrind:-"valgrind"} - target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" + valgrind-*) + target_exec_default="valgrind" + case "$toolchain" in + valgrind-massif) + target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc" + ;; + valgrind-memcheck) + target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" + ;; + esac ;; msvc) # Check whether the current MSVC version needs the C99 converter. @@ -3393,6 +3536,10 @@ case "$toolchain" in add_cflags -fprofile-arcs -ftest-coverage add_ldflags -fprofile-arcs -ftest-coverage ;; + llvm-cov) + add_cflags -fprofile-arcs -ftest-coverage + add_ldflags --coverage + ;; hardened) add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 add_cflags -fno-strict-overflow -fstack-protector-all @@ -3918,7 +4065,7 @@ test -n "$cc_type" && enable $cc_type || : ${dep_cc_default:=$cc} : ${ld_default:=$cc} : ${host_ld_default:=$host_cc} -set_default ar as objcc dep_cc ld host_ld windres +set_default ar as objcc dep_cc ld ln_s host_ld windres probe_cc as "$as" asflags_filter=$_flags_filter @@ -4093,26 +4240,26 @@ elif enabled arm; then } probe_arm_arch() { - if check_arm_arch 4; then echo armv4; - elif check_arm_arch 4T; then echo armv4t; - elif check_arm_arch 5; then echo armv5; - elif check_arm_arch 5E; then echo armv5e; - elif check_arm_arch 5T; then echo armv5t; - elif check_arm_arch 5TE; then echo armv5te; - elif check_arm_arch 5TEJ; then echo armv5te; - elif check_arm_arch 6; then echo armv6; - elif check_arm_arch 6J; then echo armv6j; - elif check_arm_arch 6K; then echo armv6k; - elif check_arm_arch 6Z; then echo armv6z; - elif check_arm_arch 6ZK; then echo armv6zk; - elif check_arm_arch 6T2; then echo armv6t2; - elif check_arm_arch 7; then echo armv7; - elif check_arm_arch 7A 7_A; then echo armv7-a; - elif check_arm_arch 7S; then echo armv7-a; - elif check_arm_arch 7R 7_R; then echo armv7-r; - elif check_arm_arch 7M 7_M; then echo armv7-m; - elif check_arm_arch 7EM 7E_M; then echo armv7-m; - elif check_arm_arch 8A 8_A; then echo armv8-a; + if check_arm_arch 4; then echo armv4 + elif check_arm_arch 4T; then echo armv4t + elif check_arm_arch 5; then echo armv5 + elif check_arm_arch 5E; then echo armv5e + elif check_arm_arch 5T; then echo armv5t + elif check_arm_arch 5TE; then echo armv5te + elif check_arm_arch 5TEJ; then echo armv5te + elif check_arm_arch 6; then echo armv6 + elif check_arm_arch 6J; then echo armv6j + elif check_arm_arch 6K; then echo armv6k + elif check_arm_arch 6Z; then echo armv6z + elif check_arm_arch 6ZK; then echo armv6zk + elif check_arm_arch 6T2; then echo armv6t2 + elif check_arm_arch 7; then echo armv7 + elif check_arm_arch 7A 7_A; then echo armv7-a + elif check_arm_arch 7S; then echo armv7-a + elif check_arm_arch 7R 7_R; then echo armv7-r + elif check_arm_arch 7M 7_M; then echo armv7-m + elif check_arm_arch 7EM 7E_M; then echo armv7-m + elif check_arm_arch 8A 8_A; then echo armv8-a fi } @@ -4382,6 +4529,7 @@ fi add_cppflags -D_ISOC99_SOURCE add_cxxflags -D__STDC_CONSTANT_MACROS +add_cxxflags -std=c++98 check_cflags -std=c99 check_cc -D_FILE_OFFSET_BITS=64 < @@ -4506,7 +4654,8 @@ case $target_os in ;; darwin) enabled ppc && add_asflags -force_cpusubtype_ALL - SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + install_name_dir_default='$(SHLIBDIR)' + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(INSTALL_NAME_DIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress strip="${strip} -x" add_ldflags -Wl,-dynamic,-search_paths_first @@ -4517,9 +4666,11 @@ case $target_os in enabled x86_64 && objformat="macho64" enabled_any pic shared x86_64 || { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; } + check_header dispatch/dispatch.h && + add_cppflags '-I\$(SRC_PATH)/compat/dispatch_semaphore' ;; msys*) - die "Native MSYS builds are discouraged, please use the MINGW environment."; + die "Native MSYS builds are discouraged, please use the MINGW environment." ;; mingw32*|mingw64*) if test $target_os = "mingw32ce"; then @@ -4566,9 +4717,9 @@ case $target_os in # however ld then forgets what the entry point should be (oops) so we # have to manually (re)set it. if enabled x86_32; then - add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup + disabled debug && add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup elif enabled x86_64; then - add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup + disabled debug && add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup check_ldflags -Wl,--high-entropy-va # binutils 2.25 # Set image base >4GB for extra entropy with HEASLR add_ldexeflags -Wl,--image-base,0x140000000 @@ -4631,7 +4782,6 @@ case $target_os in ;; os/2*) strip="lxlite -CS" - ln_s="cp -f" objformat="aout" add_cppflags -D_GNU_SOURCE add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap @@ -4639,16 +4789,18 @@ case $target_os in LIBSUF="_s.a" SLIBPREF="" SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' - SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \ - echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \ - echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \ - echo EXPORTS >> $(SUBDIR)$(NAME).def; \ - emxexp $(OBJS) >> $(SUBDIR)$(NAME).def' - SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \ - emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' - SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(FULLNAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' + SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(FULLNAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(FULLNAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(FULLNAME).def; \ + echo EXPORTS >> $(SUBDIR)$(FULLNAME).def; \ + emxexp $(OBJS) >> $(SUBDIR)$(FULLNAME).def' + SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.a $(SUBDIR)$(FULLNAME).def; \ + emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.lib $(SUBDIR)$(FULLNAME).def;' + SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' + SLIB_INSTALL_LINKS= + SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(FULLNAME)_dll.a $(LIBPREF)$(FULLNAME)_dll.lib' enable dos_paths enable_weak os2threads ;; @@ -4853,7 +5005,7 @@ Specify --enable-static to build the static libraries or --enable-shared to build the shared libraries as well. To only build the shared libraries specify --disable-static in addition to --enable-shared. EOF - exit 1; + exit 1 fi die_license_disabled() { @@ -4868,7 +5020,6 @@ die_license_disabled gpl frei0r die_license_disabled gpl libcdio die_license_disabled gpl librubberband die_license_disabled gpl libsmbclient -die_license_disabled gpl libutvideo die_license_disabled gpl libvidstab die_license_disabled gpl libx264 die_license_disabled gpl libx265 @@ -4876,8 +5027,10 @@ die_license_disabled gpl libxavs die_license_disabled gpl libxvid die_license_disabled gpl x11grab +die_license_disabled nonfree cuda +die_license_disabled nonfree cuvid die_license_disabled nonfree libfaac -die_license_disabled nonfree nvenc +die_license_disabled nonfree libnpp enabled gpl && die_license_disabled_gpl nonfree libfdk_aac enabled gpl && die_license_disabled_gpl nonfree openssl @@ -5215,6 +5368,8 @@ frei0r_filter_extralibs='$ldl' frei0r_src_filter_extralibs='$ldl' ladspa_filter_extralibs='$ldl' nvenc_encoder_extralibs='$ldl' +coreimage_filter_extralibs="-framework QuartzCore -framework AppKit -framework OpenGL" +coreimagesrc_filter_extralibs="-framework QuartzCore -framework AppKit -framework OpenGL" if ! disabled network; then check_func getaddrinfo $network_extralibs @@ -5226,6 +5381,7 @@ if ! disabled network; then check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE check_type poll.h "struct pollfd" check_type netinet/sctp.h "struct sctp_event_subscribe" + check_struct "sys/socket.h" "struct msghdr" msg_flags check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len check_type netinet/in.h "struct sockaddr_in6" check_type "sys/types.h sys/socket.h" "struct sockaddr_storage" @@ -5260,9 +5416,11 @@ check_builtin atomic_compare_exchange "" "int *ptr, *oldval; int newval; __atomi check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()" check_builtin MemoryBarrier windows.h "MemoryBarrier()" check_builtin sarestart signal.h "SA_RESTART" +check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0); sem_timedwait(s,0); sem_destroy(s)" -lpthread check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)" check_builtin gmtime_r time.h "time_t *time; struct tm *tm; gmtime_r(time, tm)" check_builtin localtime_r time.h "time_t *time; struct tm *tm; localtime_r(time, tm)" +check_builtin x264_csp_bgr "stdint.h x264.h" "X264_CSP_BGR" case "$custom_allocator" in jemalloc) @@ -5324,6 +5482,7 @@ check_func_headers glob.h glob enabled xlib && check_func_headers "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -lX11 -lXext +check_header AudioToolbox/AudioToolbox.h check_header direct.h check_header dirent.h check_header dlfcn.h @@ -5349,6 +5508,8 @@ check_header vdpau/vdpau.h check_header vdpau/vdpau_x11.h check_header VideoDecodeAcceleration/VDADecoder.h check_header VideoToolbox/VideoToolbox.h +check_func_headers VideoToolbox/VTCompressionSession.h VTCompressionSessionPrepareToEncodeFrames -framework VideoToolbox +enabled videotoolbox && check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferColorPrimaries_ITU_R_2020 -framework CoreVideo check_header windows.h check_header X11/extensions/XvMClib.h check_header asm/types.h @@ -5368,9 +5529,18 @@ check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602 check_type "va/va.h" "VAPictureParameterBufferHEVC" check_type "va/va.h" "VADecPictureParameterBufferVP9" +check_type "va/va.h va/va_vpp.h" "VAProcPipelineParameterBuffer" +check_type "va/va.h va/va_enc_h264.h" "VAEncPictureParameterBufferH264" +check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC" +check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG" check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC" +check_type "cuviddec.h" "CUVIDH264PICPARAMS" +check_type "cuviddec.h" "CUVIDHEVCPICPARAMS" +check_type "cuviddec.h" "CUVIDVC1PICPARAMS" +check_type "cuviddec.h" "CUVIDVP9PICPARAMS" + check_cpp_condition windows.h "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" && enable winrt || disable winrt if ! disabled w32threads && ! enabled pthreads; then @@ -5410,6 +5580,9 @@ if enabled pthreads; then check_func pthread_cancel fi +enabled pthreads && + check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0); sem_timedwait(s,0); sem_destroy(s)" + disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib disabled lzma || check_lib2 lzma.h lzma_version_number -llzma || disable lzma @@ -5431,6 +5604,11 @@ for func in $COMPLEX_FUNCS; do eval check_complexfunc $func \${${func}_args:-1} done +# Enable CUVID by default if CUDA is enabled +if enabled cuda && ! disabled cuvid; then + enable cuvid +fi + # these are off by default, so fail if requested and not available enabled avfoundation_indev && { check_header_objcc AVFoundation/AVFoundation.h || disable avfoundation_indev; } enabled avfoundation_indev && { check_lib2 CoreGraphics/CoreGraphics.h CGGetActiveDisplayList -framework CoreGraphics || @@ -5438,11 +5616,21 @@ enabled avfoundation_indev && { check_lib2 CoreGraphics/CoreGraphics.h CGGetActi enabled avisynth && { { check_lib2 "windows.h" LoadLibrary; } || { check_lib2 "dlfcn.h" dlopen -ldl; } || die "ERROR: LoadLibrary/dlopen not found for avisynth"; } +enabled cuda && { check_lib cuda.h cuInit -lcuda || + die "ERROR: CUDA not found"; } +enabled cuvid && { check_lib cuviddec.h cuvidCreateDecoder -lnvcuvid || + die "ERROR: CUVID not found"; } && + { enabled cuda || + die "ERROR: CUVID requires CUDA"; } enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint +enabled coreimage_filter && { check_header_objcc QuartzCore/CoreImage.h || disable coreimage_filter; } +enabled coreimagesrc_filter && { check_header_objcc QuartzCore/CoreImage.h || disable coreimagesrc_filter; } enabled decklink && { check_header DeckLinkAPI.h || die "ERROR: DeckLinkAPI.h header not found"; } enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } enabled gmp && require2 gmp gmp.h mpz_export -lgmp enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init +enabled jni && { [ $target_os = "android" ] && check_header jni.h && enabled pthreads && + check_lib2 "dlfcn.h" dlopen -ldl; } enabled ladspa && { check_header ladspa.h || die "ERROR: ladspa.h header not found"; } enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883 enabled libass && require_pkg_config libass ass/ass.h ass_library_init @@ -5452,7 +5640,7 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } enabled libcaca && require_pkg_config caca caca.h caca_create_canvas -enabled libdcadec && require_pkg_config "dcadec >= 0.1.0" libdcadec/dca_context.h dcadec_context_create +enabled libebur128 && require ebur128 ebur128.h ebur128_relative_threshold -lebur128 enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac enabled libfdk_aac && { use_pkg_config fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && @@ -5473,10 +5661,12 @@ enabled libmfx && require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit enabled libmodplug && require_pkg_config libmodplug libmodplug/modplug.h ModPlug_Load enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame enabled libnut && require libnut libnut.h nut_demuxer_init -lnut +enabled libnpp && require libnpp npp.h nppGetLibVersion -lnppi -lnppc enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb enabled libopencv && { check_header opencv2/core/core_c.h && - require_pkg_config opencv opencv2/core/core_c.h cvCreateImageHeader || + { use_pkg_config opencv opencv2/core/core_c.h cvCreateImageHeader || + require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader; } enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion enabled libopenjpeg && { check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC || @@ -5501,7 +5691,6 @@ enabled libtheora && require libtheora theora/theoraenc.h th_info_init - enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame && { check_lib twolame.h twolame_encode_buffer_float32_interleaved -ltwolame || die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } -enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++ enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl enabled libvidstab && require_pkg_config "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc @@ -5554,6 +5743,7 @@ enabled libzmq && require_pkg_config libzmq zmq.h zmq_ctx_new enabled libzvbi && require libzvbi libzvbi.h vbi_decoder_new -lzvbi && { check_cpp_condition libzvbi.h "VBI_VERSION_MAJOR > 0 || VBI_VERSION_MINOR > 2 || VBI_VERSION_MINOR == 2 && VBI_VERSION_MICRO >= 28" || enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; } +enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; } enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host || { ! enabled cross_compile && { add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline ; @@ -5561,14 +5751,12 @@ enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect check_lib interface/mmal/mmal.h mmal_port_connect ; } check_lib interface/mmal/mmal.h mmal_port_connect ; } || die "ERROR: mmal not found"; } -enabled mmal && - (check_code cc interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS" || - die "ERROR: mmal firmware headers too old") +enabled mmal && check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS" enabled netcdf && require_pkg_config netcdf netcdf.h nc_inq_libvers enabled nvenc && { check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found."; } && - { check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 5" || - die "ERROR: NVENC API version 4 or older is not supported"; } && + { check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 6" || + die "ERROR: NVENC API version 5 or older is not supported"; } && { [ $target_os != cygwin ] || die "ERROR: NVENC is not supported on Cygwin currently."; } enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } || @@ -5587,6 +5775,12 @@ enabled opengl && { check_lib GL/glx.h glXGetProcAddress "-lGL" || check_lib2 ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" || die "ERROR: opengl not found." } +enabled omx_rpi && enable omx +enabled omx && { check_header OMX_Core.h || + { ! enabled cross_compile && enabled omx_rpi && { + add_cflags -isystem/opt/vc/include/IL ; } + check_header OMX_Core.h ; } || + die "ERROR: OpenMAX IL headers not found"; } enabled openssl && { use_pkg_config openssl openssl/ssl.h SSL_library_init || check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 || @@ -5646,8 +5840,8 @@ disabled securetransport || { check_func SecIdentityCreate "-Wl,-framework,CoreF check_lib2 "Security/SecureTransport.h Security/Security.h" "SSLCreateContext SecItemImport" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" && enable securetransport; } -disabled schannel || { check_func_headers "windows.h Security.h" InitializeSecurityContext -DSECURITY_WIN32 -lSecur32 && - check_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && enable schannel && add_extralibs -lSecur32; } +disabled schannel || { check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 && + check_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && enable schannel && add_extralibs -lsecur32; } makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo enabled makeinfo \ @@ -5696,7 +5890,7 @@ check_header soundcard.h enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound -enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait && +enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func jack_port_get_latency_range -ljack enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio @@ -5758,17 +5952,25 @@ enabled vaapi && check_lib va/va.h vaInitialize -lva || disable vaapi -enabled vaapi && enabled xlib && +enabled vaapi && + check_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" || + disable vaapi + +if enabled vaapi ; then + enabled xlib && check_lib2 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 && enable vaapi_x11 + check_lib2 "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm && + enable vaapi_drm +fi + enabled vdpau && check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || disable vdpau enabled vdpau && enabled xlib && - check_func_headers "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau && - prepend ffmpeg_libs $($ldflags_filter "-lvdpau") && + check_lib2 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau && enable vdpau_x11 # Funny iconv installations are not unusual, so check it after all flags have been set @@ -6210,6 +6412,7 @@ echo "threading support ${thread_type-no}" echo "safe bitstream reader ${safe_bitstream_reader-no}" echo "SDL support ${sdl-no}" echo "opencl enabled ${opencl-no}" +echo "JNI support ${jni-no}" echo "texi2html enabled ${texi2html-no}" echo "perl enabled ${perl-no}" echo "pod2man enabled ${pod2man-no}" @@ -6227,6 +6430,14 @@ echo "External libraries:" print_enabled '' $EXTERNAL_LIBRARY_LIST | print_in_columns echo +echo "External libraries providing hardware acceleration:" +print_enabled '' $HWACCEL_LIBRARY_LIST | print_in_columns +echo + +echo "Libraries:" +print_enabled '' $LIBRARY_LIST | print_in_columns +echo + for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do echo "Enabled ${type}s:" eval list=\$$(toupper $type)_LIST @@ -6269,6 +6480,7 @@ DATADIR=\$(DESTDIR)$datadir DOCDIR=\$(DESTDIR)$docdir MANDIR=\$(DESTDIR)$mandir PKGCONFIGDIR=\$(DESTDIR)$pkgconfigdir +INSTALL_NAME_DIR=$install_name_dir SRC_PATH=$source_path SRC_LINK=$source_link ifndef MAIN_MAKEFILE @@ -6472,6 +6684,23 @@ if test -n "$WARNINGS"; then enabled fatal_warnings && exit 1 fi +# generate the lists of enabled components +print_enabled_components(){ + file=$1 + struct_name=$2 + name=$3 + shift 3 + echo "static const $struct_name *$name[] = {" > $TMPH + for c in $*; do + enabled $c && printf " &ff_%s,\n" $c >> $TMPH + done + echo " NULL };" >> $TMPH + cp_if_changed $TMPH $file +} + +print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST +print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST + # build pkg-config files lib_version(){ diff --git a/doc/APIchanges b/doc/APIchanges index 85d4db706..52cd48ca5 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,131 @@ libavutil: 2015-08-28 API changes, most recent first: +2016-06-30 - c1c7e0ab - lavf 57.41.100 - avformat.h + Moved codecpar field from AVStream to the end of the struct, so that + the following private fields are in the same location as in FFmpeg 3.0 (lavf 57.25.100). + +2016-06-30 - 042fb69d - lavu 55.28.100 - frame.h + Moved hw_frames_ctx field from AVFrame to the end of the struct, so that + the following private fields are in the same location as in FFmpeg 3.0 (lavu 55.17.103). + +2016-06-29 - 1a751455 - lavfi 6.47.100 - avfilter.h + Fix accidental ABI breakage in AVFilterContext. + ABI was broken in 8688d3a, lavfi 6.42.100 and released as ffmpeg 3.1. + + Because of this, ffmpeg and ffplay built against lavfi>=6.42.100 will not be + compatible with lavfi>=6.47.100. Potentially also affects other users of + libavfilter if they are using one of the affected fields. + +-------- 8< --------- FFmpeg 3.1 was cut here -------- 8< --------- + +2016-06-26 - 481f320 / 1c9e861 - lavu 55.27.100 / 55.13.0 - hwcontext.h + Add av_hwdevice_ctx_create(). + +2016-06-26 - b95534b / e47b8bb - lavc 57.48.101 / 57.19.1 - avcodec.h + Adjust values for JPEG 2000 profiles. + +2016-06-23 - 5d75e46 / db7968b - lavf 57.40.100 / 57.7.0 - avio.h + Add AVIODataMarkerType, write_data_type, ignore_boundary_point and + avio_write_marker. + +2016-06-23 - abb3cc4 / 0c4468d - lavu 55.26.100 / 55.12.0 - opt.h + Add av_stereo3d_type_name() and av_stereo3d_from_name(). + +2016-06-22 - 3689efe / c46db38 - lavu 55.25.100 / 55.11.0 - hwcontext_dxva2.h + Add new installed header with DXVA2-specific hwcontext definitions. + +2016-04-27 - fb91871 - lavu 55.23.100 - log.h + Add a new function av_log_format_line2() which returns number of bytes + written to the target buffer. + +2016-04-21 - 7fc329e - lavc 57.37.100 - avcodec.h + Add a new audio/video encoding and decoding API with decoupled input + and output -- avcodec_send_packet(), avcodec_receive_frame(), + avcodec_send_frame() and avcodec_receive_packet(). + +2016-04-17 - af9cac1 / 33d1898 - lavc 57.35.100 / 57.15.0 - avcodec.h + Add a new bitstream filtering API working with AVPackets. + Deprecate the old bitstream filtering API. + +2016-04-14 - 8688d3a / 07a844f - lavfi 6.42.100 / 6.3.0 - avfilter.h + Add AVFilterContext.hw_device_ctx. + +2016-04-14 - 28abb21 / 551c677 - lavu 55.22.100 / 55.9.0 - hwcontext_vaapi.h + Add new installed header with VAAPI-specific hwcontext definitions. + +2016-04-14 - afccfaf / b1f01e8 - lavu 55.21.100 / 55.7.0 - hwcontext.h + Add AVHWFramesConstraints and associated API. + +2016-04-11 - 6f69f7a / 9200514 - lavf 57.33.100 / 57.5.0 - avformat.h + Add AVStream.codecpar, deprecate AVStream.codec. + +2016-04-02 - e8a9b64 - lavu 55.20.100 - base64.h + Add AV_BASE64_DECODE_SIZE(x) macro. + +2016-xx-xx - lavc 57.33.100 / 57.14.0 - avcodec.h + f9b1cf1 / 998e1b8 - Add AVCodecParameters and its related API. + e6053b3 / a806834 - Add av_get_audio_frame_duration2(). + +2016-03-11 - 6d8ab35 - lavf/lavc 57.28.101 + Add requirement to bitstream filtering API that returned packets with + size == 0 and side_data_elems == 0 are to be skipped by the caller. + +2016-03-04 - 9362973 - lavf 57.28.100 + Add protocol blacklisting API + +2016-02-28 - 4dd4d53 - lavc 57.27.101 + Validate AVFrame returned by get_buffer2 to have required + planes not NULL and unused planes set to NULL as crashes + and buffer overflow are possible with certain streams if + that is not the case. + +2016-02-26 - 30e7685 - lavc 57.27.100 - avcodec.h + "flags2" decoding option now allows the flag "ass_ro_flush_noop" preventing + the reset of the ASS ReadOrder field on flush. This affects the content of + AVSubtitles.rects[N]->ass when "sub_text_format" is set to "ass" (see + previous entry). + +2016-02-26 - 2941282 - lavc 57.26.100 - avcodec.h + Add a "sub_text_format" subtitles decoding option allowing the values "ass" + (recommended) and "ass_with_timings" (not recommended, deprecated, default). + The default value for this option will change to "ass" at the next major + libavcodec version bump. + + The current default is "ass_with_timings" for compatibility. This means that + all subtitles text decoders currently still output ASS with timings printed + as strings in the AVSubtitles.rects[N]->ass fields. + + Setting "sub_text_format" to "ass" allows a better timing accuracy (ASS + timing is limited to a 1/100 time base, so this is relevant for any subtitles + format needing a bigger one), ease timing adjustments, and prevents the need + of removing the timing from the decoded string yourself. This form is also + known as "the Matroska form". The timing information (start time, duration) + can be found in the AVSubtitles fields. + +2016-02-24 - 7e49cdd / 7b3214d0 - lavc 57.25.100 / 57.13.0 - avcodec.h + Add AVCodecContext.hw_frames_ctx. + +2016-02-24 - 1042402 / b3dd30d - lavfi 6.36.100 / 6.2.0 - avfilter.h + avfilter.h - Add AVFilterLink.hw_frames_ctx. + buffersrc.h - Add AVBufferSrcParameters and functions for handling it. + +2016-02-23 - 14f7a3d - lavc 57.25.100 + Add AV_PKT_DATA_MPEGTS_STREAM_ID for exporting the MPEGTS stream ID. + +2016-02-18 - 08acab8 - lavu 55.18.100 - audio_fifo.h + Add av_audio_fifo_peek_at(). + +2016-xx-xx - lavu 55.18.100 / 55.6.0 + 26abd51 / 721a4ef buffer.h - Add av_buffer_pool_init2(). + 1a70878 / 89923e4 hwcontext.h - Add a new installed header hwcontext.h with a new API + for handling hwaccel frames. + 6992276 / ad884d1 hwcontext_cuda.h - Add a new installed header hwcontext_cuda.h with + CUDA-specific hwcontext definitions. + d779d8d / a001ce3 hwcontext_vdpau.h - Add a new installed header hwcontext_vdpau.h with + VDPAU-specific hwcontext definitions. + 63c3e35 / 7bc780c pixfmt.h - Add AV_PIX_FMT_CUDA. + -------- 8< --------- FFmpeg 3.0 was cut here -------- 8< --------- 2016-02-10 - bc9a596 / 9f61abc - lavf 57.25.100 / 57.3.0 - avformat.h @@ -1084,7 +1209,7 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0 * base -- is now stored in AVBufferRef * reference, type, buffer_hints -- are unnecessary in the new API * hwaccel_picture_private, owner, thread_opaque -- should not - have been acessed from outside of lavc + have been accessed from outside of lavc * qscale_table, qstride, qscale_type, mbskip_table, motion_val, mb_type, dct_coeff, ref_index -- mpegvideo-specific tables, which are not exported anymore. diff --git a/doc/Doxyfile b/doc/Doxyfile index 845d8dc01..68c067940 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = FFmpeg # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 3.0.2 +PROJECT_NUMBER = 3.1.1 # With the PROJECT_LOGO tag one can specify a logo or icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -1429,7 +1429,7 @@ PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# generate an inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi index 563049e28..6c58d02c2 100644 --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@ -67,6 +67,10 @@ the header stored in extradata to the key packets: ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts @end example +@section dca_core + +Extract DCA core from DTS-HD streams. + @section h264_mp4toannexb Convert an H.264 bitstream from length prefixed mode to start code diff --git a/doc/build_system.txt b/doc/build_system.txt index a9bd4eb6b..8c12e0e29 100644 --- a/doc/build_system.txt +++ b/doc/build_system.txt @@ -39,9 +39,6 @@ examples libavformat/output-example Build the libavformat basic example. -libavcodec/api-example - Build the libavcodec basic example. - libswscale/swscale-test Build the swscale self-test (useful also as an example). diff --git a/doc/codecs.texi b/doc/codecs.texi index b481b4a05..48fc3bfec 100644 --- a/doc/codecs.texi +++ b/doc/codecs.texi @@ -257,7 +257,7 @@ Specify how strictly to follow the standards. Possible values: @table @samp @item very -strictly conform to a older more strict version of the spec or reference software +strictly conform to an older more strict version of the spec or reference software @item strict strictly conform to all the things in the spec no matter what consequences @item normal @@ -456,6 +456,9 @@ Possible values: @item aspect @var{rational number} (@emph{encoding,video}) Set sample aspect ratio. +@item sar @var{rational number} (@emph{encoding,video}) +Set sample aspect ratio. Alias to @var{aspect}. + @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles}) Print specific debug info. @@ -1047,7 +1050,38 @@ Possible values: @item rc_min_vbv_use @var{float} (@emph{encoding,video}) @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video}) @item color_primaries @var{integer} (@emph{decoding/encoding,video}) + @item color_trc @var{integer} (@emph{decoding/encoding,video}) +Possible values: +@table @samp +@item bt709 +BT.709 +@item gamma22 +BT.470 M +@item gamma28 +BT.470 BG +@item linear +SMPTE 170 M +@item log +SMPTE 240 M +@item log_sqrt +Linear +@item iec61966_2_4 +Log +@item bt1361 +Log square root +@item iec61966_2_1 +IEC 61966-2-4 +@item bt2020_10bit +BT.1361 +@item bt2020_12bit +IEC 61966-2-1 +@item smpte2084 +BT.2020 - 10 bit +@item smpte428_1 +BT.2020 - 12 bit +@end table + @item colorspace @var{integer} (@emph{decoding/encoding,video}) @item color_range @var{integer} (@emph{decoding/encoding,video}) diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 3947bf640..e34f8b3fe 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -441,9 +441,9 @@ ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv @end example @end itemize -@section mov/mp4/3gp/Quicktme +@section mov/mp4/3gp/QuickTime -Quicktime / MP4 demuxer. +QuickTime / MP4 demuxer. This demuxer accepts the following options: @table @option diff --git a/doc/developer.texi b/doc/developer.texi index 6db93cef7..4d3a7aef9 100644 --- a/doc/developer.texi +++ b/doc/developer.texi @@ -403,6 +403,35 @@ finding a new maintainer and also don't forget to update the @file{MAINTAINERS} We think our rules are not too hard. If you have comments, contact us. +@section Code of conduct + +Be friendly and respectful towards others and third parties. +Treat others the way you yourself want to be treated. + +Be considerate. Not everyone shares the same viewpoint and priorities as you do. +Different opinions and interpretations help the project. +Looking at issues from a different perspective assists development. + +Do not assume malice for things that can be attributed to incompetence. Even if +it is malice, it's rarely good to start with that as initial assumption. + +Stay friendly even if someone acts contrarily. Everyone has a bad day +once in a while. +If you yourself have a bad day or are angry then try to take a break and reply +once you are calm and without anger if you have to. + +Try to help other team members and cooperate if you can. + +The goal of software development is to create technical excellence, not for any +individual to be better and "win" against the others. Large software projects +are only possible and successful through teamwork. + +If someone struggles do not put them down. Give them a helping hand +instead and point them in the right direction. + +Finally, keep in mind the immortal words of Bill and Ted, +"Be excellent to each other." + @anchor{Submitting patches} @section Submitting patches diff --git a/doc/examples/decoding_encoding.c b/doc/examples/decoding_encoding.c index 06a98a630..43a64c2d5 100644 --- a/doc/examples/decoding_encoding.c +++ b/doc/examples/decoding_encoding.c @@ -25,9 +25,9 @@ * libavcodec API use example. * * @example decoding_encoding.c - * Note that libavcodec only handles codecs (mpeg, mpeg4, etc...), - * not file formats (avi, vob, mp4, mov, mkv, mxf, flv, mpegts, mpegps, etc...). See library 'libavformat' for the - * format handling + * Note that libavcodec only handles codecs (MPEG, MPEG-4, etc...), + * not file formats (AVI, VOB, MP4, MOV, MKV, MXF, FLV, MPEG-TS, MPEG-PS, etc...). + * See library 'libavformat' for the format handling */ #include @@ -253,7 +253,7 @@ static void audio_decode_example(const char *outfilename, const char *filename) printf("Decode audio file %s to %s\n", filename, outfilename); - /* find the mpeg audio decoder */ + /* find the MPEG audio decoder */ codec = avcodec_find_decoder(AV_CODEC_ID_MP2); if (!codec) { fprintf(stderr, "Codec not found\n"); @@ -356,7 +356,7 @@ static void video_encode_example(const char *filename, int codec_id) printf("Encode video file %s\n", filename); - /* find the mpeg1 video encoder */ + /* find the video encoder */ codec = avcodec_find_encoder(codec_id); if (!codec) { fprintf(stderr, "Codec not found\n"); @@ -475,7 +475,7 @@ static void video_encode_example(const char *filename, int codec_id) } } - /* add sequence end code to have a real mpeg file */ + /* add sequence end code to have a real MPEG file */ fwrite(endcode, 1, sizeof(endcode), f); fclose(f); @@ -543,12 +543,12 @@ static void video_decode_example(const char *outfilename, const char *filename) av_init_packet(&avpkt); - /* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */ + /* set end of buffer to 0 (this ensures that no overreading happens for damaged MPEG streams) */ memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE); printf("Decode video file %s to %s\n", filename, outfilename); - /* find the mpeg1 video decoder */ + /* find the MPEG-1 video decoder */ codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO); if (!codec) { fprintf(stderr, "Codec not found\n"); @@ -613,9 +613,9 @@ static void video_decode_example(const char *outfilename, const char *filename) exit(1); } - /* some codecs, such as MPEG, transmit the I and P frame with a + /* Some codecs, such as MPEG, transmit the I- and P-frame with a latency of one frame. You must do the following to have a - chance to get the last frame of the video */ + chance to get the last frame of the video. */ avpkt.data = NULL; avpkt.size = 0; decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 1); diff --git a/doc/examples/filtering_audio.c b/doc/examples/filtering_audio.c index 89c80cfd5..6bb24a431 100644 --- a/doc/examples/filtering_audio.c +++ b/doc/examples/filtering_audio.c @@ -65,7 +65,7 @@ static int open_input_file(const char *filename) /* select the audio stream */ ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &dec, 0); if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Cannot find a audio stream in the input file\n"); + av_log(NULL, AV_LOG_ERROR, "Cannot find an audio stream in the input file\n"); return ret; } audio_stream_index = ret; diff --git a/doc/examples/muxing.c b/doc/examples/muxing.c index d4dac5cd6..f1f5bb823 100644 --- a/doc/examples/muxing.c +++ b/doc/examples/muxing.c @@ -52,6 +52,7 @@ // a wrapper around a single output AVStream typedef struct OutputStream { AVStream *st; + AVCodecContext *enc; /* pts of the next frame that will be generated */ int64_t next_pts; @@ -104,13 +105,18 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc, exit(1); } - ost->st = avformat_new_stream(oc, *codec); + ost->st = avformat_new_stream(oc, NULL); if (!ost->st) { fprintf(stderr, "Could not allocate stream\n"); exit(1); } ost->st->id = oc->nb_streams-1; - c = ost->st->codec; + c = avcodec_alloc_context3(*codec); + if (!c) { + fprintf(stderr, "Could not alloc an encoding context\n"); + exit(1); + } + ost->enc = c; switch ((*codec)->type) { case AVMEDIA_TYPE_AUDIO: @@ -155,7 +161,7 @@ static void add_stream(OutputStream *ost, AVFormatContext *oc, c->gop_size = 12; /* emit one intra frame every twelve frames at most */ c->pix_fmt = STREAM_PIX_FMT; if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) { - /* just for testing, we also add B frames */ + /* just for testing, we also add B-frames */ c->max_b_frames = 2; } if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) { @@ -213,7 +219,7 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A int ret; AVDictionary *opt = NULL; - c = ost->st->codec; + c = ost->enc; /* open it */ av_dict_copy(&opt, opt_arg, 0); @@ -240,6 +246,13 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A ost->tmp_frame = alloc_audio_frame(AV_SAMPLE_FMT_S16, c->channel_layout, c->sample_rate, nb_samples); + /* copy the stream parameters to the muxer */ + ret = avcodec_parameters_from_context(ost->st->codecpar, c); + if (ret < 0) { + fprintf(stderr, "Could not copy the stream parameters\n"); + exit(1); + } + /* create resampler context */ ost->swr_ctx = swr_alloc(); if (!ost->swr_ctx) { @@ -271,13 +284,13 @@ static AVFrame *get_audio_frame(OutputStream *ost) int16_t *q = (int16_t*)frame->data[0]; /* check if we want to generate more frames */ - if (av_compare_ts(ost->next_pts, ost->st->codec->time_base, + if (av_compare_ts(ost->next_pts, ost->enc->time_base, STREAM_DURATION, (AVRational){ 1, 1 }) >= 0) return NULL; for (j = 0; j nb_samples; j++) { v = (int)(sin(ost->t) * 10000); - for (i = 0; i < ost->st->codec->channels; i++) + for (i = 0; i < ost->enc->channels; i++) *q++ = v; ost->t += ost->tincr; ost->tincr += ost->tincr2; @@ -303,7 +316,7 @@ static int write_audio_frame(AVFormatContext *oc, OutputStream *ost) int dst_nb_samples; av_init_packet(&pkt); - c = ost->st->codec; + c = ost->enc; frame = get_audio_frame(ost); @@ -383,7 +396,7 @@ static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height) static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg) { int ret; - AVCodecContext *c = ost->st->codec; + AVCodecContext *c = ost->enc; AVDictionary *opt = NULL; av_dict_copy(&opt, opt_arg, 0); @@ -414,6 +427,13 @@ static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, A exit(1); } } + + /* copy the stream parameters to the muxer */ + ret = avcodec_parameters_from_context(ost->st->codecpar, c); + if (ret < 0) { + fprintf(stderr, "Could not copy the stream parameters\n"); + exit(1); + } } /* Prepare a dummy image. */ @@ -448,10 +468,10 @@ static void fill_yuv_image(AVFrame *pict, int frame_index, static AVFrame *get_video_frame(OutputStream *ost) { - AVCodecContext *c = ost->st->codec; + AVCodecContext *c = ost->enc; /* check if we want to generate more frames */ - if (av_compare_ts(ost->next_pts, ost->st->codec->time_base, + if (av_compare_ts(ost->next_pts, c->time_base, STREAM_DURATION, (AVRational){ 1, 1 }) >= 0) return NULL; @@ -495,7 +515,7 @@ static int write_video_frame(AVFormatContext *oc, OutputStream *ost) int got_packet = 0; AVPacket pkt = { 0 }; - c = ost->st->codec; + c = ost->enc; frame = get_video_frame(ost); @@ -524,7 +544,7 @@ static int write_video_frame(AVFormatContext *oc, OutputStream *ost) static void close_stream(AVFormatContext *oc, OutputStream *ost) { - avcodec_close(ost->st->codec); + avcodec_free_context(&ost->enc); av_frame_free(&ost->frame); av_frame_free(&ost->tmp_frame); sws_freeContext(ost->sws_ctx); @@ -545,6 +565,7 @@ int main(int argc, char **argv) int have_video = 0, have_audio = 0; int encode_video = 0, encode_audio = 0; AVDictionary *opt = NULL; + int i; /* Initialize libavcodec, and register all codecs and formats. */ av_register_all(); @@ -561,8 +582,9 @@ int main(int argc, char **argv) } filename = argv[1]; - if (argc > 3 && !strcmp(argv[2], "-flags")) { - av_dict_set(&opt, argv[2]+1, argv[3], 0); + for (i = 2; i+1 < argc; i+=2) { + if (!strcmp(argv[i], "-flags") || !strcmp(argv[i], "-fflags")) + av_dict_set(&opt, argv[i]+1, argv[i+1], 0); } /* allocate the output media context */ @@ -620,8 +642,8 @@ int main(int argc, char **argv) while (encode_video || encode_audio) { /* select the stream to encode */ if (encode_video && - (!encode_audio || av_compare_ts(video_st.next_pts, video_st.st->codec->time_base, - audio_st.next_pts, audio_st.st->codec->time_base) <= 0)) { + (!encode_audio || av_compare_ts(video_st.next_pts, video_st.enc->time_base, + audio_st.next_pts, audio_st.enc->time_base) <= 0)) { encode_video = !write_video_frame(oc, &video_st); } else { encode_audio = !write_audio_frame(oc, &audio_st); diff --git a/doc/examples/qsvdec.c b/doc/examples/qsvdec.c index fd934bebd..aaecd81d4 100644 --- a/doc/examples/qsvdec.c +++ b/doc/examples/qsvdec.c @@ -352,7 +352,7 @@ int main(int argc, char **argv) for (i = 0; i < input_ctx->nb_streams; i++) { AVStream *st = input_ctx->streams[i]; - if (st->codec->codec_id == AV_CODEC_ID_H264 && !video_st) + if (st->codecpar->codec_id == AV_CODEC_ID_H264 && !video_st) video_st = st; else st->discard = AVDISCARD_ALL; @@ -404,16 +404,16 @@ int main(int argc, char **argv) goto finish; } decoder_ctx->codec_id = AV_CODEC_ID_H264; - if (video_st->codec->extradata_size) { - decoder_ctx->extradata = av_mallocz(video_st->codec->extradata_size + + if (video_st->codecpar->extradata_size) { + decoder_ctx->extradata = av_mallocz(video_st->codecpar->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!decoder_ctx->extradata) { ret = AVERROR(ENOMEM); goto finish; } - memcpy(decoder_ctx->extradata, video_st->codec->extradata, - video_st->codec->extradata_size); - decoder_ctx->extradata_size = video_st->codec->extradata_size; + memcpy(decoder_ctx->extradata, video_st->codecpar->extradata, + video_st->codecpar->extradata_size); + decoder_ctx->extradata_size = video_st->codecpar->extradata_size; } decoder_ctx->refcounted_frames = 1; diff --git a/doc/examples/transcode_aac.c b/doc/examples/transcode_aac.c index 486e54c28..9b3ee6769 100644 --- a/doc/examples/transcode_aac.c +++ b/doc/examples/transcode_aac.c @@ -62,6 +62,7 @@ static int open_input_file(const char *filename, AVFormatContext **input_format_context, AVCodecContext **input_codec_context) { + AVCodecContext *avctx; AVCodec *input_codec; int error; @@ -91,23 +92,39 @@ static int open_input_file(const char *filename, } /** Find a decoder for the audio stream. */ - if (!(input_codec = avcodec_find_decoder((*input_format_context)->streams[0]->codec->codec_id))) { + if (!(input_codec = avcodec_find_decoder((*input_format_context)->streams[0]->codecpar->codec_id))) { fprintf(stderr, "Could not find input codec\n"); avformat_close_input(input_format_context); return AVERROR_EXIT; } + /** allocate a new decoding context */ + avctx = avcodec_alloc_context3(input_codec); + if (!avctx) { + fprintf(stderr, "Could not allocate a decoding context\n"); + avformat_close_input(input_format_context); + return AVERROR(ENOMEM); + } + + /** initialize the stream parameters with demuxer information */ + error = avcodec_parameters_to_context(avctx, (*input_format_context)->streams[0]->codecpar); + if (error < 0) { + avformat_close_input(input_format_context); + avcodec_free_context(&avctx); + return error; + } + /** Open the decoder for the audio stream to use it later. */ - if ((error = avcodec_open2((*input_format_context)->streams[0]->codec, - input_codec, NULL)) < 0) { + if ((error = avcodec_open2(avctx, input_codec, NULL)) < 0) { fprintf(stderr, "Could not open input codec (error '%s')\n", get_error_text(error)); + avcodec_free_context(&avctx); avformat_close_input(input_format_context); return error; } /** Save the decoder context for easier access later. */ - *input_codec_context = (*input_format_context)->streams[0]->codec; + *input_codec_context = avctx; return 0; } @@ -122,6 +139,7 @@ static int open_output_file(const char *filename, AVFormatContext **output_format_context, AVCodecContext **output_codec_context) { + AVCodecContext *avctx = NULL; AVIOContext *output_io_context = NULL; AVStream *stream = NULL; AVCodec *output_codec = NULL; @@ -161,27 +179,31 @@ static int open_output_file(const char *filename, } /** Create a new audio stream in the output file container. */ - if (!(stream = avformat_new_stream(*output_format_context, output_codec))) { + if (!(stream = avformat_new_stream(*output_format_context, NULL))) { fprintf(stderr, "Could not create new stream\n"); error = AVERROR(ENOMEM); goto cleanup; } - /** Save the encoder context for easier access later. */ - *output_codec_context = stream->codec; + avctx = avcodec_alloc_context3(output_codec); + if (!avctx) { + fprintf(stderr, "Could not allocate an encoding context\n"); + error = AVERROR(ENOMEM); + goto cleanup; + } /** * Set the basic encoder parameters. * The input file's sample rate is used to avoid a sample rate conversion. */ - (*output_codec_context)->channels = OUTPUT_CHANNELS; - (*output_codec_context)->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS); - (*output_codec_context)->sample_rate = input_codec_context->sample_rate; - (*output_codec_context)->sample_fmt = output_codec->sample_fmts[0]; - (*output_codec_context)->bit_rate = OUTPUT_BIT_RATE; + avctx->channels = OUTPUT_CHANNELS; + avctx->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS); + avctx->sample_rate = input_codec_context->sample_rate; + avctx->sample_fmt = output_codec->sample_fmts[0]; + avctx->bit_rate = OUTPUT_BIT_RATE; /** Allow the use of the experimental AAC encoder */ - (*output_codec_context)->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; + avctx->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; /** Set the sample rate for the container. */ stream->time_base.den = input_codec_context->sample_rate; @@ -192,18 +214,28 @@ static int open_output_file(const char *filename, * Mark the encoder so that it behaves accordingly. */ if ((*output_format_context)->oformat->flags & AVFMT_GLOBALHEADER) - (*output_codec_context)->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; /** Open the encoder for the audio stream to use it later. */ - if ((error = avcodec_open2(*output_codec_context, output_codec, NULL)) < 0) { + if ((error = avcodec_open2(avctx, output_codec, NULL)) < 0) { fprintf(stderr, "Could not open output codec (error '%s')\n", get_error_text(error)); goto cleanup; } + error = avcodec_parameters_from_context(stream->codecpar, avctx); + if (error < 0) { + fprintf(stderr, "Could not initialize stream parameters\n"); + goto cleanup; + } + + /** Save the encoder context for easier access later. */ + *output_codec_context = avctx; + return 0; cleanup: + avcodec_free_context(&avctx); avio_closep(&(*output_format_context)->pb); avformat_free_context(*output_format_context); *output_format_context = NULL; @@ -756,13 +788,13 @@ cleanup: av_audio_fifo_free(fifo); swr_free(&resample_context); if (output_codec_context) - avcodec_close(output_codec_context); + avcodec_free_context(&output_codec_context); if (output_format_context) { avio_closep(&output_format_context->pb); avformat_free_context(output_format_context); } if (input_codec_context) - avcodec_close(input_codec_context); + avcodec_free_context(&input_codec_context); if (input_format_context) avformat_close_input(&input_format_context); diff --git a/doc/examples/transcoding.c b/doc/examples/transcoding.c index d5d410b16..8633362d4 100644 --- a/doc/examples/transcoding.c +++ b/doc/examples/transcoding.c @@ -128,7 +128,10 @@ static int open_output_file(const char *filename) enc_ctx->width = dec_ctx->width; enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio; /* take first format from list of supported formats */ - enc_ctx->pix_fmt = encoder->pix_fmts[0]; + if (encoder->pix_fmts) + enc_ctx->pix_fmt = encoder->pix_fmts[0]; + else + enc_ctx->pix_fmt = dec_ctx->pix_fmt; /* video time_base can be set to whatever is handy and supported by encoder */ enc_ctx->time_base = dec_ctx->time_base; } else { diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi index e02807cb4..7368cdbbb 100644 --- a/doc/ffmpeg.texi +++ b/doc/ffmpeg.texi @@ -720,7 +720,7 @@ For DXVA2, this option should contain the number of the display adapter to use. If this option is not specified, the default adapter is used. @item qsv -For QSV, this option corresponds to the valus of MFX_IMPL_* . Allowed values +For QSV, this option corresponds to the values of MFX_IMPL_* . Allowed values are: @table @option @item auto diff --git a/doc/filters.texi b/doc/filters.texi index 68f54f19b..3cf3d7ce8 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -2366,6 +2366,119 @@ Sets the difference coefficient (default: 2.5). 0.0 means mono sound Enable clipping. By default is enabled. @end table +@section firequalizer +Apply FIR Equalization using arbitrary frequency response. + +The filter accepts the following option: + +@table @option +@item gain +Set gain curve equation (in dB). The expression can contain variables: +@table @option +@item f +the evaluated frequency +@item sr +sample rate +@item ch +channel number, set to 0 when multichannels evaluation is disabled +@item chid +channel id, see libavutil/channel_layout.h, set to the first channel id when +multichannels evaluation is disabled +@item chs +number of channels +@item chlayout +channel_layout, see libavutil/channel_layout.h + +@end table +and functions: +@table @option +@item gain_interpolate(f) +interpolate gain on frequency f based on gain_entry +@end table +This option is also available as command. Default is @code{gain_interpolate(f)}. + +@item gain_entry +Set gain entry for gain_interpolate function. The expression can +contain functions: +@table @option +@item entry(f, g) +store gain entry at frequency f with value g +@end table +This option is also available as command. + +@item delay +Set filter delay in seconds. Higher value means more accurate. +Default is @code{0.01}. + +@item accuracy +Set filter accuracy in Hz. Lower value means more accurate. +Default is @code{5}. + +@item wfunc +Set window function. Acceptable values are: +@table @option +@item rectangular +rectangular window, useful when gain curve is already smooth +@item hann +hann window (default) +@item hamming +hamming window +@item blackman +blackman window +@item nuttall3 +3-terms continuous 1st derivative nuttall window +@item mnuttall3 +minimum 3-terms discontinuous nuttall window +@item nuttall +4-terms continuous 1st derivative nuttall window +@item bnuttall +minimum 4-terms discontinuous nuttall (blackman-nuttall) window +@item bharris +blackman-harris window +@end table + +@item fixed +If enabled, use fixed number of audio samples. This improves speed when +filtering with large delay. Default is disabled. + +@item multi +Enable multichannels evaluation on gain. Default is disabled. + +@item zero_phase +Enable zero phase mode by substracting timestamp to compensate delay. +Default is disabled. +@end table + +@subsection Examples +@itemize +@item +lowpass at 1000 Hz: +@example +firequalizer=gain='if(lt(f,1000), 0, -INF)' +@end example +@item +lowpass at 1000 Hz with gain_entry: +@example +firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)' +@end example +@item +custom equalization: +@example +firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)' +@end example +@item +higher delay with zero phase to compensate delay: +@example +firequalizer=delay=0.1:fixed=on:zero_phase=on +@end example +@item +lowpass on left channel, highpass on right channel: +@example +firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))' +:gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on +@end example +@end itemize + @section flanger Apply a flanging effect to the audio. @@ -2602,6 +2715,68 @@ Modify the @var{N}-th control value. If the specified value is not valid, it is ignored and prior one is kept. @end table +@section loudnorm + +EBU R128 loudness normalization. Includes both dynamic and linear normalization modes. +Support for both single pass (livestreams, files) and double pass (files) modes. +This algorithm can target IL, LRA, and maximum true peak. + +To enable compilation of this filter you need to configure FFmpeg with +@code{--enable-libebur128}. + +The filter accepts the following options: + +@table @option +@item I, i +Set integrated loudness target. +Range is -70.0 - -5.0. Default value is -24.0. + +@item LRA, lra +Set loudness range target. +Range is 1.0 - 20.0. Default value is 7.0. + +@item TP, tp +Set maximum true peak. +Range is -9.0 - +0.0. Default value is -2.0. + +@item measured_I, measured_i +Measured IL of input file. +Range is -99.0 - +0.0. + +@item measured_LRA, measured_lra +Measured LRA of input file. +Range is 0.0 - 99.0. + +@item measured_TP, measured_tp +Measured true peak of input file. +Range is -99.0 - +99.0. + +@item measured_thresh +Measured threshold of input file. +Range is -99.0 - +0.0. + +@item offset +Set offset gain. Gain is applied before the true-peak limiter. +Range is -99.0 - +99.0. Default is +0.0. + +@item linear +Normalize linearly if possible. +measured_I, measured_LRA, measured_TP, and measured_thresh must also +to be specified in order to use this mode. +Options are true or false. Default is true. + +@item dual_mono +Treat mono input files as "dual-mono". If a mono file is intended for playback +on a stereo system, its EBU R128 measurement will be perceptually incorrect. +If set to @code{true}, this option will compensate for this effect. +Multi-channel input files are not affected by this option. +Options are true or false. Default is false. + +@item print_format +Set print format for stats. Options are summary, json, or none. +Default value is none. +@end table + @section lowpass Apply a low-pass filter with 3dB point frequency. @@ -3108,11 +3283,44 @@ HRTFs. Default is 1. @item type Set processing type. Can be @var{time} or @var{freq}. @var{time} is -processing audio in time domain which is slow but gives high quality output. -@var{freq} is processing audio in frequency domain which is fast but gives -mediocre output. Default is @var{freq}. +processing audio in time domain which is slow. +@var{freq} is processing audio in frequency domain which is fast. +Default is @var{freq}. + +@item speakers +Set custom positions of virtual loudspeakers. Syntax for this option is: + [| |...]. +Each virtual loudspeaker is described with short channel name following with +azimuth and elevation in degreees. +Each virtual loudspeaker description is separated by '|'. +For example to override front left and front right channel positions use: +'speakers=FL 45 15|FR 345 15'. +Descriptions with unrecognised channel names are ignored. @end table +@subsection Examples + +@itemize +@item +Using ClubFritz6 sofa file: +@example +sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1 +@end example + +@item +Using ClubFritz12 sofa file and bigger radius with small rotation: +@example +sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5 +@end example + +@item +Similar as above but with custom speaker positions for front left, front right, rear left and rear right +and also with custom gain: +@example +"sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|RL 135|RR 225:gain=28" +@end example +@end itemize + @section stereotools This filter has some handy utilities to manage stereo signals, for converting @@ -3210,6 +3418,22 @@ Set S/C level. Default is 1. Allowed range is from 1 to 100. Set the stereo phase in degrees. Default is 0. Allowed range is from 0 to 360. @end table +@subsection Examples + +@itemize +@item +Apply karaoke like effect: +@example +stereotools=mlev=0.015625 +@end example + +@item +Convert M/S signal to L/R: +@example +"stereotools=mode=ms>lr" +@end example +@end itemize + @section stereowiden This filter enhance the stereo effect by suppressing signal common to both @@ -3237,6 +3461,47 @@ channels. Default is 0.3. Set level of input signal of original channel. Default is 0.8. @end table +@section scale_npp + +Use the NVIDIA Performance Primitives (libnpp) to perform scaling and/or pixel +format conversion on CUDA video frames. Setting the output width and height +works in the same way as for the @var{scale} filter. + +The following additional options are accepted: +@table @option +@item format +The pixel format of the output CUDA frames. If set to the string "same" (the +default), the input format will be kept. Note that automatic format negotiation +and conversion is not yet supported for hardware frames + +@item interp_algo +The interpolation algorithm used for resizing. One of the following: +@table @option +@item nn +Nearest neighbour. + +@item linear +@item cubic +@item cubic2p_bspline +2-parameter cubic (B=1, C=0) + +@item cubic2p_catmullrom +2-parameter cubic (B=0, C=1/2) + +@item cubic2p_b05c03 +2-parameter cubic (B=1/2, C=3/10) + +@item super +Supersampling + +@item lanczos +@end table + +@end table + +@section select +Select frames to pass in output. + @section treble Boost or cut treble (upper) frequencies of the audio using a two-pole @@ -4131,10 +4396,12 @@ Available values for component modes are: @item difference128 @item divide @item dodge +@item freeze @item exclusion @item glow @item hardlight @item hardmix +@item heat @item lighten @item linearlight @item multiply @@ -4344,6 +4611,59 @@ boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chrom @end example @end itemize +@section bwdif + +Deinterlace the input video ("bwdif" stands for "Bob Weaver +Deinterlacing Filter"). + +Motion adaptive deinterlacing based on yadif with the use of w3fdif and cubic +interpolation algorithms. +It accepts the following parameters: + +@table @option +@item mode +The interlacing mode to adopt. It accepts one of the following values: + +@table @option +@item 0, send_frame +Output one frame for each frame. +@item 1, send_field +Output one frame for each field. +@end table + +The default value is @code{send_field}. + +@item parity +The picture field parity assumed for the input interlaced video. It accepts one +of the following values: + +@table @option +@item 0, tff +Assume the top field is first. +@item 1, bff +Assume the bottom field is first. +@item -1, auto +Enable automatic detection of field parity. +@end table + +The default value is @code{auto}. +If the interlacing is unknown or the decoder does not export this information, +top field first will be assumed. + +@item deint +Specify which frames to deinterlace. Accept one of the following +values: + +@table @option +@item 0, all +Deinterlace all frames. +@item 1, interlaced +Only deinterlace frames marked as interlaced. +@end table + +The default value is @code{all}. +@end table + @section chromakey YUV colorspace color/chroma keying. @@ -4389,6 +4709,61 @@ ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_compl @end example @end itemize +@section ciescope + +Display CIE color diagram with pixels overlaid onto it. + +The filter acccepts the following options: + +@table @option +@item system +Set color system. + +@table @samp +@item ntsc, 470m +@item ebu, 470bg +@item smpte +@item 240m +@item apple +@item widergb +@item cie1931 +@item rec709, hdtv +@item uhdtv, rec2020 +@end table + +@item cie +Set CIE system. + +@table @samp +@item xyy +@item ucs +@item luv +@end table + +@item gamuts +Set what gamuts to draw. + +See @code{system} option for avaiable values. + +@item size, s +Set ciescope size, by default set to 512. + +@item intensity, i +Set intensity used to map input pixel values to CIE diagram. + +@item contrast +Set contrast used to draw tongue colors that are out of active color system gamut. + +@item corrgamma +Correct gamma displayed on scope, by default enabled. + +@item showwhite +Show white point on CIE diagram, by default disabled. + +@item gamma +Set input gamma. Used only with XYZ input color space. +@end table + @section codecview Visualize information exported by some codecs. @@ -4415,16 +4790,48 @@ backward predicted MVs of B-frames @end table @item qp -Display quantization parameters using the chroma planes +Display quantization parameters using the chroma planes. + +@item mv_type, mvt +Set motion vectors type to visualize. Includes MVs from all frames unless specified by @var{frame_type} option. + +Available flags for @var{mv_type} are: + +@table @samp +@item fp +forward predicted MVs +@item bp +backward predicted MVs +@end table + +@item frame_type, ft +Set frame type to visualize motion vectors of. + +Available flags for @var{frame_type} are: + +@table @samp +@item if +intra-coded frames (I-frames) +@item pf +predicted frames (P-frames) +@item bf +bi-directionally predicted frames (B-frames) +@end table @end table @subsection Examples @itemize @item -Visualizes multi-directionals MVs from P and B-Frames using @command{ffplay}: +Visualize forward predicted MVs of all frames using @command{ffplay}: @example -ffplay -flags2 +export_mvs input.mpg -vf codecview=mv=pf+bf+bb +ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp +@end example + +@item +Visualize multi-directionals MVs of P and B-Frames using @command{ffplay}: +@example +ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb @end example @end itemize @@ -4661,6 +5068,9 @@ SMPTE-240M @item fcc FCC + +@item bt2020 +BT.2020 @end table @end table @@ -4669,6 +5079,217 @@ For example to convert from BT.601 to SMPTE-240M, use the command: colormatrix=bt601:smpte240m @end example +@section colorspace + +Convert colorspace, transfer characteristics or color primaries. + +The filter accepts the following options: + +@table @option +@item all +Specify all color properties at once. + +The accepted values are: +@table @samp +@item bt470m +BT.470M + +@item bt470bg +BT.470BG + +@item bt601-6-525 +BT.601-6 525 + +@item bt601-6-625 +BT.601-6 625 + +@item bt709 +BT.709 + +@item smpte170m +SMPTE-170M + +@item smpte240m +SMPTE-240M + +@item bt2020 +BT.2020 + +@end table + +@item space +Specify output colorspace. + +The accepted values are: +@table @samp +@item bt709 +BT.709 + +@item fcc +FCC + +@item bt470bg +BT.470BG or BT.601-6 625 + +@item smpte170m +SMPTE-170M or BT.601-6 525 + +@item smpte240m +SMPTE-240M + +@item bt2020ncl +BT.2020 with non-constant luminance + +@end table + +@item trc +Specify output transfer characteristics. + +The accepted values are: +@table @samp +@item bt709 +BT.709 + +@item gamma22 +Constant gamma of 2.2 + +@item gamma28 +Constant gamma of 2.8 + +@item smpte170m +SMPTE-170M, BT.601-6 625 or BT.601-6 525 + +@item smpte240m +SMPTE-240M + +@item bt2020-10 +BT.2020 for 10-bits content + +@item bt2020-12 +BT.2020 for 12-bits content + +@end table + +@item prm +Specify output color primaries. + +The accepted values are: +@table @samp +@item bt709 +BT.709 + +@item bt470m +BT.470M + +@item bt470bg +BT.470BG or BT.601-6 625 + +@item smpte170m +SMPTE-170M or BT.601-6 525 + +@item smpte240m +SMPTE-240M + +@item bt2020 +BT.2020 + +@end table + +@item rng +Specify output color range. + +The accepted values are: +@table @samp +@item mpeg +MPEG (restricted) range + +@item jpeg +JPEG (full) range + +@end table + +@item format +Specify output color format. + +The accepted values are: +@table @samp +@item yuv420p +YUV 4:2:0 planar 8-bits + +@item yuv420p10 +YUV 4:2:0 planar 10-bits + +@item yuv420p12 +YUV 4:2:0 planar 12-bits + +@item yuv422p +YUV 4:2:2 planar 8-bits + +@item yuv422p10 +YUV 4:2:2 planar 10-bits + +@item yuv422p12 +YUV 4:2:2 planar 12-bits + +@item yuv444p +YUV 4:4:4 planar 8-bits + +@item yuv444p10 +YUV 4:4:4 planar 10-bits + +@item yuv444p12 +YUV 4:4:4 planar 12-bits + +@end table + +@item fast +Do a fast conversion, which skips gamma/primary correction. This will take +significantly less CPU, but will be mathematically incorrect. To get output +compatible with that produced by the colormatrix filter, use fast=1. + +@item dither +Specify dithering mode. + +The accepted values are: +@table @samp +@item none +No dithering + +@item fsb +Floyd-Steinberg dithering +@end table + +@item wpadapt +Whitepoint adaptation mode. + +The accepted values are: +@table @samp +@item bradford +Bradford whitepoint adaptation + +@item vonkries +von Kries whitepoint adaptation + +@item identity +identity whitepoint adaptation (i.e. no whitepoint adaptation) +@end table + +@end table + +The filter converts the transfer characteristics, color space and color +primaries to the specified user values. The output value, if not specified, +is set to a default value based on the "all" property. If that property is +also not specified, the filter will log an error. The output color range and +format default to the same value as the input color range and format. The +input transfer characteristics, color space, color primaries and color range +should be set on the input data. If any of these are missing, the filter will +log an error and no conversion will take place. + +For example to convert the input to SMPTE-240M, use the command: +@example +colorspace=smpte240m +@end example + @section convolution Apply convolution 3x3 or 5x5 filter. @@ -4736,6 +5357,111 @@ convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 - Copy the input source unchanged to the output. This is mainly useful for testing purposes. +@anchor{coreimage} +@section coreimage +Video filtering on GPU using Apple's CoreImage API on OSX. + +Hardware acceleration is based on an OpenGL context. Usually, this means it is +processed by video hardware. However, software-based OpenGL implementations +exist which means there is no guarantee for hardware processing. It depends on +the respective OSX. + +There are many filters and image generators provided by Apple that come with a +large variety of options. The filter has to be referenced by its name along +with its options. + +The coreimage filter accepts the following options: +@table @option +@item list_filters +List all available filters and generators along with all their respective +options as well as possible minimum and maximum values along with the default +values. +@example +list_filters=true +@end example + +@item filter +Specify all filters by their respective name and options. +Use @var{list_filters} to determine all valid filter names and options. +Numerical options are specified by a float value and are automatically clamped +to their respective value range. Vector and color options have to be specified +by a list of space separated float values. Character escaping has to be done. +A special option name @code{default} is available to use default options for a +filter. + +It is required to specify either @code{default} or at least one of the filter options. +All omitted options are used with their default values. +The syntax of the filter string is as follows: +@example +filter=@@