From 4cc6af2a0efab7fd9914ff00a555c19086142398 Mon Sep 17 00:00:00 2001 From: openvela-robot Date: Mon, 11 Jun 2012 11:47:59 +0800 Subject: [PATCH] random_seed: Rewrite the generic clock() based seed code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The new code is faster and reuses the previous state in case of multiple calls. The previous code could easily end up in near-infinite loops, if the difference between two clock() calls never was larger than 1. This makes fate-parseutils finish in finite time when run in wine, if CryptGenRandom isn't available (which e.g. isn't available if targeting Windows RT/metro). Patch originally by Michael Niedermayer but with some modifications by Martin Storsjö. Signed-off-by: Martin Storsjö --- .gitignore | 35 +- CREDITS | 59 +- Changelog | 523 +- INSTALL | 9 +- LICENSE | 69 +- MAINTAINERS | 547 - Makefile | 127 +- README | 12 +- RELEASE | 2 +- arch.mak | 5 - ffmpeg.c => avconv.c | 2049 +--- ffmpeg.h => avconv.h | 145 +- ffmpeg_filter.c => avconv_filter.c | 442 +- ffmpeg_opt.c => avconv_opt.c | 954 +- ffmpeg_vdpau.c => avconv_vdpau.c | 10 +- avplay.c | 2968 +++++ avprobe.c | 969 ++ ffserver.c => avserver.c | 480 +- cmdutils.c | 698 +- cmdutils.h | 118 +- cmdutils_common_opts.h | 16 +- cmdutils_opencl.c | 274 - common.mak | 90 +- compat/aix/math.h | 14 +- compat/avisynth/avisynth_c.h | 879 -- compat/avisynth/avisynth_c_25.h | 68 - compat/avisynth/avxsynth_c.h | 727 -- .../windowsPorts/basicDataTypeConversions.h | 85 - compat/avisynth/windowsPorts/windows2linux.h | 77 - compat/getopt.c | 11 +- compat/msvcrt/snprintf.c | 13 +- compat/msvcrt/snprintf.h | 38 - compat/os2threads.h | 164 - compat/plan9/main.c | 8 +- compat/strtod.c | 8 +- compat/tms470/math.h | 14 +- compat/va_copy.h | 29 - compat/w32pthreads.h | 15 +- configure | 1053 +- doc/APIchanges | 935 +- doc/Doxyfile | 19 +- doc/Makefile | 137 +- doc/RELEASE_NOTES | 81 +- doc/authors.texi | 11 - doc/{ffmpeg.texi => avconv.texi} | 791 +- doc/avplay.texi | 180 + doc/avprobe.texi | 141 + doc/{ffserver.conf => avserver.conf} | 35 +- doc/avserver.texi | 276 + doc/avtools-common-opts.texi | 184 + doc/avutil.txt | 36 + doc/bitstream_filters.texi | 67 +- doc/build_system.txt | 25 +- doc/codecs.texi | 1096 -- doc/decoders.texi | 202 - doc/default.css | 165 - doc/demuxers.texi | 408 +- doc/developer.texi | 419 +- doc/devices.texi | 21 - doc/doxy-wrapper.sh | 3 + doc/doxy/doxy_stylesheet.css | 2021 ++++ doc/doxy/footer.html | 9 + doc/doxy/header.html | 16 + doc/encoders.texi | 1663 +-- doc/errno.txt | 174 - doc/eval.texi | 156 + doc/examples/Makefile | 39 - doc/examples/README | 23 - doc/examples/demuxing_decoding.c | 386 - doc/examples/filtering_audio.c | 282 - doc/examples/filtering_video.c | 263 - doc/examples/muxing.c | 571 - doc/examples/output.c | 527 + doc/examples/resampling_audio.c | 215 - doc/examples/scaling_video.c | 141 - doc/examples/transcode_aac.c | 95 +- doc/faq.texi | 314 +- doc/fate.texi | 249 +- doc/fate_config.sh.template | 29 - doc/ffmpeg-bitstream-filters.texi | 45 - doc/ffmpeg-codecs.texi | 42 - doc/ffmpeg-devices.texi | 42 - doc/ffmpeg-filters.texi | 42 - doc/ffmpeg-formats.texi | 42 - doc/ffmpeg-protocols.texi | 42 - doc/ffmpeg-resampler.texi | 44 - doc/ffmpeg-scaler.texi | 43 - doc/ffmpeg-utils.texi | 42 - doc/ffmpeg.txt | 47 - doc/ffplay.texi | 283 - doc/ffprobe.texi | 670 -- doc/ffprobe.xsd | 260 - doc/ffserver.texi | 900 -- doc/fftools-common-opts.texi | 303 - doc/filter_design.txt | 270 - doc/filters.texi | 9790 ++--------------- doc/formats.texi | 188 - doc/general.texi | 278 +- doc/git-howto.texi | 91 +- doc/git-howto.txt | 272 + doc/indevs.texi | 639 +- doc/issue_tracker.txt | 194 - doc/libavcodec.texi | 48 - doc/libavdevice.texi | 45 - doc/libavfilter.texi | 92 +- doc/libavformat.texi | 48 - doc/libavutil.texi | 62 - doc/libswresample.texi | 70 - doc/libswscale.texi | 63 - doc/metadata.texi | 20 +- doc/mips.txt | 75 - doc/multithreading.txt | 4 +- doc/muxers.texi | 904 +- doc/nut.texi | 5 - doc/optimization.txt | 8 +- doc/outdevs.texi | 301 +- doc/platform.texi | 63 +- doc/print_options.c | 10 +- doc/protocols.texi | 615 +- doc/resampler.texi | 232 - doc/scaler.texi | 119 - doc/snow.txt | 638 -- doc/soc.txt | 24 + doc/swresample.txt | 46 - doc/t2h.init | 151 +- doc/texi2pod.pl | 73 +- doc/texidep.pl | 32 - doc/utils.texi | 1064 -- doc/viterbi.txt | 109 + ffplay.c | 3626 ------ ffprobe.c | 2988 ----- libavcodec/012v.c | 159 - libavcodec/4xm.c | 153 +- libavcodec/8bps.c | 33 +- libavcodec/8svx.c | 121 +- libavcodec/Makefile | 214 +- libavcodec/a64colors.h | 8 +- libavcodec/a64enc.h | 55 + libavcodec/a64multienc.c | 46 +- libavcodec/a64tables.h | 8 +- libavcodec/aac.h | 35 +- libavcodec/aac_ac3_parser.c | 8 +- libavcodec/aac_ac3_parser.h | 8 +- libavcodec/aac_adtstoasc_bsf.c | 14 +- libavcodec/aac_parser.c | 8 +- libavcodec/aac_tablegen.c | 8 +- libavcodec/aac_tablegen.h | 8 +- libavcodec/aac_tablegen_decl.h | 8 +- libavcodec/aacadtsdec.c | 8 +- libavcodec/aacadtsdec.h | 8 +- libavcodec/aaccoder.c | 22 +- libavcodec/aacdec.c | 286 +- libavcodec/aacdectab.h | 8 +- libavcodec/aacenc.c | 38 +- libavcodec/aacenc.h | 20 +- libavcodec/aacps.c | 32 +- libavcodec/aacps.h | 8 +- libavcodec/aacps_tablegen.c | 8 +- libavcodec/aacps_tablegen.h | 8 +- libavcodec/aacpsdata.c | 8 +- libavcodec/aacpsdsp.c | 10 +- libavcodec/aacpsdsp.h | 9 +- libavcodec/aacpsy.c | 113 +- libavcodec/aacsbr.c | 107 +- libavcodec/aacsbr.h | 10 +- libavcodec/aacsbrdata.h | 14 +- libavcodec/aactab.c | 8 +- libavcodec/aactab.h | 8 +- libavcodec/aandcttab.c | 8 +- libavcodec/aandcttab.h | 8 +- libavcodec/aasc.c | 64 +- libavcodec/ac3.c | 8 +- libavcodec/ac3.h | 10 +- libavcodec/ac3_parser.c | 8 +- libavcodec/ac3_parser.h | 8 +- libavcodec/ac3dec.c | 48 +- libavcodec/ac3dec.h | 14 +- libavcodec/ac3dec_data.c | 8 +- libavcodec/ac3dec_data.h | 8 +- libavcodec/ac3dsp.c | 54 +- libavcodec/ac3dsp.h | 15 +- libavcodec/ac3enc.c | 22 +- libavcodec/ac3enc.h | 8 +- libavcodec/ac3enc_fixed.c | 23 +- libavcodec/ac3enc_float.c | 22 +- libavcodec/ac3enc_opts_template.c | 8 +- libavcodec/ac3enc_template.c | 39 +- libavcodec/ac3tab.c | 10 +- libavcodec/ac3tab.h | 8 +- libavcodec/acelp_filters.c | 20 +- libavcodec/acelp_filters.h | 43 +- libavcodec/acelp_pitch_delay.c | 20 +- libavcodec/acelp_pitch_delay.h | 8 +- libavcodec/acelp_vectors.c | 56 +- libavcodec/acelp_vectors.h | 63 +- libavcodec/adpcm.c | 356 +- libavcodec/adpcm.h | 12 +- libavcodec/adpcm_data.c | 44 +- libavcodec/adpcm_data.h | 14 +- libavcodec/adpcmenc.c | 60 +- libavcodec/adx.c | 8 +- libavcodec/adx.h | 8 +- libavcodec/adx_parser.c | 8 +- libavcodec/adxdec.c | 15 +- libavcodec/adxenc.c | 12 +- libavcodec/aic.c | 17 +- libavcodec/alac.c | 104 +- libavcodec/alac_data.c | 8 +- libavcodec/alac_data.h | 8 +- libavcodec/alacenc.c | 21 +- libavcodec/allcodecs.c | 136 +- libavcodec/alpha/Makefile | 9 - libavcodec/alpha/asm.h | 186 - libavcodec/alpha/dsputil_alpha.c | 157 - libavcodec/alpha/dsputil_alpha.h | 49 - libavcodec/alpha/dsputil_alpha_asm.S | 167 - libavcodec/alpha/hpeldsp_alpha.c | 213 - libavcodec/alpha/hpeldsp_alpha.h | 28 - libavcodec/alpha/hpeldsp_alpha_asm.S | 125 - libavcodec/alpha/motion_est_alpha.c | 345 - libavcodec/alpha/motion_est_mvi_asm.S | 179 - libavcodec/alpha/mpegvideo_alpha.c | 110 - libavcodec/alpha/regdef.h | 77 - libavcodec/alpha/simple_idct_alpha.c | 303 - libavcodec/alsdec.c | 106 +- libavcodec/amr.h | 8 +- libavcodec/amrnbdata.h | 12 +- libavcodec/amrnbdec.c | 78 +- libavcodec/amrwbdata.h | 10 +- libavcodec/amrwbdec.c | 73 +- libavcodec/anm.c | 16 +- libavcodec/ansi.c | 90 +- libavcodec/apedec.c | 40 +- .../api-example.c | 300 +- libavcodec/arm/aac.h | 8 +- libavcodec/arm/aacpsdsp_init_arm.c | 8 +- libavcodec/arm/aacpsdsp_neon.S | 8 +- libavcodec/arm/ac3dsp_arm.S | 8 +- libavcodec/arm/ac3dsp_armv6.S | 8 +- libavcodec/arm/ac3dsp_init_arm.c | 18 +- libavcodec/arm/ac3dsp_neon.S | 52 +- libavcodec/arm/asm-offsets.h | 8 +- libavcodec/arm/dca.h | 84 +- libavcodec/arm/dcadsp_init_arm.c | 8 +- libavcodec/arm/dcadsp_neon.S | 8 +- libavcodec/arm/dcadsp_vfp.S | 8 +- libavcodec/arm/dsputil_arm.S | 8 +- libavcodec/arm/dsputil_arm.h | 8 +- libavcodec/arm/dsputil_armv6.S | 8 +- libavcodec/arm/dsputil_init_arm.c | 10 +- libavcodec/arm/dsputil_init_armv5te.c | 10 +- libavcodec/arm/dsputil_init_armv6.c | 10 +- libavcodec/arm/dsputil_init_neon.c | 10 +- libavcodec/arm/dsputil_neon.S | 8 +- libavcodec/arm/fft_fixed_init_arm.c | 10 +- libavcodec/arm/fft_fixed_neon.S | 10 +- libavcodec/arm/fft_init_arm.c | 10 +- libavcodec/arm/fft_neon.S | 8 +- libavcodec/arm/fft_vfp.S | 8 +- libavcodec/arm/flacdsp_arm.S | 8 +- libavcodec/arm/flacdsp_init_arm.c | 8 +- libavcodec/arm/fmtconvert_init_arm.c | 8 +- libavcodec/arm/fmtconvert_neon.S | 8 +- libavcodec/arm/fmtconvert_vfp.S | 8 +- libavcodec/arm/fmtconvert_vfp_armv6.S | 8 +- libavcodec/arm/h264chroma_init_arm.c | 8 +- libavcodec/arm/h264cmc_neon.S | 8 +- libavcodec/arm/h264dsp_armv6.S | 8 +- libavcodec/arm/h264dsp_init_arm.c | 12 +- libavcodec/arm/h264dsp_neon.S | 8 +- libavcodec/arm/h264idct_neon.S | 8 +- libavcodec/arm/h264pred_init_arm.c | 13 +- libavcodec/arm/h264pred_neon.S | 8 +- libavcodec/arm/h264qpel_init_arm.c | 8 +- libavcodec/arm/h264qpel_neon.S | 8 +- libavcodec/arm/hpeldsp_arm.S | 8 +- libavcodec/arm/hpeldsp_arm.h | 10 +- libavcodec/arm/hpeldsp_armv6.S | 8 +- libavcodec/arm/hpeldsp_init_arm.c | 9 +- libavcodec/arm/hpeldsp_init_armv6.c | 8 +- libavcodec/arm/hpeldsp_init_neon.c | 8 +- libavcodec/arm/hpeldsp_neon.S | 8 +- libavcodec/arm/int_neon.S | 10 +- libavcodec/arm/mathops.h | 8 +- libavcodec/arm/mdct_fixed_neon.S | 8 +- libavcodec/arm/mdct_neon.S | 8 +- libavcodec/arm/mdct_vfp.S | 8 +- libavcodec/arm/mpegaudiodsp_fixed_armv6.S | 8 +- libavcodec/arm/mpegaudiodsp_init_arm.c | 8 +- libavcodec/arm/mpegvideo_arm.c | 8 +- libavcodec/arm/mpegvideo_arm.h | 8 +- libavcodec/arm/mpegvideo_armv5te.c | 13 +- libavcodec/arm/mpegvideo_armv5te_s.S | 8 +- libavcodec/arm/mpegvideo_neon.S | 8 +- libavcodec/arm/neon.S | 8 +- libavcodec/arm/rdft_neon.S | 8 +- libavcodec/arm/rv34dsp_init_arm.c | 8 +- libavcodec/arm/rv34dsp_neon.S | 8 +- libavcodec/arm/rv40dsp_init_arm.c | 8 +- libavcodec/arm/rv40dsp_neon.S | 8 +- libavcodec/arm/sbrdsp_init_arm.c | 8 +- libavcodec/arm/sbrdsp_neon.S | 8 +- libavcodec/arm/simple_idct_arm.S | 10 +- libavcodec/arm/simple_idct_armv5te.S | 8 +- libavcodec/arm/simple_idct_armv6.S | 8 +- libavcodec/arm/simple_idct_neon.S | 8 +- libavcodec/arm/synth_filter_neon.S | 8 +- libavcodec/arm/synth_filter_vfp.S | 8 +- libavcodec/arm/vc1dsp.h | 8 +- libavcodec/arm/vc1dsp_init_arm.c | 8 +- libavcodec/arm/vc1dsp_init_neon.c | 8 +- libavcodec/arm/vc1dsp_neon.S | 8 +- libavcodec/arm/videodsp_arm.h | 8 +- libavcodec/arm/videodsp_armv5te.S | 8 +- libavcodec/arm/videodsp_init_arm.c | 8 +- libavcodec/arm/videodsp_init_armv5te.c | 10 +- libavcodec/arm/vorbisdsp_init_arm.c | 8 +- libavcodec/arm/vorbisdsp_neon.S | 8 +- libavcodec/arm/vp3dsp_init_arm.c | 8 +- libavcodec/arm/vp3dsp_neon.S | 8 +- libavcodec/arm/vp56_arith.h | 8 +- libavcodec/arm/vp6dsp_init_arm.c | 8 +- libavcodec/arm/vp6dsp_neon.S | 8 +- libavcodec/arm/vp8.h | 8 +- libavcodec/arm/vp8_armv6.S | 8 +- libavcodec/arm/vp8dsp.h | 8 +- libavcodec/arm/vp8dsp_armv6.S | 8 +- libavcodec/arm/vp8dsp_init_arm.c | 8 +- libavcodec/arm/vp8dsp_init_armv6.c | 8 +- libavcodec/arm/vp8dsp_init_neon.c | 8 +- libavcodec/arm/vp8dsp_neon.S | 173 +- libavcodec/ass.c | 174 +- libavcodec/ass.h | 82 +- libavcodec/ass_split.c | 476 - libavcodec/ass_split.h | 172 - libavcodec/assdec.c | 78 +- libavcodec/assenc.c | 77 +- libavcodec/asv.c | 8 +- libavcodec/asv.h | 8 +- libavcodec/asvdec.c | 23 +- libavcodec/asvenc.c | 24 +- libavcodec/atrac.c | 11 +- libavcodec/atrac.h | 11 +- libavcodec/atrac1.c | 19 +- libavcodec/atrac1data.h | 8 +- libavcodec/atrac3.c | 51 +- libavcodec/atrac3data.h | 8 +- libavcodec/atrac3plus.c | 1817 --- libavcodec/atrac3plus.h | 240 - libavcodec/atrac3plus_data.h | 1914 ---- libavcodec/atrac3plusdec.c | 383 - libavcodec/atrac3plusdsp.c | 637 -- libavcodec/audio_frame_queue.c | 147 +- libavcodec/audio_frame_queue.h | 14 +- libavcodec/audioconvert.c | 120 - libavcodec/audioconvert.h | 84 - libavcodec/aura.c | 12 +- libavcodec/avcodec.h | 1005 +- libavcodec/avcodecres.rc | 55 - libavcodec/avfft.c | 10 +- libavcodec/avfft.h | 8 +- libavcodec/avpacket.c | 246 +- libavcodec/avpicture.c | 73 +- libavcodec/avr32/mathops.h | 8 +- libavcodec/avrndec.c | 131 - libavcodec/avs.c | 18 +- libavcodec/avuidec.c | 130 - libavcodec/avuienc.c | 112 - libavcodec/bethsoftvideo.c | 15 +- libavcodec/bethsoftvideo.h | 8 +- libavcodec/bfi.c | 20 +- libavcodec/bfin/config_bfin.h | 8 +- libavcodec/bfin/dsputil_bfin.c | 8 +- libavcodec/bfin/dsputil_bfin.h | 8 +- libavcodec/bfin/fdct_bfin.S | 16 +- libavcodec/bfin/hpel_pixels_bfin.S | 9 +- libavcodec/bfin/hpeldsp_bfin.c | 8 +- libavcodec/bfin/hpeldsp_bfin.h | 11 +- libavcodec/bfin/idct_bfin.S | 14 +- libavcodec/bfin/mathops.h | 8 +- libavcodec/bfin/pixels_bfin.S | 10 +- libavcodec/bfin/vp3_bfin.c | 8 +- libavcodec/bfin/vp3_bfin.h | 8 +- libavcodec/bfin/vp3_idct_bfin.S | 8 +- libavcodec/bgmc.c | 18 +- libavcodec/bgmc.h | 12 +- libavcodec/bink.c | 103 +- libavcodec/binkaudio.c | 24 +- libavcodec/binkdata.h | 8 +- libavcodec/binkdsp.c | 8 +- libavcodec/binkdsp.h | 8 +- libavcodec/bintext.c | 258 - libavcodec/bintext.h | 37 - libavcodec/bit_depth_template.c | 13 +- libavcodec/bitstream.c | 85 +- libavcodec/bitstream_filter.c | 16 +- libavcodec/bmp.c | 75 +- libavcodec/bmp.h | 8 +- libavcodec/bmp_parser.c | 91 - libavcodec/bmpenc.c | 28 +- libavcodec/bmv.c | 29 +- libavcodec/brender_pix.c | 216 - libavcodec/bytestream.h | 21 +- libavcodec/c93.c | 26 +- libavcodec/cabac.c | 157 +- libavcodec/cabac.h | 8 +- libavcodec/cabac_functions.h | 12 +- libavcodec/cavs.c | 12 +- libavcodec/cavs.h | 10 +- libavcodec/cavs_parser.c | 8 +- libavcodec/cavsdata.c | 8 +- libavcodec/cavsdec.c | 66 +- libavcodec/cavsdsp.c | 8 +- libavcodec/cavsdsp.h | 8 +- libavcodec/cbrt_tablegen.c | 8 +- libavcodec/cbrt_tablegen.h | 10 +- libavcodec/cdgraphics.c | 34 +- libavcodec/cdxl.c | 29 +- libavcodec/celp_filters.c | 22 +- libavcodec/celp_filters.h | 57 +- libavcodec/celp_math.c | 50 +- libavcodec/celp_math.h | 47 +- libavcodec/cga_data.c | 419 +- libavcodec/cga_data.h | 11 +- libavcodec/chomp_bsf.c | 13 +- libavcodec/cinepak.c | 253 +- libavcodec/cljr.c | 72 +- libavcodec/cllc.c | 23 +- libavcodec/cngdec.c | 12 +- libavcodec/cngenc.c | 8 +- libavcodec/codec_desc.c | 413 +- libavcodec/cook.c | 73 +- libavcodec/cook_parser.c | 15 +- libavcodec/cookdata.h | 8 +- libavcodec/copy_block.h | 41 +- libavcodec/cos_tablegen.c | 10 +- libavcodec/cpia.c | 233 - libavcodec/crystalhd.c | 1223 -- libavcodec/cscd.c | 142 +- libavcodec/cyuv.c | 30 +- libavcodec/dca.c | 12 +- libavcodec/dca.h | 8 +- libavcodec/dca_parser.c | 18 +- libavcodec/dcadata.h | 8 +- libavcodec/dcadec.c | 904 +- libavcodec/dcadsp.c | 8 +- libavcodec/dcadsp.h | 8 +- libavcodec/dcaenc.c | 974 -- libavcodec/dcaenc.h | 113 - libavcodec/dcahuff.h | 8 +- libavcodec/dct-test.c | 87 +- libavcodec/dct.c | 8 +- libavcodec/dct.h | 11 +- libavcodec/dct32.h | 8 +- libavcodec/dct32_fixed.c | 8 +- libavcodec/dct32_float.c | 8 +- libavcodec/dct32_template.c | 8 +- libavcodec/dctref.c | 8 +- libavcodec/dctref.h | 8 +- libavcodec/dfa.c | 42 +- libavcodec/dirac.c | 48 +- libavcodec/dirac.h | 11 +- libavcodec/dirac_arith.c | 116 - libavcodec/dirac_arith.h | 190 - libavcodec/dirac_dwt.c | 572 - libavcodec/dirac_dwt.h | 123 - libavcodec/dirac_parser.c | 12 +- libavcodec/diracdec.c | 1956 ---- libavcodec/diracdsp.c | 201 - libavcodec/diracdsp.h | 67 - libavcodec/dnxhd_parser.c | 50 +- libavcodec/dnxhddata.c | 689 +- libavcodec/dnxhddata.h | 18 +- libavcodec/dnxhddec.c | 78 +- libavcodec/dnxhdenc.c | 102 +- libavcodec/dnxhdenc.h | 10 +- libavcodec/dpcm.c | 19 +- libavcodec/dpx.c | 293 +- libavcodec/dpx_parser.c | 108 - libavcodec/dpxenc.c | 164 +- libavcodec/dsicinav.c | 71 +- libavcodec/dsputil.c | 249 +- libavcodec/dsputil.h | 20 +- libavcodec/dsputil_template.c | 16 +- libavcodec/dump_extradata_bsf.c | 13 +- libavcodec/dv.c | 20 +- libavcodec/dv.h | 11 +- libavcodec/dv_profile.c | 46 +- libavcodec/dv_profile.h | 14 +- libavcodec/dv_tablegen.c | 8 +- libavcodec/dv_tablegen.h | 8 +- libavcodec/dvbsub.c | 114 +- libavcodec/dvbsub_parser.c | 10 +- libavcodec/dvbsubdec.c | 215 +- libavcodec/dvd_nav_parser.c | 116 - libavcodec/dvdata.c | 8 +- libavcodec/dvdata.h | 8 +- libavcodec/dvdec.c | 47 +- libavcodec/dvdsub_parser.c | 8 +- libavcodec/dvdsubdec.c | 261 +- libavcodec/dvdsubenc.c | 389 +- libavcodec/dvenc.c | 35 +- libavcodec/dxa.c | 95 +- libavcodec/dxtory.c | 10 +- libavcodec/dxva2.c | 8 +- libavcodec/dxva2.h | 19 +- libavcodec/dxva2_h264.c | 18 +- libavcodec/dxva2_internal.h | 9 +- libavcodec/dxva2_mpeg2.c | 21 +- libavcodec/dxva2_vc1.c | 54 +- libavcodec/eac3_data.c | 8 +- libavcodec/eac3_data.h | 8 +- libavcodec/eac3dec.c | 8 +- libavcodec/eac3enc.c | 16 +- libavcodec/eac3enc.h | 8 +- libavcodec/eacmv.c | 31 +- libavcodec/eaidct.c | 8 +- libavcodec/eaidct.h | 8 +- libavcodec/eamad.c | 53 +- libavcodec/eatgq.c | 24 +- libavcodec/eatgv.c | 34 +- libavcodec/eatqi.c | 15 +- libavcodec/elbg.c | 21 +- libavcodec/elbg.h | 16 +- libavcodec/error_resilience.c | 250 +- libavcodec/error_resilience.h | 8 +- libavcodec/escape124.c | 39 +- libavcodec/escape130.c | 18 +- libavcodec/evrcdata.h | 1499 --- libavcodec/evrcdec.c | 917 -- libavcodec/exif.c | 130 - libavcodec/exif.h | 170 - libavcodec/exr.c | 1278 --- libavcodec/faandct.h | 8 +- libavcodec/faanidct.c | 8 +- libavcodec/faanidct.h | 8 +- libavcodec/faxcompr.c | 30 +- libavcodec/faxcompr.h | 8 +- libavcodec/fft-fixed-test.c | 8 +- libavcodec/fft-fixed32-test.c | 21 - libavcodec/fft-internal.h | 29 +- libavcodec/fft-test.c | 36 +- libavcodec/fft.h | 28 +- libavcodec/fft_fixed.c | 9 +- libavcodec/fft_fixed_32.c | 52 - libavcodec/fft_float.c | 9 +- libavcodec/fft_init_table.c | 200 - libavcodec/fft_table.h | 66 - libavcodec/fft_template.c | 192 +- libavcodec/ffv1.c | 156 +- libavcodec/ffv1.h | 63 +- libavcodec/ffv1dec.c | 678 +- libavcodec/ffv1enc.c | 743 +- libavcodec/ffwavesynth.c | 481 - libavcodec/flac.c | 11 +- libavcodec/flac.h | 8 +- libavcodec/flac_parser.c | 90 +- libavcodec/flacdata.c | 10 +- libavcodec/flacdata.h | 10 +- libavcodec/flacdec.c | 65 +- libavcodec/flacdsp.c | 8 +- libavcodec/flacdsp.h | 8 +- libavcodec/flacdsp_lpc_template.c | 8 +- libavcodec/flacdsp_template.c | 8 +- libavcodec/flacenc.c | 73 +- libavcodec/flashsv.c | 50 +- libavcodec/flashsv2enc.c | 920 -- libavcodec/flashsvenc.c | 14 +- libavcodec/flicvideo.c | 140 +- libavcodec/flv.h | 8 +- libavcodec/flvdec.c | 23 +- libavcodec/flvenc.c | 8 +- libavcodec/fmtconvert.c | 40 +- libavcodec/fmtconvert.h | 13 +- libavcodec/frame_thread_encoder.c | 270 - libavcodec/frame_thread_encoder.h | 26 - libavcodec/fraps.c | 225 +- libavcodec/frwu.c | 43 +- libavcodec/g2meet.c | 38 +- libavcodec/g722.c | 8 +- libavcodec/g722.h | 8 +- libavcodec/g722dec.c | 12 +- libavcodec/g722enc.c | 15 +- libavcodec/g723_1.c | 1297 +-- libavcodec/g723_1_data.h | 171 +- libavcodec/g726.c | 49 +- libavcodec/g729.h | 29 - libavcodec/g729data.h | 382 - libavcodec/g729dec.c | 726 -- libavcodec/g729postfilter.c | 610 - libavcodec/g729postfilter.h | 116 - libavcodec/get_bits.h | 112 +- libavcodec/gif.c | 264 +- libavcodec/gif.h | 49 - libavcodec/gifdec.c | 444 +- libavcodec/golomb-test.c | 10 +- libavcodec/golomb.c | 8 +- libavcodec/golomb.h | 42 +- libavcodec/gsm.h | 8 +- libavcodec/gsm_parser.c | 13 +- libavcodec/gsmdec.c | 17 +- libavcodec/gsmdec_data.c | 8 +- libavcodec/gsmdec_data.h | 8 +- libavcodec/gsmdec_template.c | 8 +- libavcodec/h261.c | 8 +- libavcodec/h261.h | 9 +- libavcodec/h261_parser.c | 22 +- libavcodec/h261data.c | 8 +- libavcodec/h261dec.c | 29 +- libavcodec/h261enc.c | 111 +- libavcodec/h263.c | 8 +- libavcodec/h263.h | 13 +- libavcodec/h263_parser.c | 22 +- libavcodec/h263_parser.h | 8 +- libavcodec/h263data.h | 12 +- libavcodec/h263dec.c | 158 +- libavcodec/h263dsp.c | 8 +- libavcodec/h263dsp.h | 8 +- libavcodec/h264.c | 968 +- libavcodec/h264.h | 81 +- libavcodec/h264_cabac.c | 65 +- libavcodec/h264_cavlc.c | 124 +- libavcodec/h264_direct.c | 17 +- libavcodec/h264_loopfilter.c | 20 +- libavcodec/h264_mb_template.c | 25 +- libavcodec/h264_mc_template.c | 14 +- libavcodec/h264_mp4toannexb_bsf.c | 57 +- libavcodec/h264_mvpred.h | 18 +- libavcodec/h264_parser.c | 110 +- libavcodec/h264_ps.c | 153 +- libavcodec/h264_refs.c | 89 +- libavcodec/h264_sei.c | 171 +- libavcodec/h264addpx_template.c | 8 +- libavcodec/h264chroma.c | 10 +- libavcodec/h264chroma.h | 12 +- libavcodec/h264chroma_template.c | 50 +- libavcodec/h264data.h | 10 +- libavcodec/h264dsp.c | 31 +- libavcodec/h264dsp.h | 8 +- libavcodec/h264dsp_template.c | 46 +- libavcodec/h264idct.c | 16 +- libavcodec/h264idct.h | 10 +- libavcodec/h264idct_template.c | 12 +- libavcodec/h264pred.c | 27 +- libavcodec/h264pred.h | 8 +- libavcodec/h264pred_template.c | 97 +- libavcodec/h264qpel.c | 26 +- libavcodec/h264qpel.h | 8 +- libavcodec/h264qpel_template.c | 116 +- libavcodec/hevc.c | 975 +- libavcodec/hevc.h | 93 +- libavcodec/hevc_cabac.c | 675 +- libavcodec/hevc_filter.c | 33 +- libavcodec/hevc_mvs.c | 23 +- libavcodec/hevc_parser.c | 242 +- libavcodec/hevc_ps.c | 40 +- libavcodec/hevc_refs.c | 31 +- libavcodec/hevc_sei.c | 103 +- libavcodec/hevcdsp.c | 8 +- libavcodec/hevcdsp.h | 8 +- libavcodec/hevcdsp_template.c | 10 +- libavcodec/hevcpred.c | 12 +- libavcodec/hevcpred.h | 43 - libavcodec/hevcpred_template.c | 17 +- libavcodec/hnm4video.c | 90 +- libavcodec/hpel_template.c | 8 +- libavcodec/hpeldsp.c | 10 +- libavcodec/hpeldsp.h | 13 +- libavcodec/hpeldsp_template.c | 10 +- libavcodec/huffman.c | 37 +- libavcodec/huffman.h | 11 +- libavcodec/huffyuv.c | 13 +- libavcodec/huffyuv.h | 14 +- libavcodec/huffyuvdec.c | 302 +- libavcodec/huffyuvenc.c | 196 +- libavcodec/idcinvideo.c | 23 +- libavcodec/iff.c | 722 +- libavcodec/iirfilter.c | 15 +- libavcodec/iirfilter.h | 31 +- libavcodec/imc.c | 43 +- libavcodec/imcdata.h | 8 +- libavcodec/imgconvert.c | 346 +- libavcodec/imgconvert.h | 8 +- libavcodec/imx_dump_header_bsf.c | 13 +- libavcodec/indeo2.c | 12 +- libavcodec/indeo2data.h | 8 +- libavcodec/indeo3.c | 99 +- libavcodec/indeo3data.h | 8 +- libavcodec/indeo4.c | 89 +- libavcodec/indeo4data.h | 8 +- libavcodec/indeo5.c | 53 +- libavcodec/indeo5data.h | 8 +- libavcodec/intelh263dec.c | 19 +- libavcodec/internal.h | 71 +- libavcodec/interplayvideo.c | 62 +- libavcodec/intrax8.c | 45 +- libavcodec/intrax8.h | 11 +- libavcodec/intrax8dsp.c | 8 +- libavcodec/intrax8dsp.h | 8 +- libavcodec/intrax8huf.h | 8 +- libavcodec/ituh263dec.c | 64 +- libavcodec/ituh263enc.c | 20 +- libavcodec/ivi_common.c | 85 +- libavcodec/ivi_common.h | 10 +- libavcodec/ivi_dsp.c | 30 +- libavcodec/ivi_dsp.h | 12 +- libavcodec/j2kenc.c | 1055 -- libavcodec/jacosub.h | 45 - libavcodec/jacosubdec.c | 205 - libavcodec/jfdctint.c | 8 +- libavcodec/jpeg2000.c | 125 +- libavcodec/jpeg2000.h | 22 +- libavcodec/jpeg2000dec.c | 472 +- libavcodec/jpeg2000dwt.c | 231 +- libavcodec/jpeg2000dwt.h | 9 +- libavcodec/jpegls.c | 14 +- libavcodec/jpegls.h | 12 +- libavcodec/jpeglsdec.c | 89 +- libavcodec/jpeglsdec.h | 8 +- libavcodec/jpeglsenc.c | 25 +- libavcodec/jrevdct.c | 213 - libavcodec/jvdec.c | 43 +- libavcodec/kbdwin.c | 12 +- libavcodec/kbdwin.h | 8 +- libavcodec/kgv1dec.c | 39 +- libavcodec/kmvc.c | 37 +- libavcodec/lagarith.c | 153 +- libavcodec/lagarithrac.c | 12 +- libavcodec/lagarithrac.h | 8 +- libavcodec/latm_parser.c | 9 +- libavcodec/lcl.h | 8 +- libavcodec/lcldec.c | 42 +- libavcodec/lclenc.c | 31 +- libavcodec/libaacplus.c | 141 - libavcodec/libavcodec.v | 27 - libavcodec/libcelt_dec.c | 140 - libavcodec/libfaac.c | 30 +- libavcodec/libfdk-aacdec.c | 16 +- libavcodec/libfdk-aacenc.c | 12 +- libavcodec/libgsm.c | 46 +- libavcodec/libilbc.c | 26 +- libavcodec/libmp3lame.c | 34 +- libavcodec/libopencore-amr.c | 36 +- libavcodec/libopenjpegdec.c | 156 +- libavcodec/libopenjpegenc.c | 465 +- libavcodec/libopus.c | 8 +- libavcodec/libopus.h | 8 +- libavcodec/libopusdec.c | 51 +- libavcodec/libopusenc.c | 51 +- libavcodec/libschroedinger.c | 13 +- libavcodec/libschroedinger.h | 8 +- libavcodec/libschroedingerdec.c | 24 +- libavcodec/libschroedingerenc.c | 13 +- libavcodec/libshine.c | 149 - libavcodec/libspeexdec.c | 28 +- libavcodec/libspeexenc.c | 17 +- libavcodec/libstagefright.cpp | 590 - libavcodec/libtheoraenc.c | 72 +- libavcodec/libtwolame.c | 198 - libavcodec/libutvideo.h | 70 - libavcodec/libutvideodec.cpp | 212 - libavcodec/libutvideoenc.cpp | 240 - libavcodec/libvo-aacenc.c | 20 +- libavcodec/libvo-amrwbenc.c | 18 +- libavcodec/{libvorbisenc.c => libvorbis.c} | 99 +- libavcodec/libvorbisdec.c | 199 - libavcodec/libvpx.c | 21 +- libavcodec/libvpx.h | 10 +- libavcodec/libvpxdec.c | 16 +- libavcodec/libvpxenc.c | 374 +- libavcodec/libwavpackenc.c | 8 +- libavcodec/libwebpenc.c | 8 +- libavcodec/libx264.c | 197 +- libavcodec/libxavs.c | 24 +- libavcodec/libxvid.c | 200 +- libavcodec/libxvid.h | 8 +- libavcodec/libxvid_rc.c | 59 +- libavcodec/libzvbi-teletextdec.c | 555 - libavcodec/ljpegenc.c | 68 +- libavcodec/loco.c | 107 +- libavcodec/lpc.c | 26 +- libavcodec/lpc.h | 13 +- libavcodec/lsp.c | 20 +- libavcodec/lsp.h | 8 +- libavcodec/lzw.c | 14 +- libavcodec/lzw.h | 9 +- libavcodec/lzwenc.c | 17 +- libavcodec/mace.c | 19 +- libavcodec/mathops.h | 8 +- libavcodec/mathtables.c | 10 +- libavcodec/mdct_fixed.c | 9 +- libavcodec/mdct_fixed_32.c | 52 - libavcodec/mdct_float.c | 9 +- libavcodec/mdct_template.c | 12 +- libavcodec/mdec.c | 26 +- libavcodec/metasound.c | 10 +- libavcodec/metasound_data.c | 16 +- libavcodec/metasound_data.h | 8 +- libavcodec/microdvddec.c | 377 - libavcodec/mimic.c | 23 +- libavcodec/mips/Makefile | 20 - libavcodec/mips/aaccoder_mips.c | 2498 ----- libavcodec/mips/aacdec_mips.c | 831 -- libavcodec/mips/aacdec_mips.h | 249 - libavcodec/mips/aacpsdsp_mips.c | 459 - libavcodec/mips/aacpsy_mips.h | 230 - libavcodec/mips/aacsbr_mips.c | 618 -- libavcodec/mips/aacsbr_mips.h | 493 - libavcodec/mips/ac3dsp_mips.c | 412 - libavcodec/mips/acelp_filters_mips.c | 216 - libavcodec/mips/acelp_vectors_mips.c | 101 - libavcodec/mips/amrwbdec_mips.c | 187 - libavcodec/mips/amrwbdec_mips.h | 62 - libavcodec/mips/celp_filters_mips.c | 288 - libavcodec/mips/celp_math_mips.c | 89 - libavcodec/mips/compute_antialias_fixed.h | 250 - libavcodec/mips/compute_antialias_float.h | 185 - libavcodec/mips/fft_mips.c | 534 - libavcodec/mips/fmtconvert_mips.c | 342 - libavcodec/mips/iirfilter_mips.c | 204 - libavcodec/mips/lsp_mips.h | 109 - libavcodec/mips/mathops.h | 8 +- libavcodec/mips/mpegaudiodsp_mips_fixed.c | 907 -- libavcodec/mips/mpegaudiodsp_mips_float.c | 1250 --- libavcodec/mips/sbrdsp_mips.c | 940 -- libavcodec/mjpeg.c | 12 +- libavcodec/mjpeg.h | 9 +- libavcodec/mjpeg2jpeg_bsf.c | 8 +- libavcodec/mjpeg_parser.c | 68 +- libavcodec/mjpega_dump_header_bsf.c | 13 +- libavcodec/mjpegbdec.c | 16 +- libavcodec/mjpegdec.c | 899 +- libavcodec/mjpegdec.h | 17 +- libavcodec/mjpegenc.c | 227 +- libavcodec/mjpegenc.h | 12 +- libavcodec/mlp.c | 8 +- libavcodec/mlp.h | 8 +- libavcodec/mlp_parser.c | 55 +- libavcodec/mlp_parser.h | 13 +- libavcodec/mlpdec.c | 72 +- libavcodec/mlpdsp.c | 8 +- libavcodec/mlpdsp.h | 8 +- libavcodec/mmvideo.c | 25 +- libavcodec/motion-test.c | 151 - libavcodec/motion_est.c | 95 +- libavcodec/motion_est_template.c | 64 +- libavcodec/motionpixels.c | 54 +- libavcodec/motionpixels_tablegen.c | 8 +- libavcodec/motionpixels_tablegen.h | 10 +- libavcodec/movsub_bsf.c | 18 +- libavcodec/movtextdec.c | 116 - libavcodec/movtextenc.c | 165 - libavcodec/mp3_header_decompress_bsf.c | 97 - libavcodec/mpc.c | 14 +- libavcodec/mpc.h | 8 +- libavcodec/mpc7.c | 28 +- libavcodec/mpc7data.h | 8 +- libavcodec/mpc8.c | 24 +- libavcodec/mpc8data.h | 8 +- libavcodec/mpc8huff.h | 8 +- libavcodec/mpcdata.h | 46 +- libavcodec/mpeg12.c | 17 +- libavcodec/mpeg12.h | 8 +- libavcodec/mpeg12data.c | 76 +- libavcodec/mpeg12data.h | 11 +- libavcodec/mpeg12dec.c | 474 +- libavcodec/mpeg12enc.c | 118 +- libavcodec/mpeg4audio.c | 18 +- libavcodec/mpeg4audio.h | 8 +- libavcodec/mpeg4data.h | 8 +- libavcodec/mpeg4video.c | 8 +- libavcodec/mpeg4video.h | 28 +- libavcodec/mpeg4video_parser.c | 21 +- libavcodec/mpeg4video_parser.h | 8 +- libavcodec/mpeg4videodec.c | 514 +- libavcodec/mpeg4videoenc.c | 79 +- libavcodec/mpegaudio.c | 8 +- libavcodec/mpegaudio.h | 16 +- libavcodec/mpegaudio_parser.c | 9 +- libavcodec/mpegaudio_tablegen.c | 8 +- libavcodec/mpegaudio_tablegen.h | 15 +- libavcodec/mpegaudiodata.c | 18 +- libavcodec/mpegaudiodata.h | 8 +- libavcodec/mpegaudiodec_fixed.c | 10 +- libavcodec/mpegaudiodec_float.c | 10 +- libavcodec/mpegaudiodec_template.c | 94 +- libavcodec/mpegaudiodecheader.c | 8 +- libavcodec/mpegaudiodecheader.h | 8 +- libavcodec/mpegaudiodectab.h | 8 +- libavcodec/mpegaudiodsp.c | 10 +- libavcodec/mpegaudiodsp.h | 11 +- libavcodec/mpegaudiodsp_data.c | 8 +- libavcodec/mpegaudiodsp_fixed.c | 10 +- libavcodec/mpegaudiodsp_float.c | 10 +- libavcodec/mpegaudiodsp_template.c | 17 +- ...mpegaudioenc_template.c => mpegaudioenc.c} | 80 +- libavcodec/mpegaudioenc_fixed.c | 41 - libavcodec/mpegaudioenc_float.c | 42 - libavcodec/mpegaudiotab.h | 8 +- libavcodec/mpegvideo.c | 1145 +- libavcodec/mpegvideo.h | 68 +- libavcodec/mpegvideo_enc.c | 471 +- libavcodec/mpegvideo_motion.c | 42 +- libavcodec/mpegvideo_parser.c | 34 +- libavcodec/mpegvideo_xvmc.c | 61 +- libavcodec/mpl2dec.c | 96 - libavcodec/mqc.c | 8 +- libavcodec/mqc.h | 22 +- libavcodec/mqcdec.c | 8 +- libavcodec/mqcenc.c | 119 - libavcodec/msgsmdec.c | 8 +- libavcodec/msgsmdec.h | 8 +- libavcodec/msmpeg4.c | 41 +- libavcodec/msmpeg4.h | 8 +- libavcodec/msmpeg4data.c | 8 +- libavcodec/msmpeg4data.h | 8 +- libavcodec/msmpeg4dec.c | 39 +- libavcodec/msmpeg4enc.c | 20 +- libavcodec/msrle.c | 27 +- libavcodec/msrledec.c | 81 +- libavcodec/msrledec.h | 8 +- libavcodec/mss1.c | 26 +- libavcodec/mss12.c | 17 +- libavcodec/mss12.h | 22 +- libavcodec/mss2.c | 37 +- libavcodec/mss2dsp.c | 11 +- libavcodec/mss2dsp.h | 8 +- libavcodec/mss3.c | 15 +- libavcodec/mss34dsp.c | 8 +- libavcodec/mss34dsp.h | 8 +- libavcodec/mss4.c | 16 +- libavcodec/msvideo1.c | 12 +- libavcodec/msvideo1enc.c | 305 - libavcodec/mvcdec.c | 287 - libavcodec/mxpegdec.c | 26 +- libavcodec/nellymoserdec.c | 9 +- libavcodec/nellymoserenc.c | 24 +- libavcodec/noise_bsf.c | 19 +- libavcodec/nuv.c | 67 +- libavcodec/old_codec_ids.h | 399 - libavcodec/options.c | 88 +- libavcodec/options_table.h | 102 +- libavcodec/paf.c | 451 - libavcodec/paf.h | 28 - libavcodec/pamenc.c | 75 +- libavcodec/parser.c | 55 +- libavcodec/parser.h | 8 +- libavcodec/pcm-bluray.c | 19 +- libavcodec/pcm-dvd.c | 54 +- libavcodec/pcm.c | 183 +- libavcodec/pcm_tablegen.c | 8 +- libavcodec/pcm_tablegen.h | 8 +- libavcodec/pcx.c | 129 +- libavcodec/pcxenc.c | 30 +- libavcodec/pgssubdec.c | 245 +- libavcodec/pictordec.c | 50 +- libavcodec/png.c | 17 +- libavcodec/png.h | 15 +- libavcodec/png_parser.c | 27 +- libavcodec/pngdec.c | 558 +- libavcodec/pngdsp.c | 8 +- libavcodec/pngdsp.h | 8 +- libavcodec/pngenc.c | 145 +- libavcodec/pnm.c | 68 +- libavcodec/pnm.h | 8 +- libavcodec/pnm_parser.c | 8 +- libavcodec/pnmdec.c | 113 +- libavcodec/pnmenc.c | 22 +- libavcodec/ppc/asm.S | 8 +- libavcodec/ppc/dsputil_altivec.c | 8 +- libavcodec/ppc/dsputil_altivec.h | 8 +- libavcodec/ppc/dsputil_ppc.c | 13 +- libavcodec/ppc/fdct_altivec.c | 8 +- libavcodec/ppc/fft_altivec.c | 8 +- libavcodec/ppc/fft_altivec_s.S | 8 +- libavcodec/ppc/fmtconvert_altivec.c | 8 +- libavcodec/ppc/gmc_altivec.c | 12 +- libavcodec/ppc/h264chroma_init.c | 8 +- libavcodec/ppc/h264chroma_template.c | 8 +- libavcodec/ppc/h264dsp.c | 8 +- libavcodec/ppc/h264qpel.c | 8 +- libavcodec/ppc/h264qpel_template.c | 8 +- libavcodec/ppc/hpeldsp_altivec.c | 8 +- libavcodec/ppc/idct_altivec.c | 12 +- libavcodec/ppc/int_altivec.c | 8 +- libavcodec/ppc/mathops.h | 8 +- libavcodec/ppc/mpegaudiodsp_altivec.c | 8 +- libavcodec/ppc/mpegvideo_altivec.c | 8 +- libavcodec/ppc/vc1dsp_altivec.c | 8 +- libavcodec/ppc/videodsp_ppc.c | 8 +- libavcodec/ppc/vorbisdsp_altivec.c | 8 +- libavcodec/ppc/vp3dsp_altivec.c | 8 +- libavcodec/ppc/vp8dsp_altivec.c | 57 +- libavcodec/proresdata.c | 8 +- libavcodec/proresdata.h | 8 +- libavcodec/{proresdec_lgpl.c => proresdec.c} | 20 +- libavcodec/proresdec.h | 55 - libavcodec/proresdec2.c | 688 -- libavcodec/proresdsp.c | 20 +- libavcodec/proresdsp.h | 13 +- .../{proresenc_kostya.c => proresenc.c} | 26 +- libavcodec/proresenc_anatoliy.c | 626 -- libavcodec/psymodel.c | 24 +- libavcodec/psymodel.h | 10 +- libavcodec/pthread.c | 8 +- libavcodec/pthread_frame.c | 157 +- libavcodec/pthread_internal.h | 8 +- libavcodec/pthread_slice.c | 78 +- libavcodec/ptx.c | 20 +- libavcodec/put_bits.h | 19 +- libavcodec/qcelpdata.h | 12 +- libavcodec/qcelpdec.c | 24 +- libavcodec/qdm2.c | 135 +- libavcodec/qdm2_tablegen.c | 8 +- libavcodec/qdm2_tablegen.h | 29 +- libavcodec/qdm2data.h | 8 +- libavcodec/qdrw.c | 14 +- libavcodec/qpeg.c | 59 +- libavcodec/qtrle.c | 76 +- libavcodec/qtrleenc.c | 156 +- libavcodec/r210dec.c | 29 +- libavcodec/r210enc.c | 123 - libavcodec/ra144.c | 25 +- libavcodec/ra144.h | 14 +- libavcodec/ra144dec.c | 22 +- libavcodec/ra144enc.c | 23 +- libavcodec/ra288.c | 27 +- libavcodec/ra288.h | 8 +- libavcodec/ralf.c | 12 +- libavcodec/ralfdata.h | 8 +- libavcodec/rangecoder.c | 15 +- libavcodec/rangecoder.h | 16 +- libavcodec/ratecontrol.c | 52 +- libavcodec/ratecontrol.h | 8 +- libavcodec/raw.c | 51 +- libavcodec/raw.h | 15 +- libavcodec/rawdec.c | 160 +- libavcodec/rawenc.c | 12 +- libavcodec/rdft.c | 8 +- libavcodec/rdft.h | 8 +- libavcodec/realtextdec.c | 83 - libavcodec/rectangle.h | 21 +- libavcodec/remove_extradata_bsf.c | 13 +- libavcodec/resample.c | 435 - libavcodec/resample2.c | 319 - libavcodec/rl.h | 8 +- libavcodec/rl2.c | 16 +- libavcodec/rle.c | 8 +- libavcodec/rle.h | 8 +- libavcodec/rnd_avg.h | 11 +- libavcodec/roqaudioenc.c | 16 +- libavcodec/roqvideo.c | 8 +- libavcodec/roqvideo.h | 8 +- libavcodec/roqvideodec.c | 33 +- libavcodec/roqvideoenc.c | 26 +- libavcodec/rpza.c | 20 +- libavcodec/rtjpeg.c | 8 +- libavcodec/rtjpeg.h | 8 +- libavcodec/rv10.c | 78 +- libavcodec/rv10enc.c | 8 +- libavcodec/rv20enc.c | 20 +- libavcodec/rv30.c | 25 +- libavcodec/rv30data.h | 8 +- libavcodec/rv30dsp.c | 8 +- libavcodec/rv34.c | 58 +- libavcodec/rv34.h | 10 +- libavcodec/rv34_parser.c | 8 +- libavcodec/rv34data.h | 8 +- libavcodec/rv34dsp.c | 8 +- libavcodec/rv34dsp.h | 8 +- libavcodec/rv34vlc.h | 8 +- libavcodec/rv40.c | 15 +- libavcodec/rv40data.h | 8 +- libavcodec/rv40dsp.c | 13 +- libavcodec/rv40vlc2.h | 8 +- libavcodec/s302m.c | 37 +- libavcodec/s302menc.c | 177 - libavcodec/s3tc.c | 8 +- libavcodec/s3tc.h | 8 +- libavcodec/samidec.c | 158 - libavcodec/sanm.c | 1306 --- libavcodec/sanm_data.h | 248 - libavcodec/sbr.h | 38 +- libavcodec/sbrdsp.c | 11 +- libavcodec/sbrdsp.h | 9 +- libavcodec/sgi.h | 8 +- libavcodec/sgidec.c | 72 +- libavcodec/sgienc.c | 69 +- libavcodec/sgirledec.c | 151 - libavcodec/sh4/dsputil_sh4.c | 8 +- libavcodec/sh4/dsputil_sh4.h | 9 +- libavcodec/sh4/idct_sh4.c | 8 +- libavcodec/sh4/sh4.h | 8 +- libavcodec/shorten.c | 81 +- libavcodec/simple_idct.c | 12 +- libavcodec/simple_idct.h | 13 +- libavcodec/simple_idct_template.c | 24 +- libavcodec/sinewin.c | 8 +- libavcodec/sinewin.h | 8 +- libavcodec/sinewin_tablegen.c | 8 +- libavcodec/sinewin_tablegen.h | 8 +- libavcodec/sipr.c | 12 +- libavcodec/sipr.h | 8 +- libavcodec/sipr16k.c | 9 +- libavcodec/sipr16kdata.h | 8 +- libavcodec/siprdata.h | 8 +- libavcodec/smacker.c | 167 +- libavcodec/smc.c | 14 +- libavcodec/smvjpegdec.c | 205 - libavcodec/snow.c | 709 -- libavcodec/snow.h | 704 -- libavcodec/snow_dwt.c | 865 -- libavcodec/snow_dwt.h | 127 - libavcodec/snowdata.h | 132 - libavcodec/snowdec.c | 601 - libavcodec/snowenc.c | 2018 ---- libavcodec/sonic.c | 1094 -- libavcodec/sp5x.h | 8 +- libavcodec/sp5xdec.c | 18 +- libavcodec/sparc/dsputil_vis.c | 8 +- libavcodec/sparc/dsputil_vis.h | 8 +- libavcodec/sparc/hpeldsp_vis.c | 8 +- libavcodec/sparc/simple_idct_vis.c | 8 +- libavcodec/sparc/vis.h | 8 +- libavcodec/srtdec.c | 91 +- libavcodec/srtenc.c | 332 - libavcodec/subviewerdec.c | 83 - libavcodec/sunrast.c | 63 +- libavcodec/sunrast.h | 8 +- libavcodec/sunrastenc.c | 35 +- libavcodec/svq1.c | 8 +- libavcodec/svq1.h | 8 +- libavcodec/svq13.c | 8 +- libavcodec/svq1_cb.h | 8 +- libavcodec/svq1_vlc.h | 8 +- libavcodec/svq1dec.c | 64 +- libavcodec/svq1enc.c | 48 +- libavcodec/svq1enc_cb.h | 8 +- libavcodec/svq3.c | 127 +- libavcodec/svq3.h | 8 +- libavcodec/synth_filter.c | 8 +- libavcodec/synth_filter.h | 8 +- libavcodec/tableprint.h | 8 +- libavcodec/tak.c | 58 +- libavcodec/tak.h | 13 +- libavcodec/tak_parser.c | 32 +- libavcodec/takdec.c | 343 +- libavcodec/targa.c | 161 +- libavcodec/targa.h | 15 +- libavcodec/targa_y216dec.c | 83 - libavcodec/targaenc.c | 48 +- libavcodec/textdec.c | 149 - libavcodec/thread.h | 23 +- libavcodec/tiertexseqv.c | 14 +- libavcodec/tiff.c | 756 +- libavcodec/tiff.h | 111 +- libavcodec/tiff_common.c | 317 - libavcodec/tiff_common.h | 152 - libavcodec/tiff_data.c | 1870 ---- libavcodec/tiff_data.h | 92 - libavcodec/tiffenc.c | 221 +- libavcodec/tmv.c | 16 +- libavcodec/truemotion1.c | 20 +- libavcodec/truemotion1data.h | 8 +- libavcodec/truemotion2.c | 105 +- libavcodec/truespeech.c | 12 +- libavcodec/truespeech_data.h | 8 +- libavcodec/tscc.c | 24 +- libavcodec/tscc2.c | 12 +- libavcodec/tscc2data.h | 8 +- libavcodec/tta.c | 369 +- libavcodec/ttadata.c | 52 - libavcodec/ttadata.h | 50 - libavcodec/ttaenc.c | 232 - libavcodec/twinvq.c | 12 +- libavcodec/twinvq.h | 8 +- libavcodec/twinvq_data.h | 8 +- libavcodec/twinvqdec.c | 10 +- libavcodec/txd.c | 22 +- libavcodec/ulti.c | 12 +- libavcodec/ulti_cb.h | 8 +- libavcodec/unary.h | 8 +- libavcodec/utils.c | 1688 +-- libavcodec/utvideo.c | 8 +- libavcodec/utvideo.h | 8 +- libavcodec/utvideodec.c | 16 +- libavcodec/utvideoenc.c | 23 +- libavcodec/v210dec.c | 128 +- libavcodec/v210dec.h | 36 - libavcodec/v210enc.c | 24 +- libavcodec/v210x.c | 8 +- libavcodec/v308dec.c | 83 - libavcodec/v308enc.c | 94 - libavcodec/v408dec.c | 103 - libavcodec/v408enc.c | 113 - libavcodec/v410dec.c | 16 +- libavcodec/v410enc.c | 14 +- libavcodec/vaapi.c | 33 +- libavcodec/vaapi.h | 12 +- libavcodec/vaapi_h264.c | 23 +- libavcodec/vaapi_internal.h | 8 +- libavcodec/vaapi_mpeg.c | 48 - libavcodec/vaapi_mpeg2.c | 12 +- libavcodec/vaapi_mpeg4.c | 21 +- libavcodec/vaapi_vc1.c | 12 +- libavcodec/vb.c | 18 +- libavcodec/vble.c | 105 +- libavcodec/vc1.c | 97 +- libavcodec/vc1.h | 31 +- libavcodec/vc1_parser.c | 17 +- libavcodec/vc1acdata.h | 8 +- libavcodec/vc1data.c | 22 +- libavcodec/vc1data.h | 26 +- libavcodec/vc1dec.c | 330 +- libavcodec/vc1dsp.c | 60 +- libavcodec/vc1dsp.h | 14 +- libavcodec/vcr1.c | 45 +- libavcodec/vda.h | 34 +- libavcodec/vda_h264.c | 60 +- libavcodec/vda_h264_dec.c | 273 - libavcodec/vdpau.c | 359 +- libavcodec/vdpau.h | 44 +- libavcodec/vdpau_h264.c | 15 +- libavcodec/vdpau_internal.h | 32 +- libavcodec/vdpau_mpeg12.c | 8 +- libavcodec/vdpau_mpeg4.c | 8 +- libavcodec/vdpau_vc1.c | 12 +- libavcodec/version.h | 30 +- libavcodec/videodsp.c | 9 +- libavcodec/videodsp.h | 27 +- libavcodec/videodsp_template.c | 34 +- libavcodec/vima.c | 239 - libavcodec/vmdav.c | 108 +- libavcodec/vmnc.c | 28 +- libavcodec/vorbis.c | 14 +- libavcodec/vorbis.h | 8 +- libavcodec/vorbis_data.c | 8 +- libavcodec/vorbis_enc_data.h | 20 +- libavcodec/vorbis_parser.c | 44 +- libavcodec/vorbis_parser.h | 26 +- libavcodec/vorbisdec.c | 138 +- libavcodec/vorbisdsp.c | 8 +- libavcodec/vorbisdsp.h | 8 +- libavcodec/vorbisenc.c | 33 +- libavcodec/vp3.c | 98 +- libavcodec/vp3_parser.c | 8 +- libavcodec/vp3data.h | 8 +- libavcodec/vp3dsp.c | 8 +- libavcodec/vp3dsp.h | 8 +- libavcodec/vp5.c | 11 +- libavcodec/vp56.c | 333 +- libavcodec/vp56.h | 42 +- libavcodec/vp56data.c | 8 +- libavcodec/vp56data.h | 8 +- libavcodec/vp56dsp.c | 8 +- libavcodec/vp56dsp.h | 8 +- libavcodec/vp56rac.c | 8 +- libavcodec/vp5data.h | 8 +- libavcodec/vp6.c | 62 +- libavcodec/vp6data.h | 8 +- libavcodec/vp6dsp.c | 8 +- libavcodec/vp8.c | 59 +- libavcodec/vp8.h | 12 +- libavcodec/vp8_parser.c | 8 +- libavcodec/vp8data.h | 8 +- libavcodec/vp8dsp.c | 28 +- libavcodec/vp8dsp.h | 8 +- libavcodec/vp9.c | 3514 +----- libavcodec/vp9.h | 355 +- libavcodec/vp9_parser.c | 118 - libavcodec/vp9block.c | 1684 +++ libavcodec/vp9data.c | 2133 ++++ libavcodec/vp9data.h | 2173 +--- libavcodec/vp9dsp.c | 1430 +-- libavcodec/vp9dsp.h | 118 - libavcodec/vp9mvs.c | 344 + libavcodec/vp9prob.c | 274 + libavcodec/vqavideo.c | 102 +- libavcodec/wavpack.c | 214 +- libavcodec/wavpack.h | 194 - libavcodec/wavpackenc.c | 2989 ----- libavcodec/wavpackenc.h | 664 -- libavcodec/webp.c | 8 +- libavcodec/webvttdec.c | 100 - libavcodec/wma.c | 14 +- libavcodec/wma.h | 10 +- libavcodec/wma_common.c | 8 +- libavcodec/wma_common.h | 8 +- libavcodec/wmadata.h | 10 +- libavcodec/wmadec.c | 44 +- libavcodec/wmaenc.c | 86 +- libavcodec/wmalosslessdec.c | 59 +- libavcodec/wmaprodata.h | 8 +- libavcodec/wmaprodec.c | 54 +- libavcodec/wmavoice.c | 32 +- libavcodec/wmavoice_data.h | 8 +- libavcodec/wmv2.c | 16 +- libavcodec/wmv2.h | 10 +- libavcodec/wmv2dec.c | 12 +- libavcodec/wmv2dsp.c | 8 +- libavcodec/wmv2dsp.h | 8 +- libavcodec/wmv2enc.c | 21 +- libavcodec/wnv1.c | 18 +- libavcodec/ws-snd1.c | 14 +- libavcodec/x86/Makefile | 14 +- libavcodec/x86/ac3dsp.asm | 8 +- libavcodec/x86/ac3dsp_init.c | 13 +- libavcodec/x86/cabac.h | 48 +- libavcodec/x86/cavsdsp.c | 8 +- libavcodec/x86/constants.c | 8 +- libavcodec/x86/constants.h | 8 +- libavcodec/x86/dct32.asm | 10 +- libavcodec/x86/dct_init.c | 8 +- libavcodec/x86/deinterlace.asm | 8 +- libavcodec/x86/dirac_dwt.c | 202 - libavcodec/x86/dirac_dwt.h | 30 - libavcodec/x86/diracdsp_mmx.c | 104 - libavcodec/x86/diracdsp_mmx.h | 47 - libavcodec/x86/diracdsp_yasm.asm | 264 - libavcodec/x86/dnxhdenc.c | 8 +- libavcodec/x86/dsputil.asm | 11 +- libavcodec/x86/dsputil_init.c | 68 +- libavcodec/x86/dsputil_mmx.c | 168 +- libavcodec/x86/dsputil_qns_template.c | 10 +- libavcodec/x86/dsputil_x86.c | 8 +- libavcodec/x86/dsputil_x86.h | 17 +- libavcodec/x86/dsputilenc.asm | 8 +- libavcodec/x86/dsputilenc_mmx.c | 31 +- libavcodec/x86/dwt_yasm.asm | 306 - libavcodec/x86/fdct.c | 12 +- libavcodec/x86/fft.asm | 23 +- libavcodec/x86/fft.h | 8 +- libavcodec/x86/fft_init.c | 8 +- libavcodec/x86/fmtconvert.asm | 8 +- libavcodec/x86/fmtconvert_init.c | 8 +- libavcodec/x86/fpel.asm | 8 +- libavcodec/x86/fpel_mmx.c | 8 +- libavcodec/x86/h263_loopfilter.asm | 10 +- libavcodec/x86/h263dsp_init.c | 8 +- libavcodec/x86/h264_chromamc.asm | 8 +- libavcodec/x86/h264_chromamc_10bit.asm | 12 +- libavcodec/x86/h264_deblock.asm | 20 +- libavcodec/x86/h264_deblock_10bit.asm | 16 +- libavcodec/x86/h264_i386.h | 8 +- libavcodec/x86/h264_idct.asm | 8 +- libavcodec/x86/h264_idct_10bit.asm | 24 +- libavcodec/x86/h264_intrapred.asm | 13 +- libavcodec/x86/h264_intrapred_10bit.asm | 34 +- libavcodec/x86/h264_intrapred_init.c | 8 +- libavcodec/x86/h264_qpel.c | 16 +- libavcodec/x86/h264_qpel_10bit.asm | 8 +- libavcodec/x86/h264_qpel_8bit.asm | 8 +- libavcodec/x86/h264_weight.asm | 15 +- libavcodec/x86/h264_weight_10bit.asm | 8 +- libavcodec/x86/h264chroma_init.c | 8 +- libavcodec/x86/h264dsp_init.c | 10 +- libavcodec/x86/hpeldsp.asm | 15 +- libavcodec/x86/hpeldsp_init.c | 8 +- libavcodec/x86/hpeldsp_mmx.c | 8 +- libavcodec/x86/hpeldsp_rnd_template.c | 8 +- libavcodec/x86/idct_mmx_xvid.c | 8 +- libavcodec/x86/idct_sse2_xvid.c | 9 +- libavcodec/x86/idct_xvid.h | 8 +- libavcodec/x86/imdct36.asm | 12 +- libavcodec/x86/lpc.c | 11 +- libavcodec/x86/mathops.h | 8 +- libavcodec/x86/mlpdsp.c | 9 +- libavcodec/x86/motion_est.c | 26 +- libavcodec/x86/mpeg4qpel.asm | 10 +- libavcodec/x86/mpegaudiodsp.c | 27 +- libavcodec/x86/mpegvideo.c | 28 +- libavcodec/x86/mpegvideoenc.c | 10 +- libavcodec/x86/mpegvideoenc_template.c | 21 +- libavcodec/x86/pngdsp.asm | 8 +- libavcodec/x86/pngdsp_init.c | 8 +- libavcodec/x86/proresdsp.asm | 134 +- libavcodec/x86/proresdsp_init.c | 13 +- libavcodec/x86/qpel.asm | 8 +- libavcodec/x86/rnd_mmx.c | 8 +- libavcodec/x86/rnd_template.c | 8 +- libavcodec/x86/rv34dsp.asm | 8 +- libavcodec/x86/rv34dsp_init.c | 8 +- libavcodec/x86/rv40dsp.asm | 8 +- libavcodec/x86/rv40dsp_init.c | 8 +- libavcodec/x86/sbrdsp.asm | 192 +- libavcodec/x86/sbrdsp_init.c | 27 +- libavcodec/x86/simple_idct.c | 11 +- libavcodec/x86/snowdsp.c | 902 -- libavcodec/x86/v210-init.c | 48 - libavcodec/x86/v210.asm | 88 - libavcodec/x86/vc1dsp.asm | 8 +- libavcodec/x86/vc1dsp.h | 8 +- libavcodec/x86/vc1dsp_mmx.c | 1 + libavcodec/x86/videodsp.asm | 134 +- libavcodec/x86/videodsp_init.c | 77 +- libavcodec/x86/vorbisdsp.asm | 8 +- libavcodec/x86/vorbisdsp_init.c | 8 +- libavcodec/x86/vp3dsp.asm | 8 +- libavcodec/x86/vp3dsp_init.c | 69 +- libavcodec/x86/vp56_arith.h | 8 +- libavcodec/x86/vp6dsp.asm | 8 +- libavcodec/x86/vp6dsp_init.c | 8 +- libavcodec/x86/vp8dsp.asm | 8 +- libavcodec/x86/vp8dsp_init.c | 10 +- libavcodec/x86/vp8dsp_loopfilter.asm | 8 +- libavcodec/x86/{vp9mc.asm => vp9dsp.asm} | 147 +- libavcodec/x86/vp9dsp_init.c | 212 +- libavcodec/x86/vp9itxfm.asm | 666 -- libavcodec/x86/w64xmmtest.c | 15 +- libavcodec/xan.c | 102 +- libavcodec/xbmdec.c | 119 - libavcodec/xbmenc.c | 33 +- libavcodec/xface.c | 381 - libavcodec/xface.h | 95 - libavcodec/xfacedec.c | 188 - libavcodec/xfaceenc.c | 238 - libavcodec/xiph.c | 10 +- libavcodec/xiph.h | 10 +- libavcodec/xl.c | 15 +- libavcodec/xsubdec.c | 17 +- libavcodec/xsubenc.c | 20 +- libavcodec/xvmc.h | 12 +- libavcodec/xvmc_internal.h | 15 +- libavcodec/xwd.h | 8 +- libavcodec/xwddec.c | 21 +- libavcodec/xwdenc.c | 45 +- libavcodec/xxan.c | 33 +- libavcodec/y41pdec.c | 92 - libavcodec/y41penc.c | 102 - libavcodec/yop.c | 48 +- libavcodec/yuv4dec.c | 84 - libavcodec/yuv4enc.c | 91 - libavcodec/zerocodec.c | 6 +- libavcodec/zmbv.c | 117 +- libavcodec/zmbvenc.c | 12 +- libavdevice/Makefile | 35 +- libavdevice/alldevices.c | 23 +- libavdevice/alsa-audio-common.c | 85 +- libavdevice/alsa-audio-dec.c | 62 +- libavdevice/alsa-audio-enc.c | 36 +- libavdevice/alsa-audio.h | 22 +- libavdevice/avdevice.c | 14 +- libavdevice/avdevice.h | 10 +- libavdevice/avdeviceres.rc | 55 - libavdevice/bktr.c | 29 +- libavdevice/caca.c | 240 - libavdevice/dshow.c | 1095 -- libavdevice/dshow_capture.h | 279 - libavdevice/dshow_common.c | 190 - libavdevice/dshow_enummediatypes.c | 103 - libavdevice/dshow_enumpins.c | 105 - libavdevice/dshow_filter.c | 202 - libavdevice/dshow_pin.c | 362 - libavdevice/dv1394.c | 12 +- libavdevice/dv1394.h | 8 +- libavdevice/{fbdev_dec.c => fbdev.c} | 87 +- libavdevice/fbdev_common.c | 67 - libavdevice/fbdev_common.h | 34 - libavdevice/fbdev_enc.c | 212 - libavdevice/iec61883.c | 497 - libavdevice/jack_audio.c | 14 +- libavdevice/lavfi.c | 439 - libavdevice/libcdio.c | 10 +- libavdevice/libdc1394.c | 8 +- libavdevice/openal-dec.c | 252 - libavdevice/oss_audio.c | 17 +- libavdevice/{pulse_audio_dec.c => pulse.c} | 72 +- libavdevice/pulse_audio_common.c | 41 - libavdevice/pulse_audio_common.h | 30 - libavdevice/pulse_audio_enc.c | 184 - libavdevice/sdl.c | 370 - libavdevice/sndio_common.c | 10 +- libavdevice/sndio_common.h | 10 +- libavdevice/sndio_dec.c | 8 +- libavdevice/sndio_enc.c | 11 +- libavdevice/timefilter.c | 52 +- libavdevice/timefilter.h | 27 +- libavdevice/v4l.c | 362 - libavdevice/v4l2-common.c | 96 - libavdevice/v4l2-common.h | 62 - libavdevice/v4l2.c | 803 +- libavdevice/v4l2enc.c | 110 - libavdevice/version.h | 16 +- libavdevice/vfwcap.c | 53 +- libavdevice/x11grab.c | 105 +- libavdevice/xv.c | 256 - libavfilter/Makefile | 191 +- libavfilter/aeval.c | 466 - libavfilter/af_aconvert.c | 196 - libavfilter/af_adelay.c | 283 - libavfilter/af_aecho.c | 360 - libavfilter/af_afade.c | 300 - libavfilter/af_aformat.c | 29 +- libavfilter/af_amerge.c | 350 - libavfilter/af_amix.c | 50 +- libavfilter/af_anull.c | 27 +- libavfilter/af_apad.c | 156 - libavfilter/af_aphaser.c | 358 - libavfilter/af_aresample.c | 318 - libavfilter/af_asetnsamples.c | 196 - libavfilter/af_asetrate.c | 119 - libavfilter/af_ashowinfo.c | 55 +- libavfilter/af_astats.c | 274 - libavfilter/af_astreamsync.c | 240 - libavfilter/af_asyncts.c | 39 +- libavfilter/af_atempo.c | 1196 -- libavfilter/af_biquads.c | 620 -- libavfilter/af_channelmap.c | 28 +- libavfilter/af_channelsplit.c | 40 +- libavfilter/af_compand.c | 518 - libavfilter/af_earwax.c | 172 - libavfilter/af_join.c | 53 +- libavfilter/af_ladspa.c | 705 -- libavfilter/af_pan.c | 426 - libavfilter/af_replaygain.c | 613 -- libavfilter/af_resample.c | 27 +- libavfilter/af_silencedetect.c | 212 - libavfilter/af_volume.c | 208 +- libavfilter/af_volume.h | 36 +- libavfilter/af_volumedetect.c | 159 - libavfilter/all_channel_layouts.inc | 68 - libavfilter/allfilters.c | 138 +- libavfilter/asink_anullsink.c | 10 +- libavfilter/asrc_abuffer.h | 91 - libavfilter/asrc_anullsrc.c | 117 +- libavfilter/asrc_flite.c | 283 - libavfilter/asrc_sine.c | 223 - libavfilter/audio.c | 54 +- libavfilter/audio.h | 50 +- libavfilter/avcodec.c | 157 - libavfilter/avcodec.h | 110 - libavfilter/avf_avectorscope.c | 274 - libavfilter/avf_concat.c | 426 - libavfilter/avf_showspectrum.c | 527 - libavfilter/avf_showwaves.c | 256 - libavfilter/avfilter.c | 603 +- libavfilter/avfilter.h | 452 +- libavfilter/avfiltergraph.c | 597 +- libavfilter/avfiltergraph.h | 9 +- libavfilter/avfilterres.rc | 55 - libavfilter/bbox.c | 75 - libavfilter/bbox.h | 44 - libavfilter/buffer.c | 102 +- libavfilter/bufferqueue.h | 121 - libavfilter/buffersink.c | 427 +- libavfilter/buffersink.h | 102 +- libavfilter/buffersrc.c | 193 +- libavfilter/buffersrc.h | 83 +- libavfilter/deshake.h | 103 - libavfilter/deshake_opencl.c | 200 - libavfilter/deshake_opencl.h | 45 - libavfilter/deshake_opencl_kernel.h | 225 - libavfilter/drawutils.c | 489 +- libavfilter/drawutils.h | 120 +- libavfilter/dualinput.c | 83 - libavfilter/dualinput.h | 46 - libavfilter/f_ebur128.c | 799 -- libavfilter/f_interleave.c | 259 - libavfilter/f_perms.c | 178 - libavfilter/f_select.c | 533 - libavfilter/f_sendcmd.c | 576 - libavfilter/f_zmq.c | 275 - libavfilter/fifo.c | 12 +- libavfilter/filtfmts.c | 72 +- libavfilter/formats.c | 332 +- libavfilter/formats.h | 65 +- libavfilter/framesync.c | 329 - libavfilter/framesync.h | 296 - libavfilter/gradfun.h | 16 +- libavfilter/graphdump.c | 164 - libavfilter/graphparser.c | 133 +- libavfilter/internal.h | 163 +- libavfilter/lavfutils.c | 98 - libavfilter/lavfutils.h | 43 - libavfilter/libavfilter.v | 1 - libavfilter/libmpcodecs/av_helpers.h | 27 - libavfilter/libmpcodecs/cpudetect.h | 60 - libavfilter/libmpcodecs/img_format.c | 233 - libavfilter/libmpcodecs/img_format.h | 300 - libavfilter/libmpcodecs/libvo/fastmemcpy.h | 99 - libavfilter/libmpcodecs/libvo/video_out.h | 281 - libavfilter/libmpcodecs/mp_image.c | 253 - libavfilter/libmpcodecs/mp_image.h | 159 - libavfilter/libmpcodecs/mp_msg.h | 166 - libavfilter/libmpcodecs/mpc_info.h | 43 - libavfilter/libmpcodecs/vf.h | 169 - libavfilter/libmpcodecs/vf_eq.c | 240 - libavfilter/libmpcodecs/vf_eq2.c | 519 - libavfilter/libmpcodecs/vf_fspp.c | 2118 ---- libavfilter/libmpcodecs/vf_ilpack.c | 458 - libavfilter/libmpcodecs/vf_pp7.c | 491 - libavfilter/libmpcodecs/vf_softpulldown.c | 163 - libavfilter/libmpcodecs/vf_uspp.c | 393 - libavfilter/libmpcodecs/vfcap.h | 56 - libavfilter/lswsutils.c | 50 - libavfilter/lswsutils.h | 38 - libavfilter/opencl_allkernels.c | 41 - libavfilter/opencl_allkernels.h | 29 - libavfilter/pthread.c | 11 +- libavfilter/setpts.c | 163 +- libavfilter/split.c | 88 +- libavfilter/src_movie.c | 604 - libavfilter/thread.h | 8 +- libavfilter/transform.c | 201 - libavfilter/transform.h | 127 - libavfilter/trim.c | 121 +- libavfilter/unsharp.h | 81 - libavfilter/unsharp_opencl.c | 389 - libavfilter/unsharp_opencl.h | 34 - libavfilter/unsharp_opencl_kernel.h | 286 - libavfilter/version.h | 31 +- libavfilter/vf_alphamerge.c | 207 - libavfilter/vf_aspect.c | 184 +- libavfilter/vf_bbox.c | 134 - libavfilter/vf_blackdetect.c | 204 - libavfilter/vf_blackframe.c | 59 +- libavfilter/vf_blend.c | 465 - libavfilter/vf_boxblur.c | 99 +- libavfilter/vf_colorbalance.c | 213 - libavfilter/vf_colorchannelmixer.c | 360 - libavfilter/vf_colormatrix.c | 388 - libavfilter/vf_copy.c | 24 +- libavfilter/vf_crop.c | 158 +- libavfilter/vf_cropdetect.c | 74 +- libavfilter/vf_curves.c | 552 - libavfilter/vf_dctdnoiz.c | 433 - libavfilter/vf_decimate.c | 403 - libavfilter/vf_delogo.c | 125 +- libavfilter/vf_deshake.c | 580 - libavfilter/vf_drawbox.c | 333 +- libavfilter/vf_drawtext.c | 1132 +- libavfilter/vf_edgedetect.c | 331 - libavfilter/vf_elbg.c | 212 - libavfilter/vf_extractplanes.c | 335 - libavfilter/vf_fade.c | 305 +- libavfilter/vf_field.c | 111 - libavfilter/vf_fieldmatch.c | 984 -- libavfilter/vf_fieldorder.c | 97 +- libavfilter/vf_format.c | 74 +- libavfilter/vf_fps.c | 74 +- libavfilter/vf_framestep.c | 101 - libavfilter/vf_frei0r.c | 168 +- libavfilter/vf_geq.c | 280 - libavfilter/vf_gradfun.c | 55 +- libavfilter/vf_hflip.c | 139 +- libavfilter/vf_histeq.c | 281 - libavfilter/vf_histogram.c | 376 - libavfilter/vf_hqdn3d.c | 70 +- libavfilter/vf_hqdn3d.h | 12 +- libavfilter/vf_hue.c | 453 - libavfilter/vf_idet.c | 308 - libavfilter/vf_il.c | 212 - libavfilter/vf_interlace.c | 58 +- libavfilter/vf_kerndeint.c | 318 - libavfilter/vf_libopencv.c | 62 +- libavfilter/vf_lut.c | 220 +- libavfilter/vf_lut3d.c | 796 -- libavfilter/vf_mcdeint.c | 315 - libavfilter/vf_mergeplanes.c | 313 - libavfilter/vf_mp.c | 794 -- libavfilter/vf_mpdecimate.c | 257 - libavfilter/vf_noise.c | 488 - libavfilter/vf_null.c | 23 +- libavfilter/vf_overlay.c | 662 +- libavfilter/vf_owdenoise.c | 342 - libavfilter/vf_pad.c | 209 +- libavfilter/vf_perspective.c | 403 - libavfilter/vf_phase.c | 320 - libavfilter/vf_pixdesctest.c | 36 +- libavfilter/vf_pp.c | 186 - libavfilter/vf_psnr.c | 386 - libavfilter/vf_pullup.c | 776 -- libavfilter/vf_pullup.h | 71 - libavfilter/vf_removelogo.c | 581 - libavfilter/vf_rotate.c | 489 - libavfilter/vf_sab.c | 339 - libavfilter/vf_scale.c | 368 +- libavfilter/vf_select.c | 362 + libavfilter/vf_separatefields.c | 146 - libavfilter/vf_setfield.c | 94 - libavfilter/{f_settb.c => vf_settb.c} | 102 +- libavfilter/vf_showinfo.c | 53 +- libavfilter/vf_smartblur.c | 304 - libavfilter/vf_spp.c | 437 - libavfilter/vf_spp.h | 59 - libavfilter/vf_stereo3d.c | 664 -- libavfilter/vf_subtitles.c | 366 - libavfilter/vf_super2xsai.c | 352 - libavfilter/vf_swapuv.c | 110 - libavfilter/vf_telecine.c | 285 - libavfilter/vf_thumbnail.c | 239 - libavfilter/vf_tile.c | 245 - libavfilter/vf_tinterlace.c | 386 - libavfilter/vf_transpose.c | 240 +- libavfilter/vf_unsharp.c | 222 +- libavfilter/vf_vflip.c | 24 +- libavfilter/vf_vidstabdetect.c | 217 - libavfilter/vf_vidstabtransform.c | 291 - libavfilter/vf_vignette.c | 339 - libavfilter/vf_w3fdif.c | 394 - libavfilter/vf_yadif.c | 324 +- libavfilter/video.c | 17 +- libavfilter/video.h | 10 +- libavfilter/vidstabutils.c | 85 - libavfilter/vidstabutils.h | 36 - libavfilter/vsink_nullsink.c | 8 +- libavfilter/vsrc_cellauto.c | 337 - libavfilter/vsrc_color.c | 202 + libavfilter/vsrc_life.c | 450 - libavfilter/vsrc_mandelbrot.c | 430 - libavfilter/vsrc_movie.c | 286 + libavfilter/vsrc_mptestsrc.c | 361 - libavfilter/vsrc_nullsrc.c | 136 + libavfilter/vsrc_testsrc.c | 772 +- libavfilter/x86/Makefile | 6 +- libavfilter/x86/af_volume.asm | 10 +- libavfilter/x86/af_volume_init.c | 8 +- libavfilter/x86/vf_gradfun.asm | 8 +- libavfilter/x86/vf_gradfun_init.c | 61 +- libavfilter/x86/vf_hqdn3d.asm | 8 +- libavfilter/x86/vf_hqdn3d_init.c | 10 +- libavfilter/x86/vf_pullup.asm | 178 - libavfilter/x86/vf_pullup_init.c | 41 - libavfilter/x86/vf_spp.c | 233 - libavfilter/x86/vf_yadif.asm | 38 +- libavfilter/x86/vf_yadif_init.c | 53 + libavfilter/x86/yadif-10.asm | 282 - libavfilter/x86/yadif-16.asm | 347 - libavfilter/yadif.h | 93 +- libavformat/4xm.c | 29 +- libavformat/Makefile | 119 +- libavformat/a64.c | 9 +- libavformat/aacdec.c | 27 +- libavformat/ac3dec.c | 68 +- libavformat/act.c | 207 - libavformat/adp.c | 98 - libavformat/adtsenc.c | 38 +- libavformat/adxdec.c | 16 +- libavformat/aea.c | 8 +- libavformat/afc.c | 79 - libavformat/aiff.h | 14 +- libavformat/aiffdec.c | 97 +- libavformat/aiffenc.c | 198 +- libavformat/allformats.c | 80 +- libavformat/amr.c | 13 +- libavformat/anm.c | 10 +- libavformat/apc.c | 19 +- libavformat/ape.c | 50 +- libavformat/apetag.c | 100 +- libavformat/apetag.h | 12 +- libavformat/aqtitledec.c | 148 - libavformat/asf.c | 9 +- libavformat/asf.h | 21 +- libavformat/asfcrypt.c | 8 +- libavformat/asfcrypt.h | 8 +- libavformat/asfdec.c | 293 +- libavformat/asfenc.c | 186 +- libavformat/assdec.c | 221 +- libavformat/assenc.c | 44 +- libavformat/ast.c | 29 - libavformat/ast.h | 30 - libavformat/astdec.c | 122 - libavformat/astenc.c | 214 - libavformat/au.c | 103 +- libavformat/audiointerleave.c | 30 +- libavformat/audiointerleave.h | 8 +- libavformat/avc.c | 8 +- libavformat/avc.h | 8 +- libavformat/avformat.h | 567 +- libavformat/avformatres.rc | 55 - libavformat/avi.h | 8 +- libavformat/avidec.c | 416 +- libavformat/avienc.c | 85 +- libavformat/avio.c | 89 +- libavformat/avio.h | 78 +- libavformat/avio_internal.h | 25 +- libavformat/aviobuf.c | 178 +- libavformat/avisynth.c | 63 +- libavformat/avlanguage.c | 8 +- libavformat/avlanguage.h | 8 +- libavformat/avr.c | 99 - libavformat/avs.c | 13 +- libavformat/bethsoftvid.c | 18 +- libavformat/bfi.c | 18 +- libavformat/bink.c | 34 +- libavformat/bintext.c | 388 - libavformat/bit.c | 156 - libavformat/bluray.c | 235 - libavformat/bmv.c | 8 +- libavformat/boadec.c | 78 - libavformat/brstm.c | 297 - libavformat/c93.c | 10 +- libavformat/cache.c | 140 - libavformat/caf.c | 56 +- libavformat/caf.h | 8 +- libavformat/cafdec.c | 53 +- libavformat/cafenc.c | 285 - libavformat/cavsvideodec.c | 8 +- libavformat/cdg.c | 15 +- libavformat/cdxl.c | 53 +- libavformat/concat.c | 13 +- libavformat/concatdec.c | 411 - libavformat/crcenc.c | 9 +- libavformat/crypto.c | 14 +- libavformat/cutils.c | 29 +- libavformat/data_uri.c | 118 - libavformat/daud.c | 12 +- libavformat/dfa.c | 21 +- libavformat/diracdec.c | 23 +- libavformat/dnxhddec.c | 10 +- libavformat/dsicin.c | 13 +- libavformat/dtsdec.c | 15 +- libavformat/dtshddec.c | 139 - libavformat/dv.c | 131 +- libavformat/dv.h | 10 +- libavformat/dvenc.c | 58 +- libavformat/dxa.c | 36 +- libavformat/eacdata.c | 17 +- libavformat/electronicarts.c | 111 +- libavformat/epafdec.c | 104 - libavformat/ffm.h | 11 +- libavformat/ffmdec.c | 188 +- libavformat/ffmenc.c | 68 +- libavformat/ffmeta.h | 8 +- libavformat/ffmetadec.c | 16 +- libavformat/ffmetaenc.c | 8 +- libavformat/file.c | 70 +- libavformat/filmstripdec.c | 12 +- libavformat/filmstripenc.c | 10 +- libavformat/flac_picture.c | 23 +- libavformat/flac_picture.h | 11 +- libavformat/flacdec.c | 37 +- libavformat/flacenc.c | 25 +- libavformat/flacenc.h | 8 +- libavformat/flacenc_header.c | 8 +- libavformat/flic.c | 23 +- libavformat/flv.h | 32 +- libavformat/flvdec.c | 255 +- libavformat/flvenc.c | 106 +- libavformat/format.c | 36 +- libavformat/framecrcenc.c | 35 +- libavformat/framehash.c | 11 +- libavformat/frmdec.c | 110 - libavformat/ftp.c | 721 -- libavformat/g722.c | 11 +- libavformat/g723_1.c | 10 +- libavformat/g729dec.c | 103 - libavformat/gif.c | 376 +- libavformat/gifdec.c | 334 - libavformat/gopher.c | 8 +- libavformat/gsmdec.c | 13 +- libavformat/gxf.c | 85 +- libavformat/gxf.h | 8 +- libavformat/gxfenc.c | 182 +- libavformat/h261dec.c | 45 +- libavformat/h263dec.c | 8 +- libavformat/h264dec.c | 8 +- libavformat/hdsenc.c | 25 +- libavformat/hevcdec.c | 8 +- libavformat/hls.c | 513 +- libavformat/hlsenc.c | 28 +- libavformat/hlsproto.c | 10 +- libavformat/hnm.c | 10 +- libavformat/http.c | 280 +- libavformat/http.h | 10 +- libavformat/httpauth.c | 8 +- libavformat/httpauth.h | 8 +- libavformat/icodec.c | 182 - libavformat/icoenc.c | 202 - libavformat/id3v1.c | 11 +- libavformat/id3v1.h | 8 +- libavformat/id3v2.c | 336 +- libavformat/id3v2.h | 30 +- libavformat/id3v2enc.c | 148 +- libavformat/idcin.c | 58 +- libavformat/idroqdec.c | 13 +- libavformat/idroqenc.c | 8 +- libavformat/iff.c | 312 +- libavformat/ilbc.c | 8 +- libavformat/img2.c | 17 +- libavformat/img2dec.c | 263 +- libavformat/img2enc.c | 132 +- libavformat/ingenientdec.c | 21 +- libavformat/internal.h | 63 +- libavformat/ipmovie.c | 50 +- libavformat/ircam.c | 47 - libavformat/ircam.h | 30 - libavformat/ircamdec.c | 115 - libavformat/ircamenc.c | 62 - libavformat/isom.c | 145 +- libavformat/isom.h | 25 +- libavformat/iss.c | 28 +- libavformat/iv8.c | 8 +- libavformat/ivfdec.c | 8 +- libavformat/ivfenc.c | 8 +- libavformat/jacosubdec.c | 271 - libavformat/jacosubenc.c | 42 - libavformat/jvdec.c | 24 +- libavformat/latmenc.c | 91 +- libavformat/libavformat.v | 33 - libavformat/libgme.c | 201 - libavformat/libmodplug.c | 381 - libavformat/libnut.c | 324 - libavformat/libquvi.c | 146 - libavformat/librtmp.c | 8 +- libavformat/libssh.c | 233 - libavformat/lmlm4.c | 14 +- libavformat/loasdec.c | 87 - libavformat/lvfdec.c | 152 - libavformat/lxfdec.c | 16 +- libavformat/m4vdec.c | 10 +- libavformat/matroska.c | 52 +- libavformat/matroska.h | 44 +- libavformat/matroskadec.c | 736 +- libavformat/matroskaenc.c | 540 +- libavformat/md5enc.c | 85 +- libavformat/md5proto.c | 8 +- .../metadata-example.c | 4 +- libavformat/metadata.c | 8 +- libavformat/metadata.h | 8 +- libavformat/mgsts.c | 106 - libavformat/microdvddec.c | 167 - libavformat/microdvdenc.c | 67 - libavformat/mkvtimestamp_v2.c | 50 - libavformat/mm.c | 9 +- libavformat/mmf.c | 92 +- libavformat/mms.c | 8 +- libavformat/mms.h | 8 +- libavformat/mmsh.c | 73 +- libavformat/mmst.c | 25 +- libavformat/mov.c | 866 +- libavformat/mov_chan.c | 11 +- libavformat/mov_chan.h | 8 +- libavformat/movenc.c | 938 +- libavformat/movenc.h | 26 +- libavformat/movenchint.c | 17 +- libavformat/mp3dec.c | 200 +- libavformat/mp3enc.c | 160 +- libavformat/mpc.c | 17 +- libavformat/mpc8.c | 38 +- libavformat/mpeg.c | 548 +- libavformat/mpeg.h | 10 +- libavformat/mpegenc.c | 70 +- libavformat/mpegts.c | 569 +- libavformat/mpegts.h | 8 +- libavformat/mpegtsenc.c | 211 +- libavformat/mpegvideodec.c | 55 +- libavformat/mpjpeg.c | 19 +- libavformat/mpl2dec.c | 146 - libavformat/mpsubdec.c | 144 - libavformat/msnwc_tcp.c | 14 +- libavformat/mtv.c | 26 +- libavformat/mux.c | 354 +- libavformat/mvdec.c | 441 - libavformat/mvi.c | 12 +- libavformat/mxf.c | 41 +- libavformat/mxf.h | 25 +- libavformat/mxfdec.c | 707 +- libavformat/mxfenc.c | 458 +- libavformat/mxg.c | 24 +- libavformat/ncdec.c | 10 +- libavformat/network.c | 54 +- libavformat/network.h | 23 +- libavformat/nistspheredec.c | 131 - libavformat/noproxy-test.c | 8 +- libavformat/nsvdec.c | 65 +- libavformat/nullenc.c | 10 +- libavformat/nut.c | 180 +- libavformat/nut.h | 15 +- libavformat/nutdec.c | 255 +- libavformat/nutenc.c | 433 +- libavformat/nuv.c | 101 +- libavformat/oggdec.c | 371 +- libavformat/oggdec.h | 7 +- libavformat/oggenc.c | 122 +- libavformat/oggparsecelt.c | 29 +- libavformat/oggparsedirac.c | 8 +- libavformat/oggparseflac.c | 38 +- libavformat/oggparseogm.c | 28 +- libavformat/oggparseopus.c | 96 +- libavformat/oggparseskeleton.c | 25 +- libavformat/oggparsespeex.c | 10 +- libavformat/oggparsetheora.c | 40 - libavformat/oggparsevorbis.c | 44 +- libavformat/oggparsevp8.c | 137 - libavformat/oma.c | 8 +- libavformat/oma.h | 8 +- libavformat/omadec.c | 27 +- libavformat/omaenc.c | 13 +- libavformat/options.c | 22 +- libavformat/options_table.h | 29 +- libavformat/os_support.c | 8 +- libavformat/os_support.h | 19 +- libavformat/paf.c | 262 - libavformat/pcm.c | 28 +- libavformat/pcm.h | 9 +- libavformat/pcmdec.c | 38 +- libavformat/pcmenc.c | 8 +- libavformat/pjsdec.c | 137 - libavformat/pmpdec.c | 88 +- libavformat/psxstr.c | 69 +- libavformat/pva.c | 44 +- libavformat/pvfdec.c | 75 - libavformat/qcp.c | 16 +- libavformat/qtpalette.h | 8 +- libavformat/r3d.c | 19 +- libavformat/rawdec.c | 54 +- libavformat/rawdec.h | 10 +- libavformat/rawenc.c | 83 +- libavformat/rawenc.h | 8 +- libavformat/rawvideodec.c | 40 +- libavformat/rdt.c | 12 +- libavformat/rdt.h | 8 +- libavformat/realtextdec.c | 153 - libavformat/redspark.c | 170 - libavformat/riff.c | 71 +- libavformat/riff.h | 19 +- libavformat/riffdec.c | 56 +- libavformat/riffenc.c | 47 +- libavformat/rl2.c | 27 +- libavformat/rm.c | 8 +- libavformat/rm.h | 10 +- libavformat/rmdec.c | 198 +- libavformat/rmenc.c | 17 +- libavformat/rmsipr.c | 8 +- libavformat/rmsipr.h | 8 +- libavformat/rpl.c | 32 +- libavformat/rsd.c | 168 - libavformat/rso.c | 8 +- libavformat/rso.h | 8 +- libavformat/rsodec.c | 29 +- libavformat/rsoenc.c | 8 +- libavformat/rtmp.h | 8 +- libavformat/rtmpcrypt.c | 8 +- libavformat/rtmpcrypt.h | 8 +- libavformat/rtmpdh.c | 8 +- libavformat/rtmpdh.h | 8 +- libavformat/rtmphttp.c | 8 +- libavformat/rtmppkt.c | 8 +- libavformat/rtmppkt.h | 8 +- libavformat/rtmpproto.c | 25 +- libavformat/rtp.c | 11 +- libavformat/rtp.h | 8 +- libavformat/rtpdec.c | 17 +- libavformat/rtpdec.h | 8 +- libavformat/rtpdec_amr.c | 8 +- libavformat/rtpdec_asf.c | 8 +- libavformat/rtpdec_formats.h | 8 +- libavformat/rtpdec_g726.c | 8 +- libavformat/rtpdec_h263.c | 8 +- libavformat/rtpdec_h263_rfc2190.c | 8 +- libavformat/rtpdec_h264.c | 8 +- libavformat/rtpdec_ilbc.c | 8 +- libavformat/rtpdec_jpeg.c | 8 +- libavformat/rtpdec_latm.c | 13 +- libavformat/rtpdec_mpeg12.c | 8 +- libavformat/rtpdec_mpeg4.c | 14 +- libavformat/rtpdec_mpegts.c | 8 +- libavformat/rtpdec_qcelp.c | 8 +- libavformat/rtpdec_qdm2.c | 16 +- libavformat/rtpdec_qt.c | 8 +- libavformat/rtpdec_svq3.c | 13 +- libavformat/rtpdec_vp8.c | 8 +- libavformat/rtpdec_xiph.c | 18 +- libavformat/rtpenc.c | 23 +- libavformat/rtpenc.h | 12 +- libavformat/rtpenc_aac.c | 8 +- libavformat/rtpenc_amr.c | 8 +- libavformat/rtpenc_chain.c | 12 +- libavformat/rtpenc_chain.h | 8 +- libavformat/rtpenc_h263.c | 12 +- libavformat/rtpenc_h263_rfc2190.c | 8 +- libavformat/rtpenc_h264.c | 8 +- libavformat/rtpenc_jpeg.c | 8 +- libavformat/rtpenc_latm.c | 8 +- libavformat/rtpenc_mpv.c | 8 +- libavformat/rtpenc_vp8.c | 8 +- libavformat/rtpenc_xiph.c | 11 +- libavformat/rtpproto.c | 52 +- libavformat/rtpproto.h | 8 +- libavformat/rtsp.c | 49 +- libavformat/rtsp.h | 20 +- libavformat/rtspcodes.h | 8 +- libavformat/rtspdec.c | 10 +- libavformat/rtspenc.c | 8 +- libavformat/samidec.c | 137 - libavformat/sapdec.c | 8 +- libavformat/sapenc.c | 8 +- libavformat/sauce.c | 10 +- libavformat/sauce.h | 8 +- libavformat/sbgdec.c | 1511 --- libavformat/sctp.c | 16 +- libavformat/sdp.c | 24 +- libavformat/seek-test.c | 43 +- libavformat/seek.c | 8 +- libavformat/seek.h | 8 +- libavformat/segafilm.c | 71 +- libavformat/segment.c | 741 +- libavformat/sierravmd.c | 89 +- libavformat/siff.c | 62 +- libavformat/smacker.c | 67 +- libavformat/smjpeg.c | 8 +- libavformat/smjpeg.h | 8 +- libavformat/smjpegdec.c | 14 +- libavformat/smjpegenc.c | 10 +- libavformat/smoothstreamingenc.c | 24 +- libavformat/smush.c | 238 - libavformat/sol.c | 15 +- libavformat/sox.h | 8 +- libavformat/soxdec.c | 38 +- libavformat/soxenc.c | 23 +- libavformat/spdif.c | 8 +- libavformat/spdif.h | 11 +- libavformat/spdifdec.c | 35 +- libavformat/spdifenc.c | 30 +- libavformat/srtdec.c | 145 +- libavformat/srtenc.c | 115 - libavformat/srtp.c | 8 +- libavformat/srtp.h | 8 +- libavformat/srtpproto.c | 8 +- libavformat/subtitles.c | 283 - libavformat/subtitles.h | 124 - libavformat/subviewer1dec.c | 124 - libavformat/subviewerdec.c | 194 - libavformat/swf.c | 8 +- libavformat/swf.h | 105 +- libavformat/swfdec.c | 333 +- libavformat/swfenc.c | 25 +- libavformat/takdec.c | 49 +- libavformat/tcp.c | 69 +- libavformat/tedcaptionsdec.c | 366 - libavformat/tee.c | 498 - libavformat/thp.c | 49 +- libavformat/tiertexseq.c | 8 +- libavformat/tls.c | 57 +- libavformat/tmv.c | 10 +- libavformat/tta.c | 91 +- libavformat/tty.c | 43 +- libavformat/txd.c | 33 +- libavformat/udp.c | 278 +- libavformat/unix.c | 11 +- libavformat/url-test.c | 8 +- libavformat/url.c | 8 +- libavformat/url.h | 18 +- libavformat/urldecode.c | 8 +- libavformat/urldecode.h | 8 +- libavformat/utils.c | 1866 +--- libavformat/vc1test.c | 15 +- libavformat/vc1testenc.c | 11 +- libavformat/version.h | 36 +- libavformat/vivo.c | 313 - libavformat/voc.c | 8 +- libavformat/voc.h | 8 +- libavformat/vocdec.c | 12 +- libavformat/vocenc.c | 22 +- libavformat/vorbiscomment.c | 9 +- libavformat/vorbiscomment.h | 8 +- libavformat/vplayerdec.c | 128 - libavformat/vqf.c | 23 +- libavformat/w64.c | 50 - libavformat/w64.h | 31 - libavformat/wavdec.c | 357 +- libavformat/wavenc.c | 204 +- libavformat/wc3movie.c | 19 +- libavformat/webvttdec.c | 223 - libavformat/webvttenc.c | 99 - libavformat/westwood_aud.c | 10 +- libavformat/westwood_vqa.c | 51 +- libavformat/{wtvdec.c => wtv.c} | 290 +- libavformat/wtv.h | 60 - libavformat/wtv_common.c | 84 - libavformat/wtvenc.c | 849 -- libavformat/wv.c | 8 +- libavformat/wv.h | 8 +- libavformat/wvdec.c | 20 +- libavformat/wvenc.c | 12 +- libavformat/xa.c | 11 +- libavformat/xmv.c | 188 +- libavformat/xwma.c | 8 +- libavformat/yop.c | 26 +- libavformat/yuv4mpeg.c | 294 +- libavresample/Makefile | 3 - libavresample/arm/audio_convert_init.c | 8 +- libavresample/arm/audio_convert_neon.S | 8 +- libavresample/audio_convert.c | 8 +- libavresample/audio_convert.h | 8 +- libavresample/audio_data.c | 8 +- libavresample/audio_data.h | 8 +- libavresample/audio_mix.c | 8 +- libavresample/audio_mix.h | 8 +- libavresample/audio_mix_matrix.c | 8 +- libavresample/avresample-test.c | 8 +- libavresample/avresample.h | 10 +- libavresample/avresampleres.rc | 55 - libavresample/dither.c | 8 +- libavresample/dither.h | 8 +- libavresample/internal.h | 8 +- libavresample/options.c | 8 +- libavresample/resample.c | 8 +- libavresample/resample.h | 8 +- libavresample/resample_template.c | 8 +- libavresample/utils.c | 14 +- libavresample/version.h | 8 +- libavresample/x86/audio_convert.asm | 42 +- libavresample/x86/audio_convert_init.c | 8 +- libavresample/x86/audio_mix.asm | 16 +- libavresample/x86/audio_mix_init.c | 8 +- libavresample/x86/dither.asm | 8 +- libavresample/x86/dither_init.c | 8 +- libavresample/x86/util.asm | 8 +- libavutil/Makefile | 52 +- libavutil/adler32.c | 55 +- libavutil/adler32.h | 20 +- libavutil/aes.c | 12 +- libavutil/aes.h | 12 +- libavutil/arm/asm.S | 8 +- libavutil/arm/bswap.h | 8 +- libavutil/arm/cpu.c | 8 +- libavutil/arm/cpu.h | 8 +- libavutil/arm/float_dsp_arm.h | 8 +- libavutil/arm/float_dsp_init_arm.c | 8 +- libavutil/arm/float_dsp_init_neon.c | 8 +- libavutil/arm/float_dsp_init_vfp.c | 8 +- libavutil/arm/float_dsp_neon.S | 8 +- libavutil/arm/float_dsp_vfp.S | 8 +- libavutil/arm/intmath.h | 8 +- libavutil/arm/intreadwrite.h | 8 +- libavutil/arm/timer.h | 8 +- libavutil/atomic.c | 14 +- libavutil/atomic.h | 8 +- libavutil/atomic_gcc.h | 8 +- libavutil/atomic_suncc.h | 8 +- libavutil/atomic_win32.h | 8 +- libavutil/attributes.h | 44 +- libavutil/audio_fifo.c | 8 +- libavutil/audio_fifo.h | 15 +- libavutil/avassert.h | 10 +- libavutil/avr32/bswap.h | 8 +- libavutil/avr32/intreadwrite.h | 8 +- libavutil/avstring.c | 155 +- libavutil/avstring.h | 140 +- libavutil/avutil.h | 85 +- libavutil/avutilres.rc | 55 - libavutil/base64.c | 171 +- libavutil/base64.h | 20 +- libavutil/bfin/bswap.h | 8 +- libavutil/bfin/timer.h | 8 +- libavutil/blowfish.c | 52 +- libavutil/blowfish.h | 9 +- libavutil/bprint.c | 381 - libavutil/bprint.h | 216 - libavutil/bswap.h | 8 +- libavutil/buffer.c | 41 +- libavutil/buffer.h | 19 +- libavutil/buffer_internal.h | 10 +- libavutil/channel_layout.c | 198 +- libavutil/channel_layout.h | 51 +- libavutil/colorspace.h | 8 +- libavutil/common.h | 79 +- libavutil/cpu.c | 96 +- libavutil/cpu.h | 42 +- libavutil/cpu_internal.h | 8 +- libavutil/crc.c | 60 +- libavutil/crc.h | 19 +- libavutil/des.c | 18 +- libavutil/des.h | 8 +- libavutil/dict.c | 27 +- libavutil/dict.h | 39 +- libavutil/error.c | 93 +- libavutil/error.h | 73 +- libavutil/eval.c | 226 +- libavutil/eval.h | 12 +- libavutil/fifo.c | 47 +- libavutil/fifo.h | 21 +- libavutil/file.c | 74 +- libavutil/file.h | 20 +- libavutil/file_open.c | 50 +- libavutil/float_dsp.c | 15 +- libavutil/float_dsp.h | 11 +- libavutil/frame.c | 159 +- libavutil/frame.h | 180 +- libavutil/hash.c | 204 - libavutil/hash.h | 90 - libavutil/hmac.c | 128 +- libavutil/hmac.h | 12 +- libavutil/imgutils.c | 145 +- libavutil/imgutils.h | 70 +- libavutil/integer.c | 196 - libavutil/integer.h | 86 - libavutil/internal.h | 25 +- libavutil/intfloat.h | 8 +- libavutil/intfloat_readwrite.c | 101 - libavutil/intfloat_readwrite.h | 44 - libavutil/intmath.c | 8 +- libavutil/intmath.h | 12 +- libavutil/intreadwrite.h | 94 +- libavutil/lfg.c | 12 +- libavutil/lfg.h | 8 +- libavutil/libavutil.v | 2 +- libavutil/libm.h | 19 +- libavutil/{lls1.c => lls.c} | 49 +- libavutil/{lls2.h => lls.h} | 31 +- libavutil/lls1.h | 54 - libavutil/lls2.c | 160 - libavutil/log.c | 225 +- libavutil/log.h | 64 +- libavutil/log2_tab.c | 10 +- libavutil/lzo.c | 60 +- libavutil/lzo.h | 8 +- libavutil/macros.h | 8 +- libavutil/mathematics.c | 62 +- libavutil/mathematics.h | 60 +- libavutil/md5.c | 103 +- libavutil/md5.h | 46 +- libavutil/mem.c | 193 +- libavutil/mem.h | 110 +- libavutil/mips/Makefile | 1 - libavutil/mips/float_dsp_mips.c | 383 - libavutil/mips/intreadwrite.h | 8 +- libavutil/mips/libm_mips.h | 73 - libavutil/murmur3.c | 192 - libavutil/murmur3.h | 32 - libavutil/old_pix_fmts.h | 55 +- libavutil/opencl.c | 805 -- libavutil/opencl.h | 329 - libavutil/opencl_internal.c | 59 - libavutil/opencl_internal.h | 33 - libavutil/opt.c | 1010 +- libavutil/opt.h | 263 +- libavutil/parseutils.c | 292 +- libavutil/parseutils.h | 77 +- libavutil/pca.c | 248 - libavutil/pca.h | 35 - libavutil/pixdesc.c | 651 +- libavutil/pixdesc.h | 39 +- libavutil/pixfmt.h | 144 +- libavutil/ppc/cpu.c | 10 +- libavutil/ppc/cpu.h | 8 +- libavutil/ppc/float_dsp_altivec.c | 8 +- libavutil/ppc/float_dsp_altivec.h | 8 +- libavutil/ppc/float_dsp_init.c | 8 +- libavutil/ppc/intreadwrite.h | 8 +- libavutil/ppc/timer.h | 15 +- libavutil/ppc/types_altivec.h | 8 +- libavutil/ppc/util_altivec.h | 8 +- libavutil/qsort.h | 117 - libavutil/random_seed.c | 87 +- libavutil/random_seed.h | 19 +- libavutil/rational.c | 73 +- libavutil/rational.h | 10 +- libavutil/rc4.c | 8 +- libavutil/rc4.h | 8 +- libavutil/ripemd.c | 515 - libavutil/ripemd.h | 75 - libavutil/samplefmt.c | 61 +- libavutil/samplefmt.h | 60 +- libavutil/sh4/bswap.h | 8 +- libavutil/sha.c | 129 +- libavutil/sha.h | 12 +- libavutil/sha512.c | 345 - libavutil/sha512.h | 75 - libavutil/softfloat.c | 71 - libavutil/softfloat.h | 126 - libavutil/stereo3d.c | 8 +- libavutil/stereo3d.h | 8 +- libavutil/time.c | 10 +- libavutil/time.h | 10 +- libavutil/timecode.c | 218 - libavutil/timecode.h | 140 - libavutil/timer.h | 8 +- libavutil/timestamp.h | 74 - libavutil/tomi/intreadwrite.h | 8 +- libavutil/tree.c | 46 +- libavutil/tree.h | 20 +- libavutil/utf8.c | 73 - libavutil/utils.c | 72 +- libavutil/version.h | 41 +- libavutil/x86/asm.h | 8 +- libavutil/x86/bswap.h | 8 +- libavutil/x86/cpu.c | 8 +- libavutil/x86/cpu.h | 8 +- libavutil/x86/cpuid.asm | 8 +- libavutil/x86/emms.asm | 8 +- libavutil/x86/emms.h | 12 +- libavutil/x86/float_dsp.asm | 22 +- libavutil/x86/float_dsp_init.c | 8 +- libavutil/x86/intreadwrite.h | 8 +- libavutil/x86/lls.asm | 19 +- libavutil/x86/lls_init.c | 18 +- libavutil/x86/timer.h | 8 +- libavutil/x86/w64xmmtest.h | 8 +- libavutil/x86/x86inc.asm | 8 - libavutil/x86/x86util.asm | 8 +- libavutil/x86_cpu.h | 1 - libavutil/xga_font_data.c | 417 - libavutil/xga_font_data.h | 35 - libavutil/xtea.c | 108 +- libavutil/xtea.h | 11 +- libpostproc/Makefile | 12 - libpostproc/libpostproc.v | 4 - libpostproc/postprocess.c | 1049 -- libpostproc/postprocess.h | 106 - libpostproc/postprocess_altivec_template.c | 1210 -- libpostproc/postprocess_internal.h | 179 - libpostproc/postprocess_template.c | 3714 ------- libpostproc/postprocres.rc | 55 - libpostproc/version.h | 45 - library.mak | 21 +- libswresample/Makefile | 21 - libswresample/arm/Makefile | 2 - libswresample/arm/audio_convert_init.c | 67 - libswresample/arm/audio_convert_neon.S | 363 - libswresample/audioconvert.c | 224 - libswresample/audioconvert.h | 78 - libswresample/dither.c | 148 - libswresample/dither_template.c | 67 - libswresample/libswresample.v | 4 - libswresample/log2_tab.c | 1 - libswresample/noise_shaping_data.c | 224 - libswresample/rematrix.c | 500 - libswresample/rematrix_template.c | 106 - libswresample/resample.c | 372 - libswresample/resample_template.c | 211 - libswresample/soxr_resample.c | 93 - libswresample/swresample-test.c | 414 - libswresample/swresample.c | 939 -- libswresample/swresample.h | 311 - libswresample/swresample_internal.h | 199 - libswresample/swresampleres.rc | 55 - libswresample/version.h | 45 - libswresample/x86/Makefile | 3 - libswresample/x86/audio_convert.asm | 465 - libswresample/x86/rematrix.asm | 250 - libswresample/x86/resample_mmx.h | 70 - libswresample/x86/swresample_x86.c | 200 - libswscale/Makefile | 5 - libswscale/arm/Makefile | 4 - libswscale/arm/rgb2yuv_neon_16.S | 80 - libswscale/arm/rgb2yuv_neon_32.S | 119 - libswscale/arm/rgb2yuv_neon_common.S | 291 - libswscale/arm/swscale_unscaled.c | 79 - libswscale/bfin/internal_bfin.S | 8 +- libswscale/bfin/swscale_bfin.c | 8 +- libswscale/bfin/yuv2rgb_bfin.c | 11 +- libswscale/colorspace-test.c | 18 +- libswscale/input.c | 621 +- libswscale/options.c | 29 +- libswscale/output.c | 948 +- libswscale/ppc/swscale_altivec.c | 10 +- libswscale/ppc/yuv2rgb_altivec.c | 26 +- libswscale/ppc/yuv2rgb_altivec.h | 8 +- libswscale/ppc/yuv2yuv_altivec.c | 8 +- libswscale/rgb2rgb.c | 123 +- libswscale/rgb2rgb.h | 32 +- libswscale/rgb2rgb_template.c | 124 +- libswscale/sparc/yuv2rgb_vis.c | 8 +- libswscale/swscale-test.c | 70 +- libswscale/swscale.c | 577 +- libswscale/swscale.h | 22 +- libswscale/swscale_internal.h | 198 +- libswscale/swscale_unscaled.c | 1017 +- libswscale/swscaleres.rc | 55 - libswscale/utils.c | 698 +- libswscale/version.h | 15 +- libswscale/x86/Makefile | 2 - libswscale/x86/input.asm | 204 +- libswscale/x86/output.asm | 12 +- libswscale/x86/rgb2rgb.c | 24 +- libswscale/x86/rgb2rgb_template.c | 190 +- libswscale/x86/scale.asm | 12 +- libswscale/x86/swscale.c | 137 +- libswscale/x86/swscale_template.c | 130 +- libswscale/x86/w64xmmtest.c | 8 +- libswscale/x86/yuv2rgb.c | 13 +- libswscale/x86/yuv2rgb_template.c | 35 +- libswscale/yuv2rgb.c | 125 +- ...px-720p.ffpreset => libvpx-1080p.avpreset} | 4 +- ...60.ffpreset => libvpx-1080p50_60.avpreset} | 4 +- ...vpx-360p.ffpreset => libvpx-360p.avpreset} | 4 +- ...px-1080p.ffpreset => libvpx-720p.avpreset} | 4 +- ..._60.ffpreset => libvpx-720p50_60.avpreset} | 4 +- presets/libx264-baseline.avpreset | 1 + presets/libx264-fast.avpreset | 1 + presets/libx264-fast_firstpass.avpreset | 2 + presets/libx264-faster.avpreset | 1 + presets/libx264-faster_firstpass.avpreset | 2 + ...d320.ffpreset => libx264-ipod320.avpreset} | 4 +- ...d640.ffpreset => libx264-ipod640.avpreset} | 4 +- presets/libx264-lossless_fast.avpreset | 2 + presets/libx264-lossless_max.avpreset | 2 + presets/libx264-lossless_medium.avpreset | 2 + presets/libx264-lossless_slow.avpreset | 2 + presets/libx264-lossless_slower.avpreset | 2 + presets/libx264-lossless_ultrafast.avpreset | 2 + presets/libx264-main.avpreset | 1 + presets/libx264-medium.avpreset | 1 + presets/libx264-medium_firstpass.avpreset | 2 + presets/libx264-placebo.avpreset | 1 + presets/libx264-placebo_firstpass.avpreset | 2 + presets/libx264-slow.avpreset | 1 + presets/libx264-slow_firstpass.avpreset | 2 + presets/libx264-slower.avpreset | 1 + presets/libx264-slower_firstpass.avpreset | 2 + presets/libx264-superfast.avpreset | 1 + presets/libx264-superfast_firstpass.avpreset | 2 + presets/libx264-ultrafast.avpreset | 1 + presets/libx264-ultrafast_firstpass.avpreset | 2 + presets/libx264-veryfast.avpreset | 1 + presets/libx264-veryfast_firstpass.avpreset | 2 + presets/libx264-veryslow.avpreset | 1 + presets/libx264-veryslow_firstpass.avpreset | 2 + tests/Makefile | 67 +- tests/audiogen.c | 8 +- tests/base64.c | 8 +- tests/copycooker.sh | 30 - tests/fate-run.sh | 79 +- tests/fate-update.sh | 55 - tests/fate-valgrind.supp | 31 - tests/fate.sh | 6 +- tests/fate/aac.mak | 23 +- tests/fate/ac3.mak | 3 +- tests/fate/acodec.mak | 58 +- tests/fate/adpcm.mak | 15 - tests/fate/audio.mak | 38 +- tests/fate/avformat.mak | 23 +- tests/fate/cover-art.mak | 23 +- tests/fate/demux.mak | 90 +- tests/fate/ea.mak | 15 +- tests/fate/exif.mak | 14 - tests/fate/ffmpeg.mak | 48 - tests/fate/ffprobe.mak | 33 - tests/fate/fft.mak | 21 +- tests/fate/filter-audio.mak | 27 +- tests/fate/filter-video.mak | 233 +- tests/fate/flac.mak | 4 +- tests/fate/gif.mak | 27 - tests/fate/h264.mak | 366 +- tests/fate/hevc.mak | 4 +- tests/fate/image.mak | 44 +- tests/fate/libavcodec.mak | 2 +- tests/fate/libavresample.mak | 10 +- tests/fate/libavutil.mak | 20 - tests/fate/libswresample.mak | 276 - tests/fate/lossless-audio.mak | 27 +- tests/fate/lossless-video.mak | 24 +- tests/fate/microsoft.mak | 17 +- tests/fate/mp3.mak | 4 - tests/fate/pcm.mak | 24 +- tests/fate/probe.mak | 14 +- tests/fate/prores.mak | 16 +- tests/fate/qt.mak | 37 +- tests/fate/real.mak | 17 +- tests/fate/screen.mak | 17 +- tests/fate/seek.mak | 6 - tests/fate/subtitles.mak | 62 - tests/fate/utvideo.mak | 2 +- tests/fate/vcodec.mak | 87 +- tests/fate/video.mak | 170 +- tests/fate/voice.mak | 24 +- tests/fate/vpx.mak | 19 +- tests/fate/vqf.mak | 11 +- tests/fate/wavpack.mak | 58 +- tests/ffserver-regression.sh | 39 - tests/ffserver.conf | 307 - tests/ffserver.regression.ref | 10 - .../filtergraphs/alphamerge_alphaextract_rgb | 4 - .../filtergraphs/alphamerge_alphaextract_yuv | 4 - tests/filtergraphs/concat | 8 - tests/filtergraphs/gradfun | 2 - tests/filtergraphs/hqdn3d | 1 - tests/filtergraphs/overlay | 1 - tests/filtergraphs/overlay_rgb | 4 - tests/filtergraphs/overlay_yuv420 | 4 - tests/filtergraphs/overlay_yuv444 | 4 - tests/filtergraphs/scalenorm | 4 - tests/lavf-regression.sh | 131 +- tests/md5.sh | 2 +- tests/ref/acodec/adpcm-ima_qt | 2 +- tests/ref/acodec/adpcm_ima_qt | 4 - tests/ref/acodec/alac | 4 +- tests/ref/acodec/flac | 4 +- tests/ref/acodec/g723_1 | 4 - tests/ref/acodec/mp2fixed | 4 - tests/ref/acodec/pcm-f32be | 4 +- tests/ref/acodec/pcm-f64be | 4 +- tests/ref/acodec/pcm-s16be | 4 +- tests/ref/acodec/pcm-s16be_planar | 4 - tests/ref/acodec/pcm-s16le_planar | 4 - tests/ref/acodec/pcm-s24be | 4 +- tests/ref/acodec/pcm-s24le_planar | 4 - tests/ref/acodec/pcm-s32be | 4 +- tests/ref/acodec/pcm-s32le_planar | 4 - tests/ref/acodec/pcm-s8 | 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/roqaudio | 4 - tests/ref/fate/4xm-1 | 30 +- tests/ref/fate/4xm-2 | 320 +- tests/ref/fate/8bps | 24 +- tests/ref/fate/aasc | 1 - tests/ref/fate/acodec-aref | 4 - tests/ref/fate/adpcm-4xm | 27 - tests/ref/fate/adpcm-afc | 13 - tests/ref/fate/adpcm-dtk | 33 - tests/ref/fate/adpcm-ima-amv | 310 +- tests/ref/fate/adpcm-ima-oki | 1 - tests/ref/fate/adpcm-ima-rad | 1 - tests/ref/fate/adpcm-ima-smjpeg | 698 +- tests/ref/fate/ansi256 | 9 - tests/ref/fate/armovie-escape124 | 200 +- tests/ref/fate/ast | 1 - tests/ref/fate/avio-direct | 59 - tests/ref/fate/bethsoft-vid | 140 +- tests/ref/fate/bprint | 16 - tests/ref/fate/brstm | 1 - tests/ref/fate/cavs | 343 +- tests/ref/fate/cdgraphics | 440 +- tests/ref/fate/cdxl-bitline-ham6 | 22 +- tests/ref/fate/cdxl-ham6 | 34 +- tests/ref/fate/cdxl-ham8 | 4 +- tests/ref/fate/cdxl-pal8 | 24 +- tests/ref/fate/cdxl-pal8-small | 94 +- tests/ref/fate/cljr | 72 +- tests/ref/fate/cllc-argb | 1 - tests/ref/fate/cllc-rgb | 1 - tests/ref/fate/cllc-yuy2-noblock | 1 - tests/ref/fate/crc | 1 - tests/ref/fate/creatureshock-avs | 114 +- tests/ref/fate/cvid-grayscale | 304 +- tests/ref/fate/cvid-palette | 114 +- tests/ref/fate/cvid-partial | 157 +- tests/ref/fate/d-cinema-demux | 2 +- tests/ref/fate/dfa1 | 50 +- tests/ref/fate/dfa10 | 16 +- tests/ref/fate/dfa11 | 18 +- tests/ref/fate/dfa2 | 34 +- tests/ref/fate/dfa3 | 20 +- tests/ref/fate/dfa4 | 27 +- tests/ref/fate/dfa5 | 30 +- tests/ref/fate/dfa6 | 24 +- tests/ref/fate/dfa7 | 24 +- tests/ref/fate/dfa8 | 72 +- tests/ref/fate/dfa9 | 12 +- tests/ref/fate/dirac | 3 - tests/ref/fate/ea-cmv | 388 +- tests/ref/fate/ea-mad | 194 +- tests/ref/fate/ea-tgq | 558 +- tests/ref/fate/ea-tqi | 54 +- tests/ref/fate/eval | 78 - tests/ref/fate/exif-image-embedded | 404 - tests/ref/fate/exif-image-jpg | 226 - tests/ref/fate/exif-image-tiff | 27 - tests/ref/fate/exr-slice-pxr24 | 2 - tests/ref/fate/exr-slice-raw | 2 - tests/ref/fate/exr-slice-rle | 2 - tests/ref/fate/exr-slice-zip1 | 2 - tests/ref/fate/exr-slice-zip16 | 2 - tests/ref/fate/ffmpeg-filter_complex | 6 - tests/ref/fate/ffmpeg-lavfi | 6 - tests/ref/fate/ffprobe_compact | 32 - tests/ref/fate/ffprobe_csv | 32 - tests/ref/fate/ffprobe_default | 644 -- tests/ref/fate/ffprobe_flat | 580 - tests/ref/fate/ffprobe_ini | 657 -- tests/ref/fate/ffprobe_json | 628 -- tests/ref/fate/ffprobe_xml | 54 - tests/ref/fate/film-cvid | 220 +- tests/ref/fate/filter-adelay | 261 - .../fate/filter-alphaextract_alphamerge_rgb | 51 - .../fate/filter-alphaextract_alphamerge_yuv | 51 - tests/ref/fate/filter-colorchannelmixer | 51 - tests/ref/fate/filter-colormatrix1 | 1 - tests/ref/fate/filter-colormatrix2 | 1 - tests/ref/fate/filter-concat | 202 - tests/ref/fate/filter-crop | 2 +- tests/ref/fate/filter-crop_scale | 2 +- tests/ref/fate/filter-crop_scale_vflip | 2 +- tests/ref/fate/filter-crop_vflip | 2 +- tests/ref/fate/filter-curves | 6 - tests/ref/fate/filter-delogo | 220 +- tests/ref/fate/filter-drawbox | 100 +- tests/ref/fate/filter-edgedetect | 1 - tests/ref/fate/filter-fade | 98 +- tests/ref/fate/filter-gradfun-sample | 21 - tests/ref/fate/filter-histogram-levels | 51 - tests/ref/fate/filter-histogram-waveform | 51 - tests/ref/fate/filter-hqdn3d-sample | 74 - tests/ref/fate/filter-hue | 1 - tests/ref/fate/filter-idet | 1 - tests/ref/fate/filter-lavd-life | 11 - tests/ref/fate/filter-lavd-scalenorm | 11 - tests/ref/fate/filter-lavd-testsrc | 71 - tests/ref/fate/filter-mcdeint-fast | 31 - tests/ref/fate/filter-mcdeint-medium | 31 - tests/ref/fate/filter-metadata-ebur128 | 280 - tests/ref/fate/filter-metadata-scenedetect | 10 - tests/ref/fate/filter-metadata-silencedetect | 512 - tests/ref/fate/filter-null | 2 +- tests/ref/fate/filter-overlay | 100 +- tests/ref/fate/filter-overlay_rgb | 51 - tests/ref/fate/filter-overlay_yuv420 | 51 - tests/ref/fate/filter-overlay_yuv444 | 51 - tests/ref/fate/filter-pad | 1 - tests/ref/fate/filter-phase | 51 - tests/ref/fate/filter-pixdesc | 204 +- tests/ref/fate/filter-pixfmts-copy | 205 +- tests/ref/fate/filter-pixfmts-crop | 154 +- tests/ref/fate/filter-pixfmts-field | 116 - tests/ref/fate/filter-pixfmts-fieldorder | 89 - tests/ref/fate/filter-pixfmts-hflip | 154 +- tests/ref/fate/filter-pixfmts-histeq | 6 - tests/ref/fate/filter-pixfmts-il | 115 - tests/ref/fate/filter-pixfmts-kerndeint | 10 - tests/ref/fate/filter-pixfmts-lut | 19 - tests/ref/fate/filter-pixfmts-null | 205 +- tests/ref/fate/filter-pixfmts-pad | 44 +- tests/ref/fate/filter-pixfmts-rotate | 20 - tests/ref/fate/filter-pixfmts-scale | 205 +- tests/ref/fate/filter-pixfmts-super2xsai | 14 - tests/ref/fate/filter-pixfmts-swapuv | 62 - .../ref/fate/filter-pixfmts-tinterlace_merge | 14 - tests/ref/fate/filter-pixfmts-tinterlace_pad | 14 - tests/ref/fate/filter-pixfmts-vflip | 205 +- tests/ref/fate/filter-pp | 1 - tests/ref/fate/filter-pp2 | 1 - tests/ref/fate/filter-pp3 | 1 - tests/ref/fate/filter-pp4 | 1 - tests/ref/fate/filter-pp5 | 1 - tests/ref/fate/filter-pp6 | 1 - tests/ref/fate/filter-scale200 | 2 +- tests/ref/fate/filter-scale500 | 2 +- tests/ref/fate/filter-select | 1 - tests/ref/fate/filter-separatefields | 101 - tests/ref/fate/filter-setdar | 1 - tests/ref/fate/filter-setpts | 89 +- tests/ref/fate/filter-setsar | 1 - tests/ref/fate/filter-stereo3d-abr-ml | 6 - tests/ref/fate/filter-stereo3d-abr-mr | 6 - tests/ref/fate/filter-stereo3d-al-sbsl | 6 - tests/ref/fate/filter-stereo3d-ar-abl | 6 - tests/ref/fate/filter-stereo3d-sbsl-abl | 6 - tests/ref/fate/filter-stereo3d-sbsl-abr | 6 - tests/ref/fate/filter-stereo3d-sbsl-al | 6 - tests/ref/fate/filter-stereo3d-sbsl-sbsr | 6 - tests/ref/fate/filter-telecine | 63 - tests/ref/fate/filter-thumbnail | 1 - tests/ref/fate/filter-tile | 1 - tests/ref/fate/filter-unsharp | 100 +- tests/ref/fate/filter-vflip | 2 +- tests/ref/fate/filter-vflip_crop | 2 +- tests/ref/fate/filter-vflip_vflip | 2 +- tests/ref/fate/filter-yadif-mode0 | 63 +- tests/ref/fate/filter-yadif-mode1 | 123 +- tests/ref/fate/flic-af11-palette-change | 232 +- tests/ref/fate/flic-magiccarpet | 80 +- tests/ref/fate/force_key_frames | 4 - tests/ref/fate/fraps-v2 | 8 + tests/ref/fate/fraps-v3 | 2 + tests/ref/fate/g729-0 | 1000 -- tests/ref/fate/g729-1 | 1000 -- tests/ref/fate/gif-color | 174 - tests/ref/fate/gif-demux | 37 - tests/ref/fate/gif-disposal-background | 6 - tests/ref/fate/gif-disposal-restore | 4 - tests/ref/fate/gif-gray | 37 - tests/ref/fate/gifenc-bgr4_byte | 174 - tests/ref/fate/gifenc-bgr8 | 174 - tests/ref/fate/gifenc-gray | 174 - tests/ref/fate/gifenc-pal8 | 174 - tests/ref/fate/gifenc-rgb4_byte | 174 - tests/ref/fate/gifenc-rgb8 | 174 - .../h264-conformance-frext-hi422fr10_sony_b | 6 - .../h264-conformance-frext-hi422fr13_sony_b | 6 - .../h264-conformance-frext-hi422fr1_sony_a | 6 - .../h264-conformance-frext-hi422fr6_sony_a | 6 - ...264-conformance-frext-pph422i1_panasonic_a | 11 - ...264-conformance-frext-pph422i2_panasonic_a | 11 - ...264-conformance-frext-pph422i3_panasonic_a | 11 - ...264-conformance-frext-pph422i4_panasonic_a | 11 - ...264-conformance-frext-pph422i5_panasonic_a | 11 - ...264-conformance-frext-pph422i6_panasonic_a | 11 - ...264-conformance-frext-pph422i7_panasonic_a | 11 - tests/ref/fate/h264-crop-to-container | 8 +- tests/ref/fate/h264-extreme-plane-pred | 4 - tests/ref/fate/h264-lossless | 20 +- tests/ref/fate/hevc-conformance-DBLK_A_SONY_3 | 58 +- tests/ref/fate/hevc-conformance-DBLK_B_SONY_3 | 58 +- tests/ref/fate/hevc-conformance-DBLK_C_SONY_3 | 58 +- .../fate/hevc-conformance-DELTAQP_B_SONY_3 | 58 +- .../fate/hevc-conformance-DELTAQP_C_SONY_3 | 58 +- .../ref/fate/hevc-conformance-POC_A_Bossen_3 | 8 +- .../fate/hevc-conformance-RPS_D_ericsson_5 | 134 +- .../ref/fate/hevc-conformance-WP_B_Toshiba_3 | 510 +- .../hevc-conformance-WP_MAIN10_B_Toshiba_3 | 510 +- tests/ref/fate/hmac | 30 +- tests/ref/fate/idroq-video-encode | 2 +- tests/ref/fate/indeo3 | 80 +- tests/ref/fate/indeo5 | 1 + tests/ref/fate/interplay-mve-16bit | 102 +- tests/ref/fate/interplay-mve-8bit | 222 +- tests/ref/fate/iv8-demux | 10 +- tests/ref/fate/jv | 13 +- tests/ref/fate/jv-demux | 20 - tests/ref/fate/kgv1 | 8 +- tests/ref/fate/lagarith-red | 26 - tests/ref/fate/lmlm4-demux | 168 +- tests/ref/fate/lossless-tak | 1 - tests/ref/fate/lossless-tta-encrypted | 1 - tests/ref/fate/mapchan-6ch-extract-2 | 2 - .../fate/mapchan-6ch-extract-2-downmix-mono | 1 - tests/ref/fate/mapchan-silent-mono | 1 - tests/ref/fate/mjpegb | 22 +- tests/ref/fate/mkv | 217 - tests/ref/fate/motionpixels | 220 +- tests/ref/fate/mpeg2-field-enc | 62 +- tests/ref/fate/msvideo1-16bit | 60 +- tests/ref/fate/mtv | 2 +- tests/ref/fate/murmur3 | 1 - tests/ref/fate/mxf-demux | 170 +- tests/ref/fate/mxpeg | 31 - tests/ref/fate/nc-demux | 176 +- tests/ref/fate/nistsphere-demux | 1 - tests/ref/fate/nsv-demux | 108 +- tests/ref/fate/nuv-rtjpeg | 18 +- tests/ref/fate/nuv-rtjpeg-fh | 102 +- tests/ref/fate/oggvp8-demux | 71 - tests/ref/fate/paf-audio | 7 - tests/ref/fate/paf-demux | 160 - tests/ref/fate/paf-video | 153 - tests/ref/fate/parseutils | 43 +- tests/ref/fate/pictor | 2 +- tests/ref/fate/pmp-demux | 106 - tests/ref/fate/pngparser | 8 +- tests/ref/fate/prores-422 | 6 +- tests/ref/fate/prores-422_hq | 6 +- tests/ref/fate/prores-422_lt | 6 +- tests/ref/fate/prores-422_proxy | 6 +- tests/ref/fate/prores-alpha | 6 +- tests/ref/fate/prores-alpha_skip | 3 - tests/ref/fate/prores-transparency | 5 - tests/ref/fate/prores-transparency_skip | 5 - tests/ref/fate/ptx | 2 +- tests/ref/fate/pva-demux | 53 +- tests/ref/fate/qtrle-16bit | 168 +- tests/ref/fate/qtrle-1bit | 78 +- tests/ref/fate/qtrle-24bit | 68 +- tests/ref/fate/qtrle-2bit | 78 +- tests/ref/fate/qtrle-32bit | 54 +- tests/ref/fate/qtrle-4bit | 78 +- tests/ref/fate/qtrle-8bit | 334 +- tests/ref/fate/quickdraw | 4 +- tests/ref/fate/random_seed | 1 - tests/ref/fate/redcode-demux | 2 +- tests/ref/fate/redspark-demux | 1 - tests/ref/fate/ripemd | 28 - tests/ref/fate/rpza | 62 +- tests/ref/fate/rsd-demux | 1 - tests/ref/fate/rv30 | 220 +- tests/ref/fate/rv40 | 481 +- tests/ref/fate/sanm | 16 - tests/ref/fate/sha512 | 28 - tests/ref/fate/sierra-vmd-video | 234 +- tests/ref/fate/smc | 240 +- tests/ref/fate/smjpeg | 425 - tests/ref/fate/smjpeg-demux | 2 +- tests/ref/fate/smvjpeg | 13 - tests/ref/fate/sub-aqtitle | 1 - tests/ref/fate/sub-charenc | 1 - tests/ref/fate/sub-jacosub | 1 - tests/ref/fate/sub-microdvd | 1 - tests/ref/fate/sub-microdvd-remux | 1 - tests/ref/fate/sub-movtext | 1 - tests/ref/fate/sub-movtextenc | 1 - tests/ref/fate/sub-mpl2 | 1 - tests/ref/fate/sub-mpsub | 1 - tests/ref/fate/sub-mpsub-frames | 1 - tests/ref/fate/sub-pjs | 1 - tests/ref/fate/sub-realtext | 1 - tests/ref/fate/sub-sami | 1 - tests/ref/fate/sub-srt | 2 +- tests/ref/fate/sub-subripenc | 1 - tests/ref/fate/sub-subviewer | 1 - tests/ref/fate/sub-subviewer1 | 1 - tests/ref/fate/sub-vplayer | 1 - tests/ref/fate/sub-webvtt | 1 - tests/ref/fate/sub2video | 95 - tests/ref/fate/svq1 | 300 +- tests/ref/fate/svq3 | 360 +- tests/ref/fate/targa-conformance-CCM8 | 2 +- tests/ref/fate/targa-conformance-UCM8 | 2 +- tests/ref/fate/theora-coeff-level64 | 18 +- tests/ref/fate/timefilter | 12 +- tests/ref/fate/truemotion1-15 | 210 +- tests/ref/fate/truemotion1-24 | 1 - tests/ref/fate/tscc-15bit | 450 +- tests/ref/fate/txd-16bpp | 24 +- tests/ref/fate/txd-pal8 | 4 +- tests/ref/fate/unknown_layout-ac3 | 1 - tests/ref/fate/unknown_layout-pcm | 1 - tests/ref/fate/utvideoenc_rgb_left | 4 - tests/ref/fate/utvideoenc_rgb_median | 4 - tests/ref/fate/utvideoenc_rgb_none | 4 - tests/ref/fate/utvideoenc_rgba_left | 4 - tests/ref/fate/utvideoenc_rgba_median | 4 - tests/ref/fate/utvideoenc_rgba_none | 4 - tests/ref/fate/utvideoenc_yuv420_left | 4 - tests/ref/fate/utvideoenc_yuv420_median | 4 - tests/ref/fate/utvideoenc_yuv420_none | 4 - tests/ref/fate/utvideoenc_yuv422_left | 4 - tests/ref/fate/utvideoenc_yuv422_median | 4 - tests/ref/fate/utvideoenc_yuv422_none | 4 - tests/ref/fate/v210 | 2 +- tests/ref/fate/vc1-ism | 242 +- tests/ref/fate/vcr2 | 158 - tests/ref/fate/vima | 17 - tests/ref/fate/vmnc-16bit | 384 +- tests/ref/fate/vp5 | 1 - tests/ref/fate/vp60 | 192 +- tests/ref/fate/vp6a | 188 +- tests/ref/fate/vp6a-skip_alpha | 94 - tests/ref/fate/vp6f | 350 +- tests/ref/fate/vp8-alpha | 121 - tests/ref/fate/vp8-sign-bias | 7 +- tests/ref/fate/vp8-size-change | 66 +- tests/ref/fate/vp8-test-vector-001 | 4 - tests/ref/fate/vp8-test-vector-002 | 4 - tests/ref/fate/vp8-test-vector-003 | 4 - tests/ref/fate/vp8-test-vector-004 | 4 - tests/ref/fate/vp8-test-vector-005 | 4 - tests/ref/fate/vp8-test-vector-006 | 4 - tests/ref/fate/vp8-test-vector-007 | 4 - tests/ref/fate/vp8-test-vector-008 | 4 - tests/ref/fate/vp8-test-vector-009 | 4 - tests/ref/fate/vp8-test-vector-010 | 4 - tests/ref/fate/vp8-test-vector-011 | 4 - tests/ref/fate/vp8-test-vector-012 | 4 - tests/ref/fate/vp8-test-vector-013 | 4 - tests/ref/fate/vp8-test-vector-014 | 4 - tests/ref/fate/vp8-test-vector-015 | 4 - tests/ref/fate/vp8-test-vector-016 | 4 - tests/ref/fate/vp8-test-vector-017 | 4 - tests/ref/fate/vp9-00-quantizer-00 | 10 +- tests/ref/fate/vp9-00-quantizer-01 | 10 +- tests/ref/fate/vp9-00-quantizer-02 | 10 +- tests/ref/fate/vp9-00-quantizer-03 | 10 +- tests/ref/fate/vp9-00-quantizer-04 | 10 +- tests/ref/fate/vp9-00-quantizer-05 | 10 +- tests/ref/fate/vp9-00-quantizer-06 | 10 +- tests/ref/fate/vp9-00-quantizer-07 | 10 +- tests/ref/fate/vp9-00-quantizer-08 | 10 +- tests/ref/fate/vp9-00-quantizer-09 | 10 +- tests/ref/fate/vp9-00-quantizer-10 | 10 +- tests/ref/fate/vp9-00-quantizer-11 | 10 +- tests/ref/fate/vp9-00-quantizer-12 | 10 +- tests/ref/fate/vp9-00-quantizer-13 | 10 +- tests/ref/fate/vp9-00-quantizer-14 | 10 +- tests/ref/fate/vp9-00-quantizer-15 | 10 +- tests/ref/fate/vp9-00-quantizer-16 | 10 +- tests/ref/fate/vp9-00-quantizer-17 | 10 +- tests/ref/fate/vp9-00-quantizer-18 | 10 +- tests/ref/fate/vp9-00-quantizer-19 | 10 +- tests/ref/fate/vp9-00-quantizer-20 | 10 +- tests/ref/fate/vp9-00-quantizer-21 | 10 +- tests/ref/fate/vp9-00-quantizer-22 | 10 +- tests/ref/fate/vp9-00-quantizer-23 | 10 +- tests/ref/fate/vp9-00-quantizer-24 | 10 +- tests/ref/fate/vp9-00-quantizer-25 | 10 +- tests/ref/fate/vp9-00-quantizer-26 | 10 +- tests/ref/fate/vp9-00-quantizer-27 | 10 +- tests/ref/fate/vp9-00-quantizer-28 | 10 +- tests/ref/fate/vp9-00-quantizer-29 | 10 +- tests/ref/fate/vp9-00-quantizer-30 | 10 +- tests/ref/fate/vp9-00-quantizer-31 | 10 +- tests/ref/fate/vp9-00-quantizer-32 | 10 +- tests/ref/fate/vp9-00-quantizer-33 | 10 +- tests/ref/fate/vp9-00-quantizer-34 | 10 +- tests/ref/fate/vp9-00-quantizer-35 | 10 +- tests/ref/fate/vp9-00-quantizer-36 | 10 +- tests/ref/fate/vp9-00-quantizer-37 | 10 +- tests/ref/fate/vp9-00-quantizer-38 | 10 +- tests/ref/fate/vp9-00-quantizer-39 | 10 +- tests/ref/fate/vp9-00-quantizer-40 | 10 +- tests/ref/fate/vp9-00-quantizer-41 | 10 +- tests/ref/fate/vp9-00-quantizer-42 | 10 +- tests/ref/fate/vp9-00-quantizer-43 | 10 +- tests/ref/fate/vp9-00-quantizer-44 | 10 +- tests/ref/fate/vp9-00-quantizer-45 | 10 +- tests/ref/fate/vp9-00-quantizer-46 | 10 +- tests/ref/fate/vp9-00-quantizer-47 | 10 +- tests/ref/fate/vp9-00-quantizer-48 | 10 +- tests/ref/fate/vp9-00-quantizer-49 | 10 +- tests/ref/fate/vp9-00-quantizer-50 | 10 +- tests/ref/fate/vp9-00-quantizer-51 | 10 +- tests/ref/fate/vp9-00-quantizer-52 | 10 +- tests/ref/fate/vp9-00-quantizer-53 | 10 +- tests/ref/fate/vp9-00-quantizer-54 | 10 +- tests/ref/fate/vp9-00-quantizer-55 | 10 +- tests/ref/fate/vp9-00-quantizer-56 | 10 +- tests/ref/fate/vp9-00-quantizer-57 | 10 +- tests/ref/fate/vp9-00-quantizer-58 | 10 +- tests/ref/fate/vp9-00-quantizer-59 | 10 +- tests/ref/fate/vp9-00-quantizer-60 | 10 +- tests/ref/fate/vp9-00-quantizer-61 | 10 +- tests/ref/fate/vp9-00-quantizer-62 | 10 +- tests/ref/fate/vp9-00-quantizer-63 | 10 +- tests/ref/fate/vp9-01-sharpness-1 | 26 +- tests/ref/fate/vp9-01-sharpness-2 | 26 +- tests/ref/fate/vp9-01-sharpness-3 | 26 +- tests/ref/fate/vp9-01-sharpness-4 | 26 +- tests/ref/fate/vp9-01-sharpness-5 | 26 +- tests/ref/fate/vp9-01-sharpness-6 | 26 +- tests/ref/fate/vp9-01-sharpness-7 | 26 +- tests/ref/fate/vp9-02-size-08x08 | 26 +- tests/ref/fate/vp9-02-size-08x10 | 26 +- tests/ref/fate/vp9-02-size-08x16 | 26 +- tests/ref/fate/vp9-02-size-08x18 | 26 +- tests/ref/fate/vp9-02-size-08x32 | 26 +- tests/ref/fate/vp9-02-size-08x34 | 26 +- tests/ref/fate/vp9-02-size-08x64 | 26 +- tests/ref/fate/vp9-02-size-08x66 | 26 +- tests/ref/fate/vp9-02-size-10x08 | 26 +- tests/ref/fate/vp9-02-size-10x10 | 26 +- tests/ref/fate/vp9-02-size-10x16 | 26 +- tests/ref/fate/vp9-02-size-10x18 | 26 +- tests/ref/fate/vp9-02-size-10x32 | 26 +- tests/ref/fate/vp9-02-size-10x34 | 26 +- tests/ref/fate/vp9-02-size-10x64 | 26 +- tests/ref/fate/vp9-02-size-10x66 | 26 +- tests/ref/fate/vp9-02-size-16x08 | 26 +- tests/ref/fate/vp9-02-size-16x10 | 26 +- tests/ref/fate/vp9-02-size-16x16 | 26 +- tests/ref/fate/vp9-02-size-16x18 | 26 +- tests/ref/fate/vp9-02-size-16x32 | 26 +- tests/ref/fate/vp9-02-size-16x34 | 26 +- tests/ref/fate/vp9-02-size-16x64 | 26 +- tests/ref/fate/vp9-02-size-16x66 | 26 +- tests/ref/fate/vp9-02-size-18x08 | 26 +- tests/ref/fate/vp9-02-size-18x10 | 26 +- tests/ref/fate/vp9-02-size-18x16 | 26 +- tests/ref/fate/vp9-02-size-18x18 | 26 +- tests/ref/fate/vp9-02-size-18x32 | 26 +- tests/ref/fate/vp9-02-size-18x34 | 26 +- tests/ref/fate/vp9-02-size-18x64 | 26 +- tests/ref/fate/vp9-02-size-18x66 | 26 +- tests/ref/fate/vp9-02-size-32x08 | 26 +- tests/ref/fate/vp9-02-size-32x10 | 26 +- tests/ref/fate/vp9-02-size-32x16 | 26 +- tests/ref/fate/vp9-02-size-32x18 | 26 +- tests/ref/fate/vp9-02-size-32x32 | 26 +- tests/ref/fate/vp9-02-size-32x34 | 26 +- tests/ref/fate/vp9-02-size-32x64 | 26 +- tests/ref/fate/vp9-02-size-32x66 | 26 +- tests/ref/fate/vp9-02-size-34x08 | 26 +- tests/ref/fate/vp9-02-size-34x10 | 26 +- tests/ref/fate/vp9-02-size-34x16 | 26 +- tests/ref/fate/vp9-02-size-34x18 | 26 +- tests/ref/fate/vp9-02-size-34x32 | 26 +- tests/ref/fate/vp9-02-size-34x34 | 26 +- tests/ref/fate/vp9-02-size-34x64 | 26 +- tests/ref/fate/vp9-02-size-34x66 | 26 +- tests/ref/fate/vp9-02-size-64x08 | 26 +- tests/ref/fate/vp9-02-size-64x10 | 26 +- tests/ref/fate/vp9-02-size-64x16 | 26 +- tests/ref/fate/vp9-02-size-64x18 | 26 +- tests/ref/fate/vp9-02-size-64x32 | 26 +- tests/ref/fate/vp9-02-size-64x34 | 26 +- tests/ref/fate/vp9-02-size-64x64 | 26 +- tests/ref/fate/vp9-02-size-64x66 | 26 +- tests/ref/fate/vp9-02-size-66x08 | 26 +- tests/ref/fate/vp9-02-size-66x10 | 26 +- tests/ref/fate/vp9-02-size-66x16 | 26 +- tests/ref/fate/vp9-02-size-66x18 | 26 +- tests/ref/fate/vp9-02-size-66x32 | 26 +- tests/ref/fate/vp9-02-size-66x34 | 26 +- tests/ref/fate/vp9-02-size-66x64 | 26 +- tests/ref/fate/vp9-02-size-66x66 | 26 +- tests/ref/fate/vp9-03-deltaq | 10 +- tests/ref/fate/vp9-03-size-196x196 | 26 +- tests/ref/fate/vp9-03-size-196x198 | 26 +- tests/ref/fate/vp9-03-size-196x200 | 26 +- tests/ref/fate/vp9-03-size-196x202 | 26 +- tests/ref/fate/vp9-03-size-196x208 | 26 +- tests/ref/fate/vp9-03-size-196x210 | 26 +- tests/ref/fate/vp9-03-size-196x224 | 26 +- tests/ref/fate/vp9-03-size-196x226 | 26 +- tests/ref/fate/vp9-03-size-198x196 | 26 +- tests/ref/fate/vp9-03-size-198x198 | 26 +- tests/ref/fate/vp9-03-size-198x200 | 26 +- tests/ref/fate/vp9-03-size-198x202 | 26 +- tests/ref/fate/vp9-03-size-198x208 | 26 +- tests/ref/fate/vp9-03-size-198x210 | 26 +- tests/ref/fate/vp9-03-size-198x224 | 26 +- tests/ref/fate/vp9-03-size-198x226 | 26 +- tests/ref/fate/vp9-03-size-200x196 | 26 +- tests/ref/fate/vp9-03-size-200x198 | 26 +- tests/ref/fate/vp9-03-size-200x200 | 26 +- tests/ref/fate/vp9-03-size-200x202 | 26 +- tests/ref/fate/vp9-03-size-200x208 | 26 +- tests/ref/fate/vp9-03-size-200x210 | 26 +- tests/ref/fate/vp9-03-size-200x224 | 26 +- tests/ref/fate/vp9-03-size-200x226 | 26 +- tests/ref/fate/vp9-03-size-202x196 | 26 +- tests/ref/fate/vp9-03-size-202x198 | 26 +- tests/ref/fate/vp9-03-size-202x200 | 26 +- tests/ref/fate/vp9-03-size-202x202 | 26 +- tests/ref/fate/vp9-03-size-202x208 | 26 +- tests/ref/fate/vp9-03-size-202x210 | 26 +- tests/ref/fate/vp9-03-size-202x224 | 26 +- tests/ref/fate/vp9-03-size-202x226 | 26 +- tests/ref/fate/vp9-03-size-208x196 | 26 +- tests/ref/fate/vp9-03-size-208x198 | 26 +- tests/ref/fate/vp9-03-size-208x200 | 26 +- tests/ref/fate/vp9-03-size-208x202 | 26 +- tests/ref/fate/vp9-03-size-208x208 | 26 +- tests/ref/fate/vp9-03-size-208x210 | 26 +- tests/ref/fate/vp9-03-size-208x224 | 26 +- tests/ref/fate/vp9-03-size-208x226 | 26 +- tests/ref/fate/vp9-03-size-210x196 | 26 +- tests/ref/fate/vp9-03-size-210x198 | 26 +- tests/ref/fate/vp9-03-size-210x200 | 26 +- tests/ref/fate/vp9-03-size-210x202 | 26 +- tests/ref/fate/vp9-03-size-210x208 | 26 +- tests/ref/fate/vp9-03-size-210x210 | 26 +- tests/ref/fate/vp9-03-size-210x224 | 26 +- tests/ref/fate/vp9-03-size-210x226 | 26 +- tests/ref/fate/vp9-03-size-224x196 | 26 +- tests/ref/fate/vp9-03-size-224x198 | 26 +- tests/ref/fate/vp9-03-size-224x200 | 26 +- tests/ref/fate/vp9-03-size-224x202 | 26 +- tests/ref/fate/vp9-03-size-224x208 | 26 +- tests/ref/fate/vp9-03-size-224x210 | 26 +- tests/ref/fate/vp9-03-size-224x224 | 26 +- tests/ref/fate/vp9-03-size-224x226 | 26 +- tests/ref/fate/vp9-03-size-226x196 | 26 +- tests/ref/fate/vp9-03-size-226x198 | 26 +- tests/ref/fate/vp9-03-size-226x200 | 26 +- tests/ref/fate/vp9-03-size-226x202 | 26 +- tests/ref/fate/vp9-03-size-226x208 | 26 +- tests/ref/fate/vp9-03-size-226x210 | 26 +- tests/ref/fate/vp9-03-size-226x224 | 26 +- tests/ref/fate/vp9-03-size-226x226 | 26 +- tests/ref/fate/vp9-2pass-akiyo | 106 +- tests/ref/fate/vp9-parallelmode-akiyo | 30 - tests/ref/fate/vp9-segmentation-akiyo | 51 + tests/ref/fate/vp9-segmentation-aq-akiyo | 30 - tests/ref/fate/vp9-segmentation-sf-akiyo | 30 - tests/ref/fate/vp9-tiling-pedestrian | 4 - tests/ref/fate/vqa-cc | 68 +- tests/ref/fate/wmv8-drm | 260 +- tests/ref/fate/wmv8-drm-nodec | 256 +- tests/ref/fate/wmv8-x8intra | 474 - tests/ref/fate/wtv-demux | 86 +- tests/ref/fate/xface | 2 - tests/ref/fate/xmv-demux | 176 +- tests/ref/fate/yop | 12 +- tests/ref/fate/zmbv-15bit | 318 +- tests/ref/fate/zmbv-16bit | 238 +- tests/ref/fate/zmbv-8bit | 3 +- tests/ref/lavf-fate/latm | 3 - tests/ref/lavf-fate/mp3 | 3 - tests/ref/lavf-fate/ogg_vp3 | 3 - tests/ref/lavf/aiff | 4 +- tests/ref/lavf/asf | 4 +- tests/ref/lavf/ast | 3 - tests/ref/lavf/au | 4 +- tests/ref/lavf/avi | 6 +- tests/ref/lavf/bmp | 2 +- tests/ref/lavf/caf | 3 - tests/ref/lavf/dpx | 19 +- tests/ref/lavf/dv_fmt | 8 +- tests/ref/lavf/ffm | 4 +- tests/ref/lavf/flm | 3 - tests/ref/lavf/flv_fmt | 6 +- tests/ref/lavf/gif | 6 +- tests/ref/lavf/gxf | 12 +- tests/ref/lavf/ircam | 3 - tests/ref/lavf/ismv | 9 - tests/ref/lavf/jpg | 2 +- tests/ref/lavf/mkv | 9 +- tests/ref/lavf/mmf | 4 +- tests/ref/lavf/mov | 15 +- tests/ref/lavf/mpg | 10 +- tests/ref/lavf/mxf | 12 +- tests/ref/lavf/mxf_d10 | 4 +- tests/ref/lavf/nut | 6 +- tests/ref/lavf/ogg | 4 +- tests/ref/lavf/pam | 17 +- tests/ref/lavf/pcx | 4 +- tests/ref/lavf/pgm | 4 +- tests/ref/lavf/pgmpipe | 4 +- tests/ref/lavf/pixfmt | 16 +- tests/ref/lavf/png | 12 +- tests/ref/lavf/ppm | 2 +- tests/ref/lavf/rm | 4 +- tests/ref/lavf/sgi | 2 +- tests/ref/lavf/smjpeg | 3 - tests/ref/lavf/sunrast | 2 +- tests/ref/lavf/swf | 6 +- tests/ref/lavf/tga | 2 +- tests/ref/lavf/tiff | 2 +- tests/ref/lavf/ts | 6 +- tests/ref/lavf/voc | 2 +- tests/ref/lavf/voc_s16 | 4 +- tests/ref/lavf/w64 | 3 - tests/ref/lavf/wav | 4 +- tests/ref/lavf/wtv | 3 - tests/ref/lavf/xbm | 3 - tests/ref/lavf/xwd | 23 +- tests/ref/seek/acodec-flac | 46 +- tests/ref/seek/acodec-mp2 | 8 +- tests/ref/seek/acodec-pcm-f32be | 54 +- tests/ref/seek/acodec-pcm-f64be | 54 +- tests/ref/seek/lavf-aiff | 30 +- tests/ref/seek/lavf-asf | 54 +- tests/ref/seek/lavf-au | 30 +- tests/ref/seek/lavf-avi | 36 +- tests/ref/seek/lavf-bmp | 9 +- tests/ref/seek/lavf-dv_fmt | 54 +- tests/ref/seek/lavf-ffm | 26 +- tests/ref/seek/lavf-flv_fmt | 36 +- tests/ref/seek/lavf-gif | 67 +- tests/ref/seek/lavf-gxf | 36 +- tests/ref/seek/lavf-jpg | 9 +- tests/ref/seek/lavf-mkv | 59 +- tests/ref/seek/lavf-mmf | 53 +- tests/ref/seek/lavf-mov | 60 +- tests/ref/seek/lavf-mpg | 54 +- tests/ref/seek/lavf-mxf | 26 +- tests/ref/seek/lavf-mxf_d10 | 2 +- tests/ref/seek/lavf-nut | 86 +- tests/ref/seek/lavf-ogg | 63 +- tests/ref/seek/lavf-pcx | 9 +- tests/ref/seek/lavf-pgm | 9 +- tests/ref/seek/lavf-ppm | 9 +- tests/ref/seek/lavf-rm | 54 +- tests/ref/seek/lavf-sgi | 9 +- tests/ref/seek/lavf-tga | 9 +- tests/ref/seek/lavf-tiff | 9 +- tests/ref/seek/lavf-ts | 42 +- tests/ref/seek/lavf-voc | 24 +- tests/ref/seek/lavf-wav | 30 +- tests/ref/seek/lavf-wtv | 48 - tests/ref/seek/vsynth2-dnxhd-1080i | 24 +- tests/ref/seek/vsynth2-dnxhd-720p | 24 +- tests/ref/seek/vsynth2-dnxhd-720p-rd | 24 +- tests/ref/seek/vsynth2-dv | 54 +- tests/ref/seek/vsynth2-dv-411 | 54 +- tests/ref/seek/vsynth2-dv-50 | 54 +- tests/ref/seek/vsynth2-ffv1 | 40 +- tests/ref/seek/vsynth2-flv | 8 +- tests/ref/seek/vsynth2-h261 | 28 +- tests/ref/seek/vsynth2-h263 | 8 +- tests/ref/seek/vsynth2-h263p | 28 +- tests/ref/seek/vsynth2-ljpeg | 40 +- tests/ref/seek/vsynth2-mjpeg | 30 +- tests/ref/seek/vsynth2-mpeg1 | 46 +- tests/ref/seek/vsynth2-mpeg1b | 36 +- tests/ref/seek/vsynth2-mpeg2-422 | 48 +- tests/ref/seek/vsynth2-mpeg2-idct-int | 24 +- tests/ref/seek/vsynth2-mpeg2-ilace | 40 +- tests/ref/seek/vsynth2-mpeg2-ivlc-qprd | 26 +- tests/ref/seek/vsynth2-mpeg2-thread | 48 +- tests/ref/seek/vsynth2-mpeg2-thread-ivlc | 48 +- tests/ref/seek/vsynth2-mpeg4 | 32 +- tests/ref/seek/vsynth2-mpeg4-adap | 16 +- tests/ref/seek/vsynth2-mpeg4-error | 40 +- tests/ref/seek/vsynth2-mpeg4-nr | 28 +- tests/ref/seek/vsynth2-mpeg4-qpel | 40 +- tests/ref/seek/vsynth2-mpeg4-qprd | 16 +- tests/ref/seek/vsynth2-mpeg4-rc | 28 +- tests/ref/seek/vsynth2-mpeg4-thread | 24 +- tests/ref/seek/vsynth2-msmpeg4 | 8 +- tests/ref/seek/vsynth2-msmpeg4v2 | 8 +- tests/ref/seek/vsynth2-rv10 | 17 +- tests/ref/seek/vsynth2-rv20 | 14 +- tests/ref/seek/vsynth2-snow | 46 - tests/ref/seek/vsynth2-snow-ll | 46 - tests/ref/seek/vsynth2-svq1 | 24 +- tests/ref/seek/vsynth2-wmv1 | 8 +- tests/ref/seek/vsynth2-wmv2 | 16 +- tests/ref/vsynth/vsynth1-amv | 4 - tests/ref/vsynth/vsynth1-avui | 4 - tests/ref/vsynth/vsynth1-cljr | 6 +- tests/ref/vsynth/vsynth1-dnxhd-1080i | 6 +- tests/ref/vsynth/vsynth1-dnxhd-720p | 6 +- tests/ref/vsynth/vsynth1-dnxhd-720p-10bit | 4 +- tests/ref/vsynth/vsynth1-dnxhd-720p-rd | 4 +- tests/ref/vsynth/vsynth1-dnxhd_1080i | 4 - tests/ref/vsynth/vsynth1-dv | 2 +- tests/ref/vsynth/vsynth1-dv-411 | 2 +- tests/ref/vsynth/vsynth1-dv-50 | 2 +- tests/ref/vsynth/vsynth1-dv_411 | 4 - tests/ref/vsynth/vsynth1-ffv1 | 4 +- tests/ref/vsynth/vsynth1-ffv1.0 | 4 - tests/ref/vsynth/vsynth1-ffvhuff | 2 +- tests/ref/vsynth/vsynth1-ffvhuff444 | 4 - tests/ref/vsynth/vsynth1-flashsv | 4 +- tests/ref/vsynth/vsynth1-flashsv2 | 4 - tests/ref/vsynth/vsynth1-flv | 6 +- tests/ref/vsynth/vsynth1-h261 | 6 +- tests/ref/vsynth/vsynth1-h261-trellis | 4 - tests/ref/vsynth/vsynth1-h263 | 4 +- tests/ref/vsynth/vsynth1-h263-obmc | 6 +- tests/ref/vsynth/vsynth1-h263p | 6 +- tests/ref/vsynth/vsynth1-huffyuv | 2 +- tests/ref/vsynth/vsynth1-jpeg2000 | 4 - tests/ref/vsynth/vsynth1-jpeg2000-97 | 4 - tests/ref/vsynth/vsynth1-jpegls | 4 +- tests/ref/vsynth/vsynth1-ljpeg | 4 +- tests/ref/vsynth/vsynth1-mjpeg | 6 +- tests/ref/vsynth/vsynth1-mjpeg-422 | 4 - tests/ref/vsynth/vsynth1-mjpeg-444 | 4 - tests/ref/vsynth/vsynth1-mpeg1 | 8 +- tests/ref/vsynth/vsynth1-mpeg1b | 6 +- tests/ref/vsynth/vsynth1-mpeg2 | 6 +- tests/ref/vsynth/vsynth1-mpeg2-422 | 8 +- tests/ref/vsynth/vsynth1-mpeg2-ilace | 6 +- tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd | 8 +- tests/ref/vsynth/vsynth1-mpeg2-thread | 6 +- tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc | 6 +- tests/ref/vsynth/vsynth1-mpeg4 | 6 +- tests/ref/vsynth/vsynth1-mpeg4-adap | 6 +- tests/ref/vsynth/vsynth1-mpeg4-adv | 4 +- tests/ref/vsynth/vsynth1-mpeg4-error | 8 +- tests/ref/vsynth/vsynth1-mpeg4-nr | 8 +- tests/ref/vsynth/vsynth1-mpeg4-qpel | 8 +- tests/ref/vsynth/vsynth1-mpeg4-qprd | 6 +- tests/ref/vsynth/vsynth1-mpeg4-rc | 6 +- tests/ref/vsynth/vsynth1-mpeg4-thread | 6 +- tests/ref/vsynth/vsynth1-mpng | 4 - tests/ref/vsynth/vsynth1-msmpeg4 | 6 +- tests/ref/vsynth/vsynth1-msmpeg4v2 | 6 +- tests/ref/vsynth/vsynth1-msvideo1 | 4 - tests/ref/vsynth/vsynth1-prores | 8 +- tests/ref/vsynth/vsynth1-prores_ks | 4 - tests/ref/vsynth/vsynth1-qtrle | 8 +- tests/ref/vsynth/vsynth1-qtrlegray | 4 - tests/ref/vsynth/vsynth1-r210 | 4 - tests/ref/vsynth/vsynth1-rgb | 4 +- tests/ref/vsynth/vsynth1-rv10 | 6 +- tests/ref/vsynth/vsynth1-rv20 | 6 +- tests/ref/vsynth/vsynth1-snow | 4 - tests/ref/vsynth/vsynth1-snow-hpel | 4 - tests/ref/vsynth/vsynth1-snow-ll | 4 - tests/ref/vsynth/vsynth1-svq1 | 4 +- tests/ref/vsynth/vsynth1-v308 | 4 - tests/ref/vsynth/vsynth1-v408 | 4 - tests/ref/vsynth/vsynth1-wmv1 | 6 +- tests/ref/vsynth/vsynth1-wmv2 | 6 +- tests/ref/vsynth/vsynth1-y41p | 4 - tests/ref/vsynth/vsynth1-yuv | 2 +- tests/ref/vsynth/vsynth1-yuv4 | 4 - tests/ref/vsynth/vsynth1-zlib | 4 - tests/ref/vsynth/vsynth1-zmbv | 4 - tests/ref/vsynth/vsynth2-amv | 4 - tests/ref/vsynth/vsynth2-avui | 4 - tests/ref/vsynth/vsynth2-cljr | 6 +- tests/ref/vsynth/vsynth2-dnxhd-1080i | 6 +- tests/ref/vsynth/vsynth2-dnxhd-720p | 6 +- tests/ref/vsynth/vsynth2-dnxhd-720p-10bit | 6 +- tests/ref/vsynth/vsynth2-dnxhd-720p-rd | 4 +- tests/ref/vsynth/vsynth2-dnxhd_1080i | 4 - tests/ref/vsynth/vsynth2-dv | 2 +- tests/ref/vsynth/vsynth2-dv-411 | 2 +- tests/ref/vsynth/vsynth2-dv-50 | 2 +- tests/ref/vsynth/vsynth2-dv_411 | 4 - tests/ref/vsynth/vsynth2-ffv1 | 4 +- tests/ref/vsynth/vsynth2-ffv1.0 | 4 - tests/ref/vsynth/vsynth2-ffvhuff | 2 +- tests/ref/vsynth/vsynth2-ffvhuff444 | 4 - tests/ref/vsynth/vsynth2-flashsv | 4 +- tests/ref/vsynth/vsynth2-flashsv2 | 4 - tests/ref/vsynth/vsynth2-flv | 8 +- tests/ref/vsynth/vsynth2-h261 | 6 +- tests/ref/vsynth/vsynth2-h261-trellis | 4 - tests/ref/vsynth/vsynth2-h263 | 6 +- tests/ref/vsynth/vsynth2-h263-obmc | 6 +- tests/ref/vsynth/vsynth2-h263p | 6 +- tests/ref/vsynth/vsynth2-huffyuv | 2 +- tests/ref/vsynth/vsynth2-jpeg2000 | 4 - tests/ref/vsynth/vsynth2-jpeg2000-97 | 4 - tests/ref/vsynth/vsynth2-jpegls | 4 +- tests/ref/vsynth/vsynth2-ljpeg | 4 +- tests/ref/vsynth/vsynth2-mjpeg | 6 +- tests/ref/vsynth/vsynth2-mjpeg-422 | 4 - tests/ref/vsynth/vsynth2-mjpeg-444 | 4 - tests/ref/vsynth/vsynth2-mpeg1 | 6 +- tests/ref/vsynth/vsynth2-mpeg1b | 6 +- tests/ref/vsynth/vsynth2-mpeg2 | 6 +- tests/ref/vsynth/vsynth2-mpeg2-422 | 8 +- tests/ref/vsynth/vsynth2-mpeg2-ilace | 6 +- tests/ref/vsynth/vsynth2-mpeg2-thread | 6 +- tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc | 6 +- tests/ref/vsynth/vsynth2-mpeg4 | 6 +- tests/ref/vsynth/vsynth2-mpeg4-adap | 6 +- tests/ref/vsynth/vsynth2-mpeg4-error | 8 +- tests/ref/vsynth/vsynth2-mpeg4-nr | 6 +- tests/ref/vsynth/vsynth2-mpeg4-qpel | 6 +- tests/ref/vsynth/vsynth2-mpeg4-qprd | 6 +- tests/ref/vsynth/vsynth2-mpeg4-rc | 6 +- tests/ref/vsynth/vsynth2-mpeg4-thread | 6 +- tests/ref/vsynth/vsynth2-mpng | 4 - tests/ref/vsynth/vsynth2-msmpeg4 | 8 +- tests/ref/vsynth/vsynth2-msmpeg4v2 | 8 +- tests/ref/vsynth/vsynth2-msvideo1 | 4 - tests/ref/vsynth/vsynth2-prores | 8 +- tests/ref/vsynth/vsynth2-prores_ks | 4 - tests/ref/vsynth/vsynth2-qtrle | 8 +- tests/ref/vsynth/vsynth2-qtrlegray | 4 - tests/ref/vsynth/vsynth2-r210 | 4 - tests/ref/vsynth/vsynth2-rgb | 4 +- tests/ref/vsynth/vsynth2-rv10 | 6 +- tests/ref/vsynth/vsynth2-rv20 | 6 +- tests/ref/vsynth/vsynth2-snow | 4 - tests/ref/vsynth/vsynth2-snow-hpel | 4 - tests/ref/vsynth/vsynth2-snow-ll | 4 - tests/ref/vsynth/vsynth2-svq1 | 4 +- tests/ref/vsynth/vsynth2-v308 | 4 - tests/ref/vsynth/vsynth2-v408 | 4 - tests/ref/vsynth/vsynth2-wmv1 | 6 +- tests/ref/vsynth/vsynth2-wmv2 | 6 +- tests/ref/vsynth/vsynth2-y41p | 4 - tests/ref/vsynth/vsynth2-yuv | 2 +- tests/ref/vsynth/vsynth2-yuv4 | 4 - tests/ref/vsynth/vsynth2-zlib | 4 - tests/ref/vsynth/vsynth2-zmbv | 4 - tests/ref/vsynth1/cljr | 4 - tests/ref/vsynth1/yuv | 4 - tests/ref/vsynth2/cljr | 4 - tests/ref/vsynth2/huffyuv | 4 - tests/ref/vsynth2/yuv | 4 - tests/regression-funcs.sh | 26 +- tests/rotozoom.c | 8 +- tests/test.ffmeta | 9 - tests/tiny_psnr.c | 171 +- tests/tiny_ssim.c | 216 - tests/utils.c | 10 +- tests/videogen.c | 8 +- tools/aviocat.c | 8 +- tools/bisect-create | 46 - tools/bookmarklets.html | 55 - tools/build_libstagefright | 58 - tools/clean-diff | 11 - tools/crypto_bench.c | 358 - tools/cws2fws.c | 14 +- tools/enum_options.c | 143 - tools/ffescape.c | 180 - tools/ffeval.c | 139 - tools/ffhash.c | 149 - tools/fourcc2pixfmt.c | 123 - tools/gen-rc | 121 - tools/graph2dot.c | 33 +- tools/ismindex.c | 22 +- tools/make_chlayout_test | 114 - tools/missing_codec_desc | 37 - tools/normalize.py | 33 - tools/patcheck | 12 +- tools/pktdumper.c | 8 +- tools/plotframes | 164 - tools/probetest.c | 70 +- tools/qt-faststart.c | 63 +- tools/seek_print.c | 105 - tools/trasher.c | 13 +- tools/unwrap-diff | 2 - tools/yuvcmp.c | 182 - tools/zmqsend.c | 167 - tools/zmqshell.py | 26 - version.sh | 42 +- 3473 files changed, 65414 insertions(+), 300817 deletions(-) delete mode 100644 MAINTAINERS rename ffmpeg.c => avconv.c (50%) rename ffmpeg.h => avconv.h (73%) rename ffmpeg_filter.c => avconv_filter.c (57%) rename ffmpeg_opt.c => avconv_opt.c (69%) rename ffmpeg_vdpau.c => avconv_vdpau.c (97%) create mode 100644 avplay.c create mode 100644 avprobe.c rename ffserver.c => avserver.c (91%) delete mode 100644 cmdutils_opencl.c delete mode 100644 compat/avisynth/avisynth_c.h delete mode 100644 compat/avisynth/avisynth_c_25.h delete mode 100644 compat/avisynth/avxsynth_c.h delete mode 100644 compat/avisynth/windowsPorts/basicDataTypeConversions.h delete mode 100644 compat/avisynth/windowsPorts/windows2linux.h delete mode 100644 compat/msvcrt/snprintf.h delete mode 100644 compat/os2threads.h delete mode 100644 compat/va_copy.h delete mode 100644 doc/authors.texi rename doc/{ffmpeg.texi => avconv.texi} (57%) create mode 100644 doc/avplay.texi create mode 100644 doc/avprobe.texi rename doc/{ffserver.conf => avserver.conf} (91%) create mode 100644 doc/avserver.texi create mode 100644 doc/avtools-common-opts.texi create mode 100644 doc/avutil.txt delete mode 100644 doc/codecs.texi delete mode 100644 doc/decoders.texi delete mode 100644 doc/default.css delete mode 100644 doc/devices.texi create mode 100644 doc/doxy/doxy_stylesheet.css create mode 100644 doc/doxy/footer.html create mode 100644 doc/doxy/header.html delete mode 100644 doc/errno.txt create mode 100644 doc/eval.texi delete mode 100644 doc/examples/Makefile delete mode 100644 doc/examples/README delete mode 100644 doc/examples/demuxing_decoding.c delete mode 100644 doc/examples/filtering_audio.c delete mode 100644 doc/examples/filtering_video.c delete mode 100644 doc/examples/muxing.c create mode 100644 doc/examples/output.c delete mode 100644 doc/examples/resampling_audio.c delete mode 100644 doc/examples/scaling_video.c delete mode 100644 doc/fate_config.sh.template delete mode 100644 doc/ffmpeg-bitstream-filters.texi delete mode 100644 doc/ffmpeg-codecs.texi delete mode 100644 doc/ffmpeg-devices.texi delete mode 100644 doc/ffmpeg-filters.texi delete mode 100644 doc/ffmpeg-formats.texi delete mode 100644 doc/ffmpeg-protocols.texi delete mode 100644 doc/ffmpeg-resampler.texi delete mode 100644 doc/ffmpeg-scaler.texi delete mode 100644 doc/ffmpeg-utils.texi delete mode 100644 doc/ffmpeg.txt delete mode 100644 doc/ffplay.texi delete mode 100644 doc/ffprobe.texi delete mode 100644 doc/ffprobe.xsd delete mode 100644 doc/ffserver.texi delete mode 100644 doc/fftools-common-opts.texi delete mode 100644 doc/filter_design.txt delete mode 100644 doc/formats.texi create mode 100644 doc/git-howto.txt delete mode 100644 doc/issue_tracker.txt delete mode 100644 doc/libavcodec.texi delete mode 100644 doc/libavdevice.texi delete mode 100644 doc/libavformat.texi delete mode 100644 doc/libavutil.texi delete mode 100644 doc/libswresample.texi delete mode 100644 doc/libswscale.texi delete mode 100644 doc/mips.txt delete mode 100644 doc/resampler.texi delete mode 100644 doc/scaler.texi delete mode 100644 doc/snow.txt create mode 100644 doc/soc.txt delete mode 100644 doc/swresample.txt delete mode 100644 doc/texidep.pl delete mode 100644 doc/utils.texi create mode 100644 doc/viterbi.txt delete mode 100644 ffplay.c delete mode 100644 ffprobe.c delete mode 100644 libavcodec/012v.c create mode 100644 libavcodec/a64enc.h delete mode 100644 libavcodec/alpha/Makefile delete mode 100644 libavcodec/alpha/asm.h delete mode 100644 libavcodec/alpha/dsputil_alpha.c delete mode 100644 libavcodec/alpha/dsputil_alpha.h delete mode 100644 libavcodec/alpha/dsputil_alpha_asm.S delete mode 100644 libavcodec/alpha/hpeldsp_alpha.c delete mode 100644 libavcodec/alpha/hpeldsp_alpha.h delete mode 100644 libavcodec/alpha/hpeldsp_alpha_asm.S delete mode 100644 libavcodec/alpha/motion_est_alpha.c delete mode 100644 libavcodec/alpha/motion_est_mvi_asm.S delete mode 100644 libavcodec/alpha/mpegvideo_alpha.c delete mode 100644 libavcodec/alpha/regdef.h delete mode 100644 libavcodec/alpha/simple_idct_alpha.c rename doc/examples/decoding_encoding.c => libavcodec/api-example.c (60%) delete mode 100644 libavcodec/ass_split.c delete mode 100644 libavcodec/ass_split.h delete mode 100644 libavcodec/atrac3plus.c delete mode 100644 libavcodec/atrac3plus.h delete mode 100644 libavcodec/atrac3plus_data.h delete mode 100644 libavcodec/atrac3plusdec.c delete mode 100644 libavcodec/atrac3plusdsp.c delete mode 100644 libavcodec/audioconvert.c delete mode 100644 libavcodec/audioconvert.h delete mode 100644 libavcodec/avcodecres.rc delete mode 100644 libavcodec/avrndec.c delete mode 100644 libavcodec/avuidec.c delete mode 100644 libavcodec/avuienc.c delete mode 100644 libavcodec/bintext.c delete mode 100644 libavcodec/bintext.h delete mode 100644 libavcodec/bmp_parser.c delete mode 100644 libavcodec/brender_pix.c delete mode 100644 libavcodec/cpia.c delete mode 100644 libavcodec/crystalhd.c delete mode 100644 libavcodec/dcaenc.c delete mode 100644 libavcodec/dcaenc.h delete mode 100644 libavcodec/dirac_arith.c delete mode 100644 libavcodec/dirac_arith.h delete mode 100644 libavcodec/dirac_dwt.c delete mode 100644 libavcodec/dirac_dwt.h delete mode 100644 libavcodec/diracdec.c delete mode 100644 libavcodec/diracdsp.c delete mode 100644 libavcodec/diracdsp.h delete mode 100644 libavcodec/dpx_parser.c delete mode 100644 libavcodec/dvd_nav_parser.c delete mode 100644 libavcodec/evrcdata.h delete mode 100644 libavcodec/evrcdec.c delete mode 100644 libavcodec/exif.c delete mode 100644 libavcodec/exif.h delete mode 100644 libavcodec/exr.c delete mode 100644 libavcodec/fft-fixed32-test.c delete mode 100644 libavcodec/fft_fixed_32.c delete mode 100644 libavcodec/fft_init_table.c delete mode 100644 libavcodec/fft_table.h delete mode 100644 libavcodec/ffwavesynth.c delete mode 100644 libavcodec/flashsv2enc.c delete mode 100644 libavcodec/frame_thread_encoder.c delete mode 100644 libavcodec/frame_thread_encoder.h delete mode 100644 libavcodec/g729.h delete mode 100644 libavcodec/g729data.h delete mode 100644 libavcodec/g729dec.c delete mode 100644 libavcodec/g729postfilter.c delete mode 100644 libavcodec/g729postfilter.h delete mode 100644 libavcodec/gif.h delete mode 100644 libavcodec/hevcpred.h delete mode 100644 libavcodec/j2kenc.c delete mode 100644 libavcodec/jacosub.h delete mode 100644 libavcodec/jacosubdec.c delete mode 100644 libavcodec/libaacplus.c delete mode 100644 libavcodec/libcelt_dec.c delete mode 100644 libavcodec/libshine.c delete mode 100644 libavcodec/libstagefright.cpp delete mode 100644 libavcodec/libtwolame.c delete mode 100644 libavcodec/libutvideo.h delete mode 100644 libavcodec/libutvideodec.cpp delete mode 100644 libavcodec/libutvideoenc.cpp rename libavcodec/{libvorbisenc.c => libvorbis.c} (77%) delete mode 100644 libavcodec/libvorbisdec.c delete mode 100644 libavcodec/libzvbi-teletextdec.c delete mode 100644 libavcodec/mdct_fixed_32.c delete mode 100644 libavcodec/microdvddec.c delete mode 100644 libavcodec/mips/Makefile delete mode 100644 libavcodec/mips/aaccoder_mips.c delete mode 100644 libavcodec/mips/aacdec_mips.c delete mode 100644 libavcodec/mips/aacdec_mips.h delete mode 100644 libavcodec/mips/aacpsdsp_mips.c delete mode 100644 libavcodec/mips/aacpsy_mips.h delete mode 100644 libavcodec/mips/aacsbr_mips.c delete mode 100644 libavcodec/mips/aacsbr_mips.h delete mode 100644 libavcodec/mips/ac3dsp_mips.c delete mode 100644 libavcodec/mips/acelp_filters_mips.c delete mode 100644 libavcodec/mips/acelp_vectors_mips.c delete mode 100644 libavcodec/mips/amrwbdec_mips.c delete mode 100644 libavcodec/mips/amrwbdec_mips.h delete mode 100644 libavcodec/mips/celp_filters_mips.c delete mode 100644 libavcodec/mips/celp_math_mips.c delete mode 100644 libavcodec/mips/compute_antialias_fixed.h delete mode 100644 libavcodec/mips/compute_antialias_float.h delete mode 100644 libavcodec/mips/fft_mips.c delete mode 100644 libavcodec/mips/fmtconvert_mips.c delete mode 100644 libavcodec/mips/iirfilter_mips.c delete mode 100644 libavcodec/mips/lsp_mips.h delete mode 100644 libavcodec/mips/mpegaudiodsp_mips_fixed.c delete mode 100644 libavcodec/mips/mpegaudiodsp_mips_float.c delete mode 100644 libavcodec/mips/sbrdsp_mips.c delete mode 100644 libavcodec/motion-test.c delete mode 100644 libavcodec/movtextdec.c delete mode 100644 libavcodec/movtextenc.c delete mode 100644 libavcodec/mp3_header_decompress_bsf.c rename libavcodec/{mpegaudioenc_template.c => mpegaudioenc.c} (91%) delete mode 100644 libavcodec/mpegaudioenc_fixed.c delete mode 100644 libavcodec/mpegaudioenc_float.c delete mode 100644 libavcodec/mpl2dec.c delete mode 100644 libavcodec/mqcenc.c delete mode 100644 libavcodec/msvideo1enc.c delete mode 100644 libavcodec/mvcdec.c delete mode 100644 libavcodec/old_codec_ids.h delete mode 100644 libavcodec/paf.c delete mode 100644 libavcodec/paf.h rename libavcodec/{proresdec_lgpl.c => proresdec.c} (98%) delete mode 100644 libavcodec/proresdec.h delete mode 100644 libavcodec/proresdec2.c rename libavcodec/{proresenc_kostya.c => proresenc.c} (98%) delete mode 100644 libavcodec/proresenc_anatoliy.c delete mode 100644 libavcodec/r210enc.c delete mode 100644 libavcodec/realtextdec.c delete mode 100644 libavcodec/resample.c delete mode 100644 libavcodec/resample2.c delete mode 100644 libavcodec/s302menc.c delete mode 100644 libavcodec/samidec.c delete mode 100644 libavcodec/sanm.c delete mode 100644 libavcodec/sanm_data.h delete mode 100644 libavcodec/sgirledec.c delete mode 100644 libavcodec/smvjpegdec.c delete mode 100644 libavcodec/snow.c delete mode 100644 libavcodec/snow.h delete mode 100644 libavcodec/snow_dwt.c delete mode 100644 libavcodec/snow_dwt.h delete mode 100644 libavcodec/snowdata.h delete mode 100644 libavcodec/snowdec.c delete mode 100644 libavcodec/snowenc.c delete mode 100644 libavcodec/sonic.c delete mode 100644 libavcodec/srtenc.c delete mode 100644 libavcodec/subviewerdec.c delete mode 100644 libavcodec/targa_y216dec.c delete mode 100644 libavcodec/textdec.c delete mode 100644 libavcodec/tiff_common.c delete mode 100644 libavcodec/tiff_common.h delete mode 100644 libavcodec/tiff_data.c delete mode 100644 libavcodec/tiff_data.h delete mode 100644 libavcodec/ttadata.c delete mode 100644 libavcodec/ttadata.h delete mode 100644 libavcodec/ttaenc.c delete mode 100644 libavcodec/v210dec.h delete mode 100644 libavcodec/v308dec.c delete mode 100644 libavcodec/v308enc.c delete mode 100644 libavcodec/v408dec.c delete mode 100644 libavcodec/v408enc.c delete mode 100644 libavcodec/vaapi_mpeg.c delete mode 100644 libavcodec/vda_h264_dec.c delete mode 100644 libavcodec/vima.c delete mode 100644 libavcodec/vp9_parser.c create mode 100644 libavcodec/vp9block.c create mode 100644 libavcodec/vp9data.c delete mode 100644 libavcodec/vp9dsp.h create mode 100644 libavcodec/vp9mvs.c create mode 100644 libavcodec/vp9prob.c delete mode 100644 libavcodec/wavpack.h delete mode 100644 libavcodec/wavpackenc.c delete mode 100644 libavcodec/wavpackenc.h delete mode 100644 libavcodec/webvttdec.c delete mode 100644 libavcodec/x86/dirac_dwt.c delete mode 100644 libavcodec/x86/dirac_dwt.h delete mode 100644 libavcodec/x86/diracdsp_mmx.c delete mode 100644 libavcodec/x86/diracdsp_mmx.h delete mode 100644 libavcodec/x86/diracdsp_yasm.asm delete mode 100644 libavcodec/x86/dwt_yasm.asm delete mode 100644 libavcodec/x86/snowdsp.c delete mode 100644 libavcodec/x86/v210-init.c delete mode 100644 libavcodec/x86/v210.asm rename libavcodec/x86/{vp9mc.asm => vp9dsp.asm} (68%) delete mode 100644 libavcodec/x86/vp9itxfm.asm delete mode 100644 libavcodec/xbmdec.c delete mode 100644 libavcodec/xface.c delete mode 100644 libavcodec/xface.h delete mode 100644 libavcodec/xfacedec.c delete mode 100644 libavcodec/xfaceenc.c delete mode 100644 libavcodec/y41pdec.c delete mode 100644 libavcodec/y41penc.c delete mode 100644 libavcodec/yuv4dec.c delete mode 100644 libavcodec/yuv4enc.c delete mode 100644 libavdevice/avdeviceres.rc delete mode 100644 libavdevice/caca.c delete mode 100644 libavdevice/dshow.c delete mode 100644 libavdevice/dshow_capture.h delete mode 100644 libavdevice/dshow_common.c delete mode 100644 libavdevice/dshow_enummediatypes.c delete mode 100644 libavdevice/dshow_enumpins.c delete mode 100644 libavdevice/dshow_filter.c delete mode 100644 libavdevice/dshow_pin.c rename libavdevice/{fbdev_dec.c => fbdev.c} (69%) delete mode 100644 libavdevice/fbdev_common.c delete mode 100644 libavdevice/fbdev_common.h delete mode 100644 libavdevice/fbdev_enc.c delete mode 100644 libavdevice/iec61883.c delete mode 100644 libavdevice/lavfi.c delete mode 100644 libavdevice/openal-dec.c rename libavdevice/{pulse_audio_dec.c => pulse.c} (60%) delete mode 100644 libavdevice/pulse_audio_common.c delete mode 100644 libavdevice/pulse_audio_common.h delete mode 100644 libavdevice/pulse_audio_enc.c delete mode 100644 libavdevice/sdl.c delete mode 100644 libavdevice/v4l.c delete mode 100644 libavdevice/v4l2-common.c delete mode 100644 libavdevice/v4l2-common.h delete mode 100644 libavdevice/v4l2enc.c delete mode 100644 libavdevice/xv.c delete mode 100644 libavfilter/aeval.c delete mode 100644 libavfilter/af_aconvert.c delete mode 100644 libavfilter/af_adelay.c delete mode 100644 libavfilter/af_aecho.c delete mode 100644 libavfilter/af_afade.c delete mode 100644 libavfilter/af_amerge.c delete mode 100644 libavfilter/af_apad.c delete mode 100644 libavfilter/af_aphaser.c delete mode 100644 libavfilter/af_aresample.c delete mode 100644 libavfilter/af_asetnsamples.c delete mode 100644 libavfilter/af_asetrate.c delete mode 100644 libavfilter/af_astats.c delete mode 100644 libavfilter/af_astreamsync.c delete mode 100644 libavfilter/af_atempo.c delete mode 100644 libavfilter/af_biquads.c delete mode 100644 libavfilter/af_compand.c delete mode 100644 libavfilter/af_earwax.c delete mode 100644 libavfilter/af_ladspa.c delete mode 100644 libavfilter/af_pan.c delete mode 100644 libavfilter/af_replaygain.c delete mode 100644 libavfilter/af_silencedetect.c delete mode 100644 libavfilter/af_volumedetect.c delete mode 100644 libavfilter/all_channel_layouts.inc delete mode 100644 libavfilter/asrc_abuffer.h delete mode 100644 libavfilter/asrc_flite.c delete mode 100644 libavfilter/asrc_sine.c delete mode 100644 libavfilter/avcodec.c delete mode 100644 libavfilter/avcodec.h delete mode 100644 libavfilter/avf_avectorscope.c delete mode 100644 libavfilter/avf_concat.c delete mode 100644 libavfilter/avf_showspectrum.c delete mode 100644 libavfilter/avf_showwaves.c delete mode 100644 libavfilter/avfilterres.rc delete mode 100644 libavfilter/bbox.c delete mode 100644 libavfilter/bbox.h delete mode 100644 libavfilter/bufferqueue.h delete mode 100644 libavfilter/deshake.h delete mode 100644 libavfilter/deshake_opencl.c delete mode 100644 libavfilter/deshake_opencl.h delete mode 100644 libavfilter/deshake_opencl_kernel.h delete mode 100644 libavfilter/dualinput.c delete mode 100644 libavfilter/dualinput.h delete mode 100644 libavfilter/f_ebur128.c delete mode 100644 libavfilter/f_interleave.c delete mode 100644 libavfilter/f_perms.c delete mode 100644 libavfilter/f_select.c delete mode 100644 libavfilter/f_sendcmd.c delete mode 100644 libavfilter/f_zmq.c delete mode 100644 libavfilter/framesync.c delete mode 100644 libavfilter/framesync.h delete mode 100644 libavfilter/graphdump.c delete mode 100644 libavfilter/lavfutils.c delete mode 100644 libavfilter/lavfutils.h delete mode 100644 libavfilter/libmpcodecs/av_helpers.h delete mode 100644 libavfilter/libmpcodecs/cpudetect.h delete mode 100644 libavfilter/libmpcodecs/img_format.c delete mode 100644 libavfilter/libmpcodecs/img_format.h delete mode 100644 libavfilter/libmpcodecs/libvo/fastmemcpy.h delete mode 100644 libavfilter/libmpcodecs/libvo/video_out.h delete mode 100644 libavfilter/libmpcodecs/mp_image.c delete mode 100644 libavfilter/libmpcodecs/mp_image.h delete mode 100644 libavfilter/libmpcodecs/mp_msg.h delete mode 100644 libavfilter/libmpcodecs/mpc_info.h delete mode 100644 libavfilter/libmpcodecs/vf.h delete mode 100644 libavfilter/libmpcodecs/vf_eq.c delete mode 100644 libavfilter/libmpcodecs/vf_eq2.c delete mode 100644 libavfilter/libmpcodecs/vf_fspp.c delete mode 100644 libavfilter/libmpcodecs/vf_ilpack.c delete mode 100644 libavfilter/libmpcodecs/vf_pp7.c delete mode 100644 libavfilter/libmpcodecs/vf_softpulldown.c delete mode 100644 libavfilter/libmpcodecs/vf_uspp.c delete mode 100644 libavfilter/libmpcodecs/vfcap.h delete mode 100644 libavfilter/lswsutils.c delete mode 100644 libavfilter/lswsutils.h delete mode 100644 libavfilter/opencl_allkernels.c delete mode 100644 libavfilter/opencl_allkernels.h delete mode 100644 libavfilter/src_movie.c delete mode 100644 libavfilter/transform.c delete mode 100644 libavfilter/transform.h delete mode 100644 libavfilter/unsharp.h delete mode 100644 libavfilter/unsharp_opencl.c delete mode 100644 libavfilter/unsharp_opencl.h delete mode 100644 libavfilter/unsharp_opencl_kernel.h delete mode 100644 libavfilter/vf_alphamerge.c delete mode 100644 libavfilter/vf_bbox.c delete mode 100644 libavfilter/vf_blackdetect.c delete mode 100644 libavfilter/vf_blend.c delete mode 100644 libavfilter/vf_colorbalance.c delete mode 100644 libavfilter/vf_colorchannelmixer.c delete mode 100644 libavfilter/vf_colormatrix.c delete mode 100644 libavfilter/vf_curves.c delete mode 100644 libavfilter/vf_dctdnoiz.c delete mode 100644 libavfilter/vf_decimate.c delete mode 100644 libavfilter/vf_deshake.c delete mode 100644 libavfilter/vf_edgedetect.c delete mode 100644 libavfilter/vf_elbg.c delete mode 100644 libavfilter/vf_extractplanes.c delete mode 100644 libavfilter/vf_field.c delete mode 100644 libavfilter/vf_fieldmatch.c delete mode 100644 libavfilter/vf_framestep.c delete mode 100644 libavfilter/vf_geq.c delete mode 100644 libavfilter/vf_histeq.c delete mode 100644 libavfilter/vf_histogram.c delete mode 100644 libavfilter/vf_hue.c delete mode 100644 libavfilter/vf_idet.c delete mode 100644 libavfilter/vf_il.c delete mode 100644 libavfilter/vf_kerndeint.c delete mode 100644 libavfilter/vf_lut3d.c delete mode 100644 libavfilter/vf_mcdeint.c delete mode 100644 libavfilter/vf_mergeplanes.c delete mode 100644 libavfilter/vf_mp.c delete mode 100644 libavfilter/vf_mpdecimate.c delete mode 100644 libavfilter/vf_noise.c delete mode 100644 libavfilter/vf_owdenoise.c delete mode 100644 libavfilter/vf_perspective.c delete mode 100644 libavfilter/vf_phase.c delete mode 100644 libavfilter/vf_pp.c delete mode 100644 libavfilter/vf_psnr.c delete mode 100644 libavfilter/vf_pullup.c delete mode 100644 libavfilter/vf_pullup.h delete mode 100644 libavfilter/vf_removelogo.c delete mode 100644 libavfilter/vf_rotate.c delete mode 100644 libavfilter/vf_sab.c create mode 100644 libavfilter/vf_select.c delete mode 100644 libavfilter/vf_separatefields.c delete mode 100644 libavfilter/vf_setfield.c rename libavfilter/{f_settb.c => vf_settb.c} (59%) delete mode 100644 libavfilter/vf_smartblur.c delete mode 100644 libavfilter/vf_spp.c delete mode 100644 libavfilter/vf_spp.h delete mode 100644 libavfilter/vf_stereo3d.c delete mode 100644 libavfilter/vf_subtitles.c delete mode 100644 libavfilter/vf_super2xsai.c delete mode 100644 libavfilter/vf_swapuv.c delete mode 100644 libavfilter/vf_telecine.c delete mode 100644 libavfilter/vf_thumbnail.c delete mode 100644 libavfilter/vf_tile.c delete mode 100644 libavfilter/vf_tinterlace.c delete mode 100644 libavfilter/vf_vidstabdetect.c delete mode 100644 libavfilter/vf_vidstabtransform.c delete mode 100644 libavfilter/vf_vignette.c delete mode 100644 libavfilter/vf_w3fdif.c delete mode 100644 libavfilter/vidstabutils.c delete mode 100644 libavfilter/vidstabutils.h delete mode 100644 libavfilter/vsrc_cellauto.c create mode 100644 libavfilter/vsrc_color.c delete mode 100644 libavfilter/vsrc_life.c delete mode 100644 libavfilter/vsrc_mandelbrot.c create mode 100644 libavfilter/vsrc_movie.c delete mode 100644 libavfilter/vsrc_mptestsrc.c create mode 100644 libavfilter/vsrc_nullsrc.c delete mode 100644 libavfilter/x86/vf_pullup.asm delete mode 100644 libavfilter/x86/vf_pullup_init.c delete mode 100644 libavfilter/x86/vf_spp.c create mode 100644 libavfilter/x86/vf_yadif_init.c delete mode 100644 libavfilter/x86/yadif-10.asm delete mode 100644 libavfilter/x86/yadif-16.asm delete mode 100644 libavformat/act.c delete mode 100644 libavformat/adp.c delete mode 100644 libavformat/afc.c delete mode 100644 libavformat/aqtitledec.c delete mode 100644 libavformat/ast.c delete mode 100644 libavformat/ast.h delete mode 100644 libavformat/astdec.c delete mode 100644 libavformat/astenc.c delete mode 100644 libavformat/avformatres.rc delete mode 100644 libavformat/avr.c delete mode 100644 libavformat/bintext.c delete mode 100644 libavformat/bit.c delete mode 100644 libavformat/bluray.c delete mode 100644 libavformat/boadec.c delete mode 100644 libavformat/brstm.c delete mode 100644 libavformat/cache.c delete mode 100644 libavformat/cafenc.c delete mode 100644 libavformat/concatdec.c delete mode 100644 libavformat/data_uri.c delete mode 100644 libavformat/dtshddec.c delete mode 100644 libavformat/epafdec.c delete mode 100644 libavformat/frmdec.c delete mode 100644 libavformat/ftp.c delete mode 100644 libavformat/g729dec.c delete mode 100644 libavformat/gifdec.c delete mode 100644 libavformat/icodec.c delete mode 100644 libavformat/icoenc.c delete mode 100644 libavformat/ircam.c delete mode 100644 libavformat/ircam.h delete mode 100644 libavformat/ircamdec.c delete mode 100644 libavformat/ircamenc.c delete mode 100644 libavformat/jacosubdec.c delete mode 100644 libavformat/jacosubenc.c delete mode 100644 libavformat/libgme.c delete mode 100644 libavformat/libmodplug.c delete mode 100644 libavformat/libnut.c delete mode 100644 libavformat/libquvi.c delete mode 100644 libavformat/libssh.c delete mode 100644 libavformat/loasdec.c delete mode 100644 libavformat/lvfdec.c rename doc/examples/metadata.c => libavformat/metadata-example.c (95%) delete mode 100644 libavformat/mgsts.c delete mode 100644 libavformat/microdvddec.c delete mode 100644 libavformat/microdvdenc.c delete mode 100644 libavformat/mkvtimestamp_v2.c delete mode 100644 libavformat/mpl2dec.c delete mode 100644 libavformat/mpsubdec.c delete mode 100644 libavformat/mvdec.c delete mode 100644 libavformat/nistspheredec.c delete mode 100644 libavformat/oggparsevp8.c delete mode 100644 libavformat/paf.c delete mode 100644 libavformat/pjsdec.c delete mode 100644 libavformat/pvfdec.c delete mode 100644 libavformat/realtextdec.c delete mode 100644 libavformat/redspark.c delete mode 100644 libavformat/rsd.c delete mode 100644 libavformat/samidec.c delete mode 100644 libavformat/sbgdec.c delete mode 100644 libavformat/smush.c delete mode 100644 libavformat/srtenc.c delete mode 100644 libavformat/subtitles.c delete mode 100644 libavformat/subtitles.h delete mode 100644 libavformat/subviewer1dec.c delete mode 100644 libavformat/subviewerdec.c delete mode 100644 libavformat/tedcaptionsdec.c delete mode 100644 libavformat/tee.c delete mode 100644 libavformat/vivo.c delete mode 100644 libavformat/vplayerdec.c delete mode 100644 libavformat/w64.c delete mode 100644 libavformat/w64.h delete mode 100644 libavformat/webvttdec.c delete mode 100644 libavformat/webvttenc.c rename libavformat/{wtvdec.c => wtv.c} (80%) delete mode 100644 libavformat/wtv.h delete mode 100644 libavformat/wtv_common.c delete mode 100644 libavformat/wtvenc.c delete mode 100644 libavresample/avresampleres.rc delete mode 100644 libavutil/avutilres.rc delete mode 100644 libavutil/bprint.c delete mode 100644 libavutil/bprint.h delete mode 100644 libavutil/hash.c delete mode 100644 libavutil/hash.h delete mode 100644 libavutil/integer.c delete mode 100644 libavutil/integer.h delete mode 100644 libavutil/intfloat_readwrite.c delete mode 100644 libavutil/intfloat_readwrite.h rename libavutil/{lls1.c => lls.c} (83%) rename libavutil/{lls2.h => lls.h} (64%) delete mode 100644 libavutil/lls1.h delete mode 100644 libavutil/lls2.c delete mode 100644 libavutil/mips/Makefile delete mode 100644 libavutil/mips/float_dsp_mips.c delete mode 100644 libavutil/mips/libm_mips.h delete mode 100644 libavutil/murmur3.c delete mode 100644 libavutil/murmur3.h delete mode 100644 libavutil/opencl.c delete mode 100644 libavutil/opencl.h delete mode 100644 libavutil/opencl_internal.c delete mode 100644 libavutil/opencl_internal.h delete mode 100644 libavutil/pca.c delete mode 100644 libavutil/pca.h delete mode 100644 libavutil/qsort.h delete mode 100644 libavutil/ripemd.c delete mode 100644 libavutil/ripemd.h delete mode 100644 libavutil/sha512.c delete mode 100644 libavutil/sha512.h delete mode 100644 libavutil/softfloat.c delete mode 100644 libavutil/softfloat.h delete mode 100644 libavutil/timecode.c delete mode 100644 libavutil/timecode.h delete mode 100644 libavutil/timestamp.h delete mode 100644 libavutil/utf8.c delete mode 100644 libavutil/x86_cpu.h delete mode 100644 libavutil/xga_font_data.c delete mode 100644 libavutil/xga_font_data.h delete mode 100644 libpostproc/Makefile delete mode 100644 libpostproc/libpostproc.v delete mode 100644 libpostproc/postprocess.c delete mode 100644 libpostproc/postprocess.h delete mode 100644 libpostproc/postprocess_altivec_template.c delete mode 100644 libpostproc/postprocess_internal.h delete mode 100644 libpostproc/postprocess_template.c delete mode 100644 libpostproc/postprocres.rc delete mode 100644 libpostproc/version.h delete mode 100644 libswresample/Makefile delete mode 100644 libswresample/arm/Makefile delete mode 100644 libswresample/arm/audio_convert_init.c delete mode 100644 libswresample/arm/audio_convert_neon.S delete mode 100644 libswresample/audioconvert.c delete mode 100644 libswresample/audioconvert.h delete mode 100644 libswresample/dither.c delete mode 100644 libswresample/dither_template.c delete mode 100644 libswresample/libswresample.v delete mode 100644 libswresample/log2_tab.c delete mode 100644 libswresample/noise_shaping_data.c delete mode 100644 libswresample/rematrix.c delete mode 100644 libswresample/rematrix_template.c delete mode 100644 libswresample/resample.c delete mode 100644 libswresample/resample_template.c delete mode 100644 libswresample/soxr_resample.c delete mode 100644 libswresample/swresample-test.c delete mode 100644 libswresample/swresample.c delete mode 100644 libswresample/swresample.h delete mode 100644 libswresample/swresample_internal.h delete mode 100644 libswresample/swresampleres.rc delete mode 100644 libswresample/version.h delete mode 100644 libswresample/x86/Makefile delete mode 100644 libswresample/x86/audio_convert.asm delete mode 100644 libswresample/x86/rematrix.asm delete mode 100644 libswresample/x86/resample_mmx.h delete mode 100644 libswresample/x86/swresample_x86.c delete mode 100644 libswscale/arm/Makefile delete mode 100644 libswscale/arm/rgb2yuv_neon_16.S delete mode 100644 libswscale/arm/rgb2yuv_neon_32.S delete mode 100644 libswscale/arm/rgb2yuv_neon_common.S delete mode 100644 libswscale/arm/swscale_unscaled.c delete mode 100644 libswscale/swscaleres.rc rename presets/{libvpx-720p.ffpreset => libvpx-1080p.avpreset} (88%) rename presets/{libvpx-1080p50_60.ffpreset => libvpx-1080p50_60.avpreset} (88%) rename presets/{libvpx-360p.ffpreset => libvpx-360p.avpreset} (88%) rename presets/{libvpx-1080p.ffpreset => libvpx-720p.avpreset} (88%) rename presets/{libvpx-720p50_60.ffpreset => libvpx-720p50_60.avpreset} (88%) create mode 100644 presets/libx264-baseline.avpreset create mode 100644 presets/libx264-fast.avpreset create mode 100644 presets/libx264-fast_firstpass.avpreset create mode 100644 presets/libx264-faster.avpreset create mode 100644 presets/libx264-faster_firstpass.avpreset rename presets/{libx264-ipod320.ffpreset => libx264-ipod320.avpreset} (54%) rename presets/{libx264-ipod640.ffpreset => libx264-ipod640.avpreset} (55%) create mode 100644 presets/libx264-lossless_fast.avpreset create mode 100644 presets/libx264-lossless_max.avpreset create mode 100644 presets/libx264-lossless_medium.avpreset create mode 100644 presets/libx264-lossless_slow.avpreset create mode 100644 presets/libx264-lossless_slower.avpreset create mode 100644 presets/libx264-lossless_ultrafast.avpreset create mode 100644 presets/libx264-main.avpreset create mode 100644 presets/libx264-medium.avpreset create mode 100644 presets/libx264-medium_firstpass.avpreset create mode 100644 presets/libx264-placebo.avpreset create mode 100644 presets/libx264-placebo_firstpass.avpreset create mode 100644 presets/libx264-slow.avpreset create mode 100644 presets/libx264-slow_firstpass.avpreset create mode 100644 presets/libx264-slower.avpreset create mode 100644 presets/libx264-slower_firstpass.avpreset create mode 100644 presets/libx264-superfast.avpreset create mode 100644 presets/libx264-superfast_firstpass.avpreset create mode 100644 presets/libx264-ultrafast.avpreset create mode 100644 presets/libx264-ultrafast_firstpass.avpreset create mode 100644 presets/libx264-veryfast.avpreset create mode 100644 presets/libx264-veryfast_firstpass.avpreset create mode 100644 presets/libx264-veryslow.avpreset create mode 100644 presets/libx264-veryslow_firstpass.avpreset delete mode 100755 tests/copycooker.sh delete mode 100755 tests/fate-update.sh delete mode 100644 tests/fate-valgrind.supp delete mode 100644 tests/fate/exif.mak delete mode 100644 tests/fate/ffmpeg.mak delete mode 100644 tests/fate/ffprobe.mak delete mode 100644 tests/fate/gif.mak delete mode 100644 tests/fate/libswresample.mak delete mode 100644 tests/fate/subtitles.mak delete mode 100755 tests/ffserver-regression.sh delete mode 100644 tests/ffserver.conf delete mode 100644 tests/ffserver.regression.ref delete mode 100644 tests/filtergraphs/alphamerge_alphaextract_rgb delete mode 100644 tests/filtergraphs/alphamerge_alphaextract_yuv delete mode 100644 tests/filtergraphs/concat delete mode 100644 tests/filtergraphs/gradfun delete mode 100644 tests/filtergraphs/hqdn3d delete mode 100644 tests/filtergraphs/overlay_rgb delete mode 100644 tests/filtergraphs/overlay_yuv420 delete mode 100644 tests/filtergraphs/overlay_yuv444 delete mode 100644 tests/filtergraphs/scalenorm delete mode 100644 tests/ref/acodec/adpcm_ima_qt delete mode 100644 tests/ref/acodec/g723_1 delete mode 100644 tests/ref/acodec/mp2fixed delete mode 100644 tests/ref/acodec/pcm-s16be_planar delete mode 100644 tests/ref/acodec/pcm-s16le_planar delete mode 100644 tests/ref/acodec/pcm-s24le_planar delete mode 100644 tests/ref/acodec/pcm-s32le_planar delete mode 100644 tests/ref/acodec/pcm-s8_planar delete mode 100644 tests/ref/acodec/pcm-u16be delete mode 100644 tests/ref/acodec/pcm-u16le delete mode 100644 tests/ref/acodec/pcm-u24be delete mode 100644 tests/ref/acodec/pcm-u24le delete mode 100644 tests/ref/acodec/pcm-u32be delete mode 100644 tests/ref/acodec/pcm-u32le delete mode 100644 tests/ref/acodec/roqaudio delete mode 100644 tests/ref/fate/acodec-aref delete mode 100644 tests/ref/fate/adpcm-4xm delete mode 100644 tests/ref/fate/adpcm-afc delete mode 100644 tests/ref/fate/adpcm-dtk delete mode 100644 tests/ref/fate/adpcm-ima-oki delete mode 100644 tests/ref/fate/adpcm-ima-rad delete mode 100644 tests/ref/fate/ansi256 delete mode 100644 tests/ref/fate/ast delete mode 100644 tests/ref/fate/avio-direct delete mode 100644 tests/ref/fate/bprint delete mode 100644 tests/ref/fate/brstm delete mode 100644 tests/ref/fate/dirac delete mode 100644 tests/ref/fate/exif-image-embedded delete mode 100644 tests/ref/fate/exif-image-jpg delete mode 100644 tests/ref/fate/exif-image-tiff delete mode 100644 tests/ref/fate/exr-slice-pxr24 delete mode 100644 tests/ref/fate/exr-slice-raw delete mode 100644 tests/ref/fate/exr-slice-rle delete mode 100644 tests/ref/fate/exr-slice-zip1 delete mode 100644 tests/ref/fate/exr-slice-zip16 delete mode 100644 tests/ref/fate/ffmpeg-filter_complex delete mode 100644 tests/ref/fate/ffmpeg-lavfi delete mode 100644 tests/ref/fate/ffprobe_compact delete mode 100644 tests/ref/fate/ffprobe_csv delete mode 100644 tests/ref/fate/ffprobe_default delete mode 100644 tests/ref/fate/ffprobe_flat delete mode 100644 tests/ref/fate/ffprobe_ini delete mode 100644 tests/ref/fate/ffprobe_json delete mode 100644 tests/ref/fate/ffprobe_xml delete mode 100644 tests/ref/fate/filter-adelay delete mode 100644 tests/ref/fate/filter-alphaextract_alphamerge_rgb delete mode 100644 tests/ref/fate/filter-alphaextract_alphamerge_yuv delete mode 100644 tests/ref/fate/filter-colorchannelmixer delete mode 100644 tests/ref/fate/filter-colormatrix1 delete mode 100644 tests/ref/fate/filter-colormatrix2 delete mode 100644 tests/ref/fate/filter-concat delete mode 100644 tests/ref/fate/filter-curves delete mode 100644 tests/ref/fate/filter-edgedetect delete mode 100644 tests/ref/fate/filter-gradfun-sample delete mode 100644 tests/ref/fate/filter-histogram-levels delete mode 100644 tests/ref/fate/filter-histogram-waveform delete mode 100644 tests/ref/fate/filter-hqdn3d-sample delete mode 100644 tests/ref/fate/filter-hue delete mode 100644 tests/ref/fate/filter-idet delete mode 100644 tests/ref/fate/filter-lavd-life delete mode 100644 tests/ref/fate/filter-lavd-scalenorm delete mode 100644 tests/ref/fate/filter-lavd-testsrc delete mode 100644 tests/ref/fate/filter-mcdeint-fast delete mode 100644 tests/ref/fate/filter-mcdeint-medium delete mode 100644 tests/ref/fate/filter-metadata-ebur128 delete mode 100644 tests/ref/fate/filter-metadata-scenedetect delete mode 100644 tests/ref/fate/filter-metadata-silencedetect delete mode 100644 tests/ref/fate/filter-overlay_rgb delete mode 100644 tests/ref/fate/filter-overlay_yuv420 delete mode 100644 tests/ref/fate/filter-overlay_yuv444 delete mode 100644 tests/ref/fate/filter-pad delete mode 100644 tests/ref/fate/filter-phase delete mode 100644 tests/ref/fate/filter-pixfmts-field delete mode 100644 tests/ref/fate/filter-pixfmts-fieldorder delete mode 100644 tests/ref/fate/filter-pixfmts-histeq delete mode 100644 tests/ref/fate/filter-pixfmts-il delete mode 100644 tests/ref/fate/filter-pixfmts-kerndeint delete mode 100644 tests/ref/fate/filter-pixfmts-lut delete mode 100644 tests/ref/fate/filter-pixfmts-rotate delete mode 100644 tests/ref/fate/filter-pixfmts-super2xsai delete mode 100644 tests/ref/fate/filter-pixfmts-swapuv delete mode 100644 tests/ref/fate/filter-pixfmts-tinterlace_merge delete mode 100644 tests/ref/fate/filter-pixfmts-tinterlace_pad delete mode 100644 tests/ref/fate/filter-pp delete mode 100644 tests/ref/fate/filter-pp2 delete mode 100644 tests/ref/fate/filter-pp3 delete mode 100644 tests/ref/fate/filter-pp4 delete mode 100644 tests/ref/fate/filter-pp5 delete mode 100644 tests/ref/fate/filter-pp6 delete mode 100644 tests/ref/fate/filter-select delete mode 100644 tests/ref/fate/filter-separatefields delete mode 100644 tests/ref/fate/filter-setdar delete mode 100644 tests/ref/fate/filter-setsar delete mode 100644 tests/ref/fate/filter-stereo3d-abr-ml delete mode 100644 tests/ref/fate/filter-stereo3d-abr-mr delete mode 100644 tests/ref/fate/filter-stereo3d-al-sbsl delete mode 100644 tests/ref/fate/filter-stereo3d-ar-abl delete mode 100644 tests/ref/fate/filter-stereo3d-sbsl-abl delete mode 100644 tests/ref/fate/filter-stereo3d-sbsl-abr delete mode 100644 tests/ref/fate/filter-stereo3d-sbsl-al delete mode 100644 tests/ref/fate/filter-stereo3d-sbsl-sbsr delete mode 100644 tests/ref/fate/filter-telecine delete mode 100644 tests/ref/fate/filter-thumbnail delete mode 100644 tests/ref/fate/filter-tile delete mode 100644 tests/ref/fate/force_key_frames delete mode 100644 tests/ref/fate/g729-0 delete mode 100644 tests/ref/fate/g729-1 delete mode 100644 tests/ref/fate/gif-color delete mode 100644 tests/ref/fate/gif-demux delete mode 100644 tests/ref/fate/gif-disposal-background delete mode 100644 tests/ref/fate/gif-disposal-restore delete mode 100644 tests/ref/fate/gif-gray delete mode 100644 tests/ref/fate/gifenc-bgr4_byte delete mode 100644 tests/ref/fate/gifenc-bgr8 delete mode 100644 tests/ref/fate/gifenc-gray delete mode 100644 tests/ref/fate/gifenc-pal8 delete mode 100644 tests/ref/fate/gifenc-rgb4_byte delete mode 100644 tests/ref/fate/gifenc-rgb8 delete mode 100644 tests/ref/fate/h264-conformance-frext-hi422fr10_sony_b delete mode 100644 tests/ref/fate/h264-conformance-frext-hi422fr13_sony_b delete mode 100644 tests/ref/fate/h264-conformance-frext-hi422fr1_sony_a delete mode 100644 tests/ref/fate/h264-conformance-frext-hi422fr6_sony_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i1_panasonic_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i2_panasonic_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i3_panasonic_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i4_panasonic_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i5_panasonic_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i6_panasonic_a delete mode 100644 tests/ref/fate/h264-conformance-frext-pph422i7_panasonic_a delete mode 100644 tests/ref/fate/jv-demux delete mode 100644 tests/ref/fate/lagarith-red delete mode 100644 tests/ref/fate/lossless-tak delete mode 100644 tests/ref/fate/lossless-tta-encrypted delete mode 100644 tests/ref/fate/mapchan-6ch-extract-2 delete mode 100644 tests/ref/fate/mapchan-6ch-extract-2-downmix-mono delete mode 100644 tests/ref/fate/mapchan-silent-mono delete mode 100644 tests/ref/fate/mkv delete mode 100644 tests/ref/fate/murmur3 delete mode 100644 tests/ref/fate/mxpeg delete mode 100644 tests/ref/fate/nistsphere-demux delete mode 100644 tests/ref/fate/oggvp8-demux delete mode 100644 tests/ref/fate/paf-audio delete mode 100644 tests/ref/fate/paf-demux delete mode 100644 tests/ref/fate/paf-video delete mode 100644 tests/ref/fate/pmp-demux delete mode 100644 tests/ref/fate/prores-alpha_skip delete mode 100644 tests/ref/fate/prores-transparency delete mode 100644 tests/ref/fate/prores-transparency_skip delete mode 100644 tests/ref/fate/random_seed delete mode 100644 tests/ref/fate/redspark-demux delete mode 100644 tests/ref/fate/ripemd delete mode 100644 tests/ref/fate/rsd-demux delete mode 100644 tests/ref/fate/sanm delete mode 100644 tests/ref/fate/sha512 delete mode 100644 tests/ref/fate/smjpeg delete mode 100644 tests/ref/fate/smvjpeg delete mode 100644 tests/ref/fate/sub-aqtitle delete mode 100644 tests/ref/fate/sub-charenc delete mode 100644 tests/ref/fate/sub-jacosub delete mode 100644 tests/ref/fate/sub-microdvd delete mode 100644 tests/ref/fate/sub-microdvd-remux delete mode 100644 tests/ref/fate/sub-movtext delete mode 100644 tests/ref/fate/sub-movtextenc delete mode 100644 tests/ref/fate/sub-mpl2 delete mode 100644 tests/ref/fate/sub-mpsub delete mode 100644 tests/ref/fate/sub-mpsub-frames delete mode 100644 tests/ref/fate/sub-pjs delete mode 100644 tests/ref/fate/sub-realtext delete mode 100644 tests/ref/fate/sub-sami delete mode 100644 tests/ref/fate/sub-subripenc delete mode 100644 tests/ref/fate/sub-subviewer delete mode 100644 tests/ref/fate/sub-subviewer1 delete mode 100644 tests/ref/fate/sub-vplayer delete mode 100644 tests/ref/fate/sub-webvtt delete mode 100644 tests/ref/fate/sub2video delete mode 100644 tests/ref/fate/unknown_layout-ac3 delete mode 100644 tests/ref/fate/unknown_layout-pcm delete mode 100644 tests/ref/fate/vcr2 delete mode 100644 tests/ref/fate/vima delete mode 100644 tests/ref/fate/vp6a-skip_alpha delete mode 100644 tests/ref/fate/vp8-alpha delete mode 100644 tests/ref/fate/vp9-parallelmode-akiyo create mode 100644 tests/ref/fate/vp9-segmentation-akiyo delete mode 100644 tests/ref/fate/vp9-segmentation-aq-akiyo delete mode 100644 tests/ref/fate/vp9-segmentation-sf-akiyo delete mode 100644 tests/ref/fate/wmv8-x8intra delete mode 100644 tests/ref/fate/xface delete mode 100644 tests/ref/lavf-fate/latm delete mode 100644 tests/ref/lavf-fate/mp3 delete mode 100644 tests/ref/lavf-fate/ogg_vp3 delete mode 100644 tests/ref/lavf/ast delete mode 100644 tests/ref/lavf/caf delete mode 100644 tests/ref/lavf/flm delete mode 100644 tests/ref/lavf/ircam delete mode 100644 tests/ref/lavf/ismv delete mode 100644 tests/ref/lavf/smjpeg delete mode 100644 tests/ref/lavf/w64 delete mode 100644 tests/ref/lavf/wtv delete mode 100644 tests/ref/lavf/xbm delete mode 100644 tests/ref/seek/lavf-wtv delete mode 100644 tests/ref/seek/vsynth2-snow delete mode 100644 tests/ref/seek/vsynth2-snow-ll delete mode 100644 tests/ref/vsynth/vsynth1-amv delete mode 100644 tests/ref/vsynth/vsynth1-avui delete mode 100644 tests/ref/vsynth/vsynth1-dnxhd_1080i delete mode 100644 tests/ref/vsynth/vsynth1-dv_411 delete mode 100644 tests/ref/vsynth/vsynth1-ffv1.0 delete mode 100644 tests/ref/vsynth/vsynth1-ffvhuff444 delete mode 100644 tests/ref/vsynth/vsynth1-flashsv2 delete mode 100644 tests/ref/vsynth/vsynth1-h261-trellis delete mode 100644 tests/ref/vsynth/vsynth1-jpeg2000 delete mode 100644 tests/ref/vsynth/vsynth1-jpeg2000-97 delete mode 100644 tests/ref/vsynth/vsynth1-mjpeg-422 delete mode 100644 tests/ref/vsynth/vsynth1-mjpeg-444 delete mode 100644 tests/ref/vsynth/vsynth1-mpng delete mode 100644 tests/ref/vsynth/vsynth1-msvideo1 delete mode 100644 tests/ref/vsynth/vsynth1-prores_ks delete mode 100644 tests/ref/vsynth/vsynth1-qtrlegray delete mode 100644 tests/ref/vsynth/vsynth1-r210 delete mode 100644 tests/ref/vsynth/vsynth1-snow delete mode 100644 tests/ref/vsynth/vsynth1-snow-hpel delete mode 100644 tests/ref/vsynth/vsynth1-snow-ll delete mode 100644 tests/ref/vsynth/vsynth1-v308 delete mode 100644 tests/ref/vsynth/vsynth1-v408 delete mode 100644 tests/ref/vsynth/vsynth1-y41p delete mode 100644 tests/ref/vsynth/vsynth1-yuv4 delete mode 100644 tests/ref/vsynth/vsynth1-zlib delete mode 100644 tests/ref/vsynth/vsynth1-zmbv delete mode 100644 tests/ref/vsynth/vsynth2-amv delete mode 100644 tests/ref/vsynth/vsynth2-avui delete mode 100644 tests/ref/vsynth/vsynth2-dnxhd_1080i delete mode 100644 tests/ref/vsynth/vsynth2-dv_411 delete mode 100644 tests/ref/vsynth/vsynth2-ffv1.0 delete mode 100644 tests/ref/vsynth/vsynth2-ffvhuff444 delete mode 100644 tests/ref/vsynth/vsynth2-flashsv2 delete mode 100644 tests/ref/vsynth/vsynth2-h261-trellis delete mode 100644 tests/ref/vsynth/vsynth2-jpeg2000 delete mode 100644 tests/ref/vsynth/vsynth2-jpeg2000-97 delete mode 100644 tests/ref/vsynth/vsynth2-mjpeg-422 delete mode 100644 tests/ref/vsynth/vsynth2-mjpeg-444 delete mode 100644 tests/ref/vsynth/vsynth2-mpng delete mode 100644 tests/ref/vsynth/vsynth2-msvideo1 delete mode 100644 tests/ref/vsynth/vsynth2-prores_ks delete mode 100644 tests/ref/vsynth/vsynth2-qtrlegray delete mode 100644 tests/ref/vsynth/vsynth2-r210 delete mode 100644 tests/ref/vsynth/vsynth2-snow delete mode 100644 tests/ref/vsynth/vsynth2-snow-hpel delete mode 100644 tests/ref/vsynth/vsynth2-snow-ll delete mode 100644 tests/ref/vsynth/vsynth2-v308 delete mode 100644 tests/ref/vsynth/vsynth2-v408 delete mode 100644 tests/ref/vsynth/vsynth2-y41p delete mode 100644 tests/ref/vsynth/vsynth2-yuv4 delete mode 100644 tests/ref/vsynth/vsynth2-zlib delete mode 100644 tests/ref/vsynth/vsynth2-zmbv delete mode 100644 tests/ref/vsynth1/cljr delete mode 100644 tests/ref/vsynth1/yuv delete mode 100644 tests/ref/vsynth2/cljr delete mode 100644 tests/ref/vsynth2/huffyuv delete mode 100644 tests/ref/vsynth2/yuv delete mode 100644 tests/test.ffmeta delete mode 100644 tests/tiny_ssim.c delete mode 100755 tools/bisect-create delete mode 100644 tools/bookmarklets.html delete mode 100644 tools/build_libstagefright delete mode 100755 tools/clean-diff delete mode 100644 tools/crypto_bench.c delete mode 100644 tools/enum_options.c delete mode 100644 tools/ffescape.c delete mode 100644 tools/ffeval.c delete mode 100644 tools/ffhash.c delete mode 100644 tools/fourcc2pixfmt.c delete mode 100755 tools/gen-rc delete mode 100755 tools/make_chlayout_test delete mode 100755 tools/missing_codec_desc delete mode 100755 tools/normalize.py delete mode 100755 tools/plotframes delete mode 100644 tools/seek_print.c delete mode 100755 tools/unwrap-diff delete mode 100644 tools/yuvcmp.c delete mode 100644 tools/zmqsend.c delete mode 100755 tools/zmqshell.py diff --git a/.gitignore b/.gitignore index 5397a35380..01d93b9f1f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ *.d *.def *.dll -*.dylib *.exe *.exp *.gcda @@ -18,33 +17,20 @@ *.ver *-example *-test -*_g /.config /.version -/ffmpeg -/ffplay -/ffprobe -/ffserver +/avconv +/avplay +/avprobe +/avserver /config.* /coverage.info +/version.h /doc/*.1 -/doc/*.3 /doc/*.html /doc/*.pod -/doc/config.texi /doc/avoptions_codec.texi /doc/avoptions_format.texi -/doc/examples/decoding_encoding -/doc/examples/demuxing_decoding -/doc/examples/filtering_audio -/doc/examples/filtering_video -/doc/examples/metadata -/doc/examples/muxing -/doc/examples/pc-uninstalled -/doc/examples/resampling_audio -/doc/examples/scaling_video -/doc/examples/transcode_aac -/doc/fate.txt /doc/doxy/html/ /doc/examples/output /doc/examples/transcode_aac @@ -54,29 +40,18 @@ /libavcodec/*_tables.c /libavcodec/*_tables.h /libavutil/avconfig.h -/libavutil/ffversion.h /tests/audiogen /tests/base64 /tests/data/ /tests/rotozoom /tests/tiny_psnr -/tests/tiny_ssim /tests/videogen /tests/vsynth1/ /tools/aviocat -/tools/ffbisect -/tools/bisect.need -/tools/crypto_bench /tools/cws2fws -/tools/fourcc2pixfmt -/tools/ffescape -/tools/ffeval -/tools/ffhash /tools/graph2dot /tools/ismindex /tools/pktdumper /tools/probetest /tools/qt-faststart /tools/trasher -/tools/seek_print -/tools/zmqsend diff --git a/CREDITS b/CREDITS index e29f0b853c..4a537786f0 100644 --- a/CREDITS +++ b/CREDITS @@ -1,6 +1,55 @@ -See the Git history of the project (git://source.ffmpeg.org/ffmpeg) to -get the names of people who have contributed to FFmpeg. +This file contains the names of some of the people who have contributed to +Libav/FFmpeg. The names are sorted alphabetically by last name. As this file is +currently quite outdated and git serves as a much better tool for determining +authorship, it remains here for historical reasons only. -To check the log, you can type the command "git log" in the FFmpeg -source directory, or browse the online repository at -http://source.ffmpeg.org. +Dénes Balatoni +Michel Bardiaux +Fabrice Bellard +Patrice Bensoussan +Alex Beregszaszi +BERO +Thilo Borgmann +Mario Brito +Ronald Bultje +Alex Converse +Maarten Daniels +Reimar Doeffinger +Tim Ferguson +Brian Foley +Arpad Gereoffy +Philip Gladstone +Vladimir Gneushev +Roine Gustafsson +David Hammerton +Wolfgang Hesseler +Marc Hoffman +Falk Hueffner +Aurélien Jacobs +Steven Johnson +Zdenek Kabelac +Robin Kay +Todd Kirby +Nick Kurshev +Benjamin Larsson +Loïc Le Loarer +Daniel Maas +Mike Melanson +Loren Merritt +Jeff Muizelaar +Michael Niedermayer +François Revol +Peter Ross +Måns Rullgård +Stefano Sabatini +Roman Shaposhnik +Oded Shimon +Dieter Shirley +Konstantin Shishkov +Juan J. Sierralta +Ewald Snel +Sascha Sommer +Leon van Stuivenberg +Roberto Togni +Lionel Ulmer +Reynaldo Verdejo diff --git a/Changelog b/Changelog index 2cab110f85..efd474a5d8 100644 --- a/Changelog +++ b/Changelog @@ -1,239 +1,109 @@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. -version - -- HNM version 4 demuxer and video decoder -- Live HDS muxer -- setsar/setdar filters now support variables in ratio expressions -- elbg filter -- string validation in ffprobe -- support for decoding through VDPAU in ffmpeg (the -hwaccel option) -- complete Voxware MetaSound decoder -- remove mp3_header_compress bitstream filter -- Windows resource files for shared libraries -- aeval filter -- stereoscopic 3d metadata handling -- WebP encoding via libwebp -- ATRAC3+ decoder -- VP8 in Ogg demuxing -- side & metadata support in NUT - - -version 2.1: - -- aecho filter -- perspective filter ported from libmpcodecs -- ffprobe -show_programs option -- compand filter +version 10: +- av_strnstr +- support ID3v2 tags in ASF files +- reference-counting for AVFrame and AVPacket data +- avconv now fails when input options are used for output file + or vice versa +- avconv options -filter_script and -filter_complex_script, which allow a + filtergraph description to be read from a file +- uniform options syntax across all filters +- interlace filter +- JPEG 2000 decoder +- asetpts filter (same as setpts, but for audio) +- trim and atrim filters +- avconv -t and -ss (output-only) options are now sample-accurate when + transcoding audio +- Matroska muxer can now put the index at the beginning of the file. +- avconv -deinterlace option removed, the yadif filter should be used instead +- Apple Intermediate Codec decoder +- Escape 130 video decoder +- support for slice multithreading in libavfilter +- VC-1 interlaced B-frame support +- support for WavPack muxing (raw and in Matroska) +- Go2Webinar decoder +- WavPack encoding through libwavpack +- Added the -n parameter to avconv - RTMP seek support -- when transcoding with ffmpeg (i.e. not streamcopying), -ss is now accurate +- when transcoding with avconv (i.e. not streamcopying), -ss is now accurate even when used as an input option. Previous behavior can be restored with the -noaccurate_seek option. -- ffmpeg -t option can now be used for inputs, to limit the duration of +- avconv -t option can now be used for inputs, to limit the duration of data read from an input file -- incomplete Voxware MetaSound decoder -- read EXIF metadata from JPEG -- DVB teletext decoder -- phase filter ported from libmpcodecs -- w3fdif filter -- Opus support in Matroska -- FFV1 version 1.3 is stable and no longer experimental -- FFV1: YUVA(444,422,420) 9, 10 and 16 bit support -- changed DTS stream id in lavf mpeg ps muxer from 0x8a to 0x88, to be - more consistent with other muxers. -- adelay filter -- pullup filter ported from libmpcodecs -- ffprobe -read_intervals option -- Lossless and alpha support for WebP decoder +- Voxware MetaSound decoder +- WebP decoder - Error Resilient AAC syntax (ER AAC LC) decoding - Low Delay AAC (ER AAC LD) decoding - mux chapters in ASF files -- SFTP protocol (via libssh) -- libx264: add ability to encode in YUVJ422P and YUVJ444P -- Fraps: use BT.709 colorspace by default for yuv, as reference fraps decoder does -- make decoding alpha optional for prores, ffv1 and vp6 by setting - the skip_alpha flag. -- ladspa wrapper filter -- native VP9 decoder -- dpx parser -- max_error_rate parameter in ffmpeg -- PulseAudio output device -- ReplayGain scanner +- Opus in Ogg demuxing - Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support) -- Linux framebuffer output device +- F4V muxer +- HNM version 4 demuxer and video decoder - HEVC decoder - raw HEVC, HEVC in MOV/MP4, HEVC in Matroska, HEVC in MPEG-TS demuxing -- mergeplanes filter +- remove avplay -vismv option, which has not worked for a long time +- Live HDS muxer +- setsar/setdar filters now support variables in ratio expressions +- dar variable in the scale filter now returns the actual DAR (i.e. a * sar) +- VP9 decoder +- support for decoding through VDPAU in avconv (the -hwaccel option) +- remove mp3_header_(de)compress bitstream filters +- stereoscopic 3d metadata handling +- png standalone parser +- WebP encoding via libwebp -version 2.0: - -- curves filter -- reference-counting for AVFrame and AVPacket data -- ffmpeg now fails when input options are used for output file - or vice versa -- support for Monkey's Audio versions from 3.93 -- perms and aperms filters -- audio filtering support in ffplay -- 10% faster aac encoding on x86 and MIPS -- sine audio filter source -- WebP demuxing and decoding support -- ffmpeg options -filter_script and -filter_complex_script, which allow a - filtergraph description to be read from a file -- OpenCL support -- audio phaser filter -- separatefields filter -- libquvi demuxer -- uniform options syntax across all filters -- telecine filter -- interlace filter -- smptehdbars source -- inverse telecine filters (fieldmatch and decimate) -- colorbalance filter -- colorchannelmixer filter -- The matroska demuxer can now output proper verbatim ASS packets. It will - become the default at the next libavformat major bump. -- decent native animated GIF encoding -- asetrate filter -- interleave filter -- timeline editing with filters -- vidstabdetect and vidstabtransform filters for video stabilization using - the vid.stab library -- astats filter -- trim and atrim filters -- ffmpeg -t and -ss (output-only) options are now sample-accurate when - transcoding audio -- Matroska muxer can now put the index at the beginning of the file. -- extractplanes filter -- avectorscope filter -- ADPCM DTK decoder -- ADP demuxer -- RSD demuxer -- RedSpark demuxer -- ADPCM IMA Radical decoder -- zmq filters -- DCT denoiser filter (dctdnoiz) -- Wavelet denoiser filter ported from libmpcodecs as owdenoise (formerly "ow") -- Apple Intermediate Codec decoder -- Escape 130 video decoder -- FTP protocol support -- V4L2 output device -- 3D LUT filter (lut3d) -- SMPTE 302M audio encoder -- support for slice multithreading in libavfilter -- Hald CLUT support (generation and filtering) -- VC-1 interlaced B-frame support -- support for WavPack muxing (raw and in Matroska) -- XVideo output device -- vignette filter -- True Audio (TTA) encoder -- Go2Webinar decoder -- mcdeint filter ported from libmpcodecs -- sab filter ported from libmpcodecs -- ffprobe -show_chapters option -- WavPack encoding through libwavpack -- rotate filter -- spp filter ported from libmpcodecs -- libgme support -- psnr filter - - -version 1.2: - +version 9: +- av_basename and av_dirname +- adobe and limelight publisher authentication in RTMP - VDPAU hardware acceleration through normal hwaccel - SRTP support -- Error diffusion dither in Swscale -- Chained Ogg support -- Theora Midstream reconfiguration support -- EVRC decoder -- audio fade filter -- filtering audio with unknown channel layout -- allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass - and treble audio filter -- improved showspectrum filter, with multichannel support and sox-like colors -- histogram filter -- tee muxer -- il filter ported from libmpcodecs -- support ID3v2 tags in ASF files -- encrypted TTA stream decoding support -- RF64 support in WAV muxer -- noise filter ported from libmpcodecs -- Subtitles character encoding conversion -- blend filter -- stereo3d filter ported from libmpcodecs -version 1.1: - -- stream disposition information printing in ffprobe -- filter for loudness analysis following EBU R128 -- Opus encoder using libopus -- ffprobe -select_streams option -- Pinnacle TARGA CineWave YUV16 decoder -- TAK demuxer, decoder and parser -- DTS-HD demuxer -- remove -same_quant, it hasn't worked for years -- FFM2 support -- X-Face image encoder and decoder +version 9_beta3: +- ashowinfo audio filter - 24-bit FLAC encoding +- audio volume filter +- deprecated the avconv -vol option. the volume filter is to be used instead. - multi-channel ALAC encoding up to 7.1 +- TAK demuxer, parser, and decoder +- adaptive frame-level multithreading for H.264 + + +version 9_beta2: - metadata (INFO tag) support in WAV muxer -- subtitles raw text decoder - support for building DLLs using MSVC -- LVF demuxer -- ffescape tool -- metadata (info chunk) support in CAF muxer -- field filter ported from libmpcodecs -- AVR demuxer -- geq filter ported from libmpcodecs -- remove ffserver daemon mode -- AST muxer/demuxer -- new expansion syntax for drawtext -- BRender PIX image decoder -- ffprobe -show_entries option -- ffprobe -sections option -- ADPCM IMA Dialogic decoder -- BRSTM demuxer -- animated GIF decoder and demuxer -- PVF demuxer -- subtitles filter -- IRCAM muxer/demuxer -- Paris Audio File demuxer -- Virtual concatenation demuxer -- VobSub demuxer -- JSON captions for TED talks decoding support -- SOX Resampler support in libswresample -- aselect filter -- SGI RLE 8-bit decoder -- Silicon Graphics Motion Video Compressor 1 & 2 decoder -- Silicon Graphics Movie demuxer -- apad filter -- Resolution & pixel format change support with multithreading for H.264 -- documentation split into per-component manuals -- pp (postproc) filter ported from MPlayer -- NIST Sphere demuxer -- MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders -- Sony Wave64 muxer -- adobe and limelight publisher authentication in RTMP -- data: URI scheme +- remove avserver daemon mode - support building on the Plan 9 operating system -- kerndeint filter ported from MPlayer -- histeq filter ported from VirtualDub -- Megalux Frame demuxer -- 012v decoder -- Improved AVC Intra decoding support +- ffv1: support version 1.3 -version 1.0: +version 9_beta1: -- INI and flat output in ffprobe -- Scene detection in libavfilter +- XWD encoder and decoder +- Support for fragmentation in the mov/mp4 muxer +- ISMV (Smooth Streaming) muxer +- CDXL demuxer and decoder +- Apple ProRes encoder +- Sun Rasterfile Encoder +- remove libpostproc +- ID3v2 attached pictures reading and writing +- WMA Lossless decoder +- XBM encoder +- RealAudio Lossless decoder +- ZeroCodec decoder +- drop support for avconv without libavfilter +- add libavresample audio conversion library +- audio filters support in libavfilter and avconv +- add fps filter +- audio split filter +- audio mix filter +- avprobe output is now standard INI or JSON. The old format can still + be used with -of old. - Indeo Audio decoder - channelsplit audio filter -- setnsamples audio filter -- atempo filter -- ffprobe -show_data option - RTMPT protocol support - iLBC encoding/decoding via libilbc - Microsoft Screen 1 decoder @@ -246,143 +116,44 @@ version 1.0: - Microsoft Expression Encoder Screen decoder - RTMPS protocol support - RTMPTS protocol support +- JPEG 2000 encoding support through OpenJPEG +- G.723.1 demuxer and decoder - RTMPE protocol support - RTMPTE protocol support -- showwaves and showspectrum filter -- LucasArts SMUSH playback support -- SAMI, RealText and SubViewer demuxers and decoders -- Heart Of Darkness PAF playback support -- iec61883 device -- asettb filter -- new option: -progress -- 3GPP Timed Text encoder/decoder -- GeoTIFF decoder support -- ffmpeg -(no)stdin option -- Opus decoder using libopus -- caca output device using libcaca -- alphaextract and alphamerge filters -- concat filter -- flite filter - Canopus Lossless Codec decoder -- bitmap subtitles in filters (experimental and temporary) -- MP2 encoding via TwoLAME -- bmp parser -- smptebars source -- asetpts filter -- hue filter -- ICO muxer -- SubRip encoder and decoder without embedded timing -- edge detection filter -- framestep filter -- ffmpeg -shortest option is now per-output file +- avconv -shortest option is now per-output file, -pass and -passlogfile are now per-output stream -- volume measurement filter - Ut Video encoder - Microsoft Screen 2 decoder -- smartblur filter ported from MPlayer -- CPiA decoder -- decimate filter ported from MPlayer - RTP depacketization of JPEG - Smooth Streaming live segmenter muxer -- F4V muxer -- sendcmd and asendcmd filters -- WebVTT demuxer and decoder (simple tags supported) - RTP packetization of JPEG -- faststart option in the MOV/MP4 muxer +- Opus decoder and encoder using libopus +- remove -same_quant, it hasn't worked for years - support for building with MSVC -version 0.11: +version 0.8: -- Fixes: CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777, - CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785, - CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790, - CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795, - CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800, - CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804, -- v408 Quicktime and Microsoft AYUV Uncompressed 4:4:4:4 encoder and decoder -- setfield filter -- CDXL demuxer and decoder -- Apple ProRes encoder -- ffprobe -count_packets and -count_frames options -- Sun Rasterfile Encoder -- ID3v2 attached pictures reading and writing -- WMA Lossless decoder -- bluray protocol -- blackdetect filter -- libutvideo encoder wrapper (--enable-libutvideo) -- swapuv filter -- bbox filter -- XBM encoder and decoder -- RealAudio Lossless decoder -- ZeroCodec decoder -- tile video filter -- Metal Gear Solid: The Twin Snakes demuxer -- OpenEXR image decoder -- removelogo filter -- drop support for ffmpeg without libavfilter -- drawtext video filter: fontconfig support -- ffmpeg -benchmark_all option -- super2xsai filter ported from libmpcodecs -- add libavresample audio conversion library for compatibility -- MicroDVD decoder -- Avid Meridien (AVUI) encoder and decoder -- accept + prefix to -pix_fmt option to disable automatic conversions. -- complete audio filtering in libavfilter and ffmpeg -- add fps filter -- vorbis parser -- png parser -- audio mix filter -- ffv1: support (draft) version 1.3 - - -version 0.10: - -- Fixes: CVE-2011-3929, CVE-2011-3934, CVE-2011-3935, CVE-2011-3936, - CVE-2011-3937, CVE-2011-3940, CVE-2011-3941, CVE-2011-3944, - CVE-2011-3945, CVE-2011-3946, CVE-2011-3947, CVE-2011-3949, - CVE-2011-3950, CVE-2011-3951, CVE-2011-3952 -- v410 Quicktime Uncompressed 4:4:4 10-bit encoder and decoder -- SBaGen (SBG) binaural beats script demuxer -- OpenMG Audio muxer -- Timecode extraction in DV and MOV -- thumbnail video filter -- XML output in ffprobe -- asplit audio filter -- tinterlace video filter -- astreamsync audio filter -- amerge audio filter -- ISMV (Smooth Streaming) muxer - GSM audio parser - SMJPEG muxer -- XWD encoder and decoder + + +version 0.8_beta2: + - Automatic thread count based on detection number of (available) CPU cores -- y41p Brooktree Uncompressed 4:1:1 12-bit encoder and decoder -- ffprobe -show_error option -- Avid 1:1 10-bit RGB Packer codec -- v308 Quicktime Uncompressed 4:4:4 encoder and decoder -- yuv4 libquicktime packed 4:2:0 encoder and decoder -- ffprobe -show_frames option -- silencedetect audio filter -- ffprobe -show_program_version, -show_library_versions, -show_versions options +- Deprecate libpostproc. If desired, the switch --enable-postproc will + enable it but it may be removed in a later Libav release. - rv34: frame-level multi-threading - optimized iMDCT transform on x86 using SSE for for mpegaudiodec -- Improved PGS subtitle decoder -- dumpgraph option to lavfi device -- r210 and r10k encoders -- ffwavesynth decoder -- aviocat tool -- ffeval tool -version 0.9: +version 0.8_beta1: -- openal input device added -- boxblur filter added - BWF muxer - Flash Screen Video 2 decoder -- lavfi input device added -- added avconv, which is almost the same for now, except +- ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver +- ffmpeg deprecated, added avconv, which is almost the same for now, except for a few incompatible changes in the options, which will hopefully make them easier to use. The changes are: * The options placement is now strictly enforced! While in theory the @@ -452,40 +223,23 @@ easier to use. The changes are: * -vframes/-aframes/-dframes options are now aliases to the new -frames option. * -vtag/-atag/-stag options are now aliases to the new -tag option. - XMV demuxer -- LOAS demuxer -- ashowinfo filter added - Windows Media Image decoder -- amovie source added - LATM muxer/demuxer -- Speex encoder via libspeex -- JSON output in ffprobe -- WTV muxer -- Optional C++ Support (needed for libstagefright) -- H.264 Decoding on Android via Stagefright -- Prores decoder -- BIN/XBIN/ADF/IDF text file decoder -- aconvert audio filter added -- audio support to lavfi input device added +- showinfo filter +- split filter - libcdio-paranoia input device for audio CD grabbing +- select filter - Apple ProRes decoder - CELT in Ogg demuxing -- G.723.1 demuxer and decoder -- libmodplug support (--enable-libmodplug) - VC-1 interlaced decoding -- libutvideo wrapper (--enable-libutvideo) -- aevalsrc audio source added +- lut, lutrgb, and lutyuv filters +- boxblur filter - Ut Video decoder - Speex encoding via libspeex - 4:2:2 H.264 decoding support - 4:2:2 and 4:4:4 H.264 encoding with libx264 - Pulseaudio input device -- Prores encoder -- Video Decoder Acceleration (VDA) HWAccel module. - replacement Indeo 3 decoder -- new ffmpeg option: -map_channel -- volume audio filter added -- earwax audio filter added -- libv4l2 support (--enable-libv4l2) - TLS/SSL and HTTPS protocol support - AVOptions API rewritten and documented - most of CODEC_FLAG2_*, some CODEC_FLAG_* and many codec-specific fields in @@ -495,27 +249,44 @@ easier to use. The changes are: - Discworld II BMV decoding support - VBLE Decoder - OS X Video Decoder Acceleration (VDA) support -- compact and csv output in ffprobe -- pan audio filter -- IFF Amiga Continuous Bitmap (ACBM) decoder -- ass filter - CRI ADX audio format muxer and demuxer - Playstation Portable PMP format demuxer -- Microsoft Windows ICO demuxer -- life source - PCM format support in OMA demuxer - CLJR encoder -- new option: -report - Dxtory capture format decoder -- cellauto source +- v410 QuickTime uncompressed 4:4:4 10-bit encoder and decoder +- OpenMG Audio muxer - Simple segmenting muxer - Indeo 4 decoder - SMJPEG demuxer -version 0.8: +version 0.7: + +- E-AC-3 audio encoder +- ac3enc: add channel coupling support +- floating-point sample format support for (E-)AC-3, DCA, AAC, Vorbis decoders +- H.264/MPEG frame-level multithreading +- av_metadata_* functions renamed to av_dict_* and moved to libavutil +- 4:4:4 H.264 decoding support +- 10-bit H.264 optimizations for x86 +- bump libswscale for recently reported ABI break + + +version 0.7_beta2: + +- VP8 frame-level multithreading +- NEON optimizations for VP8 +- removed a lot of deprecated API cruft +- FFT and IMDCT optimizations for AVX (Sandy Bridge) processors +- DPX image encoder +- SMPTE 302M AES3 audio decoder +- ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead +- 9bit and 10bit per sample support in the H.264 decoder + + +version 0.7_beta1: -- many many things we forgot because we rather write code than changelogs - WebM support in Matroska de/muxer - low overhead Ogg muxing - MMS-TCP support @@ -523,7 +294,6 @@ version 0.8: - Demuxer for On2's IVF format - Pictor/PC Paint decoder - HE-AAC v2 decoder -- HE-AAC v2 encoding with libaacplus - libfaad2 wrapper removed - DTS-ES extension (XCh) decoding support - native VP8 decoder @@ -535,7 +305,6 @@ version 0.8: - RTP depacketization of QDM2 - ANSI/ASCII art playback system - Lego Mindstorms RSO de/muxer -- libavcore added (and subsequently removed) - SubRip subtitle file muxer and demuxer - Chinese AVS encoding via libxavs - ffprobe -show_packets option added @@ -582,7 +351,7 @@ version 0.8: - replace the ocv_smooth filter with a more generic ocv filter - Windows Televison (WTV) demuxer - FFmpeg metadata format muxer and demuxer -- SubRip (srt) subtitle encoder and decoder +- SubRip (srt) subtitle decoder - floating-point AC-3 encoder added - Lagarith decoder - ffmpeg -copytb option added @@ -595,46 +364,11 @@ version 0.8: - sndio support for playback and record - Linux framebuffer input device added - Chronomaster DFA decoder -- DPX image encoder -- MicroDVD subtitle file muxer and demuxer -- Playstation Portable PMP format demuxer -- fieldorder video filter added +- Mobotix MxPEG decoder - AAC encoding via libvo-aacenc - AMR-WB encoding via libvo-amrwbenc - xWMA demuxer -- Mobotix MxPEG decoder -- VP8 frame-multithreading -- NEON optimizations for VP8 -- Lots of deprecated API cruft removed -- fft and imdct optimizations for AVX (Sandy Bridge) processors -- 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 -- split filter added -- select filter added -- sdl output device added -- libmpcodecs video filter support (3 times as many filters than before) -- mpeg2 aspect ratio dection fixed -- libxvid aspect pickiness fixed -- Frame multithreaded decoding -- E-AC-3 audio encoder -- ac3enc: add channel coupling support -- floating-point sample format support to the ac3, eac3, dca, aac, and vorbis decoders. -- H264/MPEG frame-level multi-threading -- All av_metadata_* functions renamed to av_dict_* and moved to libavutil -- 4:4:4 H.264 decoding support -- 10-bit H.264 optimizations for x86 -- lut, lutrgb, and lutyuv filters added -- buffersink libavfilter sink added -- Bump libswscale for recently reported ABI break -- New J2K encoder (via OpenJPEG) - - -version 0.7: - -- all the changes for 0.8, but keeping API/ABI compatibility with the 0.6 release +- fieldorder video filter added version 0.6: @@ -875,7 +609,6 @@ version 0.5: - Gopher client support - MXF D-10 muxer - generic metadata API -- flash ScreenVideo2 encoder version 0.4.9-pre1: @@ -1078,7 +811,7 @@ version 0.4.5: - MPEG-4 vol header fixes (Jonathan Marsden ) - ARM optimizations (Lionel Ulmer ). - Windows porting of file converter -- added MJPEG raw format (input/output) +- added MJPEG raw format (input/ouput) - added JPEG image format support (input/output) diff --git a/INSTALL b/INSTALL index 9549346302..ac5dc5dbb6 100644 --- a/INSTALL +++ b/INSTALL @@ -2,14 +2,17 @@ 1) Type './configure' to create the configuration. A list of configure options is printed by running 'configure --help'. -'configure' can be launched from a directory different from the FFmpeg +'configure' can be launched from a directory different from the Libav sources to build the objects out of tree. To do this, use an absolute -path when launching 'configure', e.g. '/ffmpegdir/ffmpeg/configure'. +path when launching 'configure', e.g. '/libavdir/libav/configure'. -2) Then type 'make' to build FFmpeg. GNU Make 3.81 or later is required. +2) Then type 'make' to build Libav. GNU Make 3.81 or later is required. 3) Type 'make install' to install all binaries and libraries you built. NOTICE - Non system dependencies (e.g. libx264, libvpx) are disabled by default. + + - The default cflags include -g, if you want lean libraries you can either + pass --disable-debug or strip the debug symbols at a later time. diff --git a/LICENSE b/LICENSE index 1840d69179..1074989bfc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,54 +1,27 @@ -FFmpeg: +Libav: +====== -Most files in FFmpeg are under the GNU Lesser General Public License version 2.1 +Most files in Libav 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 files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to -FFmpeg. +Libav. -Some optional parts of FFmpeg are licensed under the GNU General Public License +Some optional parts of Libav are licensed under the GNU General Public License version 2 or later (GPL v2+). See the file COPYING.GPLv2 for details. None of these parts are used by default, you have to explicitly pass --enable-gpl to -configure to activate them. In this case, FFmpeg's license changes to GPL v2+. +configure to activate them. In this case, Libav's license changes to GPL v2+. -Specifically, the GPL parts of FFmpeg are +Specifically, the GPL parts of Libav are -- libpostproc -- libmpcodecs -- optional x86 optimizations in the files - libavcodec/x86/idct_mmx.c -- libutvideo encoding/decoding wrappers in - libavcodec/libutvideo*.cpp - the X11 grabber in libavdevice/x11grab.c -- the swresample test app in - libswresample/swresample-test.c - the texi2pod.pl tool - the following filters in libavfilter: - - f_ebur128.c - vf_blackframe.c - vf_boxblur.c - - vf_colormatrix.c - vf_cropdetect.c - - vf_decimate.c - vf_delogo.c - - vf_geq.c - - vf_histeq.c - vf_hqdn3d.c - - vf_kerndeint.c - - vf_mcdeint.c - - vf_mp.c - - vf_owdenoise.c - - vf_perspective.c - - vf_phase.c - - vf_pp.c - - vf_pullup.c - - vf_sab.c - - vf_smartblur.c - - vf_spp.c - - vf_stereo3d.c - - vf_super2xsai.c - - vf_tinterlace.c - vf_yadif.c - - vsrc_mptestsrc.c Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then the configure parameter --enable-version3 will activate this licensing option @@ -68,36 +41,26 @@ There are a handful of files under other licensing terms, namely: external libraries ================== -FFmpeg can be combined with a number of external libraries, which sometimes +Libav can be combined with a number of external libraries, which sometimes affect the licensing of binaries resulting from the combination. compatible libraries -------------------- -The following libraries are under GPL: - - frei0r - - libcdio - - libutvideo - - libvidstab - - libx264 - - libxavs - - libxvid -When combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by +The libcdio, libx264, libxavs and libxvid libraries are under GPL. When +combining them with Libav, Libav needs to be licensed as GPL as well by passing --enable-gpl to configure. The OpenCORE and VisualOn libraries are under the Apache License 2.0. That 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 +version 3 of those licenses. So to combine these libraries with Libav, the license version needs to be upgraded by passing --enable-version3 to configure. incompatible libraries ---------------------- -The Fraunhofer AAC library, FAAC and aacplus 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. +The Fraunhofer AAC library, FAAC and OpenSSL are under licenses incompatible +with all (L)GPL versions. Thus, unfortunately, since both licenses cannot be +satisfied simultaneously, binaries resulting from the combination of Libav +with these libraries are nonfree und unredistributable. If you wish to enable +any of these libraries nonetheless, pass --enable-nonfree to configure. diff --git a/MAINTAINERS b/MAINTAINERS deleted file mode 100644 index ebfb735886..0000000000 --- a/MAINTAINERS +++ /dev/null @@ -1,547 +0,0 @@ -FFmpeg maintainers -================== - -Below is a list of the people maintaining different parts of the -FFmpeg code. - -Please try to keep entries where you are the maintainer up to date! - -Names in () mean that the maintainer currently has no time to maintain the code. -A (CC
) after the name means that the maintainer prefers to be CC-ed on -patches and related discussions. - - -Project Leader -============== - -Michael Niedermayer - final design decisions - - -Applications -============ - -ffmpeg: - ffmpeg.c Michael Niedermayer - -ffplay: - ffplay.c Marton Balint - -ffprobe: - ffprobe.c Stefano Sabatini - -Commandline utility code: - cmdutils.c, cmdutils.h Michael Niedermayer - -QuickTime faststart: - tools/qt-faststart.c Baptiste Coudurier - - -Miscellaneous Areas -=================== - -documentation Stefano Sabatini, Mike Melanson, Timothy Gu -build system (configure,Makefiles) Diego Biurrun, Mans Rullgard -project server Árpád Gereöffy, Michael Niedermayer, Reimar Döffinger, Alexander Strasser -presets Robert Swain -metadata subsystem Aurelien Jacobs -release management Michael Niedermayer - - -Communication -============= - -website Robert Swain, Lou Logan -mailinglists Michael Niedermayer, Baptiste Coudurier, Lou Logan -Google+ Paul B Mahol, Michael Niedermayer, Alexander Strasser -Twitter Lou Logan -Launchpad Timothy Gu - - -libavutil -========= - -External Interfaces: - libavutil/avutil.h Michael Niedermayer -Internal Interfaces: - libavutil/common.h Michael Niedermayer - -Other: - bprint Nicolas George - bswap.h - des Reimar Doeffinger - eval.c, eval.h Michael Niedermayer - float_dsp Loren Merritt - hash Reimar Doeffinger - intfloat* Michael Niedermayer - integer.c, integer.h Michael Niedermayer - lzo Reimar Doeffinger - mathematics.c, mathematics.h Michael Niedermayer - mem.c, mem.h Michael Niedermayer - opencl.c, opencl.h Wei Gao - opt.c, opt.h Michael Niedermayer - rational.c, rational.h Michael Niedermayer - rc4 Reimar Doeffinger - ripemd.c, ripemd.h James Almer - timecode Clément Bœsch - - -libavcodec -========== - -Generic Parts: - External Interfaces: - avcodec.h Michael Niedermayer - utility code: - utils.c Michael Niedermayer - audio and video frame extraction: - parser.c Michael Niedermayer - bitstream reading: - bitstream.c, bitstream.h Michael Niedermayer - CABAC: - cabac.h, cabac.c Michael Niedermayer - codec names: - codec_names.sh Nicolas George - DSP utilities: - dsputils.c, dsputils.h Michael Niedermayer - entropy coding: - rangecoder.c, rangecoder.h Michael Niedermayer - lzw.* Michael Niedermayer - floating point AAN DCT: - 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: - ratecontrol.c Michael Niedermayer - libxvid_rc.c Michael Niedermayer - simple IDCT: - simple_idct.c, simple_idct.h Michael Niedermayer - postprocessing: - libpostproc/* Michael Niedermayer - table generation: - tableprint.c, tableprint.h Reimar Doeffinger - fixed point FFT: - fft* Zeljko Lukac - -Codecs: - 4xm.c Michael Niedermayer - 8bps.c Roberto Togni - 8svx.c Jaikrishnan Menon - 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 - cinepak.c Roberto Togni - 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 - dnxhd* Baptiste Coudurier - dpcm.c Mike Melanson - dv.c Roman Shaposhnik - dxa.c Kostya Shishkov - eacmv*, eaidct*, eat* Peter Ross - exif.c, exif.h Thilo Borgmann - ffv1.c Michael Niedermayer - ffwavesynth.c Nicolas George - flac* Justin Ruggles - flashsv* Benjamin Larsson - flicvideo.c Mike Melanson - g722.c Martin Storsjo - g726.c Roman Shaposhnik - gifdec.c Baptiste Coudurier - h261* Michael Niedermayer - h263* Michael Niedermayer - h264* Loren Merritt, Michael Niedermayer - huffyuv.c Michael Niedermayer - 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 - 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 - libgsm.c Michel Bardiaux - libopenjpeg.c Jaikrishnan Menon - libopenjpegenc.c Michael Bradshaw - libschroedinger* David Conrad - libspeexdec.c Justin Ruggles - libtheoraenc.c David Conrad - libutvideo* Derek Buitenhuis - libvorbis.c David Conrad - libvpx* James Zern - libx264.c Mans Rullgard, Jason Garrett-Glaser - 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 - 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 - qtrle.c Mike Melanson - ra144.c, ra144.h, ra288.c, ra288.h Roberto Togni - resample2.c Michael Niedermayer - rl2.c Sascha Sommer - rpza.c Roberto Togni - rtjpeg.c, rtjpeg.h Reimar Doeffinger - rv10.c Michael Niedermayer - rv3* Kostya Shishkov - rv4* Kostya Shishkov - s3tc* Ivo van Poorten - smacker.c Kostya Shishkov - smc.c Mike Melanson - smvjpegdec.c Ash Hughes - snow.c Michael Niedermayer, Loren Merritt - sonic.c Alex Beregszaszi - srt* Aurelien Jacobs - 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 - vcr1.c Michael Niedermayer - vda_h264_dec.c Xidorn Quan - vima.c Paul B Mahol - vmnc.c Kostya Shishkov - vorbis_dec.c Denes Balatoni, David Conrad - vorbis_enc.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 - 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* Laurent Aimar - libstagefright.cpp Mohamed Naufal - vaapi* Gwenole Beauchesne - vda* Sebastien Zwickert - vdpau* Carl Eugen Hoyos - - -libavdevice -=========== - External Interface: - libavdevice/avdevice.h - - - dshow.c Roger Pack - fbdev_enc.c Lukasz Marek - iec61883.c Georg Lippitsch - lavfi Stefano Sabatini - libdc1394.c Roman Shaposhnik - pulse_audio_enc.c Lukasz Marek - sdl Stefano Sabatini - v4l2.c Luca Abeni - vfwcap.c Ramiro Polla - -libavfilter -=========== - -Generic parts: - graphdump.c Nicolas George - -Filters: - af_adelay.c Paul B Mahol - af_aecho.c Paul B Mahol - af_afade.c Paul B Mahol - af_amerge.c Nicolas George - af_aphaser.c Paul B Mahol - af_aresample.c Michael Niedermayer - af_astats.c Paul B Mahol - af_astreamsync.c Nicolas George - af_atempo.c Pavel Koshevoy - af_biquads.c Paul B Mahol - af_compand.c Paul B Mahol - af_ladspa.c Paul B Mahol - af_pan.c Nicolas George - avf_avectorscope.c Paul B Mahol - vf_blend.c Paul B Mahol - vf_colorbalance.c Paul B Mahol - vf_delogo.c Jean Delvare (CC ) - vf_drawbox.c/drawgrid Andrey Utkin - vf_extractplanes.c Paul B Mahol - vf_histogram.c Paul B Mahol - vf_il.c Paul B Mahol - vf_mergeplanes.c Paul B Mahol - vf_psnr.c Paul B Mahol - vf_scale.c Michael Niedermayer - vf_separatefields.c Paul B Mahol - vf_stereo3d.c Paul B Mahol - vf_telecine.c Paul B Mahol - vf_yadif.c Michael Niedermayer - -Sources: - vsrc_mandelbrot.c Michael Niedermayer - -libavformat -=========== - -Generic parts: - External Interface: - libavformat/avformat.h Michael Niedermayer - Utility Code: - libavformat/utils.c Michael Niedermayer - - -Muxers/Demuxers: - 4xm.c Mike Melanson - adtsenc.c Robert Swain - afc.c Paul B Mahol - aiffdec.c Baptiste Coudurier, Matthieu Bouron - aiffenc.c Baptiste Coudurier, Matthieu Bouron - ape.c Kostya Shishkov - ass* Aurelien Jacobs - astdec.c Paul B Mahol - astenc.c James Almer - avi* Michael Niedermayer - avisynth.c AvxSynth Team (avxsynth.testing at gmail dot com) - avr.c Paul B Mahol - bink.c Peter Ross - brstm.c Paul B Mahol - caf* Peter Ross - cdxl.c Paul B Mahol - crc.c Michael Niedermayer - daud.c Reimar Doeffinger - 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 - gxfenc.c Baptiste Coudurier - hls.c Anssi Hannula - idcin.c Mike Melanson - idroqdec.c Mike Melanson - iff.c Jaikrishnan Menon - img2*.c Michael Niedermayer - 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 - lmlm4.c Ivo van Poorten - lvfdec.c Paul B Mahol - lxfdec.c Tomas Härdin - matroska.c Aurelien Jacobs - matroskadec.c Aurelien Jacobs - matroskaenc.c David Conrad - metadata* Aurelien Jacobs - mgsts.c Paul B Mahol - microdvd* Aurelien Jacobs - mm.c Peter Ross - mov.c Michael Niedermayer, Baptiste Coudurier - movenc.c Baptiste Coudurier, Matthieu Bouron - mpc.c Kostya Shishkov - mpeg.c Michael Niedermayer - mpegenc.c Michael Niedermayer - mpegts* Baptiste Coudurier - msnwc_tcp.c Ramiro Polla - mtv.c Reynaldo H. Verdejo Pinochet - mxf* Baptiste Coudurier - mxfdec.c Tomas Härdin - nistspheredec.c Paul B Mahol - nsvdec.c Francois Revol - nut.c Michael Niedermayer - nuv.c Reimar Doeffinger - oggdec.c, oggdec.h David Conrad - oggenc.c Baptiste Coudurier - oggparse*.c David Conrad - oma.c Maxim Poliakovski - paf.c Paul B Mahol - psxstr.c Mike Melanson - pva.c Ivo van Poorten - pvfdec.c Paul B Mahol - r3d.c Baptiste Coudurier - 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 - rtp.c, rtpenc.c Martin Storsjo - rtpdec_asf.* Ronald S. Bultje - rtpenc_mpv.*, rtpenc_aac.* Martin Storsjo - rtsp.c Luca Barbato - sbgdec.c Nicolas George - sdp.c Martin Storsjo - segafilm.c Mike Melanson - siff.c Kostya Shishkov - smacker.c Kostya Shishkov - smjpeg* Paul B Mahol - spdif* Anssi Hannula - srtdec.c Aurelien Jacobs - swf.c Baptiste Coudurier - takdec.c Paul B Mahol - tta.c Alex Beregszaszi - txd.c Ivo van Poorten - voc.c Aurelien Jacobs - wav.c Michael Niedermayer - wc3movie.c Mike Melanson - webvtt* Matthew J Heaney - westwood.c Mike Melanson - wtv.c Peter Ross - wv.c Kostya Shishkov - wvenc.c Paul B Mahol - -Protocols: - bluray.c Petri Hintukainen - ftp.c Lukasz Marek - http.c Ronald S. Bultje - libssh.c Lukasz Marek - mms*.c Ronald S. Bultje - udp.c Luca Abeni - - -libswresample -============= - -Generic parts: - audioconvert.c Michael Niedermayer - dither.c Michael Niedermayer - rematrix*.c Michael Niedermayer - swresample*.c Michael Niedermayer - -Resamplers: - resample*.c Michael Niedermayer - soxr_resample.c Rob Sykes - - -Operating systems / CPU architectures -===================================== - -Alpha Mans Rullgard, Falk Hueffner -ARM Mans Rullgard -AVR32 Mans Rullgard -MIPS Mans Rullgard, 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 -ADI/Blackfin DSP Marc Hoffman -Sparc Roman Shaposhnik -x86 Michael Niedermayer - - -Releases -======== - -2.1 Michael Niedermayer -1.2 Michael Niedermayer - -If you want to maintain an older release, please contact us - - -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 -Ben Littler 3EE3 3723 E560 3214 A8CD 4DEB 2CDB FCE7 768C 8D2C -Benoit Fouet B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8 -Bœsch Clément 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 -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 -Peter Ross A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B -Reimar Döffinger C61D 16E5 9E2C D10C 8958 38A4 0899 A2B9 06D4 D9C7 -Reinhard Tartler 9300 5DC2 7E87 6C37 ED7B CA9A 9808 3544 9453 48A4 -Reynaldo H. Verdejo Pinochet 6E27 CD34 170C C78E 4D4F 5F40 C18E 077F 3114 452A -Robert Swain EE7A 56EA 4A81 A7B5 2001 A521 67FA 362D A2FC 3E71 -Sascha Sommer 38A0 F88B 868E 9D3A 97D4 D6A0 E823 706F 1E07 0D3C -Stefano Sabatini 0D0B AD6B 5330 BBAD D3D6 6A0C 719C 2839 FC43 2D5F -Stephan Hilb 4F38 0B3A 5F39 B99B F505 E562 8D5C 5554 4E17 8863 -Tomas Härdin A79D 4E3D F38F 763F 91F5 8B33 A01E 8AE0 41BB 2551 -Wei Gao 4269 7741 857A 0E60 9EC5 08D2 4744 4EFA 62C1 87B9 diff --git a/Makefile b/Makefile index 7317f254fb..25c3b32d40 100644 --- a/Makefile +++ b/Makefile @@ -1,35 +1,82 @@ -MAIN_MAKEFILE=1 include config.mak vpath %.c $(SRC_PATH) -vpath %.cpp $(SRC_PATH) vpath %.h $(SRC_PATH) vpath %.S $(SRC_PATH) vpath %.asm $(SRC_PATH) -vpath %.rc $(SRC_PATH) vpath %.v $(SRC_PATH) vpath %.texi $(SRC_PATH) -vpath %/fate_config.sh.template $(SRC_PATH) -AVPROGS-$(CONFIG_FFMPEG) += ffmpeg -AVPROGS-$(CONFIG_FFPLAY) += ffplay -AVPROGS-$(CONFIG_FFPROBE) += ffprobe -AVPROGS-$(CONFIG_FFSERVER) += ffserver +ifndef V +Q = @ +ECHO = printf "$(1)\t%s\n" $(2) +BRIEF = CC HOSTCC HOSTLD AS YASM AR LD +SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM STRIP +MSG = $@ +M = @$(call ECHO,$(TAG),$@); +$(foreach VAR,$(BRIEF), \ + $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR)))) +$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) +$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_PATH)/%=%)); $(INSTALL)) +endif -AVPROGS := $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF)) -INSTPROGS = $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF)) +ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil swscale + +IFLAGS := -I. -I$(SRC_PATH) +CPPFLAGS := $(IFLAGS) $(CPPFLAGS) +CFLAGS += $(ECFLAGS) +CCFLAGS = $(CPPFLAGS) $(CFLAGS) +ASFLAGS := $(CPPFLAGS) $(ASFLAGS) +YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm +HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS) +LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS) + +define COMPILE + $(call $(1)DEP,$(1)) + $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $< +endef + +COMPILE_C = $(call COMPILE,CC) +COMPILE_S = $(call COMPILE,AS) +COMPILE_HOSTC = $(call COMPILE,HOSTCC) + +%.o: %.c + $(COMPILE_C) + +%.o: %.S + $(COMPILE_S) + +%_host.o: %.c + $(COMPILE_HOSTC) + +%.i: %.c + $(CC) $(CCFLAGS) $(CC_E) $< + +%.h.c: + $(Q)echo '#include "$*.h"' >$@ + +%.ver: %.v + $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ + +%.c %.h: TAG = GEN + +AVPROGS-$(CONFIG_AVCONV) += avconv +AVPROGS-$(CONFIG_AVPLAY) += avplay +AVPROGS-$(CONFIG_AVPROBE) += avprobe +AVPROGS-$(CONFIG_AVSERVER) += avserver + +AVPROGS := $(AVPROGS-yes:%=%$(EXESUF)) PROGS += $(AVPROGS) -AVBASENAMES = ffmpeg ffplay ffprobe ffserver -ALLAVPROGS = $(AVBASENAMES:%=%$(PROGSSUF)$(EXESUF)) -ALLAVPROGS_G = $(AVBASENAMES:%=%$(PROGSSUF)_g$(EXESUF)) +AVBASENAMES = avconv avplay avprobe avserver +ALLAVPROGS = $(AVBASENAMES:%=%$(EXESUF)) $(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 -TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 +OBJS-avconv += avconv_opt.o avconv_filter.o +OBJS-avconv-$(HAVE_VDPAU_X11) += avconv_vdpau.o + +TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options TOOLS = qt-faststart trasher TOOLS-$(CONFIG_ZLIB) += cws2fws @@ -39,14 +86,11 @@ FFLIBS-$(CONFIG_AVFILTER) += avfilter FFLIBS-$(CONFIG_AVFORMAT) += avformat FFLIBS-$(CONFIG_AVRESAMPLE) += avresample FFLIBS-$(CONFIG_AVCODEC) += avcodec -FFLIBS-$(CONFIG_POSTPROC) += postproc -FFLIBS-$(CONFIG_SWRESAMPLE)+= swresample FFLIBS-$(CONFIG_SWSCALE) += swscale 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 +DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.avpreset) SKIPHEADERS = cmdutils_common_opts.h compat/w32pthreads.h @@ -73,8 +117,7 @@ SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \ ARMV5TE-OBJS ARMV6-OBJS VFP-OBJS NEON-OBJS \ ALTIVEC-OBJS VIS-OBJS \ MMX-OBJS YASM-OBJS \ - MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \ - OBJS SLIBOBJS HOSTOBJS TESTOBJS + OBJS HOSTOBJS TESTOBJS define RESET $(1) := @@ -95,22 +138,16 @@ include $(SRC_PATH)/doc/Makefile define DOPROG OBJS-$(1) += $(1).o $(EXEOBJS) $(OBJS-$(1)-yes) -$(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) +$(1)$(EXESUF): $$(OBJS-$(1)) $$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) -$(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) -$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) +$(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) +$(1)$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) -include $$(OBJS-$(1):.o=.d) endef -$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(PROGSSUF)$(EXESUF)=)))) +$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(EXESUF)=)))) -ffprobe.o cmdutils.o : libavutil/ffversion.h - -$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) - $(CP) $< $@ - $(STRIP) $@ - -%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) +$(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS) $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) OBJDIRS += tools @@ -123,8 +160,8 @@ GIT_LOG = $(SRC_PATH)/.git/logs/HEAD .version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak .version: M=@ -libavutil/ffversion.h .version: - $(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION) +version.h .version: + $(M)$(VERSION_SH) $(SRC_PATH) version.h $(EXTRA_VERSION) $(Q)touch .version # force version.sh to run whenever version might have changed @@ -143,12 +180,11 @@ install-progs-$(CONFIG_SHARED): install-libs install-progs: install-progs-yes $(AVPROGS) $(Q)mkdir -p "$(BINDIR)" - $(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)" + $(INSTALL) -c -m 755 $(AVPROGS) "$(BINDIR)" -install-data: $(DATA_FILES) $(EXAMPLES_FILES) - $(Q)mkdir -p "$(DATADIR)/examples" +install-data: $(DATA_FILES) + $(Q)mkdir -p "$(DATADIR)" $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" - $(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples" uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data @@ -159,20 +195,19 @@ uninstall-data: $(RM) -r "$(DATADIR)" clean:: - $(RM) $(ALLAVPROGS) $(ALLAVPROGS_G) + $(RM) $(ALLAVPROGS) $(RM) $(CLEANSUFFIXES) $(RM) $(CLEANSUFFIXES:%=tools/%) - $(RM) -r coverage-html $(RM) -rf coverage.info lcov distclean:: $(RM) $(DISTCLEANSUFFIXES) - $(RM) config.* .config libavutil/avconfig.h .version version.h libavutil/ffversion.h libavcodec/codec_names.h + $(RM) config.* .config libavutil/avconfig.h .version version.h config: - $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) + $(SRC_PATH)/configure $(value LIBAV_CONFIGURATION) -check: all alltools examples testprogs fate +check: all alltools checkheaders examples testprogs fate include $(SRC_PATH)/tests/Makefile @@ -187,5 +222,5 @@ $(sort $(OBJDIRS)): # so this saves some time on slow systems. .SUFFIXES: -.PHONY: all all-yes alltools check *clean config install* +.PHONY: all all-yes alltools check *clean config examples install* .PHONY: testprogs uninstall* diff --git a/README b/README index ae007bcccf..afef671611 100644 --- a/README +++ b/README @@ -1,18 +1,12 @@ -FFmpeg README -------------- +Libav README +------------ 1) Documentation ---------------- -* Read the documentation in the doc/ directory in git. - You can also view it online at http://ffmpeg.org/documentation.html +* Read the documentation in the doc/ directory. 2) Licensing ------------ * See the LICENSE file. - -3) Build and Install --------------------- - -* See the INSTALL file. diff --git a/RELEASE b/RELEASE index 7f9e2dc607..ae33bab0e8 100644 --- a/RELEASE +++ b/RELEASE @@ -1 +1 @@ -2.1.git +10_alpha1 diff --git a/arch.mak b/arch.mak index b71c8e51f3..09d24af49a 100644 --- a/arch.mak +++ b/arch.mak @@ -3,11 +3,6 @@ OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes) OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-OBJS-yes) OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes) -OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes) -OBJS-$(HAVE_MIPS32R2) += $(MIPS32R2-OBJS) $(MIPS32R2-OBJS-yes) -OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes) -OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes) - OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes) OBJS-$(HAVE_VIS) += $(VIS-OBJS) $(VIS-OBJS-yes) diff --git a/ffmpeg.c b/avconv.c similarity index 50% rename from ffmpeg.c rename to avconv.c index 5ccbf10012..17dc468f6b 100644 --- a/ffmpeg.c +++ b/avconv.c @@ -1,49 +1,38 @@ /* - * Copyright (c) 2000-2003 Fabrice Bellard + * avconv main + * Copyright (c) 2000-2011 The libav developers. * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav 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, + * Libav 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 + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -/** - * @file - * multimedia converter based on the FFmpeg libraries - */ - #include "config.h" #include #include #include #include #include +#include #include #include -#if HAVE_ISATTY -#if HAVE_IO_H -#include -#endif -#if HAVE_UNISTD_H -#include -#endif -#endif - #include "libavformat/avformat.h" #include "libavdevice/avdevice.h" -#include "libswresample/swresample.h" +#include "libswscale/swscale.h" +#include "libavresample/avresample.h" #include "libavutil/opt.h" #include "libavutil/channel_layout.h" #include "libavutil/parseutils.h" @@ -56,14 +45,9 @@ #include "libavutil/avstring.h" #include "libavutil/libm.h" #include "libavutil/imgutils.h" -#include "libavutil/timestamp.h" -#include "libavutil/bprint.h" #include "libavutil/time.h" #include "libavformat/os_support.h" -#include "libavformat/ffm.h" // not public API - -# include "libavfilter/avcodec.h" # include "libavfilter/avfilter.h" # include "libavfilter/buffersrc.h" # include "libavfilter/buffersink.h" @@ -84,64 +68,36 @@ #include #endif -#if HAVE_TERMIOS_H -#include -#include -#include -#include -#elif HAVE_KBHIT -#include -#endif - #if HAVE_PTHREADS #include #endif #include -#include "ffmpeg.h" +#include "avconv.h" #include "cmdutils.h" #include "libavutil/avassert.h" -const char program_name[] = "ffmpeg"; +const char program_name[] = "avconv"; const int program_birth_year = 2000; static FILE *vstats_file; -const char *const forced_keyframes_const_names[] = { - "n", - "n_forced", - "prev_forced_n", - "prev_forced_t", - "t", - NULL -}; - -static void do_video_stats(OutputStream *ost, int frame_size); -static int64_t getutime(void); -static int64_t getmaxrss(void); - -static int run_as_daemon = 0; static int64_t video_size = 0; static int64_t audio_size = 0; -static int64_t subtitle_size = 0; static int64_t extra_size = 0; static int nb_frames_dup = 0; static int nb_frames_drop = 0; -static int64_t decode_error_stat[2]; -static int current_time; -AVIOContext *progress_avio = NULL; -static uint8_t *subtitle_out; #if HAVE_PTHREADS /* signal to input threads that they should exit; set by the main thread */ static int transcoding_finished; #endif -#define DEFAULT_PASS_LOGFILENAME_PREFIX "ffmpeg2pass" +#define DEFAULT_PASS_LOGFILENAME_PREFIX "av2pass" InputStream **input_streams = NULL; int nb_input_streams = 0; @@ -156,159 +112,9 @@ int nb_output_files = 0; FilterGraph **filtergraphs; int nb_filtergraphs; -#if HAVE_TERMIOS_H - -/* init terminal so that we can grab keys */ -static struct termios oldtty; -static int restore_tty; -#endif - -static void free_input_threads(void); - - -/* sub2video hack: - Convert subtitles to video with alpha to insert them in filter graphs. - This is a temporary solution until libavfilter gets real subtitles support. - */ - -static int sub2video_get_blank_frame(InputStream *ist) +static void term_exit(void) { - int ret; - AVFrame *frame = ist->sub2video.frame; - - av_frame_unref(frame); - ist->sub2video.frame->width = ist->sub2video.w; - ist->sub2video.frame->height = ist->sub2video.h; - ist->sub2video.frame->format = AV_PIX_FMT_RGB32; - if ((ret = av_frame_get_buffer(frame, 32)) < 0) - return ret; - memset(frame->data[0], 0, frame->height * frame->linesize[0]); - return 0; -} - -static void sub2video_copy_rect(uint8_t *dst, int dst_linesize, int w, int h, - AVSubtitleRect *r) -{ - uint32_t *pal, *dst2; - uint8_t *src, *src2; - int x, y; - - if (r->type != SUBTITLE_BITMAP) { - av_log(NULL, AV_LOG_WARNING, "sub2video: non-bitmap subtitle\n"); - return; - } - if (r->x < 0 || r->x + r->w > w || r->y < 0 || r->y + r->h > h) { - av_log(NULL, AV_LOG_WARNING, "sub2video: rectangle overflowing\n"); - return; - } - - dst += r->y * dst_linesize + r->x * 4; - src = r->pict.data[0]; - pal = (uint32_t *)r->pict.data[1]; - for (y = 0; y < r->h; y++) { - dst2 = (uint32_t *)dst; - src2 = src; - for (x = 0; x < r->w; x++) - *(dst2++) = pal[*(src2++)]; - dst += dst_linesize; - src += r->pict.linesize[0]; - } -} - -static void sub2video_push_ref(InputStream *ist, int64_t pts) -{ - AVFrame *frame = ist->sub2video.frame; - int i; - - av_assert1(frame->data[0]); - ist->sub2video.last_pts = frame->pts = pts; - for (i = 0; i < ist->nb_filters; i++) - av_buffersrc_add_frame_flags(ist->filters[i]->filter, frame, - AV_BUFFERSRC_FLAG_KEEP_REF | - AV_BUFFERSRC_FLAG_PUSH); -} - -static void sub2video_update(InputStream *ist, AVSubtitle *sub) -{ - int w = ist->sub2video.w, h = ist->sub2video.h; - AVFrame *frame = ist->sub2video.frame; - int8_t *dst; - int dst_linesize; - int num_rects, i; - int64_t pts, end_pts; - - if (!frame) - return; - if (sub) { - pts = av_rescale_q(sub->pts + sub->start_display_time * 1000, - AV_TIME_BASE_Q, ist->st->time_base); - end_pts = av_rescale_q(sub->pts + sub->end_display_time * 1000, - AV_TIME_BASE_Q, ist->st->time_base); - num_rects = sub->num_rects; - } else { - pts = ist->sub2video.end_pts; - end_pts = INT64_MAX; - num_rects = 0; - } - if (sub2video_get_blank_frame(ist) < 0) { - av_log(ist->st->codec, AV_LOG_ERROR, - "Impossible to get a blank canvas.\n"); - return; - } - dst = frame->data [0]; - dst_linesize = frame->linesize[0]; - for (i = 0; i < num_rects; i++) - sub2video_copy_rect(dst, dst_linesize, w, h, sub->rects[i]); - sub2video_push_ref(ist, pts); - ist->sub2video.end_pts = end_pts; -} - -static void sub2video_heartbeat(InputStream *ist, int64_t pts) -{ - InputFile *infile = input_files[ist->file_index]; - int i, j, nb_reqs; - int64_t pts2; - - /* When a frame is read from a file, examine all sub2video streams in - the same file and send the sub2video frame again. Otherwise, decoded - video frames could be accumulating in the filter graph while a filter - (possibly overlay) is desperately waiting for a subtitle frame. */ - for (i = 0; i < infile->nb_streams; i++) { - InputStream *ist2 = input_streams[infile->ist_index + i]; - if (!ist2->sub2video.frame) - continue; - /* subtitles seem to be usually muxed ahead of other streams; - if not, substracting a larger time here is necessary */ - pts2 = av_rescale_q(pts, ist->st->time_base, ist2->st->time_base) - 1; - /* do not send the heartbeat frame if the subtitle is already ahead */ - if (pts2 <= ist2->sub2video.last_pts) - continue; - if (pts2 >= ist2->sub2video.end_pts || !ist2->sub2video.frame->data[0]) - sub2video_update(ist2, NULL); - for (j = 0, nb_reqs = 0; j < ist2->nb_filters; j++) - nb_reqs += av_buffersrc_get_nb_failed_requests(ist2->filters[j]->filter); - if (nb_reqs) - sub2video_push_ref(ist2, pts2); - } -} - -static void sub2video_flush(InputStream *ist) -{ - int i; - - for (i = 0; i < ist->nb_filters; i++) - av_buffersrc_add_ref(ist->filters[i]->filter, NULL, 0); -} - -/* end of sub2video hack */ - -void term_exit(void) -{ - av_log(NULL, AV_LOG_QUIET, "%s", ""); -#if HAVE_TERMIOS_H - if(restore_tty) - tcsetattr (0, TCSANOW, &oldtty); -#endif + av_log(NULL, AV_LOG_QUIET, ""); } static volatile int received_sigterm = 0; @@ -320,39 +126,10 @@ sigterm_handler(int sig) received_sigterm = sig; received_nb_signals++; term_exit(); - if(received_nb_signals > 3) - exit_program(123); } -void term_init(void) +static void term_init(void) { -#if HAVE_TERMIOS_H - if(!run_as_daemon){ - struct termios tty; - int istty = 1; -#if HAVE_ISATTY - istty = isatty(0) && isatty(2); -#endif - if (istty && tcgetattr (0, &tty) == 0) { - oldtty = tty; - restore_tty = 1; - - tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP - |INLCR|IGNCR|ICRNL|IXON); - tty.c_oflag |= OPOST; - tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN); - tty.c_cflag &= ~(CSIZE|PARENB); - tty.c_cflag |= CS8; - tty.c_cc[VMIN] = 1; - tty.c_cc[VTIME] = 0; - - tcsetattr (0, TCSANOW, &tty); - } - signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */ - } -#endif - avformat_network_deinit(); - signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */ signal(SIGTERM, sigterm_handler); /* Termination (ANSI). */ #ifdef SIGXCPU @@ -360,62 +137,6 @@ void term_init(void) #endif } -/* read a key without blocking */ -static int read_key(void) -{ - unsigned char ch; -#if HAVE_TERMIOS_H - int n = 1; - struct timeval tv; - fd_set rfds; - - FD_ZERO(&rfds); - FD_SET(0, &rfds); - tv.tv_sec = 0; - tv.tv_usec = 0; - n = select(1, &rfds, NULL, NULL, &tv); - if (n > 0) { - n = read(0, &ch, 1); - if (n == 1) - return ch; - - return n; - } -#elif HAVE_KBHIT -# if HAVE_PEEKNAMEDPIPE - static int is_pipe; - static HANDLE input_handle; - DWORD dw, nchars; - if(!input_handle){ - input_handle = GetStdHandle(STD_INPUT_HANDLE); - is_pipe = !GetConsoleMode(input_handle, &dw); - } - - if (stdin->_cnt > 0) { - read(0, &ch, 1); - return ch; - } - if (is_pipe) { - /* When running under a GUI, you will end here. */ - if (!PeekNamedPipe(input_handle, NULL, 0, NULL, &nchars, NULL)) { - // input pipe may have been closed by the program that ran ffmpeg - return -1; - } - //Read it - if(nchars != 0) { - read(0, &ch, 1); - return ch; - }else{ - return -1; - } - } -# endif - if(kbhit()) - return(getch()); -#endif - return -1; -} - static int decode_interrupt_cb(void *ctx) { return received_nb_signals > 1; @@ -423,15 +144,10 @@ static int decode_interrupt_cb(void *ctx) const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL }; -static void ffmpeg_cleanup(int ret) +static void avconv_cleanup(int ret) { int i, j; - if (do_benchmark) { - int maxrss = getmaxrss() / 1024; - printf("bench: maxrss=%ikB\n", maxrss); - } - for (i = 0; i < nb_filtergraphs; i++) { avfilter_graph_free(&filtergraphs[i]->graph); for (j = 0; j < filtergraphs[i]->nb_inputs; j++) { @@ -449,8 +165,6 @@ static void ffmpeg_cleanup(int ret) } av_freep(&filtergraphs); - av_freep(&subtitle_out); - /* close files */ for (i = 0; i < nb_output_files; i++) { AVFormatContext *s = output_files[i]->ctx; @@ -473,14 +187,10 @@ static void ffmpeg_cleanup(int ret) av_parser_close(output_streams[i]->parser); av_freep(&output_streams[i]->forced_keyframes); - av_expr_free(output_streams[i]->forced_keyframes_pexpr); av_freep(&output_streams[i]->avfilter); av_freep(&output_streams[i]->logfile_prefix); av_freep(&output_streams[i]); } -#if HAVE_PTHREADS - free_input_threads(); -#endif for (i = 0; i < nb_input_files; i++) { avformat_close_input(&input_files[i]->ctx); av_freep(&input_files[i]); @@ -489,8 +199,6 @@ static void ffmpeg_cleanup(int ret) av_frame_free(&input_streams[i]->decoded_frame); av_frame_free(&input_streams[i]->filter_frame); av_dict_free(&input_streams[i]->opts); - avsubtitle_free(&input_streams[i]->prev_sub.subtitle); - av_frame_free(&input_streams[i]->sub2video.frame); av_freep(&input_streams[i]->filters); av_freep(&input_streams[i]->hwaccel_device); av_freep(&input_streams[i]); @@ -512,8 +220,8 @@ static void ffmpeg_cleanup(int ret) if (received_sigterm) { av_log(NULL, AV_LOG_INFO, "Received signal %d: terminating.\n", (int) received_sigterm); + exit (255); } - term_exit(); } void assert_avoptions(AVDictionary *m) @@ -527,23 +235,74 @@ void assert_avoptions(AVDictionary *m) static void abort_codec_experimental(AVCodec *c, int encoder) { + const char *codec_string = encoder ? "encoder" : "decoder"; + AVCodec *codec; + av_log(NULL, AV_LOG_FATAL, "%s '%s' is experimental and might produce bad " + "results.\nAdd '-strict experimental' if you want to use it.\n", + codec_string, c->name); + codec = encoder ? avcodec_find_encoder(c->id) : avcodec_find_decoder(c->id); + if (!(codec->capabilities & CODEC_CAP_EXPERIMENTAL)) + av_log(NULL, AV_LOG_FATAL, "Or use the non experimental %s '%s'.\n", + codec_string, codec->name); exit_program(1); } -static void update_benchmark(const char *fmt, ...) +/* + * Update the requested input sample format based on the output sample format. + * This is currently only used to request float output from decoders which + * support multiple sample formats, one of which is AV_SAMPLE_FMT_FLT. + * Ideally this will be removed in the future when decoders do not do format + * conversion and only output in their native format. + */ +static void update_sample_fmt(AVCodecContext *dec, AVCodec *dec_codec, + AVCodecContext *enc) { - if (do_benchmark_all) { - int64_t t = getutime(); - va_list va; - char buf[1024]; + /* if sample formats match or a decoder sample format has already been + requested, just return */ + if (enc->sample_fmt == dec->sample_fmt || + dec->request_sample_fmt > AV_SAMPLE_FMT_NONE) + return; - if (fmt) { - va_start(va, fmt); - vsnprintf(buf, sizeof(buf), fmt, va); - va_end(va); - printf("bench: %8"PRIu64" %s \n", t - current_time, buf); + /* if decoder supports more than one output format */ + if (dec_codec && dec_codec->sample_fmts && + dec_codec->sample_fmts[0] != AV_SAMPLE_FMT_NONE && + dec_codec->sample_fmts[1] != AV_SAMPLE_FMT_NONE) { + const enum AVSampleFormat *p; + int min_dec = INT_MAX, min_inc = INT_MAX; + enum AVSampleFormat dec_fmt = AV_SAMPLE_FMT_NONE; + enum AVSampleFormat inc_fmt = AV_SAMPLE_FMT_NONE; + + /* find a matching sample format in the encoder */ + for (p = dec_codec->sample_fmts; *p != AV_SAMPLE_FMT_NONE; p++) { + if (*p == enc->sample_fmt) { + dec->request_sample_fmt = *p; + return; + } else { + enum AVSampleFormat dfmt = av_get_packed_sample_fmt(*p); + enum AVSampleFormat efmt = av_get_packed_sample_fmt(enc->sample_fmt); + int fmt_diff = 32 * abs(dfmt - efmt); + if (av_sample_fmt_is_planar(*p) != + av_sample_fmt_is_planar(enc->sample_fmt)) + fmt_diff++; + if (dfmt == efmt) { + min_inc = fmt_diff; + inc_fmt = *p; + } else if (dfmt > efmt) { + if (fmt_diff < min_inc) { + min_inc = fmt_diff; + inc_fmt = *p; + } + } else { + if (fmt_diff < min_dec) { + min_dec = fmt_diff; + dec_fmt = *p; + } + } + } } - current_time = t; + + /* if none match, provide the one that matches quality closest */ + dec->request_sample_fmt = min_inc != INT_MAX ? inc_fmt : dec_fmt; } } @@ -553,10 +312,6 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) AVCodecContext *avctx = ost->st->codec; int ret; - if ((avctx->codec_type == AVMEDIA_TYPE_VIDEO && video_sync_method == VSYNC_DROP) || - (avctx->codec_type == AVMEDIA_TYPE_AUDIO && audio_sync_method < 0)) - pkt->pts = pkt->dts = AV_NOPTS_VALUE; - /* * Audio encoders may split the packets -- #frames in != #packets out. * But there is no reordering, so we can limit the number of output packets @@ -578,17 +333,6 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) &new_pkt.data, &new_pkt.size, pkt->data, pkt->size, pkt->flags & AV_PKT_FLAG_KEY); - if(a == 0 && new_pkt.data != pkt->data && new_pkt.destruct) { - uint8_t *t = av_malloc(new_pkt.size + FF_INPUT_BUFFER_PADDING_SIZE); //the new should be a subset of the old so cannot overflow - if(t) { - memcpy(t, new_pkt.data, new_pkt.size); - memset(t + new_pkt.size, 0, FF_INPUT_BUFFER_PADDING_SIZE); - new_pkt.data = t; - new_pkt.buf = NULL; - a = 1; - } else - a = AVERROR(ENOMEM); - } if (a > 0) { av_free_packet(pkt); new_pkt.buf = av_buffer_create(new_pkt.data, new_pkt.size, @@ -596,7 +340,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) if (!new_pkt.buf) exit_program(1); } else if (a < 0) { - av_log(NULL, AV_LOG_ERROR, "Failed to open bitstream filter %s for stream %d with codec %s", + av_log(NULL, AV_LOG_ERROR, "%s failed for stream %d, codec %s", bsfc->filter->name, pkt->stream_index, avctx->codec ? avctx->codec->name : "copy"); print_error("", a); @@ -609,41 +353,25 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) } if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS) && - (avctx->codec_type == AVMEDIA_TYPE_AUDIO || avctx->codec_type == AVMEDIA_TYPE_VIDEO) && - pkt->dts != AV_NOPTS_VALUE && - ost->last_mux_dts != AV_NOPTS_VALUE) { - int64_t max = ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT); - if (pkt->dts < max) { - int loglevel = max - pkt->dts > 2 || avctx->codec_type == AVMEDIA_TYPE_VIDEO ? AV_LOG_WARNING : AV_LOG_DEBUG; - av_log(s, loglevel, "Non-monotonous DTS in output stream " + ost->last_mux_dts != AV_NOPTS_VALUE && + pkt->dts < ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT)) { + av_log(NULL, AV_LOG_WARNING, "Non-monotonous DTS in output stream " "%d:%d; previous: %"PRId64", current: %"PRId64"; ", ost->file_index, ost->st->index, ost->last_mux_dts, pkt->dts); if (exit_on_error) { av_log(NULL, AV_LOG_FATAL, "aborting.\n"); exit_program(1); } - av_log(s, loglevel, "changing to %"PRId64". This may result " + av_log(NULL, AV_LOG_WARNING, "changing to %"PRId64". This may result " "in incorrect timestamps in the output file.\n", - max); - if(pkt->pts >= pkt->dts) - pkt->pts = FFMAX(pkt->pts, max); - pkt->dts = max; - } + ost->last_mux_dts + 1); + pkt->dts = ost->last_mux_dts + 1; + if (pkt->pts != AV_NOPTS_VALUE) + pkt->pts = FFMAX(pkt->pts, pkt->dts); } ost->last_mux_dts = pkt->dts; pkt->stream_index = ost->index; - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "muxer <- type:%s " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s size:%d\n", - av_get_media_type_string(ost->st->codec->codec_type), - av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ost->st->time_base), - av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ost->st->time_base), - pkt->size - ); - } - ret = av_interleaved_write_frame(s, pkt); if (ret < 0) { print_error("av_interleaved_write_frame()", ret); @@ -651,17 +379,6 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) } } -static void close_output_stream(OutputStream *ost) -{ - OutputFile *of = output_files[ost->file_index]; - - ost->finished = 1; - if (of->shortest) { - int64_t end = av_rescale_q(ost->sync_opts - ost->first_pts, ost->st->codec->time_base, AV_TIME_BASE_Q); - of->recording_time = FFMIN(of->recording_time, end); - } -} - static int check_recording_time(OutputStream *ost) { OutputFile *of = output_files[ost->file_index]; @@ -669,7 +386,7 @@ static int check_recording_time(OutputStream *ost) if (of->recording_time != INT64_MAX && av_compare_ts(ost->sync_opts - ost->first_pts, ost->st->codec->time_base, of->recording_time, AV_TIME_BASE_Q) >= 0) { - close_output_stream(ost); + ost->finished = 1; return 0; } return 1; @@ -686,20 +403,14 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost, pkt.data = NULL; pkt.size = 0; - if (!check_recording_time(ost)) - return; - if (frame->pts == AV_NOPTS_VALUE || audio_sync_method < 0) frame->pts = ost->sync_opts; ost->sync_opts = frame->pts + frame->nb_samples; - av_assert0(pkt.size || !pkt.data); - update_benchmark(NULL); if (avcodec_encode_audio2(enc, &pkt, frame, &got_packet) < 0) { - av_log(NULL, AV_LOG_FATAL, "Audio encoding failed (avcodec_encode_audio2)\n"); + av_log(NULL, AV_LOG_FATAL, "Audio encoding failed\n"); exit_program(1); } - update_benchmark("encode_audio %d.%d", ost->file_index, ost->index); if (got_packet) { if (pkt.pts != AV_NOPTS_VALUE) @@ -709,32 +420,25 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost, if (pkt.duration > 0) pkt.duration = av_rescale_q(pkt.duration, enc->time_base, ost->st->time_base); - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder -> type:audio " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s\n", - av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ost->st->time_base), - av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ost->st->time_base)); - } - - audio_size += pkt.size; write_frame(s, &pkt, ost); - av_free_packet(&pkt); + audio_size += pkt.size; } } static void do_subtitle_out(AVFormatContext *s, OutputStream *ost, InputStream *ist, - AVSubtitle *sub) + AVSubtitle *sub, + int64_t pts) { + static uint8_t *subtitle_out = NULL; int subtitle_out_max_size = 1024 * 1024; int subtitle_out_size, nb, i; AVCodecContext *enc; AVPacket pkt; - int64_t pts; - if (sub->pts == AV_NOPTS_VALUE) { + if (pts == AV_NOPTS_VALUE) { av_log(NULL, AV_LOG_ERROR, "Subtitle packets must have a pts\n"); if (exit_on_error) exit_program(1); @@ -755,22 +459,16 @@ static void do_subtitle_out(AVFormatContext *s, else nb = 1; - /* shift timestamp to honor -ss and make check_recording_time() work with -t */ - pts = sub->pts; - if (output_files[ost->file_index]->start_time != AV_NOPTS_VALUE) - pts -= output_files[ost->file_index]->start_time; for (i = 0; i < nb; i++) { - ost->sync_opts = av_rescale_q(pts, AV_TIME_BASE_Q, enc->time_base); + ost->sync_opts = av_rescale_q(pts, ist->st->time_base, enc->time_base); if (!check_recording_time(ost)) return; - sub->pts = pts; + sub->pts = av_rescale_q(pts, ist->st->time_base, AV_TIME_BASE_Q); // start_display_time is required to be 0 sub->pts += av_rescale_q(sub->start_display_time, (AVRational){ 1, 1000 }, AV_TIME_BASE_Q); sub->end_display_time -= sub->start_display_time; sub->start_display_time = 0; - if (i == 1) - sub->num_rects = 0; subtitle_out_size = avcodec_encode_subtitle(enc, subtitle_out, subtitle_out_max_size, sub); if (subtitle_out_size < 0) { @@ -782,7 +480,6 @@ static void do_subtitle_out(AVFormatContext *s, pkt.data = subtitle_out; pkt.size = subtitle_out_size; pkt.pts = av_rescale_q(sub->pts, AV_TIME_BASE_Q, ost->st->time_base); - pkt.duration = av_rescale_q(sub->end_display_time, (AVRational){ 1, 1000 }, ost->st->time_base); if (enc->codec_id == AV_CODEC_ID_DVB_SUBTITLE) { /* XXX: the pts correction is handled here. Maybe handling it in the codec would be better */ @@ -791,109 +488,47 @@ static void do_subtitle_out(AVFormatContext *s, else pkt.pts += 90 * sub->end_display_time; } - subtitle_size += pkt.size; write_frame(s, &pkt, ost); } } static void do_video_out(AVFormatContext *s, OutputStream *ost, - AVFrame *in_picture) + AVFrame *in_picture, + int *frame_size) { int ret, format_video_sync; AVPacket pkt; AVCodecContext *enc = ost->st->codec; - int nb_frames, i; - double sync_ipts, delta; - double duration = 0; - int frame_size = 0; - InputStream *ist = NULL; - if (ost->source_index >= 0) - ist = input_streams[ost->source_index]; - - if(ist && ist->st->start_time != AV_NOPTS_VALUE && ist->st->first_dts != AV_NOPTS_VALUE && ost->frame_rate.num) - duration = 1/(av_q2d(ost->frame_rate) * av_q2d(enc->time_base)); - - sync_ipts = in_picture->pts; - delta = sync_ipts - ost->sync_opts + duration; - - /* by default, we output a single frame */ - nb_frames = 1; + *frame_size = 0; format_video_sync = video_sync_method; - if (format_video_sync == VSYNC_AUTO) { - if(!strcmp(s->oformat->name, "avi")) { - format_video_sync = VSYNC_VFR; - } else - format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : VSYNC_VFR) : VSYNC_CFR; - if ( ist - && format_video_sync == VSYNC_CFR - && input_files[ist->file_index]->ctx->nb_streams == 1 - && input_files[ist->file_index]->input_ts_offset == 0) { - format_video_sync = VSYNC_VSCFR; - } - if (format_video_sync == VSYNC_CFR && copy_ts) { - format_video_sync = VSYNC_VSCFR; - } - } - - switch (format_video_sync) { - case VSYNC_VSCFR: - if (ost->frame_number == 0 && delta - duration >= 0.5) { - av_log(NULL, AV_LOG_DEBUG, "Not duplicating %d initial frames\n", (int)lrintf(delta - duration)); - delta = duration; - ost->sync_opts = lrint(sync_ipts); - } - case VSYNC_CFR: - // FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c - if (delta < -1.1) - nb_frames = 0; - else if (delta > 1.1) - nb_frames = lrintf(delta); - break; - case VSYNC_VFR: - if (delta <= -0.6) - nb_frames = 0; - else if (delta > 0.6) - ost->sync_opts = lrint(sync_ipts); - break; - case VSYNC_DROP: - case VSYNC_PASSTHROUGH: - ost->sync_opts = lrint(sync_ipts); - break; - default: - av_assert0(0); - } - - nb_frames = FFMIN(nb_frames, ost->max_frames - ost->frame_number); - if (nb_frames == 0) { + if (format_video_sync == VSYNC_AUTO) + format_video_sync = (s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : + (s->oformat->flags & AVFMT_VARIABLE_FPS) ? VSYNC_VFR : VSYNC_CFR; + if (format_video_sync != VSYNC_PASSTHROUGH && + ost->frame_number && + in_picture->pts != AV_NOPTS_VALUE && + in_picture->pts < ost->sync_opts) { nb_frames_drop++; av_log(NULL, AV_LOG_VERBOSE, "*** drop!\n"); return; - } else if (nb_frames > 1) { - if (nb_frames > dts_error_threshold * 30) { - av_log(NULL, AV_LOG_ERROR, "%d frame duplication too large, skipping\n", nb_frames - 1); - nb_frames_drop++; - return; - } - nb_frames_dup += nb_frames - 1; - av_log(NULL, AV_LOG_VERBOSE, "*** %d dup!\n", nb_frames - 1); } - /* duplicates frame if needed */ - for (i = 0; i < nb_frames; i++) { + if (in_picture->pts == AV_NOPTS_VALUE) + in_picture->pts = ost->sync_opts; + ost->sync_opts = in_picture->pts; + + + if (!ost->frame_number) + ost->first_pts = in_picture->pts; + av_init_packet(&pkt); pkt.data = NULL; pkt.size = 0; - in_picture->pts = ost->sync_opts; - -#if 1 - if (!check_recording_time(ost)) -#else if (ost->frame_number >= ost->max_frames) -#endif return; if (s->oformat->flags & AVFMT_RAWPICTURE && @@ -903,99 +538,42 @@ static void do_video_out(AVFormatContext *s, method. */ enc->coded_frame->interlaced_frame = in_picture->interlaced_frame; enc->coded_frame->top_field_first = in_picture->top_field_first; - if (enc->coded_frame->interlaced_frame) - enc->field_order = enc->coded_frame->top_field_first ? AV_FIELD_TB:AV_FIELD_BT; - else - enc->field_order = AV_FIELD_PROGRESSIVE; pkt.data = (uint8_t *)in_picture; pkt.size = sizeof(AVPicture); pkt.pts = av_rescale_q(in_picture->pts, enc->time_base, ost->st->time_base); pkt.flags |= AV_PKT_FLAG_KEY; - video_size += pkt.size; write_frame(s, &pkt, ost); } else { - int got_packet, forced_keyframe = 0; - double pts_time; + int got_packet; if (ost->st->codec->flags & (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME) && ost->top_field_first >= 0) in_picture->top_field_first = !!ost->top_field_first; - if (in_picture->interlaced_frame) { - if (enc->codec->id == AV_CODEC_ID_MJPEG) - enc->field_order = in_picture->top_field_first ? AV_FIELD_TT:AV_FIELD_BB; - else - enc->field_order = in_picture->top_field_first ? AV_FIELD_TB:AV_FIELD_BT; - } else - enc->field_order = AV_FIELD_PROGRESSIVE; - in_picture->quality = ost->st->codec->global_quality; if (!enc->me_threshold) in_picture->pict_type = 0; - - pts_time = in_picture->pts != AV_NOPTS_VALUE ? - in_picture->pts * av_q2d(enc->time_base) : NAN; if (ost->forced_kf_index < ost->forced_kf_count && in_picture->pts >= ost->forced_kf_pts[ost->forced_kf_index]) { - ost->forced_kf_index++; - forced_keyframe = 1; - } else if (ost->forced_keyframes_pexpr) { - double res; - ost->forced_keyframes_expr_const_values[FKF_T] = pts_time; - res = av_expr_eval(ost->forced_keyframes_pexpr, - ost->forced_keyframes_expr_const_values, NULL); - av_dlog(NULL, "force_key_frame: n:%f n_forced:%f prev_forced_n:%f t:%f prev_forced_t:%f -> res:%f\n", - ost->forced_keyframes_expr_const_values[FKF_N], - ost->forced_keyframes_expr_const_values[FKF_N_FORCED], - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N], - ost->forced_keyframes_expr_const_values[FKF_T], - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T], - res); - if (res) { - forced_keyframe = 1; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = - ost->forced_keyframes_expr_const_values[FKF_N]; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = - ost->forced_keyframes_expr_const_values[FKF_T]; - ost->forced_keyframes_expr_const_values[FKF_N_FORCED] += 1; - } - - ost->forced_keyframes_expr_const_values[FKF_N] += 1; - } - if (forced_keyframe) { in_picture->pict_type = AV_PICTURE_TYPE_I; - av_log(NULL, AV_LOG_DEBUG, "Forced keyframe at time %f\n", pts_time); + ost->forced_kf_index++; } - - update_benchmark(NULL); ret = avcodec_encode_video2(enc, &pkt, in_picture, &got_packet); - update_benchmark("encode_video %d.%d", ost->file_index, ost->index); if (ret < 0) { av_log(NULL, AV_LOG_FATAL, "Video encoding failed\n"); exit_program(1); } if (got_packet) { - if (pkt.pts == AV_NOPTS_VALUE && !(enc->codec->capabilities & CODEC_CAP_DELAY)) - pkt.pts = ost->sync_opts; - if (pkt.pts != AV_NOPTS_VALUE) pkt.pts = av_rescale_q(pkt.pts, enc->time_base, ost->st->time_base); if (pkt.dts != AV_NOPTS_VALUE) pkt.dts = av_rescale_q(pkt.dts, enc->time_base, ost->st->time_base); - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder -> type:video " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s\n", - av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ost->st->time_base), - av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ost->st->time_base)); - } - - frame_size = pkt.size; - video_size += pkt.size; write_frame(s, &pkt, ost); - av_free_packet(&pkt); + *frame_size = pkt.size; + video_size += pkt.size; /* if two pass, output log */ if (ost->logfile && enc->stats_out) { @@ -1010,10 +588,6 @@ static void do_video_out(AVFormatContext *s, * flush, we need to limit them here, before they go into encoder. */ ost->frame_number++; - - if (vstats_filename && frame_size) - do_video_stats(ost, frame_size); - } } static double psnr(double d) @@ -1038,14 +612,14 @@ static void do_video_stats(OutputStream *ost, int frame_size) enc = ost->st->codec; if (enc->codec_type == AVMEDIA_TYPE_VIDEO) { - frame_number = ost->st->nb_frames; + frame_number = ost->frame_number; fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number, enc->coded_frame->quality / (float)FF_QP2LAMBDA); if (enc->flags&CODEC_FLAG_PSNR) fprintf(vstats_file, "PSNR= %6.2f ", psnr(enc->coded_frame->error[0] / (enc->width * enc->height * 255.0 * 255.0))); fprintf(vstats_file,"f_size= %6d ", frame_size); /* compute pts value */ - ti1 = ost->st->pts.val * av_q2d(enc->time_base); + ti1 = ost->sync_opts * av_q2d(enc->time_base); if (ti1 < 0.01) ti1 = 0.01; @@ -1057,105 +631,135 @@ static void do_video_stats(OutputStream *ost, int frame_size) } } -/** - * Get and encode new output from any of the filtergraphs, without causing - * activity. - * - * @return 0 for success, <0 for severe errors +/* + * Read one frame for lavfi output for ost and encode it. */ -static int reap_filters(void) +static int poll_filter(OutputStream *ost) { + OutputFile *of = output_files[ost->file_index]; AVFrame *filtered_frame = NULL; - int i; - int64_t frame_pts; + int frame_size, ret; - /* Reap all buffers present in the buffer sinks */ - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - OutputFile *of = output_files[ost->file_index]; - int ret = 0; - - if (!ost->filter) - continue; - - if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { - return AVERROR(ENOMEM); - } - filtered_frame = ost->filtered_frame; - - while (1) { - ret = av_buffersink_get_frame_flags(ost->filter->filter, filtered_frame, - AV_BUFFERSINK_FLAG_NO_REQUEST); - if (ret < 0) { - if (ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) { - av_log(NULL, AV_LOG_WARNING, - "Error in av_buffersink_get_frame_flags(): %s\n", av_err2str(ret)); - } - break; - } - frame_pts = AV_NOPTS_VALUE; - if (filtered_frame->pts != AV_NOPTS_VALUE) { - int64_t start_time = (of->start_time == AV_NOPTS_VALUE) ? 0 : of->start_time; - filtered_frame->pts = frame_pts = av_rescale_q(filtered_frame->pts, - ost->filter->filter->inputs[0]->time_base, - ost->st->codec->time_base) - - av_rescale_q(start_time, - AV_TIME_BASE_Q, - ost->st->codec->time_base); - } - //if (ost->source_index >= 0) - // *filtered_frame= *input_streams[ost->source_index]->decoded_frame; //for me_threshold - - - switch (ost->filter->filter->inputs[0]->type) { - case AVMEDIA_TYPE_VIDEO: - filtered_frame->pts = frame_pts; - if (!ost->frame_aspect_ratio.num) - ost->st->codec->sample_aspect_ratio = filtered_frame->sample_aspect_ratio; - - do_video_out(of->ctx, ost, filtered_frame); - break; - case AVMEDIA_TYPE_AUDIO: - filtered_frame->pts = frame_pts; - if (!(ost->st->codec->codec->capabilities & CODEC_CAP_PARAM_CHANGE) && - ost->st->codec->channels != av_frame_get_channels(filtered_frame)) { - av_log(NULL, AV_LOG_ERROR, - "Audio filter graph output is not normalized and encoder does not support parameter changes\n"); - break; - } - do_audio_out(of->ctx, ost, filtered_frame); - break; - default: - // TODO support subtitle filters - av_assert0(0); - } - - av_frame_unref(filtered_frame); - } + if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { + return AVERROR(ENOMEM); } + filtered_frame = ost->filtered_frame; + + if (ost->enc->type == AVMEDIA_TYPE_AUDIO && + !(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)) + ret = av_buffersink_get_samples(ost->filter->filter, filtered_frame, + ost->st->codec->frame_size); + else + ret = av_buffersink_get_frame(ost->filter->filter, filtered_frame); + + if (ret < 0) + return ret; + + if (filtered_frame->pts != AV_NOPTS_VALUE) { + int64_t start_time = (of->start_time == AV_NOPTS_VALUE) ? 0 : of->start_time; + filtered_frame->pts = av_rescale_q(filtered_frame->pts, + ost->filter->filter->inputs[0]->time_base, + ost->st->codec->time_base) - + av_rescale_q(start_time, + AV_TIME_BASE_Q, + ost->st->codec->time_base); + } + + switch (ost->filter->filter->inputs[0]->type) { + case AVMEDIA_TYPE_VIDEO: + if (!ost->frame_aspect_ratio) + ost->st->codec->sample_aspect_ratio = filtered_frame->sample_aspect_ratio; + + do_video_out(of->ctx, ost, filtered_frame, &frame_size); + if (vstats_filename && frame_size) + do_video_stats(ost, frame_size); + break; + case AVMEDIA_TYPE_AUDIO: + do_audio_out(of->ctx, ost, filtered_frame); + break; + default: + // TODO support subtitle filters + av_assert0(0); + } + + av_frame_unref(filtered_frame); return 0; } -static void print_report(int is_last_report, int64_t timer_start, int64_t cur_time) +/* + * Read as many frames from possible from lavfi and encode them. + * + * Always read from the active stream with the lowest timestamp. If no frames + * are available for it then return EAGAIN and wait for more input. This way we + * can use lavfi sources that generate unlimited amount of frames without memory + * usage exploding. + */ +static int poll_filters(void) +{ + int i, j, ret = 0; + + while (ret >= 0 && !received_sigterm) { + OutputStream *ost = NULL; + int64_t min_pts = INT64_MAX; + + /* choose output stream with the lowest timestamp */ + for (i = 0; i < nb_output_streams; i++) { + int64_t pts = output_streams[i]->sync_opts; + + if (!output_streams[i]->filter || output_streams[i]->finished) + continue; + + pts = av_rescale_q(pts, output_streams[i]->st->codec->time_base, + AV_TIME_BASE_Q); + if (pts < min_pts) { + min_pts = pts; + ost = output_streams[i]; + } + } + + if (!ost) + break; + + ret = poll_filter(ost); + + if (ret == AVERROR_EOF) { + OutputFile *of = output_files[ost->file_index]; + + ost->finished = 1; + + if (of->shortest) { + for (j = 0; j < of->ctx->nb_streams; j++) + output_streams[of->ost_index + j]->finished = 1; + } + + ret = 0; + } else if (ret == AVERROR(EAGAIN)) + return 0; + } + + return ret; +} + +static void print_report(int is_last_report, int64_t timer_start) { char buf[1024]; - AVBPrint buf_script; OutputStream *ost; AVFormatContext *oc; int64_t total_size; AVCodecContext *enc; int frame_number, vid, i; - double bitrate; - int64_t pts = INT64_MIN; + double bitrate, ti1, pts; static int64_t last_time = -1; static int qp_histogram[52]; - int hours, mins, secs, us; - if (!print_stats && !is_last_report && !progress_avio) + if (!print_stats && !is_last_report) return; if (!is_last_report) { + int64_t cur_time; + /* display the report every 0.5 seconds */ + cur_time = av_gettime(); if (last_time == -1) { last_time = cur_time; return; @@ -1171,10 +775,17 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti total_size = avio_size(oc->pb); if (total_size <= 0) // FIXME improve avio_size() so it works with non seekable output too total_size = avio_tell(oc->pb); + if (total_size < 0) { + char errbuf[128]; + av_strerror(total_size, errbuf, sizeof(errbuf)); + av_log(NULL, AV_LOG_VERBOSE, "Bitrate not available, " + "avio_tell() failed: %s\n", errbuf); + total_size = 0; + } buf[0] = '\0'; + ti1 = 1e10; vid = 0; - av_bprint_init(&buf_script, 0, 1); for (i = 0; i < nb_output_streams; i++) { float q = -1; ost = output_streams[i]; @@ -1183,20 +794,13 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti q = enc->coded_frame->quality / (float)FF_QP2LAMBDA; if (vid && enc->codec_type == AVMEDIA_TYPE_VIDEO) { snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "q=%2.1f ", q); - av_bprintf(&buf_script, "stream_%d_%d_q=%.1f\n", - ost->file_index, ost->index, q); } if (!vid && enc->codec_type == AVMEDIA_TYPE_VIDEO) { - float fps, t = (cur_time-timer_start) / 1000000.0; + float t = (av_gettime() - timer_start) / 1000000.0; frame_number = ost->frame_number; - fps = t > 1 ? frame_number / t : 0; - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "frame=%5d fps=%3.*f q=%3.1f ", - frame_number, fps < 9.95, fps, q); - av_bprintf(&buf_script, "frame=%d\n", frame_number); - av_bprintf(&buf_script, "fps=%.1f\n", fps); - av_bprintf(&buf_script, "stream_%d_%d_q=%.1f\n", - ost->file_index, ost->index, q); + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "frame=%5d fps=%3d q=%3.1f ", + frame_number, (t > 1) ? (int)(frame_number / t + 0.5) : 0, q); if (is_last_report) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "L"); if (qp_hist) { @@ -1207,11 +811,10 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti for (j = 0; j < 32; j++) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%X", (int)lrintf(log2(qp_histogram[j] + 1))); } - if ((enc->flags&CODEC_FLAG_PSNR) && (enc->coded_frame || is_last_report)) { + if (enc->flags&CODEC_FLAG_PSNR) { int j; double error, error_sum = 0; double scale, scale_sum = 0; - double p; char type[3] = { 'Y','U','V' }; snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "PSNR="); for (j = 0; j < 3; j++) { @@ -1226,91 +829,43 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti scale /= 4; error_sum += error; scale_sum += scale; - p = psnr(error / scale); - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%c:%2.2f ", type[j], p); - av_bprintf(&buf_script, "stream_%d_%d_psnr_%c=%2.2f\n", - ost->file_index, ost->index, type[j] | 32, p); + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%c:%2.2f ", type[j], psnr(error / scale)); } - p = psnr(error_sum / scale_sum); snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "*:%2.2f ", psnr(error_sum / scale_sum)); - av_bprintf(&buf_script, "stream_%d_%d_psnr_all=%2.2f\n", - ost->file_index, ost->index, p); } vid = 1; } /* compute min output value */ - if ((is_last_report || !ost->finished) && ost->st->pts.val != AV_NOPTS_VALUE) - pts = FFMAX(pts, av_rescale_q(ost->st->pts.val, - ost->st->time_base, AV_TIME_BASE_Q)); + pts = (double)ost->st->pts.val * av_q2d(ost->st->time_base); + if ((pts < ti1) && (pts > 0)) + ti1 = pts; } + if (ti1 < 0.01) + ti1 = 0.01; - secs = pts / AV_TIME_BASE; - us = pts % AV_TIME_BASE; - mins = secs / 60; - secs %= 60; - hours = mins / 60; - mins %= 60; + bitrate = (double)(total_size * 8) / ti1 / 1000.0; - bitrate = pts && total_size >= 0 ? total_size * 8 / (pts / 1000.0) : -1; - - if (total_size < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "size=N/A time="); - else snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "size=%8.0fkB time=", total_size / 1024.0); snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "%02d:%02d:%02d.%02d ", hours, mins, secs, - (100 * us) / AV_TIME_BASE); - if (bitrate < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "bitrate=N/A"); - else snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "bitrate=%6.1fkbits/s", bitrate); - if (total_size < 0) av_bprintf(&buf_script, "total_size=N/A\n"); - else av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size); - av_bprintf(&buf_script, "out_time_ms=%"PRId64"\n", pts); - av_bprintf(&buf_script, "out_time=%02d:%02d:%02d.%06d\n", - hours, mins, secs, us); + "size=%8.0fkB time=%0.2f bitrate=%6.1fkbits/s", + (double)total_size / 1024, ti1, bitrate); if (nb_frames_dup || nb_frames_drop) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " dup=%d drop=%d", nb_frames_dup, nb_frames_drop); - av_bprintf(&buf_script, "dup_frames=%d\n", nb_frames_dup); - av_bprintf(&buf_script, "drop_frames=%d\n", nb_frames_drop); - if (print_stats || is_last_report) { - if (print_stats==1 && AV_LOG_INFO > av_log_get_level()) { - fprintf(stderr, "%s \r", buf); - } else - av_log(NULL, AV_LOG_INFO, "%s \r", buf); + av_log(NULL, AV_LOG_INFO, "%s \r", buf); fflush(stderr); - } - - if (progress_avio) { - av_bprintf(&buf_script, "progress=%s\n", - is_last_report ? "end" : "continue"); - avio_write(progress_avio, buf_script.str, - FFMIN(buf_script.len, buf_script.size - 1)); - avio_flush(progress_avio); - av_bprint_finalize(&buf_script, NULL); - if (is_last_report) { - avio_close(progress_avio); - progress_avio = NULL; - } - } if (is_last_report) { - int64_t raw= audio_size + video_size + subtitle_size + extra_size; + int64_t raw= audio_size + video_size + extra_size; av_log(NULL, AV_LOG_INFO, "\n"); - av_log(NULL, AV_LOG_INFO, "video:%1.0fkB audio:%1.0fkB subtitle:%1.0f global headers:%1.0fkB muxing overhead %f%%\n", + av_log(NULL, AV_LOG_INFO, "video:%1.0fkB audio:%1.0fkB global headers:%1.0fkB muxing overhead %f%%\n", video_size / 1024.0, audio_size / 1024.0, - subtitle_size / 1024.0, extra_size / 1024.0, 100.0 * (total_size - raw) / raw ); - if(video_size + audio_size + subtitle_size + extra_size == 0){ - av_log(NULL, AV_LOG_WARNING, "Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)\n"); - } } } @@ -1359,14 +914,12 @@ static void flush_encoders(void) pkt.data = NULL; pkt.size = 0; - update_benchmark(NULL); ret = encode(enc, &pkt, NULL, &got_packet); - update_benchmark("flush %s %d.%d", desc, ost->file_index, ost->index); if (ret < 0) { av_log(NULL, AV_LOG_FATAL, "%s encoding failed\n", desc); exit_program(1); } - *size += pkt.size; + *size += ret; if (ost->logfile && enc->stats_out) { fprintf(ost->logfile, "%s", enc->stats_out); } @@ -1381,9 +934,6 @@ static void flush_encoders(void) if (pkt.duration > 0) pkt.duration = av_rescale_q(pkt.duration, enc->time_base, ost->st->time_base); write_frame(os, &pkt, ost); - if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && vstats_filename) { - do_video_stats(ost, pkt.size); - } } if (stop_encoding) @@ -1403,7 +953,7 @@ static int check_output_constraints(InputStream *ist, OutputStream *ost) if (ost->source_index != ist_index) return 0; - if (of->start_time != AV_NOPTS_VALUE && ist->pts < of->start_time) + if (of->start_time != AV_NOPTS_VALUE && ist->last_dts < of->start_time) return 0; return 1; @@ -1415,8 +965,6 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p InputFile *f = input_files [ist->file_index]; int64_t start_time = (of->start_time == AV_NOPTS_VALUE) ? 0 : of->start_time; int64_t ost_tb_start_time = av_rescale_q(start_time, AV_TIME_BASE_Q, ost->st->time_base); - int64_t ist_tb_start_time = av_rescale_q(start_time, AV_TIME_BASE_Q, ist->st->time_base); - AVPicture pict; AVPacket opkt; av_init_packet(&opkt); @@ -1425,19 +973,9 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p !ost->copy_initial_nonkeyframes) return; - if (pkt->pts == AV_NOPTS_VALUE) { - if (!ost->frame_number && ist->pts < start_time && - !ost->copy_prior_start) - return; - } else { - if (!ost->frame_number && pkt->pts < ist_tb_start_time && - !ost->copy_prior_start) - return; - } - if (of->recording_time != INT64_MAX && - ist->pts >= of->recording_time + start_time) { - close_output_stream(ost); + ist->last_dts >= of->recording_time + start_time) { + ost->finished = 1; return; } @@ -1445,8 +983,8 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p start_time = f->ctx->start_time; if (f->start_time != AV_NOPTS_VALUE) start_time += f->start_time; - if (ist->pts >= f->recording_time + start_time) { - close_output_stream(ost); + if (ist->last_dts >= f->recording_time + start_time) { + ost->finished = 1; return; } } @@ -1457,8 +995,6 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p else if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { video_size += pkt->size; ost->sync_opts++; - } else if (ost->st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) { - subtitle_size += pkt->size; } if (pkt->pts != AV_NOPTS_VALUE) @@ -1467,20 +1003,11 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p opkt.pts = AV_NOPTS_VALUE; if (pkt->dts == AV_NOPTS_VALUE) - opkt.dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, ost->st->time_base); + opkt.dts = av_rescale_q(ist->last_dts, AV_TIME_BASE_Q, ost->st->time_base); else opkt.dts = av_rescale_q(pkt->dts, ist->st->time_base, ost->st->time_base); opkt.dts -= ost_tb_start_time; - if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && pkt->dts != AV_NOPTS_VALUE) { - int duration = av_get_audio_frame_duration(ist->st->codec, pkt->size); - if(!duration) - duration = ist->st->codec->frame_size; - opkt.dts = opkt.pts = av_rescale_delta(ist->st->time_base, pkt->dts, - (AVRational){1, ist->st->codec->sample_rate}, duration, &ist->filter_in_rescale_delta_last, - ost->st->time_base) - ost_tb_start_time; - } - opkt.duration = av_rescale_q(pkt->duration, ist->st->time_base, ost->st->time_base); opkt.flags = pkt->flags; @@ -1502,15 +1029,6 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p opkt.data = pkt->data; opkt.size = pkt->size; } - av_copy_packet_side_data(&opkt, pkt); - - if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (of->ctx->oformat->flags & AVFMT_RAWPICTURE)) { - /* store AVPicture in AVPacket, as expected by the output format */ - avpicture_fill(&pict, opkt.data, ost->st->codec->pix_fmt, ost->st->codec->width, ost->st->codec->height); - opkt.data = (uint8_t *)&pict; - opkt.size = sizeof(AVPicture); - opkt.flags |= AV_PKT_FLAG_KEY; - } write_frame(of->ctx, &opkt, ost); ost->st->codec->frame_number++; @@ -1523,8 +1041,6 @@ int guess_input_channel_layout(InputStream *ist) if (!dec->channel_layout) { char layout_name[256]; - if (dec->channels > ist->guess_layout_max) - return 0; dec->channel_layout = av_get_default_channel_layout(dec->channels); if (!dec->channel_layout) return 0; @@ -1541,7 +1057,6 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) AVFrame *decoded_frame, *f; AVCodecContext *avctx = ist->st->codec; int i, ret, err = 0, resample_changed; - AVRational decoded_frame_tb; if (!ist->decoded_frame && !(ist->decoded_frame = av_frame_alloc())) return AVERROR(ENOMEM); @@ -1549,38 +1064,23 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) return AVERROR(ENOMEM); decoded_frame = ist->decoded_frame; - update_benchmark(NULL); ret = avcodec_decode_audio4(avctx, decoded_frame, got_output, pkt); - update_benchmark("decode_audio %d.%d", ist->file_index, ist->st->index); - - if (ret >= 0 && avctx->sample_rate <= 0) { - av_log(avctx, AV_LOG_ERROR, "Sample rate %d invalid\n", avctx->sample_rate); - ret = AVERROR_INVALIDDATA; - } - - if (*got_output || ret<0 || pkt->size) - decode_error_stat[ret<0] ++; - if (!*got_output || ret < 0) { if (!pkt->size) { for (i = 0; i < ist->nb_filters; i++) -#if 1 - av_buffersrc_add_ref(ist->filters[i]->filter, NULL, 0); -#else av_buffersrc_add_frame(ist->filters[i]->filter, NULL); -#endif } return ret; } -#if 1 - /* increment next_dts to use for the case where the input stream does not - have timestamps or there are multiple frames in the packet */ - ist->next_pts += ((int64_t)AV_TIME_BASE * decoded_frame->nb_samples) / - avctx->sample_rate; - ist->next_dts += ((int64_t)AV_TIME_BASE * decoded_frame->nb_samples) / - avctx->sample_rate; -#endif + /* if the decoder provides a pts, use it instead of the last packet pts. + the decoder could be delaying output by a packet or more. */ + if (decoded_frame->pts != AV_NOPTS_VALUE) + ist->next_dts = decoded_frame->pts; + else if (pkt->pts != AV_NOPTS_VALUE) { + decoded_frame->pts = pkt->pts; + pkt->pts = AV_NOPTS_VALUE; + } resample_changed = ist->resample_sample_fmt != decoded_frame->format || ist->resample_channels != avctx->channels || @@ -1616,44 +1116,17 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) ist->resample_channels = avctx->channels; for (i = 0; i < nb_filtergraphs; i++) - if (ist_in_filtergraph(filtergraphs[i], ist)) { - FilterGraph *fg = filtergraphs[i]; - int j; - if (configure_filtergraph(fg) < 0) { - av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); - exit_program(1); - } - for (j = 0; j < fg->nb_outputs; j++) { - OutputStream *ost = fg->outputs[j]->ost; - if (ost->enc->type == AVMEDIA_TYPE_AUDIO && - !(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)) - av_buffersink_set_frame_size(ost->filter->filter, - ost->st->codec->frame_size); - } + if (ist_in_filtergraph(filtergraphs[i], ist) && + configure_filtergraph(filtergraphs[i]) < 0) { + av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); + exit_program(1); } } - /* if the decoder provides a pts, use it instead of the last packet pts. - the decoder could be delaying output by a packet or more. */ - if (decoded_frame->pts != AV_NOPTS_VALUE) { - ist->dts = ist->next_dts = ist->pts = ist->next_pts = av_rescale_q(decoded_frame->pts, avctx->time_base, AV_TIME_BASE_Q); - decoded_frame_tb = avctx->time_base; - } else if (decoded_frame->pkt_pts != AV_NOPTS_VALUE) { - decoded_frame->pts = decoded_frame->pkt_pts; - pkt->pts = AV_NOPTS_VALUE; - decoded_frame_tb = ist->st->time_base; - } else if (pkt->pts != AV_NOPTS_VALUE) { - decoded_frame->pts = pkt->pts; - pkt->pts = AV_NOPTS_VALUE; - decoded_frame_tb = ist->st->time_base; - }else { - decoded_frame->pts = ist->dts; - decoded_frame_tb = AV_TIME_BASE_Q; - } if (decoded_frame->pts != AV_NOPTS_VALUE) - decoded_frame->pts = av_rescale_delta(decoded_frame_tb, decoded_frame->pts, - (AVRational){1, ist->st->codec->sample_rate}, decoded_frame->nb_samples, &ist->filter_in_rescale_delta_last, - (AVRational){1, ist->st->codec->sample_rate}); + decoded_frame->pts = av_rescale_q(decoded_frame->pts, + ist->st->time_base, + (AVRational){1, ist->st->codec->sample_rate}); for (i = 0; i < ist->nb_filters; i++) { if (i < ist->nb_filters - 1) { f = ist->filter_frame; @@ -1662,14 +1135,11 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) break; } else f = decoded_frame; - err = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, - AV_BUFFERSRC_FLAG_PUSH); - if (err == AVERROR_EOF) - err = 0; /* ignore */ + + err = av_buffersrc_add_frame(ist->filters[i]->filter, f); if (err < 0) break; } - decoded_frame->pts = AV_NOPTS_VALUE; av_frame_unref(ist->filter_frame); av_frame_unref(decoded_frame); @@ -1680,39 +1150,23 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) { AVFrame *decoded_frame, *f; int i, ret = 0, err = 0, resample_changed; - int64_t best_effort_timestamp; - AVRational *frame_sample_aspect; if (!ist->decoded_frame && !(ist->decoded_frame = av_frame_alloc())) return AVERROR(ENOMEM); if (!ist->filter_frame && !(ist->filter_frame = av_frame_alloc())) return AVERROR(ENOMEM); decoded_frame = ist->decoded_frame; - pkt->dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, ist->st->time_base); - update_benchmark(NULL); ret = avcodec_decode_video2(ist->st->codec, decoded_frame, got_output, pkt); - update_benchmark("decode_video %d.%d", ist->file_index, ist->st->index); - - if (*got_output || ret<0 || pkt->size) - decode_error_stat[ret<0] ++; - if (!*got_output || ret < 0) { if (!pkt->size) { for (i = 0; i < ist->nb_filters; i++) -#if 1 - av_buffersrc_add_ref(ist->filters[i]->filter, NULL, 0); -#else av_buffersrc_add_frame(ist->filters[i]->filter, NULL); -#endif } return ret; } - if(ist->top_field_first>=0) - decoded_frame->top_field_first = ist->top_field_first; - if (ist->hwaccel_retrieve_data && decoded_frame->format == ist->hwaccel_pix_fmt) { err = ist->hwaccel_retrieve_data(ist->st->codec, decoded_frame); if (err < 0) @@ -1720,20 +1174,8 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) } ist->hwaccel_retrieved_pix_fmt = decoded_frame->format; - best_effort_timestamp= av_frame_get_best_effort_timestamp(decoded_frame); - if(best_effort_timestamp != AV_NOPTS_VALUE) - ist->next_pts = ist->pts = av_rescale_q(decoded_frame->pts = best_effort_timestamp, ist->st->time_base, AV_TIME_BASE_Q); - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "decoder -> ist_index:%d type:video " - "frame_pts:%s frame_pts_time:%s best_effort_ts:%"PRId64" best_effort_ts_time:%s keyframe:%d frame_type:%d \n", - ist->st->index, av_ts2str(decoded_frame->pts), - av_ts2timestr(decoded_frame->pts, &ist->st->time_base), - best_effort_timestamp, - av_ts2timestr(best_effort_timestamp, &ist->st->time_base), - decoded_frame->key_frame, decoded_frame->pict_type); - } - + decoded_frame->pts = guess_correct_pts(&ist->pts_ctx, decoded_frame->pkt_pts, + decoded_frame->pkt_dts); pkt->size = 0; if (ist->st->sample_aspect_ratio.num) @@ -1749,24 +1191,23 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) ist->resample_width, ist->resample_height, av_get_pix_fmt_name(ist->resample_pix_fmt), decoded_frame->width, decoded_frame->height, av_get_pix_fmt_name(decoded_frame->format)); + ret = poll_filters(); + if (ret < 0 && (ret != AVERROR_EOF && ret != AVERROR(EAGAIN))) + av_log(NULL, AV_LOG_ERROR, "Error while filtering.\n"); + ist->resample_width = decoded_frame->width; ist->resample_height = decoded_frame->height; ist->resample_pix_fmt = decoded_frame->format; - for (i = 0; i < nb_filtergraphs; i++) { - if (ist_in_filtergraph(filtergraphs[i], ist) && ist->reinit_filters && + for (i = 0; i < nb_filtergraphs; i++) + if (ist_in_filtergraph(filtergraphs[i], ist) && configure_filtergraph(filtergraphs[i]) < 0) { av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); exit_program(1); } - } } - frame_sample_aspect= av_opt_ptr(avcodec_get_frame_class(), decoded_frame, "sample_aspect_ratio"); for (i = 0; i < ist->nb_filters; i++) { - if (!frame_sample_aspect->num) - *frame_sample_aspect = ist->st->sample_aspect_ratio; - if (i < ist->nb_filters - 1) { f = ist->filter_frame; err = av_frame_ref(f, decoded_frame); @@ -1774,14 +1215,10 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) break; } else f = decoded_frame; - ret = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, AV_BUFFERSRC_FLAG_PUSH); - if (ret == AVERROR_EOF) { - ret = 0; /* ignore */ - } else if (ret < 0) { - av_log(NULL, AV_LOG_FATAL, - "Failed to inject frame into filter network: %s\n", av_err2str(ret)); - exit_program(1); - } + + err = av_buffersrc_add_frame(ist->filters[i]->filter, f); + if (err < 0) + break; } fail: @@ -1795,54 +1232,20 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output) AVSubtitle subtitle; int i, ret = avcodec_decode_subtitle2(ist->st->codec, &subtitle, got_output, pkt); - - if (*got_output || ret<0 || pkt->size) - decode_error_stat[ret<0] ++; - - if (ret < 0 || !*got_output) { - if (!pkt->size) - sub2video_flush(ist); + if (ret < 0) return ret; - } - - if (ist->fix_sub_duration) { - int end = 1; - if (ist->prev_sub.got_output) { - end = av_rescale(subtitle.pts - ist->prev_sub.subtitle.pts, - 1000, AV_TIME_BASE); - if (end < ist->prev_sub.subtitle.end_display_time) { - av_log(ist->st->codec, AV_LOG_DEBUG, - "Subtitle duration reduced from %d to %d%s\n", - ist->prev_sub.subtitle.end_display_time, end, - end <= 0 ? ", dropping it" : ""); - ist->prev_sub.subtitle.end_display_time = end; - } - } - FFSWAP(int, *got_output, ist->prev_sub.got_output); - FFSWAP(int, ret, ist->prev_sub.ret); - FFSWAP(AVSubtitle, subtitle, ist->prev_sub.subtitle); - if (end <= 0) - goto out; - } - if (!*got_output) return ret; - sub2video_update(ist, &subtitle); - - if (!subtitle.num_rects) - goto out; - for (i = 0; i < nb_output_streams; i++) { OutputStream *ost = output_streams[i]; if (!check_output_constraints(ist, ost) || !ost->encoding_needed) continue; - do_subtitle_out(output_files[ost->file_index]->ctx, ost, ist, &subtitle); + do_subtitle_out(output_files[ost->file_index]->ctx, ost, ist, &subtitle, pkt->pts); } -out: avsubtitle_free(&subtitle); return ret; } @@ -1850,24 +1253,12 @@ out: /* pkt = NULL means EOF (needed to flush decoder buffers) */ static int output_packet(InputStream *ist, const AVPacket *pkt) { - int ret = 0, i; - int got_output = 0; - + int i; + int got_output; AVPacket avpkt; - if (!ist->saw_first_ts) { - ist->dts = ist->st->avg_frame_rate.num ? - ist->st->codec->has_b_frames * AV_TIME_BASE / av_q2d(ist->st->avg_frame_rate) : 0; - ist->pts = 0; - if (pkt != NULL && pkt->pts != AV_NOPTS_VALUE && !ist->decoding_needed) { - ist->dts += av_rescale_q(pkt->pts, ist->st->time_base, AV_TIME_BASE_Q); - ist->pts = ist->dts; //unused but better to set it to a value thats not totally wrong - } - ist->saw_first_ts = 1; - } if (ist->next_dts == AV_NOPTS_VALUE) - ist->next_dts = ist->dts; - if (ist->next_pts == AV_NOPTS_VALUE) - ist->next_pts = ist->pts; + ist->next_dts = ist->last_dts; if (pkt == NULL) { /* EOF handling */ @@ -1879,19 +1270,15 @@ static int output_packet(InputStream *ist, const AVPacket *pkt) avpkt = *pkt; } - if (pkt->dts != AV_NOPTS_VALUE) { - ist->next_dts = ist->dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q); - if (ist->st->codec->codec_type != AVMEDIA_TYPE_VIDEO || !ist->decoding_needed) - ist->next_pts = ist->pts = ist->dts; - } + if (pkt->dts != AV_NOPTS_VALUE) + ist->next_dts = ist->last_dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q); // while we have more to decode or while the decoder did output something on EOF while (ist->decoding_needed && (avpkt.size > 0 || (!pkt && got_output))) { - int duration; + int ret = 0; handle_eof: - ist->pts = ist->next_pts; - ist->dts = ist->next_dts; + ist->last_dts = ist->next_dts; if (avpkt.size && avpkt.size != pkt->size) { av_log(NULL, ist->showed_multi_packet_warning ? AV_LOG_VERBOSE : AV_LOG_WARNING, @@ -1905,23 +1292,16 @@ static int output_packet(InputStream *ist, const AVPacket *pkt) break; case AVMEDIA_TYPE_VIDEO: ret = decode_video (ist, &avpkt, &got_output); - if (avpkt.duration) { - duration = av_rescale_q(avpkt.duration, ist->st->time_base, AV_TIME_BASE_Q); - } else if(ist->st->codec->time_base.num != 0 && ist->st->codec->time_base.den != 0) { - int ticks= ist->st->parser ? ist->st->parser->repeat_pict+1 : ist->st->codec->ticks_per_frame; - duration = ((int64_t)AV_TIME_BASE * - ist->st->codec->time_base.num * ticks) / - ist->st->codec->time_base.den; - } else - duration = 0; - - if(ist->dts != AV_NOPTS_VALUE && duration) { - ist->next_dts += duration; - }else - ist->next_dts = AV_NOPTS_VALUE; - - if (got_output) - ist->next_pts += duration; //FIXME the duration is not correct in some cases + if (avpkt.duration) + ist->next_dts += av_rescale_q(avpkt.duration, ist->st->time_base, AV_TIME_BASE_Q); + else if (ist->st->avg_frame_rate.num) + ist->next_dts += av_rescale_q(1, av_inv_q(ist->st->avg_frame_rate), + AV_TIME_BASE_Q); + else if (ist->st->codec->time_base.num != 0) { + int ticks = ist->st->parser ? ist->st->parser->repeat_pict + 1 : + ist->st->codec->ticks_per_frame; + ist->next_dts += av_rescale_q(ticks, ist->st->codec->time_base, AV_TIME_BASE_Q); + } break; case AVMEDIA_TYPE_SUBTITLE: ret = transcode_subtitles(ist, &avpkt, &got_output); @@ -1932,14 +1312,8 @@ static int output_packet(InputStream *ist, const AVPacket *pkt) if (ret < 0) return ret; - - avpkt.dts= - avpkt.pts= AV_NOPTS_VALUE; - // touch data and size only if not EOF if (pkt) { - if(ist->st->codec->codec_type != AVMEDIA_TYPE_AUDIO) - ret = avpkt.size; avpkt.data += ret; avpkt.size -= ret; } @@ -1950,30 +1324,21 @@ static int output_packet(InputStream *ist, const AVPacket *pkt) /* handle stream copy */ if (!ist->decoding_needed) { - ist->dts = ist->next_dts; + ist->last_dts = ist->next_dts; switch (ist->st->codec->codec_type) { case AVMEDIA_TYPE_AUDIO: ist->next_dts += ((int64_t)AV_TIME_BASE * ist->st->codec->frame_size) / ist->st->codec->sample_rate; break; case AVMEDIA_TYPE_VIDEO: - if (ist->framerate.num) { - // TODO: Remove work-around for c99-to-c89 issue 7 - AVRational time_base_q = AV_TIME_BASE_Q; - int64_t next_dts = av_rescale_q(ist->next_dts, time_base_q, av_inv_q(ist->framerate)); - ist->next_dts = av_rescale_q(next_dts + 1, av_inv_q(ist->framerate), time_base_q); - } else if (pkt->duration) { - ist->next_dts += av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q); - } else if(ist->st->codec->time_base.num != 0) { - int ticks= ist->st->parser ? ist->st->parser->repeat_pict + 1 : ist->st->codec->ticks_per_frame; + if (ist->st->codec->time_base.num != 0) { + int ticks = ist->st->parser ? ist->st->parser->repeat_pict + 1 : ist->st->codec->ticks_per_frame; ist->next_dts += ((int64_t)AV_TIME_BASE * ist->st->codec->time_base.num * ticks) / ist->st->codec->time_base.den; } break; } - ist->pts = ist->dts; - ist->next_pts = ist->next_dts; } for (i = 0; pkt && i < nb_output_streams; i++) { OutputStream *ost = output_streams[i]; @@ -2063,17 +1428,26 @@ static int get_buffer(AVCodecContext *s, AVFrame *frame, int flags) static int init_input_stream(int ist_index, char *error, int error_len) { - int ret; + int i, ret; InputStream *ist = input_streams[ist_index]; - if (ist->decoding_needed) { AVCodec *codec = ist->dec; if (!codec) { - snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d", - avcodec_get_name(ist->st->codec->codec_id), ist->file_index, ist->st->index); + snprintf(error, error_len, "Decoder (codec id %d) not found for input stream #%d:%d", + ist->st->codec->codec_id, ist->file_index, ist->st->index); return AVERROR(EINVAL); } + /* update requested sample format for the decoder based on the + corresponding encoder sample format */ + for (i = 0; i < nb_output_streams; i++) { + OutputStream *ost = output_streams[i]; + if (ost->source_index == ist_index) { + update_sample_fmt(ist->st->codec, codec, ost->st->codec); + break; + } + } + ist->st->codec->opaque = ist; ist->st->codec->get_format = get_format; ist->st->codec->get_buffer2 = get_buffer; @@ -2099,8 +1473,9 @@ static int init_input_stream(int ist_index, char *error, int error_len) assert_avoptions(ist->opts); } - ist->next_pts = AV_NOPTS_VALUE; + ist->last_dts = ist->st->avg_frame_rate.num ? - ist->st->codec->has_b_frames * AV_TIME_BASE / av_q2d(ist->st->avg_frame_rate) : 0; ist->next_dts = AV_NOPTS_VALUE; + init_pts_correction(&ist->pts_ctx); ist->is_start = 1; return 0; @@ -2110,28 +1485,32 @@ static InputStream *get_input_stream(OutputStream *ost) { if (ost->source_index >= 0) return input_streams[ost->source_index]; - return NULL; -} -static int compare_int64(const void *a, const void *b) -{ - int64_t va = *(int64_t *)a, vb = *(int64_t *)b; - return va < vb ? -1 : va > vb ? +1 : 0; + if (ost->filter) { + FilterGraph *fg = ost->filter->graph; + int i; + + for (i = 0; i < fg->nb_inputs; i++) + if (fg->inputs[i]->ist->st->codec->codec_type == ost->st->codec->codec_type) + return fg->inputs[i]->ist; + } + + return NULL; } static void parse_forced_key_frames(char *kf, OutputStream *ost, AVCodecContext *avctx) { char *p; - int n = 1, i, size, index = 0; - int64_t t, *pts; + int n = 1, i; + int64_t t; for (p = kf; *p; p++) if (*p == ',') n++; - size = n; - pts = av_malloc(sizeof(*pts) * size); - if (!pts) { + ost->forced_kf_count = n; + ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n); + if (!ost->forced_kf_pts) { av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); exit_program(1); } @@ -2143,58 +1522,11 @@ static void parse_forced_key_frames(char *kf, OutputStream *ost, if (next) *next++ = 0; - if (!memcmp(p, "chapters", 8)) { - - AVFormatContext *avf = output_files[ost->file_index]->ctx; - int j; - - if (avf->nb_chapters > INT_MAX - size || - !(pts = av_realloc_f(pts, size += avf->nb_chapters - 1, - sizeof(*pts)))) { - av_log(NULL, AV_LOG_FATAL, - "Could not allocate forced key frames array.\n"); - exit_program(1); - } - t = p[8] ? parse_time_or_die("force_key_frames", p + 8, 1) : 0; - t = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); - - for (j = 0; j < avf->nb_chapters; j++) { - AVChapter *c = avf->chapters[j]; - av_assert1(index < size); - pts[index++] = av_rescale_q(c->start, c->time_base, - avctx->time_base) + t; - } - - } else { - - t = parse_time_or_die("force_key_frames", p, 1); - av_assert1(index < size); - pts[index++] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); - - } + t = parse_time_or_die("force_key_frames", p, 1); + ost->forced_kf_pts[i] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); p = next; } - - av_assert0(index == size); - qsort(pts, size, sizeof(*pts), compare_int64); - ost->forced_kf_count = size; - ost->forced_kf_pts = pts; -} - -static void report_new_stream(int input_index, AVPacket *pkt) -{ - InputFile *file = input_files[input_index]; - AVStream *st = file->ctx->streams[pkt->stream_index]; - - if (pkt->stream_index < file->nb_streams_warn) - return; - av_log(file->ctx, AV_LOG_WARNING, - "New %s stream %d:%d at pos:%"PRId64" and DTS:%ss\n", - av_get_media_type_string(st->codec->codec_type), - input_index, pkt->stream_index, - pkt->pos, av_ts2timestr(pkt->dts, &st->time_base)); - file->nb_streams_warn = pkt->stream_index + 1; } static int transcode_init(void) @@ -2207,21 +1539,6 @@ static int transcode_init(void) char error[1024]; int want_sdp = 1; - for (i = 0; i < nb_filtergraphs; i++) { - FilterGraph *fg = filtergraphs[i]; - for (j = 0; j < fg->nb_outputs; j++) { - OutputFilter *ofilter = fg->outputs[j]; - if (!ofilter->ost || ofilter->ost->source_index >= 0) - continue; - if (fg->nb_inputs != 1) - continue; - for (k = nb_input_streams-1; k >= 0 ; k--) - if (fg->inputs[0]->ist == input_streams[k]) - break; - ofilter->ost->source_index = k; - } - } - /* init framerate emulation */ for (i = 0; i < nb_input_files; i++) { InputFile *ifile = input_files[i]; @@ -2263,15 +1580,6 @@ static int transcode_init(void) ost->st->disposition = ist->st->disposition; codec->bits_per_raw_sample = icodec->bits_per_raw_sample; codec->chroma_sample_location = icodec->chroma_sample_location; - } else { - for (j=0; jnb_streams; j++) { - AVStream *st = oc->streams[j]; - if (st != ost->st && st->codec->codec_type == codec->codec_type) - break; - } - if (j == oc->nb_streams) - if (codec->codec_type == AVMEDIA_TYPE_AUDIO || codec->codec_type == AVMEDIA_TYPE_VIDEO) - ost->st->disposition = AV_DISPOSITION_DEFAULT; } if (ost->stream_copy) { @@ -2291,10 +1599,9 @@ static int transcode_init(void) codec->codec_type = icodec->codec_type; if (!codec->codec_tag) { - unsigned int codec_tag; if (!oc->oformat->codec_tag || av_codec_get_id (oc->oformat->codec_tag, icodec->codec_tag) == codec->codec_id || - !av_codec_get_tag2(oc->oformat->codec_tag, icodec->codec_id, &codec_tag)) + av_codec_get_tag(oc->oformat->codec_tag, icodec->codec_id) <= 0) codec->codec_tag = icodec->codec_tag; } @@ -2307,59 +1614,14 @@ static int transcode_init(void) return AVERROR(ENOMEM); } memcpy(codec->extradata, icodec->extradata, icodec->extradata_size); - codec->extradata_size= icodec->extradata_size; - codec->bits_per_coded_sample = icodec->bits_per_coded_sample; - - codec->time_base = ist->st->time_base; - /* - * Avi is a special case here because it supports variable fps but - * having the fps and timebase differe significantly adds quite some - * overhead - */ - if(!strcmp(oc->oformat->name, "avi")) { - if ( copy_tb<0 && av_q2d(ist->st->r_frame_rate) >= av_q2d(ist->st->avg_frame_rate) - && 0.5/av_q2d(ist->st->r_frame_rate) > av_q2d(ist->st->time_base) - && 0.5/av_q2d(ist->st->r_frame_rate) > av_q2d(icodec->time_base) - && av_q2d(ist->st->time_base) < 1.0/500 && av_q2d(icodec->time_base) < 1.0/500 - || copy_tb==2){ - codec->time_base.num = ist->st->r_frame_rate.den; - codec->time_base.den = 2*ist->st->r_frame_rate.num; - codec->ticks_per_frame = 2; - } else if ( copy_tb<0 && av_q2d(icodec->time_base)*icodec->ticks_per_frame > 2*av_q2d(ist->st->time_base) - && av_q2d(ist->st->time_base) < 1.0/500 - || copy_tb==0){ - codec->time_base = icodec->time_base; - codec->time_base.num *= icodec->ticks_per_frame; - codec->time_base.den *= 2; - codec->ticks_per_frame = 2; - } - } else if(!(oc->oformat->flags & AVFMT_VARIABLE_FPS) - && strcmp(oc->oformat->name, "mov") && strcmp(oc->oformat->name, "mp4") && strcmp(oc->oformat->name, "3gp") - && strcmp(oc->oformat->name, "3g2") && strcmp(oc->oformat->name, "psp") && strcmp(oc->oformat->name, "ipod") - && strcmp(oc->oformat->name, "f4v") - ) { - if( copy_tb<0 && icodec->time_base.den - && av_q2d(icodec->time_base)*icodec->ticks_per_frame > av_q2d(ist->st->time_base) - && av_q2d(ist->st->time_base) < 1.0/500 - || copy_tb==0){ - codec->time_base = icodec->time_base; - codec->time_base.num *= icodec->ticks_per_frame; - } - } - if ( codec->codec_tag == AV_RL32("tmcd") - && icodec->time_base.num < icodec->time_base.den - && icodec->time_base.num > 0 - && 121LL*icodec->time_base.num > icodec->time_base.den) { - codec->time_base = icodec->time_base; - } - - if (ist && !ost->frame_rate.num) - ost->frame_rate = ist->framerate; - if(ost->frame_rate.num) - codec->time_base = av_inv_q(ost->frame_rate); - - av_reduce(&codec->time_base.num, &codec->time_base.den, - codec->time_base.num, codec->time_base.den, INT_MAX); + codec->extradata_size = icodec->extradata_size; + if (!copy_tb) { + codec->time_base = icodec->time_base; + codec->time_base.num *= icodec->ticks_per_frame; + av_reduce(&codec->time_base.num, &codec->time_base.den, + codec->time_base.num, codec->time_base.den, INT_MAX); + } else + codec->time_base = ist->st->time_base; ost->parser = av_parser_init(codec->codec_id); @@ -2375,30 +1637,19 @@ static int transcode_init(void) codec->frame_size = icodec->frame_size; codec->audio_service_type = icodec->audio_service_type; codec->block_align = icodec->block_align; - codec->delay = icodec->delay; - if((codec->block_align == 1 || codec->block_align == 1152 || codec->block_align == 576) && codec->codec_id == AV_CODEC_ID_MP3) - codec->block_align= 0; - if(codec->codec_id == AV_CODEC_ID_AC3) - codec->block_align= 0; break; case AVMEDIA_TYPE_VIDEO: codec->pix_fmt = icodec->pix_fmt; codec->width = icodec->width; codec->height = icodec->height; codec->has_b_frames = icodec->has_b_frames; - if (ost->frame_aspect_ratio.num) { // overridden by the -aspect cli option - sar = - av_mul_q(ost->frame_aspect_ratio, - (AVRational){ codec->height, codec->width }); - av_log(NULL, AV_LOG_WARNING, "Overriding aspect ratio " - "with stream copy may produce invalid files\n"); - } + if (ost->frame_aspect_ratio) + sar = av_d2q(ost->frame_aspect_ratio * codec->height / codec->width, 255); else if (ist->st->sample_aspect_ratio.num) sar = ist->st->sample_aspect_ratio; else sar = icodec->sample_aspect_ratio; ost->st->sample_aspect_ratio = codec->sample_aspect_ratio = sar; - ost->st->avg_frame_rate = ist->st->avg_frame_rate; break; case AVMEDIA_TYPE_SUBTITLE: codec->width = icodec->width; @@ -2411,20 +1662,46 @@ static int transcode_init(void) abort(); } } else { - if (!ost->enc) - ost->enc = avcodec_find_encoder(codec->codec_id); if (!ost->enc) { /* should only happen when a default codec is not present. */ - snprintf(error, sizeof(error), "Encoder (codec %s) not found for output stream #%d:%d", - avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index); + snprintf(error, sizeof(error), "Automatic encoder selection " + "failed for output stream #%d:%d. Default encoder for " + "format %s is probably disabled. Please choose an " + "encoder manually.\n", ost->file_index, ost->index, + oc->oformat->name); ret = AVERROR(EINVAL); goto dump_format; } if (ist) - ist->decoding_needed++; + ist->decoding_needed = 1; ost->encoding_needed = 1; + /* + * We want CFR output if and only if one of those is true: + * 1) user specified output framerate with -r + * 2) user specified -vsync cfr + * 3) output format is CFR and the user didn't force vsync to + * something else than CFR + * + * in such a case, set ost->frame_rate + */ + if (codec->codec_type == AVMEDIA_TYPE_VIDEO && + !ost->frame_rate.num && ist && + (video_sync_method == VSYNC_CFR || + (video_sync_method == VSYNC_AUTO && + !(oc->oformat->flags & (AVFMT_NOTIMESTAMPS | AVFMT_VARIABLE_FPS))))) { + ost->frame_rate = ist->framerate.num ? ist->framerate : + ist->st->avg_frame_rate.num ? + ist->st->avg_frame_rate : + (AVRational){25, 1}; + + if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) { + int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates); + ost->frame_rate = ost->enc->supported_framerates[idx]; + } + } + if (!ost->filter && (codec->codec_type == AVMEDIA_TYPE_VIDEO || codec->codec_type == AVMEDIA_TYPE_AUDIO)) { @@ -2436,102 +1713,45 @@ static int transcode_init(void) } } - if (codec->codec_type == AVMEDIA_TYPE_VIDEO) { - if (ost->filter && !ost->frame_rate.num) - ost->frame_rate = av_buffersink_get_frame_rate(ost->filter->filter); - if (ist && !ost->frame_rate.num) - ost->frame_rate = ist->framerate; - if (ist && !ost->frame_rate.num) - ost->frame_rate = ist->st->r_frame_rate.num ? ist->st->r_frame_rate : (AVRational){25, 1}; -// ost->frame_rate = ist->st->avg_frame_rate.num ? ist->st->avg_frame_rate : (AVRational){25, 1}; - if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) { - int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates); - ost->frame_rate = ost->enc->supported_framerates[idx]; - } - } - switch (codec->codec_type) { case AVMEDIA_TYPE_AUDIO: codec->sample_fmt = ost->filter->filter->inputs[0]->format; codec->sample_rate = ost->filter->filter->inputs[0]->sample_rate; codec->channel_layout = ost->filter->filter->inputs[0]->channel_layout; - codec->channels = avfilter_link_get_channels(ost->filter->filter->inputs[0]); + codec->channels = av_get_channel_layout_nb_channels(codec->channel_layout); codec->time_base = (AVRational){ 1, codec->sample_rate }; break; case AVMEDIA_TYPE_VIDEO: - codec->time_base = av_inv_q(ost->frame_rate); - if (ost->filter && !(codec->time_base.num && codec->time_base.den)) - codec->time_base = ost->filter->filter->inputs[0]->time_base; - if ( av_q2d(codec->time_base) < 0.001 && video_sync_method != VSYNC_PASSTHROUGH - && (video_sync_method == VSYNC_CFR || video_sync_method == VSYNC_VSCFR || (video_sync_method == VSYNC_AUTO && !(oc->oformat->flags & AVFMT_VARIABLE_FPS)))){ - av_log(oc, AV_LOG_WARNING, "Frame rate very high for a muxer not efficiently supporting it.\n" - "Please consider specifying a lower framerate, a different muxer or -vsync 2\n"); - } - for (j = 0; j < ost->forced_kf_count; j++) - ost->forced_kf_pts[j] = av_rescale_q(ost->forced_kf_pts[j], - AV_TIME_BASE_Q, - codec->time_base); + codec->time_base = ost->filter->filter->inputs[0]->time_base; codec->width = ost->filter->filter->inputs[0]->w; codec->height = ost->filter->filter->inputs[0]->h; codec->sample_aspect_ratio = ost->st->sample_aspect_ratio = - ost->frame_aspect_ratio.num ? // overridden by the -aspect cli option - av_mul_q(ost->frame_aspect_ratio, (AVRational){ codec->height, codec->width }) : + ost->frame_aspect_ratio ? // overridden by the -aspect cli option + av_d2q(ost->frame_aspect_ratio * codec->height/codec->width, 255) : ost->filter->filter->inputs[0]->sample_aspect_ratio; - if (!strncmp(ost->enc->name, "libx264", 7) && - codec->pix_fmt == AV_PIX_FMT_NONE && - ost->filter->filter->inputs[0]->format != AV_PIX_FMT_YUV420P) - av_log(NULL, AV_LOG_WARNING, - "No pixel format specified, %s for H.264 encoding chosen.\n" - "Use -pix_fmt yuv420p for compatibility with outdated media players.\n", - av_get_pix_fmt_name(ost->filter->filter->inputs[0]->format)); - if (!strncmp(ost->enc->name, "mpeg2video", 10) && - codec->pix_fmt == AV_PIX_FMT_NONE && - ost->filter->filter->inputs[0]->format != AV_PIX_FMT_YUV420P) - av_log(NULL, AV_LOG_WARNING, - "No pixel format specified, %s for MPEG-2 encoding chosen.\n" - "Use -pix_fmt yuv420p for compatibility with outdated media players.\n", - av_get_pix_fmt_name(ost->filter->filter->inputs[0]->format)); codec->pix_fmt = ost->filter->filter->inputs[0]->format; - if (!icodec || - codec->width != icodec->width || - codec->height != icodec->height || - codec->pix_fmt != icodec->pix_fmt) { - codec->bits_per_raw_sample = frame_bits_per_raw_sample; + if (icodec && + (codec->width != icodec->width || + codec->height != icodec->height || + codec->pix_fmt != icodec->pix_fmt)) { + codec->bits_per_raw_sample = 0; } - if (ost->forced_keyframes) { - if (!strncmp(ost->forced_keyframes, "expr:", 5)) { - ret = av_expr_parse(&ost->forced_keyframes_pexpr, ost->forced_keyframes+5, - forced_keyframes_const_names, NULL, NULL, NULL, NULL, 0, NULL); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, - "Invalid force_key_frames expression '%s'\n", ost->forced_keyframes+5); - return ret; - } - ost->forced_keyframes_expr_const_values[FKF_N] = 0; - ost->forced_keyframes_expr_const_values[FKF_N_FORCED] = 0; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = NAN; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = NAN; - } else { - parse_forced_key_frames(ost->forced_keyframes, ost, ost->st->codec); - } - } + if (ost->forced_keyframes) + parse_forced_key_frames(ost->forced_keyframes, ost, + ost->st->codec); break; case AVMEDIA_TYPE_SUBTITLE: codec->time_base = (AVRational){1, 1000}; - if (!codec->width) { - codec->width = input_streams[ost->source_index]->st->codec->width; - codec->height = input_streams[ost->source_index]->st->codec->height; - } break; default: abort(); break; } /* two pass mode */ - if (codec->flags & (CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2)) { + if ((codec->flags & (CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2))) { char logfilename[1024]; FILE *f; @@ -2542,7 +1762,15 @@ static int transcode_init(void) if (!strcmp(ost->enc->name, "libx264")) { av_dict_set(&ost->opts, "stats", logfilename, AV_DICT_DONT_OVERWRITE); } else { - if (codec->flags & CODEC_FLAG_PASS2) { + if (codec->flags & CODEC_FLAG_PASS1) { + f = fopen(logfilename, "wb"); + if (!f) { + av_log(NULL, AV_LOG_FATAL, "Cannot write log file '%s' for pass-1 encoding: %s\n", + logfilename, strerror(errno)); + exit_program(1); + } + ost->logfile = f; + } else { char *logbuffer; size_t logbuffer_size; if (cmdutils_read_file(logfilename, &logbuffer, &logbuffer_size) < 0) { @@ -2552,15 +1780,6 @@ static int transcode_init(void) } codec->stats_in = logbuffer; } - if (codec->flags & CODEC_FLAG_PASS1) { - f = av_fopen_utf8(logfilename, "wb"); - if (!f) { - av_log(NULL, AV_LOG_FATAL, "Cannot write log file '%s' for pass-1 encoding: %s\n", - logfilename, strerror(errno)); - exit_program(1); - } - ost->logfile = f; - } } } } @@ -2576,8 +1795,7 @@ static int transcode_init(void) if ((ist = get_input_stream(ost))) dec = ist->st->codec; if (dec && dec->subtitle_header) { - /* ASS code assumes this buffer is null terminated so add extra byte. */ - ost->st->codec->subtitle_header = av_mallocz(dec->subtitle_header_size + 1); + ost->st->codec->subtitle_header = av_malloc(dec->subtitle_header_size); if (!ost->st->codec->subtitle_header) { ret = AVERROR(ENOMEM); goto dump_format; @@ -2594,14 +1812,10 @@ static int transcode_init(void) ost->file_index, ost->index); goto dump_format; } - if (ost->enc->type == AVMEDIA_TYPE_AUDIO && - !(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)) - av_buffersink_set_frame_size(ost->filter->filter, - ost->st->codec->frame_size); assert_avoptions(ost->opts); if (ost->st->codec->bit_rate && ost->st->codec->bit_rate < 1000) av_log(NULL, AV_LOG_WARNING, "The bitrate parameter is set too low." - " It takes bits/s as argument, not kbits/s\n"); + "It takes bits/s as argument, not kbits/s\n"); extra_size += ost->st->codec->extradata_size; } else { av_opt_set_dict(ost->st->codec, &ost->opts); @@ -2610,13 +1824,8 @@ static int transcode_init(void) /* init input streams */ for (i = 0; i < nb_input_streams; i++) - if ((ret = init_input_stream(i, error, sizeof(error))) < 0) { - for (i = 0; i < nb_output_streams; i++) { - ost = output_streams[i]; - avcodec_close(ost->st->codec); - } + if ((ret = init_input_stream(i, error, sizeof(error))) < 0) goto dump_format; - } /* discard unused programs */ for (i = 0; i < nb_input_files; i++) { @@ -2648,7 +1857,7 @@ static int transcode_init(void) ret = AVERROR(EINVAL); goto dump_format; } -// assert_avoptions(output_files[i]->opts); + assert_avoptions(output_files[i]->opts); if (strcmp(oc->oformat->name, "rtp")) { want_sdp = 0; } @@ -2745,7 +1954,7 @@ static int need_output(void) if (ost->frame_number >= ost->max_frames) { int j; for (j = 0; j < of->ctx->nb_streams; j++) - close_output_stream(output_streams[of->ost_index + j]); + output_streams[of->ost_index + j]->finished = 1; continue; } @@ -2755,124 +1964,27 @@ static int need_output(void) return 0; } -/** - * Select the output stream to process. - * - * @return selected output stream, or NULL if none available - */ -static OutputStream *choose_output(void) +static InputFile *select_input_file(void) { + InputFile *ifile = NULL; + int64_t ipts_min = INT64_MAX; int i; - int64_t opts_min = INT64_MAX; - OutputStream *ost_min = NULL; - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - int64_t opts = av_rescale_q(ost->st->cur_dts, ost->st->time_base, - AV_TIME_BASE_Q); - if (!ost->unavailable && !ost->finished && opts < opts_min) { - opts_min = opts; - ost_min = ost; - } - } - return ost_min; -} + for (i = 0; i < nb_input_streams; i++) { + InputStream *ist = input_streams[i]; + int64_t ipts = ist->last_dts; -static int check_keyboard_interaction(int64_t cur_time) -{ - int i, ret, key; - static int64_t last_time; - if (received_nb_signals) - return AVERROR_EXIT; - /* read_key() returns 0 on EOF */ - if(cur_time - last_time >= 100000 && !run_as_daemon){ - key = read_key(); - last_time = cur_time; - }else - key = -1; - if (key == 'q') - return AVERROR_EXIT; - if (key == '+') av_log_set_level(av_log_get_level()+10); - if (key == '-') av_log_set_level(av_log_get_level()-10); - if (key == 's') qp_hist ^= 1; - if (key == 'h'){ - if (do_hex_dump){ - do_hex_dump = do_pkt_dump = 0; - } else if(do_pkt_dump){ - do_hex_dump = 1; - } else - do_pkt_dump = 1; - av_log_set_level(AV_LOG_DEBUG); - } - if (key == 'c' || key == 'C'){ - char buf[4096], target[64], command[256], arg[256] = {0}; - double time; - int k, n = 0; - fprintf(stderr, "\nEnter command: |all