From 8992cb1d0d07edc33d274f6d7924ecdf6f83d994 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 5 Sep 2013 17:57:22 +0100 Subject: making act segmenter --- ffmpeg-fas/.gitignore | 3 + ffmpeg-fas/COPYING.GPL | 339 + ffmpeg-fas/COPYING.LGPL | 504 + ffmpeg-fas/README | 31 + ffmpeg-fas/build.sh | 9 + ffmpeg-fas/ffmpeg_fas.c | 914 ++ ffmpeg-fas/ffmpeg_fas.def | 14 + ffmpeg-fas/ffmpeg_fas.h | 120 + ffmpeg-fas/ffmpeg_fas.vcproj | 166 + ffmpeg-fas/private_errors.h | 32 + ffmpeg-fas/seek_indices.c | 319 + ffmpeg-fas/seek_indices.h | 94 + ffmpeg-fas/seek_indices.o | Bin 0 -> 6200 bytes ffmpeg-fas/test/build.sh | 7 + ffmpeg-fas/test/dump_frames.c | 67 + ffmpeg-fas/test/dump_keyframes.c | 76 + ffmpeg-fas/test/external_seek_test.c | 172 + ffmpeg-fas/test/generate_seek_table.c | 209 + ffmpeg-fas/test/movie_info.c | 81 + ffmpeg-fas/test/run_test.py | 56 + ffmpeg-fas/test/seek_test.c | 162 + ffmpeg-fas/test/show_seek_table.c | 59 + ffmpeg-fas/test/test_support.h | 67 + ffmpeg/.config | 0 ffmpeg/.version | 0 ffmpeg/COPYING.GPLv2 | 339 + ffmpeg/COPYING.GPLv3 | 674 ++ ffmpeg/COPYING.LGPLv2.1 | 502 + ffmpeg/COPYING.LGPLv3 | 165 + ffmpeg/CREDITS | 6 + ffmpeg/Changelog | 1089 ++ ffmpeg/INSTALL | 15 + ffmpeg/LICENSE | 91 + ffmpeg/MAINTAINERS | 484 + ffmpeg/Makefile | 193 + ffmpeg/README | 18 + ffmpeg/RELEASE | 1 + ffmpeg/arch.mak | 16 + ffmpeg/cmdutils.c | 1841 +++ ffmpeg/cmdutils.h | 548 + ffmpeg/cmdutils_common_opts.h | 21 + ffmpeg/common.mak | 140 + ffmpeg/compat/avisynth/avisynth_c.h | 879 ++ ffmpeg/compat/avisynth/avxsynth_c.h | 727 ++ .../windowsPorts/basicDataTypeConversions.h | 85 + .../compat/avisynth/windowsPorts/windows2linux.h | 77 + ffmpeg/compat/getopt.c | 86 + ffmpeg/compat/msvcrt/snprintf.c | 71 + ffmpeg/compat/msvcrt/snprintf.h | 38 + ffmpeg/compat/plan9/head | 10 + ffmpeg/compat/plan9/main.c | 34 + ffmpeg/compat/plan9/printf | 2 + ffmpeg/compat/strtod.c | 93 + ffmpeg/compat/tms470/math.h | 7 + ffmpeg/compat/va_copy.h | 26 + ffmpeg/config.asm | 1512 +++ ffmpeg/config.fate | 1 + ffmpeg/config.h | 1526 +++ ffmpeg/config.log | 7956 +++++++++++++ ffmpeg/config.mak | 1647 +++ ffmpeg/configure | 4667 ++++++++ ffmpeg/description-pak | 1 + ffmpeg/doc/APIchanges | 1586 +++ ffmpeg/doc/Doxyfile | 1624 +++ ffmpeg/doc/Makefile | 103 + ffmpeg/doc/RELEASE_NOTES | 16 + ffmpeg/doc/authors.texi | 11 + ffmpeg/doc/avtools-common-opts.texi | 211 + ffmpeg/doc/avutil.txt | 36 + ffmpeg/doc/bitstream_filters.texi | 91 + ffmpeg/doc/build_system.txt | 50 + ffmpeg/doc/decoders.texi | 89 + ffmpeg/doc/default.css | 149 + ffmpeg/doc/demuxers.texi | 311 + ffmpeg/doc/developer.texi | 668 ++ ffmpeg/doc/doxy-wrapper.sh | 14 + ffmpeg/doc/doxy/doxy_stylesheet.css | 2019 ++++ ffmpeg/doc/doxy/footer.html | 9 + ffmpeg/doc/doxy/header.html | 16 + ffmpeg/doc/encoders.texi | 780 ++ ffmpeg/doc/errno.txt | 174 + ffmpeg/doc/eval.texi | 299 + ffmpeg/doc/examples/Makefile | 37 + ffmpeg/doc/examples/README | 18 + ffmpeg/doc/examples/decoding_encoding.c | 650 ++ ffmpeg/doc/examples/demuxing.c | 342 + ffmpeg/doc/examples/filtering_audio.c | 244 + ffmpeg/doc/examples/filtering_video.c | 251 + ffmpeg/doc/examples/metadata.c | 56 + ffmpeg/doc/examples/muxing.c | 508 + ffmpeg/doc/examples/pc-uninstalled/libavcodec.pc | 12 + ffmpeg/doc/examples/pc-uninstalled/libavdevice.pc | 12 + ffmpeg/doc/examples/pc-uninstalled/libavfilter.pc | 12 + ffmpeg/doc/examples/pc-uninstalled/libavformat.pc | 12 + ffmpeg/doc/examples/pc-uninstalled/libavutil.pc | 12 + ffmpeg/doc/examples/pc-uninstalled/libpostproc.pc | 12 + .../doc/examples/pc-uninstalled/libswresample.pc | 12 + ffmpeg/doc/examples/pc-uninstalled/libswscale.pc | 12 + ffmpeg/doc/examples/resampling_audio.c | 223 + ffmpeg/doc/examples/scaling_video.c | 141 + ffmpeg/doc/faq.texi | 558 + ffmpeg/doc/fate.texi | 194 + ffmpeg/doc/fate_config.sh.template | 25 + ffmpeg/doc/ffmpeg-bitstream-filters.texi | 45 + ffmpeg/doc/ffmpeg-codecs.texi | 1110 ++ ffmpeg/doc/ffmpeg-devices.texi | 62 + ffmpeg/doc/ffmpeg-filters.texi | 42 + ffmpeg/doc/ffmpeg-formats.texi | 182 + ffmpeg/doc/ffmpeg-protocols.texi | 42 + ffmpeg/doc/ffmpeg-resampler.texi | 265 + ffmpeg/doc/ffmpeg-scaler.texi | 141 + ffmpeg/doc/ffmpeg-utils.texi | 43 + ffmpeg/doc/ffmpeg.texi | 1385 +++ ffmpeg/doc/ffmpeg.txt | 47 + ffmpeg/doc/ffplay.texi | 235 + ffmpeg/doc/ffprobe.texi | 521 + ffmpeg/doc/ffprobe.xsd | 198 + ffmpeg/doc/ffserver.conf | 371 + ffmpeg/doc/ffserver.texi | 281 + ffmpeg/doc/filter_design.txt | 265 + ffmpeg/doc/filters.texi | 7034 ++++++++++++ ffmpeg/doc/general.texi | 1016 ++ ffmpeg/doc/git-howto.texi | 415 + ffmpeg/doc/git-howto.txt | 273 + ffmpeg/doc/indevs.texi | 797 ++ ffmpeg/doc/issue_tracker.txt | 213 + ffmpeg/doc/libavcodec.texi | 48 + ffmpeg/doc/libavdevice.texi | 45 + ffmpeg/doc/libavfilter.texi | 44 + ffmpeg/doc/libavformat.texi | 48 + ffmpeg/doc/libavutil.texi | 44 + ffmpeg/doc/libswresample.texi | 70 + ffmpeg/doc/libswscale.texi | 63 + ffmpeg/doc/metadata.texi | 68 + ffmpeg/doc/mips.txt | 69 + ffmpeg/doc/multithreading.txt | 70 + ffmpeg/doc/muxers.texi | 794 ++ ffmpeg/doc/nut.texi | 138 + ffmpeg/doc/optimization.txt | 288 + ffmpeg/doc/outdevs.texi | 156 + ffmpeg/doc/platform.texi | 369 + ffmpeg/doc/print_options.c | 128 + ffmpeg/doc/protocols.texi | 790 ++ ffmpeg/doc/rate_distortion.txt | 61 + ffmpeg/doc/snow.txt | 630 ++ ffmpeg/doc/soc.txt | 24 + ffmpeg/doc/swresample.txt | 46 + ffmpeg/doc/swscale.txt | 98 + ffmpeg/doc/syntax.texi | 258 + ffmpeg/doc/t2h.init | 116 + ffmpeg/doc/tablegen.txt | 70 + ffmpeg/doc/texi2pod.pl | 453 + ffmpeg/doc/viterbi.txt | 109 + ffmpeg/ffmpeg.c | 3373 ++++++ ffmpeg/ffmpeg.h | 439 + ffmpeg/ffmpeg_filter.c | 803 ++ ffmpeg/ffmpeg_opt.c | 2778 +++++ ffmpeg/ffplay.c | 3542 ++++++ ffmpeg/ffprobe.c | 2327 ++++ ffmpeg/ffserver.c | 4760 ++++++++ ffmpeg/libavcodec/012v.c | 153 + ffmpeg/libavcodec/4xm.c | 995 ++ ffmpeg/libavcodec/8bps.c | 190 + ffmpeg/libavcodec/8svx.c | 216 + ffmpeg/libavcodec/Makefile | 862 ++ ffmpeg/libavcodec/a64colors.h | 52 + ffmpeg/libavcodec/a64multienc.c | 423 + ffmpeg/libavcodec/a64tables.h | 150 + ffmpeg/libavcodec/aac.h | 333 + ffmpeg/libavcodec/aac_ac3_parser.c | 104 + ffmpeg/libavcodec/aac_ac3_parser.h | 66 + ffmpeg/libavcodec/aac_adtstoasc_bsf.c | 118 + ffmpeg/libavcodec/aac_parser.c | 69 + ffmpeg/libavcodec/aac_tablegen.c | 37 + ffmpeg/libavcodec/aac_tablegen.h | 42 + ffmpeg/libavcodec/aac_tablegen_decl.h | 36 + ffmpeg/libavcodec/aacadtsdec.c | 70 + ffmpeg/libavcodec/aacadtsdec.h | 54 + ffmpeg/libavcodec/aaccoder.c | 1140 ++ ffmpeg/libavcodec/aacdec.c | 3060 +++++ ffmpeg/libavcodec/aacdectab.h | 104 + ffmpeg/libavcodec/aacenc.c | 827 ++ ffmpeg/libavcodec/aacenc.h | 90 + ffmpeg/libavcodec/aacps.c | 968 ++ ffmpeg/libavcodec/aacps.h | 84 + ffmpeg/libavcodec/aacps_tablegen.c | 93 + ffmpeg/libavcodec/aacps_tablegen.h | 215 + ffmpeg/libavcodec/aacpsdata.c | 163 + ffmpeg/libavcodec/aacpsdsp.c | 216 + ffmpeg/libavcodec/aacpsdsp.h | 54 + ffmpeg/libavcodec/aacpsy.c | 940 ++ ffmpeg/libavcodec/aacpsy.h | 50 + ffmpeg/libavcodec/aacsbr.c | 1762 +++ ffmpeg/libavcodec/aacsbr.h | 51 + ffmpeg/libavcodec/aacsbrdata.h | 616 + ffmpeg/libavcodec/aactab.c | 1207 ++ ffmpeg/libavcodec/aactab.h | 77 + ffmpeg/libavcodec/aandcttab.c | 47 + ffmpeg/libavcodec/aandcttab.h | 32 + ffmpeg/libavcodec/aasc.c | 164 + ffmpeg/libavcodec/ac3.c | 231 + ffmpeg/libavcodec/ac3.h | 181 + ffmpeg/libavcodec/ac3_parser.c | 194 + ffmpeg/libavcodec/ac3_parser.h | 41 + ffmpeg/libavcodec/ac3dec.c | 1488 +++ ffmpeg/libavcodec/ac3dec.h | 241 + ffmpeg/libavcodec/ac3dec_data.c | 60 + ffmpeg/libavcodec/ac3dec_data.h | 32 + ffmpeg/libavcodec/ac3dsp.c | 263 + ffmpeg/libavcodec/ac3dsp.h | 144 + ffmpeg/libavcodec/ac3enc.c | 2491 +++++ ffmpeg/libavcodec/ac3enc.h | 308 + ffmpeg/libavcodec/ac3enc_fixed.c | 169 + ffmpeg/libavcodec/ac3enc_float.c | 168 + ffmpeg/libavcodec/ac3enc_opts_template.c | 80 + ffmpeg/libavcodec/ac3enc_template.c | 447 + ffmpeg/libavcodec/ac3tab.c | 314 + ffmpeg/libavcodec/ac3tab.h | 72 + ffmpeg/libavcodec/acelp_filters.c | 155 + ffmpeg/libavcodec/acelp_filters.h | 153 + ffmpeg/libavcodec/acelp_pitch_delay.c | 189 + ffmpeg/libavcodec/acelp_pitch_delay.h | 252 + ffmpeg/libavcodec/acelp_vectors.c | 272 + ffmpeg/libavcodec/acelp_vectors.h | 288 + ffmpeg/libavcodec/adpcm.c | 1432 +++ ffmpeg/libavcodec/adpcm.h | 48 + ffmpeg/libavcodec/adpcm_data.c | 91 + ffmpeg/libavcodec/adpcm_data.h | 41 + ffmpeg/libavcodec/adpcmenc.c | 725 ++ ffmpeg/libavcodec/adx.c | 87 + ffmpeg/libavcodec/adx.h | 80 + ffmpeg/libavcodec/adx_parser.c | 96 + ffmpeg/libavcodec/adxdec.c | 187 + ffmpeg/libavcodec/adxenc.c | 169 + ffmpeg/libavcodec/alac.c | 628 ++ ffmpeg/libavcodec/alac_data.c | 56 + ffmpeg/libavcodec/alac_data.h | 46 + ffmpeg/libavcodec/alacenc.c | 656 ++ ffmpeg/libavcodec/allcodecs.c | 553 + ffmpeg/libavcodec/alpha/Makefile | 9 + ffmpeg/libavcodec/alpha/asm.h | 186 + ffmpeg/libavcodec/alpha/dsputil_alpha.c | 157 + ffmpeg/libavcodec/alpha/dsputil_alpha.h | 49 + ffmpeg/libavcodec/alpha/dsputil_alpha_asm.S | 178 + ffmpeg/libavcodec/alpha/hpeldsp_alpha.c | 212 + ffmpeg/libavcodec/alpha/hpeldsp_alpha.h | 27 + ffmpeg/libavcodec/alpha/hpeldsp_alpha_asm.S | 135 + ffmpeg/libavcodec/alpha/motion_est_alpha.c | 345 + ffmpeg/libavcodec/alpha/motion_est_mvi_asm.S | 179 + ffmpeg/libavcodec/alpha/mpegvideo_alpha.c | 110 + ffmpeg/libavcodec/alpha/regdef.h | 66 + ffmpeg/libavcodec/alpha/simple_idct_alpha.c | 303 + ffmpeg/libavcodec/alsdec.c | 1786 +++ ffmpeg/libavcodec/amr.h | 70 + ffmpeg/libavcodec/amrnbdata.h | 1671 +++ ffmpeg/libavcodec/amrnbdec.c | 1094 ++ ffmpeg/libavcodec/amrwbdata.h | 1890 ++++ ffmpeg/libavcodec/amrwbdec.c | 1279 +++ ffmpeg/libavcodec/anm.c | 200 + ffmpeg/libavcodec/ansi.c | 473 + ffmpeg/libavcodec/apedec.c | 1145 ++ ffmpeg/libavcodec/arm/Makefile | 116 + ffmpeg/libavcodec/arm/aac.h | 143 + ffmpeg/libavcodec/arm/aacpsdsp_init_arm.c | 57 + ffmpeg/libavcodec/arm/aacpsdsp_neon.S | 272 + ffmpeg/libavcodec/arm/ac3dsp_arm.S | 36 + ffmpeg/libavcodec/arm/ac3dsp_armv6.S | 84 + ffmpeg/libavcodec/arm/ac3dsp_init_arm.c | 70 + ffmpeg/libavcodec/arm/ac3dsp_neon.S | 154 + ffmpeg/libavcodec/arm/asm-offsets.h | 39 + ffmpeg/libavcodec/arm/dca.h | 105 + ffmpeg/libavcodec/arm/dcadsp_init_arm.c | 36 + ffmpeg/libavcodec/arm/dcadsp_neon.S | 61 + ffmpeg/libavcodec/arm/dsputil_arm.S | 125 + ffmpeg/libavcodec/arm/dsputil_arm.h | 32 + ffmpeg/libavcodec/arm/dsputil_armv6.S | 381 + ffmpeg/libavcodec/arm/dsputil_init_arm.c | 86 + ffmpeg/libavcodec/arm/dsputil_init_armv5te.c | 37 + ffmpeg/libavcodec/arm/dsputil_init_armv6.c | 85 + ffmpeg/libavcodec/arm/dsputil_init_neon.c | 81 + ffmpeg/libavcodec/arm/dsputil_neon.S | 209 + ffmpeg/libavcodec/arm/fft_fixed_init_arm.c | 48 + ffmpeg/libavcodec/arm/fft_fixed_neon.S | 261 + ffmpeg/libavcodec/arm/fft_init_arm.c | 77 + ffmpeg/libavcodec/arm/fft_neon.S | 375 + ffmpeg/libavcodec/arm/flacdsp_arm.S | 146 + ffmpeg/libavcodec/arm/flacdsp_init_arm.c | 32 + ffmpeg/libavcodec/arm/fmtconvert_init_arm.c | 52 + ffmpeg/libavcodec/arm/fmtconvert_neon.S | 392 + ffmpeg/libavcodec/arm/fmtconvert_vfp.S | 78 + ffmpeg/libavcodec/arm/h264chroma_init_arm.c | 51 + ffmpeg/libavcodec/arm/h264cmc_neon.S | 400 + ffmpeg/libavcodec/arm/h264dsp_init_arm.c | 111 + ffmpeg/libavcodec/arm/h264dsp_neon.S | 541 + ffmpeg/libavcodec/arm/h264idct_neon.S | 413 + ffmpeg/libavcodec/arm/h264pred_init_arm.c | 92 + ffmpeg/libavcodec/arm/h264pred_neon.S | 359 + ffmpeg/libavcodec/arm/h264qpel_init_arm.c | 171 + ffmpeg/libavcodec/arm/h264qpel_neon.S | 955 ++ ffmpeg/libavcodec/arm/hpeldsp_arm.S | 611 + ffmpeg/libavcodec/arm/hpeldsp_arm.h | 29 + ffmpeg/libavcodec/arm/hpeldsp_armv6.S | 259 + ffmpeg/libavcodec/arm/hpeldsp_init_arm.c | 68 + ffmpeg/libavcodec/arm/hpeldsp_init_armv6.c | 66 + ffmpeg/libavcodec/arm/hpeldsp_init_neon.c | 86 + ffmpeg/libavcodec/arm/hpeldsp_neon.S | 410 + ffmpeg/libavcodec/arm/int_neon.S | 92 + ffmpeg/libavcodec/arm/jrevdct_arm.S | 383 + ffmpeg/libavcodec/arm/mathops.h | 108 + ffmpeg/libavcodec/arm/mdct_fixed_neon.S | 193 + ffmpeg/libavcodec/arm/mdct_neon.S | 301 + ffmpeg/libavcodec/arm/mpegaudiodsp_fixed_armv6.S | 143 + ffmpeg/libavcodec/arm/mpegaudiodsp_init_arm.c | 38 + ffmpeg/libavcodec/arm/mpegvideo_arm.c | 52 + ffmpeg/libavcodec/arm/mpegvideo_arm.h | 26 + ffmpeg/libavcodec/arm/mpegvideo_armv5te.c | 102 + ffmpeg/libavcodec/arm/mpegvideo_armv5te_s.S | 114 + ffmpeg/libavcodec/arm/mpegvideo_neon.S | 107 + ffmpeg/libavcodec/arm/neon.S | 59 + ffmpeg/libavcodec/arm/rdft_neon.S | 150 + ffmpeg/libavcodec/arm/rv34dsp_init_arm.c | 46 + ffmpeg/libavcodec/arm/rv34dsp_neon.S | 156 + ffmpeg/libavcodec/arm/rv40dsp_init_arm.c | 148 + ffmpeg/libavcodec/arm/rv40dsp_neon.S | 920 ++ ffmpeg/libavcodec/arm/sbrdsp_init_arm.c | 73 + ffmpeg/libavcodec/arm/sbrdsp_neon.S | 411 + ffmpeg/libavcodec/arm/simple_idct_arm.S | 479 + ffmpeg/libavcodec/arm/simple_idct_armv5te.S | 620 ++ ffmpeg/libavcodec/arm/simple_idct_armv6.S | 425 + ffmpeg/libavcodec/arm/simple_idct_neon.S | 375 + ffmpeg/libavcodec/arm/synth_filter_neon.S | 115 + ffmpeg/libavcodec/arm/videodsp_arm.h | 29 + ffmpeg/libavcodec/arm/videodsp_armv5te.S | 31 + ffmpeg/libavcodec/arm/videodsp_init_arm.c | 30 + ffmpeg/libavcodec/arm/videodsp_init_armv5te.c | 33 + ffmpeg/libavcodec/arm/vorbisdsp_init_arm.c | 37 + ffmpeg/libavcodec/arm/vorbisdsp_neon.S | 83 + ffmpeg/libavcodec/arm/vp3dsp_init_arm.c | 45 + ffmpeg/libavcodec/arm/vp3dsp_neon.S | 395 + ffmpeg/libavcodec/arm/vp56_arith.h | 121 + ffmpeg/libavcodec/arm/vp56dsp_init_arm.c | 39 + ffmpeg/libavcodec/arm/vp56dsp_neon.S | 121 + ffmpeg/libavcodec/arm/vp8.h | 35 + ffmpeg/libavcodec/arm/vp8_armv6.S | 248 + ffmpeg/libavcodec/arm/vp8dsp.h | 78 + ffmpeg/libavcodec/arm/vp8dsp_armv6.S | 1634 +++ ffmpeg/libavcodec/arm/vp8dsp_init_arm.c | 34 + ffmpeg/libavcodec/arm/vp8dsp_init_armv6.c | 120 + ffmpeg/libavcodec/arm/vp8dsp_init_neon.c | 116 + ffmpeg/libavcodec/arm/vp8dsp_neon.S | 1867 ++++ ffmpeg/libavcodec/ass.c | 107 + ffmpeg/libavcodec/ass.h | 91 + ffmpeg/libavcodec/ass_split.c | 476 + ffmpeg/libavcodec/ass_split.h | 172 + ffmpeg/libavcodec/assdec.c | 82 + ffmpeg/libavcodec/assenc.c | 72 + ffmpeg/libavcodec/asv.c | 94 + ffmpeg/libavcodec/asv.h | 66 + ffmpeg/libavcodec/asvdec.c | 334 + ffmpeg/libavcodec/asvenc.c | 288 + ffmpeg/libavcodec/atrac.c | 119 + ffmpeg/libavcodec/atrac.h | 36 + ffmpeg/libavcodec/atrac1.c | 390 + ffmpeg/libavcodec/atrac1data.h | 64 + ffmpeg/libavcodec/atrac3.c | 1015 ++ ffmpeg/libavcodec/atrac3data.h | 141 + ffmpeg/libavcodec/audio_frame_queue.c | 112 + ffmpeg/libavcodec/audio_frame_queue.h | 83 + ffmpeg/libavcodec/audioconvert.c | 116 + ffmpeg/libavcodec/audioconvert.h | 70 + ffmpeg/libavcodec/aura.c | 108 + ffmpeg/libavcodec/avcodec.h | 4705 ++++++++ ffmpeg/libavcodec/avfft.c | 144 + ffmpeg/libavcodec/avfft.h | 116 + ffmpeg/libavcodec/avpacket.c | 400 + ffmpeg/libavcodec/avpicture.c | 78 + ffmpeg/libavcodec/avr32/mathops.h | 101 + ffmpeg/libavcodec/avrndec.c | 132 + ffmpeg/libavcodec/avs.c | 186 + ffmpeg/libavcodec/avuidec.c | 130 + ffmpeg/libavcodec/avuienc.c | 112 + ffmpeg/libavcodec/bethsoftvideo.c | 162 + ffmpeg/libavcodec/bethsoftvideo.h | 36 + ffmpeg/libavcodec/bfi.c | 186 + ffmpeg/libavcodec/bfin/Makefile | 10 + ffmpeg/libavcodec/bfin/config_bfin.h | 65 + ffmpeg/libavcodec/bfin/dsputil_bfin.c | 173 + ffmpeg/libavcodec/bfin/dsputil_bfin.h | 95 + ffmpeg/libavcodec/bfin/fdct_bfin.S | 332 + ffmpeg/libavcodec/bfin/hpel_pixels_bfin.S | 379 + ffmpeg/libavcodec/bfin/hpeldsp_bfin.c | 119 + ffmpeg/libavcodec/bfin/hpeldsp_bfin.h | 50 + ffmpeg/libavcodec/bfin/idct_bfin.S | 304 + ffmpeg/libavcodec/bfin/mathops.h | 44 + ffmpeg/libavcodec/bfin/mpegvideo_bfin.c | 152 + ffmpeg/libavcodec/bfin/pixels_bfin.S | 381 + ffmpeg/libavcodec/bfin/vp3_bfin.c | 60 + ffmpeg/libavcodec/bfin/vp3_bfin.h | 27 + ffmpeg/libavcodec/bfin/vp3_idct_bfin.S | 280 + ffmpeg/libavcodec/bgmc.c | 558 + ffmpeg/libavcodec/bgmc.h | 56 + ffmpeg/libavcodec/bink.c | 1344 +++ ffmpeg/libavcodec/binkaudio.c | 359 + ffmpeg/libavcodec/binkdata.h | 655 ++ ffmpeg/libavcodec/binkdsp.c | 136 + ffmpeg/libavcodec/binkdsp.h | 40 + ffmpeg/libavcodec/bintext.c | 258 + ffmpeg/libavcodec/bintext.h | 37 + ffmpeg/libavcodec/bit_depth_template.c | 92 + ffmpeg/libavcodec/bitstream.c | 339 + ffmpeg/libavcodec/bitstream_filter.c | 68 + ffmpeg/libavcodec/bmp.c | 338 + ffmpeg/libavcodec/bmp.h | 38 + ffmpeg/libavcodec/bmp_parser.c | 91 + ffmpeg/libavcodec/bmpenc.c | 183 + ffmpeg/libavcodec/bmv.c | 360 + ffmpeg/libavcodec/brender_pix.c | 219 + ffmpeg/libavcodec/bytestream.h | 345 + ffmpeg/libavcodec/c93.c | 256 + ffmpeg/libavcodec/cabac.c | 319 + ffmpeg/libavcodec/cabac.h | 56 + ffmpeg/libavcodec/cabac_functions.h | 162 + ffmpeg/libavcodec/cavs.c | 790 ++ ffmpeg/libavcodec/cavs.h | 275 + ffmpeg/libavcodec/cavs_parser.c | 106 + ffmpeg/libavcodec/cavsdata.c | 62 + ffmpeg/libavcodec/cavsdata.h | 67 + ffmpeg/libavcodec/cavsdec.c | 1226 ++ ffmpeg/libavcodec/cavsdsp.c | 566 + ffmpeg/libavcodec/cavsdsp.h | 42 + ffmpeg/libavcodec/cbrt_tablegen.c | 37 + ffmpeg/libavcodec/cbrt_tablegen.h | 51 + ffmpeg/libavcodec/cdgraphics.c | 379 + ffmpeg/libavcodec/cdxl.c | 303 + ffmpeg/libavcodec/celp_filters.c | 219 + ffmpeg/libavcodec/celp_filters.h | 169 + ffmpeg/libavcodec/celp_math.c | 126 + ffmpeg/libavcodec/celp_math.h | 97 + ffmpeg/libavcodec/cga_data.c | 55 + ffmpeg/libavcodec/cga_data.h | 47 + ffmpeg/libavcodec/chomp_bsf.c | 47 + ffmpeg/libavcodec/cinepak.c | 488 + ffmpeg/libavcodec/cljr.c | 190 + ffmpeg/libavcodec/cllc.c | 398 + ffmpeg/libavcodec/cngdec.c | 171 + ffmpeg/libavcodec/cngenc.c | 116 + ffmpeg/libavcodec/codec_desc.c | 2565 +++++ ffmpeg/libavcodec/cook.c | 1292 +++ ffmpeg/libavcodec/cook_parser.c | 59 + ffmpeg/libavcodec/cookdata.h | 580 + ffmpeg/libavcodec/copy_block.h | 94 + ffmpeg/libavcodec/cos_tablegen.c | 73 + ffmpeg/libavcodec/cpia.c | 233 + ffmpeg/libavcodec/crystalhd.c | 1223 ++ ffmpeg/libavcodec/cscd.c | 170 + ffmpeg/libavcodec/cyuv.c | 202 + ffmpeg/libavcodec/dca.c | 33 + ffmpeg/libavcodec/dca.h | 42 + ffmpeg/libavcodec/dca_parser.c | 208 + ffmpeg/libavcodec/dca_parser.h | 36 + ffmpeg/libavcodec/dcadata.h | 7664 +++++++++++++ ffmpeg/libavcodec/dcadec.c | 2525 +++++ ffmpeg/libavcodec/dcadsp.c | 51 + ffmpeg/libavcodec/dcadsp.h | 30 + ffmpeg/libavcodec/dcaenc.c | 602 + ffmpeg/libavcodec/dcaenc.h | 546 + ffmpeg/libavcodec/dcahuff.h | 1076 ++ ffmpeg/libavcodec/dct-test.c | 576 + ffmpeg/libavcodec/dct.c | 222 + ffmpeg/libavcodec/dct.h | 70 + ffmpeg/libavcodec/dct32.c | 276 + ffmpeg/libavcodec/dct32.h | 25 + ffmpeg/libavcodec/dct32_fixed.c | 20 + ffmpeg/libavcodec/dct32_float.c | 20 + ffmpeg/libavcodec/dctref.c | 123 + ffmpeg/libavcodec/dctref.h | 29 + ffmpeg/libavcodec/dfa.c | 390 + ffmpeg/libavcodec/dirac.c | 334 + ffmpeg/libavcodec/dirac.h | 60 + ffmpeg/libavcodec/dirac_arith.c | 116 + ffmpeg/libavcodec/dirac_arith.h | 190 + ffmpeg/libavcodec/dirac_dwt.c | 585 + ffmpeg/libavcodec/dirac_dwt.h | 126 + ffmpeg/libavcodec/dirac_parser.c | 260 + ffmpeg/libavcodec/diracdec.c | 1938 ++++ ffmpeg/libavcodec/diracdsp.c | 201 + ffmpeg/libavcodec/diracdsp.h | 67 + ffmpeg/libavcodec/dnxhd_parser.c | 116 + ffmpeg/libavcodec/dnxhddata.c | 1082 ++ ffmpeg/libavcodec/dnxhddata.h | 57 + ffmpeg/libavcodec/dnxhddec.c | 427 + ffmpeg/libavcodec/dnxhdenc.c | 1054 ++ ffmpeg/libavcodec/dnxhdenc.h | 98 + ffmpeg/libavcodec/dpcm.c | 343 + ffmpeg/libavcodec/dpx.c | 266 + ffmpeg/libavcodec/dpxenc.c | 274 + ffmpeg/libavcodec/dsicinav.c | 409 + ffmpeg/libavcodec/dsputil.c | 2959 +++++ ffmpeg/libavcodec/dsputil.h | 336 + ffmpeg/libavcodec/dsputil_template.c | 260 + ffmpeg/libavcodec/dump_extradata_bsf.c | 53 + ffmpeg/libavcodec/dv.c | 1003 ++ ffmpeg/libavcodec/dv_profile.c | 360 + ffmpeg/libavcodec/dv_profile.h | 78 + ffmpeg/libavcodec/dv_tablegen.c | 47 + ffmpeg/libavcodec/dv_tablegen.h | 97 + ffmpeg/libavcodec/dv_vlc_data.h | 259 + ffmpeg/libavcodec/dvbsub.c | 464 + ffmpeg/libavcodec/dvbsub_parser.c | 179 + ffmpeg/libavcodec/dvbsubdec.c | 1546 +++ ffmpeg/libavcodec/dvd_nav_parser.c | 116 + ffmpeg/libavcodec/dvdata.c | 122 + ffmpeg/libavcodec/dvdata.h | 124 + ffmpeg/libavcodec/dvdec.c | 382 + ffmpeg/libavcodec/dvdsub_parser.c | 88 + ffmpeg/libavcodec/dvdsubdec.c | 611 + ffmpeg/libavcodec/dvdsubenc.c | 443 + ffmpeg/libavcodec/dxa.c | 331 + ffmpeg/libavcodec/dxtory.c | 92 + ffmpeg/libavcodec/dxva2.c | 150 + ffmpeg/libavcodec/dxva2.h | 95 + ffmpeg/libavcodec/dxva2_h264.c | 452 + ffmpeg/libavcodec/dxva2_internal.h | 56 + ffmpeg/libavcodec/dxva2_mpeg2.c | 276 + ffmpeg/libavcodec/dxva2_vc1.c | 297 + ffmpeg/libavcodec/eac3_data.c | 1134 ++ ffmpeg/libavcodec/eac3_data.h | 36 + ffmpeg/libavcodec/eac3dec.c | 607 + ffmpeg/libavcodec/eac3enc.c | 268 + ffmpeg/libavcodec/eac3enc.h | 54 + ffmpeg/libavcodec/eacmv.c | 236 + ffmpeg/libavcodec/eaidct.c | 88 + ffmpeg/libavcodec/eaidct.h | 26 + ffmpeg/libavcodec/eamad.c | 327 + ffmpeg/libavcodec/eatgq.c | 252 + ffmpeg/libavcodec/eatgv.c | 358 + ffmpeg/libavcodec/eatqi.c | 158 + ffmpeg/libavcodec/elbg.c | 438 + ffmpeg/libavcodec/elbg.h | 55 + ffmpeg/libavcodec/error_resilience.c | 1275 +++ ffmpeg/libavcodec/error_resilience.h | 79 + ffmpeg/libavcodec/escape124.c | 379 + ffmpeg/libavcodec/escape130.c | 319 + ffmpeg/libavcodec/evrcdata.h | 1499 +++ ffmpeg/libavcodec/evrcdec.c | 917 ++ ffmpeg/libavcodec/exr.c | 813 ++ ffmpeg/libavcodec/faandct.c | 228 + ffmpeg/libavcodec/faandct.h | 37 + ffmpeg/libavcodec/faanidct.c | 169 + ffmpeg/libavcodec/faanidct.h | 31 + ffmpeg/libavcodec/faxcompr.c | 333 + ffmpeg/libavcodec/faxcompr.h | 46 + ffmpeg/libavcodec/fft-fixed-test.c | 20 + ffmpeg/libavcodec/fft-internal.h | 75 + ffmpeg/libavcodec/fft-test.c | 495 + ffmpeg/libavcodec/fft.c | 353 + ffmpeg/libavcodec/fft.h | 153 + ffmpeg/libavcodec/fft_fixed.c | 20 + ffmpeg/libavcodec/fft_float.c | 20 + ffmpeg/libavcodec/ffv1.c | 221 + ffmpeg/libavcodec/ffv1.h | 216 + ffmpeg/libavcodec/ffv1dec.c | 858 ++ ffmpeg/libavcodec/ffv1enc.c | 1169 ++ ffmpeg/libavcodec/ffwavesynth.c | 484 + ffmpeg/libavcodec/flac.c | 246 + ffmpeg/libavcodec/flac.h | 143 + ffmpeg/libavcodec/flac_parser.c | 692 ++ ffmpeg/libavcodec/flacdata.c | 33 + ffmpeg/libavcodec/flacdata.h | 31 + ffmpeg/libavcodec/flacdec.c | 592 + ffmpeg/libavcodec/flacdsp.c | 131 + ffmpeg/libavcodec/flacdsp.h | 37 + ffmpeg/libavcodec/flacdsp_lpc_template.c | 141 + ffmpeg/libavcodec/flacdsp_template.c | 103 + ffmpeg/libavcodec/flacenc.c | 1358 +++ ffmpeg/libavcodec/flashsv.c | 551 + ffmpeg/libavcodec/flashsv2enc.c | 931 ++ ffmpeg/libavcodec/flashsvenc.c | 288 + ffmpeg/libavcodec/flicvideo.c | 813 ++ ffmpeg/libavcodec/flv.h | 33 + ffmpeg/libavcodec/flvdec.c | 134 + ffmpeg/libavcodec/flvenc.c | 100 + ffmpeg/libavcodec/fmtconvert.c | 121 + ffmpeg/libavcodec/fmtconvert.h | 101 + ffmpeg/libavcodec/frame_thread_encoder.c | 270 + ffmpeg/libavcodec/frame_thread_encoder.h | 26 + ffmpeg/libavcodec/fraps.c | 315 + ffmpeg/libavcodec/frwu.c | 128 + ffmpeg/libavcodec/g722.c | 171 + ffmpeg/libavcodec/g722.h | 77 + ffmpeg/libavcodec/g722dec.c | 149 + ffmpeg/libavcodec/g722enc.c | 394 + ffmpeg/libavcodec/g723_1.c | 2478 +++++ ffmpeg/libavcodec/g723_1_data.h | 1329 +++ ffmpeg/libavcodec/g726.c | 468 + ffmpeg/libavcodec/g729.h | 29 + ffmpeg/libavcodec/g729data.h | 382 + ffmpeg/libavcodec/g729dec.c | 730 ++ ffmpeg/libavcodec/g729postfilter.c | 610 + ffmpeg/libavcodec/g729postfilter.h | 116 + ffmpeg/libavcodec/get_bits.h | 631 ++ ffmpeg/libavcodec/gif.c | 205 + ffmpeg/libavcodec/gif.h | 47 + ffmpeg/libavcodec/gifdec.c | 545 + ffmpeg/libavcodec/golomb-test.c | 99 + ffmpeg/libavcodec/golomb.c | 173 + ffmpeg/libavcodec/golomb.h | 557 + ffmpeg/libavcodec/gsm.h | 31 + ffmpeg/libavcodec/gsm_parser.c | 92 + ffmpeg/libavcodec/gsmdec.c | 128 + ffmpeg/libavcodec/gsmdec_data.c | 94 + ffmpeg/libavcodec/gsmdec_data.h | 43 + ffmpeg/libavcodec/gsmdec_template.c | 151 + ffmpeg/libavcodec/h261.c | 52 + ffmpeg/libavcodec/h261.h | 51 + ffmpeg/libavcodec/h261_parser.c | 93 + ffmpeg/libavcodec/h261data.c | 155 + ffmpeg/libavcodec/h261data.h | 42 + ffmpeg/libavcodec/h261dec.c | 664 ++ ffmpeg/libavcodec/h261enc.c | 337 + ffmpeg/libavcodec/h263.c | 384 + ffmpeg/libavcodec/h263.h | 212 + ffmpeg/libavcodec/h263_parser.c | 95 + ffmpeg/libavcodec/h263_parser.h | 29 + ffmpeg/libavcodec/h263data.h | 299 + ffmpeg/libavcodec/h263dec.c | 813 ++ ffmpeg/libavcodec/h264.c | 5034 +++++++++ ffmpeg/libavcodec/h264.h | 977 ++ ffmpeg/libavcodec/h264_cabac.c | 2425 ++++ ffmpeg/libavcodec/h264_cavlc.c | 1162 ++ ffmpeg/libavcodec/h264_direct.c | 628 ++ ffmpeg/libavcodec/h264_loopfilter.c | 826 ++ ffmpeg/libavcodec/h264_mb_template.c | 367 + ffmpeg/libavcodec/h264_mc_template.c | 159 + ffmpeg/libavcodec/h264_mp4toannexb_bsf.c | 188 + ffmpeg/libavcodec/h264_mvpred.h | 829 ++ ffmpeg/libavcodec/h264_parser.c | 398 + ffmpeg/libavcodec/h264_ps.c | 688 ++ ffmpeg/libavcodec/h264_refs.c | 813 ++ ffmpeg/libavcodec/h264_sei.c | 251 + ffmpeg/libavcodec/h264addpx_template.c | 72 + ffmpeg/libavcodec/h264chroma.c | 54 + ffmpeg/libavcodec/h264chroma.h | 38 + ffmpeg/libavcodec/h264chroma_template.c | 142 + ffmpeg/libavcodec/h264data.h | 272 + ffmpeg/libavcodec/h264dsp.c | 153 + ffmpeg/libavcodec/h264dsp.h | 119 + ffmpeg/libavcodec/h264dsp_template.c | 328 + ffmpeg/libavcodec/h264idct.c | 48 + ffmpeg/libavcodec/h264idct.h | 44 + ffmpeg/libavcodec/h264idct_template.c | 323 + ffmpeg/libavcodec/h264pred.c | 593 + ffmpeg/libavcodec/h264pred.h | 119 + ffmpeg/libavcodec/h264pred_template.c | 1280 +++ ffmpeg/libavcodec/h264qpel.c | 104 + ffmpeg/libavcodec/h264qpel.h | 38 + ffmpeg/libavcodec/h264qpel_template.c | 549 + ffmpeg/libavcodec/hpel_template.c | 100 + ffmpeg/libavcodec/hpeldsp.c | 63 + ffmpeg/libavcodec/hpeldsp.h | 105 + ffmpeg/libavcodec/hpeldsp_template.c | 254 + ffmpeg/libavcodec/huffman.c | 176 + ffmpeg/libavcodec/huffman.h | 47 + ffmpeg/libavcodec/huffyuv.c | 97 + ffmpeg/libavcodec/huffyuv.h | 92 + ffmpeg/libavcodec/huffyuvdec.c | 797 ++ ffmpeg/libavcodec/huffyuvenc.c | 700 ++ ffmpeg/libavcodec/idcinvideo.c | 253 + ffmpeg/libavcodec/iff.c | 896 ++ ffmpeg/libavcodec/iirfilter.c | 352 + ffmpeg/libavcodec/iirfilter.h | 145 + ffmpeg/libavcodec/imc.c | 1025 ++ ffmpeg/libavcodec/imcdata.h | 169 + ffmpeg/libavcodec/imgconvert.c | 665 ++ ffmpeg/libavcodec/imgconvert.h | 29 + ffmpeg/libavcodec/imx_dump_header_bsf.c | 59 + ffmpeg/libavcodec/indeo2.c | 258 + ffmpeg/libavcodec/indeo2data.h | 141 + ffmpeg/libavcodec/indeo3.c | 1138 ++ ffmpeg/libavcodec/indeo3data.h | 362 + ffmpeg/libavcodec/indeo4.c | 659 ++ ffmpeg/libavcodec/indeo4data.h | 350 + ffmpeg/libavcodec/indeo5.c | 676 ++ ffmpeg/libavcodec/indeo5data.h | 162 + ffmpeg/libavcodec/intelh263dec.c | 138 + ffmpeg/libavcodec/internal.h | 230 + ffmpeg/libavcodec/interplayvideo.c | 1027 ++ ffmpeg/libavcodec/intrax8.c | 789 ++ ffmpeg/libavcodec/intrax8.h | 59 + ffmpeg/libavcodec/intrax8dsp.c | 432 + ffmpeg/libavcodec/intrax8dsp.h | 35 + ffmpeg/libavcodec/intrax8huf.h | 918 ++ ffmpeg/libavcodec/ituh263dec.c | 1157 ++ ffmpeg/libavcodec/ituh263enc.c | 837 ++ ffmpeg/libavcodec/ivi_common.c | 1375 +++ ffmpeg/libavcodec/ivi_common.h | 321 + ffmpeg/libavcodec/ivi_dsp.c | 623 ++ ffmpeg/libavcodec/ivi_dsp.h | 205 + ffmpeg/libavcodec/j2k.c | 391 + ffmpeg/libavcodec/j2k.h | 234 + ffmpeg/libavcodec/j2k_dwt.c | 386 + ffmpeg/libavcodec/j2k_dwt.h | 63 + ffmpeg/libavcodec/j2kdec.c | 1093 ++ ffmpeg/libavcodec/j2kenc.c | 1046 ++ ffmpeg/libavcodec/jacosub.h | 45 + ffmpeg/libavcodec/jacosubdec.c | 205 + ffmpeg/libavcodec/jfdctfst.c | 332 + ffmpeg/libavcodec/jfdctint.c | 25 + ffmpeg/libavcodec/jfdctint_template.c | 403 + ffmpeg/libavcodec/jpegls.c | 87 + ffmpeg/libavcodec/jpegls.h | 114 + ffmpeg/libavcodec/jpeglsdec.c | 385 + ffmpeg/libavcodec/jpeglsdec.h | 41 + ffmpeg/libavcodec/jpeglsenc.c | 409 + ffmpeg/libavcodec/jrevdct.c | 1155 ++ ffmpeg/libavcodec/jvdec.c | 220 + ffmpeg/libavcodec/kbdwin.c | 47 + ffmpeg/libavcodec/kbdwin.h | 35 + ffmpeg/libavcodec/kgv1dec.c | 185 + ffmpeg/libavcodec/kmvc.c | 442 + ffmpeg/libavcodec/lagarith.c | 714 ++ ffmpeg/libavcodec/lagarithrac.c | 59 + ffmpeg/libavcodec/lagarithrac.h | 119 + ffmpeg/libavcodec/latm_parser.c | 112 + ffmpeg/libavcodec/lcl.h | 49 + ffmpeg/libavcodec/lcldec.c | 665 ++ ffmpeg/libavcodec/lclenc.c | 197 + ffmpeg/libavcodec/libaacplus.c | 141 + ffmpeg/libavcodec/libavcodec.pc | 14 + ffmpeg/libavcodec/libavcodec.v | 33 + ffmpeg/libavcodec/libcelt_dec.c | 140 + ffmpeg/libavcodec/libfaac.c | 237 + ffmpeg/libavcodec/libfdk-aacenc.c | 411 + ffmpeg/libavcodec/libgsm.c | 254 + ffmpeg/libavcodec/libilbc.c | 197 + ffmpeg/libavcodec/libmp3lame.c | 305 + ffmpeg/libavcodec/libopencore-amr.c | 379 + ffmpeg/libavcodec/libopenjpegdec.c | 408 + ffmpeg/libavcodec/libopenjpegenc.c | 581 + ffmpeg/libavcodec/libopus.c | 48 + ffmpeg/libavcodec/libopus.h | 27 + ffmpeg/libavcodec/libopusdec.c | 198 + ffmpeg/libavcodec/libopusenc.c | 426 + ffmpeg/libavcodec/libschroedinger.c | 221 + ffmpeg/libavcodec/libschroedinger.h | 133 + ffmpeg/libavcodec/libschroedingerdec.c | 386 + ffmpeg/libavcodec/libschroedingerenc.c | 446 + ffmpeg/libavcodec/libspeexdec.c | 182 + ffmpeg/libavcodec/libspeexenc.c | 368 + ffmpeg/libavcodec/libstagefright.cpp | 597 + ffmpeg/libavcodec/libtheoraenc.c | 382 + ffmpeg/libavcodec/libtwolame.c | 196 + ffmpeg/libavcodec/libutvideo.h | 61 + ffmpeg/libavcodec/libutvideodec.cpp | 199 + ffmpeg/libavcodec/libutvideoenc.cpp | 239 + ffmpeg/libavcodec/libvo-aacenc.c | 200 + ffmpeg/libavcodec/libvo-amrwbenc.c | 152 + ffmpeg/libavcodec/libvorbisdec.c | 199 + ffmpeg/libavcodec/libvorbisenc.c | 378 + ffmpeg/libavcodec/libvpxdec.c | 149 + ffmpeg/libavcodec/libvpxenc.c | 729 ++ ffmpeg/libavcodec/libx264.c | 751 ++ ffmpeg/libavcodec/libxavs.c | 432 + ffmpeg/libavcodec/libxvid.c | 775 ++ ffmpeg/libavcodec/libxvid.h | 32 + ffmpeg/libavcodec/libxvid_rc.c | 141 + ffmpeg/libavcodec/ljpegenc.c | 236 + ffmpeg/libavcodec/loco.c | 312 + ffmpeg/libavcodec/log2_tab.c | 1 + ffmpeg/libavcodec/lpc.c | 287 + ffmpeg/libavcodec/lpc.h | 197 + ffmpeg/libavcodec/lsp.c | 235 + ffmpeg/libavcodec/lsp.h | 130 + ffmpeg/libavcodec/lzw.c | 234 + ffmpeg/libavcodec/lzw.h | 63 + ffmpeg/libavcodec/lzwenc.c | 269 + ffmpeg/libavcodec/mace.c | 304 + ffmpeg/libavcodec/mathops.h | 218 + ffmpeg/libavcodec/mathtables.c | 122 + ffmpeg/libavcodec/mdct.c | 203 + ffmpeg/libavcodec/mdct_fixed.c | 64 + ffmpeg/libavcodec/mdct_float.c | 20 + ffmpeg/libavcodec/mdec.c | 254 + ffmpeg/libavcodec/microdvddec.c | 377 + ffmpeg/libavcodec/mimic.c | 478 + ffmpeg/libavcodec/mips/Makefile | 21 + ffmpeg/libavcodec/mips/aaccoder_mips.c | 2498 +++++ ffmpeg/libavcodec/mips/aacdec_mips.c | 831 ++ ffmpeg/libavcodec/mips/aacdec_mips.h | 249 + ffmpeg/libavcodec/mips/aacpsdsp_mips.c | 459 + ffmpeg/libavcodec/mips/aacsbr_mips.c | 618 + ffmpeg/libavcodec/mips/aacsbr_mips.h | 493 + ffmpeg/libavcodec/mips/ac3dsp_mips.c | 412 + ffmpeg/libavcodec/mips/acelp_filters_mips.c | 216 + ffmpeg/libavcodec/mips/acelp_vectors_mips.c | 101 + ffmpeg/libavcodec/mips/amrwbdec_mips.c | 187 + ffmpeg/libavcodec/mips/amrwbdec_mips.h | 62 + ffmpeg/libavcodec/mips/celp_filters_mips.c | 288 + ffmpeg/libavcodec/mips/celp_math_mips.c | 89 + ffmpeg/libavcodec/mips/compute_antialias_fixed.h | 250 + ffmpeg/libavcodec/mips/compute_antialias_float.h | 185 + ffmpeg/libavcodec/mips/fft_init_table.c | 67 + ffmpeg/libavcodec/mips/fft_mips.c | 534 + ffmpeg/libavcodec/mips/fft_table.h | 63 + ffmpeg/libavcodec/mips/fmtconvert_mips.c | 342 + ffmpeg/libavcodec/mips/iirfilter_mips.c | 204 + ffmpeg/libavcodec/mips/lsp_mips.h | 109 + ffmpeg/libavcodec/mips/mathops.h | 82 + ffmpeg/libavcodec/mips/mpegaudiodsp_mips_fixed.c | 907 ++ ffmpeg/libavcodec/mips/mpegaudiodsp_mips_float.c | 1250 +++ ffmpeg/libavcodec/mips/sbrdsp_mips.c | 940 ++ ffmpeg/libavcodec/mjpeg.c | 145 + ffmpeg/libavcodec/mjpeg.h | 156 + ffmpeg/libavcodec/mjpeg2jpeg_bsf.c | 112 + ffmpeg/libavcodec/mjpeg_parser.c | 134 + ffmpeg/libavcodec/mjpega_dump_header_bsf.c | 94 + ffmpeg/libavcodec/mjpegbdec.c | 167 + ffmpeg/libavcodec/mjpegdec.c | 1935 ++++ ffmpeg/libavcodec/mjpegdec.h | 135 + ffmpeg/libavcodec/mjpegenc.c | 544 + ffmpeg/libavcodec/mjpegenc.h | 61 + ffmpeg/libavcodec/mlp.c | 115 + ffmpeg/libavcodec/mlp.h | 127 + ffmpeg/libavcodec/mlp_parser.c | 398 + ffmpeg/libavcodec/mlp_parser.h | 65 + ffmpeg/libavcodec/mlpdec.c | 1272 +++ ffmpeg/libavcodec/mlpdsp.c | 64 + ffmpeg/libavcodec/mlpdsp.h | 37 + ffmpeg/libavcodec/mmvideo.c | 238 + ffmpeg/libavcodec/motion-test.c | 151 + ffmpeg/libavcodec/motion_est.c | 1759 +++ ffmpeg/libavcodec/motion_est_template.c | 1103 ++ ffmpeg/libavcodec/motionpixels.c | 343 + ffmpeg/libavcodec/motionpixels_tablegen.c | 41 + ffmpeg/libavcodec/motionpixels_tablegen.h | 91 + ffmpeg/libavcodec/movsub_bsf.c | 57 + ffmpeg/libavcodec/movtextdec.c | 116 + ffmpeg/libavcodec/movtextenc.c | 165 + ffmpeg/libavcodec/mp3_header_compress_bsf.c | 88 + ffmpeg/libavcodec/mp3_header_decompress_bsf.c | 98 + ffmpeg/libavcodec/mpc.c | 99 + ffmpeg/libavcodec/mpc.h | 77 + ffmpeg/libavcodec/mpc7.c | 343 + ffmpeg/libavcodec/mpc7data.h | 171 + ffmpeg/libavcodec/mpc8.c | 448 + ffmpeg/libavcodec/mpc8data.h | 121 + ffmpeg/libavcodec/mpc8huff.h | 578 + ffmpeg/libavcodec/mpcdata.h | 100 + ffmpeg/libavcodec/mpeg12.c | 2774 +++++ ffmpeg/libavcodec/mpeg12.h | 76 + ffmpeg/libavcodec/mpeg12data.c | 432 + ffmpeg/libavcodec/mpeg12data.h | 57 + ffmpeg/libavcodec/mpeg12decdata.h | 93 + ffmpeg/libavcodec/mpeg12enc.c | 1023 ++ ffmpeg/libavcodec/mpeg4audio.c | 190 + ffmpeg/libavcodec/mpeg4audio.h | 109 + ffmpeg/libavcodec/mpeg4data.h | 376 + ffmpeg/libavcodec/mpeg4video.c | 170 + ffmpeg/libavcodec/mpeg4video.h | 200 + ffmpeg/libavcodec/mpeg4video_parser.c | 154 + ffmpeg/libavcodec/mpeg4video_parser.h | 34 + ffmpeg/libavcodec/mpeg4videodec.c | 2389 ++++ ffmpeg/libavcodec/mpeg4videoenc.c | 1363 +++ ffmpeg/libavcodec/mpegaudio.c | 50 + ffmpeg/libavcodec/mpegaudio.h | 77 + ffmpeg/libavcodec/mpegaudio_parser.c | 114 + ffmpeg/libavcodec/mpegaudio_tablegen.c | 42 + ffmpeg/libavcodec/mpegaudio_tablegen.h | 72 + ffmpeg/libavcodec/mpegaudiodata.c | 146 + ffmpeg/libavcodec/mpegaudiodata.h | 44 + ffmpeg/libavcodec/mpegaudiodec.c | 2076 ++++ ffmpeg/libavcodec/mpegaudiodec_float.c | 104 + ffmpeg/libavcodec/mpegaudiodecheader.c | 146 + ffmpeg/libavcodec/mpegaudiodecheader.h | 76 + ffmpeg/libavcodec/mpegaudiodectab.h | 615 + ffmpeg/libavcodec/mpegaudiodsp.c | 48 + ffmpeg/libavcodec/mpegaudiodsp.h | 89 + ffmpeg/libavcodec/mpegaudiodsp_data.c | 56 + ffmpeg/libavcodec/mpegaudiodsp_fixed.c | 20 + ffmpeg/libavcodec/mpegaudiodsp_float.c | 20 + ffmpeg/libavcodec/mpegaudiodsp_template.c | 400 + ffmpeg/libavcodec/mpegaudioenc.c | 788 ++ ffmpeg/libavcodec/mpegaudiotab.h | 118 + ffmpeg/libavcodec/mpegvideo.c | 3365 ++++++ ffmpeg/libavcodec/mpegvideo.h | 968 ++ ffmpeg/libavcodec/mpegvideo_enc.c | 4311 +++++++ ffmpeg/libavcodec/mpegvideo_motion.c | 894 ++ ffmpeg/libavcodec/mpegvideo_parser.c | 208 + ffmpeg/libavcodec/mpegvideo_xvmc.c | 331 + ffmpeg/libavcodec/mpl2dec.c | 96 + ffmpeg/libavcodec/mqc.c | 108 + ffmpeg/libavcodec/mqc.h | 75 + ffmpeg/libavcodec/mqcdec.c | 93 + ffmpeg/libavcodec/mqcenc.c | 119 + ffmpeg/libavcodec/msgsmdec.c | 38 + ffmpeg/libavcodec/msgsmdec.h | 30 + ffmpeg/libavcodec/msmpeg4.c | 1269 +++ ffmpeg/libavcodec/msmpeg4.h | 68 + ffmpeg/libavcodec/msmpeg4data.c | 2005 ++++ ffmpeg/libavcodec/msmpeg4data.h | 90 + ffmpeg/libavcodec/msmpeg4enc.c | 691 ++ ffmpeg/libavcodec/msrle.c | 164 + ffmpeg/libavcodec/msrledec.c | 266 + ffmpeg/libavcodec/msrledec.h | 39 + ffmpeg/libavcodec/mss1.c | 224 + ffmpeg/libavcodec/mss12.c | 679 ++ ffmpeg/libavcodec/mss12.h | 133 + ffmpeg/libavcodec/mss2.c | 852 ++ ffmpeg/libavcodec/mss2dsp.c | 156 + ffmpeg/libavcodec/mss2dsp.h | 50 + ffmpeg/libavcodec/mss3.c | 866 ++ ffmpeg/libavcodec/mss34dsp.c | 114 + ffmpeg/libavcodec/mss34dsp.h | 45 + ffmpeg/libavcodec/mss4.c | 677 ++ ffmpeg/libavcodec/msvideo1.c | 346 + ffmpeg/libavcodec/msvideo1enc.c | 311 + ffmpeg/libavcodec/mvcdec.c | 286 + ffmpeg/libavcodec/mxpegdec.c | 340 + ffmpeg/libavcodec/nellymoser.c | 224 + ffmpeg/libavcodec/nellymoser.h | 57 + ffmpeg/libavcodec/nellymoserdec.c | 209 + ffmpeg/libavcodec/nellymoserenc.c | 417 + ffmpeg/libavcodec/noise_bsf.c | 53 + ffmpeg/libavcodec/nuv.c | 341 + ffmpeg/libavcodec/old_codec_ids.h | 397 + ffmpeg/libavcodec/options.c | 294 + ffmpeg/libavcodec/options_table.h | 392 + ffmpeg/libavcodec/os2threads.h | 162 + ffmpeg/libavcodec/paf.c | 446 + ffmpeg/libavcodec/paf.h | 28 + ffmpeg/libavcodec/pamenc.c | 143 + ffmpeg/libavcodec/parser.c | 300 + ffmpeg/libavcodec/parser.h | 59 + ffmpeg/libavcodec/pcm-mpeg.c | 312 + ffmpeg/libavcodec/pcm.c | 625 ++ ffmpeg/libavcodec/pcm_tablegen.c | 39 + ffmpeg/libavcodec/pcm_tablegen.h | 119 + ffmpeg/libavcodec/pcx.c | 234 + ffmpeg/libavcodec/pcxenc.c | 230 + ffmpeg/libavcodec/pgssubdec.c | 549 + ffmpeg/libavcodec/pictordec.c | 262 + ffmpeg/libavcodec/png.c | 72 + ffmpeg/libavcodec/png.h | 69 + ffmpeg/libavcodec/png_parser.c | 120 + ffmpeg/libavcodec/pngdec.c | 902 ++ ffmpeg/libavcodec/pngdsp.c | 48 + ffmpeg/libavcodec/pngdsp.h | 40 + ffmpeg/libavcodec/pngenc.c | 480 + ffmpeg/libavcodec/pnm.c | 204 + ffmpeg/libavcodec/pnm.h | 39 + ffmpeg/libavcodec/pnm_parser.c | 92 + ffmpeg/libavcodec/pnmdec.c | 290 + ffmpeg/libavcodec/pnmenc.c | 186 + ffmpeg/libavcodec/ppc/Makefile | 24 + ffmpeg/libavcodec/ppc/asm.S | 133 + ffmpeg/libavcodec/ppc/dsputil_altivec.c | 963 ++ ffmpeg/libavcodec/ppc/dsputil_altivec.h | 43 + ffmpeg/libavcodec/ppc/dsputil_ppc.c | 184 + ffmpeg/libavcodec/ppc/fdct_altivec.c | 462 + ffmpeg/libavcodec/ppc/fft_altivec.c | 150 + ffmpeg/libavcodec/ppc/fft_altivec_s.S | 449 + ffmpeg/libavcodec/ppc/fmtconvert_altivec.c | 166 + ffmpeg/libavcodec/ppc/gmc_altivec.c | 130 + ffmpeg/libavcodec/ppc/h264_altivec.c | 748 ++ ffmpeg/libavcodec/ppc/h264_qpel.c | 317 + ffmpeg/libavcodec/ppc/h264_qpel_template.c | 507 + ffmpeg/libavcodec/ppc/h264chroma_init.c | 64 + ffmpeg/libavcodec/ppc/h264chroma_template.c | 289 + ffmpeg/libavcodec/ppc/hpeldsp_altivec.c | 464 + ffmpeg/libavcodec/ppc/idct_altivec.c | 216 + ffmpeg/libavcodec/ppc/int_altivec.c | 145 + ffmpeg/libavcodec/ppc/mathops.h | 79 + ffmpeg/libavcodec/ppc/mpegaudiodec_altivec.c | 130 + ffmpeg/libavcodec/ppc/mpegvideo_altivec.c | 124 + ffmpeg/libavcodec/ppc/vc1dsp_altivec.c | 347 + ffmpeg/libavcodec/ppc/videodsp_ppc.c | 36 + ffmpeg/libavcodec/ppc/vorbisdsp_altivec.c | 61 + ffmpeg/libavcodec/ppc/vp3dsp_altivec.c | 189 + ffmpeg/libavcodec/ppc/vp8dsp_altivec.c | 304 + ffmpeg/libavcodec/proresdata.c | 72 + ffmpeg/libavcodec/proresdata.h | 39 + ffmpeg/libavcodec/proresdec.h | 54 + ffmpeg/libavcodec/proresdec2.c | 595 + ffmpeg/libavcodec/proresdec_lgpl.c | 668 ++ ffmpeg/libavcodec/proresdsp.c | 91 + ffmpeg/libavcodec/proresdsp.h | 44 + ffmpeg/libavcodec/proresenc_anatoliy.c | 626 ++ ffmpeg/libavcodec/proresenc_kostya.c | 1077 ++ ffmpeg/libavcodec/psymodel.c | 147 + ffmpeg/libavcodec/psymodel.h | 189 + ffmpeg/libavcodec/pthread.c | 1136 ++ ffmpeg/libavcodec/ptx.c | 93 + ffmpeg/libavcodec/put_bits.h | 237 + ffmpeg/libavcodec/qcelpdata.h | 552 + ffmpeg/libavcodec/qcelpdec.c | 797 ++ ffmpeg/libavcodec/qdm2.c | 2014 ++++ ffmpeg/libavcodec/qdm2_tablegen.c | 44 + ffmpeg/libavcodec/qdm2_tablegen.h | 97 + ffmpeg/libavcodec/qdm2data.h | 531 + ffmpeg/libavcodec/qdrw.c | 151 + ffmpeg/libavcodec/qpeg.c | 352 + ffmpeg/libavcodec/qtrle.c | 526 + ffmpeg/libavcodec/qtrleenc.c | 402 + ffmpeg/libavcodec/r210dec.c | 122 + ffmpeg/libavcodec/r210enc.c | 123 + ffmpeg/libavcodec/ra144.c | 1728 +++ ffmpeg/libavcodec/ra144.h | 85 + ffmpeg/libavcodec/ra144dec.c | 137 + ffmpeg/libavcodec/ra144enc.c | 558 + ffmpeg/libavcodec/ra288.c | 239 + ffmpeg/libavcodec/ra288.h | 148 + ffmpeg/libavcodec/ralf.c | 535 + ffmpeg/libavcodec/ralfdata.h | 9920 +++++++++++++++++ ffmpeg/libavcodec/rangecoder.c | 157 + ffmpeg/libavcodec/rangecoder.h | 147 + ffmpeg/libavcodec/ratecontrol.c | 1062 ++ ffmpeg/libavcodec/ratecontrol.h | 103 + ffmpeg/libavcodec/raw.c | 208 + ffmpeg/libavcodec/raw.h | 44 + ffmpeg/libavcodec/rawdec.c | 348 + ffmpeg/libavcodec/rawenc.c | 80 + ffmpeg/libavcodec/rdft.c | 133 + ffmpeg/libavcodec/rdft.h | 74 + ffmpeg/libavcodec/realtextdec.c | 83 + ffmpeg/libavcodec/rectangle.h | 124 + ffmpeg/libavcodec/remove_extradata_bsf.c | 55 + ffmpeg/libavcodec/resample.c | 435 + ffmpeg/libavcodec/resample2.c | 319 + ffmpeg/libavcodec/rl.h | 86 + ffmpeg/libavcodec/rl2.c | 226 + ffmpeg/libavcodec/rle.c | 85 + ffmpeg/libavcodec/rle.h | 39 + ffmpeg/libavcodec/rnd_avg.h | 57 + ffmpeg/libavcodec/roqaudioenc.c | 206 + ffmpeg/libavcodec/roqvideo.c | 143 + ffmpeg/libavcodec/roqvideo.h | 93 + ffmpeg/libavcodec/roqvideodec.c | 247 + ffmpeg/libavcodec/roqvideoenc.c | 1087 ++ ffmpeg/libavcodec/rpza.c | 292 + ffmpeg/libavcodec/rtjpeg.c | 173 + ffmpeg/libavcodec/rtjpeg.h | 47 + ffmpeg/libavcodec/rv10.c | 789 ++ ffmpeg/libavcodec/rv10enc.c | 72 + ffmpeg/libavcodec/rv20enc.c | 73 + ffmpeg/libavcodec/rv30.c | 288 + ffmpeg/libavcodec/rv30data.h | 181 + ffmpeg/libavcodec/rv30dsp.c | 314 + ffmpeg/libavcodec/rv34.c | 1821 +++ ffmpeg/libavcodec/rv34.h | 140 + ffmpeg/libavcodec/rv34_parser.c | 93 + ffmpeg/libavcodec/rv34data.h | 126 + ffmpeg/libavcodec/rv34dsp.c | 143 + ffmpeg/libavcodec/rv34dsp.h | 87 + ffmpeg/libavcodec/rv34vlc.h | 4055 +++++++ ffmpeg/libavcodec/rv40.c | 579 + ffmpeg/libavcodec/rv40data.h | 101 + ffmpeg/libavcodec/rv40dsp.c | 626 ++ ffmpeg/libavcodec/rv40vlc2.h | 706 ++ ffmpeg/libavcodec/s302m.c | 161 + ffmpeg/libavcodec/s3tc.c | 97 + ffmpeg/libavcodec/s3tc.h | 55 + ffmpeg/libavcodec/samidec.c | 158 + ffmpeg/libavcodec/sanm.c | 1300 +++ ffmpeg/libavcodec/sanm_data.h | 248 + ffmpeg/libavcodec/sbr.h | 213 + ffmpeg/libavcodec/sbrdsp.c | 250 + ffmpeg/libavcodec/sbrdsp.h | 52 + ffmpeg/libavcodec/sgi.h | 36 + ffmpeg/libavcodec/sgidec.c | 243 + ffmpeg/libavcodec/sgienc.c | 228 + ffmpeg/libavcodec/sgirledec.c | 151 + ffmpeg/libavcodec/sh4/Makefile | 7 + ffmpeg/libavcodec/sh4/dsputil_align.c | 312 + ffmpeg/libavcodec/sh4/dsputil_sh4.c | 108 + ffmpeg/libavcodec/sh4/dsputil_sh4.h | 34 + ffmpeg/libavcodec/sh4/h264chroma_init.c | 132 + ffmpeg/libavcodec/sh4/hpeldsp.c | 347 + ffmpeg/libavcodec/sh4/idct_sh4.c | 210 + ffmpeg/libavcodec/sh4/qpel.c | 862 ++ ffmpeg/libavcodec/sh4/sh4.h | 44 + ffmpeg/libavcodec/shorten.c | 671 ++ ffmpeg/libavcodec/simple_idct.c | 233 + ffmpeg/libavcodec/simple_idct.h | 57 + ffmpeg/libavcodec/simple_idct_template.c | 324 + ffmpeg/libavcodec/sinewin.c | 20 + ffmpeg/libavcodec/sinewin.h | 60 + ffmpeg/libavcodec/sinewin_tablegen.c | 46 + ffmpeg/libavcodec/sinewin_tablegen.h | 67 + ffmpeg/libavcodec/sipr.c | 574 + ffmpeg/libavcodec/sipr.h | 109 + ffmpeg/libavcodec/sipr16k.c | 282 + ffmpeg/libavcodec/sipr16kdata.h | 533 + ffmpeg/libavcodec/siprdata.h | 263 + ffmpeg/libavcodec/smacker.c | 782 ++ ffmpeg/libavcodec/smc.c | 474 + ffmpeg/libavcodec/snow.c | 692 ++ ffmpeg/libavcodec/snow.h | 703 ++ ffmpeg/libavcodec/snow_dwt.c | 865 ++ ffmpeg/libavcodec/snow_dwt.h | 127 + ffmpeg/libavcodec/snowdata.h | 132 + ffmpeg/libavcodec/snowdec.c | 587 + ffmpeg/libavcodec/snowenc.c | 2112 ++++ ffmpeg/libavcodec/sonic.c | 999 ++ ffmpeg/libavcodec/sp5x.h | 238 + ffmpeg/libavcodec/sp5xdec.c | 121 + ffmpeg/libavcodec/sparc/Makefile | 4 + ffmpeg/libavcodec/sparc/dsputil_vis.c | 62 + ffmpeg/libavcodec/sparc/dsputil_vis.h | 28 + ffmpeg/libavcodec/sparc/hpeldsp_vis.c | 3537 ++++++ ffmpeg/libavcodec/sparc/simple_idct_vis.c | 531 + ffmpeg/libavcodec/sparc/vis.h | 331 + ffmpeg/libavcodec/srtdec.c | 282 + ffmpeg/libavcodec/srtenc.c | 324 + ffmpeg/libavcodec/subviewerdec.c | 83 + ffmpeg/libavcodec/sunrast.c | 217 + ffmpeg/libavcodec/sunrast.h | 56 + ffmpeg/libavcodec/sunrastenc.c | 224 + ffmpeg/libavcodec/svq1.c | 43 + ffmpeg/libavcodec/svq1.h | 59 + ffmpeg/libavcodec/svq13.c | 69 + ffmpeg/libavcodec/svq1_cb.h | 1525 +++ ffmpeg/libavcodec/svq1_vlc.h | 268 + ffmpeg/libavcodec/svq1dec.c | 821 ++ ffmpeg/libavcodec/svq1enc.c | 635 ++ ffmpeg/libavcodec/svq1enc_cb.h | 86 + ffmpeg/libavcodec/svq3.c | 1350 +++ ffmpeg/libavcodec/svq3.h | 27 + ffmpeg/libavcodec/synth_filter.c | 64 + ffmpeg/libavcodec/synth_filter.h | 37 + ffmpeg/libavcodec/tableprint.h | 111 + ffmpeg/libavcodec/tak.c | 175 + ffmpeg/libavcodec/tak.h | 165 + ffmpeg/libavcodec/tak_parser.c | 128 + ffmpeg/libavcodec/takdec.c | 938 ++ ffmpeg/libavcodec/targa.c | 307 + ffmpeg/libavcodec/targa.h | 48 + ffmpeg/libavcodec/targa_y216dec.c | 90 + ffmpeg/libavcodec/targaenc.c | 201 + ffmpeg/libavcodec/textdec.c | 188 + ffmpeg/libavcodec/thread.h | 128 + ffmpeg/libavcodec/tiertexseqv.c | 267 + ffmpeg/libavcodec/tiff.c | 1237 ++ ffmpeg/libavcodec/tiff.h | 193 + ffmpeg/libavcodec/tiff_data.c | 1870 ++++ ffmpeg/libavcodec/tiff_data.h | 92 + ffmpeg/libavcodec/tiffenc.c | 546 + ffmpeg/libavcodec/timecode.c | 150 + ffmpeg/libavcodec/timecode.h | 106 + ffmpeg/libavcodec/tmv.c | 97 + ffmpeg/libavcodec/truemotion1.c | 909 ++ ffmpeg/libavcodec/truemotion1data.h | 832 ++ ffmpeg/libavcodec/truemotion2.c | 1004 ++ ffmpeg/libavcodec/truespeech.c | 366 + ffmpeg/libavcodec/truespeech_data.h | 159 + ffmpeg/libavcodec/tscc.c | 190 + ffmpeg/libavcodec/tscc2.c | 377 + ffmpeg/libavcodec/tscc2data.h | 935 ++ ffmpeg/libavcodec/tta.c | 515 + ffmpeg/libavcodec/twinvq.c | 1185 ++ ffmpeg/libavcodec/twinvq_data.h | 11137 +++++++++++++++++++ ffmpeg/libavcodec/txd.c | 142 + ffmpeg/libavcodec/ulti.c | 429 + ffmpeg/libavcodec/ulti_cb.h | 4124 +++++++ ffmpeg/libavcodec/unary.h | 56 + ffmpeg/libavcodec/utils.c | 3095 ++++++ ffmpeg/libavcodec/utvideo.c | 39 + ffmpeg/libavcodec/utvideo.h | 91 + ffmpeg/libavcodec/utvideodec.c | 543 + ffmpeg/libavcodec/utvideoenc.c | 622 ++ ffmpeg/libavcodec/v210dec.c | 178 + ffmpeg/libavcodec/v210dec.h | 36 + ffmpeg/libavcodec/v210enc.c | 126 + ffmpeg/libavcodec/v210x.c | 131 + ffmpeg/libavcodec/v308dec.c | 91 + ffmpeg/libavcodec/v308enc.c | 94 + ffmpeg/libavcodec/v408dec.c | 111 + ffmpeg/libavcodec/v408enc.c | 113 + ffmpeg/libavcodec/v410dec.c | 98 + ffmpeg/libavcodec/v410enc.c | 98 + ffmpeg/libavcodec/vaapi.c | 219 + ffmpeg/libavcodec/vaapi.h | 173 + ffmpeg/libavcodec/vaapi_h264.c | 361 + ffmpeg/libavcodec/vaapi_internal.h | 72 + ffmpeg/libavcodec/vaapi_mpeg2.c | 143 + ffmpeg/libavcodec/vaapi_mpeg4.c | 169 + ffmpeg/libavcodec/vaapi_vc1.c | 356 + ffmpeg/libavcodec/vb.c | 277 + ffmpeg/libavcodec/vble.c | 213 + ffmpeg/libavcodec/vc1.c | 1666 +++ ffmpeg/libavcodec/vc1.h | 462 + ffmpeg/libavcodec/vc1_parser.c | 201 + ffmpeg/libavcodec/vc1acdata.h | 367 + ffmpeg/libavcodec/vc1data.c | 1135 ++ ffmpeg/libavcodec/vc1data.h | 208 + ffmpeg/libavcodec/vc1dec.c | 6266 +++++++++++ ffmpeg/libavcodec/vc1dsp.c | 874 ++ ffmpeg/libavcodec/vc1dsp.h | 82 + ffmpeg/libavcodec/vcr1.c | 128 + ffmpeg/libavcodec/vda.h | 151 + ffmpeg/libavcodec/vda_h264.c | 237 + ffmpeg/libavcodec/vda_h264_dec.c | 258 + ffmpeg/libavcodec/vdpau.c | 414 + ffmpeg/libavcodec/vdpau.h | 151 + ffmpeg/libavcodec/vdpau_h264.c | 210 + ffmpeg/libavcodec/vdpau_internal.h | 60 + ffmpeg/libavcodec/vdpau_mpeg12.c | 116 + ffmpeg/libavcodec/vdpau_mpeg4.c | 110 + ffmpeg/libavcodec/vdpau_vc1.c | 128 + ffmpeg/libavcodec/version.h | 92 + ffmpeg/libavcodec/videodsp.c | 52 + ffmpeg/libavcodec/videodsp.h | 79 + ffmpeg/libavcodec/videodsp_template.c | 98 + ffmpeg/libavcodec/vima.c | 233 + ffmpeg/libavcodec/vmdav.c | 662 ++ ffmpeg/libavcodec/vmnc.c | 532 + ffmpeg/libavcodec/vorbis.c | 236 + ffmpeg/libavcodec/vorbis.h | 50 + ffmpeg/libavcodec/vorbis_data.c | 2193 ++++ ffmpeg/libavcodec/vorbis_enc_data.h | 504 + ffmpeg/libavcodec/vorbis_parser.c | 271 + ffmpeg/libavcodec/vorbis_parser.h | 68 + ffmpeg/libavcodec/vorbisdec.c | 1802 +++ ffmpeg/libavcodec/vorbisdsp.c | 33 + ffmpeg/libavcodec/vorbisdsp.h | 37 + ffmpeg/libavcodec/vorbisenc.c | 1205 ++ ffmpeg/libavcodec/vp3.c | 2486 +++++ ffmpeg/libavcodec/vp3_parser.c | 42 + ffmpeg/libavcodec/vp3data.h | 3181 ++++++ ffmpeg/libavcodec/vp3dsp.c | 298 + ffmpeg/libavcodec/vp3dsp.h | 54 + ffmpeg/libavcodec/vp5.c | 291 + ffmpeg/libavcodec/vp56.c | 755 ++ ffmpeg/libavcodec/vp56.h | 376 + ffmpeg/libavcodec/vp56data.c | 68 + ffmpeg/libavcodec/vp56data.h | 252 + ffmpeg/libavcodec/vp56dsp.c | 94 + ffmpeg/libavcodec/vp56dsp.h | 42 + ffmpeg/libavcodec/vp56rac.c | 47 + ffmpeg/libavcodec/vp5data.h | 177 + ffmpeg/libavcodec/vp6.c | 694 ++ ffmpeg/libavcodec/vp6data.h | 310 + ffmpeg/libavcodec/vp6dsp.c | 61 + ffmpeg/libavcodec/vp8.c | 2110 ++++ ffmpeg/libavcodec/vp8.h | 275 + ffmpeg/libavcodec/vp8_parser.c | 38 + ffmpeg/libavcodec/vp8data.h | 691 ++ ffmpeg/libavcodec/vp8dsp.c | 530 + ffmpeg/libavcodec/vp8dsp.h | 96 + ffmpeg/libavcodec/vqavideo.c | 639 ++ ffmpeg/libavcodec/w32pthreads.h | 272 + ffmpeg/libavcodec/wavpack.c | 1265 +++ ffmpeg/libavcodec/webvttdec.c | 100 + ffmpeg/libavcodec/wma.c | 488 + ffmpeg/libavcodec/wma.h | 159 + ffmpeg/libavcodec/wma_common.c | 62 + ffmpeg/libavcodec/wma_common.h | 27 + ffmpeg/libavcodec/wmadata.h | 1403 +++ ffmpeg/libavcodec/wmadec.c | 974 ++ ffmpeg/libavcodec/wmaenc.c | 421 + ffmpeg/libavcodec/wmalosslessdec.c | 1300 +++ ffmpeg/libavcodec/wmaprodata.h | 604 + ffmpeg/libavcodec/wmaprodec.c | 1646 +++ ffmpeg/libavcodec/wmavoice.c | 2055 ++++ ffmpeg/libavcodec/wmavoice_data.h | 3259 ++++++ ffmpeg/libavcodec/wmv2.c | 176 + ffmpeg/libavcodec/wmv2.h | 59 + ffmpeg/libavcodec/wmv2dec.c | 478 + ffmpeg/libavcodec/wmv2dsp.c | 146 + ffmpeg/libavcodec/wmv2dsp.h | 33 + ffmpeg/libavcodec/wmv2enc.c | 223 + ffmpeg/libavcodec/wnv1.c | 160 + ffmpeg/libavcodec/ws-snd1.c | 181 + ffmpeg/libavcodec/x86/Makefile | 95 + ffmpeg/libavcodec/x86/ac3dsp.asm | 457 + ffmpeg/libavcodec/x86/ac3dsp_init.c | 232 + ffmpeg/libavcodec/x86/cabac.h | 229 + ffmpeg/libavcodec/x86/cavsdsp.c | 512 + ffmpeg/libavcodec/x86/constants.c | 39 + ffmpeg/libavcodec/x86/dct32.asm | 490 + ffmpeg/libavcodec/x86/deinterlace.asm | 82 + ffmpeg/libavcodec/x86/dirac_dwt.c | 202 + ffmpeg/libavcodec/x86/dirac_dwt.h | 30 + ffmpeg/libavcodec/x86/diracdsp_mmx.c | 104 + ffmpeg/libavcodec/x86/diracdsp_mmx.h | 47 + ffmpeg/libavcodec/x86/diracdsp_yasm.asm | 264 + ffmpeg/libavcodec/x86/dnxhdenc.c | 66 + ffmpeg/libavcodec/x86/dsputil.asm | 652 ++ ffmpeg/libavcodec/x86/dsputil_mmx.c | 1636 +++ ffmpeg/libavcodec/x86/dsputil_mmx.h | 113 + ffmpeg/libavcodec/x86/dsputil_qns_template.c | 101 + ffmpeg/libavcodec/x86/dsputil_rnd_template.c | 221 + ffmpeg/libavcodec/x86/dsputilenc.asm | 487 + ffmpeg/libavcodec/x86/dsputilenc_mmx.c | 1060 ++ ffmpeg/libavcodec/x86/dwt_yasm.asm | 306 + ffmpeg/libavcodec/x86/fdct.c | 586 + ffmpeg/libavcodec/x86/fft.asm | 1093 ++ ffmpeg/libavcodec/x86/fft.h | 41 + ffmpeg/libavcodec/x86/fft_init.c | 68 + ffmpeg/libavcodec/x86/fmtconvert.asm | 429 + ffmpeg/libavcodec/x86/fmtconvert_init.c | 148 + ffmpeg/libavcodec/x86/fpelbase.asm | 106 + ffmpeg/libavcodec/x86/h263_loopfilter.asm | 189 + ffmpeg/libavcodec/x86/h264_chromamc.asm | 678 ++ ffmpeg/libavcodec/x86/h264_chromamc_10bit.asm | 271 + ffmpeg/libavcodec/x86/h264_deblock.asm | 1083 ++ ffmpeg/libavcodec/x86/h264_deblock_10bit.asm | 923 ++ ffmpeg/libavcodec/x86/h264_i386.h | 204 + ffmpeg/libavcodec/x86/h264_idct.asm | 1073 ++ ffmpeg/libavcodec/x86/h264_idct_10bit.asm | 589 + ffmpeg/libavcodec/x86/h264_intrapred.asm | 2702 +++++ ffmpeg/libavcodec/x86/h264_intrapred_10bit.asm | 1199 ++ ffmpeg/libavcodec/x86/h264_intrapred_init.c | 402 + ffmpeg/libavcodec/x86/h264_qpel.c | 644 ++ ffmpeg/libavcodec/x86/h264_qpel_10bit.asm | 884 ++ ffmpeg/libavcodec/x86/h264_qpel_8bit.asm | 862 ++ ffmpeg/libavcodec/x86/h264_weight.asm | 317 + ffmpeg/libavcodec/x86/h264_weight_10bit.asm | 282 + ffmpeg/libavcodec/x86/h264chroma_init.c | 118 + ffmpeg/libavcodec/x86/h264dsp_init.c | 375 + ffmpeg/libavcodec/x86/hpeldsp.asm | 461 + ffmpeg/libavcodec/x86/hpeldsp_avg_template.c | 77 + ffmpeg/libavcodec/x86/hpeldsp_init.c | 415 + ffmpeg/libavcodec/x86/hpeldsp_rnd_template.c | 428 + ffmpeg/libavcodec/x86/idct_mmx_xvid.c | 558 + ffmpeg/libavcodec/x86/idct_sse2_xvid.c | 407 + ffmpeg/libavcodec/x86/idct_xvid.h | 43 + ffmpeg/libavcodec/x86/imdct36.asm | 724 ++ ffmpeg/libavcodec/x86/lpc.c | 154 + ffmpeg/libavcodec/x86/mathops.h | 130 + ffmpeg/libavcodec/x86/mlpdsp.c | 182 + ffmpeg/libavcodec/x86/motion_est.c | 473 + ffmpeg/libavcodec/x86/mpeg4qpel.asm | 560 + ffmpeg/libavcodec/x86/mpegaudiodec.c | 273 + ffmpeg/libavcodec/x86/mpegvideo.c | 600 + ffmpeg/libavcodec/x86/mpegvideoenc.c | 107 + ffmpeg/libavcodec/x86/mpegvideoenc_template.c | 364 + ffmpeg/libavcodec/x86/pngdsp.asm | 173 + ffmpeg/libavcodec/x86/pngdsp_init.c | 50 + ffmpeg/libavcodec/x86/proresdsp.asm | 326 + ffmpeg/libavcodec/x86/proresdsp_init.c | 57 + ffmpeg/libavcodec/x86/qpelbase.asm | 176 + ffmpeg/libavcodec/x86/rv34dsp.asm | 196 + ffmpeg/libavcodec/x86/rv34dsp_init.c | 45 + ffmpeg/libavcodec/x86/rv40dsp.asm | 505 + ffmpeg/libavcodec/x86/rv40dsp_init.c | 243 + ffmpeg/libavcodec/x86/sbrdsp.asm | 222 + ffmpeg/libavcodec/x86/sbrdsp_init.c | 48 + ffmpeg/libavcodec/x86/simple_idct.c | 1167 ++ ffmpeg/libavcodec/x86/snowdsp.c | 902 ++ ffmpeg/libavcodec/x86/v210-init.c | 48 + ffmpeg/libavcodec/x86/v210.asm | 88 + ffmpeg/libavcodec/x86/vc1dsp.asm | 317 + ffmpeg/libavcodec/x86/vc1dsp.h | 29 + ffmpeg/libavcodec/x86/vc1dsp_init.c | 132 + ffmpeg/libavcodec/x86/vc1dsp_mmx.c | 750 ++ ffmpeg/libavcodec/x86/videodsp.asm | 612 + ffmpeg/libavcodec/x86/videodsp_init.c | 128 + ffmpeg/libavcodec/x86/vorbisdsp.asm | 83 + ffmpeg/libavcodec/x86/vorbisdsp_init.c | 43 + ffmpeg/libavcodec/x86/vp3dsp.asm | 709 ++ ffmpeg/libavcodec/x86/vp3dsp_init.c | 128 + ffmpeg/libavcodec/x86/vp56_arith.h | 54 + ffmpeg/libavcodec/x86/vp56dsp.asm | 170 + ffmpeg/libavcodec/x86/vp56dsp_init.c | 48 + ffmpeg/libavcodec/x86/vp8dsp.asm | 2780 +++++ ffmpeg/libavcodec/x86/vp8dsp_init.c | 442 + ffmpeg/libavcodec/x86/w64xmmtest.c | 80 + ffmpeg/libavcodec/xan.c | 638 ++ ffmpeg/libavcodec/xbmdec.c | 127 + ffmpeg/libavcodec/xbmenc.c | 85 + ffmpeg/libavcodec/xface.c | 381 + ffmpeg/libavcodec/xface.h | 95 + ffmpeg/libavcodec/xfacedec.c | 188 + ffmpeg/libavcodec/xfaceenc.c | 238 + ffmpeg/libavcodec/xiph.c | 63 + ffmpeg/libavcodec/xiph.h | 43 + ffmpeg/libavcodec/xl.c | 139 + ffmpeg/libavcodec/xsubdec.c | 145 + ffmpeg/libavcodec/xsubenc.c | 219 + ffmpeg/libavcodec/xvmc.h | 168 + ffmpeg/libavcodec/xvmc_internal.h | 33 + ffmpeg/libavcodec/xwd.h | 41 + ffmpeg/libavcodec/xwddec.c | 247 + ffmpeg/libavcodec/xwdenc.c | 256 + ffmpeg/libavcodec/xxan.c | 444 + ffmpeg/libavcodec/y41pdec.c | 99 + ffmpeg/libavcodec/y41penc.c | 102 + ffmpeg/libavcodec/yop.c | 257 + ffmpeg/libavcodec/yuv4dec.c | 91 + ffmpeg/libavcodec/yuv4enc.c | 91 + ffmpeg/libavcodec/zerocodec.c | 146 + ffmpeg/libavcodec/zmbv.c | 635 ++ ffmpeg/libavcodec/zmbvenc.c | 348 + ffmpeg/libavdevice/Makefile | 48 + ffmpeg/libavdevice/alldevices.c | 71 + ffmpeg/libavdevice/alsa-audio-common.c | 345 + ffmpeg/libavdevice/alsa-audio-dec.c | 157 + ffmpeg/libavdevice/alsa-audio-enc.c | 129 + ffmpeg/libavdevice/alsa-audio.h | 101 + ffmpeg/libavdevice/avdevice.c | 38 + ffmpeg/libavdevice/avdevice.h | 69 + ffmpeg/libavdevice/bktr.c | 347 + ffmpeg/libavdevice/caca.c | 240 + ffmpeg/libavdevice/dshow.c | 1095 ++ ffmpeg/libavdevice/dshow_capture.h | 279 + ffmpeg/libavdevice/dshow_common.c | 190 + ffmpeg/libavdevice/dshow_enummediatypes.c | 103 + ffmpeg/libavdevice/dshow_enumpins.c | 105 + ffmpeg/libavdevice/dshow_filter.c | 202 + ffmpeg/libavdevice/dshow_pin.c | 362 + ffmpeg/libavdevice/dv1394.c | 237 + ffmpeg/libavdevice/dv1394.h | 357 + ffmpeg/libavdevice/fbdev.c | 270 + ffmpeg/libavdevice/iec61883.c | 497 + ffmpeg/libavdevice/jack_audio.c | 343 + ffmpeg/libavdevice/lavfi.c | 439 + ffmpeg/libavdevice/libavdevice.pc | 14 + ffmpeg/libavdevice/libavdevice.v | 4 + ffmpeg/libavdevice/libcdio.c | 191 + ffmpeg/libavdevice/libdc1394.c | 420 + ffmpeg/libavdevice/openal-dec.c | 252 + ffmpeg/libavdevice/oss_audio.c | 327 + ffmpeg/libavdevice/pulse.c | 190 + ffmpeg/libavdevice/sdl.c | 236 + ffmpeg/libavdevice/sndio_common.c | 120 + ffmpeg/libavdevice/sndio_common.h | 48 + ffmpeg/libavdevice/sndio_dec.c | 118 + ffmpeg/libavdevice/sndio_enc.c | 92 + ffmpeg/libavdevice/timefilter.c | 160 + ffmpeg/libavdevice/timefilter.h | 108 + ffmpeg/libavdevice/v4l.c | 363 + ffmpeg/libavdevice/v4l2.c | 1087 ++ ffmpeg/libavdevice/version.h | 50 + ffmpeg/libavdevice/vfwcap.c | 483 + ffmpeg/libavdevice/x11grab.c | 628 ++ ffmpeg/libavfilter/Makefile | 226 + ffmpeg/libavfilter/af_aconvert.c | 185 + ffmpeg/libavfilter/af_afade.c | 307 + ffmpeg/libavfilter/af_aformat.c | 155 + ffmpeg/libavfilter/af_amerge.c | 355 + ffmpeg/libavfilter/af_amix.c | 567 + ffmpeg/libavfilter/af_anull.c | 58 + ffmpeg/libavfilter/af_apad.c | 163 + ffmpeg/libavfilter/af_aresample.c | 288 + ffmpeg/libavfilter/af_asetnsamples.c | 211 + ffmpeg/libavfilter/af_ashowinfo.c | 132 + ffmpeg/libavfilter/af_astreamsync.c | 220 + ffmpeg/libavfilter/af_asyncts.c | 307 + ffmpeg/libavfilter/af_atempo.c | 1172 ++ ffmpeg/libavfilter/af_biquads.c | 627 ++ ffmpeg/libavfilter/af_channelmap.c | 416 + ffmpeg/libavfilter/af_channelsplit.c | 153 + ffmpeg/libavfilter/af_earwax.c | 169 + ffmpeg/libavfilter/af_join.c | 522 + ffmpeg/libavfilter/af_pan.c | 407 + ffmpeg/libavfilter/af_resample.c | 305 + ffmpeg/libavfilter/af_silencedetect.c | 184 + ffmpeg/libavfilter/af_volume.c | 305 + ffmpeg/libavfilter/af_volume.h | 55 + ffmpeg/libavfilter/af_volumedetect.c | 161 + ffmpeg/libavfilter/all_channel_layouts.inc | 68 + ffmpeg/libavfilter/allfilters.c | 202 + ffmpeg/libavfilter/asink_anullsink.c | 48 + ffmpeg/libavfilter/asrc_abuffer.h | 91 + ffmpeg/libavfilter/asrc_aevalsrc.c | 263 + ffmpeg/libavfilter/asrc_anullsrc.c | 141 + ffmpeg/libavfilter/asrc_flite.c | 291 + ffmpeg/libavfilter/asrc_sine.c | 230 + ffmpeg/libavfilter/audio.c | 184 + ffmpeg/libavfilter/audio.h | 83 + ffmpeg/libavfilter/avcodec.c | 157 + ffmpeg/libavfilter/avcodec.h | 110 + ffmpeg/libavfilter/avf_concat.c | 425 + ffmpeg/libavfilter/avf_showspectrum.c | 515 + ffmpeg/libavfilter/avf_showwaves.c | 271 + ffmpeg/libavfilter/avfilter.c | 777 ++ ffmpeg/libavfilter/avfilter.h | 895 ++ ffmpeg/libavfilter/avfiltergraph.c | 1073 ++ ffmpeg/libavfilter/avfiltergraph.h | 280 + ffmpeg/libavfilter/bbox.c | 75 + ffmpeg/libavfilter/bbox.h | 44 + ffmpeg/libavfilter/buffer.c | 167 + ffmpeg/libavfilter/bufferqueue.h | 121 + ffmpeg/libavfilter/buffersink.c | 558 + ffmpeg/libavfilter/buffersink.h | 186 + ffmpeg/libavfilter/buffersrc.c | 581 + ffmpeg/libavfilter/buffersrc.h | 148 + ffmpeg/libavfilter/drawutils.c | 552 + ffmpeg/libavfilter/drawutils.h | 155 + ffmpeg/libavfilter/f_ebur128.c | 822 ++ ffmpeg/libavfilter/f_perms.c | 187 + ffmpeg/libavfilter/f_select.c | 511 + ffmpeg/libavfilter/f_sendcmd.c | 598 + ffmpeg/libavfilter/f_setpts.c | 269 + ffmpeg/libavfilter/f_settb.c | 225 + ffmpeg/libavfilter/fifo.c | 305 + ffmpeg/libavfilter/filtfmts.c | 128 + ffmpeg/libavfilter/formats.c | 661 ++ ffmpeg/libavfilter/formats.h | 270 + ffmpeg/libavfilter/gradfun.h | 47 + ffmpeg/libavfilter/graphdump.c | 164 + ffmpeg/libavfilter/graphparser.c | 601 + ffmpeg/libavfilter/internal.h | 328 + ffmpeg/libavfilter/lavfutils.c | 95 + ffmpeg/libavfilter/lavfutils.h | 43 + ffmpeg/libavfilter/libavfilter.pc | 14 + ffmpeg/libavfilter/libavfilter.v | 5 + ffmpeg/libavfilter/libmpcodecs/av_helpers.h | 27 + ffmpeg/libavfilter/libmpcodecs/cpudetect.h | 60 + ffmpeg/libavfilter/libmpcodecs/help_mp.h | 2126 ++++ ffmpeg/libavfilter/libmpcodecs/img_format.c | 233 + ffmpeg/libavfilter/libmpcodecs/img_format.h | 300 + ffmpeg/libavfilter/libmpcodecs/libvo/fastmemcpy.h | 99 + ffmpeg/libavfilter/libmpcodecs/libvo/video_out.h | 281 + ffmpeg/libavfilter/libmpcodecs/mp_image.c | 253 + ffmpeg/libavfilter/libmpcodecs/mp_image.h | 159 + ffmpeg/libavfilter/libmpcodecs/mp_msg.h | 166 + ffmpeg/libavfilter/libmpcodecs/mpbswap.h | 34 + ffmpeg/libavfilter/libmpcodecs/mpc_info.h | 43 + ffmpeg/libavfilter/libmpcodecs/pullup.c | 823 ++ ffmpeg/libavfilter/libmpcodecs/pullup.h | 102 + ffmpeg/libavfilter/libmpcodecs/vf.h | 169 + ffmpeg/libavfilter/libmpcodecs/vf_detc.c | 453 + ffmpeg/libavfilter/libmpcodecs/vf_dint.c | 214 + ffmpeg/libavfilter/libmpcodecs/vf_divtc.c | 722 ++ ffmpeg/libavfilter/libmpcodecs/vf_down3dright.c | 166 + ffmpeg/libavfilter/libmpcodecs/vf_eq.c | 240 + ffmpeg/libavfilter/libmpcodecs/vf_eq2.c | 519 + ffmpeg/libavfilter/libmpcodecs/vf_fil.c | 116 + ffmpeg/libavfilter/libmpcodecs/vf_filmdint.c | 1461 +++ ffmpeg/libavfilter/libmpcodecs/vf_fspp.c | 2118 ++++ ffmpeg/libavfilter/libmpcodecs/vf_ilpack.c | 458 + ffmpeg/libavfilter/libmpcodecs/vf_ivtc.c | 550 + ffmpeg/libavfilter/libmpcodecs/vf_mcdeint.c | 340 + ffmpeg/libavfilter/libmpcodecs/vf_noise.c | 475 + ffmpeg/libavfilter/libmpcodecs/vf_ow.c | 322 + ffmpeg/libavfilter/libmpcodecs/vf_perspective.c | 345 + ffmpeg/libavfilter/libmpcodecs/vf_phase.c | 303 + ffmpeg/libavfilter/libmpcodecs/vf_pp7.c | 491 + ffmpeg/libavfilter/libmpcodecs/vf_pullup.c | 316 + ffmpeg/libavfilter/libmpcodecs/vf_qp.c | 178 + ffmpeg/libavfilter/libmpcodecs/vf_sab.c | 324 + ffmpeg/libavfilter/libmpcodecs/vf_scale.h | 34 + ffmpeg/libavfilter/libmpcodecs/vf_softpulldown.c | 163 + ffmpeg/libavfilter/libmpcodecs/vf_spp.c | 621 ++ ffmpeg/libavfilter/libmpcodecs/vf_telecine.c | 158 + ffmpeg/libavfilter/libmpcodecs/vf_tinterlace.c | 235 + ffmpeg/libavfilter/libmpcodecs/vf_uspp.c | 393 + ffmpeg/libavfilter/libmpcodecs/vfcap.h | 56 + ffmpeg/libavfilter/lswsutils.c | 50 + ffmpeg/libavfilter/lswsutils.h | 38 + ffmpeg/libavfilter/split.c | 134 + ffmpeg/libavfilter/src_movie.c | 620 ++ ffmpeg/libavfilter/transform.c | 202 + ffmpeg/libavfilter/transform.h | 127 + ffmpeg/libavfilter/version.h | 67 + ffmpeg/libavfilter/vf_alphaextract.c | 131 + ffmpeg/libavfilter/vf_alphamerge.c | 208 + ffmpeg/libavfilter/vf_aspect.c | 214 + ffmpeg/libavfilter/vf_bbox.c | 117 + ffmpeg/libavfilter/vf_blackdetect.c | 219 + ffmpeg/libavfilter/vf_blackframe.c | 160 + ffmpeg/libavfilter/vf_blend.c | 471 + ffmpeg/libavfilter/vf_boxblur.c | 396 + ffmpeg/libavfilter/vf_colormatrix.c | 387 + ffmpeg/libavfilter/vf_copy.c | 71 + ffmpeg/libavfilter/vf_crop.c | 354 + ffmpeg/libavfilter/vf_cropdetect.c | 248 + ffmpeg/libavfilter/vf_curves.c | 363 + ffmpeg/libavfilter/vf_decimate.c | 259 + ffmpeg/libavfilter/vf_delogo.c | 275 + ffmpeg/libavfilter/vf_deshake.c | 585 + ffmpeg/libavfilter/vf_drawbox.c | 187 + ffmpeg/libavfilter/vf_drawtext.c | 1039 ++ ffmpeg/libavfilter/vf_edgedetect.c | 330 + ffmpeg/libavfilter/vf_fade.c | 248 + ffmpeg/libavfilter/vf_field.c | 131 + ffmpeg/libavfilter/vf_fieldorder.c | 216 + ffmpeg/libavfilter/vf_format.c | 169 + ffmpeg/libavfilter/vf_fps.c | 298 + ffmpeg/libavfilter/vf_framestep.c | 124 + ffmpeg/libavfilter/vf_frei0r.c | 526 + ffmpeg/libavfilter/vf_geq.c | 249 + ffmpeg/libavfilter/vf_gradfun.c | 270 + ffmpeg/libavfilter/vf_hflip.c | 176 + ffmpeg/libavfilter/vf_histeq.c | 297 + ffmpeg/libavfilter/vf_histogram.c | 345 + ffmpeg/libavfilter/vf_hqdn3d.c | 376 + ffmpeg/libavfilter/vf_hqdn3d.h | 41 + ffmpeg/libavfilter/vf_hue.c | 385 + ffmpeg/libavfilter/vf_idet.c | 326 + ffmpeg/libavfilter/vf_il.c | 230 + ffmpeg/libavfilter/vf_kerndeint.c | 332 + ffmpeg/libavfilter/vf_libopencv.c | 409 + ffmpeg/libavfilter/vf_lut.c | 445 + ffmpeg/libavfilter/vf_mp.c | 844 ++ ffmpeg/libavfilter/vf_noise.c | 368 + ffmpeg/libavfilter/vf_null.c | 55 + ffmpeg/libavfilter/vf_overlay.c | 677 ++ ffmpeg/libavfilter/vf_pad.c | 420 + ffmpeg/libavfilter/vf_pixdesctest.c | 136 + ffmpeg/libavfilter/vf_pp.c | 174 + ffmpeg/libavfilter/vf_removelogo.c | 567 + ffmpeg/libavfilter/vf_scale.c | 448 + ffmpeg/libavfilter/vf_setfield.c | 115 + ffmpeg/libavfilter/vf_showinfo.c | 111 + ffmpeg/libavfilter/vf_smartblur.c | 317 + ffmpeg/libavfilter/vf_stereo3d.c | 454 + ffmpeg/libavfilter/vf_subtitles.c | 375 + ffmpeg/libavfilter/vf_super2xsai.c | 352 + ffmpeg/libavfilter/vf_swapuv.c | 111 + ffmpeg/libavfilter/vf_thumbnail.c | 238 + ffmpeg/libavfilter/vf_tile.c | 251 + ffmpeg/libavfilter/vf_tinterlace.c | 409 + ffmpeg/libavfilter/vf_transpose.c | 272 + ffmpeg/libavfilter/vf_unsharp.c | 312 + ffmpeg/libavfilter/vf_vflip.c | 111 + ffmpeg/libavfilter/vf_yadif.c | 501 + ffmpeg/libavfilter/video.c | 157 + ffmpeg/libavfilter/video.h | 41 + ffmpeg/libavfilter/vsink_nullsink.c | 46 + ffmpeg/libavfilter/vsrc_cellauto.c | 351 + ffmpeg/libavfilter/vsrc_life.c | 481 + ffmpeg/libavfilter/vsrc_mandelbrot.c | 415 + ffmpeg/libavfilter/vsrc_mptestsrc.c | 382 + ffmpeg/libavfilter/vsrc_testsrc.c | 793 ++ ffmpeg/libavfilter/x86/Makefile | 8 + ffmpeg/libavfilter/x86/af_volume.asm | 140 + ffmpeg/libavfilter/x86/af_volume_init.c | 59 + ffmpeg/libavfilter/x86/vf_gradfun.c | 217 + ffmpeg/libavfilter/x86/vf_hqdn3d.asm | 106 + ffmpeg/libavfilter/x86/vf_hqdn3d_init.c | 41 + ffmpeg/libavfilter/x86/vf_yadif.asm | 252 + ffmpeg/libavfilter/x86/vf_yadif_init.c | 100 + ffmpeg/libavfilter/x86/yadif-10.asm | 282 + ffmpeg/libavfilter/x86/yadif-16.asm | 347 + ffmpeg/libavfilter/yadif.h | 74 + ffmpeg/libavformat/4xm.c | 372 + ffmpeg/libavformat/Makefile | 453 + ffmpeg/libavformat/a64.c | 62 + ffmpeg/libavformat/aacdec.c | 94 + ffmpeg/libavformat/ac3dec.c | 123 + ffmpeg/libavformat/act.c | 207 + ffmpeg/libavformat/adtsenc.c | 176 + ffmpeg/libavformat/adxdec.c | 113 + ffmpeg/libavformat/aea.c | 105 + ffmpeg/libavformat/afc.c | 81 + ffmpeg/libavformat/aiff.h | 57 + ffmpeg/libavformat/aiffdec.c | 358 + ffmpeg/libavformat/aiffenc.c | 332 + ffmpeg/libavformat/allformats.c | 341 + ffmpeg/libavformat/amr.c | 182 + ffmpeg/libavformat/anm.c | 229 + ffmpeg/libavformat/apc.c | 96 + ffmpeg/libavformat/ape.c | 443 + ffmpeg/libavformat/apetag.c | 169 + ffmpeg/libavformat/apetag.h | 44 + ffmpeg/libavformat/apetagenc.c | 65 + ffmpeg/libavformat/aqtitledec.c | 148 + ffmpeg/libavformat/asf.c | 162 + ffmpeg/libavformat/asf.h | 188 + ffmpeg/libavformat/asfcrypt.c | 185 + ffmpeg/libavformat/asfcrypt.h | 29 + ffmpeg/libavformat/asfdec.c | 1553 +++ ffmpeg/libavformat/asfenc.c | 914 ++ ffmpeg/libavformat/assdec.c | 169 + ffmpeg/libavformat/assenc.c | 89 + ffmpeg/libavformat/ast.c | 29 + ffmpeg/libavformat/ast.h | 30 + ffmpeg/libavformat/astdec.c | 119 + ffmpeg/libavformat/astenc.c | 214 + ffmpeg/libavformat/au.c | 211 + ffmpeg/libavformat/audiointerleave.c | 148 + ffmpeg/libavformat/audiointerleave.h | 55 + ffmpeg/libavformat/avc.c | 193 + ffmpeg/libavformat/avc.h | 34 + ffmpeg/libavformat/avformat.h | 2126 ++++ ffmpeg/libavformat/avi.h | 38 + ffmpeg/libavformat/avidec.c | 1614 +++ ffmpeg/libavformat/avienc.c | 663 ++ ffmpeg/libavformat/avio.c | 434 + ffmpeg/libavformat/avio.h | 475 + ffmpeg/libavformat/avio_internal.h | 107 + ffmpeg/libavformat/aviobuf.c | 1005 ++ ffmpeg/libavformat/avisynth.c | 641 ++ ffmpeg/libavformat/avlanguage.c | 765 ++ ffmpeg/libavformat/avlanguage.h | 39 + ffmpeg/libavformat/avr.c | 100 + ffmpeg/libavformat/avs.c | 232 + ffmpeg/libavformat/bethsoftvid.c | 296 + ffmpeg/libavformat/bfi.c | 173 + ffmpeg/libavformat/bink.c | 287 + ffmpeg/libavformat/bintext.c | 409 + ffmpeg/libavformat/bit.c | 157 + ffmpeg/libavformat/bluray.c | 235 + ffmpeg/libavformat/bmv.c | 139 + ffmpeg/libavformat/brstm.c | 297 + ffmpeg/libavformat/c93.c | 202 + ffmpeg/libavformat/cache.c | 140 + ffmpeg/libavformat/caf.c | 66 + ffmpeg/libavformat/caf.h | 34 + ffmpeg/libavformat/cafdec.c | 434 + ffmpeg/libavformat/cafenc.c | 279 + ffmpeg/libavformat/cavsvideodec.c | 68 + ffmpeg/libavformat/cdg.c | 79 + ffmpeg/libavformat/cdxl.c | 231 + ffmpeg/libavformat/concat.c | 193 + ffmpeg/libavformat/concatdec.c | 405 + ffmpeg/libavformat/crcenc.c | 67 + ffmpeg/libavformat/crypto.c | 170 + ffmpeg/libavformat/cutils.c | 57 + ffmpeg/libavformat/data_uri.c | 118 + ffmpeg/libavformat/daud.c | 96 + ffmpeg/libavformat/dfa.c | 118 + ffmpeg/libavformat/diracdec.c | 34 + ffmpeg/libavformat/dnxhddec.c | 45 + ffmpeg/libavformat/dsicin.c | 232 + ffmpeg/libavformat/dtsdec.c | 77 + ffmpeg/libavformat/dtshddec.c | 139 + ffmpeg/libavformat/dv.c | 614 + ffmpeg/libavformat/dv.h | 41 + ffmpeg/libavformat/dvenc.c | 420 + ffmpeg/libavformat/dxa.c | 225 + ffmpeg/libavformat/eacdata.c | 105 + ffmpeg/libavformat/electronicarts.c | 636 ++ ffmpeg/libavformat/epafdec.c | 104 + ffmpeg/libavformat/ffm.h | 60 + ffmpeg/libavformat/ffmdec.c | 639 ++ ffmpeg/libavformat/ffmenc.c | 280 + ffmpeg/libavformat/ffmeta.h | 29 + ffmpeg/libavformat/ffmetadec.c | 175 + ffmpeg/libavformat/ffmetaenc.c | 99 + ffmpeg/libavformat/file.c | 218 + ffmpeg/libavformat/filmstripdec.c | 110 + ffmpeg/libavformat/filmstripenc.c | 84 + ffmpeg/libavformat/flacdec.c | 295 + ffmpeg/libavformat/flacenc.c | 140 + ffmpeg/libavformat/flacenc.h | 32 + ffmpeg/libavformat/flacenc_header.c | 47 + ffmpeg/libavformat/flic.c | 269 + ffmpeg/libavformat/flv.h | 138 + ffmpeg/libavformat/flvdec.c | 923 ++ ffmpeg/libavformat/flvenc.c | 591 + ffmpeg/libavformat/framecrcenc.c | 61 + ffmpeg/libavformat/framehash.c | 33 + ffmpeg/libavformat/frmdec.c | 110 + ffmpeg/libavformat/g722.c | 57 + ffmpeg/libavformat/g723_1.c | 85 + ffmpeg/libavformat/g729dec.c | 103 + ffmpeg/libavformat/gif.c | 381 + ffmpeg/libavformat/gifdec.c | 302 + ffmpeg/libavformat/gopher.c | 125 + ffmpeg/libavformat/gsmdec.c | 100 + ffmpeg/libavformat/gxf.c | 596 + ffmpeg/libavformat/gxf.h | 52 + ffmpeg/libavformat/gxfenc.c | 999 ++ ffmpeg/libavformat/h261dec.c | 65 + ffmpeg/libavformat/h263dec.c | 65 + ffmpeg/libavformat/h264dec.c | 70 + ffmpeg/libavformat/hls.c | 828 ++ ffmpeg/libavformat/hlsenc.c | 348 + ffmpeg/libavformat/hlsproto.c | 323 + ffmpeg/libavformat/http.c | 945 ++ ffmpeg/libavformat/http.h | 48 + ffmpeg/libavformat/httpauth.c | 287 + ffmpeg/libavformat/httpauth.h | 79 + ffmpeg/libavformat/icodec.c | 182 + ffmpeg/libavformat/icoenc.c | 204 + ffmpeg/libavformat/id3v1.c | 246 + ffmpeg/libavformat/id3v1.h | 41 + ffmpeg/libavformat/id3v2.c | 858 ++ ffmpeg/libavformat/id3v2.h | 163 + ffmpeg/libavformat/id3v2enc.c | 284 + ffmpeg/libavformat/idcin.c | 380 + ffmpeg/libavformat/idroqdec.c | 237 + ffmpeg/libavformat/idroqenc.c | 46 + ffmpeg/libavformat/iff.c | 485 + ffmpeg/libavformat/ilbc.c | 141 + ffmpeg/libavformat/img2.c | 102 + ffmpeg/libavformat/img2dec.c | 498 + ffmpeg/libavformat/img2enc.c | 168 + ffmpeg/libavformat/ingenientdec.c | 66 + ffmpeg/libavformat/internal.h | 395 + ffmpeg/libavformat/ipmovie.c | 656 ++ ffmpeg/libavformat/ircam.c | 47 + ffmpeg/libavformat/ircam.h | 30 + ffmpeg/libavformat/ircamdec.c | 115 + ffmpeg/libavformat/ircamenc.c | 62 + ffmpeg/libavformat/isom.c | 571 + ffmpeg/libavformat/isom.h | 209 + ffmpeg/libavformat/iss.c | 144 + ffmpeg/libavformat/iv8.c | 118 + ffmpeg/libavformat/ivfdec.c | 91 + ffmpeg/libavformat/ivfenc.c | 69 + ffmpeg/libavformat/jacosubdec.c | 270 + ffmpeg/libavformat/jacosubenc.c | 42 + ffmpeg/libavformat/jvdec.c | 239 + ffmpeg/libavformat/latmenc.c | 230 + ffmpeg/libavformat/libavformat.pc | 14 + ffmpeg/libavformat/libavformat.v | 37 + ffmpeg/libavformat/libmodplug.c | 368 + ffmpeg/libavformat/libnut.c | 322 + ffmpeg/libavformat/librtmp.c | 283 + ffmpeg/libavformat/lmlm4.c | 127 + ffmpeg/libavformat/loasdec.c | 87 + ffmpeg/libavformat/log2_tab.c | 1 + ffmpeg/libavformat/lvfdec.c | 148 + ffmpeg/libavformat/lxfdec.c | 348 + ffmpeg/libavformat/m4vdec.c | 52 + ffmpeg/libavformat/matroska.c | 136 + ffmpeg/libavformat/matroska.h | 280 + ffmpeg/libavformat/matroskadec.c | 2557 +++++ ffmpeg/libavformat/matroskaenc.c | 1461 +++ ffmpeg/libavformat/md5enc.c | 130 + ffmpeg/libavformat/md5proto.c | 95 + ffmpeg/libavformat/metadata.c | 70 + ffmpeg/libavformat/metadata.h | 44 + ffmpeg/libavformat/mgsts.c | 106 + ffmpeg/libavformat/microdvddec.c | 167 + ffmpeg/libavformat/microdvdenc.c | 68 + ffmpeg/libavformat/mkvtimestamp_v2.c | 51 + ffmpeg/libavformat/mm.c | 197 + ffmpeg/libavformat/mmf.c | 319 + ffmpeg/libavformat/mms.c | 149 + ffmpeg/libavformat/mms.h | 64 + ffmpeg/libavformat/mmsh.c | 410 + ffmpeg/libavformat/mmst.c | 629 ++ ffmpeg/libavformat/mov.c | 3408 ++++++ ffmpeg/libavformat/mov_chan.c | 592 + ffmpeg/libavformat/mov_chan.h | 68 + ffmpeg/libavformat/movenc.c | 4084 +++++++ ffmpeg/libavformat/movenc.h | 190 + ffmpeg/libavformat/movenchint.c | 462 + ffmpeg/libavformat/mp3dec.c | 329 + ffmpeg/libavformat/mp3enc.c | 522 + ffmpeg/libavformat/mpc.c | 237 + ffmpeg/libavformat/mpc8.c | 317 + ffmpeg/libavformat/mpeg.c | 912 ++ ffmpeg/libavformat/mpeg.h | 73 + ffmpeg/libavformat/mpegenc.c | 1242 +++ ffmpeg/libavformat/mpegts.c | 2313 ++++ ffmpeg/libavformat/mpegts.h | 107 + ffmpeg/libavformat/mpegtsenc.c | 1268 +++ ffmpeg/libavformat/mpegvideodec.c | 72 + ffmpeg/libavformat/mpjpeg.c | 69 + ffmpeg/libavformat/mpl2dec.c | 146 + ffmpeg/libavformat/mpsubdec.c | 140 + ffmpeg/libavformat/msnwc_tcp.c | 140 + ffmpeg/libavformat/mtv.c | 203 + ffmpeg/libavformat/mux.c | 814 ++ ffmpeg/libavformat/mvdec.c | 441 + ffmpeg/libavformat/mvi.c | 143 + ffmpeg/libavformat/mxf.c | 137 + ffmpeg/libavformat/mxf.h | 85 + ffmpeg/libavformat/mxfdec.c | 2392 ++++ ffmpeg/libavformat/mxfenc.c | 2173 ++++ ffmpeg/libavformat/mxg.c | 260 + ffmpeg/libavformat/ncdec.c | 101 + ffmpeg/libavformat/network.c | 214 + ffmpeg/libavformat/network.h | 225 + ffmpeg/libavformat/nistspheredec.c | 128 + ffmpeg/libavformat/noproxy-test.c | 43 + ffmpeg/libavformat/nsvdec.c | 802 ++ ffmpeg/libavformat/nullenc.c | 36 + ffmpeg/libavformat/nut.c | 264 + ffmpeg/libavformat/nut.h | 133 + ffmpeg/libavformat/nutdec.c | 1050 ++ ffmpeg/libavformat/nutenc.c | 1023 ++ ffmpeg/libavformat/nuv.c | 392 + ffmpeg/libavformat/oggdec.c | 853 ++ ffmpeg/libavformat/oggdec.h | 160 + ffmpeg/libavformat/oggenc.c | 636 ++ ffmpeg/libavformat/oggparsecelt.c | 97 + ffmpeg/libavformat/oggparsedirac.c | 117 + ffmpeg/libavformat/oggparseflac.c | 100 + ffmpeg/libavformat/oggparseogm.c | 202 + ffmpeg/libavformat/oggparseopus.c | 135 + ffmpeg/libavformat/oggparseskeleton.c | 95 + ffmpeg/libavformat/oggparsespeex.c | 139 + ffmpeg/libavformat/oggparsetheora.c | 206 + ffmpeg/libavformat/oggparsevorbis.c | 392 + ffmpeg/libavformat/oma.c | 34 + ffmpeg/libavformat/oma.h | 44 + ffmpeg/libavformat/omadec.c | 453 + ffmpeg/libavformat/omaenc.c | 106 + ffmpeg/libavformat/options.c | 123 + ffmpeg/libavformat/options_table.h | 86 + ffmpeg/libavformat/os_support.c | 377 + ffmpeg/libavformat/os_support.h | 138 + ffmpeg/libavformat/paf.c | 261 + ffmpeg/libavformat/pcm.c | 76 + ffmpeg/libavformat/pcm.h | 31 + ffmpeg/libavformat/pcmdec.c | 146 + ffmpeg/libavformat/pcmenc.c | 94 + ffmpeg/libavformat/pjsdec.c | 137 + ffmpeg/libavformat/pmpdec.c | 197 + ffmpeg/libavformat/psxstr.c | 317 + ffmpeg/libavformat/pva.c | 225 + ffmpeg/libavformat/pvfdec.c | 75 + ffmpeg/libavformat/qcp.c | 196 + ffmpeg/libavformat/qtpalette.h | 313 + ffmpeg/libavformat/r3d.c | 410 + ffmpeg/libavformat/rawdec.c | 162 + ffmpeg/libavformat/rawdec.h | 67 + ffmpeg/libavformat/rawenc.c | 282 + ffmpeg/libavformat/rawenc.h | 29 + ffmpeg/libavformat/rawvideodec.c | 129 + ffmpeg/libavformat/rdt.c | 572 + ffmpeg/libavformat/rdt.h | 112 + ffmpeg/libavformat/realtextdec.c | 153 + ffmpeg/libavformat/riff.c | 867 ++ ffmpeg/libavformat/riff.h | 97 + ffmpeg/libavformat/rl2.c | 298 + ffmpeg/libavformat/rm.c | 47 + ffmpeg/libavformat/rm.h | 95 + ffmpeg/libavformat/rmdec.c | 1037 ++ ffmpeg/libavformat/rmenc.c | 480 + ffmpeg/libavformat/rmsipr.c | 61 + ffmpeg/libavformat/rmsipr.h | 35 + ffmpeg/libavformat/rpl.c | 359 + ffmpeg/libavformat/rso.c | 30 + ffmpeg/libavformat/rso.h | 32 + ffmpeg/libavformat/rsodec.c | 83 + ffmpeg/libavformat/rsoenc.c | 111 + ffmpeg/libavformat/rtmp.h | 71 + ffmpeg/libavformat/rtmpcrypt.c | 336 + ffmpeg/libavformat/rtmpcrypt.h | 69 + ffmpeg/libavformat/rtmpdh.c | 339 + ffmpeg/libavformat/rtmpdh.h | 102 + ffmpeg/libavformat/rtmphttp.c | 276 + ffmpeg/libavformat/rtmppkt.c | 526 + ffmpeg/libavformat/rtmppkt.h | 288 + ffmpeg/libavformat/rtmpproto.c | 2681 +++++ ffmpeg/libavformat/rtp.c | 151 + ffmpeg/libavformat/rtp.h | 112 + ffmpeg/libavformat/rtpdec.c | 878 ++ ffmpeg/libavformat/rtpdec.h | 219 + ffmpeg/libavformat/rtpdec_amr.c | 209 + ffmpeg/libavformat/rtpdec_asf.c | 310 + ffmpeg/libavformat/rtpdec_formats.h | 69 + ffmpeg/libavformat/rtpdec_g726.c | 46 + ffmpeg/libavformat/rtpdec_h263.c | 113 + ffmpeg/libavformat/rtpdec_h263_rfc2190.c | 214 + ffmpeg/libavformat/rtpdec_h264.c | 399 + ffmpeg/libavformat/rtpdec_ilbc.c | 73 + ffmpeg/libavformat/rtpdec_jpeg.c | 392 + ffmpeg/libavformat/rtpdec_latm.c | 189 + ffmpeg/libavformat/rtpdec_mpeg12.c | 72 + ffmpeg/libavformat/rtpdec_mpeg4.c | 279 + ffmpeg/libavformat/rtpdec_mpegts.c | 106 + ffmpeg/libavformat/rtpdec_qcelp.c | 230 + ffmpeg/libavformat/rtpdec_qdm2.c | 319 + ffmpeg/libavformat/rtpdec_qt.c | 258 + ffmpeg/libavformat/rtpdec_svq3.c | 134 + ffmpeg/libavformat/rtpdec_vp8.c | 298 + ffmpeg/libavformat/rtpdec_xiph.c | 409 + ffmpeg/libavformat/rtpenc.c | 611 + ffmpeg/libavformat/rtpenc.h | 98 + ffmpeg/libavformat/rtpenc_aac.c | 85 + ffmpeg/libavformat/rtpenc_amr.c | 65 + ffmpeg/libavformat/rtpenc_chain.c | 107 + ffmpeg/libavformat/rtpenc_chain.h | 32 + ffmpeg/libavformat/rtpenc_h263.c | 81 + ffmpeg/libavformat/rtpenc_h263_rfc2190.c | 195 + ffmpeg/libavformat/rtpenc_h264.c | 109 + ffmpeg/libavformat/rtpenc_jpeg.c | 138 + ffmpeg/libavformat/rtpenc_latm.c | 61 + ffmpeg/libavformat/rtpenc_mpv.c | 117 + ffmpeg/libavformat/rtpenc_vp8.c | 55 + ffmpeg/libavformat/rtpenc_xiph.c | 127 + ffmpeg/libavformat/rtpproto.c | 339 + ffmpeg/libavformat/rtsp.c | 2243 ++++ ffmpeg/libavformat/rtsp.h | 607 + ffmpeg/libavformat/rtspcodes.h | 54 + ffmpeg/libavformat/rtspdec.c | 937 ++ ffmpeg/libavformat/rtspenc.c | 247 + ffmpeg/libavformat/samidec.c | 137 + ffmpeg/libavformat/sapdec.c | 237 + ffmpeg/libavformat/sapenc.c | 271 + ffmpeg/libavformat/sauce.c | 104 + ffmpeg/libavformat/sauce.h | 40 + ffmpeg/libavformat/sbgdec.c | 1513 +++ ffmpeg/libavformat/sctp.c | 332 + ffmpeg/libavformat/sdp.c | 713 ++ ffmpeg/libavformat/seek-test.c | 151 + ffmpeg/libavformat/seek.c | 509 + ffmpeg/libavformat/seek.h | 123 + ffmpeg/libavformat/segafilm.c | 336 + ffmpeg/libavformat/segment.c | 833 ++ ffmpeg/libavformat/sierravmd.c | 301 + ffmpeg/libavformat/siff.c | 252 + ffmpeg/libavformat/smacker.c | 379 + ffmpeg/libavformat/smjpeg.c | 40 + ffmpeg/libavformat/smjpeg.h | 45 + ffmpeg/libavformat/smjpegdec.c | 183 + ffmpeg/libavformat/smjpegenc.c | 147 + ffmpeg/libavformat/smoothstreamingenc.c | 637 ++ ffmpeg/libavformat/smush.c | 240 + ffmpeg/libavformat/sol.c | 151 + ffmpeg/libavformat/sox.h | 29 + ffmpeg/libavformat/soxdec.c | 134 + ffmpeg/libavformat/soxenc.c | 121 + ffmpeg/libavformat/spdif.c | 42 + ffmpeg/libavformat/spdif.h | 65 + ffmpeg/libavformat/spdifdec.c | 240 + ffmpeg/libavformat/spdifenc.c | 557 + ffmpeg/libavformat/srtdec.c | 163 + ffmpeg/libavformat/srtenc.c | 116 + ffmpeg/libavformat/srtp.c | 471 + ffmpeg/libavformat/srtp.h | 52 + ffmpeg/libavformat/srtpproto.c | 144 + ffmpeg/libavformat/subtitles.c | 231 + ffmpeg/libavformat/subtitles.h | 99 + ffmpeg/libavformat/subviewer1dec.c | 124 + ffmpeg/libavformat/subviewerdec.c | 194 + ffmpeg/libavformat/swf.c | 29 + ffmpeg/libavformat/swf.h | 149 + ffmpeg/libavformat/swfdec.c | 489 + ffmpeg/libavformat/swfenc.c | 547 + ffmpeg/libavformat/takdec.c | 185 + ffmpeg/libavformat/tcp.c | 282 + ffmpeg/libavformat/tedcaptionsdec.c | 365 + ffmpeg/libavformat/tee.c | 278 + ffmpeg/libavformat/thp.c | 206 + ffmpeg/libavformat/tiertexseq.c | 317 + ffmpeg/libavformat/tls.c | 309 + ffmpeg/libavformat/tmv.c | 199 + ffmpeg/libavformat/tta.c | 171 + ffmpeg/libavformat/tty.c | 169 + ffmpeg/libavformat/txd.c | 100 + ffmpeg/libavformat/udp.c | 847 ++ ffmpeg/libavformat/url-test.c | 55 + ffmpeg/libavformat/url.h | 251 + ffmpeg/libavformat/urldecode.c | 86 + ffmpeg/libavformat/urldecode.h | 35 + ffmpeg/libavformat/utils.c | 4487 ++++++++ ffmpeg/libavformat/vc1test.c | 119 + ffmpeg/libavformat/vc1testenc.c | 95 + ffmpeg/libavformat/version.h | 79 + ffmpeg/libavformat/vivo.c | 313 + ffmpeg/libavformat/voc.c | 37 + ffmpeg/libavformat/voc.h | 51 + ffmpeg/libavformat/vocdec.c | 175 + ffmpeg/libavformat/vocenc.c | 110 + ffmpeg/libavformat/vorbiscomment.c | 75 + ffmpeg/libavformat/vorbiscomment.h | 57 + ffmpeg/libavformat/vplayerdec.c | 128 + ffmpeg/libavformat/vqf.c | 284 + ffmpeg/libavformat/w64.c | 39 + ffmpeg/libavformat/w64.h | 31 + ffmpeg/libavformat/wavdec.c | 687 ++ ffmpeg/libavformat/wavenc.c | 383 + ffmpeg/libavformat/wc3movie.c | 304 + ffmpeg/libavformat/webvttdec.c | 176 + ffmpeg/libavformat/westwood_aud.c | 181 + ffmpeg/libavformat/westwood_vqa.c | 277 + ffmpeg/libavformat/wtv.c | 82 + ffmpeg/libavformat/wtv.h | 58 + ffmpeg/libavformat/wtvdec.c | 1084 ++ ffmpeg/libavformat/wtvenc.c | 810 ++ ffmpeg/libavformat/wv.c | 397 + ffmpeg/libavformat/wvenc.c | 144 + ffmpeg/libavformat/xa.c | 128 + ffmpeg/libavformat/xmv.c | 566 + ffmpeg/libavformat/xwma.c | 277 + ffmpeg/libavformat/yop.c | 229 + ffmpeg/libavformat/yuv4mpeg.c | 611 + ffmpeg/libavresample/Makefile | 16 + ffmpeg/libavresample/arm/Makefile | 2 + ffmpeg/libavresample/arm/audio_convert_init.c | 49 + ffmpeg/libavresample/arm/audio_convert_neon.S | 363 + ffmpeg/libavresample/audio_convert.c | 414 + ffmpeg/libavresample/audio_convert.h | 102 + ffmpeg/libavresample/audio_data.c | 372 + ffmpeg/libavresample/audio_data.h | 175 + ffmpeg/libavresample/audio_mix.c | 739 ++ ffmpeg/libavresample/audio_mix.h | 94 + ffmpeg/libavresample/audio_mix_matrix.c | 289 + ffmpeg/libavresample/avresample-test.c | 341 + ffmpeg/libavresample/avresample.h | 409 + ffmpeg/libavresample/dither.c | 439 + ffmpeg/libavresample/dither.h | 93 + ffmpeg/libavresample/internal.h | 110 + ffmpeg/libavresample/libavresample.v | 4 + ffmpeg/libavresample/options.c | 111 + ffmpeg/libavresample/resample.c | 469 + ffmpeg/libavresample/resample.h | 67 + ffmpeg/libavresample/resample_template.c | 102 + ffmpeg/libavresample/utils.c | 635 ++ ffmpeg/libavresample/version.h | 46 + ffmpeg/libavresample/x86/Makefile | 7 + ffmpeg/libavresample/x86/audio_convert.asm | 1261 +++ ffmpeg/libavresample/x86/audio_convert_init.c | 263 + ffmpeg/libavresample/x86/audio_mix.asm | 511 + ffmpeg/libavresample/x86/audio_mix_init.c | 215 + ffmpeg/libavresample/x86/dither.asm | 117 + ffmpeg/libavresample/x86/dither_init.c | 61 + ffmpeg/libavresample/x86/util.asm | 41 + ffmpeg/libavutil/Makefile | 149 + ffmpeg/libavutil/adler32.c | 123 + ffmpeg/libavutil/adler32.h | 43 + ffmpeg/libavutil/aes.c | 341 + ffmpeg/libavutil/aes.h | 65 + ffmpeg/libavutil/arm/Makefile | 8 + ffmpeg/libavutil/arm/asm.S | 304 + ffmpeg/libavutil/arm/bswap.h | 67 + ffmpeg/libavutil/arm/cpu.c | 146 + ffmpeg/libavutil/arm/cpu.h | 32 + ffmpeg/libavutil/arm/float_dsp_arm.h | 29 + ffmpeg/libavutil/arm/float_dsp_init_arm.c | 33 + ffmpeg/libavutil/arm/float_dsp_init_neon.c | 58 + ffmpeg/libavutil/arm/float_dsp_init_vfp.c | 38 + ffmpeg/libavutil/arm/float_dsp_neon.S | 271 + ffmpeg/libavutil/arm/float_dsp_vfp.S | 137 + ffmpeg/libavutil/arm/intmath.h | 110 + ffmpeg/libavutil/arm/intreadwrite.h | 91 + ffmpeg/libavutil/arm/timer.h | 40 + ffmpeg/libavutil/atomic.c | 123 + ffmpeg/libavutil/atomic.h | 74 + ffmpeg/libavutil/atomic_gcc.h | 61 + ffmpeg/libavutil/atomic_suncc.h | 55 + ffmpeg/libavutil/atomic_win32.h | 55 + ffmpeg/libavutil/attributes.h | 154 + ffmpeg/libavutil/audio_fifo.c | 194 + ffmpeg/libavutil/audio_fifo.h | 146 + ffmpeg/libavutil/audioconvert.h | 6 + ffmpeg/libavutil/avassert.h | 66 + ffmpeg/libavutil/avconfig.h | 7 + ffmpeg/libavutil/avr32/bswap.h | 44 + ffmpeg/libavutil/avr32/intreadwrite.h | 182 + ffmpeg/libavutil/avstring.c | 358 + ffmpeg/libavutil/avstring.h | 302 + ffmpeg/libavutil/avutil.h | 260 + ffmpeg/libavutil/base64.c | 277 + ffmpeg/libavutil/base64.h | 67 + ffmpeg/libavutil/bfin/bswap.h | 45 + ffmpeg/libavutil/bfin/timer.h | 41 + ffmpeg/libavutil/blowfish.c | 589 + ffmpeg/libavutil/blowfish.h | 77 + ffmpeg/libavutil/bprint.c | 339 + ffmpeg/libavutil/bprint.h | 200 + ffmpeg/libavutil/bswap.h | 109 + ffmpeg/libavutil/buffer.c | 344 + ffmpeg/libavutil/buffer.h | 267 + ffmpeg/libavutil/buffer_internal.h | 94 + ffmpeg/libavutil/channel_layout.c | 258 + ffmpeg/libavutil/channel_layout.h | 216 + ffmpeg/libavutil/colorspace.h | 111 + ffmpeg/libavutil/common.h | 436 + ffmpeg/libavutil/cpu.c | 230 + ffmpeg/libavutil/cpu.h | 108 + ffmpeg/libavutil/crc.c | 321 + ffmpeg/libavutil/crc.h | 74 + ffmpeg/libavutil/des.c | 441 + ffmpeg/libavutil/des.h | 61 + ffmpeg/libavutil/dict.c | 182 + ffmpeg/libavutil/dict.h | 152 + ffmpeg/libavutil/error.c | 99 + ffmpeg/libavutil/error.h | 117 + ffmpeg/libavutil/eval.c | 854 ++ ffmpeg/libavutil/eval.h | 113 + ffmpeg/libavutil/fifo.c | 182 + ffmpeg/libavutil/fifo.h | 144 + ffmpeg/libavutil/file.c | 203 + ffmpeg/libavutil/file.h | 66 + ffmpeg/libavutil/float_dsp.c | 139 + ffmpeg/libavutil/float_dsp.h | 189 + ffmpeg/libavutil/frame.c | 559 + ffmpeg/libavutil/frame.h | 607 + ffmpeg/libavutil/hmac.c | 186 + ffmpeg/libavutil/hmac.h | 95 + ffmpeg/libavutil/imgutils.c | 368 + ffmpeg/libavutil/imgutils.h | 200 + ffmpeg/libavutil/integer.c | 196 + ffmpeg/libavutil/integer.h | 86 + ffmpeg/libavutil/internal.h | 186 + ffmpeg/libavutil/intfloat.h | 77 + ffmpeg/libavutil/intfloat_readwrite.c | 97 + ffmpeg/libavutil/intfloat_readwrite.h | 40 + ffmpeg/libavutil/intmath.c | 39 + ffmpeg/libavutil/intmath.h | 150 + ffmpeg/libavutil/intreadwrite.h | 621 ++ ffmpeg/libavutil/lfg.c | 102 + ffmpeg/libavutil/lfg.h | 62 + ffmpeg/libavutil/libavutil.pc | 14 + ffmpeg/libavutil/libavutil.v | 4 + ffmpeg/libavutil/libm.h | 189 + ffmpeg/libavutil/lls.c | 175 + ffmpeg/libavutil/lls.h | 54 + ffmpeg/libavutil/log.c | 319 + ffmpeg/libavutil/log.h | 222 + ffmpeg/libavutil/log2_tab.c | 32 + ffmpeg/libavutil/lzo.c | 241 + ffmpeg/libavutil/lzo.h | 66 + ffmpeg/libavutil/mathematics.c | 173 + ffmpeg/libavutil/mathematics.h | 147 + ffmpeg/libavutil/md5.c | 210 + ffmpeg/libavutil/md5.h | 49 + ffmpeg/libavutil/mem.c | 376 + ffmpeg/libavutil/mem.h | 235 + ffmpeg/libavutil/mips/Makefile | 1 + ffmpeg/libavutil/mips/float_dsp_mips.c | 383 + ffmpeg/libavutil/mips/intreadwrite.h | 46 + ffmpeg/libavutil/mips/libm_mips.h | 73 + ffmpeg/libavutil/old_pix_fmts.h | 171 + ffmpeg/libavutil/opt.c | 1523 +++ ffmpeg/libavutil/opt.h | 737 ++ ffmpeg/libavutil/parseutils.c | 870 ++ ffmpeg/libavutil/parseutils.h | 174 + ffmpeg/libavutil/pca.c | 248 + ffmpeg/libavutil/pca.h | 35 + ffmpeg/libavutil/pixdesc.c | 1808 +++ ffmpeg/libavutil/pixdesc.h | 243 + ffmpeg/libavutil/pixfmt.h | 357 + ffmpeg/libavutil/ppc/Makefile | 4 + ffmpeg/libavutil/ppc/cpu.c | 83 + ffmpeg/libavutil/ppc/float_dsp_altivec.c | 124 + ffmpeg/libavutil/ppc/float_dsp_altivec.h | 38 + ffmpeg/libavutil/ppc/float_dsp_init.c | 42 + ffmpeg/libavutil/ppc/intreadwrite.h | 108 + ffmpeg/libavutil/ppc/timer.h | 47 + ffmpeg/libavutil/ppc/types_altivec.h | 47 + ffmpeg/libavutil/ppc/util_altivec.h | 118 + ffmpeg/libavutil/qsort.h | 117 + ffmpeg/libavutil/random_seed.c | 151 + ffmpeg/libavutil/random_seed.h | 43 + ffmpeg/libavutil/rational.c | 174 + ffmpeg/libavutil/rational.h | 155 + ffmpeg/libavutil/rc4.c | 61 + ffmpeg/libavutil/rc4.h | 50 + ffmpeg/libavutil/samplefmt.c | 251 + ffmpeg/libavutil/samplefmt.h | 243 + ffmpeg/libavutil/sh4/bswap.h | 48 + ffmpeg/libavutil/sha.c | 383 + ffmpeg/libavutil/sha.h | 74 + ffmpeg/libavutil/softfloat.c | 72 + ffmpeg/libavutil/softfloat.h | 126 + ffmpeg/libavutil/time.c | 70 + ffmpeg/libavutil/time.h | 41 + ffmpeg/libavutil/timecode.c | 218 + ffmpeg/libavutil/timecode.h | 140 + ffmpeg/libavutil/timer.h | 78 + ffmpeg/libavutil/timestamp.h | 74 + ffmpeg/libavutil/tomi/intreadwrite.h | 150 + ffmpeg/libavutil/tree.c | 236 + ffmpeg/libavutil/tree.h | 120 + ffmpeg/libavutil/utils.c | 81 + ffmpeg/libavutil/version.h | 144 + ffmpeg/libavutil/x86/Makefile | 6 + ffmpeg/libavutil/x86/asm.h | 112 + ffmpeg/libavutil/x86/bswap.h | 61 + ffmpeg/libavutil/x86/cpu.c | 201 + ffmpeg/libavutil/x86/cpu.h | 61 + ffmpeg/libavutil/x86/cpuid.asm | 91 + ffmpeg/libavutil/x86/emms.asm | 30 + ffmpeg/libavutil/x86/emms.h | 47 + ffmpeg/libavutil/x86/float_dsp.asm | 265 + ffmpeg/libavutil/x86/float_dsp_init.c | 152 + ffmpeg/libavutil/x86/intreadwrite.h | 97 + ffmpeg/libavutil/x86/timer.h | 43 + ffmpeg/libavutil/x86/w64xmmtest.h | 73 + ffmpeg/libavutil/x86/x86inc.asm | 1310 +++ ffmpeg/libavutil/x86/x86util.asm | 667 ++ ffmpeg/libavutil/x86_cpu.h | 1 + ffmpeg/libavutil/xga_font_data.c | 417 + ffmpeg/libavutil/xga_font_data.h | 35 + ffmpeg/libavutil/xtea.c | 274 + ffmpeg/libavutil/xtea.h | 62 + ffmpeg/libpostproc/Makefile | 9 + ffmpeg/libpostproc/libpostproc.pc | 14 + ffmpeg/libpostproc/libpostproc.v | 4 + ffmpeg/libpostproc/postprocess.c | 1045 ++ ffmpeg/libpostproc/postprocess.h | 106 + ffmpeg/libpostproc/postprocess_altivec_template.c | 1210 ++ ffmpeg/libpostproc/postprocess_internal.h | 179 + ffmpeg/libpostproc/postprocess_template.c | 3712 ++++++ ffmpeg/libpostproc/version.h | 45 + ffmpeg/library.mak | 113 + ffmpeg/libswresample/Makefile | 18 + ffmpeg/libswresample/arm/Makefile | 2 + ffmpeg/libswresample/arm/audio_convert_init.c | 67 + ffmpeg/libswresample/arm/audio_convert_neon.S | 363 + ffmpeg/libswresample/audioconvert.c | 224 + ffmpeg/libswresample/audioconvert.h | 78 + ffmpeg/libswresample/dither.c | 147 + ffmpeg/libswresample/dither_template.c | 67 + ffmpeg/libswresample/libswresample.pc | 14 + ffmpeg/libswresample/libswresample.v | 4 + ffmpeg/libswresample/log2_tab.c | 1 + ffmpeg/libswresample/noise_shaping_data.c | 224 + ffmpeg/libswresample/rematrix.c | 472 + ffmpeg/libswresample/rematrix_template.c | 100 + ffmpeg/libswresample/resample.c | 372 + ffmpeg/libswresample/resample_template.c | 211 + ffmpeg/libswresample/soxr_resample.c | 93 + ffmpeg/libswresample/swresample-test.c | 414 + ffmpeg/libswresample/swresample.c | 932 ++ ffmpeg/libswresample/swresample.h | 311 + ffmpeg/libswresample/swresample_internal.h | 197 + ffmpeg/libswresample/version.h | 45 + ffmpeg/libswresample/x86/Makefile | 3 + ffmpeg/libswresample/x86/audio_convert.asm | 461 + ffmpeg/libswresample/x86/rematrix.asm | 251 + ffmpeg/libswresample/x86/resample_mmx.h | 70 + ffmpeg/libswresample/x86/swresample_x86.c | 195 + ffmpeg/libswscale/Makefile | 19 + ffmpeg/libswscale/bfin/Makefile | 3 + ffmpeg/libswscale/bfin/internal_bfin.S | 613 + ffmpeg/libswscale/bfin/swscale_bfin.c | 86 + ffmpeg/libswscale/bfin/yuv2rgb_bfin.c | 202 + ffmpeg/libswscale/colorspace-test.c | 170 + ffmpeg/libswscale/input.c | 1354 +++ ffmpeg/libswscale/libswscale.pc | 14 + ffmpeg/libswscale/libswscale.v | 4 + ffmpeg/libswscale/options.c | 81 + ffmpeg/libswscale/output.c | 1722 +++ ffmpeg/libswscale/ppc/Makefile | 3 + ffmpeg/libswscale/ppc/swscale_altivec.c | 328 + ffmpeg/libswscale/ppc/yuv2rgb_altivec.c | 854 ++ ffmpeg/libswscale/ppc/yuv2rgb_altivec.h | 51 + ffmpeg/libswscale/ppc/yuv2yuv_altivec.c | 194 + ffmpeg/libswscale/rgb2rgb.c | 390 + ffmpeg/libswscale/rgb2rgb.h | 166 + ffmpeg/libswscale/rgb2rgb_template.c | 927 ++ ffmpeg/libswscale/sparc/Makefile | 1 + ffmpeg/libswscale/sparc/yuv2rgb_vis.c | 212 + ffmpeg/libswscale/swscale-test.c | 415 + ffmpeg/libswscale/swscale.c | 974 ++ ffmpeg/libswscale/swscale.h | 355 + ffmpeg/libswscale/swscale_internal.h | 840 ++ ffmpeg/libswscale/swscale_unscaled.c | 1146 ++ ffmpeg/libswscale/utils.c | 1882 ++++ ffmpeg/libswscale/version.h | 59 + ffmpeg/libswscale/x86/Makefile | 11 + ffmpeg/libswscale/x86/input.asm | 670 ++ ffmpeg/libswscale/x86/output.asm | 413 + ffmpeg/libswscale/x86/rgb2rgb.c | 149 + ffmpeg/libswscale/x86/rgb2rgb_template.c | 2498 +++++ ffmpeg/libswscale/x86/scale.asm | 431 + ffmpeg/libswscale/x86/swscale.c | 585 + ffmpeg/libswscale/x86/swscale_template.c | 1717 +++ ffmpeg/libswscale/x86/w64xmmtest.c | 31 + ffmpeg/libswscale/x86/yuv2rgb.c | 113 + ffmpeg/libswscale/x86/yuv2rgb_template.c | 451 + ffmpeg/libswscale/yuv2rgb.c | 927 ++ ffmpeg/presets/libvpx-1080p.ffpreset | 19 + ffmpeg/presets/libvpx-1080p50_60.ffpreset | 19 + ffmpeg/presets/libvpx-360p.ffpreset | 18 + ffmpeg/presets/libvpx-720p.ffpreset | 19 + ffmpeg/presets/libvpx-720p50_60.ffpreset | 19 + ffmpeg/presets/libx264-ipod320.ffpreset | 6 + ffmpeg/presets/libx264-ipod640.ffpreset | 6 + ffmpeg/tests/Makefile | 172 + ffmpeg/tests/audiogen.c | 248 + ffmpeg/tests/base64.c | 54 + ffmpeg/tests/copycooker.sh | 30 + ffmpeg/tests/fate-run.sh | 205 + ffmpeg/tests/fate-update.sh | 55 + ffmpeg/tests/fate-valgrind.supp | 31 + ffmpeg/tests/fate.sh | 114 + ffmpeg/tests/fate/aac.mak | 106 + ffmpeg/tests/fate/ac3.mak | 76 + ffmpeg/tests/fate/acodec.mak | 122 + ffmpeg/tests/fate/adpcm.mak | 83 + ffmpeg/tests/fate/alac.mak | 24 + ffmpeg/tests/fate/als.mak | 11 + ffmpeg/tests/fate/amrnb.mak | 36 + ffmpeg/tests/fate/amrwb.mak | 47 + ffmpeg/tests/fate/atrac.mak | 26 + ffmpeg/tests/fate/audio.mak | 64 + ffmpeg/tests/fate/avfilter.mak | 66 + ffmpeg/tests/fate/avformat.mak | 72 + ffmpeg/tests/fate/bmp.mak | 43 + ffmpeg/tests/fate/cdxl.mak | 19 + ffmpeg/tests/fate/cover-art.mak | 33 + ffmpeg/tests/fate/demux.mak | 99 + ffmpeg/tests/fate/dfa.mak | 37 + ffmpeg/tests/fate/dpcm.mak | 14 + ffmpeg/tests/fate/ea.mak | 26 + ffmpeg/tests/fate/ffmpeg.mak | 37 + ffmpeg/tests/fate/ffprobe.mak | 33 + ffmpeg/tests/fate/fft.mak | 42 + ffmpeg/tests/fate/filter.mak | 83 + ffmpeg/tests/fate/flac.mak | 28 + ffmpeg/tests/fate/gif.mak | 13 + ffmpeg/tests/fate/h264.mak | 391 + ffmpeg/tests/fate/image.mak | 85 + ffmpeg/tests/fate/indeo.mak | 14 + ffmpeg/tests/fate/libavcodec.mak | 23 + ffmpeg/tests/fate/libavformat.mak | 14 + ffmpeg/tests/fate/libavutil.mak | 74 + ffmpeg/tests/fate/lossless-audio.mak | 32 + ffmpeg/tests/fate/lossless-video.mak | 52 + ffmpeg/tests/fate/microsoft.mak | 51 + ffmpeg/tests/fate/mp3.mak | 43 + ffmpeg/tests/fate/mpc.mak | 13 + ffmpeg/tests/fate/pcm.mak | 32 + ffmpeg/tests/fate/probe.mak | 20 + ffmpeg/tests/fate/prores.mak | 14 + ffmpeg/tests/fate/qt.mak | 55 + ffmpeg/tests/fate/qtrle.mak | 23 + ffmpeg/tests/fate/real.mak | 43 + ffmpeg/tests/fate/screen.mak | 65 + ffmpeg/tests/fate/seek.mak | 235 + ffmpeg/tests/fate/subtitles.mak | 62 + ffmpeg/tests/fate/utvideo.mak | 72 + ffmpeg/tests/fate/vcodec.mak | 293 + ffmpeg/tests/fate/video.mak | 287 + ffmpeg/tests/fate/voice.mak | 78 + ffmpeg/tests/fate/vorbis.mak | 85 + ffmpeg/tests/fate/vpx.mak | 56 + ffmpeg/tests/fate/vqf.mak | 12 + ffmpeg/tests/fate/wavpack.mak | 92 + ffmpeg/tests/fate/wma.mak | 54 + ffmpeg/tests/ffserver-regression.sh | 39 + ffmpeg/tests/ffserver.conf | 307 + ffmpeg/tests/ffserver.regression.ref | 10 + ffmpeg/tests/lavf-regression.sh | 358 + ffmpeg/tests/lavfi-regression.sh | 141 + ffmpeg/tests/lena.pnm | 109 + ffmpeg/tests/md5.sh | 13 + ffmpeg/tests/ref/acodec/adpcm-adx | 4 + ffmpeg/tests/ref/acodec/adpcm-ima_qt | 4 + ffmpeg/tests/ref/acodec/adpcm-ima_wav | 4 + ffmpeg/tests/ref/acodec/adpcm-ms | 4 + ffmpeg/tests/ref/acodec/adpcm-swf | 4 + ffmpeg/tests/ref/acodec/adpcm-yamaha | 4 + ffmpeg/tests/ref/acodec/adpcm_ima_qt | 4 + ffmpeg/tests/ref/acodec/alac | 4 + ffmpeg/tests/ref/acodec/flac | 4 + ffmpeg/tests/ref/acodec/g723_1 | 4 + ffmpeg/tests/ref/acodec/mp2 | 4 + ffmpeg/tests/ref/acodec/pcm-alaw | 4 + ffmpeg/tests/ref/acodec/pcm-f32be | 4 + ffmpeg/tests/ref/acodec/pcm-f32le | 4 + ffmpeg/tests/ref/acodec/pcm-f64be | 4 + ffmpeg/tests/ref/acodec/pcm-f64le | 4 + ffmpeg/tests/ref/acodec/pcm-mulaw | 4 + ffmpeg/tests/ref/acodec/pcm-s16be | 4 + ffmpeg/tests/ref/acodec/pcm-s16be_planar | 4 + ffmpeg/tests/ref/acodec/pcm-s16le | 4 + ffmpeg/tests/ref/acodec/pcm-s16le_planar | 4 + ffmpeg/tests/ref/acodec/pcm-s24be | 4 + ffmpeg/tests/ref/acodec/pcm-s24le | 4 + ffmpeg/tests/ref/acodec/pcm-s24le_planar | 4 + ffmpeg/tests/ref/acodec/pcm-s32be | 4 + ffmpeg/tests/ref/acodec/pcm-s32le | 4 + ffmpeg/tests/ref/acodec/pcm-s32le_planar | 4 + ffmpeg/tests/ref/acodec/pcm-s8 | 4 + ffmpeg/tests/ref/acodec/pcm-s8_planar | 4 + ffmpeg/tests/ref/acodec/pcm-u16be | 4 + ffmpeg/tests/ref/acodec/pcm-u16le | 4 + ffmpeg/tests/ref/acodec/pcm-u24be | 4 + ffmpeg/tests/ref/acodec/pcm-u24le | 4 + ffmpeg/tests/ref/acodec/pcm-u32be | 4 + ffmpeg/tests/ref/acodec/pcm-u32le | 4 + ffmpeg/tests/ref/acodec/pcm-u8 | 4 + ffmpeg/tests/ref/acodec/roqaudio | 4 + ffmpeg/tests/ref/fate/4xm-1 | 16 + ffmpeg/tests/ref/fate/4xm-2 | 175 + ffmpeg/tests/ref/fate/8bps | 37 + ffmpeg/tests/ref/fate/aasc | 25 + ffmpeg/tests/ref/fate/acodec-aref | 4 + ffmpeg/tests/ref/fate/adpcm-4xm | 27 + ffmpeg/tests/ref/fate/adpcm-afc | 13 + ffmpeg/tests/ref/fate/adpcm-creative | 1 + ffmpeg/tests/ref/fate/adpcm-creative-8-2.6bit | 1 + ffmpeg/tests/ref/fate/adpcm-creative-8-2bit | 1 + ffmpeg/tests/ref/fate/adpcm-creative-8-4bit | 1 + ffmpeg/tests/ref/fate/adpcm-ea-1 | 26 + ffmpeg/tests/ref/fate/adpcm-ea-2 | 134 + ffmpeg/tests/ref/fate/adpcm-ea-maxis-xa | 31 + ffmpeg/tests/ref/fate/adpcm-ea-r1 | 96 + ffmpeg/tests/ref/fate/adpcm-ea-r2 | 1 + ffmpeg/tests/ref/fate/adpcm-ea-r3 | 1 + ffmpeg/tests/ref/fate/adpcm-ima-amv | 161 + ffmpeg/tests/ref/fate/adpcm-ima-apc | 1 + ffmpeg/tests/ref/fate/adpcm-ima-dk3 | 1 + ffmpeg/tests/ref/fate/adpcm-ima-dk4 | 1 + ffmpeg/tests/ref/fate/adpcm-ima-ea-eacs | 48 + ffmpeg/tests/ref/fate/adpcm-ima-ea-sead | 50 + ffmpeg/tests/ref/fate/adpcm-ima-iss | 1 + ffmpeg/tests/ref/fate/adpcm-ima-oki | 1 + ffmpeg/tests/ref/fate/adpcm-ima-smjpeg | 351 + ffmpeg/tests/ref/fate/adpcm-ima-ws | 41 + ffmpeg/tests/ref/fate/adpcm-ima_wav-stereo | 1 + ffmpeg/tests/ref/fate/adpcm-ms-mono | 46 + ffmpeg/tests/ref/fate/adpcm-thp | 72 + ffmpeg/tests/ref/fate/adpcm-xa | 38 + ffmpeg/tests/ref/fate/adpcm_ms-stereo | 1 + ffmpeg/tests/ref/fate/adts-demux | 1 + ffmpeg/tests/ref/fate/aea-demux | 1 + ffmpeg/tests/ref/fate/alg-mm | 32 + ffmpeg/tests/ref/fate/amv | 161 + ffmpeg/tests/ref/fate/ansi | 18 + ffmpeg/tests/ref/fate/ansi256 | 9 + ffmpeg/tests/ref/fate/armovie-escape124 | 106 + ffmpeg/tests/ref/fate/ast | 1 + ffmpeg/tests/ref/fate/auravision-v1 | 25 + ffmpeg/tests/ref/fate/auravision-v2 | 3 + ffmpeg/tests/ref/fate/avio-direct | 59 + ffmpeg/tests/ref/fate/avstring | 27 + ffmpeg/tests/ref/fate/base64 | 9 + ffmpeg/tests/ref/fate/bethsoft-vid | 143 + ffmpeg/tests/ref/fate/bfi | 116 + ffmpeg/tests/ref/fate/bink-demux | 1 + ffmpeg/tests/ref/fate/bink-video-b | 31 + ffmpeg/tests/ref/fate/bink-video-f | 21 + ffmpeg/tests/ref/fate/bink-video-i | 32 + ffmpeg/tests/ref/fate/blowfish | 1 + ffmpeg/tests/ref/fate/bmp-15bit | 2 + ffmpeg/tests/ref/fate/bmp-15bit-mask | 2 + ffmpeg/tests/ref/fate/bmp-16bit-mask | 2 + ffmpeg/tests/ref/fate/bmp-1bit | 2 + ffmpeg/tests/ref/fate/bmp-24bit | 2 + ffmpeg/tests/ref/fate/bmp-32bit | 2 + ffmpeg/tests/ref/fate/bmp-32bit-mask | 2 + ffmpeg/tests/ref/fate/bmp-4bit | 2 + ffmpeg/tests/ref/fate/bmp-4bit-os2 | 2 + ffmpeg/tests/ref/fate/bmp-8bit | 2 + ffmpeg/tests/ref/fate/bmp-8bit-os2 | 2 + ffmpeg/tests/ref/fate/bmp-rle4 | 2 + ffmpeg/tests/ref/fate/bmp-rle8 | 2 + ffmpeg/tests/ref/fate/bmv-audio | 22 + ffmpeg/tests/ref/fate/bmv-video | 22 + ffmpeg/tests/ref/fate/bprint | 16 + ffmpeg/tests/ref/fate/brstm | 1 + ffmpeg/tests/ref/fate/caf | 1 + ffmpeg/tests/ref/fate/cavs | 172 + ffmpeg/tests/ref/fate/cdgraphics | 213 + ffmpeg/tests/ref/fate/cdxl-bitline-ham6 | 11 + ffmpeg/tests/ref/fate/cdxl-demux | 21 + ffmpeg/tests/ref/fate/cdxl-ham6 | 17 + ffmpeg/tests/ref/fate/cdxl-ham8 | 2 + ffmpeg/tests/ref/fate/cdxl-pal8 | 12 + ffmpeg/tests/ref/fate/cdxl-pal8-small | 47 + ffmpeg/tests/ref/fate/cljr | 37 + ffmpeg/tests/ref/fate/cllc-argb | 6 + ffmpeg/tests/ref/fate/cllc-rgb | 16 + ffmpeg/tests/ref/fate/corepng | 39 + ffmpeg/tests/ref/fate/crc | 4 + ffmpeg/tests/ref/fate/creatureshock-avs | 94 + ffmpeg/tests/ref/fate/cscd | 209 + ffmpeg/tests/ref/fate/cvid-grayscale | 153 + ffmpeg/tests/ref/fate/cvid-palette | 57 + ffmpeg/tests/ref/fate/cvid-partial | 80 + ffmpeg/tests/ref/fate/cyberia-c93 | 44 + ffmpeg/tests/ref/fate/cyuv | 151 + ffmpeg/tests/ref/fate/d-cinema-demux | 5 + ffmpeg/tests/ref/fate/dcinema-encode | 1 + ffmpeg/tests/ref/fate/delphine-cin-audio | 92 + ffmpeg/tests/ref/fate/delphine-cin-video | 93 + ffmpeg/tests/ref/fate/deluxepaint-anm | 124 + ffmpeg/tests/ref/fate/dfa1 | 26 + ffmpeg/tests/ref/fate/dfa10 | 9 + ffmpeg/tests/ref/fate/dfa11 | 10 + ffmpeg/tests/ref/fate/dfa2 | 18 + ffmpeg/tests/ref/fate/dfa3 | 11 + ffmpeg/tests/ref/fate/dfa4 | 15 + ffmpeg/tests/ref/fate/dfa5 | 16 + ffmpeg/tests/ref/fate/dfa6 | 13 + ffmpeg/tests/ref/fate/dfa7 | 13 + ffmpeg/tests/ref/fate/dfa8 | 37 + ffmpeg/tests/ref/fate/dfa9 | 7 + ffmpeg/tests/ref/fate/dirac | 3 + ffmpeg/tests/ref/fate/dpcm-idroq | 168 + ffmpeg/tests/ref/fate/dpcm-interplay | 125 + ffmpeg/tests/ref/fate/dpcm-sierra | 1 + ffmpeg/tests/ref/fate/dpcm-xan | 1 + ffmpeg/tests/ref/fate/dpx | 2 + ffmpeg/tests/ref/fate/dxa-feeble | 21 + ffmpeg/tests/ref/fate/dxa-scummvm | 13 + ffmpeg/tests/ref/fate/dxtory | 3 + ffmpeg/tests/ref/fate/ea-cdata | 1 + ffmpeg/tests/ref/fate/ea-cmv | 195 + ffmpeg/tests/ref/fate/ea-mad | 97 + ffmpeg/tests/ref/fate/ea-tgq | 279 + ffmpeg/tests/ref/fate/ea-tgv-1 | 48 + ffmpeg/tests/ref/fate/ea-tgv-2 | 39 + ffmpeg/tests/ref/fate/ea-tqi | 27 + ffmpeg/tests/ref/fate/eval | 263 + ffmpeg/tests/ref/fate/ffmpeg-filter_complex | 6 + ffmpeg/tests/ref/fate/ffmpeg-lavfi | 6 + ffmpeg/tests/ref/fate/ffprobe_compact | 32 + ffmpeg/tests/ref/fate/ffprobe_csv | 32 + ffmpeg/tests/ref/fate/ffprobe_default | 613 + ffmpeg/tests/ref/fate/ffprobe_flat | 549 + ffmpeg/tests/ref/fate/ffprobe_ini | 626 ++ ffmpeg/tests/ref/fate/ffprobe_json | 610 + ffmpeg/tests/ref/fate/ffprobe_xml | 54 + ffmpeg/tests/ref/fate/fifo | 27 + ffmpeg/tests/ref/fate/film-cvid | 111 + ffmpeg/tests/ref/fate/filter-curves | 6 + ffmpeg/tests/ref/fate/filter-delogo | 110 + ffmpeg/tests/ref/fate/filter-gradfun | 21 + ffmpeg/tests/ref/fate/filter-hqdn3d | 74 + ffmpeg/tests/ref/fate/filter-metadata-ebur128 | 280 + ffmpeg/tests/ref/fate/filter-metadata-scenedetect | 10 + .../tests/ref/fate/filter-metadata-silencedetect | 512 + ffmpeg/tests/ref/fate/filter-yadif-mode0 | 32 + ffmpeg/tests/ref/fate/filter-yadif-mode1 | 63 + ffmpeg/tests/ref/fate/flic-af11-palette-change | 117 + ffmpeg/tests/ref/fate/flic-af12 | 28 + ffmpeg/tests/ref/fate/flic-magiccarpet | 43 + ffmpeg/tests/ref/fate/force_key_frames | 4 + ffmpeg/tests/ref/fate/fraps-v0 | 21 + ffmpeg/tests/ref/fate/fraps-v1 | 2 + ffmpeg/tests/ref/fate/fraps-v2 | 3 + ffmpeg/tests/ref/fate/fraps-v3 | 8 + ffmpeg/tests/ref/fate/fraps-v4 | 8 + ffmpeg/tests/ref/fate/fraps-v5 | 59 + ffmpeg/tests/ref/fate/frwu | 11 + ffmpeg/tests/ref/fate/g722-encode | 1 + ffmpeg/tests/ref/fate/g722dec-1 | 168 + ffmpeg/tests/ref/fate/g723_1-dec-1 | 3 + ffmpeg/tests/ref/fate/g723_1-dec-2 | 27 + ffmpeg/tests/ref/fate/g723_1-dec-3 | 34 + ffmpeg/tests/ref/fate/g723_1-dec-4 | 5 + ffmpeg/tests/ref/fate/g723_1-dec-5 | 101 + ffmpeg/tests/ref/fate/g723_1-dec-6 | 101 + ffmpeg/tests/ref/fate/g723_1-dec-7 | 12 + ffmpeg/tests/ref/fate/g723_1-dec-8 | 121 + ffmpeg/tests/ref/fate/g726-encode-2bit | 1 + ffmpeg/tests/ref/fate/g726-encode-3bit | 1 + ffmpeg/tests/ref/fate/g726-encode-4bit | 1 + ffmpeg/tests/ref/fate/g726-encode-5bit | 1 + ffmpeg/tests/ref/fate/g729-0 | 1000 ++ ffmpeg/tests/ref/fate/g729-1 | 1000 ++ ffmpeg/tests/ref/fate/gif-color | 174 + ffmpeg/tests/ref/fate/gif-demux | 37 + ffmpeg/tests/ref/fate/gif-disposal-restore | 4 + ffmpeg/tests/ref/fate/gif-gray | 37 + ffmpeg/tests/ref/fate/gsm-ms | 90 + ffmpeg/tests/ref/fate/gsm-toast | 501 + ffmpeg/tests/ref/fate/h264-bsf-mp4toannexb | 1 + ffmpeg/tests/ref/fate/h264-conformance-aud_mw_e | 101 + ffmpeg/tests/ref/fate/h264-conformance-ba1_ft_c | 300 + ffmpeg/tests/ref/fate/h264-conformance-ba1_sony_d | 18 + ffmpeg/tests/ref/fate/h264-conformance-ba2_sony_f | 301 + ffmpeg/tests/ref/fate/h264-conformance-ba3_sva_c | 34 + ffmpeg/tests/ref/fate/h264-conformance-ba_mw_d | 101 + ffmpeg/tests/ref/fate/h264-conformance-bamq1_jvc_c | 31 + ffmpeg/tests/ref/fate/h264-conformance-bamq2_jvc_c | 31 + ffmpeg/tests/ref/fate/h264-conformance-banm_mw_d | 101 + .../tests/ref/fate/h264-conformance-basqp1_sony_c | 5 + .../tests/ref/fate/h264-conformance-caba1_sony_d | 51 + ffmpeg/tests/ref/fate/h264-conformance-caba1_sva_b | 18 + .../tests/ref/fate/h264-conformance-caba2_sony_e | 301 + ffmpeg/tests/ref/fate/h264-conformance-caba2_sva_b | 18 + .../tests/ref/fate/h264-conformance-caba3_sony_c | 301 + ffmpeg/tests/ref/fate/h264-conformance-caba3_sva_b | 34 + .../ref/fate/h264-conformance-caba3_toshiba_e | 301 + .../ref/fate/h264-conformance-cabac_mot_fld0_full | 31 + .../ref/fate/h264-conformance-cabac_mot_frm0_full | 31 + .../fate/h264-conformance-cabac_mot_mbaff0_full | 31 + .../fate/h264-conformance-cabac_mot_picaff0_full | 31 + .../tests/ref/fate/h264-conformance-cabaci3_sony_b | 301 + .../tests/ref/fate/h264-conformance-cabast3_sony_e | 26 + .../ref/fate/h264-conformance-cabastbr3_sony_b | 26 + .../tests/ref/fate/h264-conformance-cabref3_sand_d | 51 + .../tests/ref/fate/h264-conformance-cacqp3_sony_d | 51 + ffmpeg/tests/ref/fate/h264-conformance-cafi1_sva_c | 34 + .../tests/ref/fate/h264-conformance-cama1_sony_c | 6 + .../ref/fate/h264-conformance-cama1_toshiba_b | 91 + ffmpeg/tests/ref/fate/h264-conformance-cama1_vtc_c | 5 + ffmpeg/tests/ref/fate/h264-conformance-cama2_vtc_b | 5 + .../tests/ref/fate/h264-conformance-cama3_sand_e | 51 + ffmpeg/tests/ref/fate/h264-conformance-cama3_vtc_b | 5 + .../tests/ref/fate/h264-conformance-camaci3_sony_c | 18 + .../ref/fate/h264-conformance-camanl1_toshiba_b | 91 + .../ref/fate/h264-conformance-camanl2_toshiba_b | 91 + .../tests/ref/fate/h264-conformance-camanl3_sand_e | 51 + .../tests/ref/fate/h264-conformance-camasl3_sony_b | 18 + .../ref/fate/h264-conformance-camp_mot_mbaff_l30 | 31 + .../ref/fate/h264-conformance-camp_mot_mbaff_l31 | 31 + .../tests/ref/fate/h264-conformance-canl1_sony_e | 51 + ffmpeg/tests/ref/fate/h264-conformance-canl1_sva_b | 18 + .../ref/fate/h264-conformance-canl1_toshiba_g | 301 + .../tests/ref/fate/h264-conformance-canl2_sony_e | 301 + ffmpeg/tests/ref/fate/h264-conformance-canl2_sva_b | 18 + .../tests/ref/fate/h264-conformance-canl3_sony_c | 301 + ffmpeg/tests/ref/fate/h264-conformance-canl3_sva_b | 18 + ffmpeg/tests/ref/fate/h264-conformance-canl4_sva_b | 34 + .../tests/ref/fate/h264-conformance-canlma2_sony_c | 18 + .../tests/ref/fate/h264-conformance-canlma3_sony_c | 18 + .../ref/fate/h264-conformance-capa1_toshiba_b | 91 + .../tests/ref/fate/h264-conformance-capama3_sand_f | 51 + .../tests/ref/fate/h264-conformance-capcm1_sand_e | 31 + .../ref/fate/h264-conformance-capcmnl1_sand_e | 31 + .../tests/ref/fate/h264-conformance-capm3_sony_d | 301 + .../tests/ref/fate/h264-conformance-caqp1_sony_b | 51 + .../fate/h264-conformance-cavlc_mot_fld0_full_b | 31 + .../fate/h264-conformance-cavlc_mot_frm0_full_b | 31 + .../fate/h264-conformance-cavlc_mot_mbaff0_full_b | 31 + .../fate/h264-conformance-cavlc_mot_picaff0_full_b | 31 + .../ref/fate/h264-conformance-cawp1_toshiba_e | 91 + .../ref/fate/h264-conformance-cawp5_toshiba_e | 91 + ffmpeg/tests/ref/fate/h264-conformance-ci1_ft_b | 292 + ffmpeg/tests/ref/fate/h264-conformance-ci_mw_d | 101 + .../tests/ref/fate/h264-conformance-cvbs3_sony_c | 301 + .../ref/fate/h264-conformance-cvcanlma2_sony_c | 18 + .../tests/ref/fate/h264-conformance-cvfi1_sony_d | 18 + ffmpeg/tests/ref/fate/h264-conformance-cvfi1_sva_c | 8 + .../tests/ref/fate/h264-conformance-cvfi2_sony_h | 18 + ffmpeg/tests/ref/fate/h264-conformance-cvfi2_sva_c | 14 + .../tests/ref/fate/h264-conformance-cvma1_sony_d | 6 + .../ref/fate/h264-conformance-cvma1_toshiba_b | 91 + .../ref/fate/h264-conformance-cvmanl1_toshiba_b | 91 + .../ref/fate/h264-conformance-cvmanl2_toshiba_b | 91 + .../ref/fate/h264-conformance-cvmapaqp3_sony_e | 9 + .../tests/ref/fate/h264-conformance-cvmaqp2_sony_g | 18 + .../tests/ref/fate/h264-conformance-cvmaqp3_sony_d | 18 + .../ref/fate/h264-conformance-cvmp_mot_fld_l30_b | 31 + .../ref/fate/h264-conformance-cvmp_mot_frm_l31_b | 31 + .../tests/ref/fate/h264-conformance-cvnlfi1_sony_c | 18 + .../tests/ref/fate/h264-conformance-cvnlfi2_sony_h | 18 + .../ref/fate/h264-conformance-cvpa1_toshiba_b | 91 + .../tests/ref/fate/h264-conformance-cvpcmnl1_sva_c | 31 + .../tests/ref/fate/h264-conformance-cvpcmnl2_sva_c | 3 + .../ref/fate/h264-conformance-cvwp1_toshiba_e | 91 + .../ref/fate/h264-conformance-cvwp2_toshiba_e | 91 + .../ref/fate/h264-conformance-cvwp3_toshiba_e | 91 + .../ref/fate/h264-conformance-cvwp5_toshiba_e | 91 + ffmpeg/tests/ref/fate/h264-conformance-fi1_sony_e | 18 + .../fate/h264-conformance-frext-alphaconformanceg | 44 + .../ref/fate/h264-conformance-frext-bcrm_freh10 | 101 + .../ref/fate/h264-conformance-frext-brcm_freh11 | 101 + .../ref/fate/h264-conformance-frext-brcm_freh3 | 101 + .../ref/fate/h264-conformance-frext-brcm_freh4 | 101 + .../ref/fate/h264-conformance-frext-brcm_freh5 | 101 + .../ref/fate/h264-conformance-frext-brcm_freh8 | 101 + .../ref/fate/h264-conformance-frext-brcm_freh9 | 101 + .../tests/ref/fate/h264-conformance-frext-freh12_b | 101 + .../tests/ref/fate/h264-conformance-frext-freh1_b | 101 + .../tests/ref/fate/h264-conformance-frext-freh2_b | 101 + ffmpeg/tests/ref/fate/h264-conformance-frext-freh6 | 101 + .../tests/ref/fate/h264-conformance-frext-freh7_b | 101 + .../ref/fate/h264-conformance-frext-frext01_jvc_d | 17 + .../ref/fate/h264-conformance-frext-frext02_jvc_c | 17 + .../fate/h264-conformance-frext-frext1_panasonic_c | 9 + .../fate/h264-conformance-frext-frext2_panasonic_b | 16 + .../fate/h264-conformance-frext-frext3_panasonic_d | 12 + .../fate/h264-conformance-frext-frext4_panasonic_a | 11 + .../fate/h264-conformance-frext-frext_mmco4_sony_b | 61 + .../ref/fate/h264-conformance-frext-hcaff1_hhi_b | 11 + .../ref/fate/h264-conformance-frext-hcafr1_hhi_c | 11 + .../ref/fate/h264-conformance-frext-hcafr2_hhi_a | 11 + .../ref/fate/h264-conformance-frext-hcafr3_hhi_a | 11 + .../ref/fate/h264-conformance-frext-hcafr4_hhi_a | 11 + .../ref/fate/h264-conformance-frext-hcamff1_hhi_b | 11 + .../fate/h264-conformance-frext-hi422fr10_sony_b | 6 + .../fate/h264-conformance-frext-hi422fr13_sony_b | 6 + .../fate/h264-conformance-frext-hi422fr1_sony_a | 6 + .../fate/h264-conformance-frext-hi422fr6_sony_a | 6 + .../ref/fate/h264-conformance-frext-hpca_brcm_c | 301 + .../ref/fate/h264-conformance-frext-hpcadq_brcm_b | 301 + .../ref/fate/h264-conformance-frext-hpcafl_bcrm_c | 301 + .../fate/h264-conformance-frext-hpcaflnl_bcrm_c | 301 + .../ref/fate/h264-conformance-frext-hpcalq_brcm_b | 301 + .../fate/h264-conformance-frext-hpcamapalq_bcrm_b | 301 + .../fate/h264-conformance-frext-hpcamolq_brcm_b | 101 + .../ref/fate/h264-conformance-frext-hpcanl_brcm_c | 301 + .../fate/h264-conformance-frext-hpcaq2lq_brcm_b | 101 + .../ref/fate/h264-conformance-frext-hpcv_brcm_a | 301 + .../ref/fate/h264-conformance-frext-hpcvfl_bcrm_a | 301 + .../fate/h264-conformance-frext-hpcvflnl_bcrm_a | 301 + .../fate/h264-conformance-frext-hpcvmolq_brcm_b | 101 + .../ref/fate/h264-conformance-frext-hpcvnl_brcm_a | 301 + .../h264-conformance-frext-pph10i1_panasonic_a | 11 + .../h264-conformance-frext-pph10i2_panasonic_a | 11 + .../h264-conformance-frext-pph10i3_panasonic_a | 11 + .../h264-conformance-frext-pph10i4_panasonic_a | 11 + .../h264-conformance-frext-pph10i5_panasonic_a | 11 + .../h264-conformance-frext-pph10i6_panasonic_a | 11 + .../h264-conformance-frext-pph10i7_panasonic_a | 11 + .../h264-conformance-frext-pph422i1_panasonic_a | 11 + .../h264-conformance-frext-pph422i2_panasonic_a | 11 + .../h264-conformance-frext-pph422i3_panasonic_a | 11 + .../h264-conformance-frext-pph422i4_panasonic_a | 11 + .../h264-conformance-frext-pph422i5_panasonic_a | 11 + .../h264-conformance-frext-pph422i6_panasonic_a | 11 + .../h264-conformance-frext-pph422i7_panasonic_a | 11 + ffmpeg/tests/ref/fate/h264-conformance-hcbp2_hhi_a | 251 + ffmpeg/tests/ref/fate/h264-conformance-hcmp1_hhi_a | 251 + ffmpeg/tests/ref/fate/h264-conformance-ls_sva_d | 1701 +++ ffmpeg/tests/ref/fate/h264-conformance-midr_mw_d | 101 + ffmpeg/tests/ref/fate/h264-conformance-mps_mw_a | 151 + ffmpeg/tests/ref/fate/h264-conformance-mr1_bt_a | 63 + ffmpeg/tests/ref/fate/h264-conformance-mr1_mw_a | 151 + ffmpeg/tests/ref/fate/h264-conformance-mr2_mw_a | 301 + .../tests/ref/fate/h264-conformance-mr2_tandberg_e | 301 + .../tests/ref/fate/h264-conformance-mr3_tandberg_b | 301 + .../tests/ref/fate/h264-conformance-mr4_tandberg_c | 301 + .../tests/ref/fate/h264-conformance-mr5_tandberg_c | 301 + ffmpeg/tests/ref/fate/h264-conformance-mr6_bt_b | 61 + ffmpeg/tests/ref/fate/h264-conformance-mr7_bt_b | 61 + ffmpeg/tests/ref/fate/h264-conformance-mr8_bt_b | 59 + ffmpeg/tests/ref/fate/h264-conformance-mr9_bt_b | 59 + ffmpeg/tests/ref/fate/h264-conformance-mv1_brcm_d | 258 + ffmpeg/tests/ref/fate/h264-conformance-nl1_sony_d | 18 + ffmpeg/tests/ref/fate/h264-conformance-nl2_sony_h | 301 + ffmpeg/tests/ref/fate/h264-conformance-nl3_sva_e | 34 + ffmpeg/tests/ref/fate/h264-conformance-nlmq1_jvc_c | 31 + ffmpeg/tests/ref/fate/h264-conformance-nlmq2_jvc_c | 31 + ffmpeg/tests/ref/fate/h264-conformance-nrf_mw_e | 101 + .../ref/fate/h264-conformance-sharp_mp_field_1_b | 16 + .../ref/fate/h264-conformance-sharp_mp_field_2_b | 16 + .../ref/fate/h264-conformance-sharp_mp_field_3_b | 16 + .../ref/fate/h264-conformance-sharp_mp_paff_1r2 | 16 + .../ref/fate/h264-conformance-sharp_mp_paff_2r | 16 + ffmpeg/tests/ref/fate/h264-conformance-sl1_sva_b | 34 + ffmpeg/tests/ref/fate/h264-conformance-sva_ba1_b | 18 + ffmpeg/tests/ref/fate/h264-conformance-sva_ba2_d | 18 + ffmpeg/tests/ref/fate/h264-conformance-sva_base_b | 18 + ffmpeg/tests/ref/fate/h264-conformance-sva_cl1_e | 51 + ffmpeg/tests/ref/fate/h264-conformance-sva_fm1_e | 18 + ffmpeg/tests/ref/fate/h264-conformance-sva_nl1_b | 18 + ffmpeg/tests/ref/fate/h264-conformance-sva_nl2_e | 18 + ffmpeg/tests/ref/fate/h264-extreme-plane-pred | 101 + ffmpeg/tests/ref/fate/h264-interlace-crop | 4 + ffmpeg/tests/ref/fate/h264-lossless | 11 + .../fate/h264-reinit-large_420_8-to-small_420_8 | 101 + .../fate/h264-reinit-small_420_8-to-large_444_10 | 101 + .../fate/h264-reinit-small_420_9-to-small_420_8 | 101 + .../fate/h264-reinit-small_422_9-to-small_420_9 | 101 + ffmpeg/tests/ref/fate/hmac | 6 + ffmpeg/tests/ref/fate/id-cin-video | 106 + ffmpeg/tests/ref/fate/idroq-video-encode | 1 + ffmpeg/tests/ref/fate/iff-byterun1 | 2 + ffmpeg/tests/ref/fate/iff-fibonacci | 1 + ffmpeg/tests/ref/fate/iff-ilbm | 2 + ffmpeg/tests/ref/fate/iff-pcm | 1 + ffmpeg/tests/ref/fate/iirfilter | 1024 ++ ffmpeg/tests/ref/fate/indeo2 | 131 + ffmpeg/tests/ref/fate/indeo3 | 41 + ffmpeg/tests/ref/fate/indeo4 | 101 + ffmpeg/tests/ref/fate/indeo5 | 134 + ffmpeg/tests/ref/fate/interplay-mve-16bit | 51 + ffmpeg/tests/ref/fate/interplay-mve-8bit | 111 + ffmpeg/tests/ref/fate/iv8-demux | 26 + ffmpeg/tests/ref/fate/jv | 8 + ffmpeg/tests/ref/fate/jv-demux | 20 + ffmpeg/tests/ref/fate/kgv1 | 314 + ffmpeg/tests/ref/fate/kmvc | 76 + ffmpeg/tests/ref/fate/lagarith-rgb24 | 5 + ffmpeg/tests/ref/fate/lagarith-rgb32 | 26 + ffmpeg/tests/ref/fate/lagarith-yuy2 | 2 + ffmpeg/tests/ref/fate/lagarith-yv12 | 3 + ffmpeg/tests/ref/fate/lmlm4-demux | 217 + ffmpeg/tests/ref/fate/loco-rgb | 6 + ffmpeg/tests/ref/fate/loco-yuy2 | 4 + ffmpeg/tests/ref/fate/lossless-alac | 1 + ffmpeg/tests/ref/fate/lossless-meridianaudio | 1 + ffmpeg/tests/ref/fate/lossless-monkeysaudio | 1 + ffmpeg/tests/ref/fate/lossless-shorten | 1 + ffmpeg/tests/ref/fate/lossless-tak | 1 + ffmpeg/tests/ref/fate/lossless-tta | 1 + ffmpeg/tests/ref/fate/lossless-tta-encrypted | 1 + ffmpeg/tests/ref/fate/lossless-wma | 1 + ffmpeg/tests/ref/fate/mapchan-6ch-extract-2 | 2 + .../ref/fate/mapchan-6ch-extract-2-downmix-mono | 1 + ffmpeg/tests/ref/fate/mapchan-silent-mono | 1 + ffmpeg/tests/ref/fate/maxis-xa | 31 + ffmpeg/tests/ref/fate/md5 | 5 + ffmpeg/tests/ref/fate/mdec | 135 + ffmpeg/tests/ref/fate/mdec-v3 | 60 + ffmpeg/tests/ref/fate/mimic | 77 + ffmpeg/tests/ref/fate/mjpegb | 11 + ffmpeg/tests/ref/fate/motionpixels | 112 + ffmpeg/tests/ref/fate/mpc7-demux | 1 + ffmpeg/tests/ref/fate/mpc8-demux | 1 + ffmpeg/tests/ref/fate/mpeg2-field-enc | 31 + ffmpeg/tests/ref/fate/mpeg4-als-conformance-00 | 1 + ffmpeg/tests/ref/fate/mpeg4-als-conformance-01 | 1 + ffmpeg/tests/ref/fate/mpeg4-als-conformance-02 | 1 + ffmpeg/tests/ref/fate/mpeg4-als-conformance-03 | 1 + ffmpeg/tests/ref/fate/mpeg4-als-conformance-04 | 1 + ffmpeg/tests/ref/fate/mpeg4-als-conformance-05 | 1 + ffmpeg/tests/ref/fate/msmpeg4v1 | 51 + ffmpeg/tests/ref/fate/msrle-8bit | 30 + ffmpeg/tests/ref/fate/msvideo1-16bit | 31 + ffmpeg/tests/ref/fate/msvideo1-8bit | 32 + ffmpeg/tests/ref/fate/mszh | 2 + ffmpeg/tests/ref/fate/mtv | 138 + ffmpeg/tests/ref/fate/mxf-demux | 99 + ffmpeg/tests/ref/fate/mxpeg | 31 + ffmpeg/tests/ref/fate/nc-demux | 92 + ffmpeg/tests/ref/fate/nistsphere-demux | 1 + ffmpeg/tests/ref/fate/noproxy | 9 + ffmpeg/tests/ref/fate/nsv-demux | 173 + ffmpeg/tests/ref/fate/nuv-rtjpeg | 10 + ffmpeg/tests/ref/fate/nuv-rtjpeg-fh | 51 + ffmpeg/tests/ref/fate/oma-demux | 1 + ffmpeg/tests/ref/fate/paf-audio | 7 + ffmpeg/tests/ref/fate/paf-demux | 160 + ffmpeg/tests/ref/fate/paf-video | 153 + ffmpeg/tests/ref/fate/parseutils | 82 + ffmpeg/tests/ref/fate/pcm-planar | 143 + ffmpeg/tests/ref/fate/pcm_dvd | 124 + ffmpeg/tests/ref/fate/pcm_s16be-stereo | 1 + ffmpeg/tests/ref/fate/pcm_s16le-stereo | 1 + ffmpeg/tests/ref/fate/pcm_u8-mono | 1 + ffmpeg/tests/ref/fate/pcm_u8-stereo | 1 + ffmpeg/tests/ref/fate/pictor | 2 + ffmpeg/tests/ref/fate/pmp-demux | 106 + ffmpeg/tests/ref/fate/prores-422 | 3 + ffmpeg/tests/ref/fate/prores-422_hq | 3 + ffmpeg/tests/ref/fate/prores-422_lt | 3 + ffmpeg/tests/ref/fate/prores-422_proxy | 3 + ffmpeg/tests/ref/fate/prores-alpha | 3 + ffmpeg/tests/ref/fate/psx-str-demux | 202 + ffmpeg/tests/ref/fate/ptx | 2 + ffmpeg/tests/ref/fate/pva-demux | 27 + ffmpeg/tests/ref/fate/qcp-demux | 1 + ffmpeg/tests/ref/fate/qpeg | 101 + ffmpeg/tests/ref/fate/qt-alaw-mono | 1 + ffmpeg/tests/ref/fate/qt-alaw-stereo | 1 + ffmpeg/tests/ref/fate/qt-ima4-mono | 1 + ffmpeg/tests/ref/fate/qt-ima4-stereo | 1 + ffmpeg/tests/ref/fate/qt-mac3-mono | 1 + ffmpeg/tests/ref/fate/qt-mac3-stereo | 1 + ffmpeg/tests/ref/fate/qt-mac6-mono | 1 + ffmpeg/tests/ref/fate/qt-mac6-stereo | 1 + ffmpeg/tests/ref/fate/qt-ulaw-mono | 1 + ffmpeg/tests/ref/fate/qt-ulaw-stereo | 1 + ffmpeg/tests/ref/fate/qtrle-16bit | 84 + ffmpeg/tests/ref/fate/qtrle-1bit | 39 + ffmpeg/tests/ref/fate/qtrle-24bit | 35 + ffmpeg/tests/ref/fate/qtrle-2bit | 39 + ffmpeg/tests/ref/fate/qtrle-32bit | 27 + ffmpeg/tests/ref/fate/qtrle-4bit | 39 + ffmpeg/tests/ref/fate/qtrle-8bit | 168 + ffmpeg/tests/ref/fate/quickdraw | 3 + ffmpeg/tests/ref/fate/r210 | 4 + ffmpeg/tests/ref/fate/ra-144 | 1 + ffmpeg/tests/ref/fate/ralf | 1 + ffmpeg/tests/ref/fate/random_seed | 1 + ffmpeg/tests/ref/fate/redcode-demux | 7 + ffmpeg/tests/ref/fate/rl2 | 109 + ffmpeg/tests/ref/fate/roqvideo | 211 + ffmpeg/tests/ref/fate/rpza | 31 + ffmpeg/tests/ref/fate/rv30 | 110 + ffmpeg/tests/ref/fate/rv40 | 241 + ffmpeg/tests/ref/fate/sanm | 16 + ffmpeg/tests/ref/fate/sha | 21 + ffmpeg/tests/ref/fate/sierra-vmd-audio | 216 + ffmpeg/tests/ref/fate/sierra-vmd-video | 118 + ffmpeg/tests/ref/fate/siff-demux | 112 + ffmpeg/tests/ref/fate/smacker-audio | 87 + ffmpeg/tests/ref/fate/smacker-video | 101 + ffmpeg/tests/ref/fate/smc | 121 + ffmpeg/tests/ref/fate/smjpeg | 425 + ffmpeg/tests/ref/fate/smjpeg-demux | 425 + ffmpeg/tests/ref/fate/sp5x | 21 + ffmpeg/tests/ref/fate/srtp | 12 + ffmpeg/tests/ref/fate/sub-aqtitle | 1 + ffmpeg/tests/ref/fate/sub-charenc | 1 + ffmpeg/tests/ref/fate/sub-jacosub | 1 + ffmpeg/tests/ref/fate/sub-microdvd | 1 + ffmpeg/tests/ref/fate/sub-microdvd-remux | 1 + ffmpeg/tests/ref/fate/sub-movtext | 1 + ffmpeg/tests/ref/fate/sub-movtextenc | 1 + ffmpeg/tests/ref/fate/sub-mpl2 | 1 + ffmpeg/tests/ref/fate/sub-mpsub | 1 + ffmpeg/tests/ref/fate/sub-mpsub-frames | 1 + ffmpeg/tests/ref/fate/sub-pjs | 1 + ffmpeg/tests/ref/fate/sub-realtext | 1 + ffmpeg/tests/ref/fate/sub-sami | 1 + ffmpeg/tests/ref/fate/sub-srt | 1 + ffmpeg/tests/ref/fate/sub-subripenc | 1 + ffmpeg/tests/ref/fate/sub-subviewer | 1 + ffmpeg/tests/ref/fate/sub-subviewer1 | 1 + ffmpeg/tests/ref/fate/sub-vplayer | 1 + ffmpeg/tests/ref/fate/sub-webvtt | 1 + ffmpeg/tests/ref/fate/sub2video | 94 + ffmpeg/tests/ref/fate/sunraster-1bit-raw | 2 + ffmpeg/tests/ref/fate/sunraster-1bit-rle | 2 + ffmpeg/tests/ref/fate/sunraster-24bit-raw | 2 + ffmpeg/tests/ref/fate/sunraster-24bit-rle | 2 + ffmpeg/tests/ref/fate/sunraster-8bit-raw | 2 + ffmpeg/tests/ref/fate/sunraster-8bit-rle | 2 + ffmpeg/tests/ref/fate/sunraster-8bit_gray-raw | 2 + ffmpeg/tests/ref/fate/svq1 | 151 + ffmpeg/tests/ref/fate/svq3 | 181 + ffmpeg/tests/ref/fate/targa-conformance-CBW8 | 2 + ffmpeg/tests/ref/fate/targa-conformance-CCM8 | 2 + ffmpeg/tests/ref/fate/targa-conformance-CTC16 | 2 + ffmpeg/tests/ref/fate/targa-conformance-CTC24 | 2 + ffmpeg/tests/ref/fate/targa-conformance-CTC32 | 2 + ffmpeg/tests/ref/fate/targa-conformance-UBW8 | 2 + ffmpeg/tests/ref/fate/targa-conformance-UCM8 | 2 + ffmpeg/tests/ref/fate/targa-conformance-UTC16 | 2 + ffmpeg/tests/ref/fate/targa-conformance-UTC24 | 2 + ffmpeg/tests/ref/fate/targa-conformance-UTC32 | 2 + ffmpeg/tests/ref/fate/targa-top-to-bottom | 2 + ffmpeg/tests/ref/fate/theora-coeff-level64 | 9 + ffmpeg/tests/ref/fate/thp | 73 + ffmpeg/tests/ref/fate/tiertex-seq | 100 + ffmpeg/tests/ref/fate/tiff-fax-g3 | 2 + ffmpeg/tests/ref/fate/tiff-fax-g3s | 2 + ffmpeg/tests/ref/fate/tmv | 222 + ffmpeg/tests/ref/fate/truemotion1-15 | 106 + ffmpeg/tests/ref/fate/truemotion1-24 | 17 + ffmpeg/tests/ref/fate/truemotion2 | 31 + ffmpeg/tests/ref/fate/tscc-15bit | 242 + ffmpeg/tests/ref/fate/tscc-32bit | 157 + ffmpeg/tests/ref/fate/txd-16bpp | 12 + ffmpeg/tests/ref/fate/txd-pal8 | 2 + ffmpeg/tests/ref/fate/ulti | 63 + ffmpeg/tests/ref/fate/url | 13 + ffmpeg/tests/ref/fate/utvideo_rgb_left | 5 + ffmpeg/tests/ref/fate/utvideo_rgb_median | 6 + ffmpeg/tests/ref/fate/utvideo_rgba_left | 6 + ffmpeg/tests/ref/fate/utvideo_rgba_median | 6 + ffmpeg/tests/ref/fate/utvideo_rgba_single_symbol | 2 + ffmpeg/tests/ref/fate/utvideo_yuv420_left | 8 + ffmpeg/tests/ref/fate/utvideo_yuv420_median | 5 + ffmpeg/tests/ref/fate/utvideo_yuv422_left | 5 + ffmpeg/tests/ref/fate/utvideo_yuv422_median | 5 + ffmpeg/tests/ref/fate/utvideoenc_rgb_left | 51 + ffmpeg/tests/ref/fate/utvideoenc_rgb_median | 51 + ffmpeg/tests/ref/fate/utvideoenc_rgb_none | 51 + ffmpeg/tests/ref/fate/utvideoenc_rgba_left | 51 + ffmpeg/tests/ref/fate/utvideoenc_rgba_median | 51 + ffmpeg/tests/ref/fate/utvideoenc_rgba_none | 51 + ffmpeg/tests/ref/fate/utvideoenc_yuv420_left | 51 + ffmpeg/tests/ref/fate/utvideoenc_yuv420_median | 51 + ffmpeg/tests/ref/fate/utvideoenc_yuv420_none | 51 + ffmpeg/tests/ref/fate/utvideoenc_yuv422_left | 51 + ffmpeg/tests/ref/fate/utvideoenc_yuv422_median | 51 + ffmpeg/tests/ref/fate/utvideoenc_yuv422_none | 51 + ffmpeg/tests/ref/fate/v210 | 2 + ffmpeg/tests/ref/fate/v410dec | 2 + ffmpeg/tests/ref/fate/v410enc | 1 + ffmpeg/tests/ref/fate/vb | 37 + ffmpeg/tests/ref/fate/vble | 5 + ffmpeg/tests/ref/fate/vc1-ism | 121 + ffmpeg/tests/ref/fate/vc1_sa00040 | 16 + ffmpeg/tests/ref/fate/vc1_sa00050 | 31 + ffmpeg/tests/ref/fate/vc1_sa10091 | 31 + ffmpeg/tests/ref/fate/vc1_sa10143 | 31 + ffmpeg/tests/ref/fate/vc1_sa20021 | 61 + ffmpeg/tests/ref/fate/vcr1 | 129 + ffmpeg/tests/ref/fate/videoxl | 41 + ffmpeg/tests/ref/fate/vima | 17 + ffmpeg/tests/ref/fate/vmnc-16bit | 193 + ffmpeg/tests/ref/fate/vmnc-32bit | 50 + ffmpeg/tests/ref/fate/vp31 | 115 + ffmpeg/tests/ref/fate/vp5 | 248 + ffmpeg/tests/ref/fate/vp60 | 134 + ffmpeg/tests/ref/fate/vp61 | 121 + ffmpeg/tests/ref/fate/vp6a | 94 + ffmpeg/tests/ref/fate/vp6f | 175 + ffmpeg/tests/ref/fate/vp8-alpha | 121 + ffmpeg/tests/ref/fate/vp8-sign-bias | 10 + ffmpeg/tests/ref/fate/vp8-size-change | 31 + ffmpeg/tests/ref/fate/vp8-test-vector-001 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-002 | 50 + ffmpeg/tests/ref/fate/vp8-test-vector-003 | 50 + ffmpeg/tests/ref/fate/vp8-test-vector-004 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-005 | 50 + ffmpeg/tests/ref/fate/vp8-test-vector-006 | 49 + ffmpeg/tests/ref/fate/vp8-test-vector-007 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-008 | 3 + ffmpeg/tests/ref/fate/vp8-test-vector-009 | 50 + ffmpeg/tests/ref/fate/vp8-test-vector-010 | 58 + ffmpeg/tests/ref/fate/vp8-test-vector-011 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-012 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-013 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-014 | 50 + ffmpeg/tests/ref/fate/vp8-test-vector-015 | 261 + ffmpeg/tests/ref/fate/vp8-test-vector-016 | 30 + ffmpeg/tests/ref/fate/vp8-test-vector-017 | 30 + ffmpeg/tests/ref/fate/vqa-cc | 39 + ffmpeg/tests/ref/fate/vqf-demux | 1 + ffmpeg/tests/ref/fate/w64 | 1 + ffmpeg/tests/ref/fate/wavpack-channels-4.0 | 1 + ffmpeg/tests/ref/fate/wavpack-channels-5.1 | 1 + ffmpeg/tests/ref/fate/wavpack-channels-6.1 | 1 + ffmpeg/tests/ref/fate/wavpack-channels-7.1 | 1 + ffmpeg/tests/ref/fate/wavpack-channels-monofloat | 1 + ffmpeg/tests/ref/fate/wavpack-channels-monoint | 1 + ffmpeg/tests/ref/fate/wavpack-clipping | 1 + ffmpeg/tests/ref/fate/wavpack-cuesheet | 1 + ffmpeg/tests/ref/fate/wavpack-falsestereo | 1 + ffmpeg/tests/ref/fate/wavpack-lossless-12bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossless-16bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossless-24bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossless-32bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossless-8bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossless-float | 1 + ffmpeg/tests/ref/fate/wavpack-lossy-16bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossy-24bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossy-32bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossy-8bit | 1 + ffmpeg/tests/ref/fate/wavpack-lossy-float | 1 + ffmpeg/tests/ref/fate/wavpack-matroskamode | 1 + ffmpeg/tests/ref/fate/wavpack-speed-default | 1 + ffmpeg/tests/ref/fate/wavpack-speed-fast | 1 + ffmpeg/tests/ref/fate/wavpack-speed-high | 1 + ffmpeg/tests/ref/fate/wavpack-speed-vhigh | 1 + ffmpeg/tests/ref/fate/wavpack-zerolsbs | 1 + ffmpeg/tests/ref/fate/wc3movie-xan | 72 + ffmpeg/tests/ref/fate/westwood-aud | 12 + ffmpeg/tests/ref/fate/wmv8-drm | 131 + ffmpeg/tests/ref/fate/wmv8-drm-nodec | 152 + ffmpeg/tests/ref/fate/wmv8-x8intra | 474 + ffmpeg/tests/ref/fate/wnv1 | 87 + ffmpeg/tests/ref/fate/ws_snd | 1 + ffmpeg/tests/ref/fate/wtv-demux | 141 + ffmpeg/tests/ref/fate/xface | 2 + ffmpeg/tests/ref/fate/xmv-demux | 183 + ffmpeg/tests/ref/fate/xtea | 1 + ffmpeg/tests/ref/fate/xwma-demux | 1 + ffmpeg/tests/ref/fate/xxan-wc4 | 22 + ffmpeg/tests/ref/fate/yop | 7 + ffmpeg/tests/ref/fate/zerocodec | 39 + ffmpeg/tests/ref/fate/zlib | 2 + ffmpeg/tests/ref/fate/zmbv-15bit | 160 + ffmpeg/tests/ref/fate/zmbv-16bit | 160 + ffmpeg/tests/ref/fate/zmbv-32bit | 160 + ffmpeg/tests/ref/fate/zmbv-8bit | 277 + ffmpeg/tests/ref/lavf-fate/latm | 3 + ffmpeg/tests/ref/lavf-fate/mp3 | 3 + ffmpeg/tests/ref/lavf-fate/ogg_vp3 | 3 + ffmpeg/tests/ref/lavf/aiff | 3 + ffmpeg/tests/ref/lavf/alaw | 3 + ffmpeg/tests/ref/lavf/asf | 3 + ffmpeg/tests/ref/lavf/ast | 3 + ffmpeg/tests/ref/lavf/au | 3 + ffmpeg/tests/ref/lavf/avi | 3 + ffmpeg/tests/ref/lavf/bmp | 3 + ffmpeg/tests/ref/lavf/caf | 3 + ffmpeg/tests/ref/lavf/dpx | 9 + ffmpeg/tests/ref/lavf/dv_fmt | 9 + ffmpeg/tests/ref/lavf/ffm | 3 + ffmpeg/tests/ref/lavf/flm | 3 + ffmpeg/tests/ref/lavf/flv_fmt | 3 + ffmpeg/tests/ref/lavf/gif | 24 + ffmpeg/tests/ref/lavf/gxf | 9 + ffmpeg/tests/ref/lavf/ircam | 3 + ffmpeg/tests/ref/lavf/ismv | 9 + ffmpeg/tests/ref/lavf/jpg | 3 + ffmpeg/tests/ref/lavf/mkv | 6 + ffmpeg/tests/ref/lavf/mmf | 3 + ffmpeg/tests/ref/lavf/mov | 12 + ffmpeg/tests/ref/lavf/mpg | 9 + ffmpeg/tests/ref/lavf/mulaw | 3 + ffmpeg/tests/ref/lavf/mxf | 9 + ffmpeg/tests/ref/lavf/mxf_d10 | 3 + ffmpeg/tests/ref/lavf/nut | 3 + ffmpeg/tests/ref/lavf/ogg | 3 + ffmpeg/tests/ref/lavf/pam | 18 + ffmpeg/tests/ref/lavf/pbmpipe | 3 + ffmpeg/tests/ref/lavf/pcx | 3 + ffmpeg/tests/ref/lavf/pgm | 3 + ffmpeg/tests/ref/lavf/pgmpipe | 3 + ffmpeg/tests/ref/lavf/pixfmt | 38 + ffmpeg/tests/ref/lavf/png | 9 + ffmpeg/tests/ref/lavf/ppm | 3 + ffmpeg/tests/ref/lavf/ppmpipe | 3 + ffmpeg/tests/ref/lavf/rm | 2 + ffmpeg/tests/ref/lavf/rso | 3 + ffmpeg/tests/ref/lavf/sgi | 3 + ffmpeg/tests/ref/lavf/smjpeg | 3 + ffmpeg/tests/ref/lavf/sox | 3 + ffmpeg/tests/ref/lavf/sunrast | 3 + ffmpeg/tests/ref/lavf/swf | 3 + ffmpeg/tests/ref/lavf/tga | 3 + ffmpeg/tests/ref/lavf/tiff | 3 + ffmpeg/tests/ref/lavf/ts | 3 + ffmpeg/tests/ref/lavf/voc | 3 + ffmpeg/tests/ref/lavf/voc_s16 | 3 + ffmpeg/tests/ref/lavf/w64 | 3 + ffmpeg/tests/ref/lavf/wav | 3 + ffmpeg/tests/ref/lavf/wtv | 3 + ffmpeg/tests/ref/lavf/xbm | 3 + ffmpeg/tests/ref/lavf/xwd | 24 + ffmpeg/tests/ref/lavf/yuv4mpeg | 2 + ffmpeg/tests/ref/lavfi/alphaextract_rgb | 1 + ffmpeg/tests/ref/lavfi/alphaextract_yuv | 1 + ffmpeg/tests/ref/lavfi/alphamerge_rgb | 1 + ffmpeg/tests/ref/lavfi/alphamerge_yuv | 1 + ffmpeg/tests/ref/lavfi/colormatrix1 | 1 + ffmpeg/tests/ref/lavfi/colormatrix2 | 1 + ffmpeg/tests/ref/lavfi/crop | 1 + ffmpeg/tests/ref/lavfi/crop_scale | 1 + ffmpeg/tests/ref/lavfi/crop_scale_vflip | 1 + ffmpeg/tests/ref/lavfi/crop_vflip | 1 + ffmpeg/tests/ref/lavfi/drawbox | 1 + ffmpeg/tests/ref/lavfi/edgedetect | 1 + ffmpeg/tests/ref/lavfi/fade | 1 + ffmpeg/tests/ref/lavfi/field | 110 + ffmpeg/tests/ref/lavfi/histeq | 6 + ffmpeg/tests/ref/lavfi/hue | 1 + ffmpeg/tests/ref/lavfi/idet | 1 + ffmpeg/tests/ref/lavfi/il | 109 + ffmpeg/tests/ref/lavfi/kerndeint | 10 + ffmpeg/tests/ref/lavfi/life | 1 + ffmpeg/tests/ref/lavfi/null | 1 + ffmpeg/tests/ref/lavfi/overlay_rgb | 1 + ffmpeg/tests/ref/lavfi/overlay_yuv420 | 1 + ffmpeg/tests/ref/lavfi/overlay_yuv444 | 1 + ffmpeg/tests/ref/lavfi/pad | 1 + ffmpeg/tests/ref/lavfi/pixfmts_copy | 110 + ffmpeg/tests/ref/lavfi/pixfmts_crop | 43 + ffmpeg/tests/ref/lavfi/pixfmts_hflip | 106 + ffmpeg/tests/ref/lavfi/pixfmts_null | 110 + ffmpeg/tests/ref/lavfi/pixfmts_pad | 25 + ffmpeg/tests/ref/lavfi/pixfmts_pixdesctest | 110 + ffmpeg/tests/ref/lavfi/pixfmts_scale | 110 + ffmpeg/tests/ref/lavfi/pixfmts_super2xsai | 14 + ffmpeg/tests/ref/lavfi/pixfmts_vflip | 110 + ffmpeg/tests/ref/lavfi/pp | 1 + ffmpeg/tests/ref/lavfi/pp2 | 1 + ffmpeg/tests/ref/lavfi/pp3 | 1 + ffmpeg/tests/ref/lavfi/pp4 | 1 + ffmpeg/tests/ref/lavfi/pp5 | 1 + ffmpeg/tests/ref/lavfi/pp6 | 1 + ffmpeg/tests/ref/lavfi/scale200 | 1 + ffmpeg/tests/ref/lavfi/scale500 | 1 + ffmpeg/tests/ref/lavfi/scalenorm | 1 + ffmpeg/tests/ref/lavfi/select | 1 + ffmpeg/tests/ref/lavfi/setdar | 1 + ffmpeg/tests/ref/lavfi/setsar | 1 + ffmpeg/tests/ref/lavfi/testsrc | 1 + ffmpeg/tests/ref/lavfi/thumbnail | 1 + ffmpeg/tests/ref/lavfi/tile | 1 + ffmpeg/tests/ref/lavfi/tinterlace_merge | 10 + ffmpeg/tests/ref/lavfi/tinterlace_pad | 10 + ffmpeg/tests/ref/lavfi/transpose | 1 + ffmpeg/tests/ref/lavfi/unsharp | 1 + ffmpeg/tests/ref/lavfi/vflip | 1 + ffmpeg/tests/ref/lavfi/vflip_crop | 1 + ffmpeg/tests/ref/lavfi/vflip_vflip | 1 + ffmpeg/tests/ref/seek/acodec-adpcm-ima_qt | 53 + ffmpeg/tests/ref/seek/acodec-adpcm-ima_wav | 53 + ffmpeg/tests/ref/seek/acodec-adpcm-ms | 53 + ffmpeg/tests/ref/seek/acodec-adpcm-swf | 49 + ffmpeg/tests/ref/seek/acodec-adpcm-yamaha | 53 + ffmpeg/tests/ref/seek/acodec-alac | 53 + ffmpeg/tests/ref/seek/acodec-flac | 49 + ffmpeg/tests/ref/seek/acodec-mp2 | 49 + ffmpeg/tests/ref/seek/acodec-pcm-alaw | 53 + ffmpeg/tests/ref/seek/acodec-pcm-f32be | 53 + ffmpeg/tests/ref/seek/acodec-pcm-f32le | 53 + ffmpeg/tests/ref/seek/acodec-pcm-f64be | 53 + ffmpeg/tests/ref/seek/acodec-pcm-f64le | 53 + ffmpeg/tests/ref/seek/acodec-pcm-mulaw | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s16be | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s16le | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s24be | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s24le | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s32be | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s32le | 53 + ffmpeg/tests/ref/seek/acodec-pcm-s8 | 53 + ffmpeg/tests/ref/seek/acodec-pcm-u8 | 53 + ffmpeg/tests/ref/seek/lavf-aiff | 53 + ffmpeg/tests/ref/seek/lavf-alaw | 53 + ffmpeg/tests/ref/seek/lavf-asf | 53 + ffmpeg/tests/ref/seek/lavf-au | 53 + ffmpeg/tests/ref/seek/lavf-avi | 44 + ffmpeg/tests/ref/seek/lavf-bmp | 30 + ffmpeg/tests/ref/seek/lavf-dv_fmt | 53 + ffmpeg/tests/ref/seek/lavf-ffm | 53 + ffmpeg/tests/ref/seek/lavf-flv_fmt | 44 + ffmpeg/tests/ref/seek/lavf-gif | 40 + ffmpeg/tests/ref/seek/lavf-gxf | 53 + ffmpeg/tests/ref/seek/lavf-jpg | 30 + ffmpeg/tests/ref/seek/lavf-mkv | 48 + ffmpeg/tests/ref/seek/lavf-mmf | 44 + ffmpeg/tests/ref/seek/lavf-mov | 48 + ffmpeg/tests/ref/seek/lavf-mpg | 53 + ffmpeg/tests/ref/seek/lavf-mulaw | 53 + ffmpeg/tests/ref/seek/lavf-mxf | 48 + ffmpeg/tests/ref/seek/lavf-mxf_d10 | 53 + ffmpeg/tests/ref/seek/lavf-nut | 53 + ffmpeg/tests/ref/seek/lavf-ogg | 53 + ffmpeg/tests/ref/seek/lavf-pbmpipe | 27 + ffmpeg/tests/ref/seek/lavf-pcx | 30 + ffmpeg/tests/ref/seek/lavf-pgm | 30 + ffmpeg/tests/ref/seek/lavf-pgmpipe | 27 + ffmpeg/tests/ref/seek/lavf-ppm | 30 + ffmpeg/tests/ref/seek/lavf-ppmpipe | 27 + ffmpeg/tests/ref/seek/lavf-rm | 53 + ffmpeg/tests/ref/seek/lavf-sgi | 30 + ffmpeg/tests/ref/seek/lavf-swf | 27 + ffmpeg/tests/ref/seek/lavf-tga | 30 + ffmpeg/tests/ref/seek/lavf-tiff | 30 + ffmpeg/tests/ref/seek/lavf-ts | 53 + ffmpeg/tests/ref/seek/lavf-voc | 27 + ffmpeg/tests/ref/seek/lavf-wav | 53 + ffmpeg/tests/ref/seek/lavf-wtv | 48 + ffmpeg/tests/ref/seek/lavf-yuv4mpeg | 27 + ffmpeg/tests/ref/seek/vsynth2-asv1 | 46 + ffmpeg/tests/ref/seek/vsynth2-asv2 | 46 + ffmpeg/tests/ref/seek/vsynth2-dnxhd-1080i | 44 + ffmpeg/tests/ref/seek/vsynth2-dnxhd-720p | 40 + ffmpeg/tests/ref/seek/vsynth2-dnxhd-720p-rd | 40 + ffmpeg/tests/ref/seek/vsynth2-dv | 53 + ffmpeg/tests/ref/seek/vsynth2-dv-411 | 53 + ffmpeg/tests/ref/seek/vsynth2-dv-50 | 53 + ffmpeg/tests/ref/seek/vsynth2-ffv1 | 46 + ffmpeg/tests/ref/seek/vsynth2-flashsv | 46 + ffmpeg/tests/ref/seek/vsynth2-flv | 46 + ffmpeg/tests/ref/seek/vsynth2-h261 | 46 + ffmpeg/tests/ref/seek/vsynth2-h263 | 46 + ffmpeg/tests/ref/seek/vsynth2-h263p | 46 + ffmpeg/tests/ref/seek/vsynth2-huffyuv | 46 + ffmpeg/tests/ref/seek/vsynth2-jpegls | 46 + ffmpeg/tests/ref/seek/vsynth2-ljpeg | 46 + ffmpeg/tests/ref/seek/vsynth2-mjpeg | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg1 | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg1b | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg2-422 | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg2-idct-int | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg2-ilace | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg2-ivlc-qprd | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg2-thread | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg2-thread-ivlc | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4 | 50 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-adap | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-adv | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-error | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-nr | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-qpel | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-qprd | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-rc | 46 + ffmpeg/tests/ref/seek/vsynth2-mpeg4-thread | 46 + ffmpeg/tests/ref/seek/vsynth2-msmpeg4 | 46 + ffmpeg/tests/ref/seek/vsynth2-msmpeg4v2 | 46 + ffmpeg/tests/ref/seek/vsynth2-rgb | 46 + ffmpeg/tests/ref/seek/vsynth2-roqvideo | 27 + ffmpeg/tests/ref/seek/vsynth2-rv10 | 52 + ffmpeg/tests/ref/seek/vsynth2-rv20 | 53 + ffmpeg/tests/ref/seek/vsynth2-snow | 46 + ffmpeg/tests/ref/seek/vsynth2-snow-ll | 46 + ffmpeg/tests/ref/seek/vsynth2-svq1 | 50 + ffmpeg/tests/ref/seek/vsynth2-wmv1 | 46 + ffmpeg/tests/ref/seek/vsynth2-wmv2 | 46 + ffmpeg/tests/ref/seek/vsynth2-yuv | 46 + ffmpeg/tests/ref/vsynth/vsynth1-amv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-asv1 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-asv2 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-avui | 4 + ffmpeg/tests/ref/vsynth/vsynth1-cljr | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-1080i | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-720p | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-720p-10bit | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-720p-rd | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dnxhd_1080i | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dv-411 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dv-50 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-dv_411 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-ffv1 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-ffvhuff | 4 + ffmpeg/tests/ref/vsynth/vsynth1-flashsv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-flashsv2 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-flv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-h261 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-h263 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-h263-obmc | 4 + ffmpeg/tests/ref/vsynth/vsynth1-h263p | 4 + ffmpeg/tests/ref/vsynth/vsynth1-huffyuv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-j2k | 4 + ffmpeg/tests/ref/vsynth/vsynth1-jpegls | 4 + ffmpeg/tests/ref/vsynth/vsynth1-ljpeg | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mjpeg | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mjpeg-422 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mjpeg-444 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg1 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg1b | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-422 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-idct-int | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-ilace | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-thread | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-adap | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-adv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-error | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-nr | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-qpel | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-qprd | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-rc | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-thread | 4 + ffmpeg/tests/ref/vsynth/vsynth1-mpng | 4 + ffmpeg/tests/ref/vsynth/vsynth1-msmpeg4 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-msmpeg4v2 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-msvideo1 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-prores | 4 + ffmpeg/tests/ref/vsynth/vsynth1-prores_kostya | 4 + ffmpeg/tests/ref/vsynth/vsynth1-qtrle | 4 + ffmpeg/tests/ref/vsynth/vsynth1-qtrlegray | 4 + ffmpeg/tests/ref/vsynth/vsynth1-r210 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-rgb | 4 + ffmpeg/tests/ref/vsynth/vsynth1-roqvideo | 4 + ffmpeg/tests/ref/vsynth/vsynth1-rv10 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-rv20 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-snow | 4 + ffmpeg/tests/ref/vsynth/vsynth1-snow-hpel | 4 + ffmpeg/tests/ref/vsynth/vsynth1-snow-ll | 4 + ffmpeg/tests/ref/vsynth/vsynth1-svq1 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-v210 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-v308 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-v408 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-wmv1 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-wmv2 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-y41p | 4 + ffmpeg/tests/ref/vsynth/vsynth1-yuv | 4 + ffmpeg/tests/ref/vsynth/vsynth1-yuv4 | 4 + ffmpeg/tests/ref/vsynth/vsynth1-zlib | 4 + ffmpeg/tests/ref/vsynth/vsynth1-zmbv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-amv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-asv1 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-asv2 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-avui | 4 + ffmpeg/tests/ref/vsynth/vsynth2-cljr | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-1080i | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-720p | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-720p-10bit | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-720p-rd | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dnxhd_1080i | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dv-411 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dv-50 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-dv_411 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-ffv1 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-ffvhuff | 4 + ffmpeg/tests/ref/vsynth/vsynth2-flashsv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-flashsv2 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-flv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-h261 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-h263 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-h263-obmc | 4 + ffmpeg/tests/ref/vsynth/vsynth2-h263p | 4 + ffmpeg/tests/ref/vsynth/vsynth2-huffyuv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-j2k | 4 + ffmpeg/tests/ref/vsynth/vsynth2-jpegls | 4 + ffmpeg/tests/ref/vsynth/vsynth2-ljpeg | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mjpeg | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mjpeg-422 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mjpeg-444 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg1 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg1b | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-422 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-idct-int | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-ilace | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-thread | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-adap | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-adv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-error | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-nr | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-qpel | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-qprd | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-rc | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-thread | 4 + ffmpeg/tests/ref/vsynth/vsynth2-mpng | 4 + ffmpeg/tests/ref/vsynth/vsynth2-msmpeg4 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-msmpeg4v2 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-msvideo1 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-prores | 4 + ffmpeg/tests/ref/vsynth/vsynth2-prores_kostya | 4 + ffmpeg/tests/ref/vsynth/vsynth2-qtrle | 4 + ffmpeg/tests/ref/vsynth/vsynth2-qtrlegray | 4 + ffmpeg/tests/ref/vsynth/vsynth2-r210 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-rgb | 4 + ffmpeg/tests/ref/vsynth/vsynth2-roqvideo | 4 + ffmpeg/tests/ref/vsynth/vsynth2-rv10 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-rv20 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-snow | 4 + ffmpeg/tests/ref/vsynth/vsynth2-snow-hpel | 4 + ffmpeg/tests/ref/vsynth/vsynth2-snow-ll | 4 + ffmpeg/tests/ref/vsynth/vsynth2-svq1 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-v210 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-v308 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-v408 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-wmv1 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-wmv2 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-y41p | 4 + ffmpeg/tests/ref/vsynth/vsynth2-yuv | 4 + ffmpeg/tests/ref/vsynth/vsynth2-yuv4 | 4 + ffmpeg/tests/ref/vsynth/vsynth2-zlib | 4 + ffmpeg/tests/ref/vsynth/vsynth2-zmbv | 4 + ffmpeg/tests/ref/vsynth1/cljr | 4 + ffmpeg/tests/ref/vsynth1/yuv | 4 + ffmpeg/tests/ref/vsynth2/cljr | 4 + ffmpeg/tests/ref/vsynth2/huffyuv | 4 + ffmpeg/tests/ref/vsynth2/yuv | 4 + ffmpeg/tests/regression-funcs.sh | 88 + ffmpeg/tests/rotozoom.c | 195 + ffmpeg/tests/test.ffmeta | 9 + ffmpeg/tests/tiny_psnr.c | 264 + ffmpeg/tests/utils.c | 172 + ffmpeg/tests/videogen.c | 179 + ffmpeg/tools/aviocat.c | 96 + ffmpeg/tools/bisect-create | 46 + ffmpeg/tools/bookmarklets.html | 55 + ffmpeg/tools/build_libstagefright | 58 + ffmpeg/tools/clean-diff | 11 + ffmpeg/tools/cws2fws.c | 145 + ffmpeg/tools/enum_options.c | 143 + ffmpeg/tools/ffescape.c | 180 + ffmpeg/tools/ffeval.c | 142 + ffmpeg/tools/fourcc2pixfmt.c | 123 + ffmpeg/tools/graph2dot.c | 193 + ffmpeg/tools/ismindex.c | 567 + ffmpeg/tools/make_chlayout_test | 114 + ffmpeg/tools/missing_codec_desc | 37 + ffmpeg/tools/patcheck | 180 + ffmpeg/tools/pktdumper.c | 137 + ffmpeg/tools/plotframes | 164 + ffmpeg/tools/probetest.c | 145 + ffmpeg/tools/qt-faststart.c | 356 + ffmpeg/tools/seek_print.c | 107 + ffmpeg/tools/trasher.c | 81 + ffmpeg/tools/unwrap-diff | 2 + ffmpeg/tools/yuvcmp.c | 182 + ffmpeg/version.h | 1 + ffmpeg/version.sh | 48 + install_dependencies_linux.sh | 2 +- 3528 files changed, 916736 insertions(+), 1 deletion(-) create mode 100644 ffmpeg-fas/.gitignore create mode 100644 ffmpeg-fas/COPYING.GPL create mode 100644 ffmpeg-fas/COPYING.LGPL create mode 100644 ffmpeg-fas/README create mode 100755 ffmpeg-fas/build.sh create mode 100644 ffmpeg-fas/ffmpeg_fas.c create mode 100644 ffmpeg-fas/ffmpeg_fas.def create mode 100644 ffmpeg-fas/ffmpeg_fas.h create mode 100644 ffmpeg-fas/ffmpeg_fas.vcproj create mode 100644 ffmpeg-fas/private_errors.h create mode 100644 ffmpeg-fas/seek_indices.c create mode 100644 ffmpeg-fas/seek_indices.h create mode 100644 ffmpeg-fas/seek_indices.o create mode 100755 ffmpeg-fas/test/build.sh create mode 100644 ffmpeg-fas/test/dump_frames.c create mode 100644 ffmpeg-fas/test/dump_keyframes.c create mode 100644 ffmpeg-fas/test/external_seek_test.c create mode 100644 ffmpeg-fas/test/generate_seek_table.c create mode 100644 ffmpeg-fas/test/movie_info.c create mode 100755 ffmpeg-fas/test/run_test.py create mode 100644 ffmpeg-fas/test/seek_test.c create mode 100644 ffmpeg-fas/test/show_seek_table.c create mode 100644 ffmpeg-fas/test/test_support.h create mode 100644 ffmpeg/.config create mode 100644 ffmpeg/.version create mode 100644 ffmpeg/COPYING.GPLv2 create mode 100644 ffmpeg/COPYING.GPLv3 create mode 100644 ffmpeg/COPYING.LGPLv2.1 create mode 100644 ffmpeg/COPYING.LGPLv3 create mode 100644 ffmpeg/CREDITS create mode 100644 ffmpeg/Changelog create mode 100644 ffmpeg/INSTALL create mode 100644 ffmpeg/LICENSE create mode 100644 ffmpeg/MAINTAINERS create mode 100644 ffmpeg/Makefile create mode 100644 ffmpeg/README create mode 100644 ffmpeg/RELEASE create mode 100644 ffmpeg/arch.mak create mode 100644 ffmpeg/cmdutils.c create mode 100644 ffmpeg/cmdutils.h create mode 100644 ffmpeg/cmdutils_common_opts.h create mode 100644 ffmpeg/common.mak create mode 100644 ffmpeg/compat/avisynth/avisynth_c.h create mode 100644 ffmpeg/compat/avisynth/avxsynth_c.h create mode 100644 ffmpeg/compat/avisynth/windowsPorts/basicDataTypeConversions.h create mode 100644 ffmpeg/compat/avisynth/windowsPorts/windows2linux.h create mode 100644 ffmpeg/compat/getopt.c create mode 100644 ffmpeg/compat/msvcrt/snprintf.c create mode 100644 ffmpeg/compat/msvcrt/snprintf.h create mode 100755 ffmpeg/compat/plan9/head create mode 100644 ffmpeg/compat/plan9/main.c create mode 100755 ffmpeg/compat/plan9/printf create mode 100644 ffmpeg/compat/strtod.c create mode 100644 ffmpeg/compat/tms470/math.h create mode 100644 ffmpeg/compat/va_copy.h create mode 100644 ffmpeg/config.asm create mode 100644 ffmpeg/config.fate create mode 100644 ffmpeg/config.h create mode 100644 ffmpeg/config.log create mode 100644 ffmpeg/config.mak create mode 100755 ffmpeg/configure create mode 100644 ffmpeg/description-pak create mode 100644 ffmpeg/doc/APIchanges create mode 100644 ffmpeg/doc/Doxyfile create mode 100644 ffmpeg/doc/Makefile create mode 100644 ffmpeg/doc/RELEASE_NOTES create mode 100644 ffmpeg/doc/authors.texi create mode 100644 ffmpeg/doc/avtools-common-opts.texi create mode 100644 ffmpeg/doc/avutil.txt create mode 100644 ffmpeg/doc/bitstream_filters.texi create mode 100644 ffmpeg/doc/build_system.txt create mode 100644 ffmpeg/doc/decoders.texi create mode 100644 ffmpeg/doc/default.css create mode 100644 ffmpeg/doc/demuxers.texi create mode 100644 ffmpeg/doc/developer.texi create mode 100755 ffmpeg/doc/doxy-wrapper.sh create mode 100644 ffmpeg/doc/doxy/doxy_stylesheet.css create mode 100644 ffmpeg/doc/doxy/footer.html create mode 100644 ffmpeg/doc/doxy/header.html create mode 100644 ffmpeg/doc/encoders.texi create mode 100644 ffmpeg/doc/errno.txt create mode 100644 ffmpeg/doc/eval.texi create mode 100644 ffmpeg/doc/examples/Makefile create mode 100644 ffmpeg/doc/examples/README create mode 100644 ffmpeg/doc/examples/decoding_encoding.c create mode 100644 ffmpeg/doc/examples/demuxing.c create mode 100644 ffmpeg/doc/examples/filtering_audio.c create mode 100644 ffmpeg/doc/examples/filtering_video.c create mode 100644 ffmpeg/doc/examples/metadata.c create mode 100644 ffmpeg/doc/examples/muxing.c create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libavcodec.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libavdevice.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libavfilter.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libavformat.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libavutil.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libpostproc.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libswresample.pc create mode 100644 ffmpeg/doc/examples/pc-uninstalled/libswscale.pc create mode 100644 ffmpeg/doc/examples/resampling_audio.c create mode 100644 ffmpeg/doc/examples/scaling_video.c create mode 100644 ffmpeg/doc/faq.texi create mode 100644 ffmpeg/doc/fate.texi create mode 100644 ffmpeg/doc/fate_config.sh.template create mode 100644 ffmpeg/doc/ffmpeg-bitstream-filters.texi create mode 100644 ffmpeg/doc/ffmpeg-codecs.texi create mode 100644 ffmpeg/doc/ffmpeg-devices.texi create mode 100644 ffmpeg/doc/ffmpeg-filters.texi create mode 100644 ffmpeg/doc/ffmpeg-formats.texi create mode 100644 ffmpeg/doc/ffmpeg-protocols.texi create mode 100644 ffmpeg/doc/ffmpeg-resampler.texi create mode 100644 ffmpeg/doc/ffmpeg-scaler.texi create mode 100644 ffmpeg/doc/ffmpeg-utils.texi create mode 100644 ffmpeg/doc/ffmpeg.texi create mode 100644 ffmpeg/doc/ffmpeg.txt create mode 100644 ffmpeg/doc/ffplay.texi create mode 100644 ffmpeg/doc/ffprobe.texi create mode 100644 ffmpeg/doc/ffprobe.xsd create mode 100644 ffmpeg/doc/ffserver.conf create mode 100644 ffmpeg/doc/ffserver.texi create mode 100644 ffmpeg/doc/filter_design.txt create mode 100644 ffmpeg/doc/filters.texi create mode 100644 ffmpeg/doc/general.texi create mode 100644 ffmpeg/doc/git-howto.texi create mode 100644 ffmpeg/doc/git-howto.txt create mode 100644 ffmpeg/doc/indevs.texi create mode 100644 ffmpeg/doc/issue_tracker.txt create mode 100644 ffmpeg/doc/libavcodec.texi create mode 100644 ffmpeg/doc/libavdevice.texi create mode 100644 ffmpeg/doc/libavfilter.texi create mode 100644 ffmpeg/doc/libavformat.texi create mode 100644 ffmpeg/doc/libavutil.texi create mode 100644 ffmpeg/doc/libswresample.texi create mode 100644 ffmpeg/doc/libswscale.texi create mode 100644 ffmpeg/doc/metadata.texi create mode 100644 ffmpeg/doc/mips.txt create mode 100644 ffmpeg/doc/multithreading.txt create mode 100644 ffmpeg/doc/muxers.texi create mode 100644 ffmpeg/doc/nut.texi create mode 100644 ffmpeg/doc/optimization.txt create mode 100644 ffmpeg/doc/outdevs.texi create mode 100644 ffmpeg/doc/platform.texi create mode 100644 ffmpeg/doc/print_options.c create mode 100644 ffmpeg/doc/protocols.texi create mode 100644 ffmpeg/doc/rate_distortion.txt create mode 100644 ffmpeg/doc/snow.txt create mode 100644 ffmpeg/doc/soc.txt create mode 100644 ffmpeg/doc/swresample.txt create mode 100644 ffmpeg/doc/swscale.txt create mode 100644 ffmpeg/doc/syntax.texi create mode 100644 ffmpeg/doc/t2h.init create mode 100644 ffmpeg/doc/tablegen.txt create mode 100755 ffmpeg/doc/texi2pod.pl create mode 100644 ffmpeg/doc/viterbi.txt create mode 100644 ffmpeg/ffmpeg.c create mode 100644 ffmpeg/ffmpeg.h create mode 100644 ffmpeg/ffmpeg_filter.c create mode 100644 ffmpeg/ffmpeg_opt.c create mode 100644 ffmpeg/ffplay.c create mode 100644 ffmpeg/ffprobe.c create mode 100644 ffmpeg/ffserver.c create mode 100644 ffmpeg/libavcodec/012v.c create mode 100644 ffmpeg/libavcodec/4xm.c create mode 100644 ffmpeg/libavcodec/8bps.c create mode 100644 ffmpeg/libavcodec/8svx.c create mode 100644 ffmpeg/libavcodec/Makefile create mode 100644 ffmpeg/libavcodec/a64colors.h create mode 100644 ffmpeg/libavcodec/a64multienc.c create mode 100644 ffmpeg/libavcodec/a64tables.h create mode 100644 ffmpeg/libavcodec/aac.h create mode 100644 ffmpeg/libavcodec/aac_ac3_parser.c create mode 100644 ffmpeg/libavcodec/aac_ac3_parser.h create mode 100644 ffmpeg/libavcodec/aac_adtstoasc_bsf.c create mode 100644 ffmpeg/libavcodec/aac_parser.c create mode 100644 ffmpeg/libavcodec/aac_tablegen.c create mode 100644 ffmpeg/libavcodec/aac_tablegen.h create mode 100644 ffmpeg/libavcodec/aac_tablegen_decl.h create mode 100644 ffmpeg/libavcodec/aacadtsdec.c create mode 100644 ffmpeg/libavcodec/aacadtsdec.h create mode 100644 ffmpeg/libavcodec/aaccoder.c create mode 100644 ffmpeg/libavcodec/aacdec.c create mode 100644 ffmpeg/libavcodec/aacdectab.h create mode 100644 ffmpeg/libavcodec/aacenc.c create mode 100644 ffmpeg/libavcodec/aacenc.h create mode 100644 ffmpeg/libavcodec/aacps.c create mode 100644 ffmpeg/libavcodec/aacps.h create mode 100644 ffmpeg/libavcodec/aacps_tablegen.c create mode 100644 ffmpeg/libavcodec/aacps_tablegen.h create mode 100644 ffmpeg/libavcodec/aacpsdata.c create mode 100644 ffmpeg/libavcodec/aacpsdsp.c create mode 100644 ffmpeg/libavcodec/aacpsdsp.h create mode 100644 ffmpeg/libavcodec/aacpsy.c create mode 100644 ffmpeg/libavcodec/aacpsy.h create mode 100644 ffmpeg/libavcodec/aacsbr.c create mode 100644 ffmpeg/libavcodec/aacsbr.h create mode 100644 ffmpeg/libavcodec/aacsbrdata.h create mode 100644 ffmpeg/libavcodec/aactab.c create mode 100644 ffmpeg/libavcodec/aactab.h create mode 100644 ffmpeg/libavcodec/aandcttab.c create mode 100644 ffmpeg/libavcodec/aandcttab.h create mode 100644 ffmpeg/libavcodec/aasc.c create mode 100644 ffmpeg/libavcodec/ac3.c create mode 100644 ffmpeg/libavcodec/ac3.h create mode 100644 ffmpeg/libavcodec/ac3_parser.c create mode 100644 ffmpeg/libavcodec/ac3_parser.h create mode 100644 ffmpeg/libavcodec/ac3dec.c create mode 100644 ffmpeg/libavcodec/ac3dec.h create mode 100644 ffmpeg/libavcodec/ac3dec_data.c create mode 100644 ffmpeg/libavcodec/ac3dec_data.h create mode 100644 ffmpeg/libavcodec/ac3dsp.c create mode 100644 ffmpeg/libavcodec/ac3dsp.h create mode 100644 ffmpeg/libavcodec/ac3enc.c create mode 100644 ffmpeg/libavcodec/ac3enc.h create mode 100644 ffmpeg/libavcodec/ac3enc_fixed.c create mode 100644 ffmpeg/libavcodec/ac3enc_float.c create mode 100644 ffmpeg/libavcodec/ac3enc_opts_template.c create mode 100644 ffmpeg/libavcodec/ac3enc_template.c create mode 100644 ffmpeg/libavcodec/ac3tab.c create mode 100644 ffmpeg/libavcodec/ac3tab.h create mode 100644 ffmpeg/libavcodec/acelp_filters.c create mode 100644 ffmpeg/libavcodec/acelp_filters.h create mode 100644 ffmpeg/libavcodec/acelp_pitch_delay.c create mode 100644 ffmpeg/libavcodec/acelp_pitch_delay.h create mode 100644 ffmpeg/libavcodec/acelp_vectors.c create mode 100644 ffmpeg/libavcodec/acelp_vectors.h create mode 100644 ffmpeg/libavcodec/adpcm.c create mode 100644 ffmpeg/libavcodec/adpcm.h create mode 100644 ffmpeg/libavcodec/adpcm_data.c create mode 100644 ffmpeg/libavcodec/adpcm_data.h create mode 100644 ffmpeg/libavcodec/adpcmenc.c create mode 100644 ffmpeg/libavcodec/adx.c create mode 100644 ffmpeg/libavcodec/adx.h create mode 100644 ffmpeg/libavcodec/adx_parser.c create mode 100644 ffmpeg/libavcodec/adxdec.c create mode 100644 ffmpeg/libavcodec/adxenc.c create mode 100644 ffmpeg/libavcodec/alac.c create mode 100644 ffmpeg/libavcodec/alac_data.c create mode 100644 ffmpeg/libavcodec/alac_data.h create mode 100644 ffmpeg/libavcodec/alacenc.c create mode 100644 ffmpeg/libavcodec/allcodecs.c create mode 100644 ffmpeg/libavcodec/alpha/Makefile create mode 100644 ffmpeg/libavcodec/alpha/asm.h create mode 100644 ffmpeg/libavcodec/alpha/dsputil_alpha.c create mode 100644 ffmpeg/libavcodec/alpha/dsputil_alpha.h create mode 100644 ffmpeg/libavcodec/alpha/dsputil_alpha_asm.S create mode 100644 ffmpeg/libavcodec/alpha/hpeldsp_alpha.c create mode 100644 ffmpeg/libavcodec/alpha/hpeldsp_alpha.h create mode 100644 ffmpeg/libavcodec/alpha/hpeldsp_alpha_asm.S create mode 100644 ffmpeg/libavcodec/alpha/motion_est_alpha.c create mode 100644 ffmpeg/libavcodec/alpha/motion_est_mvi_asm.S create mode 100644 ffmpeg/libavcodec/alpha/mpegvideo_alpha.c create mode 100644 ffmpeg/libavcodec/alpha/regdef.h create mode 100644 ffmpeg/libavcodec/alpha/simple_idct_alpha.c create mode 100644 ffmpeg/libavcodec/alsdec.c create mode 100644 ffmpeg/libavcodec/amr.h create mode 100644 ffmpeg/libavcodec/amrnbdata.h create mode 100644 ffmpeg/libavcodec/amrnbdec.c create mode 100644 ffmpeg/libavcodec/amrwbdata.h create mode 100644 ffmpeg/libavcodec/amrwbdec.c create mode 100644 ffmpeg/libavcodec/anm.c create mode 100644 ffmpeg/libavcodec/ansi.c create mode 100644 ffmpeg/libavcodec/apedec.c create mode 100644 ffmpeg/libavcodec/arm/Makefile create mode 100644 ffmpeg/libavcodec/arm/aac.h create mode 100644 ffmpeg/libavcodec/arm/aacpsdsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/aacpsdsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/ac3dsp_arm.S create mode 100644 ffmpeg/libavcodec/arm/ac3dsp_armv6.S create mode 100644 ffmpeg/libavcodec/arm/ac3dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/ac3dsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/asm-offsets.h create mode 100644 ffmpeg/libavcodec/arm/dca.h create mode 100644 ffmpeg/libavcodec/arm/dcadsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/dcadsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/dsputil_arm.S create mode 100644 ffmpeg/libavcodec/arm/dsputil_arm.h create mode 100644 ffmpeg/libavcodec/arm/dsputil_armv6.S create mode 100644 ffmpeg/libavcodec/arm/dsputil_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/dsputil_init_armv5te.c create mode 100644 ffmpeg/libavcodec/arm/dsputil_init_armv6.c create mode 100644 ffmpeg/libavcodec/arm/dsputil_init_neon.c create mode 100644 ffmpeg/libavcodec/arm/dsputil_neon.S create mode 100644 ffmpeg/libavcodec/arm/fft_fixed_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/fft_fixed_neon.S create mode 100644 ffmpeg/libavcodec/arm/fft_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/fft_neon.S create mode 100644 ffmpeg/libavcodec/arm/flacdsp_arm.S create mode 100644 ffmpeg/libavcodec/arm/flacdsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/fmtconvert_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/fmtconvert_neon.S create mode 100644 ffmpeg/libavcodec/arm/fmtconvert_vfp.S create mode 100644 ffmpeg/libavcodec/arm/h264chroma_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/h264cmc_neon.S create mode 100644 ffmpeg/libavcodec/arm/h264dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/h264dsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/h264idct_neon.S create mode 100644 ffmpeg/libavcodec/arm/h264pred_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/h264pred_neon.S create mode 100644 ffmpeg/libavcodec/arm/h264qpel_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/h264qpel_neon.S create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_arm.S create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_arm.h create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_armv6.S create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_init_armv6.c create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_init_neon.c create mode 100644 ffmpeg/libavcodec/arm/hpeldsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/int_neon.S create mode 100644 ffmpeg/libavcodec/arm/jrevdct_arm.S create mode 100644 ffmpeg/libavcodec/arm/mathops.h create mode 100644 ffmpeg/libavcodec/arm/mdct_fixed_neon.S create mode 100644 ffmpeg/libavcodec/arm/mdct_neon.S create mode 100644 ffmpeg/libavcodec/arm/mpegaudiodsp_fixed_armv6.S create mode 100644 ffmpeg/libavcodec/arm/mpegaudiodsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/mpegvideo_arm.c create mode 100644 ffmpeg/libavcodec/arm/mpegvideo_arm.h create mode 100644 ffmpeg/libavcodec/arm/mpegvideo_armv5te.c create mode 100644 ffmpeg/libavcodec/arm/mpegvideo_armv5te_s.S create mode 100644 ffmpeg/libavcodec/arm/mpegvideo_neon.S create mode 100644 ffmpeg/libavcodec/arm/neon.S create mode 100644 ffmpeg/libavcodec/arm/rdft_neon.S create mode 100644 ffmpeg/libavcodec/arm/rv34dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/rv34dsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/rv40dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/rv40dsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/sbrdsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/sbrdsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/simple_idct_arm.S create mode 100644 ffmpeg/libavcodec/arm/simple_idct_armv5te.S create mode 100644 ffmpeg/libavcodec/arm/simple_idct_armv6.S create mode 100644 ffmpeg/libavcodec/arm/simple_idct_neon.S create mode 100644 ffmpeg/libavcodec/arm/synth_filter_neon.S create mode 100644 ffmpeg/libavcodec/arm/videodsp_arm.h create mode 100644 ffmpeg/libavcodec/arm/videodsp_armv5te.S create mode 100644 ffmpeg/libavcodec/arm/videodsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/videodsp_init_armv5te.c create mode 100644 ffmpeg/libavcodec/arm/vorbisdsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/vorbisdsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/vp3dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/vp3dsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/vp56_arith.h create mode 100644 ffmpeg/libavcodec/arm/vp56dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/vp56dsp_neon.S create mode 100644 ffmpeg/libavcodec/arm/vp8.h create mode 100644 ffmpeg/libavcodec/arm/vp8_armv6.S create mode 100644 ffmpeg/libavcodec/arm/vp8dsp.h create mode 100644 ffmpeg/libavcodec/arm/vp8dsp_armv6.S create mode 100644 ffmpeg/libavcodec/arm/vp8dsp_init_arm.c create mode 100644 ffmpeg/libavcodec/arm/vp8dsp_init_armv6.c create mode 100644 ffmpeg/libavcodec/arm/vp8dsp_init_neon.c create mode 100644 ffmpeg/libavcodec/arm/vp8dsp_neon.S create mode 100644 ffmpeg/libavcodec/ass.c create mode 100644 ffmpeg/libavcodec/ass.h create mode 100644 ffmpeg/libavcodec/ass_split.c create mode 100644 ffmpeg/libavcodec/ass_split.h create mode 100644 ffmpeg/libavcodec/assdec.c create mode 100644 ffmpeg/libavcodec/assenc.c create mode 100644 ffmpeg/libavcodec/asv.c create mode 100644 ffmpeg/libavcodec/asv.h create mode 100644 ffmpeg/libavcodec/asvdec.c create mode 100644 ffmpeg/libavcodec/asvenc.c create mode 100644 ffmpeg/libavcodec/atrac.c create mode 100644 ffmpeg/libavcodec/atrac.h create mode 100644 ffmpeg/libavcodec/atrac1.c create mode 100644 ffmpeg/libavcodec/atrac1data.h create mode 100644 ffmpeg/libavcodec/atrac3.c create mode 100644 ffmpeg/libavcodec/atrac3data.h create mode 100644 ffmpeg/libavcodec/audio_frame_queue.c create mode 100644 ffmpeg/libavcodec/audio_frame_queue.h create mode 100644 ffmpeg/libavcodec/audioconvert.c create mode 100644 ffmpeg/libavcodec/audioconvert.h create mode 100644 ffmpeg/libavcodec/aura.c create mode 100644 ffmpeg/libavcodec/avcodec.h create mode 100644 ffmpeg/libavcodec/avfft.c create mode 100644 ffmpeg/libavcodec/avfft.h create mode 100644 ffmpeg/libavcodec/avpacket.c create mode 100644 ffmpeg/libavcodec/avpicture.c create mode 100644 ffmpeg/libavcodec/avr32/mathops.h create mode 100644 ffmpeg/libavcodec/avrndec.c create mode 100644 ffmpeg/libavcodec/avs.c create mode 100644 ffmpeg/libavcodec/avuidec.c create mode 100644 ffmpeg/libavcodec/avuienc.c create mode 100644 ffmpeg/libavcodec/bethsoftvideo.c create mode 100644 ffmpeg/libavcodec/bethsoftvideo.h create mode 100644 ffmpeg/libavcodec/bfi.c create mode 100644 ffmpeg/libavcodec/bfin/Makefile create mode 100644 ffmpeg/libavcodec/bfin/config_bfin.h create mode 100644 ffmpeg/libavcodec/bfin/dsputil_bfin.c create mode 100644 ffmpeg/libavcodec/bfin/dsputil_bfin.h create mode 100644 ffmpeg/libavcodec/bfin/fdct_bfin.S create mode 100644 ffmpeg/libavcodec/bfin/hpel_pixels_bfin.S create mode 100644 ffmpeg/libavcodec/bfin/hpeldsp_bfin.c create mode 100644 ffmpeg/libavcodec/bfin/hpeldsp_bfin.h create mode 100644 ffmpeg/libavcodec/bfin/idct_bfin.S create mode 100644 ffmpeg/libavcodec/bfin/mathops.h create mode 100644 ffmpeg/libavcodec/bfin/mpegvideo_bfin.c create mode 100644 ffmpeg/libavcodec/bfin/pixels_bfin.S create mode 100644 ffmpeg/libavcodec/bfin/vp3_bfin.c create mode 100644 ffmpeg/libavcodec/bfin/vp3_bfin.h create mode 100644 ffmpeg/libavcodec/bfin/vp3_idct_bfin.S create mode 100644 ffmpeg/libavcodec/bgmc.c create mode 100644 ffmpeg/libavcodec/bgmc.h create mode 100644 ffmpeg/libavcodec/bink.c create mode 100644 ffmpeg/libavcodec/binkaudio.c create mode 100644 ffmpeg/libavcodec/binkdata.h create mode 100644 ffmpeg/libavcodec/binkdsp.c create mode 100644 ffmpeg/libavcodec/binkdsp.h create mode 100644 ffmpeg/libavcodec/bintext.c create mode 100644 ffmpeg/libavcodec/bintext.h create mode 100644 ffmpeg/libavcodec/bit_depth_template.c create mode 100644 ffmpeg/libavcodec/bitstream.c create mode 100644 ffmpeg/libavcodec/bitstream_filter.c create mode 100644 ffmpeg/libavcodec/bmp.c create mode 100644 ffmpeg/libavcodec/bmp.h create mode 100644 ffmpeg/libavcodec/bmp_parser.c create mode 100644 ffmpeg/libavcodec/bmpenc.c create mode 100644 ffmpeg/libavcodec/bmv.c create mode 100644 ffmpeg/libavcodec/brender_pix.c create mode 100644 ffmpeg/libavcodec/bytestream.h create mode 100644 ffmpeg/libavcodec/c93.c create mode 100644 ffmpeg/libavcodec/cabac.c create mode 100644 ffmpeg/libavcodec/cabac.h create mode 100644 ffmpeg/libavcodec/cabac_functions.h create mode 100644 ffmpeg/libavcodec/cavs.c create mode 100644 ffmpeg/libavcodec/cavs.h create mode 100644 ffmpeg/libavcodec/cavs_parser.c create mode 100644 ffmpeg/libavcodec/cavsdata.c create mode 100644 ffmpeg/libavcodec/cavsdata.h create mode 100644 ffmpeg/libavcodec/cavsdec.c create mode 100644 ffmpeg/libavcodec/cavsdsp.c create mode 100644 ffmpeg/libavcodec/cavsdsp.h create mode 100644 ffmpeg/libavcodec/cbrt_tablegen.c create mode 100644 ffmpeg/libavcodec/cbrt_tablegen.h create mode 100644 ffmpeg/libavcodec/cdgraphics.c create mode 100644 ffmpeg/libavcodec/cdxl.c create mode 100644 ffmpeg/libavcodec/celp_filters.c create mode 100644 ffmpeg/libavcodec/celp_filters.h create mode 100644 ffmpeg/libavcodec/celp_math.c create mode 100644 ffmpeg/libavcodec/celp_math.h create mode 100644 ffmpeg/libavcodec/cga_data.c create mode 100644 ffmpeg/libavcodec/cga_data.h create mode 100644 ffmpeg/libavcodec/chomp_bsf.c create mode 100644 ffmpeg/libavcodec/cinepak.c create mode 100644 ffmpeg/libavcodec/cljr.c create mode 100644 ffmpeg/libavcodec/cllc.c create mode 100644 ffmpeg/libavcodec/cngdec.c create mode 100644 ffmpeg/libavcodec/cngenc.c create mode 100644 ffmpeg/libavcodec/codec_desc.c create mode 100644 ffmpeg/libavcodec/cook.c create mode 100644 ffmpeg/libavcodec/cook_parser.c create mode 100644 ffmpeg/libavcodec/cookdata.h create mode 100644 ffmpeg/libavcodec/copy_block.h create mode 100644 ffmpeg/libavcodec/cos_tablegen.c create mode 100644 ffmpeg/libavcodec/cpia.c create mode 100644 ffmpeg/libavcodec/crystalhd.c create mode 100644 ffmpeg/libavcodec/cscd.c create mode 100644 ffmpeg/libavcodec/cyuv.c create mode 100644 ffmpeg/libavcodec/dca.c create mode 100644 ffmpeg/libavcodec/dca.h create mode 100644 ffmpeg/libavcodec/dca_parser.c create mode 100644 ffmpeg/libavcodec/dca_parser.h create mode 100644 ffmpeg/libavcodec/dcadata.h create mode 100644 ffmpeg/libavcodec/dcadec.c create mode 100644 ffmpeg/libavcodec/dcadsp.c create mode 100644 ffmpeg/libavcodec/dcadsp.h create mode 100644 ffmpeg/libavcodec/dcaenc.c create mode 100644 ffmpeg/libavcodec/dcaenc.h create mode 100644 ffmpeg/libavcodec/dcahuff.h create mode 100644 ffmpeg/libavcodec/dct-test.c create mode 100644 ffmpeg/libavcodec/dct.c create mode 100644 ffmpeg/libavcodec/dct.h create mode 100644 ffmpeg/libavcodec/dct32.c create mode 100644 ffmpeg/libavcodec/dct32.h create mode 100644 ffmpeg/libavcodec/dct32_fixed.c create mode 100644 ffmpeg/libavcodec/dct32_float.c create mode 100644 ffmpeg/libavcodec/dctref.c create mode 100644 ffmpeg/libavcodec/dctref.h create mode 100644 ffmpeg/libavcodec/dfa.c create mode 100644 ffmpeg/libavcodec/dirac.c create mode 100644 ffmpeg/libavcodec/dirac.h create mode 100644 ffmpeg/libavcodec/dirac_arith.c create mode 100644 ffmpeg/libavcodec/dirac_arith.h create mode 100644 ffmpeg/libavcodec/dirac_dwt.c create mode 100644 ffmpeg/libavcodec/dirac_dwt.h create mode 100644 ffmpeg/libavcodec/dirac_parser.c create mode 100644 ffmpeg/libavcodec/diracdec.c create mode 100644 ffmpeg/libavcodec/diracdsp.c create mode 100644 ffmpeg/libavcodec/diracdsp.h create mode 100644 ffmpeg/libavcodec/dnxhd_parser.c create mode 100644 ffmpeg/libavcodec/dnxhddata.c create mode 100644 ffmpeg/libavcodec/dnxhddata.h create mode 100644 ffmpeg/libavcodec/dnxhddec.c create mode 100644 ffmpeg/libavcodec/dnxhdenc.c create mode 100644 ffmpeg/libavcodec/dnxhdenc.h create mode 100644 ffmpeg/libavcodec/dpcm.c create mode 100644 ffmpeg/libavcodec/dpx.c create mode 100644 ffmpeg/libavcodec/dpxenc.c create mode 100644 ffmpeg/libavcodec/dsicinav.c create mode 100644 ffmpeg/libavcodec/dsputil.c create mode 100644 ffmpeg/libavcodec/dsputil.h create mode 100644 ffmpeg/libavcodec/dsputil_template.c create mode 100644 ffmpeg/libavcodec/dump_extradata_bsf.c create mode 100644 ffmpeg/libavcodec/dv.c create mode 100644 ffmpeg/libavcodec/dv_profile.c create mode 100644 ffmpeg/libavcodec/dv_profile.h create mode 100644 ffmpeg/libavcodec/dv_tablegen.c create mode 100644 ffmpeg/libavcodec/dv_tablegen.h create mode 100644 ffmpeg/libavcodec/dv_vlc_data.h create mode 100644 ffmpeg/libavcodec/dvbsub.c create mode 100644 ffmpeg/libavcodec/dvbsub_parser.c create mode 100644 ffmpeg/libavcodec/dvbsubdec.c create mode 100644 ffmpeg/libavcodec/dvd_nav_parser.c create mode 100644 ffmpeg/libavcodec/dvdata.c create mode 100644 ffmpeg/libavcodec/dvdata.h create mode 100644 ffmpeg/libavcodec/dvdec.c create mode 100644 ffmpeg/libavcodec/dvdsub_parser.c create mode 100644 ffmpeg/libavcodec/dvdsubdec.c create mode 100644 ffmpeg/libavcodec/dvdsubenc.c create mode 100644 ffmpeg/libavcodec/dxa.c create mode 100644 ffmpeg/libavcodec/dxtory.c create mode 100644 ffmpeg/libavcodec/dxva2.c create mode 100644 ffmpeg/libavcodec/dxva2.h create mode 100644 ffmpeg/libavcodec/dxva2_h264.c create mode 100644 ffmpeg/libavcodec/dxva2_internal.h create mode 100644 ffmpeg/libavcodec/dxva2_mpeg2.c create mode 100644 ffmpeg/libavcodec/dxva2_vc1.c create mode 100644 ffmpeg/libavcodec/eac3_data.c create mode 100644 ffmpeg/libavcodec/eac3_data.h create mode 100644 ffmpeg/libavcodec/eac3dec.c create mode 100644 ffmpeg/libavcodec/eac3enc.c create mode 100644 ffmpeg/libavcodec/eac3enc.h create mode 100644 ffmpeg/libavcodec/eacmv.c create mode 100644 ffmpeg/libavcodec/eaidct.c create mode 100644 ffmpeg/libavcodec/eaidct.h create mode 100644 ffmpeg/libavcodec/eamad.c create mode 100644 ffmpeg/libavcodec/eatgq.c create mode 100644 ffmpeg/libavcodec/eatgv.c create mode 100644 ffmpeg/libavcodec/eatqi.c create mode 100644 ffmpeg/libavcodec/elbg.c create mode 100644 ffmpeg/libavcodec/elbg.h create mode 100644 ffmpeg/libavcodec/error_resilience.c create mode 100644 ffmpeg/libavcodec/error_resilience.h create mode 100644 ffmpeg/libavcodec/escape124.c create mode 100644 ffmpeg/libavcodec/escape130.c create mode 100644 ffmpeg/libavcodec/evrcdata.h create mode 100644 ffmpeg/libavcodec/evrcdec.c create mode 100644 ffmpeg/libavcodec/exr.c create mode 100644 ffmpeg/libavcodec/faandct.c create mode 100644 ffmpeg/libavcodec/faandct.h create mode 100644 ffmpeg/libavcodec/faanidct.c create mode 100644 ffmpeg/libavcodec/faanidct.h create mode 100644 ffmpeg/libavcodec/faxcompr.c create mode 100644 ffmpeg/libavcodec/faxcompr.h create mode 100644 ffmpeg/libavcodec/fft-fixed-test.c create mode 100644 ffmpeg/libavcodec/fft-internal.h create mode 100644 ffmpeg/libavcodec/fft-test.c create mode 100644 ffmpeg/libavcodec/fft.c create mode 100644 ffmpeg/libavcodec/fft.h create mode 100644 ffmpeg/libavcodec/fft_fixed.c create mode 100644 ffmpeg/libavcodec/fft_float.c create mode 100644 ffmpeg/libavcodec/ffv1.c create mode 100644 ffmpeg/libavcodec/ffv1.h create mode 100644 ffmpeg/libavcodec/ffv1dec.c create mode 100644 ffmpeg/libavcodec/ffv1enc.c create mode 100644 ffmpeg/libavcodec/ffwavesynth.c create mode 100644 ffmpeg/libavcodec/flac.c create mode 100644 ffmpeg/libavcodec/flac.h create mode 100644 ffmpeg/libavcodec/flac_parser.c create mode 100644 ffmpeg/libavcodec/flacdata.c create mode 100644 ffmpeg/libavcodec/flacdata.h create mode 100644 ffmpeg/libavcodec/flacdec.c create mode 100644 ffmpeg/libavcodec/flacdsp.c create mode 100644 ffmpeg/libavcodec/flacdsp.h create mode 100644 ffmpeg/libavcodec/flacdsp_lpc_template.c create mode 100644 ffmpeg/libavcodec/flacdsp_template.c create mode 100644 ffmpeg/libavcodec/flacenc.c create mode 100644 ffmpeg/libavcodec/flashsv.c create mode 100644 ffmpeg/libavcodec/flashsv2enc.c create mode 100644 ffmpeg/libavcodec/flashsvenc.c create mode 100644 ffmpeg/libavcodec/flicvideo.c create mode 100644 ffmpeg/libavcodec/flv.h create mode 100644 ffmpeg/libavcodec/flvdec.c create mode 100644 ffmpeg/libavcodec/flvenc.c create mode 100644 ffmpeg/libavcodec/fmtconvert.c create mode 100644 ffmpeg/libavcodec/fmtconvert.h create mode 100644 ffmpeg/libavcodec/frame_thread_encoder.c create mode 100644 ffmpeg/libavcodec/frame_thread_encoder.h create mode 100644 ffmpeg/libavcodec/fraps.c create mode 100644 ffmpeg/libavcodec/frwu.c create mode 100644 ffmpeg/libavcodec/g722.c create mode 100644 ffmpeg/libavcodec/g722.h create mode 100644 ffmpeg/libavcodec/g722dec.c create mode 100644 ffmpeg/libavcodec/g722enc.c create mode 100644 ffmpeg/libavcodec/g723_1.c create mode 100644 ffmpeg/libavcodec/g723_1_data.h create mode 100644 ffmpeg/libavcodec/g726.c create mode 100644 ffmpeg/libavcodec/g729.h create mode 100644 ffmpeg/libavcodec/g729data.h create mode 100644 ffmpeg/libavcodec/g729dec.c create mode 100644 ffmpeg/libavcodec/g729postfilter.c create mode 100644 ffmpeg/libavcodec/g729postfilter.h create mode 100644 ffmpeg/libavcodec/get_bits.h create mode 100644 ffmpeg/libavcodec/gif.c create mode 100644 ffmpeg/libavcodec/gif.h create mode 100644 ffmpeg/libavcodec/gifdec.c create mode 100644 ffmpeg/libavcodec/golomb-test.c create mode 100644 ffmpeg/libavcodec/golomb.c create mode 100644 ffmpeg/libavcodec/golomb.h create mode 100644 ffmpeg/libavcodec/gsm.h create mode 100644 ffmpeg/libavcodec/gsm_parser.c create mode 100644 ffmpeg/libavcodec/gsmdec.c create mode 100644 ffmpeg/libavcodec/gsmdec_data.c create mode 100644 ffmpeg/libavcodec/gsmdec_data.h create mode 100644 ffmpeg/libavcodec/gsmdec_template.c create mode 100644 ffmpeg/libavcodec/h261.c create mode 100644 ffmpeg/libavcodec/h261.h create mode 100644 ffmpeg/libavcodec/h261_parser.c create mode 100644 ffmpeg/libavcodec/h261data.c create mode 100644 ffmpeg/libavcodec/h261data.h create mode 100644 ffmpeg/libavcodec/h261dec.c create mode 100644 ffmpeg/libavcodec/h261enc.c create mode 100644 ffmpeg/libavcodec/h263.c create mode 100644 ffmpeg/libavcodec/h263.h create mode 100644 ffmpeg/libavcodec/h263_parser.c create mode 100644 ffmpeg/libavcodec/h263_parser.h create mode 100644 ffmpeg/libavcodec/h263data.h create mode 100644 ffmpeg/libavcodec/h263dec.c create mode 100644 ffmpeg/libavcodec/h264.c create mode 100644 ffmpeg/libavcodec/h264.h create mode 100644 ffmpeg/libavcodec/h264_cabac.c create mode 100644 ffmpeg/libavcodec/h264_cavlc.c create mode 100644 ffmpeg/libavcodec/h264_direct.c create mode 100644 ffmpeg/libavcodec/h264_loopfilter.c create mode 100644 ffmpeg/libavcodec/h264_mb_template.c create mode 100644 ffmpeg/libavcodec/h264_mc_template.c create mode 100644 ffmpeg/libavcodec/h264_mp4toannexb_bsf.c create mode 100644 ffmpeg/libavcodec/h264_mvpred.h create mode 100644 ffmpeg/libavcodec/h264_parser.c create mode 100644 ffmpeg/libavcodec/h264_ps.c create mode 100644 ffmpeg/libavcodec/h264_refs.c create mode 100644 ffmpeg/libavcodec/h264_sei.c create mode 100644 ffmpeg/libavcodec/h264addpx_template.c create mode 100644 ffmpeg/libavcodec/h264chroma.c create mode 100644 ffmpeg/libavcodec/h264chroma.h create mode 100644 ffmpeg/libavcodec/h264chroma_template.c create mode 100644 ffmpeg/libavcodec/h264data.h create mode 100644 ffmpeg/libavcodec/h264dsp.c create mode 100644 ffmpeg/libavcodec/h264dsp.h create mode 100644 ffmpeg/libavcodec/h264dsp_template.c create mode 100644 ffmpeg/libavcodec/h264idct.c create mode 100644 ffmpeg/libavcodec/h264idct.h create mode 100644 ffmpeg/libavcodec/h264idct_template.c create mode 100644 ffmpeg/libavcodec/h264pred.c create mode 100644 ffmpeg/libavcodec/h264pred.h create mode 100644 ffmpeg/libavcodec/h264pred_template.c create mode 100644 ffmpeg/libavcodec/h264qpel.c create mode 100644 ffmpeg/libavcodec/h264qpel.h create mode 100644 ffmpeg/libavcodec/h264qpel_template.c create mode 100644 ffmpeg/libavcodec/hpel_template.c create mode 100644 ffmpeg/libavcodec/hpeldsp.c create mode 100644 ffmpeg/libavcodec/hpeldsp.h create mode 100644 ffmpeg/libavcodec/hpeldsp_template.c create mode 100644 ffmpeg/libavcodec/huffman.c create mode 100644 ffmpeg/libavcodec/huffman.h create mode 100644 ffmpeg/libavcodec/huffyuv.c create mode 100644 ffmpeg/libavcodec/huffyuv.h create mode 100644 ffmpeg/libavcodec/huffyuvdec.c create mode 100644 ffmpeg/libavcodec/huffyuvenc.c create mode 100644 ffmpeg/libavcodec/idcinvideo.c create mode 100644 ffmpeg/libavcodec/iff.c create mode 100644 ffmpeg/libavcodec/iirfilter.c create mode 100644 ffmpeg/libavcodec/iirfilter.h create mode 100644 ffmpeg/libavcodec/imc.c create mode 100644 ffmpeg/libavcodec/imcdata.h create mode 100644 ffmpeg/libavcodec/imgconvert.c create mode 100644 ffmpeg/libavcodec/imgconvert.h create mode 100644 ffmpeg/libavcodec/imx_dump_header_bsf.c create mode 100644 ffmpeg/libavcodec/indeo2.c create mode 100644 ffmpeg/libavcodec/indeo2data.h create mode 100644 ffmpeg/libavcodec/indeo3.c create mode 100644 ffmpeg/libavcodec/indeo3data.h create mode 100644 ffmpeg/libavcodec/indeo4.c create mode 100644 ffmpeg/libavcodec/indeo4data.h create mode 100644 ffmpeg/libavcodec/indeo5.c create mode 100644 ffmpeg/libavcodec/indeo5data.h create mode 100644 ffmpeg/libavcodec/intelh263dec.c create mode 100644 ffmpeg/libavcodec/internal.h create mode 100644 ffmpeg/libavcodec/interplayvideo.c create mode 100644 ffmpeg/libavcodec/intrax8.c create mode 100644 ffmpeg/libavcodec/intrax8.h create mode 100644 ffmpeg/libavcodec/intrax8dsp.c create mode 100644 ffmpeg/libavcodec/intrax8dsp.h create mode 100644 ffmpeg/libavcodec/intrax8huf.h create mode 100644 ffmpeg/libavcodec/ituh263dec.c create mode 100644 ffmpeg/libavcodec/ituh263enc.c create mode 100644 ffmpeg/libavcodec/ivi_common.c create mode 100644 ffmpeg/libavcodec/ivi_common.h create mode 100644 ffmpeg/libavcodec/ivi_dsp.c create mode 100644 ffmpeg/libavcodec/ivi_dsp.h create mode 100644 ffmpeg/libavcodec/j2k.c create mode 100644 ffmpeg/libavcodec/j2k.h create mode 100644 ffmpeg/libavcodec/j2k_dwt.c create mode 100644 ffmpeg/libavcodec/j2k_dwt.h create mode 100644 ffmpeg/libavcodec/j2kdec.c create mode 100644 ffmpeg/libavcodec/j2kenc.c create mode 100644 ffmpeg/libavcodec/jacosub.h create mode 100644 ffmpeg/libavcodec/jacosubdec.c create mode 100644 ffmpeg/libavcodec/jfdctfst.c create mode 100644 ffmpeg/libavcodec/jfdctint.c create mode 100644 ffmpeg/libavcodec/jfdctint_template.c create mode 100644 ffmpeg/libavcodec/jpegls.c create mode 100644 ffmpeg/libavcodec/jpegls.h create mode 100644 ffmpeg/libavcodec/jpeglsdec.c create mode 100644 ffmpeg/libavcodec/jpeglsdec.h create mode 100644 ffmpeg/libavcodec/jpeglsenc.c create mode 100644 ffmpeg/libavcodec/jrevdct.c create mode 100644 ffmpeg/libavcodec/jvdec.c create mode 100644 ffmpeg/libavcodec/kbdwin.c create mode 100644 ffmpeg/libavcodec/kbdwin.h create mode 100644 ffmpeg/libavcodec/kgv1dec.c create mode 100644 ffmpeg/libavcodec/kmvc.c create mode 100644 ffmpeg/libavcodec/lagarith.c create mode 100644 ffmpeg/libavcodec/lagarithrac.c create mode 100644 ffmpeg/libavcodec/lagarithrac.h create mode 100644 ffmpeg/libavcodec/latm_parser.c create mode 100644 ffmpeg/libavcodec/lcl.h create mode 100644 ffmpeg/libavcodec/lcldec.c create mode 100644 ffmpeg/libavcodec/lclenc.c create mode 100644 ffmpeg/libavcodec/libaacplus.c create mode 100644 ffmpeg/libavcodec/libavcodec.pc create mode 100644 ffmpeg/libavcodec/libavcodec.v create mode 100644 ffmpeg/libavcodec/libcelt_dec.c create mode 100644 ffmpeg/libavcodec/libfaac.c create mode 100644 ffmpeg/libavcodec/libfdk-aacenc.c create mode 100644 ffmpeg/libavcodec/libgsm.c create mode 100644 ffmpeg/libavcodec/libilbc.c create mode 100644 ffmpeg/libavcodec/libmp3lame.c create mode 100644 ffmpeg/libavcodec/libopencore-amr.c create mode 100644 ffmpeg/libavcodec/libopenjpegdec.c create mode 100644 ffmpeg/libavcodec/libopenjpegenc.c create mode 100644 ffmpeg/libavcodec/libopus.c create mode 100644 ffmpeg/libavcodec/libopus.h create mode 100644 ffmpeg/libavcodec/libopusdec.c create mode 100644 ffmpeg/libavcodec/libopusenc.c create mode 100644 ffmpeg/libavcodec/libschroedinger.c create mode 100644 ffmpeg/libavcodec/libschroedinger.h create mode 100644 ffmpeg/libavcodec/libschroedingerdec.c create mode 100644 ffmpeg/libavcodec/libschroedingerenc.c create mode 100644 ffmpeg/libavcodec/libspeexdec.c create mode 100644 ffmpeg/libavcodec/libspeexenc.c create mode 100644 ffmpeg/libavcodec/libstagefright.cpp create mode 100644 ffmpeg/libavcodec/libtheoraenc.c create mode 100644 ffmpeg/libavcodec/libtwolame.c create mode 100644 ffmpeg/libavcodec/libutvideo.h create mode 100644 ffmpeg/libavcodec/libutvideodec.cpp create mode 100644 ffmpeg/libavcodec/libutvideoenc.cpp create mode 100644 ffmpeg/libavcodec/libvo-aacenc.c create mode 100644 ffmpeg/libavcodec/libvo-amrwbenc.c create mode 100644 ffmpeg/libavcodec/libvorbisdec.c create mode 100644 ffmpeg/libavcodec/libvorbisenc.c create mode 100644 ffmpeg/libavcodec/libvpxdec.c create mode 100644 ffmpeg/libavcodec/libvpxenc.c create mode 100644 ffmpeg/libavcodec/libx264.c create mode 100644 ffmpeg/libavcodec/libxavs.c create mode 100644 ffmpeg/libavcodec/libxvid.c create mode 100644 ffmpeg/libavcodec/libxvid.h create mode 100644 ffmpeg/libavcodec/libxvid_rc.c create mode 100644 ffmpeg/libavcodec/ljpegenc.c create mode 100644 ffmpeg/libavcodec/loco.c create mode 100644 ffmpeg/libavcodec/log2_tab.c create mode 100644 ffmpeg/libavcodec/lpc.c create mode 100644 ffmpeg/libavcodec/lpc.h create mode 100644 ffmpeg/libavcodec/lsp.c create mode 100644 ffmpeg/libavcodec/lsp.h create mode 100644 ffmpeg/libavcodec/lzw.c create mode 100644 ffmpeg/libavcodec/lzw.h create mode 100644 ffmpeg/libavcodec/lzwenc.c create mode 100644 ffmpeg/libavcodec/mace.c create mode 100644 ffmpeg/libavcodec/mathops.h create mode 100644 ffmpeg/libavcodec/mathtables.c create mode 100644 ffmpeg/libavcodec/mdct.c create mode 100644 ffmpeg/libavcodec/mdct_fixed.c create mode 100644 ffmpeg/libavcodec/mdct_float.c create mode 100644 ffmpeg/libavcodec/mdec.c create mode 100644 ffmpeg/libavcodec/microdvddec.c create mode 100644 ffmpeg/libavcodec/mimic.c create mode 100644 ffmpeg/libavcodec/mips/Makefile create mode 100644 ffmpeg/libavcodec/mips/aaccoder_mips.c create mode 100644 ffmpeg/libavcodec/mips/aacdec_mips.c create mode 100644 ffmpeg/libavcodec/mips/aacdec_mips.h create mode 100644 ffmpeg/libavcodec/mips/aacpsdsp_mips.c create mode 100644 ffmpeg/libavcodec/mips/aacsbr_mips.c create mode 100644 ffmpeg/libavcodec/mips/aacsbr_mips.h create mode 100644 ffmpeg/libavcodec/mips/ac3dsp_mips.c create mode 100644 ffmpeg/libavcodec/mips/acelp_filters_mips.c create mode 100644 ffmpeg/libavcodec/mips/acelp_vectors_mips.c create mode 100644 ffmpeg/libavcodec/mips/amrwbdec_mips.c create mode 100644 ffmpeg/libavcodec/mips/amrwbdec_mips.h create mode 100644 ffmpeg/libavcodec/mips/celp_filters_mips.c create mode 100644 ffmpeg/libavcodec/mips/celp_math_mips.c create mode 100644 ffmpeg/libavcodec/mips/compute_antialias_fixed.h create mode 100644 ffmpeg/libavcodec/mips/compute_antialias_float.h create mode 100644 ffmpeg/libavcodec/mips/fft_init_table.c create mode 100644 ffmpeg/libavcodec/mips/fft_mips.c create mode 100644 ffmpeg/libavcodec/mips/fft_table.h create mode 100644 ffmpeg/libavcodec/mips/fmtconvert_mips.c create mode 100644 ffmpeg/libavcodec/mips/iirfilter_mips.c create mode 100644 ffmpeg/libavcodec/mips/lsp_mips.h create mode 100644 ffmpeg/libavcodec/mips/mathops.h create mode 100644 ffmpeg/libavcodec/mips/mpegaudiodsp_mips_fixed.c create mode 100644 ffmpeg/libavcodec/mips/mpegaudiodsp_mips_float.c create mode 100644 ffmpeg/libavcodec/mips/sbrdsp_mips.c create mode 100644 ffmpeg/libavcodec/mjpeg.c create mode 100644 ffmpeg/libavcodec/mjpeg.h create mode 100644 ffmpeg/libavcodec/mjpeg2jpeg_bsf.c create mode 100644 ffmpeg/libavcodec/mjpeg_parser.c create mode 100644 ffmpeg/libavcodec/mjpega_dump_header_bsf.c create mode 100644 ffmpeg/libavcodec/mjpegbdec.c create mode 100644 ffmpeg/libavcodec/mjpegdec.c create mode 100644 ffmpeg/libavcodec/mjpegdec.h create mode 100644 ffmpeg/libavcodec/mjpegenc.c create mode 100644 ffmpeg/libavcodec/mjpegenc.h create mode 100644 ffmpeg/libavcodec/mlp.c create mode 100644 ffmpeg/libavcodec/mlp.h create mode 100644 ffmpeg/libavcodec/mlp_parser.c create mode 100644 ffmpeg/libavcodec/mlp_parser.h create mode 100644 ffmpeg/libavcodec/mlpdec.c create mode 100644 ffmpeg/libavcodec/mlpdsp.c create mode 100644 ffmpeg/libavcodec/mlpdsp.h create mode 100644 ffmpeg/libavcodec/mmvideo.c create mode 100644 ffmpeg/libavcodec/motion-test.c create mode 100644 ffmpeg/libavcodec/motion_est.c create mode 100644 ffmpeg/libavcodec/motion_est_template.c create mode 100644 ffmpeg/libavcodec/motionpixels.c create mode 100644 ffmpeg/libavcodec/motionpixels_tablegen.c create mode 100644 ffmpeg/libavcodec/motionpixels_tablegen.h create mode 100644 ffmpeg/libavcodec/movsub_bsf.c create mode 100644 ffmpeg/libavcodec/movtextdec.c create mode 100644 ffmpeg/libavcodec/movtextenc.c create mode 100644 ffmpeg/libavcodec/mp3_header_compress_bsf.c create mode 100644 ffmpeg/libavcodec/mp3_header_decompress_bsf.c create mode 100644 ffmpeg/libavcodec/mpc.c create mode 100644 ffmpeg/libavcodec/mpc.h create mode 100644 ffmpeg/libavcodec/mpc7.c create mode 100644 ffmpeg/libavcodec/mpc7data.h create mode 100644 ffmpeg/libavcodec/mpc8.c create mode 100644 ffmpeg/libavcodec/mpc8data.h create mode 100644 ffmpeg/libavcodec/mpc8huff.h create mode 100644 ffmpeg/libavcodec/mpcdata.h create mode 100644 ffmpeg/libavcodec/mpeg12.c create mode 100644 ffmpeg/libavcodec/mpeg12.h create mode 100644 ffmpeg/libavcodec/mpeg12data.c create mode 100644 ffmpeg/libavcodec/mpeg12data.h create mode 100644 ffmpeg/libavcodec/mpeg12decdata.h create mode 100644 ffmpeg/libavcodec/mpeg12enc.c create mode 100644 ffmpeg/libavcodec/mpeg4audio.c create mode 100644 ffmpeg/libavcodec/mpeg4audio.h create mode 100644 ffmpeg/libavcodec/mpeg4data.h create mode 100644 ffmpeg/libavcodec/mpeg4video.c create mode 100644 ffmpeg/libavcodec/mpeg4video.h create mode 100644 ffmpeg/libavcodec/mpeg4video_parser.c create mode 100644 ffmpeg/libavcodec/mpeg4video_parser.h create mode 100644 ffmpeg/libavcodec/mpeg4videodec.c create mode 100644 ffmpeg/libavcodec/mpeg4videoenc.c create mode 100644 ffmpeg/libavcodec/mpegaudio.c create mode 100644 ffmpeg/libavcodec/mpegaudio.h create mode 100644 ffmpeg/libavcodec/mpegaudio_parser.c create mode 100644 ffmpeg/libavcodec/mpegaudio_tablegen.c create mode 100644 ffmpeg/libavcodec/mpegaudio_tablegen.h create mode 100644 ffmpeg/libavcodec/mpegaudiodata.c create mode 100644 ffmpeg/libavcodec/mpegaudiodata.h create mode 100644 ffmpeg/libavcodec/mpegaudiodec.c create mode 100644 ffmpeg/libavcodec/mpegaudiodec_float.c create mode 100644 ffmpeg/libavcodec/mpegaudiodecheader.c create mode 100644 ffmpeg/libavcodec/mpegaudiodecheader.h create mode 100644 ffmpeg/libavcodec/mpegaudiodectab.h create mode 100644 ffmpeg/libavcodec/mpegaudiodsp.c create mode 100644 ffmpeg/libavcodec/mpegaudiodsp.h create mode 100644 ffmpeg/libavcodec/mpegaudiodsp_data.c create mode 100644 ffmpeg/libavcodec/mpegaudiodsp_fixed.c create mode 100644 ffmpeg/libavcodec/mpegaudiodsp_float.c create mode 100644 ffmpeg/libavcodec/mpegaudiodsp_template.c create mode 100644 ffmpeg/libavcodec/mpegaudioenc.c create mode 100644 ffmpeg/libavcodec/mpegaudiotab.h create mode 100644 ffmpeg/libavcodec/mpegvideo.c create mode 100644 ffmpeg/libavcodec/mpegvideo.h create mode 100644 ffmpeg/libavcodec/mpegvideo_enc.c create mode 100644 ffmpeg/libavcodec/mpegvideo_motion.c create mode 100644 ffmpeg/libavcodec/mpegvideo_parser.c create mode 100644 ffmpeg/libavcodec/mpegvideo_xvmc.c create mode 100644 ffmpeg/libavcodec/mpl2dec.c create mode 100644 ffmpeg/libavcodec/mqc.c create mode 100644 ffmpeg/libavcodec/mqc.h create mode 100644 ffmpeg/libavcodec/mqcdec.c create mode 100644 ffmpeg/libavcodec/mqcenc.c create mode 100644 ffmpeg/libavcodec/msgsmdec.c create mode 100644 ffmpeg/libavcodec/msgsmdec.h create mode 100644 ffmpeg/libavcodec/msmpeg4.c create mode 100644 ffmpeg/libavcodec/msmpeg4.h create mode 100644 ffmpeg/libavcodec/msmpeg4data.c create mode 100644 ffmpeg/libavcodec/msmpeg4data.h create mode 100644 ffmpeg/libavcodec/msmpeg4enc.c create mode 100644 ffmpeg/libavcodec/msrle.c create mode 100644 ffmpeg/libavcodec/msrledec.c create mode 100644 ffmpeg/libavcodec/msrledec.h create mode 100644 ffmpeg/libavcodec/mss1.c create mode 100644 ffmpeg/libavcodec/mss12.c create mode 100644 ffmpeg/libavcodec/mss12.h create mode 100644 ffmpeg/libavcodec/mss2.c create mode 100644 ffmpeg/libavcodec/mss2dsp.c create mode 100644 ffmpeg/libavcodec/mss2dsp.h create mode 100644 ffmpeg/libavcodec/mss3.c create mode 100644 ffmpeg/libavcodec/mss34dsp.c create mode 100644 ffmpeg/libavcodec/mss34dsp.h create mode 100644 ffmpeg/libavcodec/mss4.c create mode 100644 ffmpeg/libavcodec/msvideo1.c create mode 100644 ffmpeg/libavcodec/msvideo1enc.c create mode 100644 ffmpeg/libavcodec/mvcdec.c create mode 100644 ffmpeg/libavcodec/mxpegdec.c create mode 100644 ffmpeg/libavcodec/nellymoser.c create mode 100644 ffmpeg/libavcodec/nellymoser.h create mode 100644 ffmpeg/libavcodec/nellymoserdec.c create mode 100644 ffmpeg/libavcodec/nellymoserenc.c create mode 100644 ffmpeg/libavcodec/noise_bsf.c create mode 100644 ffmpeg/libavcodec/nuv.c create mode 100644 ffmpeg/libavcodec/old_codec_ids.h create mode 100644 ffmpeg/libavcodec/options.c create mode 100644 ffmpeg/libavcodec/options_table.h create mode 100644 ffmpeg/libavcodec/os2threads.h create mode 100644 ffmpeg/libavcodec/paf.c create mode 100644 ffmpeg/libavcodec/paf.h create mode 100644 ffmpeg/libavcodec/pamenc.c create mode 100644 ffmpeg/libavcodec/parser.c create mode 100644 ffmpeg/libavcodec/parser.h create mode 100644 ffmpeg/libavcodec/pcm-mpeg.c create mode 100644 ffmpeg/libavcodec/pcm.c create mode 100644 ffmpeg/libavcodec/pcm_tablegen.c create mode 100644 ffmpeg/libavcodec/pcm_tablegen.h create mode 100644 ffmpeg/libavcodec/pcx.c create mode 100644 ffmpeg/libavcodec/pcxenc.c create mode 100644 ffmpeg/libavcodec/pgssubdec.c create mode 100644 ffmpeg/libavcodec/pictordec.c create mode 100644 ffmpeg/libavcodec/png.c create mode 100644 ffmpeg/libavcodec/png.h create mode 100644 ffmpeg/libavcodec/png_parser.c create mode 100644 ffmpeg/libavcodec/pngdec.c create mode 100644 ffmpeg/libavcodec/pngdsp.c create mode 100644 ffmpeg/libavcodec/pngdsp.h create mode 100644 ffmpeg/libavcodec/pngenc.c create mode 100644 ffmpeg/libavcodec/pnm.c create mode 100644 ffmpeg/libavcodec/pnm.h create mode 100644 ffmpeg/libavcodec/pnm_parser.c create mode 100644 ffmpeg/libavcodec/pnmdec.c create mode 100644 ffmpeg/libavcodec/pnmenc.c create mode 100644 ffmpeg/libavcodec/ppc/Makefile create mode 100644 ffmpeg/libavcodec/ppc/asm.S create mode 100644 ffmpeg/libavcodec/ppc/dsputil_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/dsputil_altivec.h create mode 100644 ffmpeg/libavcodec/ppc/dsputil_ppc.c create mode 100644 ffmpeg/libavcodec/ppc/fdct_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/fft_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/fft_altivec_s.S create mode 100644 ffmpeg/libavcodec/ppc/fmtconvert_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/gmc_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/h264_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/h264_qpel.c create mode 100644 ffmpeg/libavcodec/ppc/h264_qpel_template.c create mode 100644 ffmpeg/libavcodec/ppc/h264chroma_init.c create mode 100644 ffmpeg/libavcodec/ppc/h264chroma_template.c create mode 100644 ffmpeg/libavcodec/ppc/hpeldsp_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/idct_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/int_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/mathops.h create mode 100644 ffmpeg/libavcodec/ppc/mpegaudiodec_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/mpegvideo_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/vc1dsp_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/videodsp_ppc.c create mode 100644 ffmpeg/libavcodec/ppc/vorbisdsp_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/vp3dsp_altivec.c create mode 100644 ffmpeg/libavcodec/ppc/vp8dsp_altivec.c create mode 100644 ffmpeg/libavcodec/proresdata.c create mode 100644 ffmpeg/libavcodec/proresdata.h create mode 100644 ffmpeg/libavcodec/proresdec.h create mode 100644 ffmpeg/libavcodec/proresdec2.c create mode 100644 ffmpeg/libavcodec/proresdec_lgpl.c create mode 100644 ffmpeg/libavcodec/proresdsp.c create mode 100644 ffmpeg/libavcodec/proresdsp.h create mode 100644 ffmpeg/libavcodec/proresenc_anatoliy.c create mode 100644 ffmpeg/libavcodec/proresenc_kostya.c create mode 100644 ffmpeg/libavcodec/psymodel.c create mode 100644 ffmpeg/libavcodec/psymodel.h create mode 100644 ffmpeg/libavcodec/pthread.c create mode 100644 ffmpeg/libavcodec/ptx.c create mode 100644 ffmpeg/libavcodec/put_bits.h create mode 100644 ffmpeg/libavcodec/qcelpdata.h create mode 100644 ffmpeg/libavcodec/qcelpdec.c create mode 100644 ffmpeg/libavcodec/qdm2.c create mode 100644 ffmpeg/libavcodec/qdm2_tablegen.c create mode 100644 ffmpeg/libavcodec/qdm2_tablegen.h create mode 100644 ffmpeg/libavcodec/qdm2data.h create mode 100644 ffmpeg/libavcodec/qdrw.c create mode 100644 ffmpeg/libavcodec/qpeg.c create mode 100644 ffmpeg/libavcodec/qtrle.c create mode 100644 ffmpeg/libavcodec/qtrleenc.c create mode 100644 ffmpeg/libavcodec/r210dec.c create mode 100644 ffmpeg/libavcodec/r210enc.c create mode 100644 ffmpeg/libavcodec/ra144.c create mode 100644 ffmpeg/libavcodec/ra144.h create mode 100644 ffmpeg/libavcodec/ra144dec.c create mode 100644 ffmpeg/libavcodec/ra144enc.c create mode 100644 ffmpeg/libavcodec/ra288.c create mode 100644 ffmpeg/libavcodec/ra288.h create mode 100644 ffmpeg/libavcodec/ralf.c create mode 100644 ffmpeg/libavcodec/ralfdata.h create mode 100644 ffmpeg/libavcodec/rangecoder.c create mode 100644 ffmpeg/libavcodec/rangecoder.h create mode 100644 ffmpeg/libavcodec/ratecontrol.c create mode 100644 ffmpeg/libavcodec/ratecontrol.h create mode 100644 ffmpeg/libavcodec/raw.c create mode 100644 ffmpeg/libavcodec/raw.h create mode 100644 ffmpeg/libavcodec/rawdec.c create mode 100644 ffmpeg/libavcodec/rawenc.c create mode 100644 ffmpeg/libavcodec/rdft.c create mode 100644 ffmpeg/libavcodec/rdft.h create mode 100644 ffmpeg/libavcodec/realtextdec.c create mode 100644 ffmpeg/libavcodec/rectangle.h create mode 100644 ffmpeg/libavcodec/remove_extradata_bsf.c create mode 100644 ffmpeg/libavcodec/resample.c create mode 100644 ffmpeg/libavcodec/resample2.c create mode 100644 ffmpeg/libavcodec/rl.h create mode 100644 ffmpeg/libavcodec/rl2.c create mode 100644 ffmpeg/libavcodec/rle.c create mode 100644 ffmpeg/libavcodec/rle.h create mode 100644 ffmpeg/libavcodec/rnd_avg.h create mode 100644 ffmpeg/libavcodec/roqaudioenc.c create mode 100644 ffmpeg/libavcodec/roqvideo.c create mode 100644 ffmpeg/libavcodec/roqvideo.h create mode 100644 ffmpeg/libavcodec/roqvideodec.c create mode 100644 ffmpeg/libavcodec/roqvideoenc.c create mode 100644 ffmpeg/libavcodec/rpza.c create mode 100644 ffmpeg/libavcodec/rtjpeg.c create mode 100644 ffmpeg/libavcodec/rtjpeg.h create mode 100644 ffmpeg/libavcodec/rv10.c create mode 100644 ffmpeg/libavcodec/rv10enc.c create mode 100644 ffmpeg/libavcodec/rv20enc.c create mode 100644 ffmpeg/libavcodec/rv30.c create mode 100644 ffmpeg/libavcodec/rv30data.h create mode 100644 ffmpeg/libavcodec/rv30dsp.c create mode 100644 ffmpeg/libavcodec/rv34.c create mode 100644 ffmpeg/libavcodec/rv34.h create mode 100644 ffmpeg/libavcodec/rv34_parser.c create mode 100644 ffmpeg/libavcodec/rv34data.h create mode 100644 ffmpeg/libavcodec/rv34dsp.c create mode 100644 ffmpeg/libavcodec/rv34dsp.h create mode 100644 ffmpeg/libavcodec/rv34vlc.h create mode 100644 ffmpeg/libavcodec/rv40.c create mode 100644 ffmpeg/libavcodec/rv40data.h create mode 100644 ffmpeg/libavcodec/rv40dsp.c create mode 100644 ffmpeg/libavcodec/rv40vlc2.h create mode 100644 ffmpeg/libavcodec/s302m.c create mode 100644 ffmpeg/libavcodec/s3tc.c create mode 100644 ffmpeg/libavcodec/s3tc.h create mode 100644 ffmpeg/libavcodec/samidec.c create mode 100644 ffmpeg/libavcodec/sanm.c create mode 100644 ffmpeg/libavcodec/sanm_data.h create mode 100644 ffmpeg/libavcodec/sbr.h create mode 100644 ffmpeg/libavcodec/sbrdsp.c create mode 100644 ffmpeg/libavcodec/sbrdsp.h create mode 100644 ffmpeg/libavcodec/sgi.h create mode 100644 ffmpeg/libavcodec/sgidec.c create mode 100644 ffmpeg/libavcodec/sgienc.c create mode 100644 ffmpeg/libavcodec/sgirledec.c create mode 100644 ffmpeg/libavcodec/sh4/Makefile create mode 100644 ffmpeg/libavcodec/sh4/dsputil_align.c create mode 100644 ffmpeg/libavcodec/sh4/dsputil_sh4.c create mode 100644 ffmpeg/libavcodec/sh4/dsputil_sh4.h create mode 100644 ffmpeg/libavcodec/sh4/h264chroma_init.c create mode 100644 ffmpeg/libavcodec/sh4/hpeldsp.c create mode 100644 ffmpeg/libavcodec/sh4/idct_sh4.c create mode 100644 ffmpeg/libavcodec/sh4/qpel.c create mode 100644 ffmpeg/libavcodec/sh4/sh4.h create mode 100644 ffmpeg/libavcodec/shorten.c create mode 100644 ffmpeg/libavcodec/simple_idct.c create mode 100644 ffmpeg/libavcodec/simple_idct.h create mode 100644 ffmpeg/libavcodec/simple_idct_template.c create mode 100644 ffmpeg/libavcodec/sinewin.c create mode 100644 ffmpeg/libavcodec/sinewin.h create mode 100644 ffmpeg/libavcodec/sinewin_tablegen.c create mode 100644 ffmpeg/libavcodec/sinewin_tablegen.h create mode 100644 ffmpeg/libavcodec/sipr.c create mode 100644 ffmpeg/libavcodec/sipr.h create mode 100644 ffmpeg/libavcodec/sipr16k.c create mode 100644 ffmpeg/libavcodec/sipr16kdata.h create mode 100644 ffmpeg/libavcodec/siprdata.h create mode 100644 ffmpeg/libavcodec/smacker.c create mode 100644 ffmpeg/libavcodec/smc.c create mode 100644 ffmpeg/libavcodec/snow.c create mode 100644 ffmpeg/libavcodec/snow.h create mode 100644 ffmpeg/libavcodec/snow_dwt.c create mode 100644 ffmpeg/libavcodec/snow_dwt.h create mode 100644 ffmpeg/libavcodec/snowdata.h create mode 100644 ffmpeg/libavcodec/snowdec.c create mode 100644 ffmpeg/libavcodec/snowenc.c create mode 100644 ffmpeg/libavcodec/sonic.c create mode 100644 ffmpeg/libavcodec/sp5x.h create mode 100644 ffmpeg/libavcodec/sp5xdec.c create mode 100644 ffmpeg/libavcodec/sparc/Makefile create mode 100644 ffmpeg/libavcodec/sparc/dsputil_vis.c create mode 100644 ffmpeg/libavcodec/sparc/dsputil_vis.h create mode 100644 ffmpeg/libavcodec/sparc/hpeldsp_vis.c create mode 100644 ffmpeg/libavcodec/sparc/simple_idct_vis.c create mode 100644 ffmpeg/libavcodec/sparc/vis.h create mode 100644 ffmpeg/libavcodec/srtdec.c create mode 100644 ffmpeg/libavcodec/srtenc.c create mode 100644 ffmpeg/libavcodec/subviewerdec.c create mode 100644 ffmpeg/libavcodec/sunrast.c create mode 100644 ffmpeg/libavcodec/sunrast.h create mode 100644 ffmpeg/libavcodec/sunrastenc.c create mode 100644 ffmpeg/libavcodec/svq1.c create mode 100644 ffmpeg/libavcodec/svq1.h create mode 100644 ffmpeg/libavcodec/svq13.c create mode 100644 ffmpeg/libavcodec/svq1_cb.h create mode 100644 ffmpeg/libavcodec/svq1_vlc.h create mode 100644 ffmpeg/libavcodec/svq1dec.c create mode 100644 ffmpeg/libavcodec/svq1enc.c create mode 100644 ffmpeg/libavcodec/svq1enc_cb.h create mode 100644 ffmpeg/libavcodec/svq3.c create mode 100644 ffmpeg/libavcodec/svq3.h create mode 100644 ffmpeg/libavcodec/synth_filter.c create mode 100644 ffmpeg/libavcodec/synth_filter.h create mode 100644 ffmpeg/libavcodec/tableprint.h create mode 100644 ffmpeg/libavcodec/tak.c create mode 100644 ffmpeg/libavcodec/tak.h create mode 100644 ffmpeg/libavcodec/tak_parser.c create mode 100644 ffmpeg/libavcodec/takdec.c create mode 100644 ffmpeg/libavcodec/targa.c create mode 100644 ffmpeg/libavcodec/targa.h create mode 100644 ffmpeg/libavcodec/targa_y216dec.c create mode 100644 ffmpeg/libavcodec/targaenc.c create mode 100644 ffmpeg/libavcodec/textdec.c create mode 100644 ffmpeg/libavcodec/thread.h create mode 100644 ffmpeg/libavcodec/tiertexseqv.c create mode 100644 ffmpeg/libavcodec/tiff.c create mode 100644 ffmpeg/libavcodec/tiff.h create mode 100644 ffmpeg/libavcodec/tiff_data.c create mode 100644 ffmpeg/libavcodec/tiff_data.h create mode 100644 ffmpeg/libavcodec/tiffenc.c create mode 100644 ffmpeg/libavcodec/timecode.c create mode 100644 ffmpeg/libavcodec/timecode.h create mode 100644 ffmpeg/libavcodec/tmv.c create mode 100644 ffmpeg/libavcodec/truemotion1.c create mode 100644 ffmpeg/libavcodec/truemotion1data.h create mode 100644 ffmpeg/libavcodec/truemotion2.c create mode 100644 ffmpeg/libavcodec/truespeech.c create mode 100644 ffmpeg/libavcodec/truespeech_data.h create mode 100644 ffmpeg/libavcodec/tscc.c create mode 100644 ffmpeg/libavcodec/tscc2.c create mode 100644 ffmpeg/libavcodec/tscc2data.h create mode 100644 ffmpeg/libavcodec/tta.c create mode 100644 ffmpeg/libavcodec/twinvq.c create mode 100644 ffmpeg/libavcodec/twinvq_data.h create mode 100644 ffmpeg/libavcodec/txd.c create mode 100644 ffmpeg/libavcodec/ulti.c create mode 100644 ffmpeg/libavcodec/ulti_cb.h create mode 100644 ffmpeg/libavcodec/unary.h create mode 100644 ffmpeg/libavcodec/utils.c create mode 100644 ffmpeg/libavcodec/utvideo.c create mode 100644 ffmpeg/libavcodec/utvideo.h create mode 100644 ffmpeg/libavcodec/utvideodec.c create mode 100644 ffmpeg/libavcodec/utvideoenc.c create mode 100644 ffmpeg/libavcodec/v210dec.c create mode 100644 ffmpeg/libavcodec/v210dec.h create mode 100644 ffmpeg/libavcodec/v210enc.c create mode 100644 ffmpeg/libavcodec/v210x.c create mode 100644 ffmpeg/libavcodec/v308dec.c create mode 100644 ffmpeg/libavcodec/v308enc.c create mode 100644 ffmpeg/libavcodec/v408dec.c create mode 100644 ffmpeg/libavcodec/v408enc.c create mode 100644 ffmpeg/libavcodec/v410dec.c create mode 100644 ffmpeg/libavcodec/v410enc.c create mode 100644 ffmpeg/libavcodec/vaapi.c create mode 100644 ffmpeg/libavcodec/vaapi.h create mode 100644 ffmpeg/libavcodec/vaapi_h264.c create mode 100644 ffmpeg/libavcodec/vaapi_internal.h create mode 100644 ffmpeg/libavcodec/vaapi_mpeg2.c create mode 100644 ffmpeg/libavcodec/vaapi_mpeg4.c create mode 100644 ffmpeg/libavcodec/vaapi_vc1.c create mode 100644 ffmpeg/libavcodec/vb.c create mode 100644 ffmpeg/libavcodec/vble.c create mode 100644 ffmpeg/libavcodec/vc1.c create mode 100644 ffmpeg/libavcodec/vc1.h create mode 100644 ffmpeg/libavcodec/vc1_parser.c create mode 100644 ffmpeg/libavcodec/vc1acdata.h create mode 100644 ffmpeg/libavcodec/vc1data.c create mode 100644 ffmpeg/libavcodec/vc1data.h create mode 100644 ffmpeg/libavcodec/vc1dec.c create mode 100644 ffmpeg/libavcodec/vc1dsp.c create mode 100644 ffmpeg/libavcodec/vc1dsp.h create mode 100644 ffmpeg/libavcodec/vcr1.c create mode 100644 ffmpeg/libavcodec/vda.h create mode 100644 ffmpeg/libavcodec/vda_h264.c create mode 100644 ffmpeg/libavcodec/vda_h264_dec.c create mode 100644 ffmpeg/libavcodec/vdpau.c create mode 100644 ffmpeg/libavcodec/vdpau.h create mode 100644 ffmpeg/libavcodec/vdpau_h264.c create mode 100644 ffmpeg/libavcodec/vdpau_internal.h create mode 100644 ffmpeg/libavcodec/vdpau_mpeg12.c create mode 100644 ffmpeg/libavcodec/vdpau_mpeg4.c create mode 100644 ffmpeg/libavcodec/vdpau_vc1.c create mode 100644 ffmpeg/libavcodec/version.h create mode 100644 ffmpeg/libavcodec/videodsp.c create mode 100644 ffmpeg/libavcodec/videodsp.h create mode 100644 ffmpeg/libavcodec/videodsp_template.c create mode 100644 ffmpeg/libavcodec/vima.c create mode 100644 ffmpeg/libavcodec/vmdav.c create mode 100644 ffmpeg/libavcodec/vmnc.c create mode 100644 ffmpeg/libavcodec/vorbis.c create mode 100644 ffmpeg/libavcodec/vorbis.h create mode 100644 ffmpeg/libavcodec/vorbis_data.c create mode 100644 ffmpeg/libavcodec/vorbis_enc_data.h create mode 100644 ffmpeg/libavcodec/vorbis_parser.c create mode 100644 ffmpeg/libavcodec/vorbis_parser.h create mode 100644 ffmpeg/libavcodec/vorbisdec.c create mode 100644 ffmpeg/libavcodec/vorbisdsp.c create mode 100644 ffmpeg/libavcodec/vorbisdsp.h create mode 100644 ffmpeg/libavcodec/vorbisenc.c create mode 100644 ffmpeg/libavcodec/vp3.c create mode 100644 ffmpeg/libavcodec/vp3_parser.c create mode 100644 ffmpeg/libavcodec/vp3data.h create mode 100644 ffmpeg/libavcodec/vp3dsp.c create mode 100644 ffmpeg/libavcodec/vp3dsp.h create mode 100644 ffmpeg/libavcodec/vp5.c create mode 100644 ffmpeg/libavcodec/vp56.c create mode 100644 ffmpeg/libavcodec/vp56.h create mode 100644 ffmpeg/libavcodec/vp56data.c create mode 100644 ffmpeg/libavcodec/vp56data.h create mode 100644 ffmpeg/libavcodec/vp56dsp.c create mode 100644 ffmpeg/libavcodec/vp56dsp.h create mode 100644 ffmpeg/libavcodec/vp56rac.c create mode 100644 ffmpeg/libavcodec/vp5data.h create mode 100644 ffmpeg/libavcodec/vp6.c create mode 100644 ffmpeg/libavcodec/vp6data.h create mode 100644 ffmpeg/libavcodec/vp6dsp.c create mode 100644 ffmpeg/libavcodec/vp8.c create mode 100644 ffmpeg/libavcodec/vp8.h create mode 100644 ffmpeg/libavcodec/vp8_parser.c create mode 100644 ffmpeg/libavcodec/vp8data.h create mode 100644 ffmpeg/libavcodec/vp8dsp.c create mode 100644 ffmpeg/libavcodec/vp8dsp.h create mode 100644 ffmpeg/libavcodec/vqavideo.c create mode 100644 ffmpeg/libavcodec/w32pthreads.h create mode 100644 ffmpeg/libavcodec/wavpack.c create mode 100644 ffmpeg/libavcodec/webvttdec.c create mode 100644 ffmpeg/libavcodec/wma.c create mode 100644 ffmpeg/libavcodec/wma.h create mode 100644 ffmpeg/libavcodec/wma_common.c create mode 100644 ffmpeg/libavcodec/wma_common.h create mode 100644 ffmpeg/libavcodec/wmadata.h create mode 100644 ffmpeg/libavcodec/wmadec.c create mode 100644 ffmpeg/libavcodec/wmaenc.c create mode 100644 ffmpeg/libavcodec/wmalosslessdec.c create mode 100644 ffmpeg/libavcodec/wmaprodata.h create mode 100644 ffmpeg/libavcodec/wmaprodec.c create mode 100644 ffmpeg/libavcodec/wmavoice.c create mode 100644 ffmpeg/libavcodec/wmavoice_data.h create mode 100644 ffmpeg/libavcodec/wmv2.c create mode 100644 ffmpeg/libavcodec/wmv2.h create mode 100644 ffmpeg/libavcodec/wmv2dec.c create mode 100644 ffmpeg/libavcodec/wmv2dsp.c create mode 100644 ffmpeg/libavcodec/wmv2dsp.h create mode 100644 ffmpeg/libavcodec/wmv2enc.c create mode 100644 ffmpeg/libavcodec/wnv1.c create mode 100644 ffmpeg/libavcodec/ws-snd1.c create mode 100644 ffmpeg/libavcodec/x86/Makefile create mode 100644 ffmpeg/libavcodec/x86/ac3dsp.asm create mode 100644 ffmpeg/libavcodec/x86/ac3dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/cabac.h create mode 100644 ffmpeg/libavcodec/x86/cavsdsp.c create mode 100644 ffmpeg/libavcodec/x86/constants.c create mode 100644 ffmpeg/libavcodec/x86/dct32.asm create mode 100644 ffmpeg/libavcodec/x86/deinterlace.asm create mode 100644 ffmpeg/libavcodec/x86/dirac_dwt.c create mode 100644 ffmpeg/libavcodec/x86/dirac_dwt.h create mode 100644 ffmpeg/libavcodec/x86/diracdsp_mmx.c create mode 100644 ffmpeg/libavcodec/x86/diracdsp_mmx.h create mode 100644 ffmpeg/libavcodec/x86/diracdsp_yasm.asm create mode 100644 ffmpeg/libavcodec/x86/dnxhdenc.c create mode 100644 ffmpeg/libavcodec/x86/dsputil.asm create mode 100644 ffmpeg/libavcodec/x86/dsputil_mmx.c create mode 100644 ffmpeg/libavcodec/x86/dsputil_mmx.h create mode 100644 ffmpeg/libavcodec/x86/dsputil_qns_template.c create mode 100644 ffmpeg/libavcodec/x86/dsputil_rnd_template.c create mode 100644 ffmpeg/libavcodec/x86/dsputilenc.asm create mode 100644 ffmpeg/libavcodec/x86/dsputilenc_mmx.c create mode 100644 ffmpeg/libavcodec/x86/dwt_yasm.asm create mode 100644 ffmpeg/libavcodec/x86/fdct.c create mode 100644 ffmpeg/libavcodec/x86/fft.asm create mode 100644 ffmpeg/libavcodec/x86/fft.h create mode 100644 ffmpeg/libavcodec/x86/fft_init.c create mode 100644 ffmpeg/libavcodec/x86/fmtconvert.asm create mode 100644 ffmpeg/libavcodec/x86/fmtconvert_init.c create mode 100644 ffmpeg/libavcodec/x86/fpelbase.asm create mode 100644 ffmpeg/libavcodec/x86/h263_loopfilter.asm create mode 100644 ffmpeg/libavcodec/x86/h264_chromamc.asm create mode 100644 ffmpeg/libavcodec/x86/h264_chromamc_10bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264_deblock.asm create mode 100644 ffmpeg/libavcodec/x86/h264_deblock_10bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264_i386.h create mode 100644 ffmpeg/libavcodec/x86/h264_idct.asm create mode 100644 ffmpeg/libavcodec/x86/h264_idct_10bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264_intrapred.asm create mode 100644 ffmpeg/libavcodec/x86/h264_intrapred_10bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264_intrapred_init.c create mode 100644 ffmpeg/libavcodec/x86/h264_qpel.c create mode 100644 ffmpeg/libavcodec/x86/h264_qpel_10bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264_qpel_8bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264_weight.asm create mode 100644 ffmpeg/libavcodec/x86/h264_weight_10bit.asm create mode 100644 ffmpeg/libavcodec/x86/h264chroma_init.c create mode 100644 ffmpeg/libavcodec/x86/h264dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/hpeldsp.asm create mode 100644 ffmpeg/libavcodec/x86/hpeldsp_avg_template.c create mode 100644 ffmpeg/libavcodec/x86/hpeldsp_init.c create mode 100644 ffmpeg/libavcodec/x86/hpeldsp_rnd_template.c create mode 100644 ffmpeg/libavcodec/x86/idct_mmx_xvid.c create mode 100644 ffmpeg/libavcodec/x86/idct_sse2_xvid.c create mode 100644 ffmpeg/libavcodec/x86/idct_xvid.h create mode 100644 ffmpeg/libavcodec/x86/imdct36.asm create mode 100644 ffmpeg/libavcodec/x86/lpc.c create mode 100644 ffmpeg/libavcodec/x86/mathops.h create mode 100644 ffmpeg/libavcodec/x86/mlpdsp.c create mode 100644 ffmpeg/libavcodec/x86/motion_est.c create mode 100644 ffmpeg/libavcodec/x86/mpeg4qpel.asm create mode 100644 ffmpeg/libavcodec/x86/mpegaudiodec.c create mode 100644 ffmpeg/libavcodec/x86/mpegvideo.c create mode 100644 ffmpeg/libavcodec/x86/mpegvideoenc.c create mode 100644 ffmpeg/libavcodec/x86/mpegvideoenc_template.c create mode 100644 ffmpeg/libavcodec/x86/pngdsp.asm create mode 100644 ffmpeg/libavcodec/x86/pngdsp_init.c create mode 100644 ffmpeg/libavcodec/x86/proresdsp.asm create mode 100644 ffmpeg/libavcodec/x86/proresdsp_init.c create mode 100644 ffmpeg/libavcodec/x86/qpelbase.asm create mode 100644 ffmpeg/libavcodec/x86/rv34dsp.asm create mode 100644 ffmpeg/libavcodec/x86/rv34dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/rv40dsp.asm create mode 100644 ffmpeg/libavcodec/x86/rv40dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/sbrdsp.asm create mode 100644 ffmpeg/libavcodec/x86/sbrdsp_init.c create mode 100644 ffmpeg/libavcodec/x86/simple_idct.c create mode 100644 ffmpeg/libavcodec/x86/snowdsp.c create mode 100644 ffmpeg/libavcodec/x86/v210-init.c create mode 100644 ffmpeg/libavcodec/x86/v210.asm create mode 100644 ffmpeg/libavcodec/x86/vc1dsp.asm create mode 100644 ffmpeg/libavcodec/x86/vc1dsp.h create mode 100644 ffmpeg/libavcodec/x86/vc1dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/vc1dsp_mmx.c create mode 100644 ffmpeg/libavcodec/x86/videodsp.asm create mode 100644 ffmpeg/libavcodec/x86/videodsp_init.c create mode 100644 ffmpeg/libavcodec/x86/vorbisdsp.asm create mode 100644 ffmpeg/libavcodec/x86/vorbisdsp_init.c create mode 100644 ffmpeg/libavcodec/x86/vp3dsp.asm create mode 100644 ffmpeg/libavcodec/x86/vp3dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/vp56_arith.h create mode 100644 ffmpeg/libavcodec/x86/vp56dsp.asm create mode 100644 ffmpeg/libavcodec/x86/vp56dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/vp8dsp.asm create mode 100644 ffmpeg/libavcodec/x86/vp8dsp_init.c create mode 100644 ffmpeg/libavcodec/x86/w64xmmtest.c create mode 100644 ffmpeg/libavcodec/xan.c create mode 100644 ffmpeg/libavcodec/xbmdec.c create mode 100644 ffmpeg/libavcodec/xbmenc.c create mode 100644 ffmpeg/libavcodec/xface.c create mode 100644 ffmpeg/libavcodec/xface.h create mode 100644 ffmpeg/libavcodec/xfacedec.c create mode 100644 ffmpeg/libavcodec/xfaceenc.c create mode 100644 ffmpeg/libavcodec/xiph.c create mode 100644 ffmpeg/libavcodec/xiph.h create mode 100644 ffmpeg/libavcodec/xl.c create mode 100644 ffmpeg/libavcodec/xsubdec.c create mode 100644 ffmpeg/libavcodec/xsubenc.c create mode 100644 ffmpeg/libavcodec/xvmc.h create mode 100644 ffmpeg/libavcodec/xvmc_internal.h create mode 100644 ffmpeg/libavcodec/xwd.h create mode 100644 ffmpeg/libavcodec/xwddec.c create mode 100644 ffmpeg/libavcodec/xwdenc.c create mode 100644 ffmpeg/libavcodec/xxan.c create mode 100644 ffmpeg/libavcodec/y41pdec.c create mode 100644 ffmpeg/libavcodec/y41penc.c create mode 100644 ffmpeg/libavcodec/yop.c create mode 100644 ffmpeg/libavcodec/yuv4dec.c create mode 100644 ffmpeg/libavcodec/yuv4enc.c create mode 100644 ffmpeg/libavcodec/zerocodec.c create mode 100644 ffmpeg/libavcodec/zmbv.c create mode 100644 ffmpeg/libavcodec/zmbvenc.c create mode 100644 ffmpeg/libavdevice/Makefile create mode 100644 ffmpeg/libavdevice/alldevices.c create mode 100644 ffmpeg/libavdevice/alsa-audio-common.c create mode 100644 ffmpeg/libavdevice/alsa-audio-dec.c create mode 100644 ffmpeg/libavdevice/alsa-audio-enc.c create mode 100644 ffmpeg/libavdevice/alsa-audio.h create mode 100644 ffmpeg/libavdevice/avdevice.c create mode 100644 ffmpeg/libavdevice/avdevice.h create mode 100644 ffmpeg/libavdevice/bktr.c create mode 100644 ffmpeg/libavdevice/caca.c create mode 100644 ffmpeg/libavdevice/dshow.c create mode 100644 ffmpeg/libavdevice/dshow_capture.h create mode 100644 ffmpeg/libavdevice/dshow_common.c create mode 100644 ffmpeg/libavdevice/dshow_enummediatypes.c create mode 100644 ffmpeg/libavdevice/dshow_enumpins.c create mode 100644 ffmpeg/libavdevice/dshow_filter.c create mode 100644 ffmpeg/libavdevice/dshow_pin.c create mode 100644 ffmpeg/libavdevice/dv1394.c create mode 100644 ffmpeg/libavdevice/dv1394.h create mode 100644 ffmpeg/libavdevice/fbdev.c create mode 100644 ffmpeg/libavdevice/iec61883.c create mode 100644 ffmpeg/libavdevice/jack_audio.c create mode 100644 ffmpeg/libavdevice/lavfi.c create mode 100644 ffmpeg/libavdevice/libavdevice.pc create mode 100644 ffmpeg/libavdevice/libavdevice.v create mode 100644 ffmpeg/libavdevice/libcdio.c create mode 100644 ffmpeg/libavdevice/libdc1394.c create mode 100644 ffmpeg/libavdevice/openal-dec.c create mode 100644 ffmpeg/libavdevice/oss_audio.c create mode 100644 ffmpeg/libavdevice/pulse.c create mode 100644 ffmpeg/libavdevice/sdl.c create mode 100644 ffmpeg/libavdevice/sndio_common.c create mode 100644 ffmpeg/libavdevice/sndio_common.h create mode 100644 ffmpeg/libavdevice/sndio_dec.c create mode 100644 ffmpeg/libavdevice/sndio_enc.c create mode 100644 ffmpeg/libavdevice/timefilter.c create mode 100644 ffmpeg/libavdevice/timefilter.h create mode 100644 ffmpeg/libavdevice/v4l.c create mode 100644 ffmpeg/libavdevice/v4l2.c create mode 100644 ffmpeg/libavdevice/version.h create mode 100644 ffmpeg/libavdevice/vfwcap.c create mode 100644 ffmpeg/libavdevice/x11grab.c create mode 100644 ffmpeg/libavfilter/Makefile create mode 100644 ffmpeg/libavfilter/af_aconvert.c create mode 100644 ffmpeg/libavfilter/af_afade.c create mode 100644 ffmpeg/libavfilter/af_aformat.c create mode 100644 ffmpeg/libavfilter/af_amerge.c create mode 100644 ffmpeg/libavfilter/af_amix.c create mode 100644 ffmpeg/libavfilter/af_anull.c create mode 100644 ffmpeg/libavfilter/af_apad.c create mode 100644 ffmpeg/libavfilter/af_aresample.c create mode 100644 ffmpeg/libavfilter/af_asetnsamples.c create mode 100644 ffmpeg/libavfilter/af_ashowinfo.c create mode 100644 ffmpeg/libavfilter/af_astreamsync.c create mode 100644 ffmpeg/libavfilter/af_asyncts.c create mode 100644 ffmpeg/libavfilter/af_atempo.c create mode 100644 ffmpeg/libavfilter/af_biquads.c create mode 100644 ffmpeg/libavfilter/af_channelmap.c create mode 100644 ffmpeg/libavfilter/af_channelsplit.c create mode 100644 ffmpeg/libavfilter/af_earwax.c create mode 100644 ffmpeg/libavfilter/af_join.c create mode 100644 ffmpeg/libavfilter/af_pan.c create mode 100644 ffmpeg/libavfilter/af_resample.c create mode 100644 ffmpeg/libavfilter/af_silencedetect.c create mode 100644 ffmpeg/libavfilter/af_volume.c create mode 100644 ffmpeg/libavfilter/af_volume.h create mode 100644 ffmpeg/libavfilter/af_volumedetect.c create mode 100644 ffmpeg/libavfilter/all_channel_layouts.inc create mode 100644 ffmpeg/libavfilter/allfilters.c create mode 100644 ffmpeg/libavfilter/asink_anullsink.c create mode 100644 ffmpeg/libavfilter/asrc_abuffer.h create mode 100644 ffmpeg/libavfilter/asrc_aevalsrc.c create mode 100644 ffmpeg/libavfilter/asrc_anullsrc.c create mode 100644 ffmpeg/libavfilter/asrc_flite.c create mode 100644 ffmpeg/libavfilter/asrc_sine.c create mode 100644 ffmpeg/libavfilter/audio.c create mode 100644 ffmpeg/libavfilter/audio.h create mode 100644 ffmpeg/libavfilter/avcodec.c create mode 100644 ffmpeg/libavfilter/avcodec.h create mode 100644 ffmpeg/libavfilter/avf_concat.c create mode 100644 ffmpeg/libavfilter/avf_showspectrum.c create mode 100644 ffmpeg/libavfilter/avf_showwaves.c create mode 100644 ffmpeg/libavfilter/avfilter.c create mode 100644 ffmpeg/libavfilter/avfilter.h create mode 100644 ffmpeg/libavfilter/avfiltergraph.c create mode 100644 ffmpeg/libavfilter/avfiltergraph.h create mode 100644 ffmpeg/libavfilter/bbox.c create mode 100644 ffmpeg/libavfilter/bbox.h create mode 100644 ffmpeg/libavfilter/buffer.c create mode 100644 ffmpeg/libavfilter/bufferqueue.h create mode 100644 ffmpeg/libavfilter/buffersink.c create mode 100644 ffmpeg/libavfilter/buffersink.h create mode 100644 ffmpeg/libavfilter/buffersrc.c create mode 100644 ffmpeg/libavfilter/buffersrc.h create mode 100644 ffmpeg/libavfilter/drawutils.c create mode 100644 ffmpeg/libavfilter/drawutils.h create mode 100644 ffmpeg/libavfilter/f_ebur128.c create mode 100644 ffmpeg/libavfilter/f_perms.c create mode 100644 ffmpeg/libavfilter/f_select.c create mode 100644 ffmpeg/libavfilter/f_sendcmd.c create mode 100644 ffmpeg/libavfilter/f_setpts.c create mode 100644 ffmpeg/libavfilter/f_settb.c create mode 100644 ffmpeg/libavfilter/fifo.c create mode 100644 ffmpeg/libavfilter/filtfmts.c create mode 100644 ffmpeg/libavfilter/formats.c create mode 100644 ffmpeg/libavfilter/formats.h create mode 100644 ffmpeg/libavfilter/gradfun.h create mode 100644 ffmpeg/libavfilter/graphdump.c create mode 100644 ffmpeg/libavfilter/graphparser.c create mode 100644 ffmpeg/libavfilter/internal.h create mode 100644 ffmpeg/libavfilter/lavfutils.c create mode 100644 ffmpeg/libavfilter/lavfutils.h create mode 100644 ffmpeg/libavfilter/libavfilter.pc create mode 100644 ffmpeg/libavfilter/libavfilter.v create mode 100644 ffmpeg/libavfilter/libmpcodecs/av_helpers.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/cpudetect.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/help_mp.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/img_format.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/img_format.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/libvo/fastmemcpy.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/libvo/video_out.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/mp_image.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/mp_image.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/mp_msg.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/mpbswap.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/mpc_info.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/pullup.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/pullup.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_detc.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_dint.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_divtc.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_down3dright.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_eq.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_eq2.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_fil.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_filmdint.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_fspp.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_ilpack.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_ivtc.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_mcdeint.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_noise.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_ow.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_perspective.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_phase.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_pp7.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_pullup.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_qp.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_sab.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_scale.h create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_softpulldown.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_spp.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_telecine.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_tinterlace.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vf_uspp.c create mode 100644 ffmpeg/libavfilter/libmpcodecs/vfcap.h create mode 100644 ffmpeg/libavfilter/lswsutils.c create mode 100644 ffmpeg/libavfilter/lswsutils.h create mode 100644 ffmpeg/libavfilter/split.c create mode 100644 ffmpeg/libavfilter/src_movie.c create mode 100644 ffmpeg/libavfilter/transform.c create mode 100644 ffmpeg/libavfilter/transform.h create mode 100644 ffmpeg/libavfilter/version.h create mode 100644 ffmpeg/libavfilter/vf_alphaextract.c create mode 100644 ffmpeg/libavfilter/vf_alphamerge.c create mode 100644 ffmpeg/libavfilter/vf_aspect.c create mode 100644 ffmpeg/libavfilter/vf_bbox.c create mode 100644 ffmpeg/libavfilter/vf_blackdetect.c create mode 100644 ffmpeg/libavfilter/vf_blackframe.c create mode 100644 ffmpeg/libavfilter/vf_blend.c create mode 100644 ffmpeg/libavfilter/vf_boxblur.c create mode 100644 ffmpeg/libavfilter/vf_colormatrix.c create mode 100644 ffmpeg/libavfilter/vf_copy.c create mode 100644 ffmpeg/libavfilter/vf_crop.c create mode 100644 ffmpeg/libavfilter/vf_cropdetect.c create mode 100644 ffmpeg/libavfilter/vf_curves.c create mode 100644 ffmpeg/libavfilter/vf_decimate.c create mode 100644 ffmpeg/libavfilter/vf_delogo.c create mode 100644 ffmpeg/libavfilter/vf_deshake.c create mode 100644 ffmpeg/libavfilter/vf_drawbox.c create mode 100644 ffmpeg/libavfilter/vf_drawtext.c create mode 100644 ffmpeg/libavfilter/vf_edgedetect.c create mode 100644 ffmpeg/libavfilter/vf_fade.c create mode 100644 ffmpeg/libavfilter/vf_field.c create mode 100644 ffmpeg/libavfilter/vf_fieldorder.c create mode 100644 ffmpeg/libavfilter/vf_format.c create mode 100644 ffmpeg/libavfilter/vf_fps.c create mode 100644 ffmpeg/libavfilter/vf_framestep.c create mode 100644 ffmpeg/libavfilter/vf_frei0r.c create mode 100644 ffmpeg/libavfilter/vf_geq.c create mode 100644 ffmpeg/libavfilter/vf_gradfun.c create mode 100644 ffmpeg/libavfilter/vf_hflip.c create mode 100644 ffmpeg/libavfilter/vf_histeq.c create mode 100644 ffmpeg/libavfilter/vf_histogram.c create mode 100644 ffmpeg/libavfilter/vf_hqdn3d.c create mode 100644 ffmpeg/libavfilter/vf_hqdn3d.h create mode 100644 ffmpeg/libavfilter/vf_hue.c create mode 100644 ffmpeg/libavfilter/vf_idet.c create mode 100644 ffmpeg/libavfilter/vf_il.c create mode 100644 ffmpeg/libavfilter/vf_kerndeint.c create mode 100644 ffmpeg/libavfilter/vf_libopencv.c create mode 100644 ffmpeg/libavfilter/vf_lut.c create mode 100644 ffmpeg/libavfilter/vf_mp.c create mode 100644 ffmpeg/libavfilter/vf_noise.c create mode 100644 ffmpeg/libavfilter/vf_null.c create mode 100644 ffmpeg/libavfilter/vf_overlay.c create mode 100644 ffmpeg/libavfilter/vf_pad.c create mode 100644 ffmpeg/libavfilter/vf_pixdesctest.c create mode 100644 ffmpeg/libavfilter/vf_pp.c create mode 100644 ffmpeg/libavfilter/vf_removelogo.c create mode 100644 ffmpeg/libavfilter/vf_scale.c create mode 100644 ffmpeg/libavfilter/vf_setfield.c create mode 100644 ffmpeg/libavfilter/vf_showinfo.c create mode 100644 ffmpeg/libavfilter/vf_smartblur.c create mode 100644 ffmpeg/libavfilter/vf_stereo3d.c create mode 100644 ffmpeg/libavfilter/vf_subtitles.c create mode 100644 ffmpeg/libavfilter/vf_super2xsai.c create mode 100644 ffmpeg/libavfilter/vf_swapuv.c create mode 100644 ffmpeg/libavfilter/vf_thumbnail.c create mode 100644 ffmpeg/libavfilter/vf_tile.c create mode 100644 ffmpeg/libavfilter/vf_tinterlace.c create mode 100644 ffmpeg/libavfilter/vf_transpose.c create mode 100644 ffmpeg/libavfilter/vf_unsharp.c create mode 100644 ffmpeg/libavfilter/vf_vflip.c create mode 100644 ffmpeg/libavfilter/vf_yadif.c create mode 100644 ffmpeg/libavfilter/video.c create mode 100644 ffmpeg/libavfilter/video.h create mode 100644 ffmpeg/libavfilter/vsink_nullsink.c create mode 100644 ffmpeg/libavfilter/vsrc_cellauto.c create mode 100644 ffmpeg/libavfilter/vsrc_life.c create mode 100644 ffmpeg/libavfilter/vsrc_mandelbrot.c create mode 100644 ffmpeg/libavfilter/vsrc_mptestsrc.c create mode 100644 ffmpeg/libavfilter/vsrc_testsrc.c create mode 100644 ffmpeg/libavfilter/x86/Makefile create mode 100644 ffmpeg/libavfilter/x86/af_volume.asm create mode 100644 ffmpeg/libavfilter/x86/af_volume_init.c create mode 100644 ffmpeg/libavfilter/x86/vf_gradfun.c create mode 100644 ffmpeg/libavfilter/x86/vf_hqdn3d.asm create mode 100644 ffmpeg/libavfilter/x86/vf_hqdn3d_init.c create mode 100644 ffmpeg/libavfilter/x86/vf_yadif.asm create mode 100644 ffmpeg/libavfilter/x86/vf_yadif_init.c create mode 100644 ffmpeg/libavfilter/x86/yadif-10.asm create mode 100644 ffmpeg/libavfilter/x86/yadif-16.asm create mode 100644 ffmpeg/libavfilter/yadif.h create mode 100644 ffmpeg/libavformat/4xm.c create mode 100644 ffmpeg/libavformat/Makefile create mode 100644 ffmpeg/libavformat/a64.c create mode 100644 ffmpeg/libavformat/aacdec.c create mode 100644 ffmpeg/libavformat/ac3dec.c create mode 100644 ffmpeg/libavformat/act.c create mode 100644 ffmpeg/libavformat/adtsenc.c create mode 100644 ffmpeg/libavformat/adxdec.c create mode 100644 ffmpeg/libavformat/aea.c create mode 100644 ffmpeg/libavformat/afc.c create mode 100644 ffmpeg/libavformat/aiff.h create mode 100644 ffmpeg/libavformat/aiffdec.c create mode 100644 ffmpeg/libavformat/aiffenc.c create mode 100644 ffmpeg/libavformat/allformats.c create mode 100644 ffmpeg/libavformat/amr.c create mode 100644 ffmpeg/libavformat/anm.c create mode 100644 ffmpeg/libavformat/apc.c create mode 100644 ffmpeg/libavformat/ape.c create mode 100644 ffmpeg/libavformat/apetag.c create mode 100644 ffmpeg/libavformat/apetag.h create mode 100644 ffmpeg/libavformat/apetagenc.c create mode 100644 ffmpeg/libavformat/aqtitledec.c create mode 100644 ffmpeg/libavformat/asf.c create mode 100644 ffmpeg/libavformat/asf.h create mode 100644 ffmpeg/libavformat/asfcrypt.c create mode 100644 ffmpeg/libavformat/asfcrypt.h create mode 100644 ffmpeg/libavformat/asfdec.c create mode 100644 ffmpeg/libavformat/asfenc.c create mode 100644 ffmpeg/libavformat/assdec.c create mode 100644 ffmpeg/libavformat/assenc.c create mode 100644 ffmpeg/libavformat/ast.c create mode 100644 ffmpeg/libavformat/ast.h create mode 100644 ffmpeg/libavformat/astdec.c create mode 100644 ffmpeg/libavformat/astenc.c create mode 100644 ffmpeg/libavformat/au.c create mode 100644 ffmpeg/libavformat/audiointerleave.c create mode 100644 ffmpeg/libavformat/audiointerleave.h create mode 100644 ffmpeg/libavformat/avc.c create mode 100644 ffmpeg/libavformat/avc.h create mode 100644 ffmpeg/libavformat/avformat.h create mode 100644 ffmpeg/libavformat/avi.h create mode 100644 ffmpeg/libavformat/avidec.c create mode 100644 ffmpeg/libavformat/avienc.c create mode 100644 ffmpeg/libavformat/avio.c create mode 100644 ffmpeg/libavformat/avio.h create mode 100644 ffmpeg/libavformat/avio_internal.h create mode 100644 ffmpeg/libavformat/aviobuf.c create mode 100644 ffmpeg/libavformat/avisynth.c create mode 100644 ffmpeg/libavformat/avlanguage.c create mode 100644 ffmpeg/libavformat/avlanguage.h create mode 100644 ffmpeg/libavformat/avr.c create mode 100644 ffmpeg/libavformat/avs.c create mode 100644 ffmpeg/libavformat/bethsoftvid.c create mode 100644 ffmpeg/libavformat/bfi.c create mode 100644 ffmpeg/libavformat/bink.c create mode 100644 ffmpeg/libavformat/bintext.c create mode 100644 ffmpeg/libavformat/bit.c create mode 100644 ffmpeg/libavformat/bluray.c create mode 100644 ffmpeg/libavformat/bmv.c create mode 100644 ffmpeg/libavformat/brstm.c create mode 100644 ffmpeg/libavformat/c93.c create mode 100644 ffmpeg/libavformat/cache.c create mode 100644 ffmpeg/libavformat/caf.c create mode 100644 ffmpeg/libavformat/caf.h create mode 100644 ffmpeg/libavformat/cafdec.c create mode 100644 ffmpeg/libavformat/cafenc.c create mode 100644 ffmpeg/libavformat/cavsvideodec.c create mode 100644 ffmpeg/libavformat/cdg.c create mode 100644 ffmpeg/libavformat/cdxl.c create mode 100644 ffmpeg/libavformat/concat.c create mode 100644 ffmpeg/libavformat/concatdec.c create mode 100644 ffmpeg/libavformat/crcenc.c create mode 100644 ffmpeg/libavformat/crypto.c create mode 100644 ffmpeg/libavformat/cutils.c create mode 100644 ffmpeg/libavformat/data_uri.c create mode 100644 ffmpeg/libavformat/daud.c create mode 100644 ffmpeg/libavformat/dfa.c create mode 100644 ffmpeg/libavformat/diracdec.c create mode 100644 ffmpeg/libavformat/dnxhddec.c create mode 100644 ffmpeg/libavformat/dsicin.c create mode 100644 ffmpeg/libavformat/dtsdec.c create mode 100644 ffmpeg/libavformat/dtshddec.c create mode 100644 ffmpeg/libavformat/dv.c create mode 100644 ffmpeg/libavformat/dv.h create mode 100644 ffmpeg/libavformat/dvenc.c create mode 100644 ffmpeg/libavformat/dxa.c create mode 100644 ffmpeg/libavformat/eacdata.c create mode 100644 ffmpeg/libavformat/electronicarts.c create mode 100644 ffmpeg/libavformat/epafdec.c create mode 100644 ffmpeg/libavformat/ffm.h create mode 100644 ffmpeg/libavformat/ffmdec.c create mode 100644 ffmpeg/libavformat/ffmenc.c create mode 100644 ffmpeg/libavformat/ffmeta.h create mode 100644 ffmpeg/libavformat/ffmetadec.c create mode 100644 ffmpeg/libavformat/ffmetaenc.c create mode 100644 ffmpeg/libavformat/file.c create mode 100644 ffmpeg/libavformat/filmstripdec.c create mode 100644 ffmpeg/libavformat/filmstripenc.c create mode 100644 ffmpeg/libavformat/flacdec.c create mode 100644 ffmpeg/libavformat/flacenc.c create mode 100644 ffmpeg/libavformat/flacenc.h create mode 100644 ffmpeg/libavformat/flacenc_header.c create mode 100644 ffmpeg/libavformat/flic.c create mode 100644 ffmpeg/libavformat/flv.h create mode 100644 ffmpeg/libavformat/flvdec.c create mode 100644 ffmpeg/libavformat/flvenc.c create mode 100644 ffmpeg/libavformat/framecrcenc.c create mode 100644 ffmpeg/libavformat/framehash.c create mode 100644 ffmpeg/libavformat/frmdec.c create mode 100644 ffmpeg/libavformat/g722.c create mode 100644 ffmpeg/libavformat/g723_1.c create mode 100644 ffmpeg/libavformat/g729dec.c create mode 100644 ffmpeg/libavformat/gif.c create mode 100644 ffmpeg/libavformat/gifdec.c create mode 100644 ffmpeg/libavformat/gopher.c create mode 100644 ffmpeg/libavformat/gsmdec.c create mode 100644 ffmpeg/libavformat/gxf.c create mode 100644 ffmpeg/libavformat/gxf.h create mode 100644 ffmpeg/libavformat/gxfenc.c create mode 100644 ffmpeg/libavformat/h261dec.c create mode 100644 ffmpeg/libavformat/h263dec.c create mode 100644 ffmpeg/libavformat/h264dec.c create mode 100644 ffmpeg/libavformat/hls.c create mode 100644 ffmpeg/libavformat/hlsenc.c create mode 100644 ffmpeg/libavformat/hlsproto.c create mode 100644 ffmpeg/libavformat/http.c create mode 100644 ffmpeg/libavformat/http.h create mode 100644 ffmpeg/libavformat/httpauth.c create mode 100644 ffmpeg/libavformat/httpauth.h create mode 100644 ffmpeg/libavformat/icodec.c create mode 100644 ffmpeg/libavformat/icoenc.c create mode 100644 ffmpeg/libavformat/id3v1.c create mode 100644 ffmpeg/libavformat/id3v1.h create mode 100644 ffmpeg/libavformat/id3v2.c create mode 100644 ffmpeg/libavformat/id3v2.h create mode 100644 ffmpeg/libavformat/id3v2enc.c create mode 100644 ffmpeg/libavformat/idcin.c create mode 100644 ffmpeg/libavformat/idroqdec.c create mode 100644 ffmpeg/libavformat/idroqenc.c create mode 100644 ffmpeg/libavformat/iff.c create mode 100644 ffmpeg/libavformat/ilbc.c create mode 100644 ffmpeg/libavformat/img2.c create mode 100644 ffmpeg/libavformat/img2dec.c create mode 100644 ffmpeg/libavformat/img2enc.c create mode 100644 ffmpeg/libavformat/ingenientdec.c create mode 100644 ffmpeg/libavformat/internal.h create mode 100644 ffmpeg/libavformat/ipmovie.c create mode 100644 ffmpeg/libavformat/ircam.c create mode 100644 ffmpeg/libavformat/ircam.h create mode 100644 ffmpeg/libavformat/ircamdec.c create mode 100644 ffmpeg/libavformat/ircamenc.c create mode 100644 ffmpeg/libavformat/isom.c create mode 100644 ffmpeg/libavformat/isom.h create mode 100644 ffmpeg/libavformat/iss.c create mode 100644 ffmpeg/libavformat/iv8.c create mode 100644 ffmpeg/libavformat/ivfdec.c create mode 100644 ffmpeg/libavformat/ivfenc.c create mode 100644 ffmpeg/libavformat/jacosubdec.c create mode 100644 ffmpeg/libavformat/jacosubenc.c create mode 100644 ffmpeg/libavformat/jvdec.c create mode 100644 ffmpeg/libavformat/latmenc.c create mode 100644 ffmpeg/libavformat/libavformat.pc create mode 100644 ffmpeg/libavformat/libavformat.v create mode 100644 ffmpeg/libavformat/libmodplug.c create mode 100644 ffmpeg/libavformat/libnut.c create mode 100644 ffmpeg/libavformat/librtmp.c create mode 100644 ffmpeg/libavformat/lmlm4.c create mode 100644 ffmpeg/libavformat/loasdec.c create mode 100644 ffmpeg/libavformat/log2_tab.c create mode 100644 ffmpeg/libavformat/lvfdec.c create mode 100644 ffmpeg/libavformat/lxfdec.c create mode 100644 ffmpeg/libavformat/m4vdec.c create mode 100644 ffmpeg/libavformat/matroska.c create mode 100644 ffmpeg/libavformat/matroska.h create mode 100644 ffmpeg/libavformat/matroskadec.c create mode 100644 ffmpeg/libavformat/matroskaenc.c create mode 100644 ffmpeg/libavformat/md5enc.c create mode 100644 ffmpeg/libavformat/md5proto.c create mode 100644 ffmpeg/libavformat/metadata.c create mode 100644 ffmpeg/libavformat/metadata.h create mode 100644 ffmpeg/libavformat/mgsts.c create mode 100644 ffmpeg/libavformat/microdvddec.c create mode 100644 ffmpeg/libavformat/microdvdenc.c create mode 100644 ffmpeg/libavformat/mkvtimestamp_v2.c create mode 100644 ffmpeg/libavformat/mm.c create mode 100644 ffmpeg/libavformat/mmf.c create mode 100644 ffmpeg/libavformat/mms.c create mode 100644 ffmpeg/libavformat/mms.h create mode 100644 ffmpeg/libavformat/mmsh.c create mode 100644 ffmpeg/libavformat/mmst.c create mode 100644 ffmpeg/libavformat/mov.c create mode 100644 ffmpeg/libavformat/mov_chan.c create mode 100644 ffmpeg/libavformat/mov_chan.h create mode 100644 ffmpeg/libavformat/movenc.c create mode 100644 ffmpeg/libavformat/movenc.h create mode 100644 ffmpeg/libavformat/movenchint.c create mode 100644 ffmpeg/libavformat/mp3dec.c create mode 100644 ffmpeg/libavformat/mp3enc.c create mode 100644 ffmpeg/libavformat/mpc.c create mode 100644 ffmpeg/libavformat/mpc8.c create mode 100644 ffmpeg/libavformat/mpeg.c create mode 100644 ffmpeg/libavformat/mpeg.h create mode 100644 ffmpeg/libavformat/mpegenc.c create mode 100644 ffmpeg/libavformat/mpegts.c create mode 100644 ffmpeg/libavformat/mpegts.h create mode 100644 ffmpeg/libavformat/mpegtsenc.c create mode 100644 ffmpeg/libavformat/mpegvideodec.c create mode 100644 ffmpeg/libavformat/mpjpeg.c create mode 100644 ffmpeg/libavformat/mpl2dec.c create mode 100644 ffmpeg/libavformat/mpsubdec.c create mode 100644 ffmpeg/libavformat/msnwc_tcp.c create mode 100644 ffmpeg/libavformat/mtv.c create mode 100644 ffmpeg/libavformat/mux.c create mode 100644 ffmpeg/libavformat/mvdec.c create mode 100644 ffmpeg/libavformat/mvi.c create mode 100644 ffmpeg/libavformat/mxf.c create mode 100644 ffmpeg/libavformat/mxf.h create mode 100644 ffmpeg/libavformat/mxfdec.c create mode 100644 ffmpeg/libavformat/mxfenc.c create mode 100644 ffmpeg/libavformat/mxg.c create mode 100644 ffmpeg/libavformat/ncdec.c create mode 100644 ffmpeg/libavformat/network.c create mode 100644 ffmpeg/libavformat/network.h create mode 100644 ffmpeg/libavformat/nistspheredec.c create mode 100644 ffmpeg/libavformat/noproxy-test.c create mode 100644 ffmpeg/libavformat/nsvdec.c create mode 100644 ffmpeg/libavformat/nullenc.c create mode 100644 ffmpeg/libavformat/nut.c create mode 100644 ffmpeg/libavformat/nut.h create mode 100644 ffmpeg/libavformat/nutdec.c create mode 100644 ffmpeg/libavformat/nutenc.c create mode 100644 ffmpeg/libavformat/nuv.c create mode 100644 ffmpeg/libavformat/oggdec.c create mode 100644 ffmpeg/libavformat/oggdec.h create mode 100644 ffmpeg/libavformat/oggenc.c create mode 100644 ffmpeg/libavformat/oggparsecelt.c create mode 100644 ffmpeg/libavformat/oggparsedirac.c create mode 100644 ffmpeg/libavformat/oggparseflac.c create mode 100644 ffmpeg/libavformat/oggparseogm.c create mode 100644 ffmpeg/libavformat/oggparseopus.c create mode 100644 ffmpeg/libavformat/oggparseskeleton.c create mode 100644 ffmpeg/libavformat/oggparsespeex.c create mode 100644 ffmpeg/libavformat/oggparsetheora.c create mode 100644 ffmpeg/libavformat/oggparsevorbis.c create mode 100644 ffmpeg/libavformat/oma.c create mode 100644 ffmpeg/libavformat/oma.h create mode 100644 ffmpeg/libavformat/omadec.c create mode 100644 ffmpeg/libavformat/omaenc.c create mode 100644 ffmpeg/libavformat/options.c create mode 100644 ffmpeg/libavformat/options_table.h create mode 100644 ffmpeg/libavformat/os_support.c create mode 100644 ffmpeg/libavformat/os_support.h create mode 100644 ffmpeg/libavformat/paf.c create mode 100644 ffmpeg/libavformat/pcm.c create mode 100644 ffmpeg/libavformat/pcm.h create mode 100644 ffmpeg/libavformat/pcmdec.c create mode 100644 ffmpeg/libavformat/pcmenc.c create mode 100644 ffmpeg/libavformat/pjsdec.c create mode 100644 ffmpeg/libavformat/pmpdec.c create mode 100644 ffmpeg/libavformat/psxstr.c create mode 100644 ffmpeg/libavformat/pva.c create mode 100644 ffmpeg/libavformat/pvfdec.c create mode 100644 ffmpeg/libavformat/qcp.c create mode 100644 ffmpeg/libavformat/qtpalette.h create mode 100644 ffmpeg/libavformat/r3d.c create mode 100644 ffmpeg/libavformat/rawdec.c create mode 100644 ffmpeg/libavformat/rawdec.h create mode 100644 ffmpeg/libavformat/rawenc.c create mode 100644 ffmpeg/libavformat/rawenc.h create mode 100644 ffmpeg/libavformat/rawvideodec.c create mode 100644 ffmpeg/libavformat/rdt.c create mode 100644 ffmpeg/libavformat/rdt.h create mode 100644 ffmpeg/libavformat/realtextdec.c create mode 100644 ffmpeg/libavformat/riff.c create mode 100644 ffmpeg/libavformat/riff.h create mode 100644 ffmpeg/libavformat/rl2.c create mode 100644 ffmpeg/libavformat/rm.c create mode 100644 ffmpeg/libavformat/rm.h create mode 100644 ffmpeg/libavformat/rmdec.c create mode 100644 ffmpeg/libavformat/rmenc.c create mode 100644 ffmpeg/libavformat/rmsipr.c create mode 100644 ffmpeg/libavformat/rmsipr.h create mode 100644 ffmpeg/libavformat/rpl.c create mode 100644 ffmpeg/libavformat/rso.c create mode 100644 ffmpeg/libavformat/rso.h create mode 100644 ffmpeg/libavformat/rsodec.c create mode 100644 ffmpeg/libavformat/rsoenc.c create mode 100644 ffmpeg/libavformat/rtmp.h create mode 100644 ffmpeg/libavformat/rtmpcrypt.c create mode 100644 ffmpeg/libavformat/rtmpcrypt.h create mode 100644 ffmpeg/libavformat/rtmpdh.c create mode 100644 ffmpeg/libavformat/rtmpdh.h create mode 100644 ffmpeg/libavformat/rtmphttp.c create mode 100644 ffmpeg/libavformat/rtmppkt.c create mode 100644 ffmpeg/libavformat/rtmppkt.h create mode 100644 ffmpeg/libavformat/rtmpproto.c create mode 100644 ffmpeg/libavformat/rtp.c create mode 100644 ffmpeg/libavformat/rtp.h create mode 100644 ffmpeg/libavformat/rtpdec.c create mode 100644 ffmpeg/libavformat/rtpdec.h create mode 100644 ffmpeg/libavformat/rtpdec_amr.c create mode 100644 ffmpeg/libavformat/rtpdec_asf.c create mode 100644 ffmpeg/libavformat/rtpdec_formats.h create mode 100644 ffmpeg/libavformat/rtpdec_g726.c create mode 100644 ffmpeg/libavformat/rtpdec_h263.c create mode 100644 ffmpeg/libavformat/rtpdec_h263_rfc2190.c create mode 100644 ffmpeg/libavformat/rtpdec_h264.c create mode 100644 ffmpeg/libavformat/rtpdec_ilbc.c create mode 100644 ffmpeg/libavformat/rtpdec_jpeg.c create mode 100644 ffmpeg/libavformat/rtpdec_latm.c create mode 100644 ffmpeg/libavformat/rtpdec_mpeg12.c create mode 100644 ffmpeg/libavformat/rtpdec_mpeg4.c create mode 100644 ffmpeg/libavformat/rtpdec_mpegts.c create mode 100644 ffmpeg/libavformat/rtpdec_qcelp.c create mode 100644 ffmpeg/libavformat/rtpdec_qdm2.c create mode 100644 ffmpeg/libavformat/rtpdec_qt.c create mode 100644 ffmpeg/libavformat/rtpdec_svq3.c create mode 100644 ffmpeg/libavformat/rtpdec_vp8.c create mode 100644 ffmpeg/libavformat/rtpdec_xiph.c create mode 100644 ffmpeg/libavformat/rtpenc.c create mode 100644 ffmpeg/libavformat/rtpenc.h create mode 100644 ffmpeg/libavformat/rtpenc_aac.c create mode 100644 ffmpeg/libavformat/rtpenc_amr.c create mode 100644 ffmpeg/libavformat/rtpenc_chain.c create mode 100644 ffmpeg/libavformat/rtpenc_chain.h create mode 100644 ffmpeg/libavformat/rtpenc_h263.c create mode 100644 ffmpeg/libavformat/rtpenc_h263_rfc2190.c create mode 100644 ffmpeg/libavformat/rtpenc_h264.c create mode 100644 ffmpeg/libavformat/rtpenc_jpeg.c create mode 100644 ffmpeg/libavformat/rtpenc_latm.c create mode 100644 ffmpeg/libavformat/rtpenc_mpv.c create mode 100644 ffmpeg/libavformat/rtpenc_vp8.c create mode 100644 ffmpeg/libavformat/rtpenc_xiph.c create mode 100644 ffmpeg/libavformat/rtpproto.c create mode 100644 ffmpeg/libavformat/rtsp.c create mode 100644 ffmpeg/libavformat/rtsp.h create mode 100644 ffmpeg/libavformat/rtspcodes.h create mode 100644 ffmpeg/libavformat/rtspdec.c create mode 100644 ffmpeg/libavformat/rtspenc.c create mode 100644 ffmpeg/libavformat/samidec.c create mode 100644 ffmpeg/libavformat/sapdec.c create mode 100644 ffmpeg/libavformat/sapenc.c create mode 100644 ffmpeg/libavformat/sauce.c create mode 100644 ffmpeg/libavformat/sauce.h create mode 100644 ffmpeg/libavformat/sbgdec.c create mode 100644 ffmpeg/libavformat/sctp.c create mode 100644 ffmpeg/libavformat/sdp.c create mode 100644 ffmpeg/libavformat/seek-test.c create mode 100644 ffmpeg/libavformat/seek.c create mode 100644 ffmpeg/libavformat/seek.h create mode 100644 ffmpeg/libavformat/segafilm.c create mode 100644 ffmpeg/libavformat/segment.c create mode 100644 ffmpeg/libavformat/sierravmd.c create mode 100644 ffmpeg/libavformat/siff.c create mode 100644 ffmpeg/libavformat/smacker.c create mode 100644 ffmpeg/libavformat/smjpeg.c create mode 100644 ffmpeg/libavformat/smjpeg.h create mode 100644 ffmpeg/libavformat/smjpegdec.c create mode 100644 ffmpeg/libavformat/smjpegenc.c create mode 100644 ffmpeg/libavformat/smoothstreamingenc.c create mode 100644 ffmpeg/libavformat/smush.c create mode 100644 ffmpeg/libavformat/sol.c create mode 100644 ffmpeg/libavformat/sox.h create mode 100644 ffmpeg/libavformat/soxdec.c create mode 100644 ffmpeg/libavformat/soxenc.c create mode 100644 ffmpeg/libavformat/spdif.c create mode 100644 ffmpeg/libavformat/spdif.h create mode 100644 ffmpeg/libavformat/spdifdec.c create mode 100644 ffmpeg/libavformat/spdifenc.c create mode 100644 ffmpeg/libavformat/srtdec.c create mode 100644 ffmpeg/libavformat/srtenc.c create mode 100644 ffmpeg/libavformat/srtp.c create mode 100644 ffmpeg/libavformat/srtp.h create mode 100644 ffmpeg/libavformat/srtpproto.c create mode 100644 ffmpeg/libavformat/subtitles.c create mode 100644 ffmpeg/libavformat/subtitles.h create mode 100644 ffmpeg/libavformat/subviewer1dec.c create mode 100644 ffmpeg/libavformat/subviewerdec.c create mode 100644 ffmpeg/libavformat/swf.c create mode 100644 ffmpeg/libavformat/swf.h create mode 100644 ffmpeg/libavformat/swfdec.c create mode 100644 ffmpeg/libavformat/swfenc.c create mode 100644 ffmpeg/libavformat/takdec.c create mode 100644 ffmpeg/libavformat/tcp.c create mode 100644 ffmpeg/libavformat/tedcaptionsdec.c create mode 100644 ffmpeg/libavformat/tee.c create mode 100644 ffmpeg/libavformat/thp.c create mode 100644 ffmpeg/libavformat/tiertexseq.c create mode 100644 ffmpeg/libavformat/tls.c create mode 100644 ffmpeg/libavformat/tmv.c create mode 100644 ffmpeg/libavformat/tta.c create mode 100644 ffmpeg/libavformat/tty.c create mode 100644 ffmpeg/libavformat/txd.c create mode 100644 ffmpeg/libavformat/udp.c create mode 100644 ffmpeg/libavformat/url-test.c create mode 100644 ffmpeg/libavformat/url.h create mode 100644 ffmpeg/libavformat/urldecode.c create mode 100644 ffmpeg/libavformat/urldecode.h create mode 100644 ffmpeg/libavformat/utils.c create mode 100644 ffmpeg/libavformat/vc1test.c create mode 100644 ffmpeg/libavformat/vc1testenc.c create mode 100644 ffmpeg/libavformat/version.h create mode 100644 ffmpeg/libavformat/vivo.c create mode 100644 ffmpeg/libavformat/voc.c create mode 100644 ffmpeg/libavformat/voc.h create mode 100644 ffmpeg/libavformat/vocdec.c create mode 100644 ffmpeg/libavformat/vocenc.c create mode 100644 ffmpeg/libavformat/vorbiscomment.c create mode 100644 ffmpeg/libavformat/vorbiscomment.h create mode 100644 ffmpeg/libavformat/vplayerdec.c create mode 100644 ffmpeg/libavformat/vqf.c create mode 100644 ffmpeg/libavformat/w64.c create mode 100644 ffmpeg/libavformat/w64.h create mode 100644 ffmpeg/libavformat/wavdec.c create mode 100644 ffmpeg/libavformat/wavenc.c create mode 100644 ffmpeg/libavformat/wc3movie.c create mode 100644 ffmpeg/libavformat/webvttdec.c create mode 100644 ffmpeg/libavformat/westwood_aud.c create mode 100644 ffmpeg/libavformat/westwood_vqa.c create mode 100644 ffmpeg/libavformat/wtv.c create mode 100644 ffmpeg/libavformat/wtv.h create mode 100644 ffmpeg/libavformat/wtvdec.c create mode 100644 ffmpeg/libavformat/wtvenc.c create mode 100644 ffmpeg/libavformat/wv.c create mode 100644 ffmpeg/libavformat/wvenc.c create mode 100644 ffmpeg/libavformat/xa.c create mode 100644 ffmpeg/libavformat/xmv.c create mode 100644 ffmpeg/libavformat/xwma.c create mode 100644 ffmpeg/libavformat/yop.c create mode 100644 ffmpeg/libavformat/yuv4mpeg.c create mode 100644 ffmpeg/libavresample/Makefile create mode 100644 ffmpeg/libavresample/arm/Makefile create mode 100644 ffmpeg/libavresample/arm/audio_convert_init.c create mode 100644 ffmpeg/libavresample/arm/audio_convert_neon.S create mode 100644 ffmpeg/libavresample/audio_convert.c create mode 100644 ffmpeg/libavresample/audio_convert.h create mode 100644 ffmpeg/libavresample/audio_data.c create mode 100644 ffmpeg/libavresample/audio_data.h create mode 100644 ffmpeg/libavresample/audio_mix.c create mode 100644 ffmpeg/libavresample/audio_mix.h create mode 100644 ffmpeg/libavresample/audio_mix_matrix.c create mode 100644 ffmpeg/libavresample/avresample-test.c create mode 100644 ffmpeg/libavresample/avresample.h create mode 100644 ffmpeg/libavresample/dither.c create mode 100644 ffmpeg/libavresample/dither.h create mode 100644 ffmpeg/libavresample/internal.h create mode 100644 ffmpeg/libavresample/libavresample.v create mode 100644 ffmpeg/libavresample/options.c create mode 100644 ffmpeg/libavresample/resample.c create mode 100644 ffmpeg/libavresample/resample.h create mode 100644 ffmpeg/libavresample/resample_template.c create mode 100644 ffmpeg/libavresample/utils.c create mode 100644 ffmpeg/libavresample/version.h create mode 100644 ffmpeg/libavresample/x86/Makefile create mode 100644 ffmpeg/libavresample/x86/audio_convert.asm create mode 100644 ffmpeg/libavresample/x86/audio_convert_init.c create mode 100644 ffmpeg/libavresample/x86/audio_mix.asm create mode 100644 ffmpeg/libavresample/x86/audio_mix_init.c create mode 100644 ffmpeg/libavresample/x86/dither.asm create mode 100644 ffmpeg/libavresample/x86/dither_init.c create mode 100644 ffmpeg/libavresample/x86/util.asm create mode 100644 ffmpeg/libavutil/Makefile create mode 100644 ffmpeg/libavutil/adler32.c create mode 100644 ffmpeg/libavutil/adler32.h create mode 100644 ffmpeg/libavutil/aes.c create mode 100644 ffmpeg/libavutil/aes.h create mode 100644 ffmpeg/libavutil/arm/Makefile create mode 100644 ffmpeg/libavutil/arm/asm.S create mode 100644 ffmpeg/libavutil/arm/bswap.h create mode 100644 ffmpeg/libavutil/arm/cpu.c create mode 100644 ffmpeg/libavutil/arm/cpu.h create mode 100644 ffmpeg/libavutil/arm/float_dsp_arm.h create mode 100644 ffmpeg/libavutil/arm/float_dsp_init_arm.c create mode 100644 ffmpeg/libavutil/arm/float_dsp_init_neon.c create mode 100644 ffmpeg/libavutil/arm/float_dsp_init_vfp.c create mode 100644 ffmpeg/libavutil/arm/float_dsp_neon.S create mode 100644 ffmpeg/libavutil/arm/float_dsp_vfp.S create mode 100644 ffmpeg/libavutil/arm/intmath.h create mode 100644 ffmpeg/libavutil/arm/intreadwrite.h create mode 100644 ffmpeg/libavutil/arm/timer.h create mode 100644 ffmpeg/libavutil/atomic.c create mode 100644 ffmpeg/libavutil/atomic.h create mode 100644 ffmpeg/libavutil/atomic_gcc.h create mode 100644 ffmpeg/libavutil/atomic_suncc.h create mode 100644 ffmpeg/libavutil/atomic_win32.h create mode 100644 ffmpeg/libavutil/attributes.h create mode 100644 ffmpeg/libavutil/audio_fifo.c create mode 100644 ffmpeg/libavutil/audio_fifo.h create mode 100644 ffmpeg/libavutil/audioconvert.h create mode 100644 ffmpeg/libavutil/avassert.h create mode 100644 ffmpeg/libavutil/avconfig.h create mode 100644 ffmpeg/libavutil/avr32/bswap.h create mode 100644 ffmpeg/libavutil/avr32/intreadwrite.h create mode 100644 ffmpeg/libavutil/avstring.c create mode 100644 ffmpeg/libavutil/avstring.h create mode 100644 ffmpeg/libavutil/avutil.h create mode 100644 ffmpeg/libavutil/base64.c create mode 100644 ffmpeg/libavutil/base64.h create mode 100644 ffmpeg/libavutil/bfin/bswap.h create mode 100644 ffmpeg/libavutil/bfin/timer.h create mode 100644 ffmpeg/libavutil/blowfish.c create mode 100644 ffmpeg/libavutil/blowfish.h create mode 100644 ffmpeg/libavutil/bprint.c create mode 100644 ffmpeg/libavutil/bprint.h create mode 100644 ffmpeg/libavutil/bswap.h create mode 100644 ffmpeg/libavutil/buffer.c create mode 100644 ffmpeg/libavutil/buffer.h create mode 100644 ffmpeg/libavutil/buffer_internal.h create mode 100644 ffmpeg/libavutil/channel_layout.c create mode 100644 ffmpeg/libavutil/channel_layout.h create mode 100644 ffmpeg/libavutil/colorspace.h create mode 100644 ffmpeg/libavutil/common.h create mode 100644 ffmpeg/libavutil/cpu.c create mode 100644 ffmpeg/libavutil/cpu.h create mode 100644 ffmpeg/libavutil/crc.c create mode 100644 ffmpeg/libavutil/crc.h create mode 100644 ffmpeg/libavutil/des.c create mode 100644 ffmpeg/libavutil/des.h create mode 100644 ffmpeg/libavutil/dict.c create mode 100644 ffmpeg/libavutil/dict.h create mode 100644 ffmpeg/libavutil/error.c create mode 100644 ffmpeg/libavutil/error.h create mode 100644 ffmpeg/libavutil/eval.c create mode 100644 ffmpeg/libavutil/eval.h create mode 100644 ffmpeg/libavutil/fifo.c create mode 100644 ffmpeg/libavutil/fifo.h create mode 100644 ffmpeg/libavutil/file.c create mode 100644 ffmpeg/libavutil/file.h create mode 100644 ffmpeg/libavutil/float_dsp.c create mode 100644 ffmpeg/libavutil/float_dsp.h create mode 100644 ffmpeg/libavutil/frame.c create mode 100644 ffmpeg/libavutil/frame.h create mode 100644 ffmpeg/libavutil/hmac.c create mode 100644 ffmpeg/libavutil/hmac.h create mode 100644 ffmpeg/libavutil/imgutils.c create mode 100644 ffmpeg/libavutil/imgutils.h create mode 100644 ffmpeg/libavutil/integer.c create mode 100644 ffmpeg/libavutil/integer.h create mode 100644 ffmpeg/libavutil/internal.h create mode 100644 ffmpeg/libavutil/intfloat.h create mode 100644 ffmpeg/libavutil/intfloat_readwrite.c create mode 100644 ffmpeg/libavutil/intfloat_readwrite.h create mode 100644 ffmpeg/libavutil/intmath.c create mode 100644 ffmpeg/libavutil/intmath.h create mode 100644 ffmpeg/libavutil/intreadwrite.h create mode 100644 ffmpeg/libavutil/lfg.c create mode 100644 ffmpeg/libavutil/lfg.h create mode 100644 ffmpeg/libavutil/libavutil.pc create mode 100644 ffmpeg/libavutil/libavutil.v create mode 100644 ffmpeg/libavutil/libm.h create mode 100644 ffmpeg/libavutil/lls.c create mode 100644 ffmpeg/libavutil/lls.h create mode 100644 ffmpeg/libavutil/log.c create mode 100644 ffmpeg/libavutil/log.h create mode 100644 ffmpeg/libavutil/log2_tab.c create mode 100644 ffmpeg/libavutil/lzo.c create mode 100644 ffmpeg/libavutil/lzo.h create mode 100644 ffmpeg/libavutil/mathematics.c create mode 100644 ffmpeg/libavutil/mathematics.h create mode 100644 ffmpeg/libavutil/md5.c create mode 100644 ffmpeg/libavutil/md5.h create mode 100644 ffmpeg/libavutil/mem.c create mode 100644 ffmpeg/libavutil/mem.h create mode 100644 ffmpeg/libavutil/mips/Makefile create mode 100644 ffmpeg/libavutil/mips/float_dsp_mips.c create mode 100644 ffmpeg/libavutil/mips/intreadwrite.h create mode 100644 ffmpeg/libavutil/mips/libm_mips.h create mode 100644 ffmpeg/libavutil/old_pix_fmts.h create mode 100644 ffmpeg/libavutil/opt.c create mode 100644 ffmpeg/libavutil/opt.h create mode 100644 ffmpeg/libavutil/parseutils.c create mode 100644 ffmpeg/libavutil/parseutils.h create mode 100644 ffmpeg/libavutil/pca.c create mode 100644 ffmpeg/libavutil/pca.h create mode 100644 ffmpeg/libavutil/pixdesc.c create mode 100644 ffmpeg/libavutil/pixdesc.h create mode 100644 ffmpeg/libavutil/pixfmt.h create mode 100644 ffmpeg/libavutil/ppc/Makefile create mode 100644 ffmpeg/libavutil/ppc/cpu.c create mode 100644 ffmpeg/libavutil/ppc/float_dsp_altivec.c create mode 100644 ffmpeg/libavutil/ppc/float_dsp_altivec.h create mode 100644 ffmpeg/libavutil/ppc/float_dsp_init.c create mode 100644 ffmpeg/libavutil/ppc/intreadwrite.h create mode 100644 ffmpeg/libavutil/ppc/timer.h create mode 100644 ffmpeg/libavutil/ppc/types_altivec.h create mode 100644 ffmpeg/libavutil/ppc/util_altivec.h create mode 100644 ffmpeg/libavutil/qsort.h create mode 100644 ffmpeg/libavutil/random_seed.c create mode 100644 ffmpeg/libavutil/random_seed.h create mode 100644 ffmpeg/libavutil/rational.c create mode 100644 ffmpeg/libavutil/rational.h create mode 100644 ffmpeg/libavutil/rc4.c create mode 100644 ffmpeg/libavutil/rc4.h create mode 100644 ffmpeg/libavutil/samplefmt.c create mode 100644 ffmpeg/libavutil/samplefmt.h create mode 100644 ffmpeg/libavutil/sh4/bswap.h create mode 100644 ffmpeg/libavutil/sha.c create mode 100644 ffmpeg/libavutil/sha.h create mode 100644 ffmpeg/libavutil/softfloat.c create mode 100644 ffmpeg/libavutil/softfloat.h create mode 100644 ffmpeg/libavutil/time.c create mode 100644 ffmpeg/libavutil/time.h create mode 100644 ffmpeg/libavutil/timecode.c create mode 100644 ffmpeg/libavutil/timecode.h create mode 100644 ffmpeg/libavutil/timer.h create mode 100644 ffmpeg/libavutil/timestamp.h create mode 100644 ffmpeg/libavutil/tomi/intreadwrite.h create mode 100644 ffmpeg/libavutil/tree.c create mode 100644 ffmpeg/libavutil/tree.h create mode 100644 ffmpeg/libavutil/utils.c create mode 100644 ffmpeg/libavutil/version.h create mode 100644 ffmpeg/libavutil/x86/Makefile create mode 100644 ffmpeg/libavutil/x86/asm.h create mode 100644 ffmpeg/libavutil/x86/bswap.h create mode 100644 ffmpeg/libavutil/x86/cpu.c create mode 100644 ffmpeg/libavutil/x86/cpu.h create mode 100644 ffmpeg/libavutil/x86/cpuid.asm create mode 100644 ffmpeg/libavutil/x86/emms.asm create mode 100644 ffmpeg/libavutil/x86/emms.h create mode 100644 ffmpeg/libavutil/x86/float_dsp.asm create mode 100644 ffmpeg/libavutil/x86/float_dsp_init.c create mode 100644 ffmpeg/libavutil/x86/intreadwrite.h create mode 100644 ffmpeg/libavutil/x86/timer.h create mode 100644 ffmpeg/libavutil/x86/w64xmmtest.h create mode 100644 ffmpeg/libavutil/x86/x86inc.asm create mode 100644 ffmpeg/libavutil/x86/x86util.asm create mode 100644 ffmpeg/libavutil/x86_cpu.h create mode 100644 ffmpeg/libavutil/xga_font_data.c create mode 100644 ffmpeg/libavutil/xga_font_data.h create mode 100644 ffmpeg/libavutil/xtea.c create mode 100644 ffmpeg/libavutil/xtea.h create mode 100644 ffmpeg/libpostproc/Makefile create mode 100644 ffmpeg/libpostproc/libpostproc.pc create mode 100644 ffmpeg/libpostproc/libpostproc.v create mode 100644 ffmpeg/libpostproc/postprocess.c create mode 100644 ffmpeg/libpostproc/postprocess.h create mode 100644 ffmpeg/libpostproc/postprocess_altivec_template.c create mode 100644 ffmpeg/libpostproc/postprocess_internal.h create mode 100644 ffmpeg/libpostproc/postprocess_template.c create mode 100644 ffmpeg/libpostproc/version.h create mode 100644 ffmpeg/library.mak create mode 100644 ffmpeg/libswresample/Makefile create mode 100644 ffmpeg/libswresample/arm/Makefile create mode 100644 ffmpeg/libswresample/arm/audio_convert_init.c create mode 100644 ffmpeg/libswresample/arm/audio_convert_neon.S create mode 100644 ffmpeg/libswresample/audioconvert.c create mode 100644 ffmpeg/libswresample/audioconvert.h create mode 100644 ffmpeg/libswresample/dither.c create mode 100644 ffmpeg/libswresample/dither_template.c create mode 100644 ffmpeg/libswresample/libswresample.pc create mode 100644 ffmpeg/libswresample/libswresample.v create mode 100644 ffmpeg/libswresample/log2_tab.c create mode 100644 ffmpeg/libswresample/noise_shaping_data.c create mode 100644 ffmpeg/libswresample/rematrix.c create mode 100644 ffmpeg/libswresample/rematrix_template.c create mode 100644 ffmpeg/libswresample/resample.c create mode 100644 ffmpeg/libswresample/resample_template.c create mode 100644 ffmpeg/libswresample/soxr_resample.c create mode 100644 ffmpeg/libswresample/swresample-test.c create mode 100644 ffmpeg/libswresample/swresample.c create mode 100644 ffmpeg/libswresample/swresample.h create mode 100644 ffmpeg/libswresample/swresample_internal.h create mode 100644 ffmpeg/libswresample/version.h create mode 100644 ffmpeg/libswresample/x86/Makefile create mode 100644 ffmpeg/libswresample/x86/audio_convert.asm create mode 100644 ffmpeg/libswresample/x86/rematrix.asm create mode 100644 ffmpeg/libswresample/x86/resample_mmx.h create mode 100644 ffmpeg/libswresample/x86/swresample_x86.c create mode 100644 ffmpeg/libswscale/Makefile create mode 100644 ffmpeg/libswscale/bfin/Makefile create mode 100644 ffmpeg/libswscale/bfin/internal_bfin.S create mode 100644 ffmpeg/libswscale/bfin/swscale_bfin.c create mode 100644 ffmpeg/libswscale/bfin/yuv2rgb_bfin.c create mode 100644 ffmpeg/libswscale/colorspace-test.c create mode 100644 ffmpeg/libswscale/input.c create mode 100644 ffmpeg/libswscale/libswscale.pc create mode 100644 ffmpeg/libswscale/libswscale.v create mode 100644 ffmpeg/libswscale/options.c create mode 100644 ffmpeg/libswscale/output.c create mode 100644 ffmpeg/libswscale/ppc/Makefile create mode 100644 ffmpeg/libswscale/ppc/swscale_altivec.c create mode 100644 ffmpeg/libswscale/ppc/yuv2rgb_altivec.c create mode 100644 ffmpeg/libswscale/ppc/yuv2rgb_altivec.h create mode 100644 ffmpeg/libswscale/ppc/yuv2yuv_altivec.c create mode 100644 ffmpeg/libswscale/rgb2rgb.c create mode 100644 ffmpeg/libswscale/rgb2rgb.h create mode 100644 ffmpeg/libswscale/rgb2rgb_template.c create mode 100644 ffmpeg/libswscale/sparc/Makefile create mode 100644 ffmpeg/libswscale/sparc/yuv2rgb_vis.c create mode 100644 ffmpeg/libswscale/swscale-test.c create mode 100644 ffmpeg/libswscale/swscale.c create mode 100644 ffmpeg/libswscale/swscale.h create mode 100644 ffmpeg/libswscale/swscale_internal.h create mode 100644 ffmpeg/libswscale/swscale_unscaled.c create mode 100644 ffmpeg/libswscale/utils.c create mode 100644 ffmpeg/libswscale/version.h create mode 100644 ffmpeg/libswscale/x86/Makefile create mode 100644 ffmpeg/libswscale/x86/input.asm create mode 100644 ffmpeg/libswscale/x86/output.asm create mode 100644 ffmpeg/libswscale/x86/rgb2rgb.c create mode 100644 ffmpeg/libswscale/x86/rgb2rgb_template.c create mode 100644 ffmpeg/libswscale/x86/scale.asm create mode 100644 ffmpeg/libswscale/x86/swscale.c create mode 100644 ffmpeg/libswscale/x86/swscale_template.c create mode 100644 ffmpeg/libswscale/x86/w64xmmtest.c create mode 100644 ffmpeg/libswscale/x86/yuv2rgb.c create mode 100644 ffmpeg/libswscale/x86/yuv2rgb_template.c create mode 100644 ffmpeg/libswscale/yuv2rgb.c create mode 100644 ffmpeg/presets/libvpx-1080p.ffpreset create mode 100644 ffmpeg/presets/libvpx-1080p50_60.ffpreset create mode 100644 ffmpeg/presets/libvpx-360p.ffpreset create mode 100644 ffmpeg/presets/libvpx-720p.ffpreset create mode 100644 ffmpeg/presets/libvpx-720p50_60.ffpreset create mode 100644 ffmpeg/presets/libx264-ipod320.ffpreset create mode 100644 ffmpeg/presets/libx264-ipod640.ffpreset create mode 100644 ffmpeg/tests/Makefile create mode 100644 ffmpeg/tests/audiogen.c create mode 100644 ffmpeg/tests/base64.c create mode 100755 ffmpeg/tests/copycooker.sh create mode 100755 ffmpeg/tests/fate-run.sh create mode 100755 ffmpeg/tests/fate-update.sh create mode 100644 ffmpeg/tests/fate-valgrind.supp create mode 100755 ffmpeg/tests/fate.sh create mode 100644 ffmpeg/tests/fate/aac.mak create mode 100644 ffmpeg/tests/fate/ac3.mak create mode 100644 ffmpeg/tests/fate/acodec.mak create mode 100644 ffmpeg/tests/fate/adpcm.mak create mode 100644 ffmpeg/tests/fate/alac.mak create mode 100644 ffmpeg/tests/fate/als.mak create mode 100644 ffmpeg/tests/fate/amrnb.mak create mode 100644 ffmpeg/tests/fate/amrwb.mak create mode 100644 ffmpeg/tests/fate/atrac.mak create mode 100644 ffmpeg/tests/fate/audio.mak create mode 100644 ffmpeg/tests/fate/avfilter.mak create mode 100644 ffmpeg/tests/fate/avformat.mak create mode 100644 ffmpeg/tests/fate/bmp.mak create mode 100644 ffmpeg/tests/fate/cdxl.mak create mode 100644 ffmpeg/tests/fate/cover-art.mak create mode 100644 ffmpeg/tests/fate/demux.mak create mode 100644 ffmpeg/tests/fate/dfa.mak create mode 100644 ffmpeg/tests/fate/dpcm.mak create mode 100644 ffmpeg/tests/fate/ea.mak create mode 100644 ffmpeg/tests/fate/ffmpeg.mak create mode 100644 ffmpeg/tests/fate/ffprobe.mak create mode 100644 ffmpeg/tests/fate/fft.mak create mode 100644 ffmpeg/tests/fate/filter.mak create mode 100644 ffmpeg/tests/fate/flac.mak create mode 100644 ffmpeg/tests/fate/gif.mak create mode 100644 ffmpeg/tests/fate/h264.mak create mode 100644 ffmpeg/tests/fate/image.mak create mode 100644 ffmpeg/tests/fate/indeo.mak create mode 100644 ffmpeg/tests/fate/libavcodec.mak create mode 100644 ffmpeg/tests/fate/libavformat.mak create mode 100644 ffmpeg/tests/fate/libavutil.mak create mode 100644 ffmpeg/tests/fate/lossless-audio.mak create mode 100644 ffmpeg/tests/fate/lossless-video.mak create mode 100644 ffmpeg/tests/fate/microsoft.mak create mode 100644 ffmpeg/tests/fate/mp3.mak create mode 100644 ffmpeg/tests/fate/mpc.mak create mode 100644 ffmpeg/tests/fate/pcm.mak create mode 100644 ffmpeg/tests/fate/probe.mak create mode 100644 ffmpeg/tests/fate/prores.mak create mode 100644 ffmpeg/tests/fate/qt.mak create mode 100644 ffmpeg/tests/fate/qtrle.mak create mode 100644 ffmpeg/tests/fate/real.mak create mode 100644 ffmpeg/tests/fate/screen.mak create mode 100644 ffmpeg/tests/fate/seek.mak create mode 100644 ffmpeg/tests/fate/subtitles.mak create mode 100644 ffmpeg/tests/fate/utvideo.mak create mode 100644 ffmpeg/tests/fate/vcodec.mak create mode 100644 ffmpeg/tests/fate/video.mak create mode 100644 ffmpeg/tests/fate/voice.mak create mode 100644 ffmpeg/tests/fate/vorbis.mak create mode 100644 ffmpeg/tests/fate/vpx.mak create mode 100644 ffmpeg/tests/fate/vqf.mak create mode 100644 ffmpeg/tests/fate/wavpack.mak create mode 100644 ffmpeg/tests/fate/wma.mak create mode 100755 ffmpeg/tests/ffserver-regression.sh create mode 100644 ffmpeg/tests/ffserver.conf create mode 100644 ffmpeg/tests/ffserver.regression.ref create mode 100755 ffmpeg/tests/lavf-regression.sh create mode 100755 ffmpeg/tests/lavfi-regression.sh create mode 100644 ffmpeg/tests/lena.pnm create mode 100644 ffmpeg/tests/md5.sh create mode 100644 ffmpeg/tests/ref/acodec/adpcm-adx create mode 100644 ffmpeg/tests/ref/acodec/adpcm-ima_qt create mode 100644 ffmpeg/tests/ref/acodec/adpcm-ima_wav create mode 100644 ffmpeg/tests/ref/acodec/adpcm-ms create mode 100644 ffmpeg/tests/ref/acodec/adpcm-swf create mode 100644 ffmpeg/tests/ref/acodec/adpcm-yamaha create mode 100644 ffmpeg/tests/ref/acodec/adpcm_ima_qt create mode 100644 ffmpeg/tests/ref/acodec/alac create mode 100644 ffmpeg/tests/ref/acodec/flac create mode 100644 ffmpeg/tests/ref/acodec/g723_1 create mode 100644 ffmpeg/tests/ref/acodec/mp2 create mode 100644 ffmpeg/tests/ref/acodec/pcm-alaw create mode 100644 ffmpeg/tests/ref/acodec/pcm-f32be create mode 100644 ffmpeg/tests/ref/acodec/pcm-f32le create mode 100644 ffmpeg/tests/ref/acodec/pcm-f64be create mode 100644 ffmpeg/tests/ref/acodec/pcm-f64le create mode 100644 ffmpeg/tests/ref/acodec/pcm-mulaw create mode 100644 ffmpeg/tests/ref/acodec/pcm-s16be create mode 100644 ffmpeg/tests/ref/acodec/pcm-s16be_planar create mode 100644 ffmpeg/tests/ref/acodec/pcm-s16le create mode 100644 ffmpeg/tests/ref/acodec/pcm-s16le_planar create mode 100644 ffmpeg/tests/ref/acodec/pcm-s24be create mode 100644 ffmpeg/tests/ref/acodec/pcm-s24le create mode 100644 ffmpeg/tests/ref/acodec/pcm-s24le_planar create mode 100644 ffmpeg/tests/ref/acodec/pcm-s32be create mode 100644 ffmpeg/tests/ref/acodec/pcm-s32le create mode 100644 ffmpeg/tests/ref/acodec/pcm-s32le_planar create mode 100644 ffmpeg/tests/ref/acodec/pcm-s8 create mode 100644 ffmpeg/tests/ref/acodec/pcm-s8_planar create mode 100644 ffmpeg/tests/ref/acodec/pcm-u16be create mode 100644 ffmpeg/tests/ref/acodec/pcm-u16le create mode 100644 ffmpeg/tests/ref/acodec/pcm-u24be create mode 100644 ffmpeg/tests/ref/acodec/pcm-u24le create mode 100644 ffmpeg/tests/ref/acodec/pcm-u32be create mode 100644 ffmpeg/tests/ref/acodec/pcm-u32le create mode 100644 ffmpeg/tests/ref/acodec/pcm-u8 create mode 100644 ffmpeg/tests/ref/acodec/roqaudio create mode 100644 ffmpeg/tests/ref/fate/4xm-1 create mode 100644 ffmpeg/tests/ref/fate/4xm-2 create mode 100644 ffmpeg/tests/ref/fate/8bps create mode 100644 ffmpeg/tests/ref/fate/aasc create mode 100644 ffmpeg/tests/ref/fate/acodec-aref create mode 100644 ffmpeg/tests/ref/fate/adpcm-4xm create mode 100644 ffmpeg/tests/ref/fate/adpcm-afc create mode 100644 ffmpeg/tests/ref/fate/adpcm-creative create mode 100644 ffmpeg/tests/ref/fate/adpcm-creative-8-2.6bit create mode 100644 ffmpeg/tests/ref/fate/adpcm-creative-8-2bit create mode 100644 ffmpeg/tests/ref/fate/adpcm-creative-8-4bit create mode 100644 ffmpeg/tests/ref/fate/adpcm-ea-1 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ea-2 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ea-maxis-xa create mode 100644 ffmpeg/tests/ref/fate/adpcm-ea-r1 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ea-r2 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ea-r3 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-amv create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-apc create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-dk3 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-dk4 create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-ea-eacs create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-ea-sead create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-iss create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-oki create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-smjpeg create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima-ws create mode 100644 ffmpeg/tests/ref/fate/adpcm-ima_wav-stereo create mode 100644 ffmpeg/tests/ref/fate/adpcm-ms-mono create mode 100644 ffmpeg/tests/ref/fate/adpcm-thp create mode 100644 ffmpeg/tests/ref/fate/adpcm-xa create mode 100644 ffmpeg/tests/ref/fate/adpcm_ms-stereo create mode 100644 ffmpeg/tests/ref/fate/adts-demux create mode 100644 ffmpeg/tests/ref/fate/aea-demux create mode 100644 ffmpeg/tests/ref/fate/alg-mm create mode 100644 ffmpeg/tests/ref/fate/amv create mode 100644 ffmpeg/tests/ref/fate/ansi create mode 100644 ffmpeg/tests/ref/fate/ansi256 create mode 100644 ffmpeg/tests/ref/fate/armovie-escape124 create mode 100644 ffmpeg/tests/ref/fate/ast create mode 100644 ffmpeg/tests/ref/fate/auravision-v1 create mode 100644 ffmpeg/tests/ref/fate/auravision-v2 create mode 100644 ffmpeg/tests/ref/fate/avio-direct create mode 100644 ffmpeg/tests/ref/fate/avstring create mode 100644 ffmpeg/tests/ref/fate/base64 create mode 100644 ffmpeg/tests/ref/fate/bethsoft-vid create mode 100644 ffmpeg/tests/ref/fate/bfi create mode 100644 ffmpeg/tests/ref/fate/bink-demux create mode 100644 ffmpeg/tests/ref/fate/bink-video-b create mode 100644 ffmpeg/tests/ref/fate/bink-video-f create mode 100644 ffmpeg/tests/ref/fate/bink-video-i create mode 100644 ffmpeg/tests/ref/fate/blowfish create mode 100644 ffmpeg/tests/ref/fate/bmp-15bit create mode 100644 ffmpeg/tests/ref/fate/bmp-15bit-mask create mode 100644 ffmpeg/tests/ref/fate/bmp-16bit-mask create mode 100644 ffmpeg/tests/ref/fate/bmp-1bit create mode 100644 ffmpeg/tests/ref/fate/bmp-24bit create mode 100644 ffmpeg/tests/ref/fate/bmp-32bit create mode 100644 ffmpeg/tests/ref/fate/bmp-32bit-mask create mode 100644 ffmpeg/tests/ref/fate/bmp-4bit create mode 100644 ffmpeg/tests/ref/fate/bmp-4bit-os2 create mode 100644 ffmpeg/tests/ref/fate/bmp-8bit create mode 100644 ffmpeg/tests/ref/fate/bmp-8bit-os2 create mode 100644 ffmpeg/tests/ref/fate/bmp-rle4 create mode 100644 ffmpeg/tests/ref/fate/bmp-rle8 create mode 100644 ffmpeg/tests/ref/fate/bmv-audio create mode 100644 ffmpeg/tests/ref/fate/bmv-video create mode 100644 ffmpeg/tests/ref/fate/bprint create mode 100644 ffmpeg/tests/ref/fate/brstm create mode 100644 ffmpeg/tests/ref/fate/caf create mode 100644 ffmpeg/tests/ref/fate/cavs create mode 100644 ffmpeg/tests/ref/fate/cdgraphics create mode 100644 ffmpeg/tests/ref/fate/cdxl-bitline-ham6 create mode 100644 ffmpeg/tests/ref/fate/cdxl-demux create mode 100644 ffmpeg/tests/ref/fate/cdxl-ham6 create mode 100644 ffmpeg/tests/ref/fate/cdxl-ham8 create mode 100644 ffmpeg/tests/ref/fate/cdxl-pal8 create mode 100644 ffmpeg/tests/ref/fate/cdxl-pal8-small create mode 100644 ffmpeg/tests/ref/fate/cljr create mode 100644 ffmpeg/tests/ref/fate/cllc-argb create mode 100644 ffmpeg/tests/ref/fate/cllc-rgb create mode 100644 ffmpeg/tests/ref/fate/corepng create mode 100644 ffmpeg/tests/ref/fate/crc create mode 100644 ffmpeg/tests/ref/fate/creatureshock-avs create mode 100644 ffmpeg/tests/ref/fate/cscd create mode 100644 ffmpeg/tests/ref/fate/cvid-grayscale create mode 100644 ffmpeg/tests/ref/fate/cvid-palette create mode 100644 ffmpeg/tests/ref/fate/cvid-partial create mode 100644 ffmpeg/tests/ref/fate/cyberia-c93 create mode 100644 ffmpeg/tests/ref/fate/cyuv create mode 100644 ffmpeg/tests/ref/fate/d-cinema-demux create mode 100644 ffmpeg/tests/ref/fate/dcinema-encode create mode 100644 ffmpeg/tests/ref/fate/delphine-cin-audio create mode 100644 ffmpeg/tests/ref/fate/delphine-cin-video create mode 100644 ffmpeg/tests/ref/fate/deluxepaint-anm create mode 100644 ffmpeg/tests/ref/fate/dfa1 create mode 100644 ffmpeg/tests/ref/fate/dfa10 create mode 100644 ffmpeg/tests/ref/fate/dfa11 create mode 100644 ffmpeg/tests/ref/fate/dfa2 create mode 100644 ffmpeg/tests/ref/fate/dfa3 create mode 100644 ffmpeg/tests/ref/fate/dfa4 create mode 100644 ffmpeg/tests/ref/fate/dfa5 create mode 100644 ffmpeg/tests/ref/fate/dfa6 create mode 100644 ffmpeg/tests/ref/fate/dfa7 create mode 100644 ffmpeg/tests/ref/fate/dfa8 create mode 100644 ffmpeg/tests/ref/fate/dfa9 create mode 100644 ffmpeg/tests/ref/fate/dirac create mode 100644 ffmpeg/tests/ref/fate/dpcm-idroq create mode 100644 ffmpeg/tests/ref/fate/dpcm-interplay create mode 100644 ffmpeg/tests/ref/fate/dpcm-sierra create mode 100644 ffmpeg/tests/ref/fate/dpcm-xan create mode 100644 ffmpeg/tests/ref/fate/dpx create mode 100644 ffmpeg/tests/ref/fate/dxa-feeble create mode 100644 ffmpeg/tests/ref/fate/dxa-scummvm create mode 100644 ffmpeg/tests/ref/fate/dxtory create mode 100644 ffmpeg/tests/ref/fate/ea-cdata create mode 100644 ffmpeg/tests/ref/fate/ea-cmv create mode 100644 ffmpeg/tests/ref/fate/ea-mad create mode 100644 ffmpeg/tests/ref/fate/ea-tgq create mode 100644 ffmpeg/tests/ref/fate/ea-tgv-1 create mode 100644 ffmpeg/tests/ref/fate/ea-tgv-2 create mode 100644 ffmpeg/tests/ref/fate/ea-tqi create mode 100644 ffmpeg/tests/ref/fate/eval create mode 100644 ffmpeg/tests/ref/fate/ffmpeg-filter_complex create mode 100644 ffmpeg/tests/ref/fate/ffmpeg-lavfi create mode 100644 ffmpeg/tests/ref/fate/ffprobe_compact create mode 100644 ffmpeg/tests/ref/fate/ffprobe_csv create mode 100644 ffmpeg/tests/ref/fate/ffprobe_default create mode 100644 ffmpeg/tests/ref/fate/ffprobe_flat create mode 100644 ffmpeg/tests/ref/fate/ffprobe_ini create mode 100644 ffmpeg/tests/ref/fate/ffprobe_json create mode 100644 ffmpeg/tests/ref/fate/ffprobe_xml create mode 100644 ffmpeg/tests/ref/fate/fifo create mode 100644 ffmpeg/tests/ref/fate/film-cvid create mode 100644 ffmpeg/tests/ref/fate/filter-curves create mode 100644 ffmpeg/tests/ref/fate/filter-delogo create mode 100644 ffmpeg/tests/ref/fate/filter-gradfun create mode 100644 ffmpeg/tests/ref/fate/filter-hqdn3d create mode 100644 ffmpeg/tests/ref/fate/filter-metadata-ebur128 create mode 100644 ffmpeg/tests/ref/fate/filter-metadata-scenedetect create mode 100644 ffmpeg/tests/ref/fate/filter-metadata-silencedetect create mode 100644 ffmpeg/tests/ref/fate/filter-yadif-mode0 create mode 100644 ffmpeg/tests/ref/fate/filter-yadif-mode1 create mode 100644 ffmpeg/tests/ref/fate/flic-af11-palette-change create mode 100644 ffmpeg/tests/ref/fate/flic-af12 create mode 100644 ffmpeg/tests/ref/fate/flic-magiccarpet create mode 100644 ffmpeg/tests/ref/fate/force_key_frames create mode 100644 ffmpeg/tests/ref/fate/fraps-v0 create mode 100644 ffmpeg/tests/ref/fate/fraps-v1 create mode 100644 ffmpeg/tests/ref/fate/fraps-v2 create mode 100644 ffmpeg/tests/ref/fate/fraps-v3 create mode 100644 ffmpeg/tests/ref/fate/fraps-v4 create mode 100644 ffmpeg/tests/ref/fate/fraps-v5 create mode 100644 ffmpeg/tests/ref/fate/frwu create mode 100644 ffmpeg/tests/ref/fate/g722-encode create mode 100644 ffmpeg/tests/ref/fate/g722dec-1 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-1 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-2 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-3 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-4 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-5 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-6 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-7 create mode 100644 ffmpeg/tests/ref/fate/g723_1-dec-8 create mode 100644 ffmpeg/tests/ref/fate/g726-encode-2bit create mode 100644 ffmpeg/tests/ref/fate/g726-encode-3bit create mode 100644 ffmpeg/tests/ref/fate/g726-encode-4bit create mode 100644 ffmpeg/tests/ref/fate/g726-encode-5bit create mode 100644 ffmpeg/tests/ref/fate/g729-0 create mode 100644 ffmpeg/tests/ref/fate/g729-1 create mode 100644 ffmpeg/tests/ref/fate/gif-color create mode 100644 ffmpeg/tests/ref/fate/gif-demux create mode 100644 ffmpeg/tests/ref/fate/gif-disposal-restore create mode 100644 ffmpeg/tests/ref/fate/gif-gray create mode 100644 ffmpeg/tests/ref/fate/gsm-ms create mode 100644 ffmpeg/tests/ref/fate/gsm-toast create mode 100644 ffmpeg/tests/ref/fate/h264-bsf-mp4toannexb create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-aud_mw_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ba1_ft_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ba1_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ba2_sony_f create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ba3_sva_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ba_mw_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-bamq1_jvc_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-bamq2_jvc_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-banm_mw_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-basqp1_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba1_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba1_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba2_sony_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba2_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba3_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba3_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caba3_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabac_mot_fld0_full create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabac_mot_frm0_full create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabac_mot_mbaff0_full create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabac_mot_picaff0_full create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabaci3_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabast3_sony_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabastbr3_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cabref3_sand_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cacqp3_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cafi1_sva_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cama1_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cama1_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cama1_vtc_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cama2_vtc_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cama3_sand_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cama3_vtc_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camaci3_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camanl1_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camanl2_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camanl3_sand_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camasl3_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camp_mot_mbaff_l30 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-camp_mot_mbaff_l31 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl1_sony_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl1_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl1_toshiba_g create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl2_sony_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl2_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl3_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl3_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canl4_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canlma2_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-canlma3_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-capa1_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-capama3_sand_f create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-capcm1_sand_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-capcmnl1_sand_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-capm3_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-caqp1_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cavlc_mot_fld0_full_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cavlc_mot_frm0_full_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cavlc_mot_mbaff0_full_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cavlc_mot_picaff0_full_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cawp1_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cawp5_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ci1_ft_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ci_mw_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvbs3_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvcanlma2_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvfi1_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvfi1_sva_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvfi2_sony_h create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvfi2_sva_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvma1_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvma1_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmanl1_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmanl2_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmapaqp3_sony_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmaqp2_sony_g create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmaqp3_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmp_mot_fld_l30_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvmp_mot_frm_l31_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvnlfi1_sony_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvnlfi2_sony_h create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvpa1_toshiba_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvpcmnl1_sva_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvpcmnl2_sva_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvwp1_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvwp2_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvwp3_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-cvwp5_toshiba_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-fi1_sony_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-alphaconformanceg create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-bcrm_freh10 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-brcm_freh11 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-brcm_freh3 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-brcm_freh4 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-brcm_freh5 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-brcm_freh8 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-brcm_freh9 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-freh12_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-freh1_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-freh2_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-freh6 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-freh7_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext01_jvc_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext02_jvc_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext1_panasonic_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext2_panasonic_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext3_panasonic_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext4_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-frext_mmco4_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hcaff1_hhi_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hcafr1_hhi_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hcafr2_hhi_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hcafr3_hhi_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hcafr4_hhi_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hcamff1_hhi_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hi422fr10_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hi422fr13_sony_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hi422fr1_sony_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hi422fr6_sony_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpca_brcm_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcadq_brcm_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcafl_bcrm_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcaflnl_bcrm_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcalq_brcm_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcamapalq_bcrm_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcamolq_brcm_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcanl_brcm_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcaq2lq_brcm_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcv_brcm_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcvfl_bcrm_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcvflnl_bcrm_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcvmolq_brcm_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-hpcvnl_brcm_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i1_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i2_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i3_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i4_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i5_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i6_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph10i7_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i1_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i2_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i3_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i4_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i5_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i6_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-frext-pph422i7_panasonic_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-hcbp2_hhi_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-hcmp1_hhi_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-ls_sva_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-midr_mw_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mps_mw_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr1_bt_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr1_mw_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr2_mw_a create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr2_tandberg_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr3_tandberg_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr4_tandberg_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr5_tandberg_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr6_bt_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr7_bt_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr8_bt_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mr9_bt_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-mv1_brcm_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-nl1_sony_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-nl2_sony_h create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-nl3_sva_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-nlmq1_jvc_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-nlmq2_jvc_c create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-nrf_mw_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sharp_mp_field_1_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sharp_mp_field_2_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sharp_mp_field_3_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sharp_mp_paff_1r2 create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sharp_mp_paff_2r create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sl1_sva_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_ba1_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_ba2_d create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_base_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_cl1_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_fm1_e create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_nl1_b create mode 100644 ffmpeg/tests/ref/fate/h264-conformance-sva_nl2_e create mode 100644 ffmpeg/tests/ref/fate/h264-extreme-plane-pred create mode 100644 ffmpeg/tests/ref/fate/h264-interlace-crop create mode 100644 ffmpeg/tests/ref/fate/h264-lossless create mode 100644 ffmpeg/tests/ref/fate/h264-reinit-large_420_8-to-small_420_8 create mode 100644 ffmpeg/tests/ref/fate/h264-reinit-small_420_8-to-large_444_10 create mode 100644 ffmpeg/tests/ref/fate/h264-reinit-small_420_9-to-small_420_8 create mode 100644 ffmpeg/tests/ref/fate/h264-reinit-small_422_9-to-small_420_9 create mode 100644 ffmpeg/tests/ref/fate/hmac create mode 100644 ffmpeg/tests/ref/fate/id-cin-video create mode 100644 ffmpeg/tests/ref/fate/idroq-video-encode create mode 100644 ffmpeg/tests/ref/fate/iff-byterun1 create mode 100644 ffmpeg/tests/ref/fate/iff-fibonacci create mode 100644 ffmpeg/tests/ref/fate/iff-ilbm create mode 100644 ffmpeg/tests/ref/fate/iff-pcm create mode 100644 ffmpeg/tests/ref/fate/iirfilter create mode 100644 ffmpeg/tests/ref/fate/indeo2 create mode 100644 ffmpeg/tests/ref/fate/indeo3 create mode 100644 ffmpeg/tests/ref/fate/indeo4 create mode 100644 ffmpeg/tests/ref/fate/indeo5 create mode 100644 ffmpeg/tests/ref/fate/interplay-mve-16bit create mode 100644 ffmpeg/tests/ref/fate/interplay-mve-8bit create mode 100644 ffmpeg/tests/ref/fate/iv8-demux create mode 100644 ffmpeg/tests/ref/fate/jv create mode 100644 ffmpeg/tests/ref/fate/jv-demux create mode 100644 ffmpeg/tests/ref/fate/kgv1 create mode 100644 ffmpeg/tests/ref/fate/kmvc create mode 100644 ffmpeg/tests/ref/fate/lagarith-rgb24 create mode 100644 ffmpeg/tests/ref/fate/lagarith-rgb32 create mode 100644 ffmpeg/tests/ref/fate/lagarith-yuy2 create mode 100644 ffmpeg/tests/ref/fate/lagarith-yv12 create mode 100644 ffmpeg/tests/ref/fate/lmlm4-demux create mode 100644 ffmpeg/tests/ref/fate/loco-rgb create mode 100644 ffmpeg/tests/ref/fate/loco-yuy2 create mode 100644 ffmpeg/tests/ref/fate/lossless-alac create mode 100644 ffmpeg/tests/ref/fate/lossless-meridianaudio create mode 100644 ffmpeg/tests/ref/fate/lossless-monkeysaudio create mode 100644 ffmpeg/tests/ref/fate/lossless-shorten create mode 100644 ffmpeg/tests/ref/fate/lossless-tak create mode 100644 ffmpeg/tests/ref/fate/lossless-tta create mode 100644 ffmpeg/tests/ref/fate/lossless-tta-encrypted create mode 100644 ffmpeg/tests/ref/fate/lossless-wma create mode 100644 ffmpeg/tests/ref/fate/mapchan-6ch-extract-2 create mode 100644 ffmpeg/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono create mode 100644 ffmpeg/tests/ref/fate/mapchan-silent-mono create mode 100644 ffmpeg/tests/ref/fate/maxis-xa create mode 100644 ffmpeg/tests/ref/fate/md5 create mode 100644 ffmpeg/tests/ref/fate/mdec create mode 100644 ffmpeg/tests/ref/fate/mdec-v3 create mode 100644 ffmpeg/tests/ref/fate/mimic create mode 100644 ffmpeg/tests/ref/fate/mjpegb create mode 100644 ffmpeg/tests/ref/fate/motionpixels create mode 100644 ffmpeg/tests/ref/fate/mpc7-demux create mode 100644 ffmpeg/tests/ref/fate/mpc8-demux create mode 100644 ffmpeg/tests/ref/fate/mpeg2-field-enc create mode 100644 ffmpeg/tests/ref/fate/mpeg4-als-conformance-00 create mode 100644 ffmpeg/tests/ref/fate/mpeg4-als-conformance-01 create mode 100644 ffmpeg/tests/ref/fate/mpeg4-als-conformance-02 create mode 100644 ffmpeg/tests/ref/fate/mpeg4-als-conformance-03 create mode 100644 ffmpeg/tests/ref/fate/mpeg4-als-conformance-04 create mode 100644 ffmpeg/tests/ref/fate/mpeg4-als-conformance-05 create mode 100644 ffmpeg/tests/ref/fate/msmpeg4v1 create mode 100644 ffmpeg/tests/ref/fate/msrle-8bit create mode 100644 ffmpeg/tests/ref/fate/msvideo1-16bit create mode 100644 ffmpeg/tests/ref/fate/msvideo1-8bit create mode 100644 ffmpeg/tests/ref/fate/mszh create mode 100644 ffmpeg/tests/ref/fate/mtv create mode 100644 ffmpeg/tests/ref/fate/mxf-demux create mode 100644 ffmpeg/tests/ref/fate/mxpeg create mode 100644 ffmpeg/tests/ref/fate/nc-demux create mode 100644 ffmpeg/tests/ref/fate/nistsphere-demux create mode 100644 ffmpeg/tests/ref/fate/noproxy create mode 100644 ffmpeg/tests/ref/fate/nsv-demux create mode 100644 ffmpeg/tests/ref/fate/nuv-rtjpeg create mode 100644 ffmpeg/tests/ref/fate/nuv-rtjpeg-fh create mode 100644 ffmpeg/tests/ref/fate/oma-demux create mode 100644 ffmpeg/tests/ref/fate/paf-audio create mode 100644 ffmpeg/tests/ref/fate/paf-demux create mode 100644 ffmpeg/tests/ref/fate/paf-video create mode 100644 ffmpeg/tests/ref/fate/parseutils create mode 100644 ffmpeg/tests/ref/fate/pcm-planar create mode 100644 ffmpeg/tests/ref/fate/pcm_dvd create mode 100644 ffmpeg/tests/ref/fate/pcm_s16be-stereo create mode 100644 ffmpeg/tests/ref/fate/pcm_s16le-stereo create mode 100644 ffmpeg/tests/ref/fate/pcm_u8-mono create mode 100644 ffmpeg/tests/ref/fate/pcm_u8-stereo create mode 100644 ffmpeg/tests/ref/fate/pictor create mode 100644 ffmpeg/tests/ref/fate/pmp-demux create mode 100644 ffmpeg/tests/ref/fate/prores-422 create mode 100644 ffmpeg/tests/ref/fate/prores-422_hq create mode 100644 ffmpeg/tests/ref/fate/prores-422_lt create mode 100644 ffmpeg/tests/ref/fate/prores-422_proxy create mode 100644 ffmpeg/tests/ref/fate/prores-alpha create mode 100644 ffmpeg/tests/ref/fate/psx-str-demux create mode 100644 ffmpeg/tests/ref/fate/ptx create mode 100644 ffmpeg/tests/ref/fate/pva-demux create mode 100644 ffmpeg/tests/ref/fate/qcp-demux create mode 100644 ffmpeg/tests/ref/fate/qpeg create mode 100644 ffmpeg/tests/ref/fate/qt-alaw-mono create mode 100644 ffmpeg/tests/ref/fate/qt-alaw-stereo create mode 100644 ffmpeg/tests/ref/fate/qt-ima4-mono create mode 100644 ffmpeg/tests/ref/fate/qt-ima4-stereo create mode 100644 ffmpeg/tests/ref/fate/qt-mac3-mono create mode 100644 ffmpeg/tests/ref/fate/qt-mac3-stereo create mode 100644 ffmpeg/tests/ref/fate/qt-mac6-mono create mode 100644 ffmpeg/tests/ref/fate/qt-mac6-stereo create mode 100644 ffmpeg/tests/ref/fate/qt-ulaw-mono create mode 100644 ffmpeg/tests/ref/fate/qt-ulaw-stereo create mode 100644 ffmpeg/tests/ref/fate/qtrle-16bit create mode 100644 ffmpeg/tests/ref/fate/qtrle-1bit create mode 100644 ffmpeg/tests/ref/fate/qtrle-24bit create mode 100644 ffmpeg/tests/ref/fate/qtrle-2bit create mode 100644 ffmpeg/tests/ref/fate/qtrle-32bit create mode 100644 ffmpeg/tests/ref/fate/qtrle-4bit create mode 100644 ffmpeg/tests/ref/fate/qtrle-8bit create mode 100644 ffmpeg/tests/ref/fate/quickdraw create mode 100644 ffmpeg/tests/ref/fate/r210 create mode 100644 ffmpeg/tests/ref/fate/ra-144 create mode 100644 ffmpeg/tests/ref/fate/ralf create mode 100644 ffmpeg/tests/ref/fate/random_seed create mode 100644 ffmpeg/tests/ref/fate/redcode-demux create mode 100644 ffmpeg/tests/ref/fate/rl2 create mode 100644 ffmpeg/tests/ref/fate/roqvideo create mode 100644 ffmpeg/tests/ref/fate/rpza create mode 100644 ffmpeg/tests/ref/fate/rv30 create mode 100644 ffmpeg/tests/ref/fate/rv40 create mode 100644 ffmpeg/tests/ref/fate/sanm create mode 100644 ffmpeg/tests/ref/fate/sha create mode 100644 ffmpeg/tests/ref/fate/sierra-vmd-audio create mode 100644 ffmpeg/tests/ref/fate/sierra-vmd-video create mode 100644 ffmpeg/tests/ref/fate/siff-demux create mode 100644 ffmpeg/tests/ref/fate/smacker-audio create mode 100644 ffmpeg/tests/ref/fate/smacker-video create mode 100644 ffmpeg/tests/ref/fate/smc create mode 100644 ffmpeg/tests/ref/fate/smjpeg create mode 100644 ffmpeg/tests/ref/fate/smjpeg-demux create mode 100644 ffmpeg/tests/ref/fate/sp5x create mode 100644 ffmpeg/tests/ref/fate/srtp create mode 100644 ffmpeg/tests/ref/fate/sub-aqtitle create mode 100644 ffmpeg/tests/ref/fate/sub-charenc create mode 100644 ffmpeg/tests/ref/fate/sub-jacosub create mode 100644 ffmpeg/tests/ref/fate/sub-microdvd create mode 100644 ffmpeg/tests/ref/fate/sub-microdvd-remux create mode 100644 ffmpeg/tests/ref/fate/sub-movtext create mode 100644 ffmpeg/tests/ref/fate/sub-movtextenc create mode 100644 ffmpeg/tests/ref/fate/sub-mpl2 create mode 100644 ffmpeg/tests/ref/fate/sub-mpsub create mode 100644 ffmpeg/tests/ref/fate/sub-mpsub-frames create mode 100644 ffmpeg/tests/ref/fate/sub-pjs create mode 100644 ffmpeg/tests/ref/fate/sub-realtext create mode 100644 ffmpeg/tests/ref/fate/sub-sami create mode 100644 ffmpeg/tests/ref/fate/sub-srt create mode 100644 ffmpeg/tests/ref/fate/sub-subripenc create mode 100644 ffmpeg/tests/ref/fate/sub-subviewer create mode 100644 ffmpeg/tests/ref/fate/sub-subviewer1 create mode 100644 ffmpeg/tests/ref/fate/sub-vplayer create mode 100644 ffmpeg/tests/ref/fate/sub-webvtt create mode 100644 ffmpeg/tests/ref/fate/sub2video create mode 100644 ffmpeg/tests/ref/fate/sunraster-1bit-raw create mode 100644 ffmpeg/tests/ref/fate/sunraster-1bit-rle create mode 100644 ffmpeg/tests/ref/fate/sunraster-24bit-raw create mode 100644 ffmpeg/tests/ref/fate/sunraster-24bit-rle create mode 100644 ffmpeg/tests/ref/fate/sunraster-8bit-raw create mode 100644 ffmpeg/tests/ref/fate/sunraster-8bit-rle create mode 100644 ffmpeg/tests/ref/fate/sunraster-8bit_gray-raw create mode 100644 ffmpeg/tests/ref/fate/svq1 create mode 100644 ffmpeg/tests/ref/fate/svq3 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-CBW8 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-CCM8 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-CTC16 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-CTC24 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-CTC32 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-UBW8 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-UCM8 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-UTC16 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-UTC24 create mode 100644 ffmpeg/tests/ref/fate/targa-conformance-UTC32 create mode 100644 ffmpeg/tests/ref/fate/targa-top-to-bottom create mode 100644 ffmpeg/tests/ref/fate/theora-coeff-level64 create mode 100644 ffmpeg/tests/ref/fate/thp create mode 100644 ffmpeg/tests/ref/fate/tiertex-seq create mode 100644 ffmpeg/tests/ref/fate/tiff-fax-g3 create mode 100644 ffmpeg/tests/ref/fate/tiff-fax-g3s create mode 100644 ffmpeg/tests/ref/fate/tmv create mode 100644 ffmpeg/tests/ref/fate/truemotion1-15 create mode 100644 ffmpeg/tests/ref/fate/truemotion1-24 create mode 100644 ffmpeg/tests/ref/fate/truemotion2 create mode 100644 ffmpeg/tests/ref/fate/tscc-15bit create mode 100644 ffmpeg/tests/ref/fate/tscc-32bit create mode 100644 ffmpeg/tests/ref/fate/txd-16bpp create mode 100644 ffmpeg/tests/ref/fate/txd-pal8 create mode 100644 ffmpeg/tests/ref/fate/ulti create mode 100644 ffmpeg/tests/ref/fate/url create mode 100644 ffmpeg/tests/ref/fate/utvideo_rgb_left create mode 100644 ffmpeg/tests/ref/fate/utvideo_rgb_median create mode 100644 ffmpeg/tests/ref/fate/utvideo_rgba_left create mode 100644 ffmpeg/tests/ref/fate/utvideo_rgba_median create mode 100644 ffmpeg/tests/ref/fate/utvideo_rgba_single_symbol create mode 100644 ffmpeg/tests/ref/fate/utvideo_yuv420_left create mode 100644 ffmpeg/tests/ref/fate/utvideo_yuv420_median create mode 100644 ffmpeg/tests/ref/fate/utvideo_yuv422_left create mode 100644 ffmpeg/tests/ref/fate/utvideo_yuv422_median create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_rgb_left create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_rgb_median create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_rgb_none create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_rgba_left create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_rgba_median create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_rgba_none create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_yuv420_left create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_yuv420_median create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_yuv420_none create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_yuv422_left create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_yuv422_median create mode 100644 ffmpeg/tests/ref/fate/utvideoenc_yuv422_none create mode 100644 ffmpeg/tests/ref/fate/v210 create mode 100644 ffmpeg/tests/ref/fate/v410dec create mode 100644 ffmpeg/tests/ref/fate/v410enc create mode 100644 ffmpeg/tests/ref/fate/vb create mode 100644 ffmpeg/tests/ref/fate/vble create mode 100644 ffmpeg/tests/ref/fate/vc1-ism create mode 100644 ffmpeg/tests/ref/fate/vc1_sa00040 create mode 100644 ffmpeg/tests/ref/fate/vc1_sa00050 create mode 100644 ffmpeg/tests/ref/fate/vc1_sa10091 create mode 100644 ffmpeg/tests/ref/fate/vc1_sa10143 create mode 100644 ffmpeg/tests/ref/fate/vc1_sa20021 create mode 100644 ffmpeg/tests/ref/fate/vcr1 create mode 100644 ffmpeg/tests/ref/fate/videoxl create mode 100644 ffmpeg/tests/ref/fate/vima create mode 100644 ffmpeg/tests/ref/fate/vmnc-16bit create mode 100644 ffmpeg/tests/ref/fate/vmnc-32bit create mode 100644 ffmpeg/tests/ref/fate/vp31 create mode 100644 ffmpeg/tests/ref/fate/vp5 create mode 100644 ffmpeg/tests/ref/fate/vp60 create mode 100644 ffmpeg/tests/ref/fate/vp61 create mode 100644 ffmpeg/tests/ref/fate/vp6a create mode 100644 ffmpeg/tests/ref/fate/vp6f create mode 100644 ffmpeg/tests/ref/fate/vp8-alpha create mode 100644 ffmpeg/tests/ref/fate/vp8-sign-bias create mode 100644 ffmpeg/tests/ref/fate/vp8-size-change create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-001 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-002 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-003 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-004 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-005 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-006 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-007 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-008 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-009 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-010 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-011 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-012 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-013 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-014 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-015 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-016 create mode 100644 ffmpeg/tests/ref/fate/vp8-test-vector-017 create mode 100644 ffmpeg/tests/ref/fate/vqa-cc create mode 100644 ffmpeg/tests/ref/fate/vqf-demux create mode 100644 ffmpeg/tests/ref/fate/w64 create mode 100644 ffmpeg/tests/ref/fate/wavpack-channels-4.0 create mode 100644 ffmpeg/tests/ref/fate/wavpack-channels-5.1 create mode 100644 ffmpeg/tests/ref/fate/wavpack-channels-6.1 create mode 100644 ffmpeg/tests/ref/fate/wavpack-channels-7.1 create mode 100644 ffmpeg/tests/ref/fate/wavpack-channels-monofloat create mode 100644 ffmpeg/tests/ref/fate/wavpack-channels-monoint create mode 100644 ffmpeg/tests/ref/fate/wavpack-clipping create mode 100644 ffmpeg/tests/ref/fate/wavpack-cuesheet create mode 100644 ffmpeg/tests/ref/fate/wavpack-falsestereo create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossless-12bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossless-16bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossless-24bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossless-32bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossless-8bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossless-float create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossy-16bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossy-24bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossy-32bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossy-8bit create mode 100644 ffmpeg/tests/ref/fate/wavpack-lossy-float create mode 100644 ffmpeg/tests/ref/fate/wavpack-matroskamode create mode 100644 ffmpeg/tests/ref/fate/wavpack-speed-default create mode 100644 ffmpeg/tests/ref/fate/wavpack-speed-fast create mode 100644 ffmpeg/tests/ref/fate/wavpack-speed-high create mode 100644 ffmpeg/tests/ref/fate/wavpack-speed-vhigh create mode 100644 ffmpeg/tests/ref/fate/wavpack-zerolsbs create mode 100644 ffmpeg/tests/ref/fate/wc3movie-xan create mode 100644 ffmpeg/tests/ref/fate/westwood-aud create mode 100644 ffmpeg/tests/ref/fate/wmv8-drm create mode 100644 ffmpeg/tests/ref/fate/wmv8-drm-nodec create mode 100644 ffmpeg/tests/ref/fate/wmv8-x8intra create mode 100644 ffmpeg/tests/ref/fate/wnv1 create mode 100644 ffmpeg/tests/ref/fate/ws_snd create mode 100644 ffmpeg/tests/ref/fate/wtv-demux create mode 100644 ffmpeg/tests/ref/fate/xface create mode 100644 ffmpeg/tests/ref/fate/xmv-demux create mode 100644 ffmpeg/tests/ref/fate/xtea create mode 100644 ffmpeg/tests/ref/fate/xwma-demux create mode 100644 ffmpeg/tests/ref/fate/xxan-wc4 create mode 100644 ffmpeg/tests/ref/fate/yop create mode 100644 ffmpeg/tests/ref/fate/zerocodec create mode 100644 ffmpeg/tests/ref/fate/zlib create mode 100644 ffmpeg/tests/ref/fate/zmbv-15bit create mode 100644 ffmpeg/tests/ref/fate/zmbv-16bit create mode 100644 ffmpeg/tests/ref/fate/zmbv-32bit create mode 100644 ffmpeg/tests/ref/fate/zmbv-8bit create mode 100644 ffmpeg/tests/ref/lavf-fate/latm create mode 100644 ffmpeg/tests/ref/lavf-fate/mp3 create mode 100644 ffmpeg/tests/ref/lavf-fate/ogg_vp3 create mode 100644 ffmpeg/tests/ref/lavf/aiff create mode 100644 ffmpeg/tests/ref/lavf/alaw create mode 100644 ffmpeg/tests/ref/lavf/asf create mode 100644 ffmpeg/tests/ref/lavf/ast create mode 100644 ffmpeg/tests/ref/lavf/au create mode 100644 ffmpeg/tests/ref/lavf/avi create mode 100644 ffmpeg/tests/ref/lavf/bmp create mode 100644 ffmpeg/tests/ref/lavf/caf create mode 100644 ffmpeg/tests/ref/lavf/dpx create mode 100644 ffmpeg/tests/ref/lavf/dv_fmt create mode 100644 ffmpeg/tests/ref/lavf/ffm create mode 100644 ffmpeg/tests/ref/lavf/flm create mode 100644 ffmpeg/tests/ref/lavf/flv_fmt create mode 100644 ffmpeg/tests/ref/lavf/gif create mode 100644 ffmpeg/tests/ref/lavf/gxf create mode 100644 ffmpeg/tests/ref/lavf/ircam create mode 100644 ffmpeg/tests/ref/lavf/ismv create mode 100644 ffmpeg/tests/ref/lavf/jpg create mode 100644 ffmpeg/tests/ref/lavf/mkv create mode 100644 ffmpeg/tests/ref/lavf/mmf create mode 100644 ffmpeg/tests/ref/lavf/mov create mode 100644 ffmpeg/tests/ref/lavf/mpg create mode 100644 ffmpeg/tests/ref/lavf/mulaw create mode 100644 ffmpeg/tests/ref/lavf/mxf create mode 100644 ffmpeg/tests/ref/lavf/mxf_d10 create mode 100644 ffmpeg/tests/ref/lavf/nut create mode 100644 ffmpeg/tests/ref/lavf/ogg create mode 100644 ffmpeg/tests/ref/lavf/pam create mode 100644 ffmpeg/tests/ref/lavf/pbmpipe create mode 100644 ffmpeg/tests/ref/lavf/pcx create mode 100644 ffmpeg/tests/ref/lavf/pgm create mode 100644 ffmpeg/tests/ref/lavf/pgmpipe create mode 100644 ffmpeg/tests/ref/lavf/pixfmt create mode 100644 ffmpeg/tests/ref/lavf/png create mode 100644 ffmpeg/tests/ref/lavf/ppm create mode 100644 ffmpeg/tests/ref/lavf/ppmpipe create mode 100644 ffmpeg/tests/ref/lavf/rm create mode 100644 ffmpeg/tests/ref/lavf/rso create mode 100644 ffmpeg/tests/ref/lavf/sgi create mode 100644 ffmpeg/tests/ref/lavf/smjpeg create mode 100644 ffmpeg/tests/ref/lavf/sox create mode 100644 ffmpeg/tests/ref/lavf/sunrast create mode 100644 ffmpeg/tests/ref/lavf/swf create mode 100644 ffmpeg/tests/ref/lavf/tga create mode 100644 ffmpeg/tests/ref/lavf/tiff create mode 100644 ffmpeg/tests/ref/lavf/ts create mode 100644 ffmpeg/tests/ref/lavf/voc create mode 100644 ffmpeg/tests/ref/lavf/voc_s16 create mode 100644 ffmpeg/tests/ref/lavf/w64 create mode 100644 ffmpeg/tests/ref/lavf/wav create mode 100644 ffmpeg/tests/ref/lavf/wtv create mode 100644 ffmpeg/tests/ref/lavf/xbm create mode 100644 ffmpeg/tests/ref/lavf/xwd create mode 100644 ffmpeg/tests/ref/lavf/yuv4mpeg create mode 100644 ffmpeg/tests/ref/lavfi/alphaextract_rgb create mode 100644 ffmpeg/tests/ref/lavfi/alphaextract_yuv create mode 100644 ffmpeg/tests/ref/lavfi/alphamerge_rgb create mode 100644 ffmpeg/tests/ref/lavfi/alphamerge_yuv create mode 100644 ffmpeg/tests/ref/lavfi/colormatrix1 create mode 100644 ffmpeg/tests/ref/lavfi/colormatrix2 create mode 100644 ffmpeg/tests/ref/lavfi/crop create mode 100644 ffmpeg/tests/ref/lavfi/crop_scale create mode 100644 ffmpeg/tests/ref/lavfi/crop_scale_vflip create mode 100644 ffmpeg/tests/ref/lavfi/crop_vflip create mode 100644 ffmpeg/tests/ref/lavfi/drawbox create mode 100644 ffmpeg/tests/ref/lavfi/edgedetect create mode 100644 ffmpeg/tests/ref/lavfi/fade create mode 100644 ffmpeg/tests/ref/lavfi/field create mode 100644 ffmpeg/tests/ref/lavfi/histeq create mode 100644 ffmpeg/tests/ref/lavfi/hue create mode 100644 ffmpeg/tests/ref/lavfi/idet create mode 100644 ffmpeg/tests/ref/lavfi/il create mode 100644 ffmpeg/tests/ref/lavfi/kerndeint create mode 100644 ffmpeg/tests/ref/lavfi/life create mode 100644 ffmpeg/tests/ref/lavfi/null create mode 100644 ffmpeg/tests/ref/lavfi/overlay_rgb create mode 100644 ffmpeg/tests/ref/lavfi/overlay_yuv420 create mode 100644 ffmpeg/tests/ref/lavfi/overlay_yuv444 create mode 100644 ffmpeg/tests/ref/lavfi/pad create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_copy create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_crop create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_hflip create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_null create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_pad create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_pixdesctest create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_scale create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_super2xsai create mode 100644 ffmpeg/tests/ref/lavfi/pixfmts_vflip create mode 100644 ffmpeg/tests/ref/lavfi/pp create mode 100644 ffmpeg/tests/ref/lavfi/pp2 create mode 100644 ffmpeg/tests/ref/lavfi/pp3 create mode 100644 ffmpeg/tests/ref/lavfi/pp4 create mode 100644 ffmpeg/tests/ref/lavfi/pp5 create mode 100644 ffmpeg/tests/ref/lavfi/pp6 create mode 100644 ffmpeg/tests/ref/lavfi/scale200 create mode 100644 ffmpeg/tests/ref/lavfi/scale500 create mode 100644 ffmpeg/tests/ref/lavfi/scalenorm create mode 100644 ffmpeg/tests/ref/lavfi/select create mode 100644 ffmpeg/tests/ref/lavfi/setdar create mode 100644 ffmpeg/tests/ref/lavfi/setsar create mode 100644 ffmpeg/tests/ref/lavfi/testsrc create mode 100644 ffmpeg/tests/ref/lavfi/thumbnail create mode 100644 ffmpeg/tests/ref/lavfi/tile create mode 100644 ffmpeg/tests/ref/lavfi/tinterlace_merge create mode 100644 ffmpeg/tests/ref/lavfi/tinterlace_pad create mode 100644 ffmpeg/tests/ref/lavfi/transpose create mode 100644 ffmpeg/tests/ref/lavfi/unsharp create mode 100644 ffmpeg/tests/ref/lavfi/vflip create mode 100644 ffmpeg/tests/ref/lavfi/vflip_crop create mode 100644 ffmpeg/tests/ref/lavfi/vflip_vflip create mode 100644 ffmpeg/tests/ref/seek/acodec-adpcm-ima_qt create mode 100644 ffmpeg/tests/ref/seek/acodec-adpcm-ima_wav create mode 100644 ffmpeg/tests/ref/seek/acodec-adpcm-ms create mode 100644 ffmpeg/tests/ref/seek/acodec-adpcm-swf create mode 100644 ffmpeg/tests/ref/seek/acodec-adpcm-yamaha create mode 100644 ffmpeg/tests/ref/seek/acodec-alac create mode 100644 ffmpeg/tests/ref/seek/acodec-flac create mode 100644 ffmpeg/tests/ref/seek/acodec-mp2 create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-alaw create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-f32be create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-f32le create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-f64be create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-f64le create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-mulaw create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s16be create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s16le create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s24be create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s24le create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s32be create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s32le create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-s8 create mode 100644 ffmpeg/tests/ref/seek/acodec-pcm-u8 create mode 100644 ffmpeg/tests/ref/seek/lavf-aiff create mode 100644 ffmpeg/tests/ref/seek/lavf-alaw create mode 100644 ffmpeg/tests/ref/seek/lavf-asf create mode 100644 ffmpeg/tests/ref/seek/lavf-au create mode 100644 ffmpeg/tests/ref/seek/lavf-avi create mode 100644 ffmpeg/tests/ref/seek/lavf-bmp create mode 100644 ffmpeg/tests/ref/seek/lavf-dv_fmt create mode 100644 ffmpeg/tests/ref/seek/lavf-ffm create mode 100644 ffmpeg/tests/ref/seek/lavf-flv_fmt create mode 100644 ffmpeg/tests/ref/seek/lavf-gif create mode 100644 ffmpeg/tests/ref/seek/lavf-gxf create mode 100644 ffmpeg/tests/ref/seek/lavf-jpg create mode 100644 ffmpeg/tests/ref/seek/lavf-mkv create mode 100644 ffmpeg/tests/ref/seek/lavf-mmf create mode 100644 ffmpeg/tests/ref/seek/lavf-mov create mode 100644 ffmpeg/tests/ref/seek/lavf-mpg create mode 100644 ffmpeg/tests/ref/seek/lavf-mulaw create mode 100644 ffmpeg/tests/ref/seek/lavf-mxf create mode 100644 ffmpeg/tests/ref/seek/lavf-mxf_d10 create mode 100644 ffmpeg/tests/ref/seek/lavf-nut create mode 100644 ffmpeg/tests/ref/seek/lavf-ogg create mode 100644 ffmpeg/tests/ref/seek/lavf-pbmpipe create mode 100644 ffmpeg/tests/ref/seek/lavf-pcx create mode 100644 ffmpeg/tests/ref/seek/lavf-pgm create mode 100644 ffmpeg/tests/ref/seek/lavf-pgmpipe create mode 100644 ffmpeg/tests/ref/seek/lavf-ppm create mode 100644 ffmpeg/tests/ref/seek/lavf-ppmpipe create mode 100644 ffmpeg/tests/ref/seek/lavf-rm create mode 100644 ffmpeg/tests/ref/seek/lavf-sgi create mode 100644 ffmpeg/tests/ref/seek/lavf-swf create mode 100644 ffmpeg/tests/ref/seek/lavf-tga create mode 100644 ffmpeg/tests/ref/seek/lavf-tiff create mode 100644 ffmpeg/tests/ref/seek/lavf-ts create mode 100644 ffmpeg/tests/ref/seek/lavf-voc create mode 100644 ffmpeg/tests/ref/seek/lavf-wav create mode 100644 ffmpeg/tests/ref/seek/lavf-wtv create mode 100644 ffmpeg/tests/ref/seek/lavf-yuv4mpeg create mode 100644 ffmpeg/tests/ref/seek/vsynth2-asv1 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-asv2 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-dnxhd-1080i create mode 100644 ffmpeg/tests/ref/seek/vsynth2-dnxhd-720p create mode 100644 ffmpeg/tests/ref/seek/vsynth2-dnxhd-720p-rd create mode 100644 ffmpeg/tests/ref/seek/vsynth2-dv create mode 100644 ffmpeg/tests/ref/seek/vsynth2-dv-411 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-dv-50 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-ffv1 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-flashsv create mode 100644 ffmpeg/tests/ref/seek/vsynth2-flv create mode 100644 ffmpeg/tests/ref/seek/vsynth2-h261 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-h263 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-h263p create mode 100644 ffmpeg/tests/ref/seek/vsynth2-huffyuv create mode 100644 ffmpeg/tests/ref/seek/vsynth2-jpegls create mode 100644 ffmpeg/tests/ref/seek/vsynth2-ljpeg create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mjpeg create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg1 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg1b create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg2-422 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg2-idct-int create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg2-ilace create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg2-ivlc-qprd create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg2-thread create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg2-thread-ivlc create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-adap create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-adv create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-error create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-nr create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-qpel create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-qprd create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-rc create mode 100644 ffmpeg/tests/ref/seek/vsynth2-mpeg4-thread create mode 100644 ffmpeg/tests/ref/seek/vsynth2-msmpeg4 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-msmpeg4v2 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-rgb create mode 100644 ffmpeg/tests/ref/seek/vsynth2-roqvideo create mode 100644 ffmpeg/tests/ref/seek/vsynth2-rv10 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-rv20 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-snow create mode 100644 ffmpeg/tests/ref/seek/vsynth2-snow-ll create mode 100644 ffmpeg/tests/ref/seek/vsynth2-svq1 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-wmv1 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-wmv2 create mode 100644 ffmpeg/tests/ref/seek/vsynth2-yuv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-amv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-asv1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-asv2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-avui create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-cljr create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-1080i create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-720p create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-720p-10bit create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dnxhd-720p-rd create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dnxhd_1080i create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dv-411 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dv-50 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-dv_411 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-ffv1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-ffvhuff create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-flashsv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-flashsv2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-flv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-h261 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-h263 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-h263-obmc create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-h263p create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-huffyuv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-j2k create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-jpegls create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-ljpeg create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mjpeg create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mjpeg-422 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mjpeg-444 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg1b create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-422 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-idct-int create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-ilace create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-thread create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-adap create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-adv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-error create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-nr create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-qpel create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-qprd create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-rc create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpeg4-thread create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-mpng create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-msmpeg4 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-msmpeg4v2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-msvideo1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-prores create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-prores_kostya create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-qtrle create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-qtrlegray create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-r210 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-rgb create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-roqvideo create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-rv10 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-rv20 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-snow create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-snow-hpel create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-snow-ll create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-svq1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-v210 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-v308 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-v408 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-wmv1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-wmv2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-y41p create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-yuv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-yuv4 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-zlib create mode 100644 ffmpeg/tests/ref/vsynth/vsynth1-zmbv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-amv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-asv1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-asv2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-avui create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-cljr create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-1080i create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-720p create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-720p-10bit create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dnxhd-720p-rd create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dnxhd_1080i create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dv-411 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dv-50 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-dv_411 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-ffv1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-ffvhuff create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-flashsv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-flashsv2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-flv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-h261 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-h263 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-h263-obmc create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-h263p create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-huffyuv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-j2k create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-jpegls create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-ljpeg create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mjpeg create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mjpeg-422 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mjpeg-444 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg1b create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-422 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-idct-int create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-ilace create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-thread create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-adap create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-adv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-error create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-nr create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-qpel create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-qprd create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-rc create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpeg4-thread create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-mpng create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-msmpeg4 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-msmpeg4v2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-msvideo1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-prores create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-prores_kostya create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-qtrle create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-qtrlegray create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-r210 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-rgb create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-roqvideo create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-rv10 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-rv20 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-snow create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-snow-hpel create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-snow-ll create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-svq1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-v210 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-v308 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-v408 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-wmv1 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-wmv2 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-y41p create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-yuv create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-yuv4 create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-zlib create mode 100644 ffmpeg/tests/ref/vsynth/vsynth2-zmbv create mode 100644 ffmpeg/tests/ref/vsynth1/cljr create mode 100644 ffmpeg/tests/ref/vsynth1/yuv create mode 100644 ffmpeg/tests/ref/vsynth2/cljr create mode 100644 ffmpeg/tests/ref/vsynth2/huffyuv create mode 100644 ffmpeg/tests/ref/vsynth2/yuv create mode 100755 ffmpeg/tests/regression-funcs.sh create mode 100644 ffmpeg/tests/rotozoom.c create mode 100644 ffmpeg/tests/test.ffmeta create mode 100644 ffmpeg/tests/tiny_psnr.c create mode 100644 ffmpeg/tests/utils.c create mode 100644 ffmpeg/tests/videogen.c create mode 100644 ffmpeg/tools/aviocat.c create mode 100755 ffmpeg/tools/bisect-create create mode 100644 ffmpeg/tools/bookmarklets.html create mode 100644 ffmpeg/tools/build_libstagefright create mode 100755 ffmpeg/tools/clean-diff create mode 100644 ffmpeg/tools/cws2fws.c create mode 100644 ffmpeg/tools/enum_options.c create mode 100644 ffmpeg/tools/ffescape.c create mode 100644 ffmpeg/tools/ffeval.c create mode 100644 ffmpeg/tools/fourcc2pixfmt.c create mode 100644 ffmpeg/tools/graph2dot.c create mode 100644 ffmpeg/tools/ismindex.c create mode 100755 ffmpeg/tools/make_chlayout_test create mode 100755 ffmpeg/tools/missing_codec_desc create mode 100755 ffmpeg/tools/patcheck create mode 100644 ffmpeg/tools/pktdumper.c create mode 100755 ffmpeg/tools/plotframes create mode 100644 ffmpeg/tools/probetest.c create mode 100644 ffmpeg/tools/qt-faststart.c create mode 100644 ffmpeg/tools/seek_print.c create mode 100644 ffmpeg/tools/trasher.c create mode 100755 ffmpeg/tools/unwrap-diff create mode 100644 ffmpeg/tools/yuvcmp.c create mode 100644 ffmpeg/version.h create mode 100755 ffmpeg/version.sh diff --git a/ffmpeg-fas/.gitignore b/ffmpeg-fas/.gitignore new file mode 100644 index 0000000..40ef421 --- /dev/null +++ b/ffmpeg-fas/.gitignore @@ -0,0 +1,3 @@ +\#* +*~ +.svn \ No newline at end of file diff --git a/ffmpeg-fas/COPYING.GPL b/ffmpeg-fas/COPYING.GPL new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/ffmpeg-fas/COPYING.GPL @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/ffmpeg-fas/COPYING.LGPL b/ffmpeg-fas/COPYING.LGPL new file mode 100644 index 0000000..00b4fed --- /dev/null +++ b/ffmpeg-fas/COPYING.LGPL @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library 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. + + This library 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/ffmpeg-fas/README b/ffmpeg-fas/README new file mode 100644 index 0000000..892bce6 --- /dev/null +++ b/ffmpeg-fas/README @@ -0,0 +1,31 @@ +Released under Lesser GNU Public License (LGPL) + +This is an extension to the ffmpeg video decoding library meant to support +a variety of extra functionality in support of video processing applications. +The primary additional feature added is the ability to do frame-accurate seeking +(by frame number). This is accomplished in a codec/format independant manner +using seek tables. + +It has been built and tested under Linux and Windows. + +**NOTE [12/09]**: +This package hasn't been kept fully up-to-date with +ffmpeg's changing API. Some modification is necessary to remove calls to deprecated +ffmpeg functionality. Patches welcome. +***************** + +Features: +1) Simplified interface for video processing +2) Frame-accurate seeking using a seek-table +3) Online creation of a seek-table through normal decoding +4) Saving and loading of seek-tables + +Getting up and running: +The frame-accurate seek library extension to ffmpeg requires ffmpeg. +Getting the most recent version of ffmpeg and building it from source is +recommended: + +svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg + +The test/example build script requires ffmpeg be checked out (or symlinked) +and built (./configure ; make) from the base directory. \ No newline at end of file diff --git a/ffmpeg-fas/build.sh b/ffmpeg-fas/build.sh new file mode 100755 index 0000000..0b567f5 --- /dev/null +++ b/ffmpeg-fas/build.sh @@ -0,0 +1,9 @@ +cd `dirname $0` +FFMPEG_BASEDIR=../ + +rm -rf lib +mkdir lib + +gcc ffmpeg_fas.c seek_indices.c -Iffmpeg ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a -O2 -shared -o lib/libffmpeg_fas.so +gcc -c ffmpeg_fas.c seek_indices.c -O2 -I$FFMPEG_BASEDIR +ar rc lib/libffmpeg_fas.a ffmpeg_fas.o seek_indices.o diff --git a/ffmpeg-fas/ffmpeg_fas.c b/ffmpeg-fas/ffmpeg_fas.c new file mode 100644 index 0000000..29ba119 --- /dev/null +++ b/ffmpeg-fas/ffmpeg_fas.c @@ -0,0 +1,914 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include "ffmpeg_fas.h" + +#if defined( _WIN32 ) && defined( STATIC_DLL ) +extern "C" +{ +#include "libavformat/avformat.h" +#include "libavcodec/avcodec.h" +int img_convert(AVPicture *dst, int dst_pix_fmt, const AVPicture *src, int src_pix_fmt, int src_width, int src_height); +} +#else +#include "libavformat/avformat.h" +#include "libavcodec/avcodec.h" +#endif /* _WIN32 && STATIC_DLL */ + +#include "seek_indices.h" +#include "private_errors.h" + +#include +#include +#include +#include + +#define FIRST_FRAME_INDEX 0 +#define NUM_POSSIBLE_ERRORS 9 + +enum PixelFormat fmt; + +/**** Private Types ***********************************************************/ + +typedef struct fas_context_struct { + fas_boolean_type is_video_active; + fas_boolean_type is_frame_available; + + int current_frame_index; + + seek_table_type seek_table; + + /* ffmpeg */ + AVFormatContext *format_context; + AVCodecContext *codec_context; + int stream_idx; + + AVFrame *frame_buffer; // internal buffer + + AVFrame *rgb_frame_buffer; // extra AVFrames (for color conversion) + uint8_t *rgb_buffer; // actual data buffer for rgb_frame_buffer (needs to be freed seperately) + fas_boolean_type rgb_already_converted; // color_convert(frame_buffer) == rgb_frame_buffer (so we don't need to repeat conversions) + + AVFrame *gray8_frame_buffer; + uint8_t *gray8_buffer; + fas_boolean_type gray8_already_converted; + + int64_t current_dts; // decoding timestamp of the most recently parsed packet + int64_t previous_dts; // for previous packet (always use previous packet for seek_table (workaround)) + int64_t keyframe_packet_dts; // dts of most recent keyframe packet + int64_t first_dts; // for very first packet (needed in seek, for first keyframe) + +} fas_context_type; + +static char* invalid_error_code = "not a valid error code"; +static char *gbl_error_strings[NUM_POSSIBLE_ERRORS] = +{ + "fas_success", + "fas_failure", + "fas_invalid_argument", + "fas_out_of_memory", + "fas_unsupported_format", + "fas_unsupported_codec", + "fas_no_more_frames", + "fas_decoding_error", + "fas_seek_error" +}; + +char* fas_error_message(fas_error_type error) +{ + if ((error < 0) || (error >= NUM_POSSIBLE_ERRORS)) + return invalid_error_code; + + return gbl_error_strings[error]; +} + +static void private_show_warning (const char *message); +static fas_error_type private_show_error (const char *message, fas_error_type error); +static fas_error_type private_convert_to_rgb (fas_context_ref_type ctx); +static fas_error_type private_seek_to_nearest_key (fas_context_ref_type context, int target_index, int offset); +fas_error_type private_complete_seek_table (fas_context_ref_type context); + + +void fas_set_logging (fas_boolean_type logging) +{ + if (logging == FAS_TRUE) + { + SHOW_ERROR_MESSAGES = 1; + SHOW_WARNING_MESSAGES = 1; +#ifndef _WIN32 + av_log_level = AV_LOG_INFO; +#endif + } + else + { + SHOW_ERROR_MESSAGES = 0; + SHOW_WARNING_MESSAGES = 0; +#ifndef _WIN32 + av_log_level = AV_LOG_QUIET; +#endif + } +} + +/* Set the output image colorspace */ +void fas_set_format(fas_color_space_type format) +{ + switch (format) + { + case FAS_GRAY8: + fmt = PIX_FMT_GRAY8; + break; + case FAS_ARGB32: + fmt = PIX_FMT_RGB32_1; + break; + case FAS_ABGR32: + fmt = PIX_FMT_BGR32_1; + break; + case FAS_YUV420P: + fmt = PIX_FMT_YUV420P; + break; + case FAS_YUYV422: + fmt = PIX_FMT_YUYV422; + break; + case FAS_UYVY422: + fmt = PIX_FMT_UYVY422; + break; + case FAS_YUV422P: + fmt = PIX_FMT_YUV422P; + break; + case FAS_YUV444P: + fmt = PIX_FMT_YUV444P; + break; + case FAS_RGB24: + fmt = PIX_FMT_RGB24; + break; + case FAS_BGR24: + fmt = PIX_FMT_BGR24; + break; + default: + fmt = PIX_FMT_RGB24; + break; + } +} + + +void fas_initialize (fas_boolean_type logging, fas_color_space_type format) +{ + fas_set_logging(logging); + fas_set_format(format); + av_register_all(); + + return; +} + +/* fas_open_video */ + +fas_error_type fas_open_video (fas_context_ref_type *context_ptr, char *file_path) +{ + if (NULL == context_ptr) + return private_show_error ("NULL context pointer provided", FAS_INVALID_ARGUMENT); + + // seek_error_type seek_error; + fas_context_ref_type fas_context; + + *context_ptr = NULL; // set returned context to NULL in case of error + + fas_context = (fas_context_ref_type)malloc (sizeof (fas_context_type)); + memset(fas_context, 0, sizeof(fas_context_type)); + + if (NULL == fas_context) + return private_show_error ("unable to allocate buffer", FAS_OUT_OF_MEMORY); + + fas_context->is_video_active = FAS_TRUE; + fas_context->is_frame_available = FAS_TRUE; + fas_context->current_frame_index = FIRST_FRAME_INDEX - 1; + fas_context->current_dts = AV_NOPTS_VALUE; + fas_context->previous_dts = AV_NOPTS_VALUE; + fas_context->keyframe_packet_dts = AV_NOPTS_VALUE; + fas_context->first_dts = AV_NOPTS_VALUE; + + fas_context->seek_table = seek_init_table (-1); /* default starting size */ + + if (av_open_input_file ( &(fas_context->format_context), file_path, NULL, 0, NULL ) != 0) + { + fas_close_video(fas_context); + return private_show_error ("failure to open file", FAS_UNSUPPORTED_FORMAT); + } + + if (av_find_stream_info (fas_context->format_context) < 0) + { + fas_close_video(fas_context); + return private_show_error ("could not extract stream information", FAS_UNSUPPORTED_FORMAT); + } + + if (SHOW_WARNING_MESSAGES) + dump_format(fas_context->format_context, 0, file_path, 0); + + int stream_idx; + for (stream_idx = 0; stream_idx < fas_context->format_context->nb_streams; stream_idx++) + { + if (fas_context->format_context->streams[stream_idx]->codec->codec_type == CODEC_TYPE_VIDEO) + { + fas_context->stream_idx = stream_idx; + fas_context->codec_context = fas_context->format_context->streams[stream_idx]->codec; + break; + } + } + + if (fas_context->codec_context == 0) + { + fas_close_video(fas_context); + return private_show_error ("failure to find a video stream", FAS_UNSUPPORTED_FORMAT); + } + + AVCodec *codec = avcodec_find_decoder (fas_context->codec_context->codec_id); + + if (!codec) + { + fas_context->codec_context = 0; + fas_close_video(fas_context); + return private_show_error("failed to find correct video codec", FAS_UNSUPPORTED_CODEC); + } + + if (avcodec_open (fas_context->codec_context, codec) < 0) + { + fas_context->codec_context = 0; + fas_close_video(fas_context); + return private_show_error ("failed to open codec", FAS_UNSUPPORTED_CODEC); + } + + fas_context->frame_buffer = avcodec_alloc_frame (); + if (fas_context->frame_buffer == NULL) + { + fas_close_video(fas_context); + return private_show_error ("failed to allocate frame buffer", FAS_OUT_OF_MEMORY); + } + + fas_context->rgb_frame_buffer = avcodec_alloc_frame (); + if (fas_context->rgb_frame_buffer == NULL) + { + fas_close_video(fas_context); + return private_show_error ("failed to allocate rgb frame buffer", FAS_OUT_OF_MEMORY); + } + + fas_context->gray8_frame_buffer = avcodec_alloc_frame (); + if (fas_context->gray8_frame_buffer == NULL) + { + fas_close_video(fas_context); + return private_show_error ("failed to allocate gray8 frame buffer", FAS_OUT_OF_MEMORY); + } + + fas_context->rgb_buffer = 0; + fas_context->gray8_buffer = 0; + fas_context->rgb_already_converted = FAS_FALSE; + fas_context->gray8_already_converted = FAS_FALSE; + + *context_ptr = fas_context; + + + if (FAS_SUCCESS != fas_step_forward(*context_ptr)) + return private_show_error ("failure decoding first frame", FAS_NO_MORE_FRAMES); + + if (!fas_frame_available(*context_ptr)) + return private_show_error ("couldn't find a first frame (no valid frames in video stream)", FAS_NO_MORE_FRAMES); + + + + return FAS_SUCCESS; +} + +/* fas_close_video */ +fas_error_type fas_close_video (fas_context_ref_type context) +{ + if (NULL == context) + return private_show_error ("NULL context provided for fas_close_video()", FAS_INVALID_ARGUMENT); + + if (!(context->is_video_active)) + { + private_show_warning ("Redundant attempt to close an inactive video"); + return FAS_SUCCESS; + } + + if (context->codec_context) + if (avcodec_find_decoder (context->codec_context->codec_id)) + avcodec_close(context->codec_context); + + if (context->format_context) + av_close_input_file (context->format_context); + + if (context->rgb_frame_buffer) + av_free (context->rgb_frame_buffer); + + if (context->gray8_frame_buffer) + av_free (context->gray8_frame_buffer); + + if (context->rgb_buffer) + av_free(context->rgb_buffer); + + if (context->gray8_buffer) + av_free(context->gray8_buffer); + + if (context->frame_buffer) + av_free (context->frame_buffer); + + seek_release_table (&(context->seek_table)); + + context->is_video_active = FAS_FALSE; + + free (context); + + return FAS_SUCCESS; +} + + +/* fas_step_forward */ +fas_error_type fas_step_forward (fas_context_ref_type context) +{ + if ((NULL == context) || (FAS_TRUE != context->is_video_active)) { + return private_show_error ("invalid or unopened context", FAS_INVALID_ARGUMENT); + } + + if (!context->is_frame_available) + { + private_show_warning ("tried to advance after end of frames"); + return FAS_SUCCESS; + } + + context->current_frame_index++; + + AVPacket packet; + while (FAS_TRUE) + { + if (av_read_frame(context->format_context, &packet) < 0) + { + /* finished */ + context->is_frame_available = FAS_FALSE; + context->seek_table.completed = seek_true; + return FAS_SUCCESS; + } + + int frameFinished; + if (packet.stream_index == context->stream_idx) + { + context->previous_dts = context->current_dts; + context->current_dts = packet.dts; + + /* seek support: set first_dts */ + if (context->first_dts == AV_NOPTS_VALUE) + context->first_dts = packet.dts; + + /* seek support: set key-packet info to previous packet's dts, when possible */ + /* note this -1 approach to setting the packet is a workaround for a common failure. setting + to 0 would work just incur a huge penalty in videos that needed -1. Might be worth testing. + */ + if (packet.flags & PKT_FLAG_KEY) + { + //fprintf(stderr, "Packet: (F:%d %lld %lld)\n", context->current_frame_index, packet.pts, packet.dts); + + if (context->previous_dts == AV_NOPTS_VALUE) + context->keyframe_packet_dts = packet.dts; + else + context->keyframe_packet_dts = context->previous_dts; + } + + avcodec_decode_video(context->codec_context, context->frame_buffer, &frameFinished, + packet.data, packet.size); + + if (frameFinished) + { + /* seek support: (try to) add entry to seek_table */ + if (context->frame_buffer->key_frame) + { + // fprintf(stderr, "Frame : (PXX F%d: %lld %lld)\n", context->current_frame_index, packet.pts, packet.dts); + + seek_entry_type entry; + entry.display_index = context->current_frame_index; + entry.first_packet_dts = context->keyframe_packet_dts; + entry.last_packet_dts = packet.dts; + + if (fas_get_frame_index(context) == FIRST_FRAME_INDEX) + entry.first_packet_dts = context->first_dts; + + seek_append_table_entry(&context->seek_table, entry); + } + + if (context->current_frame_index - FIRST_FRAME_INDEX + 1 > context->seek_table.num_frames) + context->seek_table.num_frames = context->current_frame_index - FIRST_FRAME_INDEX + 1; + + break; + } + } + + av_free_packet(&packet); + } + + context->rgb_already_converted = FAS_FALSE; + context->gray8_already_converted = FAS_FALSE; + av_free_packet(&packet); + return FAS_SUCCESS; +} + +/* fas_get_frame_index */ + +int fas_get_frame_index (fas_context_ref_type context) +{ + if (NULL == context) + return private_show_error ("NULL context provided for fas_get_frame_index()", FAS_INVALID_ARGUMENT); + + if (FAS_TRUE != context->is_video_active) + return private_show_error ("No video is open for fas_get_frame_index()", FAS_INVALID_ARGUMENT); + + return context->current_frame_index; +} + + +/* fas_get_frame */ + +fas_error_type fas_get_frame (fas_context_ref_type context, fas_raw_image_type *image_ptr) +{ + int buffer_size; + fas_error_type fas_error; + + if (NULL == context || FAS_FALSE == context->is_video_active) + return private_show_error ("null context or inactive video", FAS_INVALID_ARGUMENT); + + if (NULL == image_ptr) + return private_show_error ("null image_ptr on get_frame", FAS_INVALID_ARGUMENT); + + if (!fas_frame_available(context)) + return private_show_error ("no frame available for extraction", FAS_NO_MORE_FRAMES); + + memset (image_ptr, 0, sizeof (fas_raw_image_type)); + + switch (fmt) + { + case PIX_FMT_RGB24: + image_ptr->bytes_per_line = context->codec_context->width * 3; + image_ptr->color_space = FAS_RGB24; + break; + case PIX_FMT_BGR24: + image_ptr->bytes_per_line = context->codec_context->width * 3; + image_ptr->color_space = FAS_BGR24; + break; + case PIX_FMT_ARGB: + image_ptr->bytes_per_line = context->codec_context->width * 4; + image_ptr->color_space = FAS_ARGB32; + break; + case PIX_FMT_ABGR: + image_ptr->bytes_per_line = context->codec_context->width * 4; + image_ptr->color_space = FAS_ABGR32; + break; + case PIX_FMT_YUV420P: + image_ptr->bytes_per_line = (context->codec_context->width * 3) >> 1; + image_ptr->color_space = FAS_YUV420P; + break; + case PIX_FMT_YUYV422: + image_ptr->bytes_per_line = context->codec_context->width * 2; + image_ptr->color_space = FAS_YUYV422; + break; + case PIX_FMT_UYVY422: + image_ptr->bytes_per_line = context->codec_context->width * 2; + image_ptr->color_space = FAS_UYVY422; + break; + case PIX_FMT_YUV422P: + image_ptr->bytes_per_line = context->codec_context->width * 2; + image_ptr->color_space = FAS_YUV422P; + break; + case PIX_FMT_YUV444P: + image_ptr->bytes_per_line = context->codec_context->width * 3; + image_ptr->color_space = FAS_YUV444P; + break; + } + + buffer_size = image_ptr->bytes_per_line * context->codec_context->height; + + image_ptr->data = (unsigned char *)malloc (buffer_size); + if (NULL == image_ptr->data) + return private_show_error ("unable to allocate space for RGB image", FAS_OUT_OF_MEMORY); + + image_ptr->width = context->codec_context->width; + image_ptr->height = context->codec_context->height; + + + fas_error = private_convert_to_rgb(context); + + int j; + unsigned char *from; + unsigned char *to; + for (j=0;jcodec_context->height; j++) + { + from = context->rgb_frame_buffer->data[0] + j*context->rgb_frame_buffer->linesize[0]; + to = image_ptr->data + j*image_ptr->bytes_per_line; + + memcpy(to, from, image_ptr->bytes_per_line); + } + + if (FAS_SUCCESS != fas_error) + return private_show_error ("unable to convert image to RGB", FAS_FAILURE); + + return FAS_SUCCESS; +} + +/* fas_free_frame */ + +void fas_free_frame (fas_raw_image_type image) +{ + if (NULL == image.data) + return; + + free (image.data); + + return; +} + +/* fas_get_seek_table */ +seek_table_type fas_get_seek_table (fas_context_ref_type context) +{ + seek_table_type null_table; + + null_table.array = NULL; + null_table.completed = seek_false; + null_table.num_frames = -1; + null_table.num_entries = 0; + null_table.allocated_size = 0; + + if (NULL == context || FAS_FALSE == context->is_video_active) + return null_table; + + return context->seek_table; +} + +/* fas_put_seek_table */ +fas_error_type fas_put_seek_table (fas_context_ref_type context, seek_table_type table) +{ + if (NULL == context || FAS_FALSE == context->is_video_active) + return private_show_error ("null context or inactive video", FAS_INVALID_ARGUMENT); + + seek_release_table (&context->seek_table); + context->seek_table = seek_copy_table(table); + + return FAS_SUCCESS; +} + +/* private_complete_seek_table */ +fas_error_type private_complete_seek_table (fas_context_ref_type context) +{ + if ((NULL == context) || (FAS_FALSE == context->is_video_active)) + return private_show_error ("invalid or unopened context", FAS_INVALID_ARGUMENT); + + if (context->seek_table.completed) + return FAS_SUCCESS; + + fas_error_type fas_error = fas_seek_to_nearest_key (context, context->seek_table.num_frames + FIRST_FRAME_INDEX - 1); + if (FAS_SUCCESS != fas_error) + return private_show_error("failed when trying to complete seek table (1) (first frame not labeled keyframe?)", fas_error); + + while (fas_frame_available(context)) + { + // printf("%d\n", context->seek_table.num_frames); + fas_step_forward(context); + } + + if (!context->seek_table.completed) + return private_show_error("failed when trying to complete seek table (2)", FAS_SEEK_ERROR); + + return FAS_SUCCESS; +} + +/* fas_seek_to_frame */ +fas_error_type fas_seek_to_frame (fas_context_ref_type context, int target_index) +{ + + fas_error_type fas_error; + + if ((NULL == context) || (FAS_FALSE == context->is_video_active)) + return private_show_error ("invalid or unopened context", FAS_INVALID_ARGUMENT); + + // printf("seeking to %d (from %d)!\n", target_index, context->current_frame_index); + if (target_index == context->current_frame_index) + return FAS_SUCCESS; + + fas_error = fas_seek_to_nearest_key (context, target_index); + + if (fas_error != FAS_SUCCESS) + return private_show_error ("error advancing to key frame before seek", fas_error); + + if (fas_get_frame_index(context) > target_index) + return private_show_error ("error advancing to key frame before seek (index isn't right)", fas_error); + + while (fas_get_frame_index(context) < target_index) + { + if (fas_frame_available(context)) + fas_step_forward(context); + else + return private_show_error ("error advancing to request frame (probably out of range)", FAS_SEEK_ERROR); + } + + + return FAS_SUCCESS; +} + +/* fas_seek_to_nearest_key */ + +fas_error_type fas_seek_to_nearest_key (fas_context_ref_type context, int target_index) +{ + return private_seek_to_nearest_key(context, target_index,0); +} + +/* private_seek_to_nearest_key */ + +fas_error_type private_seek_to_nearest_key (fas_context_ref_type context, int target_index, int offset) +{ + if ((NULL == context) || (FAS_TRUE != context->is_video_active)) + return private_show_error ("invalid or unopened context", FAS_INVALID_ARGUMENT); + + // printf("HERE: from: %d to: %d offset: %d\n", context->current_frame_index, target_index, offset); + fas_error_type fas_error; + seek_entry_type seek_entry; + seek_error_type seek_error = seek_get_nearest_entry (&(context->seek_table), &seek_entry, target_index, offset); + + if (seek_error != seek_no_error) + return private_show_error ("error while searching seek table", FAS_SEEK_ERROR); + + if (seek_entry.display_index == context->current_frame_index) + return FAS_SUCCESS; + + // printf("HERE: from: %d to: %d (%d) offset: %d\n", context->current_frame_index, target_index, seek_entry.display_index, offset); + // printf("trying to seek to %d (%lld->%lld)\n", seek_entry.display_index, seek_entry.first_packet_dts, seek_entry.last_packet_dts); + + // if something goes terribly wrong, return bad current_frame_index + context->current_frame_index = -2; + context->is_frame_available = FAS_TRUE; + + int flags = 0; + if (seek_entry.first_packet_dts <= context->current_dts) + flags = AVSEEK_FLAG_BACKWARD; + + // printf("av_seek_frame: %lld\n", seek_entry.first_packet_dts); + if (av_seek_frame(context->format_context, context->stream_idx, seek_entry.first_packet_dts, flags) < 0) + return private_show_error("seek to keyframe failed", FAS_SEEK_ERROR); + + + avcodec_flush_buffers (context->codec_context); + + fas_error = fas_step_forward (context); + + if (fas_error != FAS_SUCCESS || !context->is_frame_available) + { + // something bad has happened, try previous keyframe + private_show_warning("processing of seeked keyframe failed, trying previous keyframe"); + return private_seek_to_nearest_key(context, target_index, offset + 1); + } + + while (context->current_dts < seek_entry.last_packet_dts) + { + //printf("frame-times: current: %lld target: %lld is_key: %d\n", context->current_dts, seek_entry.last_packet_dts, context->frame_buffer->key_frame); + fas_error = fas_step_forward(context); + if (fas_error != FAS_SUCCESS) + return private_show_error ("unable to process up to target frame (fas_seek_to_frame)", fas_error); + } + + // printf("keyframe vitals: %d looking_for: %lld at: %lld\n", seek_entry.display_index, seek_entry.last_packet_dts, context->current_dts); + if (context->current_dts != seek_entry.last_packet_dts) + { + /* seek to last key-frame, but look for this one */ + private_show_warning("missed keyframe, trying previous keyframe"); + return private_seek_to_nearest_key(context, target_index, offset + 1); + } + + /* Ideally, we could just check if the frame decoded is of the correct time stamp... but... we need several ugly workarounds: + + 1) Some videos have bad keyframes that don't get decoded properly. In this cases, we need to go back a keyframe. + + 2) Other times, none of the frames are labeled keyframes. In these cases, we need to allow seeking to frame 0 + even when it's not labeled as a keyframe. Messy set of conditions. + */ + + if ((!context->frame_buffer->key_frame) && (seek_entry.display_index != 0)) + { + private_show_warning("found keyframe, but not labeled as keyframe, so trying previous keyframe."); + /* seek & look for previous keyframe */ + /* REMOVE FROM TABLE? */ + return private_seek_to_nearest_key(context, seek_entry.display_index - 1, 0); + } + + context->current_frame_index = seek_entry.display_index; + + return FAS_SUCCESS; +} + +/* fas_get_frame_count */ + +int fas_get_frame_count_fast (fas_context_ref_type context) +{ + + if (NULL == context || FAS_FALSE == context->is_video_active) + { + private_show_error ("NULL or invalid context", FAS_INVALID_ARGUMENT); + return -1; + } + + if (context->seek_table.completed == seek_true) + return context->seek_table.num_frames; + + return -1; +} + +int fas_get_frame_count (fas_context_ref_type context) +{ + int fast = fas_get_frame_count_fast(context); + if (fast >= 0) + return fast; + + int current_frame = fas_get_frame_index(context); + + fas_error_type fas_error; + + fas_error = private_complete_seek_table(context); + if (FAS_SUCCESS != fas_error) + { + private_show_error("failed in get_frame_count trying to complete the seek table", fas_error); + return -1; + } + + // seek_show_raw_table(stderr, context->seek_table); + + fas_error = fas_seek_to_frame(context, current_frame); + if (FAS_SUCCESS != fas_error) + { + private_show_error("failed in get_frame_count when trying to seek back to original location", fas_error); + return -1; + } + + fast = fas_get_frame_count_fast(context); + if (fast < 0) + private_show_warning("get_frame_count failed"); + + return fast; +} + +/* fas_frame_available */ + +fas_boolean_type fas_frame_available (fas_context_ref_type context) +{ + if (NULL == context) + { + private_show_error ("NULL context provided for fas_get_frame_index()", FAS_INVALID_ARGUMENT); + return FAS_FALSE; + } + + if (!context->is_video_active) + return FAS_FALSE; + + return context->is_frame_available; +} + + +/* private_show_error */ + +static fas_error_type private_show_error (const char *message, fas_error_type error) +{ + if (SHOW_ERROR_MESSAGES) + fprintf (stderr, " ===> ffmpeg_fas: %s\n", message); + return error; +} + +static void private_show_warning (const char *message) +{ + if (SHOW_WARNING_MESSAGES) + fprintf (stderr, " ---- ffmpeg_fas: %s\n", message); + return; +} + + +/* private_convert_to_rgb */ + +fas_error_type private_convert_to_rgb (fas_context_ref_type ctx) +{ + if (ctx->rgb_already_converted) + return FAS_SUCCESS; + + if (ctx->rgb_buffer == 0) + { + int numBytes = avpicture_get_size(fmt, ctx->codec_context->width, + ctx->codec_context->height); + ctx->rgb_buffer = (uint8_t *) av_malloc(numBytes*sizeof(uint8_t)); + avpicture_fill((AVPicture *) ctx->rgb_frame_buffer, ctx->rgb_buffer, fmt, + ctx->codec_context->width, ctx->codec_context->height); + } + + if (img_convert((AVPicture *) ctx->rgb_frame_buffer, fmt, (AVPicture *) ctx->frame_buffer, + ctx->codec_context->pix_fmt, + ctx->codec_context->width, ctx->codec_context->height) < 0) + private_show_error("error converting to rgb", FAS_DECODING_ERROR); + + ctx->rgb_already_converted = FAS_TRUE; + + return FAS_SUCCESS; +} + + +/* private_convert_to_gray8 */ + +fas_error_type private_convert_to_gray8 (fas_context_ref_type ctx) +{ + if (ctx->gray8_already_converted) + return FAS_SUCCESS; + + if (ctx->gray8_buffer == 0) + { + int numBytes = avpicture_get_size(PIX_FMT_GRAY8, ctx->codec_context->width, + ctx->codec_context->height); + ctx->gray8_buffer = (uint8_t *) av_malloc(numBytes*sizeof(uint8_t)); + avpicture_fill((AVPicture *) ctx->gray8_frame_buffer, ctx->gray8_buffer, PIX_FMT_GRAY8, + ctx->codec_context->width, ctx->codec_context->height); + } + + if (img_convert((AVPicture *) ctx->gray8_frame_buffer, PIX_FMT_GRAY8, (AVPicture *) ctx->frame_buffer, + ctx->codec_context->pix_fmt, + ctx->codec_context->width, ctx->codec_context->height) < 0) + private_show_error("error converting to gray8", FAS_DECODING_ERROR); + + ctx->gray8_already_converted = FAS_TRUE; + + return FAS_SUCCESS; +} + +int fas_get_current_width(fas_context_ref_type context) +{ + return context->codec_context->width; +} + +int fas_get_current_height(fas_context_ref_type context) +{ + return context->codec_context->height; +} + +unsigned long long fas_get_frame_duration(fas_context_ref_type context) +{ + if (context->format_context->streams[context->stream_idx]->time_base.den != context->format_context->streams[context->stream_idx]->r_frame_rate.num + || context->format_context->streams[context->stream_idx]->time_base.num != context->format_context->streams[context->stream_idx]->r_frame_rate.den) + { + double frac = (double)(context->format_context->streams[context->stream_idx]->r_frame_rate.den) / (double)(context->format_context->streams[context->stream_idx]->r_frame_rate.num); + return (unsigned long long)(frac*10000000.); + } + else + { + return (unsigned long long)(((double)(context->format_context->streams[context->stream_idx]->time_base.num)) + /((double)(context->format_context->streams[context->stream_idx]->time_base.den))*10000000.); + } +} + +fas_error_type fas_fill_gray8_ptr(fas_context_ref_type context, unsigned char *y) +{ + /* this conversion also seems to screw up sometimes -- pal8 -> gray8? legodragon.avi */ + if (private_convert_to_gray8(context) != FAS_SUCCESS) + return FAS_FAILURE; + + int width = context->codec_context->width; + int height = context->codec_context->height; + int i; + for (i=0;i < height; i++) + memcpy(y + width * i, context->gray8_frame_buffer->data[0] + context->gray8_frame_buffer->linesize[0] * i, width); + + return FAS_SUCCESS; +} + +fas_error_type fas_fill_420p_ptrs (fas_context_ref_type context, unsigned char *y, unsigned char *u, unsigned char *v) +{ + AVFrame *p = context->frame_buffer; + + /* 411p to 420p conversion fails!? ... so i left this -ldb */ + if (context->codec_context->pix_fmt != PIX_FMT_YUV420P) + return FAS_FAILURE; + + int width = context->codec_context->width; + int height = context->codec_context->height; + int i; + for (i=0;i < height / 2; i++) + { + memcpy(y + width * (2*i) , p->data[0] + p->linesize[0] * (2*i) , width); + memcpy(y + width * (2*i + 1), p->data[0] + p->linesize[0] * (2*i + 1), width); + memcpy(u + width / 2 * i, p->data[1] + p->linesize[1] * i, width / 2); + memcpy(v + width / 2 * i, p->data[2] + p->linesize[2] * i, width / 2); + } + + return FAS_SUCCESS; +} diff --git a/ffmpeg-fas/ffmpeg_fas.def b/ffmpeg-fas/ffmpeg_fas.def new file mode 100644 index 0000000..e53c570 --- /dev/null +++ b/ffmpeg-fas/ffmpeg_fas.def @@ -0,0 +1,14 @@ +LIBRARY ffmpeg_fas +EXPORTS + fas_initialize + fas_open_video + fas_close_video + fas_free_frame + fas_get_frame + fas_get_frame_index + fas_get_frame_duration + fas_step_forward + fas_seek_to_frame + fas_get_frame_count + fas_get_current_height + fas_get_current_width diff --git a/ffmpeg-fas/ffmpeg_fas.h b/ffmpeg-fas/ffmpeg_fas.h new file mode 100644 index 0000000..a0e621a --- /dev/null +++ b/ffmpeg-fas/ffmpeg_fas.h @@ -0,0 +1,120 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#ifndef FFMPEG_FAS_H +#define FFMPEG_FAS_H + +/* If C++ then we need to __extern "C". Compiler defines __cplusplus */ +#ifdef __cplusplus +#define __extern extern "C" +#else +#define __extern extern +#endif + +#include "seek_indices.h" + + +typedef enum +{ + FAS_GRAY8 = 1, + FAS_RGB24 = 2, + FAS_BGR24 = 3, + FAS_ARGB32 = 4, + FAS_ABGR32 = 5, + FAS_YUV420P = 6, + FAS_YUYV422 = 7, + FAS_UYVY422 = 8, + FAS_YUV422P = 9, + FAS_YUV444P = 10, +} fas_color_space_type; + +typedef struct +{ + unsigned char *data; + int width; + int height; + int bytes_per_line; + fas_color_space_type color_space; +} fas_raw_image_type; + + +/********************************************************************** + * Video IO Types + **********************************************************************/ + +typedef struct fas_context_struct* fas_context_ref_type; + +typedef enum +{ + FAS_SUCCESS, + FAS_FAILURE, + FAS_INVALID_ARGUMENT, + FAS_OUT_OF_MEMORY, + FAS_UNSUPPORTED_FORMAT, + FAS_UNSUPPORTED_CODEC, + FAS_NO_MORE_FRAMES, + FAS_DECODING_ERROR, + FAS_SEEK_ERROR, +} fas_error_type; + +typedef enum +{ + FAS_FALSE = 0, + FAS_TRUE = 1 +} fas_boolean_type; + + +__extern void fas_initialize (fas_boolean_type logging, fas_color_space_type format); +__extern void fas_set_format (fas_color_space_type format); + +__extern fas_error_type fas_open_video (fas_context_ref_type *context_ptr, char *file_path); +__extern fas_error_type fas_close_video (fas_context_ref_type context); + +__extern char* fas_error_message (fas_error_type error); + +__extern fas_boolean_type fas_frame_available (fas_context_ref_type context); +__extern int fas_get_frame_index (fas_context_ref_type context); +__extern fas_error_type fas_step_forward (fas_context_ref_type context); + +__extern fas_error_type fas_get_frame (fas_context_ref_type context, fas_raw_image_type *image_ptr); +__extern void fas_free_frame (fas_raw_image_type image); + +__extern fas_error_type fas_seek_to_nearest_key (fas_context_ref_type context, int target_index); +__extern fas_error_type fas_seek_to_frame (fas_context_ref_type context, int target_index); + +__extern int fas_get_frame_count (fas_context_ref_type context); +__extern int fas_get_frame_count_fast (fas_context_ref_type context); + +__extern fas_error_type fas_put_seek_table (fas_context_ref_type context, seek_table_type table); +__extern seek_table_type fas_get_seek_table (fas_context_ref_type context); + +/* will extract raw 420p if the video is in that format -- needs to be alloced ahead of time*/ +__extern fas_error_type fas_fill_420p_ptrs (fas_context_ref_type context, unsigned char *y, unsigned char *u, unsigned char *v); + +/* will extract gray8 data from movie (will convert to ensure you get it) -- need to be alloc'ed ahead of time*/ +__extern fas_error_type fas_fill_gray8_ptr(fas_context_ref_type context, unsigned char *y); + +__extern int fas_get_current_width(fas_context_ref_type context); +__extern int fas_get_current_height(fas_context_ref_type context); + +__extern unsigned long long fas_get_frame_duration(fas_context_ref_type context); + +#endif diff --git a/ffmpeg-fas/ffmpeg_fas.vcproj b/ffmpeg-fas/ffmpeg_fas.vcproj new file mode 100644 index 0000000..7d6c862 --- /dev/null +++ b/ffmpeg-fas/ffmpeg_fas.vcproj @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ffmpeg-fas/private_errors.h b/ffmpeg-fas/private_errors.h new file mode 100644 index 0000000..9369ae3 --- /dev/null +++ b/ffmpeg-fas/private_errors.h @@ -0,0 +1,32 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#ifndef FAS_PRIVATE_ERROR_H +#define FAS_PRIVATE_ERROR_H + +#if defined( _WIN32 ) && defined( STATIC_DLL ) +static int SHOW_ERROR_MESSAGES; +static int SHOW_WARNING_MESSAGES; +#else +int SHOW_ERROR_MESSAGES; +int SHOW_WARNING_MESSAGES; +#endif /* _WIN32 && STATIC_DLL */ +#endif diff --git a/ffmpeg-fas/seek_indices.c b/ffmpeg-fas/seek_indices.c new file mode 100644 index 0000000..cb877c3 --- /dev/null +++ b/ffmpeg-fas/seek_indices.c @@ -0,0 +1,319 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include +#include +#include +#include + +#include "seek_indices.h" +#include "private_errors.h" + +/**** Defines *****************************************************************/ + +#define DEFAULT_INITIAL_SIZE 100 + +static seek_error_type private_show_error (const char *message, seek_error_type error); +static seek_error_type private_resize_table (seek_table_type *table, int new_size); + + +/* + * seek_init_table + */ + +int compare_seek_tables(seek_table_type t1, seek_table_type t2) +{ + int i; + + // printf("n_entries=(%d %d)\n", t1.num_entries, t2.num_entries); + + if (t1.num_entries != t2.num_entries) + return 0; + + if (t1.completed != t2.completed) + return 0; + + if (t1.num_frames != t2.num_frames) + return 0; + + for (i=0;inum_entries = 0; + table->num_frames = -1; + table->completed = seek_false; + + if (NULL == table || NULL == table->array) + return; + + free (table->array); + return; +} + +/* + * seek_copy_table + */ + +seek_table_type seek_copy_table (seek_table_type source) +{ + seek_table_type dest; + dest.num_entries = source.num_entries; + dest.num_frames = source.num_frames; + dest.completed = source.completed; + + if (NULL == source.array) + { + dest.array = NULL; + dest.allocated_size = 0; + return dest; + } + + dest.array = (seek_entry_type *)malloc (source.num_entries * sizeof(seek_entry_type)); + + if (NULL == dest.array) + { + dest.array = NULL; + dest.allocated_size = 0; + return dest; + } + + dest.allocated_size = source.num_entries; + + int i; + for (i=0;iarray) + return private_show_error("null or invalid seek table", seek_bad_argument); + + if (table->num_entries != 0) + if (table->array[table->num_entries - 1].display_index >= entry.display_index) + return seek_no_error; + + if (table->num_entries == table->allocated_size) + { + seek_error_type error = private_resize_table (table, table->num_entries * 2); + if (error != seek_no_error) + return private_show_error ("unable to resize seek table", error); + } + + table->array[table->num_entries] = entry; + table->num_entries++; + + return seek_no_error; +} + +/* + * seek_get_nearest_entry + */ + +seek_error_type seek_get_nearest_entry (seek_table_type *table, seek_entry_type *entry, int display_index, int offset) +{ + /* using offset>0 returns a modified seek_entry that sets the 'time-to-seek' to be $offset keyframes in the past. + */ + + if (NULL == table || NULL == table->array || table->num_entries <= 0) { + return private_show_error ("NULL or invalid seek table", seek_bad_argument); + } + + if (NULL == entry) { + return private_show_error ("NULL entry buffer (for return)", seek_bad_argument); + } + + if (display_index < table->array[0].display_index) + return private_show_error ("tried to seek to frame index before first frame", seek_bad_argument); + + int i; + for (i=0; i < table->num_entries; i++) + if (table->array[i].display_index > display_index) + break; + + i = i-1; + + if (iarray[i]; + (*entry).first_packet_dts = table->array[i-offset].first_packet_dts; + + return seek_no_error; +} + + +/* read raw file */ +seek_table_type read_table_file(char *name) +{ + seek_table_type ans = { NULL, (seek_boolean_type) 0, (seek_boolean_type) 0 }; + + FILE *table_file = fopen(name, "r"); + if (table_file == NULL) + return ans; + + int completed_flag; + fscanf(table_file, "%d %d %d\n", &ans.num_frames, &ans.num_entries, &completed_flag); + + if (completed_flag == 1) + ans.completed = seek_true; + else + ans.completed = seek_false; + + ans.allocated_size = ans.num_entries; + ans.array = (seek_entry_type*) malloc (ans.allocated_size * sizeof(seek_entry_type)); + + int i; + for (i=0;idisplay_index, entry->first_packet_dts, entry->last_packet_dts); + } + return seek_no_error; +} + +seek_error_type seek_show_table (seek_table_type table) +{ + seek_entry_type *entry; + int index; + + if (NULL == table.array || table.num_entries <= 0) { + return private_show_error ("NULL or invalid seek table", seek_bad_argument); + } + + int completed_flag = 0; + if (table.completed == seek_true) + completed_flag = 1; + + fprintf (stderr, "--- Seek Table Dump ---\n"); + fprintf (stderr, "n_frames: %d n_entries: %d completed: %d\n",table.num_frames, table.num_entries, completed_flag); + for (index = 0; index < table.num_entries; index++) + { + entry = &(table.array[index]); + + fprintf (stderr, " %04d --> %08lld (%08lld)\n", entry->display_index, entry->first_packet_dts, entry->last_packet_dts); + } + + fprintf (stderr, "-----------------------\n"); + + return seek_no_error; +} + +/* + * private_show_error + */ + +static seek_error_type private_show_error (const char *message, seek_error_type error) +{ + if (SHOW_ERROR_MESSAGES) + fprintf (stderr, " ===> seek_indices: %s\n", message); + + return error; +} + +/* + * private_resize_table + */ + +static seek_error_type private_resize_table (seek_table_type *table, int new_size) +{ + seek_entry_type *new_array = NULL; + + if (table == NULL || new_size < 0) { + return private_show_error ("invalid argument for private_resize_table()", seek_malloc_failed); + } + + new_array = (seek_entry_type *)malloc (sizeof (seek_entry_type) * new_size); + if (NULL == new_array) { + return private_show_error ("unable to allocate more space for table", seek_malloc_failed); + } + + memcpy (new_array, table->array, table->allocated_size * sizeof (seek_entry_type)); + free (table->array); + + table->allocated_size = new_size; + table->array = new_array; + + return seek_no_error; +} diff --git a/ffmpeg-fas/seek_indices.h b/ffmpeg-fas/seek_indices.h new file mode 100644 index 0000000..e908979 --- /dev/null +++ b/ffmpeg-fas/seek_indices.h @@ -0,0 +1,94 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#ifndef FAS_SEEK_INDICES_H +#define FAS_SEEK_INDICES_H + +#include +#include + +/* If C++ then we need to __extern "C". Compiler defines __cplusplus */ +#ifdef __cplusplus +#define __extern extern "C" +#else +#define __extern extern +#endif + + +/********************************************************************** + * Seek Table Types + **********************************************************************/ + +typedef enum +{ + seek_no_error, + seek_unknown_error, + seek_bad_argument, + seek_malloc_failed, +} seek_error_type; + +typedef enum +{ + seek_false = 0, + seek_true = 1 +} seek_boolean_type; + +typedef struct +{ + int display_index; + int64_t first_packet_dts; + int64_t last_packet_dts; +} seek_entry_type; + +typedef struct +{ + seek_entry_type *array; + seek_boolean_type completed; + int num_frames; // total number of frames + int num_entries; // ie, number of seek-points (keyframes) + int allocated_size; +} seek_table_type; + + + +/********************************************************************** + * Seek Table Functions + **********************************************************************/ + + +__extern seek_table_type seek_init_table (int initial_size); +__extern void seek_release_table (seek_table_type *table); + +__extern seek_table_type seek_copy_table (seek_table_type source); +__extern int compare_seek_tables(seek_table_type t1, seek_table_type t2); + +__extern seek_error_type seek_append_table_entry (seek_table_type *table, seek_entry_type entry); + +__extern seek_error_type seek_get_nearest_entry (seek_table_type *table, seek_entry_type *entry, int display_index, int offset); + +__extern seek_error_type seek_show_table (seek_table_type table); /* human readable */ +__extern seek_error_type seek_show_raw_table (FILE *file, seek_table_type table); + +__extern seek_table_type read_table_file(char *name); /* read raw file */ + +#endif + +/**** End of File *****************************************************/ diff --git a/ffmpeg-fas/seek_indices.o b/ffmpeg-fas/seek_indices.o new file mode 100644 index 0000000..da73b17 Binary files /dev/null and b/ffmpeg-fas/seek_indices.o differ diff --git a/ffmpeg-fas/test/build.sh b/ffmpeg-fas/test/build.sh new file mode 100755 index 0000000..d00dd63 --- /dev/null +++ b/ffmpeg-fas/test/build.sh @@ -0,0 +1,7 @@ +LINK="../lib/libffmpeg_fas.so -lm -lz " +gcc dump_frames.c -I.. $LINK -o dump_frames +gcc dump_keyframes.c -I.. $LINK -o dump_keyframes +gcc show_seek_table.c -I.. $LINK -o show_seek_table +gcc seek_test.c -I.. $LINK -o seek_test +gcc external_seek_test.c -I.. $LINK -o external_seek_test +gcc generate_seek_table.c -I.. -I../ffmpeg/ ../ffmpeg/libavformat/libavformat.a ../ffmpeg/libavutil/libavutil.a ../ffmpeg/libavcodec/libavcodec.a -lm -lz ../lib/libffmpeg_fas.so -o generate_seek_table \ No newline at end of file diff --git a/ffmpeg-fas/test/dump_frames.c b/ffmpeg-fas/test/dump_frames.c new file mode 100644 index 0000000..ee9406b --- /dev/null +++ b/ffmpeg-fas/test/dump_frames.c @@ -0,0 +1,67 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include "ffmpeg_fas.h" +#include "test_support.h" +#include + +int main (int argc, char **argv) +{ + char filename_buffer [255]; + + fas_error_type video_error; + fas_context_ref_type context; + fas_raw_image_type image_buffer; + + if (argc < 2) { + fprintf (stderr, "usage: %s \n", argv[0]); + return -1; + } + + fas_initialize (FAS_FALSE, FAS_RGB24); + + fprintf(stderr, "%s : ",argv[1]); + video_error = fas_open_video (&context, argv[1]); + if (video_error != FAS_SUCCESS) + fail("failed to open\n"); + + int counter = 0; + while (fas_frame_available (context)) + { + + if (FAS_SUCCESS != fas_get_frame (context, &image_buffer)) + fail("failed on rgb image\n"); + + char filename[50]; + sprintf(filename, "frame_%04d.ppm", counter); + + fprintf(stderr, "Writing %s (counter=%d frame_index=%d)\n", filename, counter, fas_get_frame_index(context)); + ppm_save(&image_buffer, filename); + + fas_free_frame (image_buffer); + + video_error = fas_step_forward (context); + counter++; + } + + success(); + +} diff --git a/ffmpeg-fas/test/dump_keyframes.c b/ffmpeg-fas/test/dump_keyframes.c new file mode 100644 index 0000000..61eba5c --- /dev/null +++ b/ffmpeg-fas/test/dump_keyframes.c @@ -0,0 +1,76 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include "ffmpeg_fas.h" +#include "seek_indices.h" +#include "test_support.h" +#include + +int main (int argc, char **argv) +{ + fas_error_type video_error; + fas_context_ref_type context, seek_context; + + if (argc < 3) { + fprintf (stderr, "usage: %s \n", argv[0]); + fail("arguments\n"); + } + + seek_table_type table = read_table_file(argv[2]); + if (table.num_entries == 0) + fail("bad table\n"); + + fas_initialize (FAS_TRUE, FAS_RGB24); + + video_error = fas_open_video (&context, argv[1]); + if (video_error != FAS_SUCCESS) fail("fail on open\n"); + + video_error = fas_put_seek_table(context, table); + if (video_error != FAS_SUCCESS) fail("fail on put_seek_table\n"); + + video_error = fas_open_video (&seek_context, argv[1]); + if (video_error != FAS_SUCCESS) fail("fail on open\n"); + + int i; + for(i=0;i. + * + ******************************************************************************/ + +/* test seek using external table */ + +#include "ffmpeg_fas.h" +#include "seek_indices.h" +#include "test_support.h" +#include + +#define TEST_SET_SIZE 1000 +#define N_ITERATIONS 500 + +int compare_frames(fas_raw_image_type img1, fas_raw_image_type img2) +{ + // printf("(%d %d) (%d %d) (%d %d) (%d %d)\n", img1.width, img2.width, + // img1.height, img2.height, + // img1.bytes_per_line, img2.bytes_per_line, + // img1.color_space, img2.color_space); + + if ((img1.width != img2.width) || + (img1.height != img2.height) || + (img1.bytes_per_line != img2.bytes_per_line) || + (img1.color_space != img2.color_space)) + return 0; + + int i,j; + int mask = 0; + + for (i=0;i%d)\n", prev_index, index); + + fail(buffer); + } + + fas_free_frame(test_frame); + } + + for (i=0;i \n", argv[0]); + fail("arguments\n"); + } + + fprintf(stderr, "%s : ", argv[1]); + + seek_table_type table = read_table_file(argv[2]); + if (table.num_entries == 0) + fail("bad table\n"); + + fas_initialize (FAS_FALSE, FAS_RGB24); + + video_error = fas_open_video (&context, argv[1]); + if (video_error != FAS_SUCCESS) fail("fail on open\n"); + + video_error = fas_put_seek_table(context, table); + if (video_error != FAS_SUCCESS) fail("fail on put_seek_table\n"); + + if (fas_get_frame_count(context) < 0) + fail("n_frames = -1\n"); + + if (fas_get_frame_count(context) < TEST_SET_SIZE) + do_random_test(context, 0, fas_get_frame_count(context) - 1, N_ITERATIONS); + else if (fas_get_frame_count(context) < TEST_SET_SIZE * 2) + { + do_random_test(context, 0, fas_get_frame_count(context) / 2 - 1, N_ITERATIONS / 2); + do_random_test(context, fas_get_frame_count(context) / 2 + 1, fas_get_frame_count(context) - 1 , N_ITERATIONS / 2); + } + else + { + do_random_test(context, 0, TEST_SET_SIZE, N_ITERATIONS / 2); + do_random_test(context, fas_get_frame_count(context) - TEST_SET_SIZE, fas_get_frame_count(context) - 1 , N_ITERATIONS / 2); + } + + seek_release_table(&table); + fas_close_video(context); + + success(); +} + diff --git a/ffmpeg-fas/test/generate_seek_table.c b/ffmpeg-fas/test/generate_seek_table.c new file mode 100644 index 0000000..5549f57 --- /dev/null +++ b/ffmpeg-fas/test/generate_seek_table.c @@ -0,0 +1,209 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include +#include +#include "seek_indices.h" + +/* This executable is used for creating experimental seek tables. + The show_seek_table executable will show the seek-table as ffmpeg_fas + currently creates them. + */ + +int main (int argc, char **argv) +{ + av_log_level = AV_LOG_QUIET; + + if (argc < 2) { + fprintf (stderr, "usage: %s \n", argv[0]); + return -1; + } + + av_register_all(); + + AVFormatContext *pFormatCtx; + if (av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL) !=0) + return -1; + + if (av_find_stream_info(pFormatCtx)<0) + return -1; + + unsigned int stream_id = -1; + unsigned int i; + + for (i = 0; i < pFormatCtx->nb_streams; i++) + if (pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) + { + stream_id = i; + break; + } + + if (stream_id == -1) + return -1; + + AVCodecContext *pCodecCtx = pFormatCtx->streams[stream_id]->codec; + AVCodec *pCodec; + pCodec = avcodec_find_decoder(pCodecCtx->codec_id); + if (pCodec==NULL) + return -1; + + if (avcodec_open(pCodecCtx, pCodec)<0) + return -1; + + + // printf("\n%s \n",argv[1]); + + AVPacket Packet; + int count = 0; + int key_packets = 0; + int non_key_packets = 0; + + int frame_count = 0; + int key_frames = 0; + int non_key_frames = 0; + + AVFrame *pFrame; + pFrame=avcodec_alloc_frame(); + int frameFinished; + + seek_table_type table; + table = seek_init_table (16); + seek_entry_type entry; + + int64_t key_packet_dts; + int64_t prev_packet_dts = AV_NOPTS_VALUE; + int64_t first_packet_dts; /* ensure first keyframe gets first packet */ + + int is_first_packet = 1; + int frames_have_label = 1; + + // const char *format_name = pFormatCtx->iformat->name; + // const char *codec_name = pFormatCtx->streams[stream_id]->codec->codec->name; + + + /* these avi formats do not have labeled keyframes (the packets are labeled only and the packets and keyframe align 1-to-1 */ + /* DISABLING THIS TYPE OF GENERATION (these videos will be unseekable) */ + // fprintf(stderr, "format: (%s) codec: (%s)\n", format_name, codec_name); +/* + * if (!strcmp(format_name, "avi")) + * if (!strcmp(codec_name, "aasc") || + * !strcmp(codec_name, "camtasia") || + * !strcmp(codec_name, "cinepak") || + * !strcmp(codec_name, "cyuv") || + * !strcmp(codec_name, "huffyuv") || + * !strcmp(codec_name, "indeo2") || + * !strcmp(codec_name, "indeo3") || + * !strcmp(codec_name, "msrle") || + * !strcmp(codec_name, "msvideo1") || + * !strcmp(codec_name, "mszh") || + * !strcmp(codec_name, "qpeg") || + * !strcmp(codec_name, "truemotion1") || + * !strcmp(codec_name, "ultimotion") || + * !strcmp(codec_name, "vp3") || + * !strcmp(codec_name, "zlib")) + * frames_have_label = 0; + */ + + while (av_read_frame(pFormatCtx, &Packet) >= 0) + { + if (Packet.stream_index == stream_id) + { + // fprintf(stderr, "Packet: (P%d: %lld %lld %d)\n", count, Packet.pts, Packet.dts, Packet.flags); + if ((Packet.flags & PKT_FLAG_KEY) || is_first_packet ) + { + /* when keyframes overlap in the stream, that means multiple packets labeled 'keyframe' will arrive before + the keyframe itself. this results in wrong assignments all around, but only the first one needs to be right. + for all the rest, the seek-code will rewind to the previous keyframe to get them right. + */ + if (is_first_packet) + { + first_packet_dts = Packet.dts; + is_first_packet = 0; + } + + // fprintf(stderr, "Packet: (P%d: %lld %lld)\n", count, Packet.pts, Packet.dts); + + /* first keyframe gets own dts, others get previous packet's dts.. this is workaround for some mpegs */ + /* sometimes you need the previous packet from the supposed keyframe packet to get a frame back that is */ + /* actually a keyframe */ + + if (prev_packet_dts == AV_NOPTS_VALUE) + key_packet_dts = Packet.dts; + else + key_packet_dts = prev_packet_dts; + + if (Packet.flags & PKT_FLAG_KEY) + key_packets++; + else + non_key_packets++; + } + else + non_key_packets++; + + + avcodec_decode_video(pCodecCtx, pFrame, &frameFinished, Packet.data, Packet.size); + + if (frameFinished) + { + + // fprintf(stderr, "Frame : (P%d F%d: %lld %lld L:%d)\n", count, frame_count, Packet.pts, Packet.dts, pFrame->key_frame); + if ((pFrame->key_frame && frames_have_label) || ((Packet.flags & PKT_FLAG_KEY) && !frames_have_label)) + { + key_frames++; + + entry.display_index = frame_count; + entry.first_packet_dts = key_packet_dts; + entry.last_packet_dts = Packet.dts; + + /* ensure first keyframe gets first packet dts */ + if (frame_count == 0) + entry.first_packet_dts = first_packet_dts; + + seek_append_table_entry(&table, entry); + + // fprintf(stderr, "Frame : (P%d F%d: %lld %lld)\n", count, frame_count, Packet.pts, Packet.dts); + } + else + non_key_frames++; + frame_count++; + } + + count++; + prev_packet_dts = Packet.dts; + } + + av_free_packet(&Packet); + } + + // printf("\n"); + + fprintf (stderr, "Packets: key: %d nonkey: %d total: %d\n", key_packets, non_key_packets, count); + fprintf (stderr, "Frames : key: %d nonkey: %d total: %d\n", key_frames, non_key_frames, frame_count); + + table.completed = seek_true; + table.num_frames = frame_count; + + seek_show_raw_table(stdout, table); + + return 1; +} diff --git a/ffmpeg-fas/test/movie_info.c b/ffmpeg-fas/test/movie_info.c new file mode 100644 index 0000000..f7bf40e --- /dev/null +++ b/ffmpeg-fas/test/movie_info.c @@ -0,0 +1,81 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include +#include + +#include + +int main(int argc, char *argv[]) { + AVFormatContext *pFormatCtx; + int i, videoStream; + AVCodecContext *pCodecCtx; + AVCodec *pCodec; + AVFrame *pFrame; + AVFrame *pFrameRGB; + AVPacket packet; + int frameFinished; + int numBytes; + uint8_t *buffer; + + if(argc < 2) { + printf("Please provide a movie file\n"); + return -1; + } + // Register all formats and codecs + av_register_all(); + + // Open video file + if(av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL)!=0) + return -1; // Couldn't open file + + // Retrieve stream information + if(av_find_stream_info(pFormatCtx)<0) + return -1; // Couldn't find stream information + + // Dump information about file onto standard error + dump_format(pFormatCtx, 0, argv[1], 0); + + // Find the first video stream + videoStream=-1; + for(i=0; inb_streams; i++) + if(pFormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO) { + videoStream=i; + break; + } + if(videoStream==-1) + return -1; // Didn't find a video stream + + // Get a pointer to the codec context for the video stream + pCodecCtx=pFormatCtx->streams[videoStream]->codec; + + // Find the decoder for the video stream + pCodec=avcodec_find_decoder(pCodecCtx->codec_id); + if(pCodec==NULL) { + fprintf(stderr, "Unsupported codec!\n"); + return -1; // Codec not found + } + // Open codec + if(avcodec_open(pCodecCtx, pCodec)<0) + return -1; // Could not open codec + + return 0; +} diff --git a/ffmpeg-fas/test/run_test.py b/ffmpeg-fas/test/run_test.py new file mode 100755 index 0000000..38dbb21 --- /dev/null +++ b/ffmpeg-fas/test/run_test.py @@ -0,0 +1,56 @@ +#!/usr/bin/python + +import sys +import os + +def readFilelist(filename): + try: + f = open(filename, 'r') + except: + return [] + return [ele[:-1] for ele in f.readlines()] + +def create_filter_func(cmd, log_file): + if log_file == "": + return lambda filename : 0 == os.system(cmd + " " + filename) + else: + return lambda filename : 0 == os.system(cmd + " " + filename + " 2>> " + log_file) + +def write_filelist(files, filename): + f = open(filename, 'w') + for arg in files: + f.write(arg + '\n') + f.close() + +if __name__ == "__main__": + if len(sys.argv) < 3 or len(sys.argv) > 4: + print "Usage: " + sys.argv[0] + " " + raise SystemExit + + + if not os.path.isfile(sys.argv[1]): + print sys.argv[1] + " not found" + raise SystemExit + + cmd = sys.argv[1] + base_name = cmd.split('/')[-1] + + success_file = base_name + ".pass" + fail_file = base_name + ".fail" + + if len(sys.argv) == 4: + log_file = sys.argv[3] + if os.path.isfile(log_file): + os.system("rm " + log_file) + else: + log_file = "" + + files = readFilelist(sys.argv[2]) + + filterfunc = create_filter_func(cmd, log_file) + successful = filter(filterfunc, files) + failed = list(set(files) - set(successful)) + + write_filelist(failed, fail_file) + write_filelist(successful, success_file) + diff --git a/ffmpeg-fas/test/seek_test.c b/ffmpeg-fas/test/seek_test.c new file mode 100644 index 0000000..b145447 --- /dev/null +++ b/ffmpeg-fas/test/seek_test.c @@ -0,0 +1,162 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include "ffmpeg_fas.h" +#include "seek_indices.h" +#include "test_support.h" +#include + +#define TEST_SET_SIZE 1000 +#define N_ITERATIONS 500 + +int compare_frames(fas_raw_image_type img1, fas_raw_image_type img2) +{ + // printf("(%d %d) (%d %d) (%d %d) (%d %d)\n", img1.width, img2.width, + // img1.height, img2.height, + // img1.bytes_per_line, img2.bytes_per_line, + // img1.color_space, img2.color_space); + + if ((img1.width != img2.width) || + (img1.height != img2.height) || + (img1.bytes_per_line != img2.bytes_per_line) || + (img1.color_space != img2.color_space)) + return 0; + + int i,j; + int mask = 0; + + for (i=0;i%d)\n", prev_index, index); + + fail(buffer); + } + + fas_free_frame(test_frame); + } + + for (i=0;i\n", argv[0]); + fail("arguments\n"); + } + + fprintf(stderr, "%s : ", argv[1]); + + fas_initialize (FAS_FALSE, FAS_RGB24); + + video_error = fas_open_video (&context, argv[1]); + if (video_error != FAS_SUCCESS) fail("fail on open\n"); + + if (fas_get_frame_count(context) < 0) + fail("failed on counting frames (completing seek table... bad table?)\n"); + + if (fas_get_frame_count(context) < TEST_SET_SIZE) + do_random_test(context, 0, fas_get_frame_count(context) - 1, N_ITERATIONS); + else if (fas_get_frame_count(context) < TEST_SET_SIZE * 2) + { + do_random_test(context, 0, fas_get_frame_count(context) / 2 - 1, N_ITERATIONS / 2); + do_random_test(context, fas_get_frame_count(context) / 2 + 1, fas_get_frame_count(context) - 1 , N_ITERATIONS / 2); + } + else + { + do_random_test(context, 0, TEST_SET_SIZE, N_ITERATIONS / 2); + do_random_test(context, fas_get_frame_count(context) - TEST_SET_SIZE, fas_get_frame_count(context) - 1 , N_ITERATIONS / 2); + } + + fas_close_video(context); + + success(); +} + diff --git a/ffmpeg-fas/test/show_seek_table.c b/ffmpeg-fas/test/show_seek_table.c new file mode 100644 index 0000000..f5dfd39 --- /dev/null +++ b/ffmpeg-fas/test/show_seek_table.c @@ -0,0 +1,59 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#include "seek_indices.h" +#include "ffmpeg_fas.h" +#include + +int main (int argc, char **argv) +{ + fas_error_type video_error; + fas_context_ref_type context; + fas_raw_image_type image_buffer; + + if (argc < 2) { + fprintf (stderr, "usage: %s \n", argv[0]); + return -1; + } + + fas_initialize (FAS_FALSE, FAS_RGB24); + + video_error = fas_open_video (&context, argv[1]); + if (video_error != FAS_SUCCESS) + return -1; + + while (fas_frame_available (context)) + { + if (FAS_SUCCESS != fas_get_frame (context, &image_buffer)) + return -1; + fas_free_frame (image_buffer); + + video_error = fas_step_forward (context); + } + + seek_table_type table; + table = fas_get_seek_table(context); + + seek_show_raw_table(stdout, table); + + return 1; +} + diff --git a/ffmpeg-fas/test/test_support.h b/ffmpeg-fas/test/test_support.h new file mode 100644 index 0000000..5b91a1a --- /dev/null +++ b/ffmpeg-fas/test/test_support.h @@ -0,0 +1,67 @@ +/***************************************************************************** + * Copyright 2008. Pittsburgh Pattern Recognition, Inc. + * + * This file is part of the Frame Accurate Seeking extension library to + * ffmpeg (ffmpeg-fas). + * + * ffmpeg-fas 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 3 of the License, or (at your + * option) any later version. + * + * The ffmpeg-fas library 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 the ffmpeg-fas library. If not, see . + * + ******************************************************************************/ + +#ifndef FAS_TEST_SUPPORT +#define FAS_TEST_SUPPORT + +#include +#include + +#define fail(x) { fprintf(stderr, "fail : "); fprintf(stderr, x); exit(EXIT_FAILURE); } +#define success() { fprintf(stderr, "success\n"); exit(EXIT_SUCCESS); } + +/* + * static void pgm_save(ppt_raw_image_type *image, char *filename) + * { + * FILE *f; + * int i; + * + * f=fopen(filename,"w"); + * fprintf(f,"P5\n%d\n%d\n%d\n", image->width, image->height, 255); + * + * for(i=0; iheight; i++) { + * fwrite(image->data + i * image->bytes_per_line, 1, image->width, f); + * } + * + * fclose(f); + * } + */ + +static void ppm_save(fas_raw_image_type *image, char *filename) +{ + FILE *f; + int i; + + if (image->color_space != FAS_RGB24) { + return; + } + + f=fopen(filename,"wb"); + fprintf(f,"P6\n%d %d\n%d\n", image->width, image->height, 255); + + for(i=0; iheight; i++) { + fwrite(image->data + i * image->bytes_per_line, 1, image->width * 3, f); + } + + fclose(f); +} + +#endif diff --git a/ffmpeg/.config b/ffmpeg/.config new file mode 100644 index 0000000..e69de29 diff --git a/ffmpeg/.version b/ffmpeg/.version new file mode 100644 index 0000000..e69de29 diff --git a/ffmpeg/COPYING.GPLv2 b/ffmpeg/COPYING.GPLv2 new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/ffmpeg/COPYING.GPLv2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/ffmpeg/COPYING.GPLv3 b/ffmpeg/COPYING.GPLv3 new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/ffmpeg/COPYING.GPLv3 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/ffmpeg/COPYING.LGPLv2.1 b/ffmpeg/COPYING.LGPLv2.1 new file mode 100644 index 0000000..58af0d3 --- /dev/null +++ b/ffmpeg/COPYING.LGPLv2.1 @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library 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. + + This library 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 this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/ffmpeg/COPYING.LGPLv3 b/ffmpeg/COPYING.LGPLv3 new file mode 100644 index 0000000..65c5ca8 --- /dev/null +++ b/ffmpeg/COPYING.LGPLv3 @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/ffmpeg/CREDITS b/ffmpeg/CREDITS new file mode 100644 index 0000000..e29f0b8 --- /dev/null +++ b/ffmpeg/CREDITS @@ -0,0 +1,6 @@ +See the Git history of the project (git://source.ffmpeg.org/ffmpeg) to +get the names of people who have contributed to FFmpeg. + +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. diff --git a/ffmpeg/Changelog b/ffmpeg/Changelog new file mode 100644 index 0000000..8a60d56 --- /dev/null +++ b/ffmpeg/Changelog @@ -0,0 +1,1089 @@ +Entries are sorted chronologically from oldest to youngest within each release, +releases are sorted from youngest to oldest. + +version : +- 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 + + +version 1.2: + +- 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 +- 24-bit FLAC encoding +- multi-channel ALAC encoding up to 7.1 +- 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 +- 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 + + +version 1.0: + +- INI and flat output in ffprobe +- Scene detection in libavfilter +- 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 +- join audio filter +- audio channel mapping filter +- Microsoft ATC Screen decoder +- RTSP listen mode +- TechSmith Screen Codec 2 decoder +- AAC encoding via libfdk-aac +- Microsoft Expression Encoder Screen decoder +- RTMPS protocol support +- RTMPTS protocol support +- 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 + -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 +- support for building with MSVC + + +version 0.11: + +- 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 +- 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 +- 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: + +- 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 +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 + options for ffmpeg should be given in [input options] -i INPUT [output + options] OUTPUT order, in practice it was possible to give output options + before the -i and it mostly worked. Except when it didn't - the behavior was + a bit inconsistent. In avconv, it is not possible to mix input and output + options. All non-global options are reset after an input or output filename. + * All per-file options are now truly per-file - they apply only to the next + input or output file and specifying different values for different files + will now work properly (notably -ss and -t options). + * All per-stream options are now truly per-stream - it is possible to + specify which stream(s) should a given option apply to. See the Stream + specifiers section in the avconv manual for details. + * In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the + sense that they're specified after the output filename instead of before, + like all other options. In avconv this irregularity is removed, all options + apply to the next input or output file. + * -newvideo/-newaudio/-newsubtitle options were removed. Not only were they + irregular and highly confusing, they were also redundant. In avconv the -map + option will create new streams in the output file and map input streams to + them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for + each stream in the first input file. + * The -map option now has slightly different and more powerful syntax: + + Colons (':') are used to separate file index/stream type/stream index + instead of dots. Comma (',') is used to separate the sync stream instead + of colon.. This is done for consistency with other options. + + It's possible to specify stream type. E.g. -map 0:a:2 creates an + output stream from the third input audio stream. + + Omitting the stream index now maps all the streams of the given type, + not just the first. E.g. -map 0:s creates output streams for all the + subtitle streams in the first input file. + + Since -map can now match multiple streams, negative mappings were + introduced. Negative mappings disable some streams from an already + defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for + all the stream in the first input file, except for the second audio + stream'. + * There is a new option -c (or -codec) for choosing the decoder/encoder to + use, which allows to precisely specify target stream(s) consistently with + other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0 + libvorbis sets the codec for the first audio stream and -c copy copies all + the streams without reencoding. Old -vcodec/-acodec/-scodec options are now + aliases to -c:v/a/s + * It is now possible to precisely specify which stream should an AVOption + apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while + -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k + syntax is deprecated and will stop working soon. + * -map_chapters now takes only an input file index and applies to the next + output file. This is consistent with how all the other options work. + * -map_metadata now takes only an input metadata specifier and applies to + the next output file. Output metadata specifier is now part of the option + name, similarly to the AVOptions/map/codec feature above. + * -metadata can now be used to set metadata on streams and chapters, e.g. + -metadata:s:1 language=eng sets the language of the first stream to 'eng'. + This made -vlang/-alang/-slang options redundant, so they were removed. + * -qscale option now uses stream specifiers and applies to all streams, not + just video. I.e. plain -qscale number would now apply to all streams. To get + the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale + and -aq is now an alias for -q:a. + * -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which + uses stream specifiers. Use -bsf:v/a/s instead of the old options. + * -itsscale option now uses stream specifiers, so its argument is only the + scale parameter. + * -intra option was removed, use -g 0 for the same effect. + * -psnr option was removed, use -flags +psnr for the same effect. + * -vf option is now an alias to the new -filter option, which uses stream specifiers. + * -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 +- libcdio-paranoia input device for audio CD grabbing +- 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 +- 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 + AVCodecContext deprecated. Codec private options should be used instead. +- Properly working defaults in libx264 wrapper, support for native presets. +- Encrypted OMA files support +- 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 +- Simple segmenting muxer +- Indeo 4 decoder +- SMJPEG demuxer + + +version 0.8: + +- 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 +- VP8 de/encoding via libvpx +- 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 +- RTSP tunneling over HTTP +- RTP depacketization of SVQ3 +- -strict inofficial replaced by -strict unofficial +- ffplay -exitonkeydown and -exitonmousedown options added +- native GSM / GSM MS decoder +- 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 +- RTP packetization of Theora and Vorbis +- RTP depacketization of MP4A-LATM +- RTP packetization and depacketization of VP8 +- hflip filter +- Apple HTTP Live Streaming demuxer +- a64 codec +- MMS-HTTP support +- G.722 ADPCM audio encoder/decoder +- R10k video decoder +- ocv_smooth filter +- frei0r wrapper filter +- change crop filter syntax to width:height:x:y +- make the crop filter accept parametric expressions +- make ffprobe accept AVFormatContext options +- yadif filter +- blackframe filter +- Demuxer for Leitch/Harris' VR native stream format (LXF) +- RTP depacketization of the X-QT QuickTime format +- SAP (Session Announcement Protocol, RFC 2974) muxer and demuxer +- cropdetect filter +- ffmpeg -crop* options removed +- transpose filter added +- ffmpeg -force_key_frames option added +- demuxer for receiving raw rtp:// URLs without an SDP description +- single stream LATM/LOAS decoder +- setpts filter added +- Win64 support for optimized x86 assembly functions +- MJPEG/AVI1 to JPEG/JFIF bitstream filter +- ASS subtitle encoder and decoder +- IEC 61937 encapsulation for E-AC-3, TrueHD, DTS-HD (for HDMI passthrough) +- overlay filter added +- rename aspect filter to setdar, and pixelaspect to setsar +- IEC 61937 demuxer +- Mobotix .mxg demuxer +- frei0r source added +- hqdn3d filter added +- RTP depacketization of QCELP +- FLAC parser added +- gradfun filter added +- AMR-WB decoder +- 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 +- floating-point AC-3 encoder added +- Lagarith decoder +- ffmpeg -copytb option added +- IVF muxer added +- Wing Commander IV movies decoder added +- movie source added +- Bink version 'b' audio and video decoder +- Bitmap Brothers JV playback system +- Apple HTTP Live Streaming protocol handler +- 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 +- 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 + + +version 0.6: + +- PB-frame decoding for H.263 +- deprecated vhook subsystem removed +- deprecated old scaler removed +- VQF demuxer +- Alpha channel scaler +- PCX encoder +- RTP packetization of H.263 +- RTP packetization of AMR +- RTP depacketization of Vorbis +- CorePNG decoding support +- Cook multichannel decoding support +- introduced avlanguage helpers in libavformat +- 8088flex TMV demuxer and decoder +- per-stream language-tags extraction in asfdec +- V210 decoder and encoder +- remaining GPL parts in AC-3 decoder converted to LGPL +- QCP demuxer +- SoX native format muxer and demuxer +- AMR-NB decoding/encoding, AMR-WB decoding via OpenCORE libraries +- DPX image decoder +- Electronic Arts Madcow decoder +- DivX (XSUB) subtitle encoder +- nonfree libamr support for AMR-NB/WB decoding/encoding removed +- experimental AAC encoder +- RTP depacketization of ASF and RTSP from WMS servers +- RTMP support in libavformat +- noX handling for OPT_BOOL X options +- Wave64 demuxer +- IEC-61937 compatible Muxer +- TwinVQ decoder +- Bluray (PGS) subtitle decoder +- LPCM support in MPEG-TS (HDMV RID as found on Blu-ray disks) +- WMA Pro decoder +- Core Audio Format demuxer +- Atrac1 decoder +- MD STUDIO audio demuxer +- RF64 support in WAV demuxer +- MPEG-4 Audio Lossless Coding (ALS) decoder +- -formats option split into -formats, -codecs, -bsfs, and -protocols +- IV8 demuxer +- CDG demuxer and decoder +- R210 decoder +- Auravision Aura 1 and 2 decoders +- Deluxe Paint Animation playback system +- SIPR decoder +- Adobe Filmstrip muxer and demuxer +- RTP depacketization of H.263 +- Bink demuxer and audio/video decoders +- enable symbol versioning by default for linkers that support it +- IFF PBM/ILBM bitmap decoder +- concat protocol +- Indeo 5 decoder +- RTP depacketization of AMR +- WMA Voice decoder +- ffprobe tool +- AMR-NB decoder +- RTSP muxer +- HE-AAC v1 decoder +- Kega Game Video (KGV1) decoder +- VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files +- RTP depacketization of Theora +- HTTP Digest authentication +- RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp +- Psygnosis YOP demuxer and video decoder +- spectral extension support in the E-AC-3 decoder +- unsharp video filter +- RTP hinting in the mov/3gp/mp4 muxer +- Dirac in Ogg demuxing +- seek to keyframes in Ogg +- 4:2:2 and 4:4:4 Theora decoding +- 35% faster VP3/Theora decoding +- faster AAC decoding +- faster H.264 decoding +- RealAudio 1.0 (14.4K) encoder + + +version 0.5: + +- DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer +- TechSmith Camtasia (TSCC) video decoder +- IBM Ultimotion (ULTI) video decoder +- Sierra Online audio file demuxer and decoder +- Apple QuickDraw (qdrw) video decoder +- Creative ADPCM audio decoder (16 bits as well as 8 bits schemes) +- Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer +- Miro VideoXL (VIXL) video decoder +- H.261 video encoder +- QPEG video decoder +- Nullsoft Video (NSV) file demuxer +- Shorten audio decoder +- LOCO video decoder +- Apple Lossless Audio Codec (ALAC) decoder +- Winnov WNV1 video decoder +- Autodesk Animator Studio Codec (AASC) decoder +- Indeo 2 video decoder +- Fraps FPS1 video decoder +- Snow video encoder/decoder +- Sonic audio encoder/decoder +- Vorbis audio decoder +- Macromedia ADPCM decoder +- Duck TrueMotion 2 video decoder +- support for decoding FLX and DTA extensions in FLIC files +- H.264 custom quantization matrices support +- ffserver fixed, it should now be usable again +- QDM2 audio decoder +- Real Cooker audio decoder +- TrueSpeech audio decoder +- WMA2 audio decoder fixed, now all files should play correctly +- RealAudio 14.4 and 28.8 decoders fixed +- JPEG-LS decoder +- build system improvements +- tabs and trailing whitespace removed from the codebase +- CamStudio video decoder +- AIFF/AIFF-C audio format, encoding and decoding +- ADTS AAC file reading and writing +- Creative VOC file reading and writing +- American Laser Games multimedia (*.mm) playback system +- Zip Motion Blocks Video decoder +- improved Theora/VP3 decoder +- True Audio (TTA) decoder +- AVS demuxer and video decoder +- JPEG-LS encoder +- Smacker demuxer and decoder +- NuppelVideo/MythTV demuxer and RTjpeg decoder +- KMVC decoder +- MPEG-2 intra VLC support +- MPEG-2 4:2:2 encoder +- Flash Screen Video decoder +- GXF demuxer +- Chinese AVS decoder +- GXF muxer +- MXF demuxer +- VC-1/WMV3/WMV9 video decoder +- MacIntel support +- AVISynth support +- VMware video decoder +- VP5 video decoder +- VP6 video decoder +- WavPack lossless audio decoder +- Targa (.TGA) picture decoder +- Vorbis audio encoder +- Delphine Software .cin demuxer/audio and video decoder +- Tiertex .seq demuxer/video decoder +- MTV demuxer +- TIFF picture encoder and decoder +- GIF picture decoder +- Intel Music Coder decoder +- Zip Motion Blocks Video encoder +- Musepack decoder +- Flash Screen Video encoder +- Theora encoding via libtheora +- BMP encoder +- WMA encoder +- GSM-MS encoder and decoder +- DCA decoder +- DXA demuxer and decoder +- DNxHD decoder +- Gamecube movie (.THP) playback system +- Blackfin optimizations +- Interplay C93 demuxer and video decoder +- Bethsoft VID demuxer and video decoder +- CRYO APC demuxer +- Atrac3 decoder +- V.Flash PTX decoder +- RoQ muxer, RoQ audio encoder +- Renderware TXD demuxer and decoder +- extern C declarations for C++ removed from headers +- sws_flags command line option +- codebook generator +- RoQ video encoder +- QTRLE encoder +- OS/2 support removed and restored again +- AC-3 decoder +- NUT muxer +- additional SPARC (VIS) optimizations +- Matroska muxer +- slice-based parallel H.264 decoding +- Monkey's Audio demuxer and decoder +- AMV audio and video decoder +- DNxHD encoder +- H.264 PAFF decoding +- Nellymoser ASAO decoder +- Beam Software SIFF demuxer and decoder +- libvorbis Vorbis decoding removed in favor of native decoder +- IntraX8 (J-Frame) subdecoder for WMV2 and VC-1 +- Ogg (Theora, Vorbis and FLAC) muxer +- The "device" muxers and demuxers are now in a new libavdevice library +- PC Paintbrush PCX decoder +- Sun Rasterfile decoder +- TechnoTrend PVA demuxer +- Linux Media Labs MPEG-4 (LMLM4) demuxer +- AVM2 (Flash 9) SWF muxer +- QT variant of IMA ADPCM encoder +- VFW grabber +- iPod/iPhone compatible mp4 muxer +- Mimic decoder +- MSN TCP Webcam stream demuxer +- RL2 demuxer / decoder +- IFF demuxer +- 8SVX audio decoder +- non-recursive Makefiles +- BFI demuxer +- MAXIS EA XA (.xa) demuxer / decoder +- BFI video decoder +- OMA demuxer +- MLP/TrueHD decoder +- Electronic Arts CMV decoder +- Motion Pixels Video decoder +- Motion Pixels MVI demuxer +- removed animated GIF decoder/demuxer +- D-Cinema audio muxer +- Electronic Arts TGV decoder +- Apple Lossless Audio Codec (ALAC) encoder +- AAC decoder +- floating point PCM encoder/decoder +- MXF muxer +- DV100 AKA DVCPRO HD decoder and demuxer +- E-AC-3 support added to AC-3 decoder +- Nellymoser ASAO encoder +- ASS and SSA demuxer and muxer +- liba52 wrapper removed +- SVQ3 watermark decoding support +- Speex decoding via libspeex +- Electronic Arts TGQ decoder +- RV40 decoder +- QCELP / PureVoice decoder +- RV30 decoder +- hybrid WavPack support +- R3D REDCODE demuxer +- ALSA support for playback and record +- Electronic Arts TQI decoder +- OpenJPEG based JPEG 2000 decoder +- NC (NC4600) camera file demuxer +- Gopher client support +- MXF D-10 muxer +- generic metadata API +- flash ScreenVideo2 encoder + + +version 0.4.9-pre1: + +- DV encoder, DV muxer +- Microsoft RLE video decoder +- Microsoft Video-1 decoder +- Apple Animation (RLE) decoder +- Apple Graphics (SMC) decoder +- Apple Video (RPZA) decoder +- Cinepak decoder +- Sega FILM (CPK) file demuxer +- Westwood multimedia support (VQA & AUD files) +- Id Quake II CIN playback support +- 8BPS video decoder +- FLIC playback support +- RealVideo 2.0 (RV20) decoder +- Duck TrueMotion v1 (DUCK) video decoder +- Sierra VMD demuxer and video decoder +- MSZH and ZLIB decoder support +- SVQ1 video encoder +- AMR-WB support +- PPC optimizations +- rate distortion optimal cbp support +- rate distorted optimal ac prediction for MPEG-4 +- rate distorted optimal lambda->qp support +- AAC encoding with libfaac +- Sunplus JPEG codec (SP5X) support +- use Lagrange multipler instead of QP for ratecontrol +- Theora/VP3 decoding support +- XA and ADX ADPCM codecs +- export MPEG-2 active display area / pan scan +- Add support for configuring with IBM XLC +- floating point AAN DCT +- initial support for zygo video (not complete) +- RGB ffv1 support +- new audio/video parser API +- av_log() system +- av_read_frame() and av_seek_frame() support +- missing last frame fixes +- seek by mouse in ffplay +- noise reduction of DCT coefficients +- H.263 OBMC & 4MV support +- H.263 alternative inter vlc support +- H.263 loop filter +- H.263 slice structured mode +- interlaced DCT support for MPEG-2 encoding +- stuffing to stay above min_bitrate +- MB type & QP visualization +- frame stepping for ffplay +- interlaced motion estimation +- alternate scantable support +- SVCD scan offset support +- closed GOP support +- SSE2 FDCT +- quantizer noise shaping +- G.726 ADPCM audio codec +- MS ADPCM encoding +- multithreaded/SMP motion estimation +- multithreaded/SMP encoding for MPEG-1/MPEG-2/MPEG-4/H.263 +- multithreaded/SMP decoding for MPEG-2 +- FLAC decoder +- Metrowerks CodeWarrior suppport +- H.263+ custom pcf support +- nicer output for 'ffmpeg -formats' +- Matroska demuxer +- SGI image format, encoding and decoding +- H.264 loop filter support +- H.264 CABAC support +- nicer looking arrows for the motion vector visualization +- improved VCD support +- audio timestamp drift compensation +- MPEG-2 YUV 422/444 support +- polyphase kaiser windowed sinc and blackman nuttall windowed sinc audio resample +- better image scaling +- H.261 support +- correctly interleave packets during encoding +- VIS optimized motion compensation +- intra_dc_precision>0 encoding support +- support reuse of motion vectors/MB types/field select values of the source video +- more accurate deblock filter +- padding support +- many optimizations and bugfixes +- FunCom ISS audio file demuxer and according ADPCM decoding + + +version 0.4.8: + +- MPEG-2 video encoding (Michael) +- Id RoQ playback subsystem (Mike Melanson and Tim Ferguson) +- Wing Commander III Movie (.mve) file playback subsystem (Mike Melanson + and Mario Brito) +- Xan DPCM audio decoder (Mario Brito) +- Interplay MVE playback subsystem (Mike Melanson) +- Duck DK3 and DK4 ADPCM audio decoders (Mike Melanson) + + +version 0.4.7: + +- RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from mplayerhq + (originally from public domain player for Amiga at http://www.honeypot.net/audio) +- current version now also compiles with older GCC (Fabrice) +- 4X multimedia playback system including 4xm file demuxer (Mike + Melanson), and 4X video and audio codecs (Michael) +- Creative YUV (CYUV) decoder (Mike Melanson) +- FFV1 codec (our very simple lossless intra only codec, compresses much better + than HuffYUV) (Michael) +- ASV1 (Asus), H.264, Intel indeo3 codecs have been added (various) +- tiny PNG encoder and decoder, tiny GIF decoder, PAM decoder (PPM with + alpha support), JPEG YUV colorspace support. (Fabrice Bellard) +- ffplay has been replaced with a newer version which uses SDL (optionally) + for multiplatform support (Fabrice) +- Sorenson Version 3 codec (SVQ3) support has been added (decoding only) - donated + by anonymous +- AMR format has been added (Johannes Carlsson) +- 3GP support has been added (Johannes Carlsson) +- VP3 codec has been added (Mike Melanson) +- more MPEG-1/2 fixes +- better multiplatform support, MS Visual Studio fixes (various) +- AltiVec optimizations (Magnus Damn and others) +- SH4 processor support has been added (BERO) +- new public interfaces (avcodec_get_pix_fmt) (Roman Shaposhnick) +- VOB streaming support (Brian Foley) +- better MP3 autodetection (Andriy Rysin) +- qpel encoding (Michael) +- 4mv+b frames encoding finally fixed (Michael) +- chroma ME (Michael) +- 5 comparison functions for ME (Michael) +- B-frame encoding speedup (Michael) +- WMV2 codec (unfinished - Michael) +- user specified diamond size for EPZS (Michael) +- Playstation STR playback subsystem, still experimental (Mike and Michael) +- ASV2 codec (Michael) +- CLJR decoder (Alex) + +.. And lots more new enhancements and fixes. + + +version 0.4.6: + +- completely new integer only MPEG audio layer 1/2/3 decoder rewritten + from scratch +- Recoded DCT and motion vector search with gcc (no longer depends on nasm) +- fix quantization bug in AC3 encoder +- added PCM codecs and format. Corrected WAV/AVI/ASF PCM issues +- added prototype ffplay program +- added GOB header parsing on H.263/H.263+ decoder (Juanjo) +- bug fix on MCBPC tables of H.263 (Juanjo) +- bug fix on DC coefficients of H.263 (Juanjo) +- added Advanced Prediction Mode on H.263/H.263+ decoder (Juanjo) +- now we can decode H.263 streams found in QuickTime files (Juanjo) +- now we can decode H.263 streams found in VIVO v1 files(Juanjo) +- preliminary RTP "friendly" mode for H.263/H.263+ coding. (Juanjo) +- added GOB header for H.263/H.263+ coding on RTP mode (Juanjo) +- now H.263 picture size is returned on the first decoded frame (Juanjo) +- added first regression tests +- added MPEG-2 TS demuxer +- new demux API for libav +- more accurate and faster IDCT (Michael) +- faster and entropy-controlled motion search (Michael) +- two pass video encoding (Michael) +- new video rate control (Michael) +- added MSMPEG4V1, MSMPEGV2 and WMV1 support (Michael) +- great performance improvement of video encoders and decoders (Michael) +- new and faster bit readers and vlc parsers (Michael) +- high quality encoding mode: tries all macroblock/VLC types (Michael) +- added DV video decoder +- preliminary RTP/RTSP support in ffserver and libavformat +- H.263+ AIC decoding/encoding support (Juanjo) +- VCD MPEG-PS mode (Juanjo) +- PSNR stuff (Juanjo) +- simple stats output (Juanjo) +- 16-bit and 15-bit RGB/BGR/GBR support (Bisqwit) + + +version 0.4.5: + +- some header fixes (Zdenek Kabelac ) +- many MMX optimizations (Nick Kurshev ) +- added configure system (actually a small shell script) +- added MPEG audio layer 1/2/3 decoding using LGPL'ed mpglib by + Michael Hipp (temporary solution - waiting for integer only + decoder) +- fixed VIDIOCSYNC interrupt +- added Intel H.263 decoding support ('I263' AVI fourCC) +- added Real Video 1.0 decoding (needs further testing) +- simplified image formats again. Added PGM format (=grey + pgm). Renamed old PGM to PGMYUV. +- fixed msmpeg4 slice issues (tell me if you still find problems) +- fixed OpenDivX bugs with newer versions (added VOL header decoding) +- added support for MPlayer interface +- added macroblock skip optimization +- added MJPEG decoder +- added mmx/mmxext IDCT from libmpeg2 +- added pgmyuvpipe, ppm, and ppm_pipe formats (original patch by Celer + ) +- added pixel format conversion layer (e.g. for MJPEG or PPM) +- added deinterlacing option +- MPEG-1/2 fixes +- MPEG-4 vol header fixes (Jonathan Marsden ) +- ARM optimizations (Lionel Ulmer ). +- Windows porting of file converter +- added MJPEG raw format (input/output) +- added JPEG image format support (input/output) + + +version 0.4.4: + +- fixed some std header definitions (Bjorn Lindgren + ). +- added MPEG demuxer (MPEG-1 and 2 compatible). +- added ASF demuxer +- added prototype RM demuxer +- added AC3 decoding (done with libac3 by Aaron Holtzman) +- added decoding codec parameter guessing (.e.g. for MPEG, because the + header does not include them) +- fixed header generation in MPEG-1, AVI and ASF muxer: wmplayer can now + play them (only tested video) +- fixed H.263 white bug +- fixed phase rounding in img resample filter +- add MMX code for polyphase img resample filter +- added CPU autodetection +- added generic title/author/copyright/comment string handling (ASF and RM + use them) +- added SWF demux to extract MP3 track (not usable yet because no MP3 + decoder) +- added fractional frame rate support +- codecs are no longer searched by read_header() (should fix ffserver + segfault) + + +version 0.4.3: + +- BGR24 patch (initial patch by Jeroen Vreeken ) +- fixed raw yuv output +- added motion rounding support in MPEG-4 +- fixed motion bug rounding in MSMPEG4 +- added B-frame handling in video core +- added full MPEG-1 decoding support +- added partial (frame only) MPEG-2 support +- changed the FOURCC code for H.263 to "U263" to be able to see the + +AVI/H.263 file with the UB Video H.263+ decoder. MPlayer works with + this +codec ;) (JuanJo). +- Halfpel motion estimation after MB type selection (JuanJo) +- added pgm and .Y.U.V output format +- suppressed 'img:' protocol. Simply use: /tmp/test%d.[pgm|Y] as input or + output. +- added pgmpipe I/O format (original patch from Martin Aumueller + , but changed completely since we use a format + instead of a protocol) + + +version 0.4.2: + +- added H.263/MPEG-4/MSMPEG4 decoding support. MPEG-4 decoding support + (for OpenDivX) is almost complete: 8x8 MVs and rounding are + missing. MSMPEG4 support is complete. +- added prototype MPEG-1 decoder. Only I- and P-frames handled yet (it + can decode ffmpeg MPEGs :-)). +- added libavcodec API documentation (see apiexample.c). +- fixed image polyphase bug (the bottom of some images could be + greenish) +- added support for non clipped motion vectors (decoding only) + and image sizes non-multiple of 16 +- added support for AC prediction (decoding only) +- added file overwrite confirmation (can be disabled with -y) +- added custom size picture to H.263 using H.263+ (Juanjo) + + +version 0.4.1: + +- added MSMPEG4 (aka DivX) compatible encoder. Changed default codec + of AVI and ASF to DIV3. +- added -me option to set motion estimation method + (default=log). suppressed redundant -hq option. +- added options -acodec and -vcodec to force a given codec (useful for + AVI for example) +- fixed -an option +- improved dct_quantize speed +- factorized some motion estimation code + + +version 0.4.0: + +- removing grab code from ffserver and moved it to ffmpeg. Added + multistream support to ffmpeg. +- added timeshifting support for live feeds (option ?date=xxx in the + URL) +- added high quality image resize code with polyphase filter (need + mmx/see optimization). Enable multiple image size support in ffserver. +- added multi live feed support in ffserver +- suppressed master feature from ffserver (it should be done with an + external program which opens the .ffm url and writes it to another + ffserver) +- added preliminary support for video stream parsing (WAV and AVI half + done). Added proper support for audio/video file conversion in + ffmpeg. +- added preliminary support for video file sending from ffserver +- redesigning I/O subsystem: now using URL based input and output + (see avio.h) +- added WAV format support +- added "tty user interface" to ffmpeg to stop grabbing gracefully +- added MMX/SSE optimizations to SAD (Sums of Absolutes Differences) + (Juan J. Sierralta P. a.k.a. "Juanjo" ) +- added MMX DCT from mpeg2_movie 1.5 (Juanjo) +- added new motion estimation algorithms, log and phods (Juanjo) +- changed directories: libav for format handling, libavcodec for + codecs + + +version 0.3.4: + +- added stereo in MPEG audio encoder + + +version 0.3.3: + +- added 'high quality' mode which use motion vectors. It can be used in + real time at low resolution. +- fixed rounding problems which caused quality problems at high + bitrates and large GOP size + + +version 0.3.2: small fixes + +- ASF fixes +- put_seek bug fix + + +version 0.3.1: added avi/divx support + +- added AVI support +- added MPEG-4 codec compatible with OpenDivX. It is based on the H.263 codec +- added sound for flash format (not tested) + + +version 0.3: initial public release diff --git a/ffmpeg/INSTALL b/ffmpeg/INSTALL new file mode 100644 index 0000000..9549346 --- /dev/null +++ b/ffmpeg/INSTALL @@ -0,0 +1,15 @@ + +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 +sources to build the objects out of tree. To do this, use an absolute +path when launching 'configure', e.g. '/ffmpegdir/ffmpeg/configure'. + +2) Then type 'make' to build FFmpeg. 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. diff --git a/ffmpeg/LICENSE b/ffmpeg/LICENSE new file mode 100644 index 0000000..38b1a5d --- /dev/null +++ b/ffmpeg/LICENSE @@ -0,0 +1,91 @@ +FFmpeg: + +Most files in FFmpeg are under the GNU Lesser General Public License version 2.1 +or later (LGPL v2.1+). Read the file COPYING.LGPLv2.1 for details. Some other +files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to +FFmpeg. + +Some optional parts of FFmpeg 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+. + +Specifically, the GPL parts of FFmpeg 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_hue.c + - vf_kerndeint.c + - vf_mp.c + - vf_noise.c + - vf_pp.c + - vf_smartblur.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 +for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts, +COPYING.GPLv3 to learn the exact legal terms that apply in this case. + +There are a handful of files under other licensing terms, namely: + +* The files libavcodec/jfdctfst.c, libavcodec/jfdctint_template.c and + libavcodec/jrevdct.c are taken from libjpeg, see the top of the files for + licensing details. Specifically note that you must credit the IJG in the + documentation accompanying your program if you only distribute executables. + You must also indicate any changes including additions and deletions to + those three files in the documentation. + + +external libraries +================== + +FFmpeg can be combined with a number of external libraries, which sometimes +affect the licensing of binaries resulting from the combination. + +compatible libraries +-------------------- + +The libcdio, libx264, libxavs and libxvid libraries are under GPL. When +combining them with FFmpeg, FFmpeg 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 +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. diff --git a/ffmpeg/MAINTAINERS b/ffmpeg/MAINTAINERS new file mode 100644 index 0000000..b2bccb2 --- /dev/null +++ b/ffmpeg/MAINTAINERS @@ -0,0 +1,484 @@ +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 + +ffserver: + ffserver.c, ffserver.h Baptiste Coudurier + +Commandline utility code: + cmdutils.c, cmdutils.h Michael Niedermayer + +QuickTime faststart: + tools/qt-faststart.c Baptiste Coudurier + + +Miscellaneous Areas +=================== + +documentation Mike Melanson +website Robert Swain, Lou Logan +build system (configure,Makefiles) Diego Biurrun, Mans Rullgard +project server ĂrpĂ¡d Gereöffy, Michael Niedermayer, Reimar Döffinger +mailinglists Michael Niedermayer, Baptiste Coudurier, Lou Logan +presets Robert Swain +metadata subsystem Aurelien Jacobs +release management Michael Niedermayer + + +libavutil +========= + +External Interfaces: + libavutil/avutil.h Michael Niedermayer +Internal Interfaces: + libavutil/common.h Michael Niedermayer + +Other: + intfloat* Michael Niedermayer + rational.c, rational.h Michael Niedermayer + mathematics.c, mathematics.h Michael Niedermayer + integer.c, integer.h Michael Niedermayer + bswap.h + + +libavcodec +========== + +Generic Parts: + External Interfaces: + avcodec.h Michael Niedermayer + utility code: + utils.c Michael Niedermayer + mem.c Michael Niedermayer + opt.c, opt.h Michael Niedermayer + arithmetic expression evaluator: + eval.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 + +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 + bgmc.c, bgmc.h Thilo Borgmann + bink.c Kostya Shishkov + binkaudio.c Peter Ross + bmp.c Mans Rullgard, Kostya Shishkov + cavs* Stefan Gehrer + celp_filters.* Vitor Sessak + cdxl.c Paul B Mahol + 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 + dxa.c Kostya Shishkov + dv.c Roman Shaposhnik + eacmv*, eaidct*, eat* Peter Ross + 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 + h264* Loren Merritt, Michael Niedermayer + h261* Michael Niedermayer + h263* 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 + jpeg_ls.c Kostya Shishkov + jvdec.c Peter Ross + kmvc.c Kostya Shishkov + lcl*.c Roberto Togni, Reimar Doeffinger + libcelt_dec.c Nicolas George + libgsm.c Michel Bardiaux + libdirac* David Conrad + 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 + libxavs.c Stefan Gehrer + libx264.c Mans Rullgard, Jason Garrett-Glaser + 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 + 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 + 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 + 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_enc.c Oded Shimon + vorbis_dec.c Denes Balatoni, David Conrad + vp3* Mike Melanson + vp5 Aurelien Jacobs + vp6 Aurelien Jacobs + vp8 David Conrad, Jason Garrett-Glaser, Ronald Bultje + vqavideo.c Mike Melanson + wavpack.c Kostya Shishkov + wmaprodec.c Sascha Sommer + wmavoice.c Ronald S. Bultje + wmv2.c Michael Niedermayer + wnv1.c Kostya Shishkov + xan.c Mike Melanson + xbm* Paul B Mahol + 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 + + + iec61883.c Georg Lippitsch + libdc1394.c Roman Shaposhnik + v4l2.c Luca Abeni + vfwcap.c Ramiro Polla + dshow.c Roger Pack + +libavfilter +=========== + +Generic parts: + graphdump.c Nicolas George + +Filters: + af_amerge.c Nicolas George + af_astreamsync.c Nicolas George + af_atempo.c Pavel Koshevoy + af_pan.c Nicolas George + 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 + aiff.c Baptiste Coudurier + ape.c Kostya Shishkov + ass* Aurelien Jacobs + astdec.c Paul B Mahol + astenc.c James Almer + avi* Michael Niedermayer + 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 + idcin.c Mike Melanson + idroqdec.c Mike Melanson + iff.c Jaikrishnan Menon + ipmovie.c Mike Melanson + img2*.c Michael Niedermayer + 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 + microdvd* Aurelien Jacobs + mgsts.c Paul B Mahol + mm.c Peter Ross + mov.c Michael Niedermayer, Baptiste Coudurier + movenc.c Michael Niedermayer, Baptiste Coudurier + 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 + 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 + westwood.c Mike Melanson + wtv.c Peter Ross + wv.c Kostya Shishkov + wvenc.c Paul B Mahol + +Protocols: + bluray.c Petri Hintukainen + http.c Ronald S. Bultje + 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 +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 +======== + +1.2 Michael Niedermayer +1.1 Michael Niedermayer +1.0 Michael Niedermayer + +If you want to maintain an older release, please contact us + + +GnuPG Fingerprints of maintainers and contributors +================================================== + +Anssi Hannula 1A92 FF42 2DD9 8D2E 8AF7 65A9 4278 C520 513D F3CB +Anton Khirnov 6D0C 6625 56F8 65D1 E5F5 814B B50A 1241 C067 07AB +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 +Gwenole Beauchesne 2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4 +Jaikrishnan Menon 61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368 +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 diff --git a/ffmpeg/Makefile b/ffmpeg/Makefile new file mode 100644 index 0000000..07821d1 --- /dev/null +++ b/ffmpeg/Makefile @@ -0,0 +1,193 @@ +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 %.v $(SRC_PATH) +vpath %.texi $(SRC_PATH) +vpath %/fate_config.sh.template $(SRC_PATH) + +PROGS-$(CONFIG_FFMPEG) += ffmpeg +PROGS-$(CONFIG_FFPLAY) += ffplay +PROGS-$(CONFIG_FFPROBE) += ffprobe +PROGS-$(CONFIG_FFSERVER) += ffserver + +PROGS := $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF)) +INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF)) + +OBJS = cmdutils.o $(EXEOBJS) +OBJS-ffmpeg = ffmpeg_opt.o ffmpeg_filter.o +TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 +HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options +TOOLS = qt-faststart trasher +TOOLS-$(CONFIG_ZLIB) += cws2fws + +BASENAMES = ffmpeg ffplay ffprobe ffserver +ALLPROGS = $(BASENAMES:%=%$(PROGSSUF)$(EXESUF)) +ALLPROGS_G = $(BASENAMES:%=%$(PROGSSUF)_g$(EXESUF)) +ALLMANPAGES = $(BASENAMES:%=%.1) + +FFLIBS-$(CONFIG_AVDEVICE) += avdevice +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 + +SKIPHEADERS = cmdutils_common_opts.h + +include $(SRC_PATH)/common.mak + +FF_EXTRALIBS := $(FFEXTRALIBS) +FF_DEP_LIBS := $(DEP_LIBS) + +all: $(PROGS) + +$(PROGS): %$(EXESUF): %_g$(EXESUF) + $(CP) $< $@ + $(STRIP) $@ + +$(TOOLS): %$(EXESUF): %.o $(EXEOBJS) + $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS) + +tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) + +config.h: .config +.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) + @-tput bold 2>/dev/null + @-printf '\nWARNING: $(?F) newer than config.h, rerun configure\n\n' + @-tput sgr0 2>/dev/null + +SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \ + HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ + 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 HOSTOBJS TESTOBJS + +define RESET +$(1) := +$(1)-yes := +endef + +define DOSUBDIR +$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V)))) +SUBDIR := $(1)/ +include $(SRC_PATH)/$(1)/Makefile +-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile +include $(SRC_PATH)/library.mak +endef + +$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) + +define DOPROG +OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS) +$(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) +$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) +$(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) +$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) +-include $$(OBJS-$(1):.o=.d) +endef + +$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P)))) + +%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) + $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) + +OBJDIRS += tools + +-include $(wildcard tools/*.d) + +VERSION_SH = $(SRC_PATH)/version.sh +GIT_LOG = $(SRC_PATH)/.git/logs/HEAD + +.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak +.version: M=@ + +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 +-include .version + +ifdef PROGS +install: install-progs install-data +endif + +install: install-libs install-headers + +install-libs: install-libs-yes + +install-progs-yes: +install-progs-$(CONFIG_SHARED): install-libs + +install-progs: install-progs-yes $(PROGS) + $(Q)mkdir -p "$(BINDIR)" + $(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)" + +install-data: $(DATA_FILES) $(EXAMPLES_FILES) + $(Q)mkdir -p "$(DATADIR)/examples" + $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" + $(INSTALL) -m 644 $(EXAMPLES_FILES) "$(DATADIR)/examples" + +uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data + +uninstall-progs: + $(RM) $(addprefix "$(BINDIR)/", $(ALLPROGS)) + +uninstall-data: + $(RM) -r "$(DATADIR)" + +clean:: + $(RM) $(ALLPROGS) $(ALLPROGS_G) + $(RM) $(CLEANSUFFIXES) + $(RM) $(CLEANSUFFIXES:%=tools/%) + $(RM) coverage.info + $(RM) -r coverage-html + +distclean:: + $(RM) $(DISTCLEANSUFFIXES) + $(RM) config.* .version version.h libavutil/avconfig.h libavcodec/codec_names.h + +config: + $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) + +# Without the sed genthml thinks "libavutil" and "./libavutil" are two different things +coverage.info: $(wildcard *.gcda *.gcno */*.gcda */*.gcno */*/*.gcda */*/*.gcno) + $(Q)lcov -c -d . -b . | sed -e 's#/./#/#g' > $@ + +coverage-html: coverage.info + $(Q)mkdir -p $@ + $(Q)genhtml -o $@ $< + $(Q)touch $@ + +check: all alltools examples testprogs fate + +include $(SRC_PATH)/doc/Makefile +include $(SRC_PATH)/tests/Makefile + +$(sort $(OBJDIRS)): + $(Q)mkdir -p $@ + +# Dummy rule to stop make trying to rebuild removed or renamed headers +%.h: + @: + +# Disable suffix rules. Most of the builtin rules are suffix rules, +# so this saves some time on slow systems. +.SUFFIXES: + +.PHONY: all all-yes alltools check *clean config install* +.PHONY: testprogs uninstall* diff --git a/ffmpeg/README b/ffmpeg/README new file mode 100644 index 0000000..ae007bc --- /dev/null +++ b/ffmpeg/README @@ -0,0 +1,18 @@ +FFmpeg README +------------- + +1) Documentation +---------------- + +* Read the documentation in the doc/ directory in git. + You can also view it online at http://ffmpeg.org/documentation.html + +2) Licensing +------------ + +* See the LICENSE file. + +3) Build and Install +-------------------- + +* See the INSTALL file. diff --git a/ffmpeg/RELEASE b/ffmpeg/RELEASE new file mode 100644 index 0000000..3d529fb --- /dev/null +++ b/ffmpeg/RELEASE @@ -0,0 +1 @@ +1.1.git diff --git a/ffmpeg/arch.mak b/ffmpeg/arch.mak new file mode 100644 index 0000000..b71c8e5 --- /dev/null +++ b/ffmpeg/arch.mak @@ -0,0 +1,16 @@ +OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes) +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) + +OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes) +OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes) diff --git a/ffmpeg/cmdutils.c b/ffmpeg/cmdutils.c new file mode 100644 index 0000000..ca1c965 --- /dev/null +++ b/ffmpeg/cmdutils.c @@ -0,0 +1,1841 @@ +/* + * Various utilities for command line tools + * Copyright (c) 2000-2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include + +/* Include only the enabled headers since some compilers (namely, Sun + Studio) will not omit unused inline functions and create undefined + references to libraries that are not being built. */ + +#include "config.h" +#include "compat/va_copy.h" +#include "libavformat/avformat.h" +#include "libavfilter/avfilter.h" +#include "libavdevice/avdevice.h" +#include "libavresample/avresample.h" +#include "libswscale/swscale.h" +#include "libswresample/swresample.h" +#include "libpostproc/postprocess.h" +#include "libavutil/avassert.h" +#include "libavutil/avstring.h" +#include "libavutil/bprint.h" +#include "libavutil/mathematics.h" +#include "libavutil/imgutils.h" +#include "libavutil/parseutils.h" +#include "libavutil/pixdesc.h" +#include "libavutil/eval.h" +#include "libavutil/dict.h" +#include "libavutil/opt.h" +#include "cmdutils.h" +#include "version.h" +#if CONFIG_NETWORK +#include "libavformat/network.h" +#endif +#if HAVE_SYS_RESOURCE_H +#include +#include +#endif + +static int init_report(const char *env); + +struct SwsContext *sws_opts; +AVDictionary *swr_opts; +AVDictionary *format_opts, *codec_opts, *resample_opts; + +const int this_year = 2013; + +static FILE *report_file; + +void init_opts(void) +{ + + if(CONFIG_SWSCALE) + sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, + NULL, NULL, NULL); +} + +void uninit_opts(void) +{ +#if CONFIG_SWSCALE + sws_freeContext(sws_opts); + sws_opts = NULL; +#endif + + av_dict_free(&swr_opts); + av_dict_free(&format_opts); + av_dict_free(&codec_opts); + av_dict_free(&resample_opts); +} + +void log_callback_help(void *ptr, int level, const char *fmt, va_list vl) +{ + vfprintf(stdout, fmt, vl); +} + +static void log_callback_report(void *ptr, int level, const char *fmt, va_list vl) +{ + va_list vl2; + char line[1024]; + static int print_prefix = 1; + + va_copy(vl2, vl); + av_log_default_callback(ptr, level, fmt, vl); + av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); + va_end(vl2); + fputs(line, report_file); + fflush(report_file); +} + +double parse_number_or_die(const char *context, const char *numstr, int type, + double min, double max) +{ + char *tail; + const char *error; + double d = av_strtod(numstr, &tail); + if (*tail) + error = "Expected number for %s but found: %s\n"; + else if (d < min || d > max) + error = "The value for %s was %s which is not within %f - %f\n"; + else if (type == OPT_INT64 && (int64_t)d != d) + error = "Expected int64 for %s but found %s\n"; + else if (type == OPT_INT && (int)d != d) + error = "Expected int for %s but found %s\n"; + else + return d; + av_log(NULL, AV_LOG_FATAL, error, context, numstr, min, max); + exit(1); + return 0; +} + +int64_t parse_time_or_die(const char *context, const char *timestr, + int is_duration) +{ + int64_t us; + if (av_parse_time(&us, timestr, is_duration) < 0) { + av_log(NULL, AV_LOG_FATAL, "Invalid %s specification for %s: %s\n", + is_duration ? "duration" : "date", context, timestr); + exit(1); + } + return us; +} + +void show_help_options(const OptionDef *options, const char *msg, int req_flags, + int rej_flags, int alt_flags) +{ + const OptionDef *po; + int first; + + first = 1; + for (po = options; po->name != NULL; po++) { + char buf[64]; + + if (((po->flags & req_flags) != req_flags) || + (alt_flags && !(po->flags & alt_flags)) || + (po->flags & rej_flags)) + continue; + + if (first) { + printf("%s\n", msg); + first = 0; + } + av_strlcpy(buf, po->name, sizeof(buf)); + if (po->argname) { + av_strlcat(buf, " ", sizeof(buf)); + av_strlcat(buf, po->argname, sizeof(buf)); + } + printf("-%-17s %s\n", buf, po->help); + } + printf("\n"); +} + +void show_help_children(const AVClass *class, int flags) +{ + const AVClass *child = NULL; + if (class->option) { + av_opt_show2(&class, NULL, flags, 0); + printf("\n"); + } + + while (child = av_opt_child_class_next(class, child)) + show_help_children(child, flags); +} + +static const OptionDef *find_option(const OptionDef *po, const char *name) +{ + const char *p = strchr(name, ':'); + int len = p ? p - name : strlen(name); + + while (po->name != NULL) { + if (!strncmp(name, po->name, len) && strlen(po->name) == len) + break; + po++; + } + return po; +} + +#if HAVE_COMMANDLINETOARGVW +#include +#include +/* Will be leaked on exit */ +static char** win32_argv_utf8 = NULL; +static int win32_argc = 0; + +/** + * Prepare command line arguments for executable. + * For Windows - perform wide-char to UTF-8 conversion. + * Input arguments should be main() function arguments. + * @param argc_ptr Arguments number (including executable) + * @param argv_ptr Arguments list. + */ +static void prepare_app_arguments(int *argc_ptr, char ***argv_ptr) +{ + char *argstr_flat; + wchar_t **argv_w; + int i, buffsize = 0, offset = 0; + + if (win32_argv_utf8) { + *argc_ptr = win32_argc; + *argv_ptr = win32_argv_utf8; + return; + } + + win32_argc = 0; + argv_w = CommandLineToArgvW(GetCommandLineW(), &win32_argc); + if (win32_argc <= 0 || !argv_w) + return; + + /* determine the UTF-8 buffer size (including NULL-termination symbols) */ + for (i = 0; i < win32_argc; i++) + buffsize += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, + NULL, 0, NULL, NULL); + + win32_argv_utf8 = av_mallocz(sizeof(char *) * (win32_argc + 1) + buffsize); + argstr_flat = (char *)win32_argv_utf8 + sizeof(char *) * (win32_argc + 1); + if (win32_argv_utf8 == NULL) { + LocalFree(argv_w); + return; + } + + for (i = 0; i < win32_argc; i++) { + win32_argv_utf8[i] = &argstr_flat[offset]; + offset += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, + &argstr_flat[offset], + buffsize - offset, NULL, NULL); + } + win32_argv_utf8[i] = NULL; + LocalFree(argv_w); + + *argc_ptr = win32_argc; + *argv_ptr = win32_argv_utf8; +} +#else +static inline void prepare_app_arguments(int *argc_ptr, char ***argv_ptr) +{ + /* nothing to do */ +} +#endif /* HAVE_COMMANDLINETOARGVW */ + +static int write_option(void *optctx, const OptionDef *po, const char *opt, + const char *arg) +{ + /* new-style options contain an offset into optctx, old-style address of + * a global var*/ + void *dst = po->flags & (OPT_OFFSET | OPT_SPEC) ? + (uint8_t *)optctx + po->u.off : po->u.dst_ptr; + int *dstcount; + + if (po->flags & OPT_SPEC) { + SpecifierOpt **so = dst; + char *p = strchr(opt, ':'); + + dstcount = (int *)(so + 1); + *so = grow_array(*so, sizeof(**so), dstcount, *dstcount + 1); + (*so)[*dstcount - 1].specifier = av_strdup(p ? p + 1 : ""); + dst = &(*so)[*dstcount - 1].u; + } + + if (po->flags & OPT_STRING) { + char *str; + str = av_strdup(arg); + av_freep(dst); + *(char **)dst = str; + } else if (po->flags & OPT_BOOL || po->flags & OPT_INT) { + *(int *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT_MIN, INT_MAX); + } else if (po->flags & OPT_INT64) { + *(int64_t *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT64_MIN, INT64_MAX); + } else if (po->flags & OPT_TIME) { + *(int64_t *)dst = parse_time_or_die(opt, arg, 1); + } else if (po->flags & OPT_FLOAT) { + *(float *)dst = parse_number_or_die(opt, arg, OPT_FLOAT, -INFINITY, INFINITY); + } else if (po->flags & OPT_DOUBLE) { + *(double *)dst = parse_number_or_die(opt, arg, OPT_DOUBLE, -INFINITY, INFINITY); + } else if (po->u.func_arg) { + int ret = po->u.func_arg(optctx, opt, arg); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, + "Failed to set value '%s' for option '%s': %s\n", + arg, opt, av_err2str(ret)); + return ret; + } + } + if (po->flags & OPT_EXIT) + exit(0); + + return 0; +} + +int parse_option(void *optctx, const char *opt, const char *arg, + const OptionDef *options) +{ + const OptionDef *po; + int ret; + + po = find_option(options, opt); + if (!po->name && opt[0] == 'n' && opt[1] == 'o') { + /* handle 'no' bool option */ + po = find_option(options, opt + 2); + if ((po->name && (po->flags & OPT_BOOL))) + arg = "0"; + } else if (po->flags & OPT_BOOL) + arg = "1"; + + if (!po->name) + po = find_option(options, "default"); + if (!po->name) { + av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt); + return AVERROR(EINVAL); + } + if (po->flags & HAS_ARG && !arg) { + av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt); + return AVERROR(EINVAL); + } + + ret = write_option(optctx, po, opt, arg); + if (ret < 0) + return ret; + + return !!(po->flags & HAS_ARG); +} + +void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, + void (*parse_arg_function)(void *, const char*)) +{ + const char *opt; + int optindex, handleoptions = 1, ret; + + /* perform system-dependent conversions for arguments list */ + prepare_app_arguments(&argc, &argv); + + /* parse options */ + optindex = 1; + while (optindex < argc) { + opt = argv[optindex++]; + + if (handleoptions && opt[0] == '-' && opt[1] != '\0') { + if (opt[1] == '-' && opt[2] == '\0') { + handleoptions = 0; + continue; + } + opt++; + + if ((ret = parse_option(optctx, opt, argv[optindex], options)) < 0) + exit(1); + optindex += ret; + } else { + if (parse_arg_function) + parse_arg_function(optctx, opt); + } + } +} + +int parse_optgroup(void *optctx, OptionGroup *g) +{ + int i, ret; + + av_log(NULL, AV_LOG_DEBUG, "Parsing a group of options: %s %s.\n", + g->group_def->name, g->arg); + + for (i = 0; i < g->nb_opts; i++) { + Option *o = &g->opts[i]; + + if (g->group_def->flags && + !(g->group_def->flags & o->opt->flags)) { + av_log(NULL, AV_LOG_ERROR, "Option %s (%s) cannot be applied to " + "%s %s -- you are trying to apply an input option to an " + "output file or vice versa. Move this option before the " + "file it belongs to.\n", o->key, o->opt->help, + g->group_def->name, g->arg); + return AVERROR(EINVAL); + } + + av_log(NULL, AV_LOG_DEBUG, "Applying option %s (%s) with argument %s.\n", + o->key, o->opt->help, o->val); + + ret = write_option(optctx, o->opt, o->key, o->val); + if (ret < 0) + return ret; + } + + av_log(NULL, AV_LOG_DEBUG, "Successfully parsed a group of options.\n"); + + return 0; +} + +int locate_option(int argc, char **argv, const OptionDef *options, + const char *optname) +{ + const OptionDef *po; + int i; + + for (i = 1; i < argc; i++) { + const char *cur_opt = argv[i]; + + if (*cur_opt++ != '-') + continue; + + po = find_option(options, cur_opt); + if (!po->name && cur_opt[0] == 'n' && cur_opt[1] == 'o') + po = find_option(options, cur_opt + 2); + + if ((!po->name && !strcmp(cur_opt, optname)) || + (po->name && !strcmp(optname, po->name))) + return i; + + if (po->flags & HAS_ARG) + i++; + } + return 0; +} + +static void dump_argument(const char *a) +{ + const unsigned char *p; + + for (p = a; *p; p++) + if (!((*p >= '+' && *p <= ':') || (*p >= '@' && *p <= 'Z') || + *p == '_' || (*p >= 'a' && *p <= 'z'))) + break; + if (!*p) { + fputs(a, report_file); + return; + } + fputc('"', report_file); + for (p = a; *p; p++) { + if (*p == '\\' || *p == '"' || *p == '$' || *p == '`') + fprintf(report_file, "\\%c", *p); + else if (*p < ' ' || *p > '~') + fprintf(report_file, "\\x%02x", *p); + else + fputc(*p, report_file); + } + fputc('"', report_file); +} + +void parse_loglevel(int argc, char **argv, const OptionDef *options) +{ + int idx = locate_option(argc, argv, options, "loglevel"); + const char *env; + if (!idx) + idx = locate_option(argc, argv, options, "v"); + if (idx && argv[idx + 1]) + opt_loglevel(NULL, "loglevel", argv[idx + 1]); + idx = locate_option(argc, argv, options, "report"); + if ((env = getenv("FFREPORT")) || idx) { + init_report(env); + if (report_file) { + int i; + fprintf(report_file, "Command line:\n"); + for (i = 0; i < argc; i++) { + dump_argument(argv[i]); + fputc(i < argc - 1 ? ' ' : '\n', report_file); + } + fflush(report_file); + } + } +} + +#define FLAGS (o->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0 +int opt_default(void *optctx, const char *opt, const char *arg) +{ + const AVOption *o; + int consumed = 0; + char opt_stripped[128]; + const char *p; + const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(); +#if CONFIG_AVRESAMPLE + const AVClass *rc = avresample_get_class(); +#endif + const AVClass *sc, *swr_class; + + if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug")) + av_log_set_level(AV_LOG_DEBUG); + + if (!(p = strchr(opt, ':'))) + p = opt + strlen(opt); + av_strlcpy(opt_stripped, opt, FFMIN(sizeof(opt_stripped), p - opt + 1)); + + if ((o = av_opt_find(&cc, opt_stripped, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) || + ((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') && + (o = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ)))) { + av_dict_set(&codec_opts, opt, arg, FLAGS); + consumed = 1; + } + if ((o = av_opt_find(&fc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { + av_dict_set(&format_opts, opt, arg, FLAGS); + if (consumed) + av_log(NULL, AV_LOG_VERBOSE, "Routing option %s to both codec and muxer layer\n", opt); + consumed = 1; + } +#if CONFIG_SWSCALE + sc = sws_get_class(); + if (!consumed && av_opt_find(&sc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) { + // XXX we only support sws_flags, not arbitrary sws options + int ret = av_opt_set(sws_opts, opt, arg, 0); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); + return ret; + } + consumed = 1; + } +#endif +#if CONFIG_SWRESAMPLE + swr_class = swr_get_class(); + if (!consumed && (o=av_opt_find(&swr_class, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { + struct SwrContext *swr = swr_alloc(); + int ret = av_opt_set(swr, opt, arg, 0); + swr_free(&swr); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); + return ret; + } + av_dict_set(&swr_opts, opt, arg, FLAGS); + consumed = 1; + } +#endif +#if CONFIG_AVRESAMPLE + if ((o=av_opt_find(&rc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { + av_dict_set(&resample_opts, opt, arg, FLAGS); + consumed = 1; + } +#endif + + if (consumed) + return 0; + av_log(NULL, AV_LOG_ERROR, "Could not find option '%s' in any of the FFmpeg subsystems " + "(codec, format, scaler, resampler contexts)\n", opt); + return AVERROR_OPTION_NOT_FOUND; +} + +/* + * Check whether given option is a group separator. + * + * @return index of the group definition that matched or -1 if none + */ +static int match_group_separator(const OptionGroupDef *groups, int nb_groups, + const char *opt) +{ + int i; + + for (i = 0; i < nb_groups; i++) { + const OptionGroupDef *p = &groups[i]; + if (p->sep && !strcmp(p->sep, opt)) + return i; + } + + return -1; +} + +/* + * Finish parsing an option group. + * + * @param group_idx which group definition should this group belong to + * @param arg argument of the group delimiting option + */ +static void finish_group(OptionParseContext *octx, int group_idx, + const char *arg) +{ + OptionGroupList *l = &octx->groups[group_idx]; + OptionGroup *g; + + GROW_ARRAY(l->groups, l->nb_groups); + g = &l->groups[l->nb_groups - 1]; + + *g = octx->cur_group; + g->arg = arg; + g->group_def = l->group_def; +#if CONFIG_SWSCALE + g->sws_opts = sws_opts; +#endif + g->swr_opts = swr_opts; + g->codec_opts = codec_opts; + g->format_opts = format_opts; + g->resample_opts = resample_opts; + + codec_opts = NULL; + format_opts = NULL; + resample_opts = NULL; +#if CONFIG_SWSCALE + sws_opts = NULL; +#endif + swr_opts = NULL; + init_opts(); + + memset(&octx->cur_group, 0, sizeof(octx->cur_group)); +} + +/* + * Add an option instance to currently parsed group. + */ +static void add_opt(OptionParseContext *octx, const OptionDef *opt, + const char *key, const char *val) +{ + int global = !(opt->flags & (OPT_PERFILE | OPT_SPEC | OPT_OFFSET)); + OptionGroup *g = global ? &octx->global_opts : &octx->cur_group; + + GROW_ARRAY(g->opts, g->nb_opts); + g->opts[g->nb_opts - 1].opt = opt; + g->opts[g->nb_opts - 1].key = key; + g->opts[g->nb_opts - 1].val = val; +} + +static void init_parse_context(OptionParseContext *octx, + const OptionGroupDef *groups, int nb_groups) +{ + static const OptionGroupDef global_group = { "global" }; + int i; + + memset(octx, 0, sizeof(*octx)); + + octx->nb_groups = nb_groups; + octx->groups = av_mallocz(sizeof(*octx->groups) * octx->nb_groups); + if (!octx->groups) + exit(1); + + for (i = 0; i < octx->nb_groups; i++) + octx->groups[i].group_def = &groups[i]; + + octx->global_opts.group_def = &global_group; + octx->global_opts.arg = ""; + + init_opts(); +} + +void uninit_parse_context(OptionParseContext *octx) +{ + int i, j; + + for (i = 0; i < octx->nb_groups; i++) { + OptionGroupList *l = &octx->groups[i]; + + for (j = 0; j < l->nb_groups; j++) { + av_freep(&l->groups[j].opts); + av_dict_free(&l->groups[j].codec_opts); + av_dict_free(&l->groups[j].format_opts); + av_dict_free(&l->groups[j].resample_opts); +#if CONFIG_SWSCALE + sws_freeContext(l->groups[j].sws_opts); +#endif + av_dict_free(&l->groups[j].swr_opts); + } + av_freep(&l->groups); + } + av_freep(&octx->groups); + + av_freep(&octx->cur_group.opts); + av_freep(&octx->global_opts.opts); + + uninit_opts(); +} + +int split_commandline(OptionParseContext *octx, int argc, char *argv[], + const OptionDef *options, + const OptionGroupDef *groups, int nb_groups) +{ + int optindex = 1; + int dashdash = -2; + + /* perform system-dependent conversions for arguments list */ + prepare_app_arguments(&argc, &argv); + + init_parse_context(octx, groups, nb_groups); + av_log(NULL, AV_LOG_DEBUG, "Splitting the commandline.\n"); + + while (optindex < argc) { + const char *opt = argv[optindex++], *arg; + const OptionDef *po; + int ret; + + av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt); + + if (opt[0] == '-' && opt[1] == '-' && !opt[2]) { + dashdash = optindex; + continue; + } + /* unnamed group separators, e.g. output filename */ + if (opt[0] != '-' || !opt[1] || dashdash+1 == optindex) { + finish_group(octx, 0, opt); + av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name); + continue; + } + opt++; + +#define GET_ARG(arg) \ +do { \ + arg = argv[optindex++]; \ + if (!arg) { \ + av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\ + return AVERROR(EINVAL); \ + } \ +} while (0) + + /* named group separators, e.g. -i */ + if ((ret = match_group_separator(groups, nb_groups, opt)) >= 0) { + GET_ARG(arg); + finish_group(octx, ret, arg); + av_log(NULL, AV_LOG_DEBUG, " matched as %s with argument '%s'.\n", + groups[ret].name, arg); + continue; + } + + /* normal options */ + po = find_option(options, opt); + if (po->name) { + if (po->flags & OPT_EXIT) { + /* optional argument, e.g. -h */ + arg = argv[optindex++]; + } else if (po->flags & HAS_ARG) { + GET_ARG(arg); + } else { + arg = "1"; + } + + add_opt(octx, po, opt, arg); + av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " + "argument '%s'.\n", po->name, po->help, arg); + continue; + } + + /* AVOptions */ + if (argv[optindex]) { + ret = opt_default(NULL, opt, argv[optindex]); + if (ret >= 0) { + av_log(NULL, AV_LOG_DEBUG, " matched as AVOption '%s' with " + "argument '%s'.\n", opt, argv[optindex]); + optindex++; + continue; + } else if (ret != AVERROR_OPTION_NOT_FOUND) { + av_log(NULL, AV_LOG_ERROR, "Error parsing option '%s' " + "with argument '%s'.\n", opt, argv[optindex]); + return ret; + } + } + + /* boolean -nofoo options */ + if (opt[0] == 'n' && opt[1] == 'o' && + (po = find_option(options, opt + 2)) && + po->name && po->flags & OPT_BOOL) { + add_opt(octx, po, opt, "0"); + av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " + "argument 0.\n", po->name, po->help); + continue; + } + + av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'.\n", opt); + return AVERROR_OPTION_NOT_FOUND; + } + + if (octx->cur_group.nb_opts || codec_opts || format_opts || resample_opts) + av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the " + "commandline.\n"); + + av_log(NULL, AV_LOG_DEBUG, "Finished splitting the commandline.\n"); + + return 0; +} + +int opt_loglevel(void *optctx, const char *opt, const char *arg) +{ + const struct { const char *name; int level; } log_levels[] = { + { "quiet" , AV_LOG_QUIET }, + { "panic" , AV_LOG_PANIC }, + { "fatal" , AV_LOG_FATAL }, + { "error" , AV_LOG_ERROR }, + { "warning", AV_LOG_WARNING }, + { "info" , AV_LOG_INFO }, + { "verbose", AV_LOG_VERBOSE }, + { "debug" , AV_LOG_DEBUG }, + }; + char *tail; + int level; + int i; + + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) { + if (!strcmp(log_levels[i].name, arg)) { + av_log_set_level(log_levels[i].level); + return 0; + } + } + + level = strtol(arg, &tail, 10); + if (*tail) { + av_log(NULL, AV_LOG_FATAL, "Invalid loglevel \"%s\". " + "Possible levels are numbers or:\n", arg); + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) + av_log(NULL, AV_LOG_FATAL, "\"%s\"\n", log_levels[i].name); + exit(1); + } + av_log_set_level(level); + return 0; +} + +static void expand_filename_template(AVBPrint *bp, const char *template, + struct tm *tm) +{ + int c; + + while ((c = *(template++))) { + if (c == '%') { + if (!(c = *(template++))) + break; + switch (c) { + case 'p': + av_bprintf(bp, "%s", program_name); + break; + case 't': + av_bprintf(bp, "%04d%02d%02d-%02d%02d%02d", + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec); + break; + case '%': + av_bprint_chars(bp, c, 1); + break; + } + } else { + av_bprint_chars(bp, c, 1); + } + } +} + +static int init_report(const char *env) +{ + char *filename_template = NULL; + char *key, *val; + int ret, count = 0; + time_t now; + struct tm *tm; + AVBPrint filename; + + if (report_file) /* already opened */ + return 0; + time(&now); + tm = localtime(&now); + + while (env && *env) { + if ((ret = av_opt_get_key_value(&env, "=", ":", 0, &key, &val)) < 0) { + if (count) + av_log(NULL, AV_LOG_ERROR, + "Failed to parse FFREPORT environment variable: %s\n", + av_err2str(ret)); + break; + } + if (*env) + env++; + count++; + if (!strcmp(key, "file")) { + av_free(filename_template); + filename_template = val; + val = NULL; + } else { + av_log(NULL, AV_LOG_ERROR, "Unknown key '%s' in FFREPORT\n", key); + } + av_free(val); + av_free(key); + } + + av_bprint_init(&filename, 0, 1); + expand_filename_template(&filename, + av_x_if_null(filename_template, "%p-%t.log"), tm); + av_free(filename_template); + if (!av_bprint_is_complete(&filename)) { + av_log(NULL, AV_LOG_ERROR, "Out of memory building report file name\n"); + return AVERROR(ENOMEM); + } + + report_file = fopen(filename.str, "w"); + if (!report_file) { + av_log(NULL, AV_LOG_ERROR, "Failed to open report \"%s\": %s\n", + filename.str, strerror(errno)); + return AVERROR(errno); + } + av_log_set_callback(log_callback_report); + av_log(NULL, AV_LOG_INFO, + "%s started on %04d-%02d-%02d at %02d:%02d:%02d\n" + "Report written to \"%s\"\n", + program_name, + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, + filename.str); + av_log_set_level(FFMAX(av_log_get_level(), AV_LOG_VERBOSE)); + av_bprint_finalize(&filename, NULL); + return 0; +} + +int opt_report(const char *opt) +{ + return init_report(NULL); +} + +int opt_max_alloc(void *optctx, const char *opt, const char *arg) +{ + char *tail; + size_t max; + + max = strtol(arg, &tail, 10); + if (*tail) { + av_log(NULL, AV_LOG_FATAL, "Invalid max_alloc \"%s\".\n", arg); + exit(1); + } + av_max_alloc(max); + return 0; +} + +int opt_cpuflags(void *optctx, const char *opt, const char *arg) +{ + int ret; + unsigned flags = av_get_cpu_flags(); + + if ((ret = av_parse_cpu_caps(&flags, arg)) < 0) + return ret; + + av_force_cpu_flags(flags); + return 0; +} + +int opt_timelimit(void *optctx, const char *opt, const char *arg) +{ +#if HAVE_SETRLIMIT + int lim = parse_number_or_die(opt, arg, OPT_INT64, 0, INT_MAX); + struct rlimit rl = { lim, lim + 1 }; + if (setrlimit(RLIMIT_CPU, &rl)) + perror("setrlimit"); +#else + av_log(NULL, AV_LOG_WARNING, "-%s not implemented on this OS\n", opt); +#endif + return 0; +} + +void print_error(const char *filename, int err) +{ + char errbuf[128]; + const char *errbuf_ptr = errbuf; + + if (av_strerror(err, errbuf, sizeof(errbuf)) < 0) + errbuf_ptr = strerror(AVUNERROR(err)); + av_log(NULL, AV_LOG_ERROR, "%s: %s\n", filename, errbuf_ptr); +} + +static int warned_cfg = 0; + +#define INDENT 1 +#define SHOW_VERSION 2 +#define SHOW_CONFIG 4 +#define SHOW_COPYRIGHT 8 + +#define PRINT_LIB_INFO(libname, LIBNAME, flags, level) \ + if (CONFIG_##LIBNAME) { \ + const char *indent = flags & INDENT? " " : ""; \ + if (flags & SHOW_VERSION) { \ + unsigned int version = libname##_version(); \ + av_log(NULL, level, \ + "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \ + indent, #libname, \ + LIB##LIBNAME##_VERSION_MAJOR, \ + LIB##LIBNAME##_VERSION_MINOR, \ + LIB##LIBNAME##_VERSION_MICRO, \ + version >> 16, version >> 8 & 0xff, version & 0xff); \ + } \ + if (flags & SHOW_CONFIG) { \ + const char *cfg = libname##_configuration(); \ + if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \ + if (!warned_cfg) { \ + av_log(NULL, level, \ + "%sWARNING: library configuration mismatch\n", \ + indent); \ + warned_cfg = 1; \ + } \ + av_log(NULL, level, "%s%-11s configuration: %s\n", \ + indent, #libname, cfg); \ + } \ + } \ + } \ + +static void print_all_libs_info(int flags, int level) +{ + PRINT_LIB_INFO(avutil, AVUTIL, flags, level); + PRINT_LIB_INFO(avcodec, AVCODEC, flags, level); + PRINT_LIB_INFO(avformat, AVFORMAT, flags, level); + PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level); + PRINT_LIB_INFO(avfilter, AVFILTER, flags, level); + PRINT_LIB_INFO(avresample, AVRESAMPLE, flags, level); + PRINT_LIB_INFO(swscale, SWSCALE, flags, level); + PRINT_LIB_INFO(swresample,SWRESAMPLE, flags, level); + PRINT_LIB_INFO(postproc, POSTPROC, flags, level); +} + +static void print_program_info(int flags, int level) +{ + const char *indent = flags & INDENT? " " : ""; + + av_log(NULL, level, "%s version " FFMPEG_VERSION, program_name); + if (flags & SHOW_COPYRIGHT) + av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers", + program_birth_year, this_year); + av_log(NULL, level, "\n"); + av_log(NULL, level, "%sbuilt on %s %s with %s\n", + indent, __DATE__, __TIME__, CC_IDENT); + + av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent); +} + +void show_banner(int argc, char **argv, const OptionDef *options) +{ + int idx = locate_option(argc, argv, options, "version"); + if (idx) + return; + + print_program_info (INDENT|SHOW_COPYRIGHT, AV_LOG_INFO); + print_all_libs_info(INDENT|SHOW_CONFIG, AV_LOG_INFO); + print_all_libs_info(INDENT|SHOW_VERSION, AV_LOG_INFO); +} + +int show_version(void *optctx, const char *opt, const char *arg) +{ + av_log_set_callback(log_callback_help); + print_program_info (0 , AV_LOG_INFO); + print_all_libs_info(SHOW_VERSION, AV_LOG_INFO); + + return 0; +} + +int show_license(void *optctx, const char *opt, const char *arg) +{ +#if CONFIG_NONFREE + printf( + "This version of %s has nonfree parts compiled in.\n" + "Therefore it is not legally redistributable.\n", + program_name ); +#elif CONFIG_GPLV3 + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); +#elif CONFIG_GPL + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 2 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); +#elif CONFIG_LGPLV3 + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU Lesser General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); +#else + printf( + "%s is free software; you can redistribute it and/or\n" + "modify it under the terms of the GNU Lesser General Public\n" + "License as published by the Free Software Foundation; either\n" + "version 2.1 of the License, or (at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" + "Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public\n" + "License along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); +#endif + + return 0; +} + +int show_formats(void *optctx, const char *opt, const char *arg) +{ + AVInputFormat *ifmt = NULL; + AVOutputFormat *ofmt = NULL; + const char *last_name; + + printf("File formats:\n" + " D. = Demuxing supported\n" + " .E = Muxing supported\n" + " --\n"); + last_name = "000"; + for (;;) { + int decode = 0; + int encode = 0; + const char *name = NULL; + const char *long_name = NULL; + + while ((ofmt = av_oformat_next(ofmt))) { + if ((name == NULL || strcmp(ofmt->name, name) < 0) && + strcmp(ofmt->name, last_name) > 0) { + name = ofmt->name; + long_name = ofmt->long_name; + encode = 1; + } + } + while ((ifmt = av_iformat_next(ifmt))) { + if ((name == NULL || strcmp(ifmt->name, name) < 0) && + strcmp(ifmt->name, last_name) > 0) { + name = ifmt->name; + long_name = ifmt->long_name; + encode = 0; + } + if (name && strcmp(ifmt->name, name) == 0) + decode = 1; + } + if (name == NULL) + break; + last_name = name; + + printf(" %s%s %-15s %s\n", + decode ? "D" : " ", + encode ? "E" : " ", + name, + long_name ? long_name:" "); + } + return 0; +} + +#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \ + if (codec->field) { \ + const type *p = codec->field; \ + \ + printf(" Supported " list_name ":"); \ + while (*p != term) { \ + get_name(*p); \ + printf(" %s", name); \ + p++; \ + } \ + printf("\n"); \ + } \ + +static void print_codec(const AVCodec *c) +{ + int encoder = av_codec_is_encoder(c); + + printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name, + c->long_name ? c->long_name : ""); + + if (c->type == AVMEDIA_TYPE_VIDEO) { + printf(" Threading capabilities: "); + switch (c->capabilities & (CODEC_CAP_FRAME_THREADS | + CODEC_CAP_SLICE_THREADS)) { + case CODEC_CAP_FRAME_THREADS | + CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break; + case CODEC_CAP_FRAME_THREADS: printf("frame"); break; + case CODEC_CAP_SLICE_THREADS: printf("slice"); break; + default: printf("no"); break; + } + printf("\n"); + } + + if (c->supported_framerates) { + const AVRational *fps = c->supported_framerates; + + printf(" Supported framerates:"); + while (fps->num) { + printf(" %d/%d", fps->num, fps->den); + fps++; + } + printf("\n"); + } + PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats", + AV_PIX_FMT_NONE, GET_PIX_FMT_NAME); + PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0, + GET_SAMPLE_RATE_NAME); + PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats", + AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME); + PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts", + 0, GET_CH_LAYOUT_DESC); + + if (c->priv_class) { + show_help_children(c->priv_class, + AV_OPT_FLAG_ENCODING_PARAM | + AV_OPT_FLAG_DECODING_PARAM); + } +} + +static char get_media_type_char(enum AVMediaType type) +{ + switch (type) { + case AVMEDIA_TYPE_VIDEO: return 'V'; + case AVMEDIA_TYPE_AUDIO: return 'A'; + case AVMEDIA_TYPE_DATA: return 'D'; + case AVMEDIA_TYPE_SUBTITLE: return 'S'; + case AVMEDIA_TYPE_ATTACHMENT:return 'T'; + default: return '?'; + } +} + +static const AVCodec *next_codec_for_id(enum AVCodecID id, const AVCodec *prev, + int encoder) +{ + while ((prev = av_codec_next(prev))) { + if (prev->id == id && + (encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev))) + return prev; + } + return NULL; +} + +static int compare_codec_desc(const void *a, const void *b) +{ + const AVCodecDescriptor * const *da = a; + const AVCodecDescriptor * const *db = b; + + return (*da)->type != (*db)->type ? (*da)->type - (*db)->type : + strcmp((*da)->name, (*db)->name); +} + +static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs) +{ + const AVCodecDescriptor *desc = NULL; + const AVCodecDescriptor **codecs; + unsigned nb_codecs = 0, i = 0; + + while ((desc = avcodec_descriptor_next(desc))) + nb_codecs++; + if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs)))) { + av_log(NULL, AV_LOG_ERROR, "Out of memory\n"); + exit(1); + } + desc = NULL; + while ((desc = avcodec_descriptor_next(desc))) + codecs[i++] = desc; + av_assert0(i == nb_codecs); + qsort(codecs, nb_codecs, sizeof(*codecs), compare_codec_desc); + *rcodecs = codecs; + return nb_codecs; +} + +static void print_codecs_for_id(enum AVCodecID id, int encoder) +{ + const AVCodec *codec = NULL; + + printf(" (%s: ", encoder ? "encoders" : "decoders"); + + while ((codec = next_codec_for_id(id, codec, encoder))) + printf("%s ", codec->name); + + printf(")"); +} + +int show_codecs(void *optctx, const char *opt, const char *arg) +{ + const AVCodecDescriptor **codecs; + unsigned i, nb_codecs = get_codecs_sorted(&codecs); + + printf("Codecs:\n" + " D..... = Decoding supported\n" + " .E.... = Encoding supported\n" + " ..V... = Video codec\n" + " ..A... = Audio codec\n" + " ..S... = Subtitle codec\n" + " ...I.. = Intra frame-only codec\n" + " ....L. = Lossy compression\n" + " .....S = Lossless compression\n" + " -------\n"); + for (i = 0; i < nb_codecs; i++) { + const AVCodecDescriptor *desc = codecs[i]; + const AVCodec *codec = NULL; + + printf(" "); + printf(avcodec_find_decoder(desc->id) ? "D" : "."); + printf(avcodec_find_encoder(desc->id) ? "E" : "."); + + printf("%c", get_media_type_char(desc->type)); + printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : "."); + printf((desc->props & AV_CODEC_PROP_LOSSY) ? "L" : "."); + printf((desc->props & AV_CODEC_PROP_LOSSLESS) ? "S" : "."); + + printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : ""); + + /* print decoders/encoders when there's more than one or their + * names are different from codec name */ + while ((codec = next_codec_for_id(desc->id, codec, 0))) { + if (strcmp(codec->name, desc->name)) { + print_codecs_for_id(desc->id, 0); + break; + } + } + codec = NULL; + while ((codec = next_codec_for_id(desc->id, codec, 1))) { + if (strcmp(codec->name, desc->name)) { + print_codecs_for_id(desc->id, 1); + break; + } + } + + printf("\n"); + } + av_free(codecs); + return 0; +} + +static void print_codecs(int encoder) +{ + const AVCodecDescriptor **codecs; + unsigned i, nb_codecs = get_codecs_sorted(&codecs); + + printf("%s:\n" + " V..... = Video\n" + " A..... = Audio\n" + " S..... = Subtitle\n" + " .F.... = Frame-level multithreading\n" + " ..S... = Slice-level multithreading\n" + " ...X.. = Codec is experimental\n" + " ....B. = Supports draw_horiz_band\n" + " .....D = Supports direct rendering method 1\n" + " ------\n", + encoder ? "Encoders" : "Decoders"); + for (i = 0; i < nb_codecs; i++) { + const AVCodecDescriptor *desc = codecs[i]; + const AVCodec *codec = NULL; + + while ((codec = next_codec_for_id(desc->id, codec, encoder))) { + printf(" %c", get_media_type_char(desc->type)); + printf((codec->capabilities & CODEC_CAP_FRAME_THREADS) ? "F" : "."); + printf((codec->capabilities & CODEC_CAP_SLICE_THREADS) ? "S" : "."); + printf((codec->capabilities & CODEC_CAP_EXPERIMENTAL) ? "X" : "."); + printf((codec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND)?"B" : "."); + printf((codec->capabilities & CODEC_CAP_DR1) ? "D" : "."); + + printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : ""); + if (strcmp(codec->name, desc->name)) + printf(" (codec %s)", desc->name); + + printf("\n"); + } + } + av_free(codecs); +} + +int show_decoders(void *optctx, const char *opt, const char *arg) +{ + print_codecs(0); + return 0; +} + +int show_encoders(void *optctx, const char *opt, const char *arg) +{ + print_codecs(1); + return 0; +} + +int show_bsfs(void *optctx, const char *opt, const char *arg) +{ + AVBitStreamFilter *bsf = NULL; + + printf("Bitstream filters:\n"); + while ((bsf = av_bitstream_filter_next(bsf))) + printf("%s\n", bsf->name); + printf("\n"); + return 0; +} + +int show_protocols(void *optctx, const char *opt, const char *arg) +{ + void *opaque = NULL; + const char *name; + + printf("Supported file protocols:\n" + "Input:\n"); + while ((name = avio_enum_protocols(&opaque, 0))) + printf("%s\n", name); + printf("Output:\n"); + while ((name = avio_enum_protocols(&opaque, 1))) + printf("%s\n", name); + return 0; +} + +int show_filters(void *optctx, const char *opt, const char *arg) +{ + AVFilter av_unused(**filter) = NULL; + char descr[64], *descr_cur; + int i, j; + const AVFilterPad *pad; + + printf("Filters:\n"); +#if CONFIG_AVFILTER + while ((filter = av_filter_next(filter)) && *filter) { + descr_cur = descr; + for (i = 0; i < 2; i++) { + if (i) { + *(descr_cur++) = '-'; + *(descr_cur++) = '>'; + } + pad = i ? (*filter)->outputs : (*filter)->inputs; + for (j = 0; pad && pad[j].name; j++) { + if (descr_cur >= descr + sizeof(descr) - 4) + break; + *(descr_cur++) = get_media_type_char(pad[j].type); + } + if (!j) + *(descr_cur++) = '|'; + } + *descr_cur = 0; + printf("%-16s %-10s %s\n", (*filter)->name, descr, (*filter)->description); + } +#endif + return 0; +} + +int show_pix_fmts(void *optctx, const char *opt, const char *arg) +{ + const AVPixFmtDescriptor *pix_desc = NULL; + + printf("Pixel formats:\n" + "I.... = Supported Input format for conversion\n" + ".O... = Supported Output format for conversion\n" + "..H.. = Hardware accelerated format\n" + "...P. = Paletted format\n" + "....B = Bitstream format\n" + "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL\n" + "-----\n"); + +#if !CONFIG_SWSCALE +# define sws_isSupportedInput(x) 0 +# define sws_isSupportedOutput(x) 0 +#endif + + while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) { + enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc); + printf("%c%c%c%c%c %-16s %d %2d\n", + sws_isSupportedInput (pix_fmt) ? 'I' : '.', + sws_isSupportedOutput(pix_fmt) ? 'O' : '.', + pix_desc->flags & PIX_FMT_HWACCEL ? 'H' : '.', + pix_desc->flags & PIX_FMT_PAL ? 'P' : '.', + pix_desc->flags & PIX_FMT_BITSTREAM ? 'B' : '.', + pix_desc->name, + pix_desc->nb_components, + av_get_bits_per_pixel(pix_desc)); + } + return 0; +} + +int show_layouts(void *optctx, const char *opt, const char *arg) +{ + int i = 0; + uint64_t layout, j; + const char *name, *descr; + + printf("Individual channels:\n" + "NAME DESCRIPTION\n"); + for (i = 0; i < 63; i++) { + name = av_get_channel_name((uint64_t)1 << i); + if (!name) + continue; + descr = av_get_channel_description((uint64_t)1 << i); + printf("%-12s%s\n", name, descr); + } + printf("\nStandard channel layouts:\n" + "NAME DECOMPOSITION\n"); + for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) { + if (name) { + printf("%-12s", name); + for (j = 1; j; j <<= 1) + if ((layout & j)) + printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j)); + printf("\n"); + } + } + return 0; +} + +int show_sample_fmts(void *optctx, const char *opt, const char *arg) +{ + int i; + char fmt_str[128]; + for (i = -1; i < AV_SAMPLE_FMT_NB; i++) + printf("%s\n", av_get_sample_fmt_string(fmt_str, sizeof(fmt_str), i)); + return 0; +} + +static void show_help_codec(const char *name, int encoder) +{ + const AVCodecDescriptor *desc; + const AVCodec *codec; + + if (!name) { + av_log(NULL, AV_LOG_ERROR, "No codec name specified.\n"); + return; + } + + codec = encoder ? avcodec_find_encoder_by_name(name) : + avcodec_find_decoder_by_name(name); + + if (codec) + print_codec(codec); + else if ((desc = avcodec_descriptor_get_by_name(name))) { + int printed = 0; + + while ((codec = next_codec_for_id(desc->id, codec, encoder))) { + printed = 1; + print_codec(codec); + } + + if (!printed) { + av_log(NULL, AV_LOG_ERROR, "Codec '%s' is known to FFmpeg, " + "but no %s for it are available. FFmpeg might need to be " + "recompiled with additional external libraries.\n", + name, encoder ? "encoders" : "decoders"); + } + } else { + av_log(NULL, AV_LOG_ERROR, "Codec '%s' is not recognized by FFmpeg.\n", + name); + } +} + +static void show_help_demuxer(const char *name) +{ + const AVInputFormat *fmt = av_find_input_format(name); + + if (!fmt) { + av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); + return; + } + + printf("Demuxer %s [%s]:\n", fmt->name, fmt->long_name); + + if (fmt->extensions) + printf(" Common extensions: %s.\n", fmt->extensions); + + if (fmt->priv_class) + show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); +} + +static void show_help_muxer(const char *name) +{ + const AVCodecDescriptor *desc; + const AVOutputFormat *fmt = av_guess_format(name, NULL, NULL); + + if (!fmt) { + av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); + return; + } + + printf("Muxer %s [%s]:\n", fmt->name, fmt->long_name); + + if (fmt->extensions) + printf(" Common extensions: %s.\n", fmt->extensions); + if (fmt->mime_type) + printf(" Mime type: %s.\n", fmt->mime_type); + if (fmt->video_codec != AV_CODEC_ID_NONE && + (desc = avcodec_descriptor_get(fmt->video_codec))) { + printf(" Default video codec: %s.\n", desc->name); + } + if (fmt->audio_codec != AV_CODEC_ID_NONE && + (desc = avcodec_descriptor_get(fmt->audio_codec))) { + printf(" Default audio codec: %s.\n", desc->name); + } + if (fmt->subtitle_codec != AV_CODEC_ID_NONE && + (desc = avcodec_descriptor_get(fmt->subtitle_codec))) { + printf(" Default subtitle codec: %s.\n", desc->name); + } + + if (fmt->priv_class) + show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM); +} + +int show_help(void *optctx, const char *opt, const char *arg) +{ + char *topic, *par; + av_log_set_callback(log_callback_help); + + topic = av_strdup(arg ? arg : ""); + par = strchr(topic, '='); + if (par) + *par++ = 0; + + if (!*topic) { + show_help_default(topic, par); + } else if (!strcmp(topic, "decoder")) { + show_help_codec(par, 0); + } else if (!strcmp(topic, "encoder")) { + show_help_codec(par, 1); + } else if (!strcmp(topic, "demuxer")) { + show_help_demuxer(par); + } else if (!strcmp(topic, "muxer")) { + show_help_muxer(par); + } else { + show_help_default(topic, par); + } + + av_freep(&topic); + return 0; +} + +int read_yesno(void) +{ + int c = getchar(); + int yesno = (av_toupper(c) == 'Y'); + + while (c != '\n' && c != EOF) + c = getchar(); + + return yesno; +} + +int cmdutils_read_file(const char *filename, char **bufptr, size_t *size) +{ + int ret; + FILE *f = fopen(filename, "rb"); + + if (!f) { + av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename, + strerror(errno)); + return AVERROR(errno); + } + fseek(f, 0, SEEK_END); + *size = ftell(f); + fseek(f, 0, SEEK_SET); + if (*size == (size_t)-1) { + av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", strerror(errno)); + fclose(f); + return AVERROR(errno); + } + *bufptr = av_malloc(*size + 1); + if (!*bufptr) { + av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n"); + fclose(f); + return AVERROR(ENOMEM); + } + ret = fread(*bufptr, 1, *size, f); + if (ret < *size) { + av_free(*bufptr); + if (ferror(f)) { + av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n", + filename, strerror(errno)); + ret = AVERROR(errno); + } else + ret = AVERROR_EOF; + } else { + ret = 0; + (*bufptr)[(*size)++] = '\0'; + } + + fclose(f); + return ret; +} + +FILE *get_preset_file(char *filename, size_t filename_size, + const char *preset_name, int is_path, + const char *codec_name) +{ + FILE *f = NULL; + int i; + const char *base[3] = { getenv("FFMPEG_DATADIR"), + getenv("HOME"), + FFMPEG_DATADIR, }; + + if (is_path) { + av_strlcpy(filename, preset_name, filename_size); + f = fopen(filename, "r"); + } else { +#ifdef _WIN32 + char datadir[MAX_PATH], *ls; + base[2] = NULL; + + if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1)) + { + for (ls = datadir; ls < datadir + strlen(datadir); ls++) + if (*ls == '\\') *ls = '/'; + + if (ls = strrchr(datadir, '/')) + { + *ls = 0; + strncat(datadir, "/ffpresets", sizeof(datadir) - 1 - strlen(datadir)); + base[2] = datadir; + } + } +#endif + for (i = 0; i < 3 && !f; i++) { + if (!base[i]) + continue; + snprintf(filename, filename_size, "%s%s/%s.ffpreset", base[i], + i != 1 ? "" : "/.ffmpeg", preset_name); + f = fopen(filename, "r"); + if (!f && codec_name) { + snprintf(filename, filename_size, + "%s%s/%s-%s.ffpreset", + base[i], i != 1 ? "" : "/.ffmpeg", codec_name, + preset_name); + f = fopen(filename, "r"); + } + } + } + + return f; +} + +int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec) +{ + int ret = avformat_match_stream_specifier(s, st, spec); + if (ret < 0) + av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); + return ret; +} + +AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, + AVFormatContext *s, AVStream *st, AVCodec *codec) +{ + AVDictionary *ret = NULL; + AVDictionaryEntry *t = NULL; + int flags = s->oformat ? AV_OPT_FLAG_ENCODING_PARAM + : AV_OPT_FLAG_DECODING_PARAM; + char prefix = 0; + const AVClass *cc = avcodec_get_class(); + + if (!codec) + codec = s->oformat ? avcodec_find_encoder(codec_id) + : avcodec_find_decoder(codec_id); + + switch (st->codec->codec_type) { + case AVMEDIA_TYPE_VIDEO: + prefix = 'v'; + flags |= AV_OPT_FLAG_VIDEO_PARAM; + break; + case AVMEDIA_TYPE_AUDIO: + prefix = 'a'; + flags |= AV_OPT_FLAG_AUDIO_PARAM; + break; + case AVMEDIA_TYPE_SUBTITLE: + prefix = 's'; + flags |= AV_OPT_FLAG_SUBTITLE_PARAM; + break; + } + + while (t = av_dict_get(opts, "", t, AV_DICT_IGNORE_SUFFIX)) { + char *p = strchr(t->key, ':'); + + /* check stream specification in opt name */ + if (p) + switch (check_stream_specifier(s, st, p + 1)) { + case 1: *p = 0; break; + case 0: continue; + default: return NULL; + } + + if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) || + (codec && codec->priv_class && + av_opt_find(&codec->priv_class, t->key, NULL, flags, + AV_OPT_SEARCH_FAKE_OBJ))) + av_dict_set(&ret, t->key, t->value, 0); + else if (t->key[0] == prefix && + av_opt_find(&cc, t->key + 1, NULL, flags, + AV_OPT_SEARCH_FAKE_OBJ)) + av_dict_set(&ret, t->key + 1, t->value, 0); + + if (p) + *p = ':'; + } + return ret; +} + +AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, + AVDictionary *codec_opts) +{ + int i; + AVDictionary **opts; + + if (!s->nb_streams) + return NULL; + opts = av_mallocz(s->nb_streams * sizeof(*opts)); + if (!opts) { + av_log(NULL, AV_LOG_ERROR, + "Could not alloc memory for stream options.\n"); + return NULL; + } + for (i = 0; i < s->nb_streams; i++) + opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codec->codec_id, + s, s->streams[i], NULL); + return opts; +} + +void *grow_array(void *array, int elem_size, int *size, int new_size) +{ + if (new_size >= INT_MAX / elem_size) { + av_log(NULL, AV_LOG_ERROR, "Array too big.\n"); + exit(1); + } + if (*size < new_size) { + uint8_t *tmp = av_realloc(array, new_size*elem_size); + if (!tmp) { + av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n"); + exit(1); + } + memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size); + *size = new_size; + return tmp; + } + return array; +} diff --git a/ffmpeg/cmdutils.h b/ffmpeg/cmdutils.h new file mode 100644 index 0000000..54f0be8 --- /dev/null +++ b/ffmpeg/cmdutils.h @@ -0,0 +1,548 @@ +/* + * Various utilities for command line tools + * copyright (c) 2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef FFMPEG_CMDUTILS_H +#define FFMPEG_CMDUTILS_H + +#include + +#include "libavcodec/avcodec.h" +#include "libavfilter/avfilter.h" +#include "libavformat/avformat.h" +#include "libswscale/swscale.h" + +#ifdef __MINGW32__ +#undef main /* We don't want SDL to override our main() */ +#endif + +/** + * program name, defined by the program for show_version(). + */ +extern const char program_name[]; + +/** + * program birth year, defined by the program for show_banner() + */ +extern const int program_birth_year; + +/** + * this year, defined by the program for show_banner() + */ +extern const int this_year; + +extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB]; +extern AVFormatContext *avformat_opts; +extern struct SwsContext *sws_opts; +extern AVDictionary *swr_opts; +extern AVDictionary *format_opts, *codec_opts, *resample_opts; + +/** + * Initialize the cmdutils option system, in particular + * allocate the *_opts contexts. + */ +void init_opts(void); +/** + * Uninitialize the cmdutils option system, in particular + * free the *_opts contexts and their contents. + */ +void uninit_opts(void); + +/** + * Trivial log callback. + * Only suitable for opt_help and similar since it lacks prefix handling. + */ +void log_callback_help(void* ptr, int level, const char* fmt, va_list vl); + +/** + * Fallback for options that are not explicitly handled, these will be + * parsed through AVOptions. + */ +int opt_default(void *optctx, const char *opt, const char *arg); + +/** + * Set the libav* libraries log level. + */ +int opt_loglevel(void *optctx, const char *opt, const char *arg); + +int opt_report(const char *opt); + +int opt_max_alloc(void *optctx, const char *opt, const char *arg); + +int opt_cpuflags(void *optctx, const char *opt, const char *arg); + +int opt_codec_debug(void *optctx, const char *opt, const char *arg); + +/** + * Limit the execution time. + */ +int opt_timelimit(void *optctx, const char *opt, const char *arg); + +/** + * Parse a string and return its corresponding value as a double. + * Exit from the application if the string cannot be correctly + * parsed or the corresponding value is invalid. + * + * @param context the context of the value to be set (e.g. the + * corresponding command line option name) + * @param numstr the string to be parsed + * @param type the type (OPT_INT64 or OPT_FLOAT) as which the + * string should be parsed + * @param min the minimum valid accepted value + * @param max the maximum valid accepted value + */ +double parse_number_or_die(const char *context, const char *numstr, int type, + double min, double max); + +/** + * Parse a string specifying a time and return its corresponding + * value as a number of microseconds. Exit from the application if + * the string cannot be correctly parsed. + * + * @param context the context of the value to be set (e.g. the + * corresponding command line option name) + * @param timestr the string to be parsed + * @param is_duration a flag which tells how to interpret timestr, if + * not zero timestr is interpreted as a duration, otherwise as a + * date + * + * @see av_parse_time() + */ +int64_t parse_time_or_die(const char *context, const char *timestr, + int is_duration); + +typedef struct SpecifierOpt { + char *specifier; /**< stream/chapter/program/... specifier */ + union { + uint8_t *str; + int i; + int64_t i64; + float f; + double dbl; + } u; +} SpecifierOpt; + +typedef struct OptionDef { + const char *name; + int flags; +#define HAS_ARG 0x0001 +#define OPT_BOOL 0x0002 +#define OPT_EXPERT 0x0004 +#define OPT_STRING 0x0008 +#define OPT_VIDEO 0x0010 +#define OPT_AUDIO 0x0020 +#define OPT_INT 0x0080 +#define OPT_FLOAT 0x0100 +#define OPT_SUBTITLE 0x0200 +#define OPT_INT64 0x0400 +#define OPT_EXIT 0x0800 +#define OPT_DATA 0x1000 +#define OPT_PERFILE 0x2000 /* the option is per-file (currently ffmpeg-only). + implied by OPT_OFFSET or OPT_SPEC */ +#define OPT_OFFSET 0x4000 /* option is specified as an offset in a passed optctx */ +#define OPT_SPEC 0x8000 /* option is to be stored in an array of SpecifierOpt. + Implies OPT_OFFSET. Next element after the offset is + an int containing element count in the array. */ +#define OPT_TIME 0x10000 +#define OPT_DOUBLE 0x20000 +#define OPT_INPUT 0x40000 +#define OPT_OUTPUT 0x80000 + union { + void *dst_ptr; + int (*func_arg)(void *, const char *, const char *); + size_t off; + } u; + const char *help; + const char *argname; +} OptionDef; + +/** + * Print help for all options matching specified flags. + * + * @param options a list of options + * @param msg title of this group. Only printed if at least one option matches. + * @param req_flags print only options which have all those flags set. + * @param rej_flags don't print options which have any of those flags set. + * @param alt_flags print only options that have at least one of those flags set + */ +void show_help_options(const OptionDef *options, const char *msg, int req_flags, + int rej_flags, int alt_flags); + +/** + * Show help for all options with given flags in class and all its + * children. + */ +void show_help_children(const AVClass *class, int flags); + +/** + * Per-avtool specific help handler. Implemented in each + * avtool, called by show_help(). + */ +void show_help_default(const char *opt, const char *arg); + +/** + * Generic -h handler common to all avtools. + */ +int show_help(void *optctx, const char *opt, const char *arg); + +/** + * Parse the command line arguments. + * + * @param optctx an opaque options context + * @param argc number of command line arguments + * @param argv values of command line arguments + * @param options Array with the definitions required to interpret every + * option of the form: -option_name [argument] + * @param parse_arg_function Name of the function called to process every + * argument without a leading option name flag. NULL if such arguments do + * not have to be processed. + */ +void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, + void (* parse_arg_function)(void *optctx, const char*)); + +/** + * Parse one given option. + * + * @return on success 1 if arg was consumed, 0 otherwise; negative number on error + */ +int parse_option(void *optctx, const char *opt, const char *arg, + const OptionDef *options); + +/** + * An option extracted from the commandline. + * Cannot use AVDictionary because of options like -map which can be + * used multiple times. + */ +typedef struct Option { + const OptionDef *opt; + const char *key; + const char *val; +} Option; + +typedef struct OptionGroupDef { + /**< group name */ + const char *name; + /** + * Option to be used as group separator. Can be NULL for groups which + * are terminated by a non-option argument (e.g. ffmpeg output files) + */ + const char *sep; + /** + * Option flags that must be set on each option that is + * applied to this group + */ + int flags; +} OptionGroupDef; + +typedef struct OptionGroup { + const OptionGroupDef *group_def; + const char *arg; + + Option *opts; + int nb_opts; + + AVDictionary *codec_opts; + AVDictionary *format_opts; + AVDictionary *resample_opts; + struct SwsContext *sws_opts; + AVDictionary *swr_opts; +} OptionGroup; + +/** + * A list of option groups that all have the same group type + * (e.g. input files or output files) + */ +typedef struct OptionGroupList { + const OptionGroupDef *group_def; + + OptionGroup *groups; + int nb_groups; +} OptionGroupList; + +typedef struct OptionParseContext { + OptionGroup global_opts; + + OptionGroupList *groups; + int nb_groups; + + /* parsing state */ + OptionGroup cur_group; +} OptionParseContext; + +/** + * Parse an options group and write results into optctx. + * + * @param optctx an app-specific options context. NULL for global options group + */ +int parse_optgroup(void *optctx, OptionGroup *g); + +/** + * Split the commandline into an intermediate form convenient for further + * processing. + * + * The commandline is assumed to be composed of options which either belong to a + * group (those with OPT_SPEC, OPT_OFFSET or OPT_PERFILE) or are global + * (everything else). + * + * A group (defined by an OptionGroupDef struct) is a sequence of options + * terminated by either a group separator option (e.g. -i) or a parameter that + * is not an option (doesn't start with -). A group without a separator option + * must always be first in the supplied groups list. + * + * All options within the same group are stored in one OptionGroup struct in an + * OptionGroupList, all groups with the same group definition are stored in one + * OptionGroupList in OptionParseContext.groups. The order of group lists is the + * same as the order of group definitions. + */ +int split_commandline(OptionParseContext *octx, int argc, char *argv[], + const OptionDef *options, + const OptionGroupDef *groups, int nb_groups); + +/** + * Free all allocated memory in an OptionParseContext. + */ +void uninit_parse_context(OptionParseContext *octx); + +/** + * Find the '-loglevel' option in the command line args and apply it. + */ +void parse_loglevel(int argc, char **argv, const OptionDef *options); + +/** + * Return index of option opt in argv or 0 if not found. + */ +int locate_option(int argc, char **argv, const OptionDef *options, + const char *optname); + +/** + * Check if the given stream matches a stream specifier. + * + * @param s Corresponding format context. + * @param st Stream from s to be checked. + * @param spec A stream specifier of the [v|a|s|d]:[\] form. + * + * @return 1 if the stream matches, 0 if it doesn't, <0 on error + */ +int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec); + +/** + * Filter out options for given codec. + * + * Create a new options dictionary containing only the options from + * opts which apply to the codec with ID codec_id. + * + * @param opts dictionary to place options in + * @param codec_id ID of the codec that should be filtered for + * @param s Corresponding format context. + * @param st A stream from s for which the options should be filtered. + * @param codec The particular codec for which the options should be filtered. + * If null, the default one is looked up according to the codec id. + * @return a pointer to the created dictionary + */ +AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, + AVFormatContext *s, AVStream *st, AVCodec *codec); + +/** + * Setup AVCodecContext options for avformat_find_stream_info(). + * + * Create an array of dictionaries, one dictionary for each stream + * contained in s. + * Each dictionary will contain the options from codec_opts which can + * be applied to the corresponding stream codec context. + * + * @return pointer to the created array of dictionaries, NULL if it + * cannot be created + */ +AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, + AVDictionary *codec_opts); + +/** + * Print an error message to stderr, indicating filename and a human + * readable description of the error code err. + * + * If strerror_r() is not available the use of this function in a + * multithreaded application may be unsafe. + * + * @see av_strerror() + */ +void print_error(const char *filename, int err); + +/** + * Print the program banner to stderr. The banner contents depend on the + * current version of the repository and of the libav* libraries used by + * the program. + */ +void show_banner(int argc, char **argv, const OptionDef *options); + +/** + * Print the version of the program to stdout. The version message + * depends on the current versions of the repository and of the libav* + * libraries. + * This option processing function does not utilize the arguments. + */ +int show_version(void *optctx, const char *opt, const char *arg); + +/** + * Print the license of the program to stdout. The license depends on + * the license of the libraries compiled into the program. + * This option processing function does not utilize the arguments. + */ +int show_license(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the formats supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_formats(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the codecs supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_codecs(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the decoders supported by the + * program. + */ +int show_decoders(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the encoders supported by the + * program. + */ +int show_encoders(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the filters supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_filters(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the bit stream filters supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_bsfs(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the protocols supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_protocols(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the pixel formats supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_pix_fmts(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the standard channel layouts supported by + * the program. + * This option processing function does not utilize the arguments. + */ +int show_layouts(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the sample formats supported by the + * program. + */ +int show_sample_fmts(void *optctx, const char *opt, const char *arg); + +/** + * Return a positive value if a line read from standard input + * starts with [yY], otherwise return 0. + */ +int read_yesno(void); + +/** + * Read the file with name filename, and put its content in a newly + * allocated 0-terminated buffer. + * + * @param filename file to read from + * @param bufptr location where pointer to buffer is returned + * @param size location where size of buffer is returned + * @return 0 in case of success, a negative value corresponding to an + * AVERROR error code in case of failure. + */ +int cmdutils_read_file(const char *filename, char **bufptr, size_t *size); + +/** + * Get a file corresponding to a preset file. + * + * If is_path is non-zero, look for the file in the path preset_name. + * Otherwise search for a file named arg.ffpreset in the directories + * $FFMPEG_DATADIR (if set), $HOME/.ffmpeg, and in the datadir defined + * at configuration time or in a "ffpresets" folder along the executable + * on win32, in that order. If no such file is found and + * codec_name is defined, then search for a file named + * codec_name-preset_name.avpreset in the above-mentioned directories. + * + * @param filename buffer where the name of the found filename is written + * @param filename_size size in bytes of the filename buffer + * @param preset_name name of the preset to search + * @param is_path tell if preset_name is a filename path + * @param codec_name name of the codec for which to look for the + * preset, may be NULL + */ +FILE *get_preset_file(char *filename, size_t filename_size, + const char *preset_name, int is_path, const char *codec_name); + +/** + * Realloc array to hold new_size elements of elem_size. + * Calls exit() on failure. + * + * @param array array to reallocate + * @param elem_size size in bytes of each element + * @param size new element count will be written here + * @param new_size number of elements to place in reallocated array + * @return reallocated array + */ +void *grow_array(void *array, int elem_size, int *size, int new_size); + +#define GROW_ARRAY(array, nb_elems)\ + array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) + +#define GET_PIX_FMT_NAME(pix_fmt)\ + const char *name = av_get_pix_fmt_name(pix_fmt); + +#define GET_SAMPLE_FMT_NAME(sample_fmt)\ + const char *name = av_get_sample_fmt_name(sample_fmt) + +#define GET_SAMPLE_RATE_NAME(rate)\ + char name[16];\ + snprintf(name, sizeof(name), "%d", rate); + +#define GET_CH_LAYOUT_NAME(ch_layout)\ + char name[16];\ + snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout); + +#define GET_CH_LAYOUT_DESC(ch_layout)\ + char name[128];\ + av_get_channel_layout_string(name, sizeof(name), 0, ch_layout); + +#endif /* CMDUTILS_H */ diff --git a/ffmpeg/cmdutils_common_opts.h b/ffmpeg/cmdutils_common_opts.h new file mode 100644 index 0000000..1a84564 --- /dev/null +++ b/ffmpeg/cmdutils_common_opts.h @@ -0,0 +1,21 @@ + { "L" , OPT_EXIT, {.func_arg = show_license}, "show license" }, + { "h" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, + { "?" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, + { "help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, + { "-help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, + { "version" , OPT_EXIT, {.func_arg = show_version}, "show version" }, + { "formats" , OPT_EXIT, {.func_arg = show_formats }, "show available formats" }, + { "codecs" , OPT_EXIT, {.func_arg = show_codecs }, "show available codecs" }, + { "decoders" , OPT_EXIT, {.func_arg = show_decoders }, "show available decoders" }, + { "encoders" , OPT_EXIT, {.func_arg = show_encoders }, "show available encoders" }, + { "bsfs" , OPT_EXIT, {.func_arg = show_bsfs }, "show available bit stream filters" }, + { "protocols" , OPT_EXIT, {.func_arg = show_protocols}, "show available protocols" }, + { "filters" , OPT_EXIT, {.func_arg = show_filters }, "show available filters" }, + { "pix_fmts" , OPT_EXIT, {.func_arg = show_pix_fmts }, "show available pixel formats" }, + { "layouts" , OPT_EXIT, {.func_arg = show_layouts }, "show standard channel layouts" }, + { "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" }, + { "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" }, + { "v", HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" }, + { "report" , 0, {(void*)opt_report}, "generate a report" }, + { "max_alloc" , HAS_ARG, {.func_arg = opt_max_alloc}, "set maximum size of a single allocated block", "bytes" }, + { "cpuflags" , HAS_ARG | OPT_EXPERT, {.func_arg = opt_cpuflags}, "force specific cpu flags", "flags" }, diff --git a/ffmpeg/common.mak b/ffmpeg/common.mak new file mode 100644 index 0000000..d6cb5f6 --- /dev/null +++ b/ffmpeg/common.mak @@ -0,0 +1,140 @@ +# +# common bits used by all libraries +# + +# first so "all" becomes default target +all: all-yes + +ifndef SUBDIR + +ifndef V +Q = @ +ECHO = printf "$(1)\t%s\n" $(2) +BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP +SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM + +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_DIR)/%=%)); $(INSTALL)) +endif + +ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample + +# NASM requires -I path terminated with / +IFLAGS := -I. -I$(SRC_PATH)/ +CPPFLAGS := $(IFLAGS) $(CPPFLAGS) +CFLAGS += $(ECFLAGS) +CCFLAGS = $(CPPFLAGS) $(CFLAGS) +ASFLAGS := $(CPPFLAGS) $(ASFLAGS) +CXXFLAGS += $(CPPFLAGS) $(CFLAGS) +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_CXX = $(call COMPILE,CXX) +COMPILE_S = $(call COMPILE,AS) + +%.o: %.c + $(COMPILE_C) + +%.o: %.cpp + $(COMPILE_CXX) + +%.s: %.c + $(CC) $(CPPFLAGS) $(CFLAGS) -S -o $@ $< + +%.o: %.S + $(COMPILE_S) + +%.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 + +# Dummy rule to stop make trying to rebuild removed or renamed headers +%.h: + @: + +# Disable suffix rules. Most of the builtin rules are suffix rules, +# so this saves some time on slow systems. +.SUFFIXES: + +# Do not delete intermediate files from chains of implicit rules +$(OBJS): +endif + +include $(SRC_PATH)/arch.mak + +OBJS += $(OBJS-yes) +FFLIBS := $(FFLIBS-yes) $(FFLIBS) +TESTPROGS += $(TESTPROGS-yes) + +LDLIBS = $(FFLIBS:%=%$(BUILDSUF)) +FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS) + +EXAMPLES := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF)) +OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) +TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o) +TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF)) +HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) +HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF)) +TOOLS += $(TOOLS-yes) +TOOLOBJS := $(TOOLS:%=tools/%.o) +TOOLS := $(TOOLS:%=tools/%$(EXESUF)) +HEADERS += $(HEADERS-yes) + +DEP_LIBS := $(foreach NAME,$(FFLIBS),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME)) + +ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h)) +SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-) +SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%) +HOBJS = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o)) +checkheaders: $(HOBJS) +.SECONDARY: $(HOBJS:.o=.c) + +alltools: $(TOOLS) + +$(HOSTOBJS): %.o: %.c + $(call COMPILE,HOSTCC) + +$(HOSTPROGS): %$(HOSTEXESUF): %.o + $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $< $(HOSTLIBS) + +$(OBJS): | $(sort $(dir $(OBJS))) +$(HOBJS): | $(sort $(dir $(HOBJS))) +$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS))) +$(TESTOBJS): | $(sort $(dir $(TESTOBJS))) +$(TOOLOBJS): | tools + +OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS)) + +CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda +DISTCLEANSUFFIXES = *.pc +LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a + +define RULES +clean:: + $(RM) $(OBJS) $(OBJS:.o=.d) + $(RM) $(HOSTPROGS) + $(RM) $(TOOLS) +endef + +$(eval $(RULES)) + +-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d)) diff --git a/ffmpeg/compat/avisynth/avisynth_c.h b/ffmpeg/compat/avisynth/avisynth_c.h new file mode 100644 index 0000000..84b6e13 --- /dev/null +++ b/ffmpeg/compat/avisynth/avisynth_c.h @@ -0,0 +1,879 @@ +// Avisynth C Interface Version 0.20 +// Copyright 2003 Kevin Atkinson + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit +// http://www.gnu.org/copyleft/gpl.html . +// +// As a special exception, I give you permission to link to the +// Avisynth C interface with independent modules that communicate with +// the Avisynth C interface solely through the interfaces defined in +// avisynth_c.h, regardless of the license terms of these independent +// modules, and to copy and distribute the resulting combined work +// under terms of your choice, provided that every copy of the +// combined work is accompanied by a complete copy of the source code +// of the Avisynth C interface and Avisynth itself (with the version +// used to produce the combined work), being distributed under the +// terms of the GNU General Public License plus this exception. An +// independent module is a module which is not derived from or based +// on Avisynth C Interface, such as 3rd-party filters, import and +// export plugins, or graphical user interfaces. + +// NOTE: this is a partial update of the Avisynth C interface to recognize +// new color spaces added in Avisynth 2.60. By no means is this document +// completely Avisynth 2.60 compliant. + +#ifndef __AVISYNTH_C__ +#define __AVISYNTH_C__ + +#ifdef __cplusplus +# define EXTERN_C extern "C" +#else +# define EXTERN_C +#endif + +#define AVSC_USE_STDCALL 1 + +#ifndef AVSC_USE_STDCALL +# define AVSC_CC __cdecl +#else +# define AVSC_CC __stdcall +#endif + +#define AVSC_INLINE static __inline + +#ifdef AVISYNTH_C_EXPORTS +# define AVSC_EXPORT EXTERN_C +# define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name +#else +# define AVSC_EXPORT EXTERN_C __declspec(dllexport) +# ifndef AVSC_NO_DECLSPEC +# define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name +# else +# define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func) +# endif +#endif + +typedef unsigned char BYTE; +#ifdef __GNUC__ +typedef long long int INT64; +#else +typedef __int64 INT64; +#endif + + +///////////////////////////////////////////////////////////////////// +// +// Constants +// + +#ifndef __AVISYNTH_H__ +enum { AVISYNTH_INTERFACE_VERSION = 4 }; +#endif + +enum {AVS_SAMPLE_INT8 = 1<<0, + AVS_SAMPLE_INT16 = 1<<1, + AVS_SAMPLE_INT24 = 1<<2, + AVS_SAMPLE_INT32 = 1<<3, + AVS_SAMPLE_FLOAT = 1<<4}; + +enum {AVS_PLANAR_Y=1<<0, + AVS_PLANAR_U=1<<1, + AVS_PLANAR_V=1<<2, + AVS_PLANAR_ALIGNED=1<<3, + AVS_PLANAR_Y_ALIGNED=AVS_PLANAR_Y|AVS_PLANAR_ALIGNED, + AVS_PLANAR_U_ALIGNED=AVS_PLANAR_U|AVS_PLANAR_ALIGNED, + AVS_PLANAR_V_ALIGNED=AVS_PLANAR_V|AVS_PLANAR_ALIGNED, + AVS_PLANAR_A=1<<4, + AVS_PLANAR_R=1<<5, + AVS_PLANAR_G=1<<6, + AVS_PLANAR_B=1<<7, + AVS_PLANAR_A_ALIGNED=AVS_PLANAR_A|AVS_PLANAR_ALIGNED, + AVS_PLANAR_R_ALIGNED=AVS_PLANAR_R|AVS_PLANAR_ALIGNED, + AVS_PLANAR_G_ALIGNED=AVS_PLANAR_G|AVS_PLANAR_ALIGNED, + AVS_PLANAR_B_ALIGNED=AVS_PLANAR_B|AVS_PLANAR_ALIGNED}; + + // Colorspace properties. +enum {AVS_CS_BGR = 1<<28, + AVS_CS_YUV = 1<<29, + AVS_CS_INTERLEAVED = 1<<30, + AVS_CS_PLANAR = 1<<31, + + AVS_CS_SHIFT_SUB_WIDTH = 0, + AVS_CS_SHIFT_SUB_HEIGHT = 1 << 3, + AVS_CS_SHIFT_SAMPLE_BITS = 1 << 4, + + AVS_CS_SUB_WIDTH_MASK = 7 << AVS_CS_SHIFT_SUB_WIDTH, + AVS_CS_SUB_WIDTH_1 = 3 << AVS_CS_SHIFT_SUB_WIDTH, // YV24 + AVS_CS_SUB_WIDTH_2 = 0 << AVS_CS_SHIFT_SUB_WIDTH, // YV12, I420, YV16 + AVS_CS_SUB_WIDTH_4 = 1 << AVS_CS_SHIFT_SUB_WIDTH, // YUV9, YV411 + + AVS_CS_VPLANEFIRST = 1 << 3, // YV12, YV16, YV24, YV411, YUV9 + AVS_CS_UPLANEFIRST = 1 << 4, // I420 + + AVS_CS_SUB_HEIGHT_MASK = 7 << AVS_CS_SHIFT_SUB_HEIGHT, + AVS_CS_SUB_HEIGHT_1 = 3 << AVS_CS_SHIFT_SUB_HEIGHT, // YV16, YV24, YV411 + AVS_CS_SUB_HEIGHT_2 = 0 << AVS_CS_SHIFT_SUB_HEIGHT, // YV12, I420 + AVS_CS_SUB_HEIGHT_4 = 1 << AVS_CS_SHIFT_SUB_HEIGHT, // YUV9 + + AVS_CS_SAMPLE_BITS_MASK = 7 << AVS_CS_SHIFT_SAMPLE_BITS, + AVS_CS_SAMPLE_BITS_8 = 0 << AVS_CS_SHIFT_SAMPLE_BITS, + AVS_CS_SAMPLE_BITS_16 = 1 << AVS_CS_SHIFT_SAMPLE_BITS, + AVS_CS_SAMPLE_BITS_32 = 2 << AVS_CS_SHIFT_SAMPLE_BITS, + + AVS_CS_PLANAR_MASK = AVS_CS_PLANAR | AVS_CS_INTERLEAVED | AVS_CS_YUV | AVS_CS_BGR | AVS_CS_SAMPLE_BITS_MASK | AVS_CS_SUB_HEIGHT_MASK | AVS_CS_SUB_WIDTH_MASK, + AVS_CS_PLANAR_FILTER = ~( AVS_CS_VPLANEFIRST | AVS_CS_UPLANEFIRST )}; + + // Specific colorformats +enum { + AVS_CS_UNKNOWN = 0, + AVS_CS_BGR24 = 1<<0 | AVS_CS_BGR | AVS_CS_INTERLEAVED, + AVS_CS_BGR32 = 1<<1 | AVS_CS_BGR | AVS_CS_INTERLEAVED, + AVS_CS_YUY2 = 1<<2 | AVS_CS_YUV | AVS_CS_INTERLEAVED, + // AVS_CS_YV12 = 1<<3 Reserved + // AVS_CS_I420 = 1<<4 Reserved + AVS_CS_RAW32 = 1<<5 | AVS_CS_INTERLEAVED, + + AVS_CS_YV24 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_1, // YVU 4:4:4 planar + AVS_CS_YV16 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_2, // YVU 4:2:2 planar + AVS_CS_YV12 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_2 | AVS_CS_SUB_WIDTH_2, // YVU 4:2:0 planar + AVS_CS_I420 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_UPLANEFIRST | AVS_CS_SUB_HEIGHT_2 | AVS_CS_SUB_WIDTH_2, // YUV 4:2:0 planar + AVS_CS_IYUV = AVS_CS_I420, + AVS_CS_YV411 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_1 | AVS_CS_SUB_WIDTH_4, // YVU 4:1:1 planar + AVS_CS_YUV9 = AVS_CS_PLANAR | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 | AVS_CS_VPLANEFIRST | AVS_CS_SUB_HEIGHT_4 | AVS_CS_SUB_WIDTH_4, // YVU 4:1:0 planar + AVS_CS_Y8 = AVS_CS_PLANAR | AVS_CS_INTERLEAVED | AVS_CS_YUV | AVS_CS_SAMPLE_BITS_8 // Y 4:0:0 planar +}; + +enum { + AVS_IT_BFF = 1<<0, + AVS_IT_TFF = 1<<1, + AVS_IT_FIELDBASED = 1<<2}; + +enum { + AVS_FILTER_TYPE=1, + AVS_FILTER_INPUT_COLORSPACE=2, + AVS_FILTER_OUTPUT_TYPE=9, + AVS_FILTER_NAME=4, + AVS_FILTER_AUTHOR=5, + AVS_FILTER_VERSION=6, + AVS_FILTER_ARGS=7, + AVS_FILTER_ARGS_INFO=8, + AVS_FILTER_ARGS_DESCRIPTION=10, + AVS_FILTER_DESCRIPTION=11}; + +enum { //SUBTYPES + AVS_FILTER_TYPE_AUDIO=1, + AVS_FILTER_TYPE_VIDEO=2, + AVS_FILTER_OUTPUT_TYPE_SAME=3, + AVS_FILTER_OUTPUT_TYPE_DIFFERENT=4}; + +enum { + AVS_CACHE_NOTHING=0, + AVS_CACHE_RANGE=1, + AVS_CACHE_ALL=2, + AVS_CACHE_AUDIO=3, + AVS_CACHE_AUDIO_NONE=4, + AVS_CACHE_AUDIO_AUTO=5 + }; + +#define AVS_FRAME_ALIGN 16 + +typedef struct AVS_Clip AVS_Clip; +typedef struct AVS_ScriptEnvironment AVS_ScriptEnvironment; + +///////////////////////////////////////////////////////////////////// +// +// AVS_VideoInfo +// + +// AVS_VideoInfo is layed out identicly to VideoInfo +typedef struct AVS_VideoInfo { + int width, height; // width=0 means no video + unsigned fps_numerator, fps_denominator; + int num_frames; + + int pixel_type; + + int audio_samples_per_second; // 0 means no audio + int sample_type; + INT64 num_audio_samples; + int nchannels; + + // Imagetype properties + + int image_type; +} AVS_VideoInfo; + +// useful functions of the above +AVSC_INLINE int avs_has_video(const AVS_VideoInfo * p) + { return (p->width!=0); } + +AVSC_INLINE int avs_has_audio(const AVS_VideoInfo * p) + { return (p->audio_samples_per_second!=0); } + +AVSC_INLINE int avs_is_rgb(const AVS_VideoInfo * p) + { return !!(p->pixel_type&AVS_CS_BGR); } + +AVSC_INLINE int avs_is_rgb24(const AVS_VideoInfo * p) + { return (p->pixel_type&AVS_CS_BGR24)==AVS_CS_BGR24; } // Clear out additional properties + +AVSC_INLINE int avs_is_rgb32(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_BGR32) == AVS_CS_BGR32 ; } + +AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo * p) + { return !!(p->pixel_type&AVS_CS_YUV ); } + +AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_YUY2) == AVS_CS_YUY2; } + +AVSC_INLINE int avs_is_yv24(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV24 & AVS_CS_PLANAR_FILTER); } + +AVSC_INLINE int avs_is_yv16(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV16 & AVS_CS_PLANAR_FILTER); } + +AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV12 & AVS_CS_PLANAR_FILTER); } + +AVSC_INLINE int avs_is_yv411(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_YV411 & AVS_CS_PLANAR_FILTER); } + +AVSC_INLINE int avs_is_y8(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_PLANAR_MASK) == (AVS_CS_Y8 & AVS_CS_PLANAR_FILTER); } + +AVSC_INLINE int avs_is_property(const AVS_VideoInfo * p, int property) + { return ((p->pixel_type & property)==property ); } + +AVSC_INLINE int avs_is_planar(const AVS_VideoInfo * p) + { return !!(p->pixel_type & AVS_CS_PLANAR); } + +AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space) + { return avs_is_planar(p) ? ((p->pixel_type & AVS_CS_PLANAR_MASK) == (c_space & AVS_CS_PLANAR_FILTER)) : ((p->pixel_type & c_space) == c_space); } + +AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo * p) + { return !!(p->image_type & AVS_IT_FIELDBASED); } + +AVSC_INLINE int avs_is_parity_known(const AVS_VideoInfo * p) + { return ((p->image_type & AVS_IT_FIELDBASED)&&(p->image_type & (AVS_IT_BFF | AVS_IT_TFF))); } + +AVSC_INLINE int avs_is_bff(const AVS_VideoInfo * p) + { return !!(p->image_type & AVS_IT_BFF); } + +AVSC_INLINE int avs_is_tff(const AVS_VideoInfo * p) + { return !!(p->image_type & AVS_IT_TFF); } + +AVSC_INLINE int avs_bits_per_pixel(const AVS_VideoInfo * p) +{ + switch (p->pixel_type) { + case AVS_CS_BGR24: return 24; + case AVS_CS_BGR32: return 32; + case AVS_CS_YUY2: return 16; + case AVS_CS_YV12: + case AVS_CS_I420: return 12; + default: return 0; + } +} +AVSC_INLINE int avs_bytes_from_pixels(const AVS_VideoInfo * p, int pixels) + { return pixels * (avs_bits_per_pixel(p)>>3); } // Will work on planar images, but will return only luma planes + +AVSC_INLINE int avs_row_size(const AVS_VideoInfo * p) + { return avs_bytes_from_pixels(p,p->width); } // Also only returns first plane on planar images + +AVSC_INLINE int avs_bmp_size(const AVS_VideoInfo * vi) + { if (avs_is_planar(vi)) {int p = vi->height * ((avs_row_size(vi)+3) & ~3); p+=p>>1; return p; } return vi->height * ((avs_row_size(vi)+3) & ~3); } + +AVSC_INLINE int avs_samples_per_second(const AVS_VideoInfo * p) + { return p->audio_samples_per_second; } + + +AVSC_INLINE int avs_bytes_per_channel_sample(const AVS_VideoInfo * p) +{ + switch (p->sample_type) { + case AVS_SAMPLE_INT8: return sizeof(signed char); + case AVS_SAMPLE_INT16: return sizeof(signed short); + case AVS_SAMPLE_INT24: return 3; + case AVS_SAMPLE_INT32: return sizeof(signed int); + case AVS_SAMPLE_FLOAT: return sizeof(float); + default: return 0; + } +} +AVSC_INLINE int avs_bytes_per_audio_sample(const AVS_VideoInfo * p) + { return p->nchannels*avs_bytes_per_channel_sample(p);} + +AVSC_INLINE INT64 avs_audio_samples_from_frames(const AVS_VideoInfo * p, INT64 frames) + { return ((INT64)(frames) * p->audio_samples_per_second * p->fps_denominator / p->fps_numerator); } + +AVSC_INLINE int avs_frames_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) + { return (int)(samples * (INT64)p->fps_numerator / (INT64)p->fps_denominator / (INT64)p->audio_samples_per_second); } + +AVSC_INLINE INT64 avs_audio_samples_from_bytes(const AVS_VideoInfo * p, INT64 bytes) + { return bytes / avs_bytes_per_audio_sample(p); } + +AVSC_INLINE INT64 avs_bytes_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) + { return samples * avs_bytes_per_audio_sample(p); } + +AVSC_INLINE int avs_audio_channels(const AVS_VideoInfo * p) + { return p->nchannels; } + +AVSC_INLINE int avs_sample_type(const AVS_VideoInfo * p) + { return p->sample_type;} + +// useful mutator +AVSC_INLINE void avs_set_property(AVS_VideoInfo * p, int property) + { p->image_type|=property; } + +AVSC_INLINE void avs_clear_property(AVS_VideoInfo * p, int property) + { p->image_type&=~property; } + +AVSC_INLINE void avs_set_field_based(AVS_VideoInfo * p, int isfieldbased) + { if (isfieldbased) p->image_type|=AVS_IT_FIELDBASED; else p->image_type&=~AVS_IT_FIELDBASED; } + +AVSC_INLINE void avs_set_fps(AVS_VideoInfo * p, unsigned numerator, unsigned denominator) +{ + unsigned x=numerator, y=denominator; + while (y) { // find gcd + unsigned t = x%y; x = y; y = t; + } + p->fps_numerator = numerator/x; + p->fps_denominator = denominator/x; +} + +AVSC_INLINE int avs_is_same_colorspace(AVS_VideoInfo * x, AVS_VideoInfo * y) +{ + return (x->pixel_type == y->pixel_type) + || (avs_is_yv12(x) && avs_is_yv12(y)); +} + +///////////////////////////////////////////////////////////////////// +// +// AVS_VideoFrame +// + +// VideoFrameBuffer holds information about a memory block which is used +// for video data. For efficiency, instances of this class are not deleted +// when the refcount reaches zero; instead they're stored in a linked list +// to be reused. The instances are deleted when the corresponding AVS +// file is closed. + +// AVS_VideoFrameBuffer is layed out identicly to VideoFrameBuffer +// DO NOT USE THIS STRUCTURE DIRECTLY +typedef struct AVS_VideoFrameBuffer { + BYTE * data; + int data_size; + // sequence_number is incremented every time the buffer is changed, so + // that stale views can tell they're no longer valid. + volatile long sequence_number; + + volatile long refcount; +} AVS_VideoFrameBuffer; + +// VideoFrame holds a "window" into a VideoFrameBuffer. + +// AVS_VideoFrame is layed out identicly to IVideoFrame +// DO NOT USE THIS STRUCTURE DIRECTLY +typedef struct AVS_VideoFrame { + volatile long refcount; + AVS_VideoFrameBuffer * vfb; + int offset, pitch, row_size, height, offsetU, offsetV, pitchUV; // U&V offsets are from top of picture. + int row_sizeUV, heightUV; +} AVS_VideoFrame; + +// Access functions for AVS_VideoFrame +AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame * p) { + return p->pitch;} + +AVSC_INLINE int avs_get_pitch_p(const AVS_VideoFrame * p, int plane) { + switch (plane) { + case AVS_PLANAR_U: case AVS_PLANAR_V: return p->pitchUV;} + return p->pitch;} + +AVSC_INLINE int avs_get_row_size(const AVS_VideoFrame * p) { + return p->row_size; } + +AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame * p, int plane) { + int r; + switch (plane) { + case AVS_PLANAR_U: case AVS_PLANAR_V: + if (p->pitchUV) return p->row_sizeUV; + else return 0; + case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED: + if (p->pitchUV) { + r = (p->row_sizeUV+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize + if (r < p->pitchUV) + return r; + return p->row_sizeUV; + } else return 0; + case AVS_PLANAR_Y_ALIGNED: + r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize + if (r <= p->pitch) + return r; + return p->row_size; + } + return p->row_size; +} + +AVSC_INLINE int avs_get_height(const AVS_VideoFrame * p) { + return p->height;} + +AVSC_INLINE int avs_get_height_p(const AVS_VideoFrame * p, int plane) { + switch (plane) { + case AVS_PLANAR_U: case AVS_PLANAR_V: + if (p->pitchUV) return p->heightUV; + return 0; + } + return p->height;} + +AVSC_INLINE const BYTE* avs_get_read_ptr(const AVS_VideoFrame * p) { + return p->vfb->data + p->offset;} + +AVSC_INLINE const BYTE* avs_get_read_ptr_p(const AVS_VideoFrame * p, int plane) +{ + switch (plane) { + case AVS_PLANAR_U: return p->vfb->data + p->offsetU; + case AVS_PLANAR_V: return p->vfb->data + p->offsetV; + default: return p->vfb->data + p->offset;} +} + +AVSC_INLINE int avs_is_writable(const AVS_VideoFrame * p) { + return (p->refcount == 1 && p->vfb->refcount == 1);} + +AVSC_INLINE BYTE* avs_get_write_ptr(const AVS_VideoFrame * p) +{ + if (avs_is_writable(p)) { + ++p->vfb->sequence_number; + return p->vfb->data + p->offset; + } else + return 0; +} + +AVSC_INLINE BYTE* avs_get_write_ptr_p(const AVS_VideoFrame * p, int plane) +{ + if (plane==AVS_PLANAR_Y && avs_is_writable(p)) { + ++p->vfb->sequence_number; + return p->vfb->data + p->offset; + } else if (plane==AVS_PLANAR_Y) { + return 0; + } else { + switch (plane) { + case AVS_PLANAR_U: return p->vfb->data + p->offsetU; + case AVS_PLANAR_V: return p->vfb->data + p->offsetV; + default: return p->vfb->data + p->offset; + } + } +} + + +AVSC_API(void, avs_release_video_frame)(AVS_VideoFrame *); +// makes a shallow copy of a video frame +AVSC_API(AVS_VideoFrame *, avs_copy_video_frame)(AVS_VideoFrame *); + +#ifndef AVSC_NO_DECLSPEC +AVSC_INLINE void avs_release_frame(AVS_VideoFrame * f) + {avs_release_video_frame(f);} +AVSC_INLINE AVS_VideoFrame * avs_copy_frame(AVS_VideoFrame * f) + {return avs_copy_video_frame(f);} +#endif + +///////////////////////////////////////////////////////////////////// +// +// AVS_Value +// + +// Treat AVS_Value as a fat pointer. That is use avs_copy_value +// and avs_release_value appropiaty as you would if AVS_Value was +// a pointer. + +// To maintain source code compatibility with future versions of the +// avisynth_c API don't use the AVS_Value directly. Use the helper +// functions below. + +// AVS_Value is layed out identicly to AVSValue +typedef struct AVS_Value AVS_Value; +struct AVS_Value { + short type; // 'a'rray, 'c'lip, 'b'ool, 'i'nt, 'f'loat, 's'tring, 'v'oid, or 'l'ong + // for some function e'rror + short array_size; + union { + void * clip; // do not use directly, use avs_take_clip + char boolean; + int integer; + float floating_pt; + const char * string; + const AVS_Value * array; + } d; +}; + +// AVS_Value should be initilized with avs_void. +// Should also set to avs_void after the value is released +// with avs_copy_value. Consider it the equalvent of setting +// a pointer to NULL +static const AVS_Value avs_void = {'v'}; + +AVSC_API(void, avs_copy_value)(AVS_Value * dest, AVS_Value src); +AVSC_API(void, avs_release_value)(AVS_Value); + +AVSC_INLINE int avs_defined(AVS_Value v) { return v.type != 'v'; } +AVSC_INLINE int avs_is_clip(AVS_Value v) { return v.type == 'c'; } +AVSC_INLINE int avs_is_bool(AVS_Value v) { return v.type == 'b'; } +AVSC_INLINE int avs_is_int(AVS_Value v) { return v.type == 'i'; } +AVSC_INLINE int avs_is_float(AVS_Value v) { return v.type == 'f' || v.type == 'i'; } +AVSC_INLINE int avs_is_string(AVS_Value v) { return v.type == 's'; } +AVSC_INLINE int avs_is_array(AVS_Value v) { return v.type == 'a'; } +AVSC_INLINE int avs_is_error(AVS_Value v) { return v.type == 'e'; } + +AVSC_API(AVS_Clip *, avs_take_clip)(AVS_Value, AVS_ScriptEnvironment *); +AVSC_API(void, avs_set_to_clip)(AVS_Value *, AVS_Clip *); + +AVSC_INLINE int avs_as_bool(AVS_Value v) + { return v.d.boolean; } +AVSC_INLINE int avs_as_int(AVS_Value v) + { return v.d.integer; } +AVSC_INLINE const char * avs_as_string(AVS_Value v) + { return avs_is_error(v) || avs_is_string(v) ? v.d.string : 0; } +AVSC_INLINE double avs_as_float(AVS_Value v) + { return avs_is_int(v) ? v.d.integer : v.d.floating_pt; } +AVSC_INLINE const char * avs_as_error(AVS_Value v) + { return avs_is_error(v) ? v.d.string : 0; } +AVSC_INLINE const AVS_Value * avs_as_array(AVS_Value v) + { return v.d.array; } +AVSC_INLINE int avs_array_size(AVS_Value v) + { return avs_is_array(v) ? v.array_size : 1; } +AVSC_INLINE AVS_Value avs_array_elt(AVS_Value v, int index) + { return avs_is_array(v) ? v.d.array[index] : v; } + +// only use these functions on an AVS_Value that does not already have +// an active value. Remember, treat AVS_Value as a fat pointer. +AVSC_INLINE AVS_Value avs_new_value_bool(int v0) + { AVS_Value v; v.type = 'b'; v.d.boolean = v0 == 0 ? 0 : 1; return v; } +AVSC_INLINE AVS_Value avs_new_value_int(int v0) + { AVS_Value v; v.type = 'i'; v.d.integer = v0; return v; } +AVSC_INLINE AVS_Value avs_new_value_string(const char * v0) + { AVS_Value v; v.type = 's'; v.d.string = v0; return v; } +AVSC_INLINE AVS_Value avs_new_value_float(float v0) + { AVS_Value v; v.type = 'f'; v.d.floating_pt = v0; return v;} +AVSC_INLINE AVS_Value avs_new_value_error(const char * v0) + { AVS_Value v; v.type = 'e'; v.d.string = v0; return v; } +#ifndef AVSC_NO_DECLSPEC +AVSC_INLINE AVS_Value avs_new_value_clip(AVS_Clip * v0) + { AVS_Value v; avs_set_to_clip(&v, v0); return v; } +#endif +AVSC_INLINE AVS_Value avs_new_value_array(AVS_Value * v0, int size) + { AVS_Value v; v.type = 'a'; v.d.array = v0; v.array_size = size; return v; } + +///////////////////////////////////////////////////////////////////// +// +// AVS_Clip +// + +AVSC_API(void, avs_release_clip)(AVS_Clip *); +AVSC_API(AVS_Clip *, avs_copy_clip)(AVS_Clip *); + +AVSC_API(const char *, avs_clip_get_error)(AVS_Clip *); // return 0 if no error + +AVSC_API(const AVS_VideoInfo *, avs_get_video_info)(AVS_Clip *); + +AVSC_API(int, avs_get_version)(AVS_Clip *); + +AVSC_API(AVS_VideoFrame *, avs_get_frame)(AVS_Clip *, int n); +// The returned video frame must be released with avs_release_video_frame + +AVSC_API(int, avs_get_parity)(AVS_Clip *, int n); +// return field parity if field_based, else parity of first field in frame + +AVSC_API(int, avs_get_audio)(AVS_Clip *, void * buf, + INT64 start, INT64 count); +// start and count are in samples + +AVSC_API(int, avs_set_cache_hints)(AVS_Clip *, + int cachehints, int frame_range); + +// This is the callback type used by avs_add_function +typedef AVS_Value (AVSC_CC * AVS_ApplyFunc) + (AVS_ScriptEnvironment *, AVS_Value args, void * user_data); + +typedef struct AVS_FilterInfo AVS_FilterInfo; +struct AVS_FilterInfo +{ + // these members should not be modified outside of the AVS_ApplyFunc callback + AVS_Clip * child; + AVS_VideoInfo vi; + AVS_ScriptEnvironment * env; + AVS_VideoFrame * (AVSC_CC * get_frame)(AVS_FilterInfo *, int n); + int (AVSC_CC * get_parity)(AVS_FilterInfo *, int n); + int (AVSC_CC * get_audio)(AVS_FilterInfo *, void * buf, + INT64 start, INT64 count); + int (AVSC_CC * set_cache_hints)(AVS_FilterInfo *, int cachehints, + int frame_range); + void (AVSC_CC * free_filter)(AVS_FilterInfo *); + + // Should be set when ever there is an error to report. + // It is cleared before any of the above methods are called + const char * error; + // this is to store whatever and may be modified at will + void * user_data; +}; + +// Create a new filter +// fi is set to point to the AVS_FilterInfo so that you can +// modify it once it is initilized. +// store_child should generally be set to true. If it is not +// set than ALL methods (the function pointers) must be defined +// If it is set than you do not need to worry about freeing the child +// clip. +AVSC_API(AVS_Clip *, avs_new_c_filter)(AVS_ScriptEnvironment * e, + AVS_FilterInfo * * fi, + AVS_Value child, int store_child); + +///////////////////////////////////////////////////////////////////// +// +// AVS_ScriptEnvironment +// + +// For GetCPUFlags. These are backwards-compatible with those in VirtualDub. +enum { + /* slowest CPU to support extension */ + AVS_CPU_FORCE = 0x01, // N/A + AVS_CPU_FPU = 0x02, // 386/486DX + AVS_CPU_MMX = 0x04, // P55C, K6, PII + AVS_CPU_INTEGER_SSE = 0x08, // PIII, Athlon + AVS_CPU_SSE = 0x10, // PIII, Athlon XP/MP + AVS_CPU_SSE2 = 0x20, // PIV, Hammer + AVS_CPU_3DNOW = 0x40, // K6-2 + AVS_CPU_3DNOW_EXT = 0x80, // Athlon + AVS_CPU_X86_64 = 0xA0, // Hammer (note: equiv. to 3DNow + SSE2, + // which only Hammer will have anyway) + AVS_CPUF_SSE3 = 0x100, // PIV+, K8 Venice + AVS_CPUF_SSSE3 = 0x200, // Core 2 + AVS_CPUF_SSE4 = 0x400, // Penryn, Wolfdale, Yorkfield + AVS_CPUF_SSE4_1 = 0x400, + AVS_CPUF_SSE4_2 = 0x800, // Nehalem +}; + +AVSC_API(const char *, avs_get_error)(AVS_ScriptEnvironment *); // return 0 if no error + +AVSC_API(long, avs_get_cpu_flags)(AVS_ScriptEnvironment *); +AVSC_API(int, avs_check_version)(AVS_ScriptEnvironment *, int version); + +AVSC_API(char *, avs_save_string)(AVS_ScriptEnvironment *, const char* s, int length); +AVSC_API(char *, avs_sprintf)(AVS_ScriptEnvironment *, const char * fmt, ...); + +AVSC_API(char *, avs_vsprintf)(AVS_ScriptEnvironment *, const char * fmt, void* val); + // note: val is really a va_list; I hope everyone typedefs va_list to a pointer + +AVSC_API(int, avs_add_function)(AVS_ScriptEnvironment *, + const char * name, const char * params, + AVS_ApplyFunc apply, void * user_data); + +AVSC_API(int, avs_function_exists)(AVS_ScriptEnvironment *, const char * name); + +AVSC_API(AVS_Value, avs_invoke)(AVS_ScriptEnvironment *, const char * name, + AVS_Value args, const char** arg_names); +// The returned value must be be released with avs_release_value + +AVSC_API(AVS_Value, avs_get_var)(AVS_ScriptEnvironment *, const char* name); +// The returned value must be be released with avs_release_value + +AVSC_API(int, avs_set_var)(AVS_ScriptEnvironment *, const char* name, AVS_Value val); + +AVSC_API(int, avs_set_global_var)(AVS_ScriptEnvironment *, const char* name, const AVS_Value val); + +//void avs_push_context(AVS_ScriptEnvironment *, int level=0); +//void avs_pop_context(AVS_ScriptEnvironment *); + +AVSC_API(AVS_VideoFrame *, avs_new_video_frame_a)(AVS_ScriptEnvironment *, + const AVS_VideoInfo * vi, int align); +// align should be at least 16 + +#ifndef AVSC_NO_DECLSPEC +AVSC_INLINE +AVS_VideoFrame * avs_new_video_frame(AVS_ScriptEnvironment * env, + const AVS_VideoInfo * vi) + {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} + +AVSC_INLINE +AVS_VideoFrame * avs_new_frame(AVS_ScriptEnvironment * env, + const AVS_VideoInfo * vi) + {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} +#endif + + +AVSC_API(int, avs_make_writable)(AVS_ScriptEnvironment *, AVS_VideoFrame * * pvf); + +AVSC_API(void, avs_bit_blt)(AVS_ScriptEnvironment *, BYTE* dstp, int dst_pitch, const BYTE* srcp, int src_pitch, int row_size, int height); + +typedef void (AVSC_CC *AVS_ShutdownFunc)(void* user_data, AVS_ScriptEnvironment * env); +AVSC_API(void, avs_at_exit)(AVS_ScriptEnvironment *, AVS_ShutdownFunc function, void * user_data); + +AVSC_API(AVS_VideoFrame *, avs_subframe)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height); +// The returned video frame must be be released + +AVSC_API(int, avs_set_memory_max)(AVS_ScriptEnvironment *, int mem); + +AVSC_API(int, avs_set_working_dir)(AVS_ScriptEnvironment *, const char * newdir); + +// avisynth.dll exports this; it's a way to use it as a library, without +// writing an AVS script or without going through AVIFile. +AVSC_API(AVS_ScriptEnvironment *, avs_create_script_environment)(int version); + +// this symbol is the entry point for the plugin and must +// be defined +AVSC_EXPORT +const char * AVSC_CC avisynth_c_plugin_init(AVS_ScriptEnvironment* env); + + +AVSC_API(void, avs_delete_script_environment)(AVS_ScriptEnvironment *); + + +AVSC_API(AVS_VideoFrame *, avs_subframe_planar)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height, int rel_offsetU, int rel_offsetV, int new_pitchUV); +// The returned video frame must be be released + +#ifdef AVSC_NO_DECLSPEC +// use LoadLibrary and related functions to dynamically load Avisynth instead of declspec(dllimport) +/* + The following functions needs to have been declared, probably from windows.h + + void* malloc(size_t) + void free(void*); + + HMODULE LoadLibrary(const char*); + void* GetProcAddress(HMODULE, const char*); + FreeLibrary(HMODULE); +*/ + + +typedef struct AVS_Library AVS_Library; + +#define AVSC_DECLARE_FUNC(name) name##_func name + +struct AVS_Library { + HMODULE handle; + + AVSC_DECLARE_FUNC(avs_add_function); + AVSC_DECLARE_FUNC(avs_at_exit); + AVSC_DECLARE_FUNC(avs_bit_blt); + AVSC_DECLARE_FUNC(avs_check_version); + AVSC_DECLARE_FUNC(avs_clip_get_error); + AVSC_DECLARE_FUNC(avs_copy_clip); + AVSC_DECLARE_FUNC(avs_copy_value); + AVSC_DECLARE_FUNC(avs_copy_video_frame); + AVSC_DECLARE_FUNC(avs_create_script_environment); + AVSC_DECLARE_FUNC(avs_delete_script_environment); + AVSC_DECLARE_FUNC(avs_function_exists); + AVSC_DECLARE_FUNC(avs_get_audio); + AVSC_DECLARE_FUNC(avs_get_cpu_flags); + AVSC_DECLARE_FUNC(avs_get_error); + AVSC_DECLARE_FUNC(avs_get_frame); + AVSC_DECLARE_FUNC(avs_get_parity); + AVSC_DECLARE_FUNC(avs_get_var); + AVSC_DECLARE_FUNC(avs_get_version); + AVSC_DECLARE_FUNC(avs_get_video_info); + AVSC_DECLARE_FUNC(avs_invoke); + AVSC_DECLARE_FUNC(avs_make_writable); + AVSC_DECLARE_FUNC(avs_new_c_filter); + AVSC_DECLARE_FUNC(avs_new_video_frame_a); + AVSC_DECLARE_FUNC(avs_release_clip); + AVSC_DECLARE_FUNC(avs_release_value); + AVSC_DECLARE_FUNC(avs_release_video_frame); + AVSC_DECLARE_FUNC(avs_save_string); + AVSC_DECLARE_FUNC(avs_set_cache_hints); + AVSC_DECLARE_FUNC(avs_set_global_var); + AVSC_DECLARE_FUNC(avs_set_memory_max); + AVSC_DECLARE_FUNC(avs_set_to_clip); + AVSC_DECLARE_FUNC(avs_set_var); + AVSC_DECLARE_FUNC(avs_set_working_dir); + AVSC_DECLARE_FUNC(avs_sprintf); + AVSC_DECLARE_FUNC(avs_subframe); + AVSC_DECLARE_FUNC(avs_subframe_planar); + AVSC_DECLARE_FUNC(avs_take_clip); + AVSC_DECLARE_FUNC(avs_vsprintf); +}; + +#undef AVSC_DECLARE_FUNC + + +AVSC_INLINE AVS_Library * avs_load_library() { + AVS_Library *library = (AVS_Library *)malloc(sizeof(AVS_Library)); + if (library == NULL) + return NULL; + library->handle = LoadLibrary("avisynth"); + if (library->handle == NULL) + goto fail; + +#define __AVSC_STRINGIFY(x) #x +#define AVSC_STRINGIFY(x) __AVSC_STRINGIFY(x) +#define AVSC_LOAD_FUNC(name) {\ + library->name = (name##_func) GetProcAddress(library->handle, AVSC_STRINGIFY(name));\ + if (library->name == NULL)\ + goto fail;\ +} + + AVSC_LOAD_FUNC(avs_add_function); + AVSC_LOAD_FUNC(avs_at_exit); + AVSC_LOAD_FUNC(avs_bit_blt); + AVSC_LOAD_FUNC(avs_check_version); + AVSC_LOAD_FUNC(avs_clip_get_error); + AVSC_LOAD_FUNC(avs_copy_clip); + AVSC_LOAD_FUNC(avs_copy_value); + AVSC_LOAD_FUNC(avs_copy_video_frame); + AVSC_LOAD_FUNC(avs_create_script_environment); + AVSC_LOAD_FUNC(avs_delete_script_environment); + AVSC_LOAD_FUNC(avs_function_exists); + AVSC_LOAD_FUNC(avs_get_audio); + AVSC_LOAD_FUNC(avs_get_cpu_flags); + AVSC_LOAD_FUNC(avs_get_error); + AVSC_LOAD_FUNC(avs_get_frame); + AVSC_LOAD_FUNC(avs_get_parity); + AVSC_LOAD_FUNC(avs_get_var); + AVSC_LOAD_FUNC(avs_get_version); + AVSC_LOAD_FUNC(avs_get_video_info); + AVSC_LOAD_FUNC(avs_invoke); + AVSC_LOAD_FUNC(avs_make_writable); + AVSC_LOAD_FUNC(avs_new_c_filter); + AVSC_LOAD_FUNC(avs_new_video_frame_a); + AVSC_LOAD_FUNC(avs_release_clip); + AVSC_LOAD_FUNC(avs_release_value); + AVSC_LOAD_FUNC(avs_release_video_frame); + AVSC_LOAD_FUNC(avs_save_string); + AVSC_LOAD_FUNC(avs_set_cache_hints); + AVSC_LOAD_FUNC(avs_set_global_var); + AVSC_LOAD_FUNC(avs_set_memory_max); + AVSC_LOAD_FUNC(avs_set_to_clip); + AVSC_LOAD_FUNC(avs_set_var); + AVSC_LOAD_FUNC(avs_set_working_dir); + AVSC_LOAD_FUNC(avs_sprintf); + AVSC_LOAD_FUNC(avs_subframe); + AVSC_LOAD_FUNC(avs_subframe_planar); + AVSC_LOAD_FUNC(avs_take_clip); + AVSC_LOAD_FUNC(avs_vsprintf); + +#undef __AVSC_STRINGIFY +#undef AVSC_STRINGIFY +#undef AVSC_LOAD_FUNC + + return library; + +fail: + free(library); + return NULL; +} + +AVSC_INLINE void avs_free_library(AVS_Library *library) { + if (library == NULL) + return; + FreeLibrary(library->handle); + free(library); +} +#endif + +#endif diff --git a/ffmpeg/compat/avisynth/avxsynth_c.h b/ffmpeg/compat/avisynth/avxsynth_c.h new file mode 100644 index 0000000..7a81e21 --- /dev/null +++ b/ffmpeg/compat/avisynth/avxsynth_c.h @@ -0,0 +1,727 @@ +// Avisynth C Interface Version 0.20 +// Copyright 2003 Kevin Atkinson + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit +// http://www.gnu.org/copyleft/gpl.html . +// +// As a special exception, I give you permission to link to the +// Avisynth C interface with independent modules that communicate with +// the Avisynth C interface solely through the interfaces defined in +// avisynth_c.h, regardless of the license terms of these independent +// modules, and to copy and distribute the resulting combined work +// under terms of your choice, provided that every copy of the +// combined work is accompanied by a complete copy of the source code +// of the Avisynth C interface and Avisynth itself (with the version +// used to produce the combined work), being distributed under the +// terms of the GNU General Public License plus this exception. An +// independent module is a module which is not derived from or based +// on Avisynth C Interface, such as 3rd-party filters, import and +// export plugins, or graphical user interfaces. + +#ifndef __AVXSYNTH_C__ +#define __AVXSYNTH_C__ + +#include "windowsPorts/windows2linux.h" +#include + +#ifdef __cplusplus +# define EXTERN_C extern "C" +#else +# define EXTERN_C +#endif + +#define AVSC_USE_STDCALL 1 + +#ifndef AVSC_USE_STDCALL +# define AVSC_CC __cdecl +#else +# define AVSC_CC __stdcall +#endif + +#define AVSC_INLINE static __inline + +#ifdef AVISYNTH_C_EXPORTS +# define AVSC_EXPORT EXTERN_C +# define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name +#else +# define AVSC_EXPORT EXTERN_C __declspec(dllexport) +# ifndef AVSC_NO_DECLSPEC +# define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name +# else +# define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func) +# endif +#endif + +#ifdef __GNUC__ +typedef long long int INT64; +#else +typedef __int64 INT64; +#endif + + +///////////////////////////////////////////////////////////////////// +// +// Constants +// + +#ifndef __AVXSYNTH_H__ +enum { AVISYNTH_INTERFACE_VERSION = 3 }; +#endif + +enum {AVS_SAMPLE_INT8 = 1<<0, + AVS_SAMPLE_INT16 = 1<<1, + AVS_SAMPLE_INT24 = 1<<2, + AVS_SAMPLE_INT32 = 1<<3, + AVS_SAMPLE_FLOAT = 1<<4}; + +enum {AVS_PLANAR_Y=1<<0, + AVS_PLANAR_U=1<<1, + AVS_PLANAR_V=1<<2, + AVS_PLANAR_ALIGNED=1<<3, + AVS_PLANAR_Y_ALIGNED=AVS_PLANAR_Y|AVS_PLANAR_ALIGNED, + AVS_PLANAR_U_ALIGNED=AVS_PLANAR_U|AVS_PLANAR_ALIGNED, + AVS_PLANAR_V_ALIGNED=AVS_PLANAR_V|AVS_PLANAR_ALIGNED}; + + // Colorspace properties. +enum {AVS_CS_BGR = 1<<28, + AVS_CS_YUV = 1<<29, + AVS_CS_INTERLEAVED = 1<<30, + AVS_CS_PLANAR = 1<<31}; + + // Specific colorformats +enum { + AVS_CS_UNKNOWN = 0, + AVS_CS_BGR24 = 1<<0 | AVS_CS_BGR | AVS_CS_INTERLEAVED, + AVS_CS_BGR32 = 1<<1 | AVS_CS_BGR | AVS_CS_INTERLEAVED, + AVS_CS_YUY2 = 1<<2 | AVS_CS_YUV | AVS_CS_INTERLEAVED, + AVS_CS_YV12 = 1<<3 | AVS_CS_YUV | AVS_CS_PLANAR, // y-v-u, planar + AVS_CS_I420 = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR, // y-u-v, planar + AVS_CS_IYUV = 1<<4 | AVS_CS_YUV | AVS_CS_PLANAR // same as above +}; + +enum { + AVS_IT_BFF = 1<<0, + AVS_IT_TFF = 1<<1, + AVS_IT_FIELDBASED = 1<<2}; + +enum { + AVS_FILTER_TYPE=1, + AVS_FILTER_INPUT_COLORSPACE=2, + AVS_FILTER_OUTPUT_TYPE=9, + AVS_FILTER_NAME=4, + AVS_FILTER_AUTHOR=5, + AVS_FILTER_VERSION=6, + AVS_FILTER_ARGS=7, + AVS_FILTER_ARGS_INFO=8, + AVS_FILTER_ARGS_DESCRIPTION=10, + AVS_FILTER_DESCRIPTION=11}; + +enum { //SUBTYPES + AVS_FILTER_TYPE_AUDIO=1, + AVS_FILTER_TYPE_VIDEO=2, + AVS_FILTER_OUTPUT_TYPE_SAME=3, + AVS_FILTER_OUTPUT_TYPE_DIFFERENT=4}; + +enum { + AVS_CACHE_NOTHING=0, + AVS_CACHE_RANGE=1, + AVS_CACHE_ALL=2, + AVS_CACHE_AUDIO=3, + AVS_CACHE_AUDIO_NONE=4, + AVS_CACHE_AUDIO_AUTO=5 +}; + +#define AVS_FRAME_ALIGN 16 + +typedef struct AVS_Clip AVS_Clip; +typedef struct AVS_ScriptEnvironment AVS_ScriptEnvironment; + +///////////////////////////////////////////////////////////////////// +// +// AVS_VideoInfo +// + +// AVS_VideoInfo is layed out identicly to VideoInfo +typedef struct AVS_VideoInfo { + int width, height; // width=0 means no video + unsigned fps_numerator, fps_denominator; + int num_frames; + + int pixel_type; + + int audio_samples_per_second; // 0 means no audio + int sample_type; + INT64 num_audio_samples; + int nchannels; + + // Imagetype properties + + int image_type; +} AVS_VideoInfo; + +// useful functions of the above +AVSC_INLINE int avs_has_video(const AVS_VideoInfo * p) + { return (p->width!=0); } + +AVSC_INLINE int avs_has_audio(const AVS_VideoInfo * p) + { return (p->audio_samples_per_second!=0); } + +AVSC_INLINE int avs_is_rgb(const AVS_VideoInfo * p) + { return !!(p->pixel_type&AVS_CS_BGR); } + +AVSC_INLINE int avs_is_rgb24(const AVS_VideoInfo * p) + { return (p->pixel_type&AVS_CS_BGR24)==AVS_CS_BGR24; } // Clear out additional properties + +AVSC_INLINE int avs_is_rgb32(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_BGR32) == AVS_CS_BGR32 ; } + +AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo * p) + { return !!(p->pixel_type&AVS_CS_YUV ); } + +AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo * p) + { return (p->pixel_type & AVS_CS_YUY2) == AVS_CS_YUY2; } + +AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo * p) + { return ((p->pixel_type & AVS_CS_YV12) == AVS_CS_YV12)||((p->pixel_type & AVS_CS_I420) == AVS_CS_I420); } + +AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo * p, int c_space) + { return ((p->pixel_type & c_space) == c_space); } + +AVSC_INLINE int avs_is_property(const AVS_VideoInfo * p, int property) + { return ((p->pixel_type & property)==property ); } + +AVSC_INLINE int avs_is_planar(const AVS_VideoInfo * p) + { return !!(p->pixel_type & AVS_CS_PLANAR); } + +AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo * p) + { return !!(p->image_type & AVS_IT_FIELDBASED); } + +AVSC_INLINE int avs_is_parity_known(const AVS_VideoInfo * p) + { return ((p->image_type & AVS_IT_FIELDBASED)&&(p->image_type & (AVS_IT_BFF | AVS_IT_TFF))); } + +AVSC_INLINE int avs_is_bff(const AVS_VideoInfo * p) + { return !!(p->image_type & AVS_IT_BFF); } + +AVSC_INLINE int avs_is_tff(const AVS_VideoInfo * p) + { return !!(p->image_type & AVS_IT_TFF); } + +AVSC_INLINE int avs_bits_per_pixel(const AVS_VideoInfo * p) +{ + switch (p->pixel_type) { + case AVS_CS_BGR24: return 24; + case AVS_CS_BGR32: return 32; + case AVS_CS_YUY2: return 16; + case AVS_CS_YV12: + case AVS_CS_I420: return 12; + default: return 0; + } +} +AVSC_INLINE int avs_bytes_from_pixels(const AVS_VideoInfo * p, int pixels) + { return pixels * (avs_bits_per_pixel(p)>>3); } // Will work on planar images, but will return only luma planes + +AVSC_INLINE int avs_row_size(const AVS_VideoInfo * p) + { return avs_bytes_from_pixels(p,p->width); } // Also only returns first plane on planar images + +AVSC_INLINE int avs_bmp_size(const AVS_VideoInfo * vi) + { if (avs_is_planar(vi)) {int p = vi->height * ((avs_row_size(vi)+3) & ~3); p+=p>>1; return p; } return vi->height * ((avs_row_size(vi)+3) & ~3); } + +AVSC_INLINE int avs_samples_per_second(const AVS_VideoInfo * p) + { return p->audio_samples_per_second; } + + +AVSC_INLINE int avs_bytes_per_channel_sample(const AVS_VideoInfo * p) +{ + switch (p->sample_type) { + case AVS_SAMPLE_INT8: return sizeof(signed char); + case AVS_SAMPLE_INT16: return sizeof(signed short); + case AVS_SAMPLE_INT24: return 3; + case AVS_SAMPLE_INT32: return sizeof(signed int); + case AVS_SAMPLE_FLOAT: return sizeof(float); + default: return 0; + } +} +AVSC_INLINE int avs_bytes_per_audio_sample(const AVS_VideoInfo * p) + { return p->nchannels*avs_bytes_per_channel_sample(p);} + +AVSC_INLINE INT64 avs_audio_samples_from_frames(const AVS_VideoInfo * p, INT64 frames) + { return ((INT64)(frames) * p->audio_samples_per_second * p->fps_denominator / p->fps_numerator); } + +AVSC_INLINE int avs_frames_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) + { return (int)(samples * (INT64)p->fps_numerator / (INT64)p->fps_denominator / (INT64)p->audio_samples_per_second); } + +AVSC_INLINE INT64 avs_audio_samples_from_bytes(const AVS_VideoInfo * p, INT64 bytes) + { return bytes / avs_bytes_per_audio_sample(p); } + +AVSC_INLINE INT64 avs_bytes_from_audio_samples(const AVS_VideoInfo * p, INT64 samples) + { return samples * avs_bytes_per_audio_sample(p); } + +AVSC_INLINE int avs_audio_channels(const AVS_VideoInfo * p) + { return p->nchannels; } + +AVSC_INLINE int avs_sample_type(const AVS_VideoInfo * p) + { return p->sample_type;} + +// useful mutator +AVSC_INLINE void avs_set_property(AVS_VideoInfo * p, int property) + { p->image_type|=property; } + +AVSC_INLINE void avs_clear_property(AVS_VideoInfo * p, int property) + { p->image_type&=~property; } + +AVSC_INLINE void avs_set_field_based(AVS_VideoInfo * p, int isfieldbased) + { if (isfieldbased) p->image_type|=AVS_IT_FIELDBASED; else p->image_type&=~AVS_IT_FIELDBASED; } + +AVSC_INLINE void avs_set_fps(AVS_VideoInfo * p, unsigned numerator, unsigned denominator) +{ + unsigned x=numerator, y=denominator; + while (y) { // find gcd + unsigned t = x%y; x = y; y = t; + } + p->fps_numerator = numerator/x; + p->fps_denominator = denominator/x; +} + +AVSC_INLINE int avs_is_same_colorspace(AVS_VideoInfo * x, AVS_VideoInfo * y) +{ + return (x->pixel_type == y->pixel_type) + || (avs_is_yv12(x) && avs_is_yv12(y)); +} + +///////////////////////////////////////////////////////////////////// +// +// AVS_VideoFrame +// + +// VideoFrameBuffer holds information about a memory block which is used +// for video data. For efficiency, instances of this class are not deleted +// when the refcount reaches zero; instead they're stored in a linked list +// to be reused. The instances are deleted when the corresponding AVS +// file is closed. + +// AVS_VideoFrameBuffer is layed out identicly to VideoFrameBuffer +// DO NOT USE THIS STRUCTURE DIRECTLY +typedef struct AVS_VideoFrameBuffer { + unsigned char * data; + int data_size; + // sequence_number is incremented every time the buffer is changed, so + // that stale views can tell they're no longer valid. + long sequence_number; + + long refcount; +} AVS_VideoFrameBuffer; + +// VideoFrame holds a "window" into a VideoFrameBuffer. + +// AVS_VideoFrame is layed out identicly to IVideoFrame +// DO NOT USE THIS STRUCTURE DIRECTLY +typedef struct AVS_VideoFrame { + int refcount; + AVS_VideoFrameBuffer * vfb; + int offset, pitch, row_size, height, offsetU, offsetV, pitchUV; // U&V offsets are from top of picture. +} AVS_VideoFrame; + +// Access functions for AVS_VideoFrame +AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame * p) { + return p->pitch;} + +AVSC_INLINE int avs_get_pitch_p(const AVS_VideoFrame * p, int plane) { + switch (plane) { + case AVS_PLANAR_U: case AVS_PLANAR_V: return p->pitchUV;} + return p->pitch;} + +AVSC_INLINE int avs_get_row_size(const AVS_VideoFrame * p) { + return p->row_size; } + +AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame * p, int plane) { + int r; + switch (plane) { + case AVS_PLANAR_U: case AVS_PLANAR_V: + if (p->pitchUV) return p->row_size>>1; + else return 0; + case AVS_PLANAR_U_ALIGNED: case AVS_PLANAR_V_ALIGNED: + if (p->pitchUV) { + r = ((p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)) )>>1; // Aligned rowsize + if (r < p->pitchUV) + return r; + return p->row_size>>1; + } else return 0; + case AVS_PLANAR_Y_ALIGNED: + r = (p->row_size+AVS_FRAME_ALIGN-1)&(~(AVS_FRAME_ALIGN-1)); // Aligned rowsize + if (r <= p->pitch) + return r; + return p->row_size; + } + return p->row_size; +} + +AVSC_INLINE int avs_get_height(const AVS_VideoFrame * p) { + return p->height;} + +AVSC_INLINE int avs_get_height_p(const AVS_VideoFrame * p, int plane) { + switch (plane) { + case AVS_PLANAR_U: case AVS_PLANAR_V: + if (p->pitchUV) return p->height>>1; + return 0; + } + return p->height;} + +AVSC_INLINE const unsigned char* avs_get_read_ptr(const AVS_VideoFrame * p) { + return p->vfb->data + p->offset;} + +AVSC_INLINE const unsigned char* avs_get_read_ptr_p(const AVS_VideoFrame * p, int plane) +{ + switch (plane) { + case AVS_PLANAR_U: return p->vfb->data + p->offsetU; + case AVS_PLANAR_V: return p->vfb->data + p->offsetV; + default: return p->vfb->data + p->offset;} +} + +AVSC_INLINE int avs_is_writable(const AVS_VideoFrame * p) { + return (p->refcount == 1 && p->vfb->refcount == 1);} + +AVSC_INLINE unsigned char* avs_get_write_ptr(const AVS_VideoFrame * p) +{ + if (avs_is_writable(p)) { + ++p->vfb->sequence_number; + return p->vfb->data + p->offset; + } else + return 0; +} + +AVSC_INLINE unsigned char* avs_get_write_ptr_p(const AVS_VideoFrame * p, int plane) +{ + if (plane==AVS_PLANAR_Y && avs_is_writable(p)) { + ++p->vfb->sequence_number; + return p->vfb->data + p->offset; + } else if (plane==AVS_PLANAR_Y) { + return 0; + } else { + switch (plane) { + case AVS_PLANAR_U: return p->vfb->data + p->offsetU; + case AVS_PLANAR_V: return p->vfb->data + p->offsetV; + default: return p->vfb->data + p->offset; + } + } +} + +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(void, avs_release_video_frame)(AVS_VideoFrame *); +// makes a shallow copy of a video frame +AVSC_API(AVS_VideoFrame *, avs_copy_video_frame)(AVS_VideoFrame *); +#if defined __cplusplus +} +#endif // __cplusplus + +#ifndef AVSC_NO_DECLSPEC +AVSC_INLINE void avs_release_frame(AVS_VideoFrame * f) + {avs_release_video_frame(f);} +AVSC_INLINE AVS_VideoFrame * avs_copy_frame(AVS_VideoFrame * f) + {return avs_copy_video_frame(f);} +#endif + +///////////////////////////////////////////////////////////////////// +// +// AVS_Value +// + +// Treat AVS_Value as a fat pointer. That is use avs_copy_value +// and avs_release_value appropiaty as you would if AVS_Value was +// a pointer. + +// To maintain source code compatibility with future versions of the +// avisynth_c API don't use the AVS_Value directly. Use the helper +// functions below. + +// AVS_Value is layed out identicly to AVSValue +typedef struct AVS_Value AVS_Value; +struct AVS_Value { + short type; // 'a'rray, 'c'lip, 'b'ool, 'i'nt, 'f'loat, 's'tring, 'v'oid, or 'l'ong + // for some function e'rror + short array_size; + union { + void * clip; // do not use directly, use avs_take_clip + char boolean; + int integer; + INT64 integer64; // match addition of __int64 to avxplugin.h + float floating_pt; + const char * string; + const AVS_Value * array; + } d; +}; + +// AVS_Value should be initilized with avs_void. +// Should also set to avs_void after the value is released +// with avs_copy_value. Consider it the equalvent of setting +// a pointer to NULL +static const AVS_Value avs_void = {'v'}; + +AVSC_API(void, avs_copy_value)(AVS_Value * dest, AVS_Value src); +AVSC_API(void, avs_release_value)(AVS_Value); + +AVSC_INLINE int avs_defined(AVS_Value v) { return v.type != 'v'; } +AVSC_INLINE int avs_is_clip(AVS_Value v) { return v.type == 'c'; } +AVSC_INLINE int avs_is_bool(AVS_Value v) { return v.type == 'b'; } +AVSC_INLINE int avs_is_int(AVS_Value v) { return v.type == 'i'; } +AVSC_INLINE int avs_is_float(AVS_Value v) { return v.type == 'f' || v.type == 'i'; } +AVSC_INLINE int avs_is_string(AVS_Value v) { return v.type == 's'; } +AVSC_INLINE int avs_is_array(AVS_Value v) { return v.type == 'a'; } +AVSC_INLINE int avs_is_error(AVS_Value v) { return v.type == 'e'; } + +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(AVS_Clip *, avs_take_clip)(AVS_Value, AVS_ScriptEnvironment *); +AVSC_API(void, avs_set_to_clip)(AVS_Value *, AVS_Clip *); +#if defined __cplusplus +} +#endif // __cplusplus + +AVSC_INLINE int avs_as_bool(AVS_Value v) + { return v.d.boolean; } +AVSC_INLINE int avs_as_int(AVS_Value v) + { return v.d.integer; } +AVSC_INLINE const char * avs_as_string(AVS_Value v) + { return avs_is_error(v) || avs_is_string(v) ? v.d.string : 0; } +AVSC_INLINE double avs_as_float(AVS_Value v) + { return avs_is_int(v) ? v.d.integer : v.d.floating_pt; } +AVSC_INLINE const char * avs_as_error(AVS_Value v) + { return avs_is_error(v) ? v.d.string : 0; } +AVSC_INLINE const AVS_Value * avs_as_array(AVS_Value v) + { return v.d.array; } +AVSC_INLINE int avs_array_size(AVS_Value v) + { return avs_is_array(v) ? v.array_size : 1; } +AVSC_INLINE AVS_Value avs_array_elt(AVS_Value v, int index) + { return avs_is_array(v) ? v.d.array[index] : v; } + +// only use these functions on am AVS_Value that does not already have +// an active value. Remember, treat AVS_Value as a fat pointer. +AVSC_INLINE AVS_Value avs_new_value_bool(int v0) + { AVS_Value v; v.type = 'b'; v.d.boolean = v0 == 0 ? 0 : 1; return v; } +AVSC_INLINE AVS_Value avs_new_value_int(int v0) + { AVS_Value v; v.type = 'i'; v.d.integer = v0; return v; } +AVSC_INLINE AVS_Value avs_new_value_string(const char * v0) + { AVS_Value v; v.type = 's'; v.d.string = v0; return v; } +AVSC_INLINE AVS_Value avs_new_value_float(float v0) + { AVS_Value v; v.type = 'f'; v.d.floating_pt = v0; return v;} +AVSC_INLINE AVS_Value avs_new_value_error(const char * v0) + { AVS_Value v; v.type = 'e'; v.d.string = v0; return v; } +#ifndef AVSC_NO_DECLSPEC +AVSC_INLINE AVS_Value avs_new_value_clip(AVS_Clip * v0) + { AVS_Value v; avs_set_to_clip(&v, v0); return v; } +#endif +AVSC_INLINE AVS_Value avs_new_value_array(AVS_Value * v0, int size) + { AVS_Value v; v.type = 'a'; v.d.array = v0; v.array_size = size; return v; } + +///////////////////////////////////////////////////////////////////// +// +// AVS_Clip +// +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(void, avs_release_clip)(AVS_Clip *); +AVSC_API(AVS_Clip *, avs_copy_clip)(AVS_Clip *); + +AVSC_API(const char *, avs_clip_get_error)(AVS_Clip *); // return 0 if no error + +AVSC_API(const AVS_VideoInfo *, avs_get_video_info)(AVS_Clip *); + +AVSC_API(int, avs_get_version)(AVS_Clip *); + +AVSC_API(AVS_VideoFrame *, avs_get_frame)(AVS_Clip *, int n); +// The returned video frame must be released with avs_release_video_frame + +AVSC_API(int, avs_get_parity)(AVS_Clip *, int n); +// return field parity if field_based, else parity of first field in frame + +AVSC_API(int, avs_get_audio)(AVS_Clip *, void * buf, + INT64 start, INT64 count); +// start and count are in samples + +AVSC_API(int, avs_set_cache_hints)(AVS_Clip *, + int cachehints, size_t frame_range); +#if defined __cplusplus +} +#endif // __cplusplus + +// This is the callback type used by avs_add_function +typedef AVS_Value (AVSC_CC * AVS_ApplyFunc) + (AVS_ScriptEnvironment *, AVS_Value args, void * user_data); + +typedef struct AVS_FilterInfo AVS_FilterInfo; +struct AVS_FilterInfo +{ + // these members should not be modified outside of the AVS_ApplyFunc callback + AVS_Clip * child; + AVS_VideoInfo vi; + AVS_ScriptEnvironment * env; + AVS_VideoFrame * (AVSC_CC * get_frame)(AVS_FilterInfo *, int n); + int (AVSC_CC * get_parity)(AVS_FilterInfo *, int n); + int (AVSC_CC * get_audio)(AVS_FilterInfo *, void * buf, + INT64 start, INT64 count); + int (AVSC_CC * set_cache_hints)(AVS_FilterInfo *, int cachehints, + int frame_range); + void (AVSC_CC * free_filter)(AVS_FilterInfo *); + + // Should be set when ever there is an error to report. + // It is cleared before any of the above methods are called + const char * error; + // this is to store whatever and may be modified at will + void * user_data; +}; + +// Create a new filter +// fi is set to point to the AVS_FilterInfo so that you can +// modify it once it is initilized. +// store_child should generally be set to true. If it is not +// set than ALL methods (the function pointers) must be defined +// If it is set than you do not need to worry about freeing the child +// clip. +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(AVS_Clip *, avs_new_c_filter)(AVS_ScriptEnvironment * e, + AVS_FilterInfo * * fi, + AVS_Value child, int store_child); +#if defined __cplusplus +} +#endif // __cplusplus + + +///////////////////////////////////////////////////////////////////// +// +// AVS_ScriptEnvironment +// + +// For GetCPUFlags. These are backwards-compatible with those in VirtualDub. +enum { + /* slowest CPU to support extension */ + AVS_CPU_FORCE = 0x01, // N/A + AVS_CPU_FPU = 0x02, // 386/486DX + AVS_CPU_MMX = 0x04, // P55C, K6, PII + AVS_CPU_INTEGER_SSE = 0x08, // PIII, Athlon + AVS_CPU_SSE = 0x10, // PIII, Athlon XP/MP + AVS_CPU_SSE2 = 0x20, // PIV, Hammer + AVS_CPU_3DNOW = 0x40, // K6-2 + AVS_CPU_3DNOW_EXT = 0x80, // Athlon + AVS_CPU_X86_64 = 0xA0, // Hammer (note: equiv. to 3DNow + SSE2, + // which only Hammer will have anyway) +}; + +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(const char *, avs_get_error)(AVS_ScriptEnvironment *); // return 0 if no error + +AVSC_API(long, avs_get_cpu_flags)(AVS_ScriptEnvironment *); +AVSC_API(int, avs_check_version)(AVS_ScriptEnvironment *, int version); + +AVSC_API(char *, avs_save_string)(AVS_ScriptEnvironment *, const char* s, int length); +AVSC_API(char *, avs_sprintf)(AVS_ScriptEnvironment *, const char * fmt, ...); + +AVSC_API(char *, avs_vsprintf)(AVS_ScriptEnvironment *, const char * fmt, va_list val); + // note: val is really a va_list; I hope everyone typedefs va_list to a pointer + +AVSC_API(int, avs_add_function)(AVS_ScriptEnvironment *, + const char * name, const char * params, + AVS_ApplyFunc apply, void * user_data); + +AVSC_API(int, avs_function_exists)(AVS_ScriptEnvironment *, const char * name); + +AVSC_API(AVS_Value, avs_invoke)(AVS_ScriptEnvironment *, const char * name, + AVS_Value args, const char** arg_names); +// The returned value must be be released with avs_release_value + +AVSC_API(AVS_Value, avs_get_var)(AVS_ScriptEnvironment *, const char* name); +// The returned value must be be released with avs_release_value + +AVSC_API(int, avs_set_var)(AVS_ScriptEnvironment *, const char* name, AVS_Value val); + +AVSC_API(int, avs_set_global_var)(AVS_ScriptEnvironment *, const char* name, const AVS_Value val); + +//void avs_push_context(AVS_ScriptEnvironment *, int level=0); +//void avs_pop_context(AVS_ScriptEnvironment *); + +AVSC_API(AVS_VideoFrame *, avs_new_video_frame_a)(AVS_ScriptEnvironment *, + const AVS_VideoInfo * vi, int align); +// align should be at least 16 +#if defined __cplusplus +} +#endif // __cplusplus + +#ifndef AVSC_NO_DECLSPEC +AVSC_INLINE +AVS_VideoFrame * avs_new_video_frame(AVS_ScriptEnvironment * env, + const AVS_VideoInfo * vi) + {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} + +AVSC_INLINE +AVS_VideoFrame * avs_new_frame(AVS_ScriptEnvironment * env, + const AVS_VideoInfo * vi) + {return avs_new_video_frame_a(env,vi,AVS_FRAME_ALIGN);} +#endif + +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(int, avs_make_writable)(AVS_ScriptEnvironment *, AVS_VideoFrame * * pvf); + +AVSC_API(void, avs_bit_blt)(AVS_ScriptEnvironment *, unsigned char* dstp, int dst_pitch, const unsigned char* srcp, int src_pitch, int row_size, int height); + +typedef void (AVSC_CC *AVS_ShutdownFunc)(void* user_data, AVS_ScriptEnvironment * env); +AVSC_API(void, avs_at_exit)(AVS_ScriptEnvironment *, AVS_ShutdownFunc function, void * user_data); + +AVSC_API(AVS_VideoFrame *, avs_subframe)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height); +// The returned video frame must be be released + +AVSC_API(int, avs_set_memory_max)(AVS_ScriptEnvironment *, int mem); + +AVSC_API(int, avs_set_working_dir)(AVS_ScriptEnvironment *, const char * newdir); + +// avisynth.dll exports this; it's a way to use it as a library, without +// writing an AVS script or without going through AVIFile. +AVSC_API(AVS_ScriptEnvironment *, avs_create_script_environment)(int version); +#if defined __cplusplus +} +#endif // __cplusplus + +// this symbol is the entry point for the plugin and must +// be defined +AVSC_EXPORT +const char * AVSC_CC avisynth_c_plugin_init(AVS_ScriptEnvironment* env); + + +#if defined __cplusplus +extern "C" +{ +#endif // __cplusplus +AVSC_API(void, avs_delete_script_environment)(AVS_ScriptEnvironment *); + + +AVSC_API(AVS_VideoFrame *, avs_subframe_planar)(AVS_ScriptEnvironment *, AVS_VideoFrame * src, int rel_offset, int new_pitch, int new_row_size, int new_height, int rel_offsetU, int rel_offsetV, int new_pitchUV); +// The returned video frame must be be released +#if defined __cplusplus +} +#endif // __cplusplus + +#endif //__AVXSYNTH_C__ diff --git a/ffmpeg/compat/avisynth/windowsPorts/basicDataTypeConversions.h b/ffmpeg/compat/avisynth/windowsPorts/basicDataTypeConversions.h new file mode 100644 index 0000000..ff367d5 --- /dev/null +++ b/ffmpeg/compat/avisynth/windowsPorts/basicDataTypeConversions.h @@ -0,0 +1,85 @@ +#ifndef __DATA_TYPE_CONVERSIONS_H__ +#define __DATA_TYPE_CONVERSIONS_H__ + +#include +#include + +#ifdef __cplusplus +namespace avxsynth { +#endif // __cplusplus + +typedef int64_t __int64; +typedef int32_t __int32; +#ifdef __cplusplus +typedef bool BOOL; +#else +typedef uint32_t BOOL; +#endif // __cplusplus +typedef void* HMODULE; +typedef void* LPVOID; +typedef void* PVOID; +typedef PVOID HANDLE; +typedef HANDLE HWND; +typedef HANDLE HINSTANCE; +typedef void* HDC; +typedef void* HBITMAP; +typedef void* HICON; +typedef void* HFONT; +typedef void* HGDIOBJ; +typedef void* HBRUSH; +typedef void* HMMIO; +typedef void* HACMSTREAM; +typedef void* HACMDRIVER; +typedef void* HIC; +typedef void* HACMOBJ; +typedef HACMSTREAM* LPHACMSTREAM; +typedef void* HACMDRIVERID; +typedef void* LPHACMDRIVER; +typedef unsigned char BYTE; +typedef BYTE* LPBYTE; +typedef char TCHAR; +typedef TCHAR* LPTSTR; +typedef const TCHAR* LPCTSTR; +typedef char* LPSTR; +typedef LPSTR LPOLESTR; +typedef const char* LPCSTR; +typedef LPCSTR LPCOLESTR; +typedef wchar_t WCHAR; +typedef unsigned short WORD; +typedef unsigned int UINT; +typedef UINT MMRESULT; +typedef uint32_t DWORD; +typedef DWORD COLORREF; +typedef DWORD FOURCC; +typedef DWORD HRESULT; +typedef DWORD* LPDWORD; +typedef DWORD* DWORD_PTR; +typedef int32_t LONG; +typedef int32_t* LONG_PTR; +typedef LONG_PTR LRESULT; +typedef uint32_t ULONG; +typedef uint32_t* ULONG_PTR; +//typedef __int64_t intptr_t; +typedef uint64_t _fsize_t; + + +// +// Structures +// + +typedef struct _GUID { + DWORD Data1; + WORD Data2; + WORD Data3; + BYTE Data4[8]; +} GUID; + +typedef GUID REFIID; +typedef GUID CLSID; +typedef CLSID* LPCLSID; +typedef GUID IID; + +#ifdef __cplusplus +}; // namespace avxsynth +#endif // __cplusplus +#endif // __DATA_TYPE_CONVERSIONS_H__ diff --git a/ffmpeg/compat/avisynth/windowsPorts/windows2linux.h b/ffmpeg/compat/avisynth/windowsPorts/windows2linux.h new file mode 100644 index 0000000..5476afe --- /dev/null +++ b/ffmpeg/compat/avisynth/windowsPorts/windows2linux.h @@ -0,0 +1,77 @@ +#ifndef __WINDOWS2LINUX_H__ +#define __WINDOWS2LINUX_H__ + +/* + * LINUX SPECIFIC DEFINITIONS +*/ +// +// Data types conversions +// +#include +#include +#include "basicDataTypeConversions.h" + +#ifdef __cplusplus +namespace avxsynth { +#endif // __cplusplus +// +// purposefully define the following MSFT definitions +// to mean nothing (as they do not mean anything on Linux) +// +#define __stdcall +#define __cdecl +#define noreturn +#define __declspec(x) +#define STDAPI extern "C" HRESULT +#define STDMETHODIMP HRESULT __stdcall +#define STDMETHODIMP_(x) x __stdcall + +#define STDMETHOD(x) virtual HRESULT x +#define STDMETHOD_(a, x) virtual a x + +#ifndef TRUE +#define TRUE true +#endif + +#ifndef FALSE +#define FALSE false +#endif + +#define S_OK (0x00000000) +#define S_FALSE (0x00000001) +#define E_NOINTERFACE (0X80004002) +#define E_POINTER (0x80004003) +#define E_FAIL (0x80004005) +#define E_OUTOFMEMORY (0x8007000E) + +#define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1)) +#define FAILED(hr) ((hr) & 0x80000000) +#define SUCCEEDED(hr) (!FAILED(hr)) + + +// +// Functions +// +#define MAKEDWORD(a,b,c,d) ((a << 24) | (b << 16) | (c << 8) | (d)) +#define MAKEWORD(a,b) ((a << 8) | (b)) + +#define lstrlen strlen +#define lstrcpy strcpy +#define lstrcmpi strcasecmp +#define _stricmp strcasecmp +#define InterlockedIncrement(x) __sync_fetch_and_add((x), 1) +#define InterlockedDecrement(x) __sync_fetch_and_sub((x), 1) +// Windows uses (new, old) ordering but GCC has (old, new) +#define InterlockedCompareExchange(x,y,z) __sync_val_compare_and_swap(x,z,y) + +#define UInt32x32To64(a, b) ( (uint64_t) ( ((uint64_t)((uint32_t)(a))) * ((uint32_t)(b)) ) ) +#define Int64ShrlMod32(a, b) ( (uint64_t) ( (uint64_t)(a) >> (b) ) ) +#define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b)))) + +#define MulDiv(nNumber, nNumerator, nDenominator) (int32_t) (((int64_t) (nNumber) * (int64_t) (nNumerator) + (int64_t) ((nDenominator)/2)) / (int64_t) (nDenominator)) + +#ifdef __cplusplus +}; // namespace avxsynth +#endif // __cplusplus + +#endif // __WINDOWS2LINUX_H__ diff --git a/ffmpeg/compat/getopt.c b/ffmpeg/compat/getopt.c new file mode 100644 index 0000000..dd082ea --- /dev/null +++ b/ffmpeg/compat/getopt.c @@ -0,0 +1,86 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * This file was copied from the following newsgroup posting: + * + * Newsgroups: mod.std.unix + * Subject: public domain AT&T getopt source + * Date: 3 Nov 85 19:34:15 GMT + * + * Here's something you've all been waiting for: the AT&T public domain + * source for getopt(3). It is the code which was given out at the 1985 + * UNIFORUM conference in Dallas. I obtained it by electronic mail + * directly from AT&T. The people there assure me that it is indeed + * in the public domain. + */ + +#include +#include + +static int opterr = 1; +static int optind = 1; +static int optopt; +static char *optarg; + +#undef fprintf + +static int getopt(int argc, char *argv[], char *opts) +{ + static int sp = 1; + int c; + char *cp; + + if (sp == 1) { + if (optind >= argc || + argv[optind][0] != '-' || argv[optind][1] == '\0') + return EOF; + else if (!strcmp(argv[optind], "--")) { + optind++; + return EOF; + } + } + optopt = c = argv[optind][sp]; + if (c == ':' || (cp = strchr(opts, c)) == NULL) { + fprintf(stderr, ": illegal option -- %c\n", c); + if (argv[optind][++sp] == '\0') { + optind++; + sp = 1; + } + return '?'; + } + if (*++cp == ':') { + if (argv[optind][sp+1] != '\0') + optarg = &argv[optind++][sp+1]; + else if(++optind >= argc) { + fprintf(stderr, ": option requires an argument -- %c\n", c); + sp = 1; + return '?'; + } else + optarg = argv[optind++]; + sp = 1; + } else { + if (argv[optind][++sp] == '\0') { + sp = 1; + optind++; + } + optarg = NULL; + } + + return c; +} diff --git a/ffmpeg/compat/msvcrt/snprintf.c b/ffmpeg/compat/msvcrt/snprintf.c new file mode 100644 index 0000000..c64653f --- /dev/null +++ b/ffmpeg/compat/msvcrt/snprintf.c @@ -0,0 +1,71 @@ +/* + * C99-compatible snprintf() and vsnprintf() implementations + * Copyright (c) 2012 Ronald S. Bultje + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include + +#include "compat/va_copy.h" +#include "libavutil/error.h" + +#if defined(__MINGW32__) +#define EOVERFLOW EFBIG +#endif + +int avpriv_snprintf(char *s, size_t n, const char *fmt, ...) +{ + va_list ap; + int ret; + + va_start(ap, fmt); + ret = avpriv_vsnprintf(s, n, fmt, ap); + va_end(ap); + + return ret; +} + +int avpriv_vsnprintf(char *s, size_t n, const char *fmt, + va_list ap) +{ + int ret; + va_list ap_copy; + + if (n == 0) + return _vscprintf(fmt, ap); + else if (n > INT_MAX) + return AVERROR(EOVERFLOW); + + /* we use n - 1 here because if the buffer is not big enough, the MS + * runtime libraries don't add a terminating zero at the end. MSDN + * recommends to provide _snprintf/_vsnprintf() a buffer size that + * is one less than the actual buffer, and zero it before calling + * _snprintf/_vsnprintf() to workaround this problem. + * See http://msdn.microsoft.com/en-us/library/1kt27hek(v=vs.80).aspx */ + memset(s, 0, n); + va_copy(ap_copy, ap); + ret = _vsnprintf(s, n - 1, fmt, ap_copy); + va_end(ap_copy); + if (ret == -1) + ret = _vscprintf(fmt, ap); + + return ret; +} diff --git a/ffmpeg/compat/msvcrt/snprintf.h b/ffmpeg/compat/msvcrt/snprintf.h new file mode 100644 index 0000000..f02113c --- /dev/null +++ b/ffmpeg/compat/msvcrt/snprintf.h @@ -0,0 +1,38 @@ +/* + * C99-compatible snprintf() and vsnprintf() implementations + * Copyright (c) 2012 Ronald S. Bultje + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef COMPAT_SNPRINTF_H +#define COMPAT_SNPRINTF_H + +#include +#include + +int avpriv_snprintf(char *s, size_t n, const char *fmt, ...); +int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap); + +#undef snprintf +#undef _snprintf +#undef vsnprintf +#define snprintf avpriv_snprintf +#define _snprintf avpriv_snprintf +#define vsnprintf avpriv_vsnprintf + +#endif /* COMPAT_SNPRINTF_H */ diff --git a/ffmpeg/compat/plan9/head b/ffmpeg/compat/plan9/head new file mode 100755 index 0000000..2840b2d --- /dev/null +++ b/ffmpeg/compat/plan9/head @@ -0,0 +1,10 @@ +#!/bin/sh + +n=10 + +case "$1" in + -n) n=$2; shift 2 ;; + -n*) n=${1#-n}; shift ;; +esac + +exec sed ${n}q "$@" diff --git a/ffmpeg/compat/plan9/main.c b/ffmpeg/compat/plan9/main.c new file mode 100644 index 0000000..d46f96d --- /dev/null +++ b/ffmpeg/compat/plan9/main.c @@ -0,0 +1,34 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +int plan9_main(int argc, char **argv); + +#undef main +int main(int argc, char **argv) +{ + /* The setfcr() function in lib9 is broken, must use asm. */ +#ifdef __i386 + short fcr; + __asm__ volatile ("fstcw %0 \n" + "or $63, %0 \n" + "fldcw %0 \n" + : "=m"(fcr)); +#endif + + return plan9_main(argc, argv); +} diff --git a/ffmpeg/compat/plan9/printf b/ffmpeg/compat/plan9/printf new file mode 100755 index 0000000..1a70a9e --- /dev/null +++ b/ffmpeg/compat/plan9/printf @@ -0,0 +1,2 @@ +#!/bin/sh +exec awk "BEGIN { for (i = 2; i < ARGC; i++) printf \"$1\", ARGV[i] }" "$@" diff --git a/ffmpeg/compat/strtod.c b/ffmpeg/compat/strtod.c new file mode 100644 index 0000000..3a9452e --- /dev/null +++ b/ffmpeg/compat/strtod.c @@ -0,0 +1,93 @@ +/* + * C99-compatible strtod() implementation + * Copyright (c) 2012 Ronald S. Bultje + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#include "libavutil/avstring.h" +#include "libavutil/mathematics.h" + +static char *check_nan_suffix(char *s) +{ + char *start = s; + + if (*s++ != '(') + return start; + + while ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') || + (*s >= '0' && *s <= '9') || *s == '_') + s++; + + return *s == ')' ? s + 1 : start; +} + +#undef strtod +double strtod(const char *, char **); + +double avpriv_strtod(const char *nptr, char **endptr) +{ + char *end; + double res; + + /* Skip leading spaces */ + while (av_isspace(*nptr)) + nptr++; + + if (!av_strncasecmp(nptr, "infinity", 8)) { + end = nptr + 8; + res = INFINITY; + } else if (!av_strncasecmp(nptr, "inf", 3)) { + end = nptr + 3; + res = INFINITY; + } else if (!av_strncasecmp(nptr, "+infinity", 9)) { + end = nptr + 9; + res = INFINITY; + } else if (!av_strncasecmp(nptr, "+inf", 4)) { + end = nptr + 4; + res = INFINITY; + } else if (!av_strncasecmp(nptr, "-infinity", 9)) { + end = nptr + 9; + res = -INFINITY; + } else if (!av_strncasecmp(nptr, "-inf", 4)) { + end = nptr + 4; + res = -INFINITY; + } else if (!av_strncasecmp(nptr, "nan", 3)) { + end = check_nan_suffix(nptr + 3); + res = NAN; + } else if (!av_strncasecmp(nptr, "+nan", 4) || + !av_strncasecmp(nptr, "-nan", 4)) { + end = check_nan_suffix(nptr + 4); + res = NAN; + } else if (!av_strncasecmp(nptr, "0x", 2) || + !av_strncasecmp(nptr, "-0x", 3) || + !av_strncasecmp(nptr, "+0x", 3)) { + /* FIXME this doesn't handle exponents, non-integers (float/double) + * and numbers too large for long long */ + res = strtoll(nptr, &end, 16); + } else { + res = strtod(nptr, &end); + } + + if (endptr) + *endptr = end; + + return res; +} diff --git a/ffmpeg/compat/tms470/math.h b/ffmpeg/compat/tms470/math.h new file mode 100644 index 0000000..1104d74 --- /dev/null +++ b/ffmpeg/compat/tms470/math.h @@ -0,0 +1,7 @@ +#include_next + +#undef INFINITY +#undef NAN + +#define INFINITY (*(const float*)((const unsigned []){ 0x7f800000 })) +#define NAN (*(const float*)((const unsigned []){ 0x7fc00000 })) diff --git a/ffmpeg/compat/va_copy.h b/ffmpeg/compat/va_copy.h new file mode 100644 index 0000000..f894771 --- /dev/null +++ b/ffmpeg/compat/va_copy.h @@ -0,0 +1,26 @@ +/* + * MSVC Compatible va_copy macro + * Copyright (c) 2012 Derek Buitenhuis + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if !defined(va_copy) && defined(_MSC_VER) +#define va_copy(dst, src) ((dst) = (src)) +#endif diff --git a/ffmpeg/config.asm b/ffmpeg/config.asm new file mode 100644 index 0000000..a7fdac6 --- /dev/null +++ b/ffmpeg/config.asm @@ -0,0 +1,1512 @@ +%define ARCH_AARCH64 0 +%define ARCH_ALPHA 0 +%define ARCH_ARM 0 +%define ARCH_AVR32 0 +%define ARCH_AVR32_AP 0 +%define ARCH_AVR32_UC 0 +%define ARCH_BFIN 0 +%define ARCH_IA64 0 +%define ARCH_M68K 0 +%define ARCH_MIPS 0 +%define ARCH_MIPS64 0 +%define ARCH_PARISC 0 +%define ARCH_PPC 0 +%define ARCH_PPC64 0 +%define ARCH_S390 0 +%define ARCH_SH4 0 +%define ARCH_SPARC 0 +%define ARCH_SPARC64 0 +%define ARCH_TILEGX 0 +%define ARCH_TILEPRO 0 +%define ARCH_TOMI 0 +%define ARCH_X86 1 +%define ARCH_X86_32 0 +%define ARCH_X86_64 1 +%define HAVE_ARMV5TE 0 +%define HAVE_ARMV6 0 +%define HAVE_ARMV6T2 0 +%define HAVE_NEON 0 +%define HAVE_VFP 0 +%define HAVE_VFPV3 0 +%define HAVE_AMD3DNOW 1 +%define HAVE_AMD3DNOWEXT 1 +%define HAVE_AVX 1 +%define HAVE_FMA4 1 +%define HAVE_MMX 1 +%define HAVE_MMXEXT 1 +%define HAVE_SSE 1 +%define HAVE_SSE2 1 +%define HAVE_SSE3 1 +%define HAVE_SSE4 1 +%define HAVE_SSE42 1 +%define HAVE_SSSE3 1 +%define HAVE_ALTIVEC 0 +%define HAVE_PPC4XX 0 +%define HAVE_VIS 0 +%define HAVE_MIPSFPU 0 +%define HAVE_MIPS32R2 0 +%define HAVE_MIPSDSPR1 0 +%define HAVE_MIPSDSPR2 0 +%define HAVE_ARMV5TE_EXTERNAL 0 +%define HAVE_ARMV6_EXTERNAL 0 +%define HAVE_ARMV6T2_EXTERNAL 0 +%define HAVE_NEON_EXTERNAL 0 +%define HAVE_VFP_EXTERNAL 0 +%define HAVE_VFPV3_EXTERNAL 0 +%define HAVE_AMD3DNOW_EXTERNAL 1 +%define HAVE_AMD3DNOWEXT_EXTERNAL 1 +%define HAVE_AVX_EXTERNAL 1 +%define HAVE_FMA4_EXTERNAL 1 +%define HAVE_MMX_EXTERNAL 1 +%define HAVE_MMXEXT_EXTERNAL 1 +%define HAVE_SSE_EXTERNAL 1 +%define HAVE_SSE2_EXTERNAL 1 +%define HAVE_SSE3_EXTERNAL 1 +%define HAVE_SSE4_EXTERNAL 1 +%define HAVE_SSE42_EXTERNAL 1 +%define HAVE_SSSE3_EXTERNAL 1 +%define HAVE_ALTIVEC_EXTERNAL 0 +%define HAVE_PPC4XX_EXTERNAL 0 +%define HAVE_VIS_EXTERNAL 0 +%define HAVE_MIPSFPU_EXTERNAL 0 +%define HAVE_MIPS32R2_EXTERNAL 0 +%define HAVE_MIPSDSPR1_EXTERNAL 0 +%define HAVE_MIPSDSPR2_EXTERNAL 0 +%define HAVE_ARMV5TE_INLINE 0 +%define HAVE_ARMV6_INLINE 0 +%define HAVE_ARMV6T2_INLINE 0 +%define HAVE_NEON_INLINE 0 +%define HAVE_VFP_INLINE 0 +%define HAVE_VFPV3_INLINE 0 +%define HAVE_AMD3DNOW_INLINE 1 +%define HAVE_AMD3DNOWEXT_INLINE 1 +%define HAVE_AVX_INLINE 1 +%define HAVE_FMA4_INLINE 1 +%define HAVE_MMX_INLINE 1 +%define HAVE_MMXEXT_INLINE 1 +%define HAVE_SSE_INLINE 1 +%define HAVE_SSE2_INLINE 1 +%define HAVE_SSE3_INLINE 1 +%define HAVE_SSE4_INLINE 1 +%define HAVE_SSE42_INLINE 1 +%define HAVE_SSSE3_INLINE 1 +%define HAVE_ALTIVEC_INLINE 0 +%define HAVE_PPC4XX_INLINE 0 +%define HAVE_VIS_INLINE 0 +%define HAVE_MIPSFPU_INLINE 0 +%define HAVE_MIPS32R2_INLINE 0 +%define HAVE_MIPSDSPR1_INLINE 0 +%define HAVE_MIPSDSPR2_INLINE 0 +%define HAVE_INLINE_ASM 1 +%define HAVE_SYMVER 1 +%define HAVE_YASM 1 +%define HAVE_BIGENDIAN 0 +%define HAVE_FAST_UNALIGNED 1 +%define HAVE_INCOMPATIBLE_FORK_ABI 0 +%define HAVE_PTHREADS 1 +%define HAVE_W32THREADS 0 +%define HAVE_OS2THREADS 0 +%define HAVE_ATANF 1 +%define HAVE_ATAN2F 1 +%define HAVE_CBRT 1 +%define HAVE_CBRTF 1 +%define HAVE_COSF 1 +%define HAVE_EXP2 1 +%define HAVE_EXP2F 1 +%define HAVE_EXPF 1 +%define HAVE_ISINF 1 +%define HAVE_ISNAN 1 +%define HAVE_LDEXPF 1 +%define HAVE_LLRINT 1 +%define HAVE_LLRINTF 1 +%define HAVE_LOG2 1 +%define HAVE_LOG2F 1 +%define HAVE_LOG10F 1 +%define HAVE_LRINT 1 +%define HAVE_LRINTF 1 +%define HAVE_POWF 1 +%define HAVE_RINT 1 +%define HAVE_ROUND 1 +%define HAVE_ROUNDF 1 +%define HAVE_SINF 1 +%define HAVE_TRUNC 1 +%define HAVE_TRUNCF 1 +%define HAVE_ACCESS 1 +%define HAVE_ALIGNED_MALLOC 0 +%define HAVE_ALIGNED_STACK 1 +%define HAVE_ALSA_ASOUNDLIB_H 0 +%define HAVE_ALTIVEC_H 0 +%define HAVE_ARPA_INET_H 1 +%define HAVE_ASM_MOD_Q 0 +%define HAVE_ASM_MOD_Y 0 +%define HAVE_ASM_TYPES_H 1 +%define HAVE_ATTRIBUTE_MAY_ALIAS 1 +%define HAVE_ATTRIBUTE_PACKED 1 +%define HAVE_CDIO_PARANOIA_H 0 +%define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +%define HAVE_CLOCK_GETTIME 1 +%define HAVE_CLOSESOCKET 0 +%define HAVE_CMOV 1 +%define HAVE_COMMANDLINETOARGVW 0 +%define HAVE_CPUNOP 1 +%define HAVE_CRYPTGENRANDOM 0 +%define HAVE_DCBZL 0 +%define HAVE_DEV_BKTR_IOCTL_BT848_H 0 +%define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 +%define HAVE_DEV_IC_BT8XX_H 0 +%define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 +%define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 +%define HAVE_DIRECT_H 0 +%define HAVE_DLFCN_H 1 +%define HAVE_DLOPEN 1 +%define HAVE_DOS_PATHS 0 +%define HAVE_DXVA_H 0 +%define HAVE_EBP_AVAILABLE 1 +%define HAVE_EBX_AVAILABLE 1 +%define HAVE_FAST_64BIT 1 +%define HAVE_FAST_CLZ 1 +%define HAVE_FAST_CMOV 1 +%define HAVE_FCNTL 1 +%define HAVE_FORK 1 +%define HAVE_GETADDRINFO 1 +%define HAVE_GETHRTIME 0 +%define HAVE_GETOPT 1 +%define HAVE_GETPROCESSAFFINITYMASK 0 +%define HAVE_GETPROCESSMEMORYINFO 0 +%define HAVE_GETPROCESSTIMES 0 +%define HAVE_GETSYSTEMTIMEASFILETIME 0 +%define HAVE_GETRUSAGE 1 +%define HAVE_GETSERVBYPORT 1 +%define HAVE_GETTIMEOFDAY 1 +%define HAVE_GLOB 1 +%define HAVE_GNU_AS 1 +%define HAVE_GSM_H 0 +%define HAVE_IBM_ASM 0 +%define HAVE_INET_ATON 1 +%define HAVE_IO_H 0 +%define HAVE_ISATTY 1 +%define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 +%define HAVE_KBHIT 0 +%define HAVE_LDBRX 0 +%define HAVE_LIBDC1394_1 0 +%define HAVE_LIBDC1394_2 0 +%define HAVE_LOCAL_ALIGNED_16 1 +%define HAVE_LOCAL_ALIGNED_8 1 +%define HAVE_LOCALTIME_R 1 +%define HAVE_LOONGSON 0 +%define HAVE_LZO1X_999_COMPRESS 0 +%define HAVE_MACHINE_IOCTL_BT848_H 0 +%define HAVE_MACHINE_IOCTL_METEOR_H 0 +%define HAVE_MACHINE_RW_BARRIER 0 +%define HAVE_MAKEINFO 0 +%define HAVE_MALLOC_H 1 +%define HAVE_MAPVIEWOFFILE 0 +%define HAVE_MEMALIGN 1 +%define HAVE_MEMORYBARRIER 0 +%define HAVE_MKSTEMP 1 +%define HAVE_MM_EMPTY 1 +%define HAVE_MMAP 1 +%define HAVE_MPROTECT 1 +%define HAVE_MSVCRT 0 +%define HAVE_NANOSLEEP 1 +%define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +%define HAVE_PEEKNAMEDPIPE 0 +%define HAVE_PERL 1 +%define HAVE_POD2MAN 1 +%define HAVE_POLL_H 1 +%define HAVE_POSIX_MEMALIGN 1 +%define HAVE_PTHREAD_CANCEL 1 +%define HAVE_RDTSC 0 +%define HAVE_RSYNC_CONTIMEOUT 1 +%define HAVE_SCHED_GETAFFINITY 1 +%define HAVE_SDL 0 +%define HAVE_SETCONSOLETEXTATTRIBUTE 0 +%define HAVE_SETMODE 0 +%define HAVE_SETRLIMIT 1 +%define HAVE_SLEEP 0 +%define HAVE_SNDIO_H 0 +%define HAVE_SOCKLEN_T 1 +%define HAVE_SOUNDCARD_H 0 +%define HAVE_STRERROR_R 1 +%define HAVE_STRUCT_ADDRINFO 1 +%define HAVE_STRUCT_GROUP_SOURCE_REQ 1 +%define HAVE_STRUCT_IP_MREQ_SOURCE 1 +%define HAVE_STRUCT_IPV6_MREQ 1 +%define HAVE_STRUCT_POLLFD 1 +%define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 +%define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 +%define HAVE_STRUCT_SOCKADDR_IN6 1 +%define HAVE_STRUCT_SOCKADDR_SA_LEN 0 +%define HAVE_STRUCT_SOCKADDR_STORAGE 1 +%define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 +%define HAVE_SYMVER_ASM_LABEL 0 +%define HAVE_SYMVER_GNU_ASM 1 +%define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 +%define HAVE_SYSCONF 1 +%define HAVE_SYSCTL 1 +%define HAVE_SYS_MMAN_H 1 +%define HAVE_SYS_PARAM_H 1 +%define HAVE_SYS_RESOURCE_H 1 +%define HAVE_SYS_SELECT_H 1 +%define HAVE_SYS_SOUNDCARD_H 1 +%define HAVE_SYS_TIME_H 1 +%define HAVE_SYS_VIDEOIO_H 0 +%define HAVE_TERMIOS_H 1 +%define HAVE_TEXI2HTML 0 +%define HAVE_THREADS 1 +%define HAVE_UNISTD_H 1 +%define HAVE_USLEEP 1 +%define HAVE_VFP_ARGS 0 +%define HAVE_VIRTUALALLOC 0 +%define HAVE_WINDOWS_H 0 +%define HAVE_WINSOCK2_H 0 +%define HAVE_XFORM_ASM 0 +%define HAVE_XMM_CLOBBERS 1 +%define CONFIG_BSFS 1 +%define CONFIG_DECODERS 1 +%define CONFIG_DEMUXERS 1 +%define CONFIG_ENCODERS 1 +%define CONFIG_FILTERS 1 +%define CONFIG_HWACCELS 0 +%define CONFIG_INDEVS 1 +%define CONFIG_MUXERS 1 +%define CONFIG_OUTDEVS 1 +%define CONFIG_PARSERS 1 +%define CONFIG_PROTOCOLS 1 +%define CONFIG_DOC 1 +%define CONFIG_HTMLPAGES 0 +%define CONFIG_MANPAGES 1 +%define CONFIG_PODPAGES 1 +%define CONFIG_TXTPAGES 0 +%define CONFIG_AVISYNTH 0 +%define CONFIG_BZLIB 0 +%define CONFIG_CRYSTALHD 0 +%define CONFIG_FONTCONFIG 0 +%define CONFIG_FREI0R 0 +%define CONFIG_GNUTLS 0 +%define CONFIG_ICONV 1 +%define CONFIG_LIBAACPLUS 0 +%define CONFIG_LIBASS 0 +%define CONFIG_LIBBLURAY 0 +%define CONFIG_LIBCACA 0 +%define CONFIG_LIBCDIO 0 +%define CONFIG_LIBCELT 0 +%define CONFIG_LIBDC1394 0 +%define CONFIG_LIBFAAC 1 +%define CONFIG_LIBFDK_AAC 0 +%define CONFIG_LIBFLITE 0 +%define CONFIG_LIBFREETYPE 0 +%define CONFIG_LIBGSM 0 +%define CONFIG_LIBIEC61883 0 +%define CONFIG_LIBILBC 0 +%define CONFIG_LIBMODPLUG 0 +%define CONFIG_LIBMP3LAME 1 +%define CONFIG_LIBNUT 0 +%define CONFIG_LIBOPENCORE_AMRNB 0 +%define CONFIG_LIBOPENCORE_AMRWB 0 +%define CONFIG_LIBOPENCV 0 +%define CONFIG_LIBOPENJPEG 0 +%define CONFIG_LIBOPUS 0 +%define CONFIG_LIBPULSE 0 +%define CONFIG_LIBRTMP 0 +%define CONFIG_LIBSCHROEDINGER 1 +%define CONFIG_LIBSOXR 0 +%define CONFIG_LIBSPEEX 0 +%define CONFIG_LIBSTAGEFRIGHT_H264 0 +%define CONFIG_LIBTHEORA 1 +%define CONFIG_LIBTWOLAME 0 +%define CONFIG_LIBUTVIDEO 0 +%define CONFIG_LIBV4L2 0 +%define CONFIG_LIBVO_AACENC 0 +%define CONFIG_LIBVO_AMRWBENC 0 +%define CONFIG_LIBVORBIS 1 +%define CONFIG_LIBVPX 0 +%define CONFIG_LIBX264 1 +%define CONFIG_LIBXAVS 0 +%define CONFIG_LIBXVID 1 +%define CONFIG_OPENAL 0 +%define CONFIG_OPENSSL 0 +%define CONFIG_X11GRAB 1 +%define CONFIG_ZLIB 1 +%define CONFIG_DXVA2 0 +%define CONFIG_VAAPI 0 +%define CONFIG_VDA 0 +%define CONFIG_VDPAU 0 +%define CONFIG_AVCODEC 1 +%define CONFIG_AVDEVICE 1 +%define CONFIG_AVFILTER 1 +%define CONFIG_AVFORMAT 1 +%define CONFIG_AVRESAMPLE 0 +%define CONFIG_AVUTIL 1 +%define CONFIG_POSTPROC 1 +%define CONFIG_SWRESAMPLE 1 +%define CONFIG_SWSCALE 1 +%define CONFIG_FFPLAY 0 +%define CONFIG_FFPROBE 1 +%define CONFIG_FFSERVER 1 +%define CONFIG_FFMPEG 1 +%define CONFIG_DCT 1 +%define CONFIG_DWT 1 +%define CONFIG_FAST_UNALIGNED 1 +%define CONFIG_FFT 1 +%define CONFIG_FTRAPV 0 +%define CONFIG_GPL 1 +%define CONFIG_GRAY 0 +%define CONFIG_HARDCODED_TABLES 0 +%define CONFIG_INCOMPATIBLE_FORK_ABI 0 +%define CONFIG_LSP 1 +%define CONFIG_LZO 1 +%define CONFIG_MDCT 1 +%define CONFIG_MEMALIGN_HACK 0 +%define CONFIG_MEMORY_POISONING 0 +%define CONFIG_NETWORK 1 +%define CONFIG_NONFREE 1 +%define CONFIG_PIC 1 +%define CONFIG_RDFT 1 +%define CONFIG_RUNTIME_CPUDETECT 1 +%define CONFIG_SAFE_BITSTREAM_READER 1 +%define CONFIG_SHARED 1 +%define CONFIG_SMALL 0 +%define CONFIG_SRAM 0 +%define CONFIG_STATIC 1 +%define CONFIG_SWSCALE_ALPHA 1 +%define CONFIG_THUMB 0 +%define CONFIG_VERSION3 0 +%define CONFIG_XMM_CLOBBER_TEST 0 +%define CONFIG_AANDCTTABLES 1 +%define CONFIG_AC3DSP 1 +%define CONFIG_AUDIO_FRAME_QUEUE 1 +%define CONFIG_DSPUTIL 1 +%define CONFIG_ERROR_RESILIENCE 1 +%define CONFIG_FRAME_THREAD_ENCODER 1 +%define CONFIG_GCRYPT 0 +%define CONFIG_GOLOMB 1 +%define CONFIG_GPLV3 0 +%define CONFIG_H264CHROMA 1 +%define CONFIG_H264DSP 1 +%define CONFIG_H264PRED 1 +%define CONFIG_H264QPEL 1 +%define CONFIG_HPELDSP 1 +%define CONFIG_HUFFMAN 1 +%define CONFIG_LGPLV3 0 +%define CONFIG_LPC 1 +%define CONFIG_MPEGAUDIO 1 +%define CONFIG_MPEGAUDIODSP 1 +%define CONFIG_MPEGVIDEO 1 +%define CONFIG_MPEGVIDEOENC 1 +%define CONFIG_NETTLE 0 +%define CONFIG_RANGECODER 1 +%define CONFIG_RTPDEC 1 +%define CONFIG_RTPENC_CHAIN 1 +%define CONFIG_SINEWIN 1 +%define CONFIG_VIDEODSP 1 +%define CONFIG_VP3DSP 1 +%define CONFIG_AAC_ADTSTOASC_BSF 1 +%define CONFIG_CHOMP_BSF 1 +%define CONFIG_DUMP_EXTRADATA_BSF 1 +%define CONFIG_H264_MP4TOANNEXB_BSF 1 +%define CONFIG_IMX_DUMP_HEADER_BSF 1 +%define CONFIG_MJPEG2JPEG_BSF 1 +%define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 +%define CONFIG_MP3_HEADER_COMPRESS_BSF 1 +%define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 +%define CONFIG_MOV2TEXTSUB_BSF 1 +%define CONFIG_NOISE_BSF 1 +%define CONFIG_REMOVE_EXTRADATA_BSF 1 +%define CONFIG_TEXT2MOVSUB_BSF 1 +%define CONFIG_AASC_DECODER 1 +%define CONFIG_AMV_DECODER 1 +%define CONFIG_ANM_DECODER 1 +%define CONFIG_ANSI_DECODER 1 +%define CONFIG_ASV1_DECODER 1 +%define CONFIG_ASV2_DECODER 1 +%define CONFIG_AURA_DECODER 1 +%define CONFIG_AURA2_DECODER 1 +%define CONFIG_AVRP_DECODER 1 +%define CONFIG_AVRN_DECODER 1 +%define CONFIG_AVS_DECODER 1 +%define CONFIG_AVUI_DECODER 1 +%define CONFIG_AYUV_DECODER 1 +%define CONFIG_BETHSOFTVID_DECODER 1 +%define CONFIG_BFI_DECODER 1 +%define CONFIG_BINK_DECODER 1 +%define CONFIG_BMP_DECODER 1 +%define CONFIG_BMV_VIDEO_DECODER 1 +%define CONFIG_BRENDER_PIX_DECODER 1 +%define CONFIG_C93_DECODER 1 +%define CONFIG_CAVS_DECODER 1 +%define CONFIG_CDGRAPHICS_DECODER 1 +%define CONFIG_CDXL_DECODER 1 +%define CONFIG_CINEPAK_DECODER 1 +%define CONFIG_CLJR_DECODER 1 +%define CONFIG_CLLC_DECODER 1 +%define CONFIG_COMFORTNOISE_DECODER 1 +%define CONFIG_CPIA_DECODER 1 +%define CONFIG_CSCD_DECODER 1 +%define CONFIG_CYUV_DECODER 1 +%define CONFIG_DFA_DECODER 1 +%define CONFIG_DIRAC_DECODER 1 +%define CONFIG_DNXHD_DECODER 1 +%define CONFIG_DPX_DECODER 1 +%define CONFIG_DSICINVIDEO_DECODER 1 +%define CONFIG_DVVIDEO_DECODER 1 +%define CONFIG_DXA_DECODER 1 +%define CONFIG_DXTORY_DECODER 1 +%define CONFIG_EACMV_DECODER 1 +%define CONFIG_EAMAD_DECODER 1 +%define CONFIG_EATGQ_DECODER 1 +%define CONFIG_EATGV_DECODER 1 +%define CONFIG_EATQI_DECODER 1 +%define CONFIG_EIGHTBPS_DECODER 1 +%define CONFIG_EIGHTSVX_EXP_DECODER 1 +%define CONFIG_EIGHTSVX_FIB_DECODER 1 +%define CONFIG_ESCAPE124_DECODER 1 +%define CONFIG_ESCAPE130_DECODER 1 +%define CONFIG_EXR_DECODER 1 +%define CONFIG_FFV1_DECODER 1 +%define CONFIG_FFVHUFF_DECODER 1 +%define CONFIG_FLASHSV_DECODER 1 +%define CONFIG_FLASHSV2_DECODER 1 +%define CONFIG_FLIC_DECODER 1 +%define CONFIG_FLV_DECODER 1 +%define CONFIG_FOURXM_DECODER 1 +%define CONFIG_FRAPS_DECODER 1 +%define CONFIG_FRWU_DECODER 1 +%define CONFIG_GIF_DECODER 1 +%define CONFIG_H261_DECODER 1 +%define CONFIG_H263_DECODER 1 +%define CONFIG_H263I_DECODER 1 +%define CONFIG_H263P_DECODER 1 +%define CONFIG_H264_DECODER 1 +%define CONFIG_H264_CRYSTALHD_DECODER 0 +%define CONFIG_H264_VDA_DECODER 0 +%define CONFIG_H264_VDPAU_DECODER 0 +%define CONFIG_HUFFYUV_DECODER 1 +%define CONFIG_IDCIN_DECODER 1 +%define CONFIG_IFF_BYTERUN1_DECODER 1 +%define CONFIG_IFF_ILBM_DECODER 1 +%define CONFIG_INDEO2_DECODER 1 +%define CONFIG_INDEO3_DECODER 1 +%define CONFIG_INDEO4_DECODER 1 +%define CONFIG_INDEO5_DECODER 1 +%define CONFIG_INTERPLAY_VIDEO_DECODER 1 +%define CONFIG_JPEG2000_DECODER 1 +%define CONFIG_JPEGLS_DECODER 1 +%define CONFIG_JV_DECODER 1 +%define CONFIG_KGV1_DECODER 1 +%define CONFIG_KMVC_DECODER 1 +%define CONFIG_LAGARITH_DECODER 1 +%define CONFIG_LOCO_DECODER 1 +%define CONFIG_MDEC_DECODER 1 +%define CONFIG_MIMIC_DECODER 1 +%define CONFIG_MJPEG_DECODER 1 +%define CONFIG_MJPEGB_DECODER 1 +%define CONFIG_MMVIDEO_DECODER 1 +%define CONFIG_MOTIONPIXELS_DECODER 1 +%define CONFIG_MPEG_XVMC_DECODER 1 +%define CONFIG_MPEG1VIDEO_DECODER 1 +%define CONFIG_MPEG2VIDEO_DECODER 1 +%define CONFIG_MPEG4_DECODER 1 +%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +%define CONFIG_MPEG4_VDPAU_DECODER 0 +%define CONFIG_MPEGVIDEO_DECODER 1 +%define CONFIG_MPEG_VDPAU_DECODER 0 +%define CONFIG_MPEG1_VDPAU_DECODER 0 +%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +%define CONFIG_MSA1_DECODER 1 +%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +%define CONFIG_MSMPEG4V1_DECODER 1 +%define CONFIG_MSMPEG4V2_DECODER 1 +%define CONFIG_MSMPEG4V3_DECODER 1 +%define CONFIG_MSRLE_DECODER 1 +%define CONFIG_MSS1_DECODER 1 +%define CONFIG_MSS2_DECODER 1 +%define CONFIG_MSVIDEO1_DECODER 1 +%define CONFIG_MSZH_DECODER 1 +%define CONFIG_MTS2_DECODER 1 +%define CONFIG_MVC1_DECODER 1 +%define CONFIG_MVC2_DECODER 1 +%define CONFIG_MXPEG_DECODER 1 +%define CONFIG_NUV_DECODER 1 +%define CONFIG_PAF_VIDEO_DECODER 1 +%define CONFIG_PAM_DECODER 1 +%define CONFIG_PBM_DECODER 1 +%define CONFIG_PCX_DECODER 1 +%define CONFIG_PGM_DECODER 1 +%define CONFIG_PGMYUV_DECODER 1 +%define CONFIG_PICTOR_DECODER 1 +%define CONFIG_PNG_DECODER 1 +%define CONFIG_PPM_DECODER 1 +%define CONFIG_PRORES_DECODER 1 +%define CONFIG_PRORES_LGPL_DECODER 1 +%define CONFIG_PTX_DECODER 1 +%define CONFIG_QDRAW_DECODER 1 +%define CONFIG_QPEG_DECODER 1 +%define CONFIG_QTRLE_DECODER 1 +%define CONFIG_R10K_DECODER 1 +%define CONFIG_R210_DECODER 1 +%define CONFIG_RAWVIDEO_DECODER 1 +%define CONFIG_RL2_DECODER 1 +%define CONFIG_ROQ_DECODER 1 +%define CONFIG_RPZA_DECODER 1 +%define CONFIG_RV10_DECODER 1 +%define CONFIG_RV20_DECODER 1 +%define CONFIG_RV30_DECODER 1 +%define CONFIG_RV40_DECODER 1 +%define CONFIG_S302M_DECODER 1 +%define CONFIG_SANM_DECODER 1 +%define CONFIG_SGI_DECODER 1 +%define CONFIG_SGIRLE_DECODER 1 +%define CONFIG_SMACKER_DECODER 1 +%define CONFIG_SMC_DECODER 1 +%define CONFIG_SNOW_DECODER 1 +%define CONFIG_SP5X_DECODER 1 +%define CONFIG_SUNRAST_DECODER 1 +%define CONFIG_SVQ1_DECODER 1 +%define CONFIG_SVQ3_DECODER 1 +%define CONFIG_TARGA_DECODER 1 +%define CONFIG_TARGA_Y216_DECODER 1 +%define CONFIG_THEORA_DECODER 1 +%define CONFIG_THP_DECODER 1 +%define CONFIG_TIERTEXSEQVIDEO_DECODER 1 +%define CONFIG_TIFF_DECODER 1 +%define CONFIG_TMV_DECODER 1 +%define CONFIG_TRUEMOTION1_DECODER 1 +%define CONFIG_TRUEMOTION2_DECODER 1 +%define CONFIG_TSCC_DECODER 1 +%define CONFIG_TSCC2_DECODER 1 +%define CONFIG_TXD_DECODER 1 +%define CONFIG_ULTI_DECODER 1 +%define CONFIG_UTVIDEO_DECODER 1 +%define CONFIG_V210_DECODER 1 +%define CONFIG_V210X_DECODER 1 +%define CONFIG_V308_DECODER 1 +%define CONFIG_V408_DECODER 1 +%define CONFIG_V410_DECODER 1 +%define CONFIG_VB_DECODER 1 +%define CONFIG_VBLE_DECODER 1 +%define CONFIG_VC1_DECODER 1 +%define CONFIG_VC1_CRYSTALHD_DECODER 0 +%define CONFIG_VC1_VDPAU_DECODER 0 +%define CONFIG_VC1IMAGE_DECODER 1 +%define CONFIG_VCR1_DECODER 1 +%define CONFIG_VMDVIDEO_DECODER 1 +%define CONFIG_VMNC_DECODER 1 +%define CONFIG_VP3_DECODER 1 +%define CONFIG_VP5_DECODER 1 +%define CONFIG_VP6_DECODER 1 +%define CONFIG_VP6A_DECODER 1 +%define CONFIG_VP6F_DECODER 1 +%define CONFIG_VP8_DECODER 1 +%define CONFIG_VQA_DECODER 1 +%define CONFIG_WMV1_DECODER 1 +%define CONFIG_WMV2_DECODER 1 +%define CONFIG_WMV3_DECODER 1 +%define CONFIG_WMV3_CRYSTALHD_DECODER 0 +%define CONFIG_WMV3_VDPAU_DECODER 0 +%define CONFIG_WMV3IMAGE_DECODER 1 +%define CONFIG_WNV1_DECODER 1 +%define CONFIG_XAN_WC3_DECODER 1 +%define CONFIG_XAN_WC4_DECODER 1 +%define CONFIG_XBM_DECODER 1 +%define CONFIG_XFACE_DECODER 1 +%define CONFIG_XL_DECODER 1 +%define CONFIG_XWD_DECODER 1 +%define CONFIG_Y41P_DECODER 1 +%define CONFIG_YOP_DECODER 1 +%define CONFIG_YUV4_DECODER 1 +%define CONFIG_ZERO12V_DECODER 1 +%define CONFIG_ZEROCODEC_DECODER 1 +%define CONFIG_ZLIB_DECODER 1 +%define CONFIG_ZMBV_DECODER 1 +%define CONFIG_AAC_DECODER 1 +%define CONFIG_AAC_LATM_DECODER 1 +%define CONFIG_AC3_DECODER 1 +%define CONFIG_ALAC_DECODER 1 +%define CONFIG_ALS_DECODER 1 +%define CONFIG_AMRNB_DECODER 1 +%define CONFIG_AMRWB_DECODER 1 +%define CONFIG_APE_DECODER 1 +%define CONFIG_ATRAC1_DECODER 1 +%define CONFIG_ATRAC3_DECODER 1 +%define CONFIG_BINKAUDIO_DCT_DECODER 1 +%define CONFIG_BINKAUDIO_RDFT_DECODER 1 +%define CONFIG_BMV_AUDIO_DECODER 1 +%define CONFIG_COOK_DECODER 1 +%define CONFIG_DCA_DECODER 1 +%define CONFIG_DSICINAUDIO_DECODER 1 +%define CONFIG_EAC3_DECODER 1 +%define CONFIG_EVRC_DECODER 1 +%define CONFIG_FFWAVESYNTH_DECODER 1 +%define CONFIG_FLAC_DECODER 1 +%define CONFIG_G723_1_DECODER 1 +%define CONFIG_G729_DECODER 1 +%define CONFIG_GSM_DECODER 1 +%define CONFIG_GSM_MS_DECODER 1 +%define CONFIG_IAC_DECODER 1 +%define CONFIG_IMC_DECODER 1 +%define CONFIG_MACE3_DECODER 1 +%define CONFIG_MACE6_DECODER 1 +%define CONFIG_MLP_DECODER 1 +%define CONFIG_MP1_DECODER 1 +%define CONFIG_MP1FLOAT_DECODER 1 +%define CONFIG_MP2_DECODER 1 +%define CONFIG_MP2FLOAT_DECODER 1 +%define CONFIG_MP3_DECODER 1 +%define CONFIG_MP3FLOAT_DECODER 1 +%define CONFIG_MP3ADU_DECODER 1 +%define CONFIG_MP3ADUFLOAT_DECODER 1 +%define CONFIG_MP3ON4_DECODER 1 +%define CONFIG_MP3ON4FLOAT_DECODER 1 +%define CONFIG_MPC7_DECODER 1 +%define CONFIG_MPC8_DECODER 1 +%define CONFIG_NELLYMOSER_DECODER 1 +%define CONFIG_PAF_AUDIO_DECODER 1 +%define CONFIG_QCELP_DECODER 1 +%define CONFIG_QDM2_DECODER 1 +%define CONFIG_RA_144_DECODER 1 +%define CONFIG_RA_288_DECODER 1 +%define CONFIG_RALF_DECODER 1 +%define CONFIG_SHORTEN_DECODER 1 +%define CONFIG_SIPR_DECODER 1 +%define CONFIG_SMACKAUD_DECODER 1 +%define CONFIG_SONIC_DECODER 1 +%define CONFIG_TAK_DECODER 1 +%define CONFIG_TRUEHD_DECODER 1 +%define CONFIG_TRUESPEECH_DECODER 1 +%define CONFIG_TTA_DECODER 1 +%define CONFIG_TWINVQ_DECODER 1 +%define CONFIG_VMDAUDIO_DECODER 1 +%define CONFIG_VORBIS_DECODER 1 +%define CONFIG_WAVPACK_DECODER 1 +%define CONFIG_WMALOSSLESS_DECODER 1 +%define CONFIG_WMAPRO_DECODER 1 +%define CONFIG_WMAV1_DECODER 1 +%define CONFIG_WMAV2_DECODER 1 +%define CONFIG_WMAVOICE_DECODER 1 +%define CONFIG_WS_SND1_DECODER 1 +%define CONFIG_PCM_ALAW_DECODER 1 +%define CONFIG_PCM_BLURAY_DECODER 1 +%define CONFIG_PCM_DVD_DECODER 1 +%define CONFIG_PCM_F32BE_DECODER 1 +%define CONFIG_PCM_F32LE_DECODER 1 +%define CONFIG_PCM_F64BE_DECODER 1 +%define CONFIG_PCM_F64LE_DECODER 1 +%define CONFIG_PCM_LXF_DECODER 1 +%define CONFIG_PCM_MULAW_DECODER 1 +%define CONFIG_PCM_S8_DECODER 1 +%define CONFIG_PCM_S8_PLANAR_DECODER 1 +%define CONFIG_PCM_S16BE_DECODER 1 +%define CONFIG_PCM_S16BE_PLANAR_DECODER 1 +%define CONFIG_PCM_S16LE_DECODER 1 +%define CONFIG_PCM_S16LE_PLANAR_DECODER 1 +%define CONFIG_PCM_S24BE_DECODER 1 +%define CONFIG_PCM_S24DAUD_DECODER 1 +%define CONFIG_PCM_S24LE_DECODER 1 +%define CONFIG_PCM_S24LE_PLANAR_DECODER 1 +%define CONFIG_PCM_S32BE_DECODER 1 +%define CONFIG_PCM_S32LE_DECODER 1 +%define CONFIG_PCM_S32LE_PLANAR_DECODER 1 +%define CONFIG_PCM_U8_DECODER 1 +%define CONFIG_PCM_U16BE_DECODER 1 +%define CONFIG_PCM_U16LE_DECODER 1 +%define CONFIG_PCM_U24BE_DECODER 1 +%define CONFIG_PCM_U24LE_DECODER 1 +%define CONFIG_PCM_U32BE_DECODER 1 +%define CONFIG_PCM_U32LE_DECODER 1 +%define CONFIG_PCM_ZORK_DECODER 1 +%define CONFIG_INTERPLAY_DPCM_DECODER 1 +%define CONFIG_ROQ_DPCM_DECODER 1 +%define CONFIG_SOL_DPCM_DECODER 1 +%define CONFIG_XAN_DPCM_DECODER 1 +%define CONFIG_ADPCM_4XM_DECODER 1 +%define CONFIG_ADPCM_ADX_DECODER 1 +%define CONFIG_ADPCM_AFC_DECODER 1 +%define CONFIG_ADPCM_CT_DECODER 1 +%define CONFIG_ADPCM_EA_DECODER 1 +%define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1 +%define CONFIG_ADPCM_EA_R1_DECODER 1 +%define CONFIG_ADPCM_EA_R2_DECODER 1 +%define CONFIG_ADPCM_EA_R3_DECODER 1 +%define CONFIG_ADPCM_EA_XAS_DECODER 1 +%define CONFIG_ADPCM_G722_DECODER 1 +%define CONFIG_ADPCM_G726_DECODER 1 +%define CONFIG_ADPCM_IMA_AMV_DECODER 1 +%define CONFIG_ADPCM_IMA_APC_DECODER 1 +%define CONFIG_ADPCM_IMA_DK3_DECODER 1 +%define CONFIG_ADPCM_IMA_DK4_DECODER 1 +%define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 +%define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1 +%define CONFIG_ADPCM_IMA_ISS_DECODER 1 +%define CONFIG_ADPCM_IMA_OKI_DECODER 1 +%define CONFIG_ADPCM_IMA_QT_DECODER 1 +%define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1 +%define CONFIG_ADPCM_IMA_WAV_DECODER 1 +%define CONFIG_ADPCM_IMA_WS_DECODER 1 +%define CONFIG_ADPCM_MS_DECODER 1 +%define CONFIG_ADPCM_SBPRO_2_DECODER 1 +%define CONFIG_ADPCM_SBPRO_3_DECODER 1 +%define CONFIG_ADPCM_SBPRO_4_DECODER 1 +%define CONFIG_ADPCM_SWF_DECODER 1 +%define CONFIG_ADPCM_THP_DECODER 1 +%define CONFIG_ADPCM_XA_DECODER 1 +%define CONFIG_ADPCM_YAMAHA_DECODER 1 +%define CONFIG_VIMA_DECODER 1 +%define CONFIG_ASS_DECODER 1 +%define CONFIG_DVBSUB_DECODER 1 +%define CONFIG_DVDSUB_DECODER 1 +%define CONFIG_JACOSUB_DECODER 1 +%define CONFIG_MICRODVD_DECODER 1 +%define CONFIG_MOVTEXT_DECODER 1 +%define CONFIG_MPL2_DECODER 1 +%define CONFIG_PGSSUB_DECODER 1 +%define CONFIG_PJS_DECODER 1 +%define CONFIG_REALTEXT_DECODER 1 +%define CONFIG_SAMI_DECODER 1 +%define CONFIG_SRT_DECODER 1 +%define CONFIG_SUBRIP_DECODER 1 +%define CONFIG_SUBVIEWER_DECODER 1 +%define CONFIG_SUBVIEWER1_DECODER 1 +%define CONFIG_TEXT_DECODER 1 +%define CONFIG_VPLAYER_DECODER 1 +%define CONFIG_WEBVTT_DECODER 1 +%define CONFIG_XSUB_DECODER 1 +%define CONFIG_LIBCELT_DECODER 0 +%define CONFIG_LIBGSM_DECODER 0 +%define CONFIG_LIBGSM_MS_DECODER 0 +%define CONFIG_LIBILBC_DECODER 0 +%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 +%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 +%define CONFIG_LIBOPENJPEG_DECODER 0 +%define CONFIG_LIBOPUS_DECODER 0 +%define CONFIG_LIBSCHROEDINGER_DECODER 1 +%define CONFIG_LIBSPEEX_DECODER 0 +%define CONFIG_LIBSTAGEFRIGHT_H264_DECODER 0 +%define CONFIG_LIBUTVIDEO_DECODER 0 +%define CONFIG_LIBVORBIS_DECODER 1 +%define CONFIG_LIBVPX_VP8_DECODER 0 +%define CONFIG_LIBVPX_VP9_DECODER 0 +%define CONFIG_BINTEXT_DECODER 1 +%define CONFIG_XBIN_DECODER 1 +%define CONFIG_IDF_DECODER 1 +%define CONFIG_AAC_DEMUXER 1 +%define CONFIG_AC3_DEMUXER 1 +%define CONFIG_ACT_DEMUXER 1 +%define CONFIG_ADF_DEMUXER 1 +%define CONFIG_ADX_DEMUXER 1 +%define CONFIG_AEA_DEMUXER 1 +%define CONFIG_AFC_DEMUXER 1 +%define CONFIG_AIFF_DEMUXER 1 +%define CONFIG_AMR_DEMUXER 1 +%define CONFIG_ANM_DEMUXER 1 +%define CONFIG_APC_DEMUXER 1 +%define CONFIG_APE_DEMUXER 1 +%define CONFIG_AQTITLE_DEMUXER 1 +%define CONFIG_ASF_DEMUXER 1 +%define CONFIG_ASS_DEMUXER 1 +%define CONFIG_AST_DEMUXER 1 +%define CONFIG_AU_DEMUXER 1 +%define CONFIG_AVI_DEMUXER 1 +%define CONFIG_AVISYNTH_DEMUXER 0 +%define CONFIG_AVR_DEMUXER 1 +%define CONFIG_AVS_DEMUXER 1 +%define CONFIG_BETHSOFTVID_DEMUXER 1 +%define CONFIG_BFI_DEMUXER 1 +%define CONFIG_BINTEXT_DEMUXER 1 +%define CONFIG_BINK_DEMUXER 1 +%define CONFIG_BIT_DEMUXER 1 +%define CONFIG_BMV_DEMUXER 1 +%define CONFIG_BRSTM_DEMUXER 1 +%define CONFIG_C93_DEMUXER 1 +%define CONFIG_CAF_DEMUXER 1 +%define CONFIG_CAVSVIDEO_DEMUXER 1 +%define CONFIG_CDG_DEMUXER 1 +%define CONFIG_CDXL_DEMUXER 1 +%define CONFIG_CONCAT_DEMUXER 1 +%define CONFIG_DAUD_DEMUXER 1 +%define CONFIG_DFA_DEMUXER 1 +%define CONFIG_DIRAC_DEMUXER 1 +%define CONFIG_DNXHD_DEMUXER 1 +%define CONFIG_DSICIN_DEMUXER 1 +%define CONFIG_DTS_DEMUXER 1 +%define CONFIG_DTSHD_DEMUXER 1 +%define CONFIG_DV_DEMUXER 1 +%define CONFIG_DXA_DEMUXER 1 +%define CONFIG_EA_DEMUXER 1 +%define CONFIG_EA_CDATA_DEMUXER 1 +%define CONFIG_EAC3_DEMUXER 1 +%define CONFIG_EPAF_DEMUXER 1 +%define CONFIG_FFM_DEMUXER 1 +%define CONFIG_FFMETADATA_DEMUXER 1 +%define CONFIG_FILMSTRIP_DEMUXER 1 +%define CONFIG_FLAC_DEMUXER 1 +%define CONFIG_FLIC_DEMUXER 1 +%define CONFIG_FLV_DEMUXER 1 +%define CONFIG_FOURXM_DEMUXER 1 +%define CONFIG_FRM_DEMUXER 1 +%define CONFIG_G722_DEMUXER 1 +%define CONFIG_G723_1_DEMUXER 1 +%define CONFIG_G729_DEMUXER 1 +%define CONFIG_GIF_DEMUXER 1 +%define CONFIG_GSM_DEMUXER 1 +%define CONFIG_GXF_DEMUXER 1 +%define CONFIG_H261_DEMUXER 1 +%define CONFIG_H263_DEMUXER 1 +%define CONFIG_H264_DEMUXER 1 +%define CONFIG_HLS_DEMUXER 1 +%define CONFIG_ICO_DEMUXER 1 +%define CONFIG_IDCIN_DEMUXER 1 +%define CONFIG_IDF_DEMUXER 1 +%define CONFIG_IFF_DEMUXER 1 +%define CONFIG_ILBC_DEMUXER 1 +%define CONFIG_IMAGE2_DEMUXER 1 +%define CONFIG_IMAGE2PIPE_DEMUXER 1 +%define CONFIG_INGENIENT_DEMUXER 1 +%define CONFIG_IPMOVIE_DEMUXER 1 +%define CONFIG_IRCAM_DEMUXER 1 +%define CONFIG_ISS_DEMUXER 1 +%define CONFIG_IV8_DEMUXER 1 +%define CONFIG_IVF_DEMUXER 1 +%define CONFIG_JACOSUB_DEMUXER 1 +%define CONFIG_JV_DEMUXER 1 +%define CONFIG_LATM_DEMUXER 1 +%define CONFIG_LMLM4_DEMUXER 1 +%define CONFIG_LOAS_DEMUXER 1 +%define CONFIG_LVF_DEMUXER 1 +%define CONFIG_LXF_DEMUXER 1 +%define CONFIG_M4V_DEMUXER 1 +%define CONFIG_MATROSKA_DEMUXER 1 +%define CONFIG_MGSTS_DEMUXER 1 +%define CONFIG_MICRODVD_DEMUXER 1 +%define CONFIG_MJPEG_DEMUXER 1 +%define CONFIG_MLP_DEMUXER 1 +%define CONFIG_MM_DEMUXER 1 +%define CONFIG_MMF_DEMUXER 1 +%define CONFIG_MOV_DEMUXER 1 +%define CONFIG_MP3_DEMUXER 1 +%define CONFIG_MPC_DEMUXER 1 +%define CONFIG_MPC8_DEMUXER 1 +%define CONFIG_MPEGPS_DEMUXER 1 +%define CONFIG_MPEGTS_DEMUXER 1 +%define CONFIG_MPEGTSRAW_DEMUXER 1 +%define CONFIG_MPEGVIDEO_DEMUXER 1 +%define CONFIG_MPL2_DEMUXER 1 +%define CONFIG_MPSUB_DEMUXER 1 +%define CONFIG_MSNWC_TCP_DEMUXER 1 +%define CONFIG_MTV_DEMUXER 1 +%define CONFIG_MV_DEMUXER 1 +%define CONFIG_MVI_DEMUXER 1 +%define CONFIG_MXF_DEMUXER 1 +%define CONFIG_MXG_DEMUXER 1 +%define CONFIG_NC_DEMUXER 1 +%define CONFIG_NISTSPHERE_DEMUXER 1 +%define CONFIG_NSV_DEMUXER 1 +%define CONFIG_NUT_DEMUXER 1 +%define CONFIG_NUV_DEMUXER 1 +%define CONFIG_OGG_DEMUXER 1 +%define CONFIG_OMA_DEMUXER 1 +%define CONFIG_PAF_DEMUXER 1 +%define CONFIG_PCM_ALAW_DEMUXER 1 +%define CONFIG_PCM_MULAW_DEMUXER 1 +%define CONFIG_PCM_F64BE_DEMUXER 1 +%define CONFIG_PCM_F64LE_DEMUXER 1 +%define CONFIG_PCM_F32BE_DEMUXER 1 +%define CONFIG_PCM_F32LE_DEMUXER 1 +%define CONFIG_PCM_S32BE_DEMUXER 1 +%define CONFIG_PCM_S32LE_DEMUXER 1 +%define CONFIG_PCM_S24BE_DEMUXER 1 +%define CONFIG_PCM_S24LE_DEMUXER 1 +%define CONFIG_PCM_S16BE_DEMUXER 1 +%define CONFIG_PCM_S16LE_DEMUXER 1 +%define CONFIG_PCM_S8_DEMUXER 1 +%define CONFIG_PCM_U32BE_DEMUXER 1 +%define CONFIG_PCM_U32LE_DEMUXER 1 +%define CONFIG_PCM_U24BE_DEMUXER 1 +%define CONFIG_PCM_U24LE_DEMUXER 1 +%define CONFIG_PCM_U16BE_DEMUXER 1 +%define CONFIG_PCM_U16LE_DEMUXER 1 +%define CONFIG_PCM_U8_DEMUXER 1 +%define CONFIG_PJS_DEMUXER 1 +%define CONFIG_PMP_DEMUXER 1 +%define CONFIG_PVA_DEMUXER 1 +%define CONFIG_PVF_DEMUXER 1 +%define CONFIG_QCP_DEMUXER 1 +%define CONFIG_R3D_DEMUXER 1 +%define CONFIG_RAWVIDEO_DEMUXER 1 +%define CONFIG_REALTEXT_DEMUXER 1 +%define CONFIG_RL2_DEMUXER 1 +%define CONFIG_RM_DEMUXER 1 +%define CONFIG_ROQ_DEMUXER 1 +%define CONFIG_RPL_DEMUXER 1 +%define CONFIG_RSO_DEMUXER 1 +%define CONFIG_RTP_DEMUXER 1 +%define CONFIG_RTSP_DEMUXER 1 +%define CONFIG_SAMI_DEMUXER 1 +%define CONFIG_SAP_DEMUXER 1 +%define CONFIG_SBG_DEMUXER 1 +%define CONFIG_SDP_DEMUXER 1 +%define CONFIG_SEGAFILM_DEMUXER 1 +%define CONFIG_SHORTEN_DEMUXER 1 +%define CONFIG_SIFF_DEMUXER 1 +%define CONFIG_SMACKER_DEMUXER 1 +%define CONFIG_SMJPEG_DEMUXER 1 +%define CONFIG_SMUSH_DEMUXER 1 +%define CONFIG_SOL_DEMUXER 1 +%define CONFIG_SOX_DEMUXER 1 +%define CONFIG_SPDIF_DEMUXER 1 +%define CONFIG_SRT_DEMUXER 1 +%define CONFIG_STR_DEMUXER 1 +%define CONFIG_SUBVIEWER1_DEMUXER 1 +%define CONFIG_SUBVIEWER_DEMUXER 1 +%define CONFIG_SWF_DEMUXER 1 +%define CONFIG_TAK_DEMUXER 1 +%define CONFIG_TEDCAPTIONS_DEMUXER 1 +%define CONFIG_THP_DEMUXER 1 +%define CONFIG_TIERTEXSEQ_DEMUXER 1 +%define CONFIG_TMV_DEMUXER 1 +%define CONFIG_TRUEHD_DEMUXER 1 +%define CONFIG_TTA_DEMUXER 1 +%define CONFIG_TXD_DEMUXER 1 +%define CONFIG_TTY_DEMUXER 1 +%define CONFIG_VC1_DEMUXER 1 +%define CONFIG_VC1T_DEMUXER 1 +%define CONFIG_VIVO_DEMUXER 1 +%define CONFIG_VMD_DEMUXER 1 +%define CONFIG_VOBSUB_DEMUXER 1 +%define CONFIG_VOC_DEMUXER 1 +%define CONFIG_VPLAYER_DEMUXER 1 +%define CONFIG_VQF_DEMUXER 1 +%define CONFIG_W64_DEMUXER 1 +%define CONFIG_WAV_DEMUXER 1 +%define CONFIG_WC3_DEMUXER 1 +%define CONFIG_WEBVTT_DEMUXER 1 +%define CONFIG_WSAUD_DEMUXER 1 +%define CONFIG_WSVQA_DEMUXER 1 +%define CONFIG_WTV_DEMUXER 1 +%define CONFIG_WV_DEMUXER 1 +%define CONFIG_XA_DEMUXER 1 +%define CONFIG_XBIN_DEMUXER 1 +%define CONFIG_XMV_DEMUXER 1 +%define CONFIG_XWMA_DEMUXER 1 +%define CONFIG_YOP_DEMUXER 1 +%define CONFIG_YUV4MPEGPIPE_DEMUXER 1 +%define CONFIG_LIBMODPLUG_DEMUXER 0 +%define CONFIG_LIBNUT_DEMUXER 0 +%define CONFIG_A64MULTI_ENCODER 1 +%define CONFIG_A64MULTI5_ENCODER 1 +%define CONFIG_AMV_ENCODER 1 +%define CONFIG_ASV1_ENCODER 1 +%define CONFIG_ASV2_ENCODER 1 +%define CONFIG_AVRP_ENCODER 1 +%define CONFIG_AVUI_ENCODER 1 +%define CONFIG_AYUV_ENCODER 1 +%define CONFIG_BMP_ENCODER 1 +%define CONFIG_CLJR_ENCODER 1 +%define CONFIG_COMFORTNOISE_ENCODER 1 +%define CONFIG_DNXHD_ENCODER 1 +%define CONFIG_DPX_ENCODER 1 +%define CONFIG_DVVIDEO_ENCODER 1 +%define CONFIG_FFV1_ENCODER 1 +%define CONFIG_FFVHUFF_ENCODER 1 +%define CONFIG_FLASHSV_ENCODER 1 +%define CONFIG_FLASHSV2_ENCODER 1 +%define CONFIG_FLV_ENCODER 1 +%define CONFIG_GIF_ENCODER 1 +%define CONFIG_H261_ENCODER 1 +%define CONFIG_H263_ENCODER 1 +%define CONFIG_H263P_ENCODER 1 +%define CONFIG_HUFFYUV_ENCODER 1 +%define CONFIG_JPEG2000_ENCODER 1 +%define CONFIG_JPEGLS_ENCODER 1 +%define CONFIG_LJPEG_ENCODER 1 +%define CONFIG_MJPEG_ENCODER 1 +%define CONFIG_MPEG1VIDEO_ENCODER 1 +%define CONFIG_MPEG2VIDEO_ENCODER 1 +%define CONFIG_MPEG4_ENCODER 1 +%define CONFIG_MSMPEG4V2_ENCODER 1 +%define CONFIG_MSMPEG4V3_ENCODER 1 +%define CONFIG_MSVIDEO1_ENCODER 1 +%define CONFIG_PAM_ENCODER 1 +%define CONFIG_PBM_ENCODER 1 +%define CONFIG_PCX_ENCODER 1 +%define CONFIG_PGM_ENCODER 1 +%define CONFIG_PGMYUV_ENCODER 1 +%define CONFIG_PNG_ENCODER 1 +%define CONFIG_PPM_ENCODER 1 +%define CONFIG_PRORES_ENCODER 1 +%define CONFIG_PRORES_ANATOLIY_ENCODER 1 +%define CONFIG_PRORES_KOSTYA_ENCODER 1 +%define CONFIG_QTRLE_ENCODER 1 +%define CONFIG_R10K_ENCODER 1 +%define CONFIG_R210_ENCODER 1 +%define CONFIG_RAWVIDEO_ENCODER 1 +%define CONFIG_ROQ_ENCODER 1 +%define CONFIG_RV10_ENCODER 1 +%define CONFIG_RV20_ENCODER 1 +%define CONFIG_SGI_ENCODER 1 +%define CONFIG_SNOW_ENCODER 1 +%define CONFIG_SUNRAST_ENCODER 1 +%define CONFIG_SVQ1_ENCODER 1 +%define CONFIG_TARGA_ENCODER 1 +%define CONFIG_TIFF_ENCODER 1 +%define CONFIG_UTVIDEO_ENCODER 1 +%define CONFIG_V210_ENCODER 1 +%define CONFIG_V308_ENCODER 1 +%define CONFIG_V408_ENCODER 1 +%define CONFIG_V410_ENCODER 1 +%define CONFIG_WMV1_ENCODER 1 +%define CONFIG_WMV2_ENCODER 1 +%define CONFIG_XBM_ENCODER 1 +%define CONFIG_XFACE_ENCODER 1 +%define CONFIG_XWD_ENCODER 1 +%define CONFIG_Y41P_ENCODER 1 +%define CONFIG_YUV4_ENCODER 1 +%define CONFIG_ZLIB_ENCODER 1 +%define CONFIG_ZMBV_ENCODER 1 +%define CONFIG_AAC_ENCODER 1 +%define CONFIG_AC3_ENCODER 1 +%define CONFIG_AC3_FIXED_ENCODER 1 +%define CONFIG_ALAC_ENCODER 1 +%define CONFIG_DCA_ENCODER 1 +%define CONFIG_EAC3_ENCODER 1 +%define CONFIG_FLAC_ENCODER 1 +%define CONFIG_G723_1_ENCODER 1 +%define CONFIG_MP2_ENCODER 1 +%define CONFIG_NELLYMOSER_ENCODER 1 +%define CONFIG_RA_144_ENCODER 1 +%define CONFIG_SONIC_ENCODER 1 +%define CONFIG_SONIC_LS_ENCODER 1 +%define CONFIG_VORBIS_ENCODER 1 +%define CONFIG_WMAV1_ENCODER 1 +%define CONFIG_WMAV2_ENCODER 1 +%define CONFIG_PCM_ALAW_ENCODER 1 +%define CONFIG_PCM_F32BE_ENCODER 1 +%define CONFIG_PCM_F32LE_ENCODER 1 +%define CONFIG_PCM_F64BE_ENCODER 1 +%define CONFIG_PCM_F64LE_ENCODER 1 +%define CONFIG_PCM_MULAW_ENCODER 1 +%define CONFIG_PCM_S8_ENCODER 1 +%define CONFIG_PCM_S8_PLANAR_ENCODER 1 +%define CONFIG_PCM_S16BE_ENCODER 1 +%define CONFIG_PCM_S16BE_PLANAR_ENCODER 1 +%define CONFIG_PCM_S16LE_ENCODER 1 +%define CONFIG_PCM_S16LE_PLANAR_ENCODER 1 +%define CONFIG_PCM_S24BE_ENCODER 1 +%define CONFIG_PCM_S24DAUD_ENCODER 1 +%define CONFIG_PCM_S24LE_ENCODER 1 +%define CONFIG_PCM_S24LE_PLANAR_ENCODER 1 +%define CONFIG_PCM_S32BE_ENCODER 1 +%define CONFIG_PCM_S32LE_ENCODER 1 +%define CONFIG_PCM_S32LE_PLANAR_ENCODER 1 +%define CONFIG_PCM_U8_ENCODER 1 +%define CONFIG_PCM_U16BE_ENCODER 1 +%define CONFIG_PCM_U16LE_ENCODER 1 +%define CONFIG_PCM_U24BE_ENCODER 1 +%define CONFIG_PCM_U24LE_ENCODER 1 +%define CONFIG_PCM_U32BE_ENCODER 1 +%define CONFIG_PCM_U32LE_ENCODER 1 +%define CONFIG_ROQ_DPCM_ENCODER 1 +%define CONFIG_ADPCM_ADX_ENCODER 1 +%define CONFIG_ADPCM_G722_ENCODER 1 +%define CONFIG_ADPCM_G726_ENCODER 1 +%define CONFIG_ADPCM_IMA_QT_ENCODER 1 +%define CONFIG_ADPCM_IMA_WAV_ENCODER 1 +%define CONFIG_ADPCM_MS_ENCODER 1 +%define CONFIG_ADPCM_SWF_ENCODER 1 +%define CONFIG_ADPCM_YAMAHA_ENCODER 1 +%define CONFIG_ASS_ENCODER 1 +%define CONFIG_DVBSUB_ENCODER 1 +%define CONFIG_DVDSUB_ENCODER 1 +%define CONFIG_MOVTEXT_ENCODER 1 +%define CONFIG_SRT_ENCODER 1 +%define CONFIG_SUBRIP_ENCODER 1 +%define CONFIG_XSUB_ENCODER 1 +%define CONFIG_LIBFAAC_ENCODER 1 +%define CONFIG_LIBFDK_AAC_ENCODER 0 +%define CONFIG_LIBGSM_ENCODER 0 +%define CONFIG_LIBGSM_MS_ENCODER 0 +%define CONFIG_LIBILBC_ENCODER 0 +%define CONFIG_LIBMP3LAME_ENCODER 1 +%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 +%define CONFIG_LIBOPENJPEG_ENCODER 0 +%define CONFIG_LIBOPUS_ENCODER 0 +%define CONFIG_LIBSCHROEDINGER_ENCODER 1 +%define CONFIG_LIBSPEEX_ENCODER 0 +%define CONFIG_LIBTHEORA_ENCODER 1 +%define CONFIG_LIBTWOLAME_ENCODER 0 +%define CONFIG_LIBUTVIDEO_ENCODER 0 +%define CONFIG_LIBVO_AACENC_ENCODER 0 +%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 +%define CONFIG_LIBVORBIS_ENCODER 1 +%define CONFIG_LIBVPX_VP8_ENCODER 0 +%define CONFIG_LIBVPX_VP9_ENCODER 0 +%define CONFIG_LIBX264_ENCODER 1 +%define CONFIG_LIBX264RGB_ENCODER 1 +%define CONFIG_LIBXAVS_ENCODER 0 +%define CONFIG_LIBXVID_ENCODER 1 +%define CONFIG_LIBAACPLUS_ENCODER 0 +%define CONFIG_ACONVERT_FILTER 1 +%define CONFIG_AFADE_FILTER 1 +%define CONFIG_AFORMAT_FILTER 1 +%define CONFIG_ALLPASS_FILTER 1 +%define CONFIG_AMERGE_FILTER 1 +%define CONFIG_AMIX_FILTER 1 +%define CONFIG_ANULL_FILTER 1 +%define CONFIG_APAD_FILTER 1 +%define CONFIG_APERMS_FILTER 1 +%define CONFIG_ARESAMPLE_FILTER 1 +%define CONFIG_ASELECT_FILTER 1 +%define CONFIG_ASENDCMD_FILTER 1 +%define CONFIG_ASETNSAMPLES_FILTER 1 +%define CONFIG_ASETPTS_FILTER 1 +%define CONFIG_ASETTB_FILTER 1 +%define CONFIG_ASHOWINFO_FILTER 1 +%define CONFIG_ASPLIT_FILTER 1 +%define CONFIG_ASTREAMSYNC_FILTER 1 +%define CONFIG_ASYNCTS_FILTER 0 +%define CONFIG_ATEMPO_FILTER 1 +%define CONFIG_BANDPASS_FILTER 1 +%define CONFIG_BANDREJECT_FILTER 1 +%define CONFIG_BASS_FILTER 1 +%define CONFIG_BIQUAD_FILTER 1 +%define CONFIG_CHANNELMAP_FILTER 1 +%define CONFIG_CHANNELSPLIT_FILTER 1 +%define CONFIG_EARWAX_FILTER 1 +%define CONFIG_EBUR128_FILTER 1 +%define CONFIG_EQUALIZER_FILTER 1 +%define CONFIG_HIGHPASS_FILTER 1 +%define CONFIG_JOIN_FILTER 1 +%define CONFIG_LOWPASS_FILTER 1 +%define CONFIG_PAN_FILTER 1 +%define CONFIG_RESAMPLE_FILTER 0 +%define CONFIG_SILENCEDETECT_FILTER 1 +%define CONFIG_TREBLE_FILTER 1 +%define CONFIG_VOLUME_FILTER 1 +%define CONFIG_VOLUMEDETECT_FILTER 1 +%define CONFIG_AEVALSRC_FILTER 1 +%define CONFIG_ANULLSRC_FILTER 1 +%define CONFIG_FLITE_FILTER 0 +%define CONFIG_SINE_FILTER 1 +%define CONFIG_ANULLSINK_FILTER 1 +%define CONFIG_ALPHAEXTRACT_FILTER 1 +%define CONFIG_ALPHAMERGE_FILTER 1 +%define CONFIG_ASS_FILTER 0 +%define CONFIG_BBOX_FILTER 1 +%define CONFIG_BLACKDETECT_FILTER 1 +%define CONFIG_BLACKFRAME_FILTER 1 +%define CONFIG_BLEND_FILTER 1 +%define CONFIG_BOXBLUR_FILTER 1 +%define CONFIG_COLORMATRIX_FILTER 1 +%define CONFIG_COPY_FILTER 1 +%define CONFIG_CROP_FILTER 1 +%define CONFIG_CROPDETECT_FILTER 1 +%define CONFIG_CURVES_FILTER 1 +%define CONFIG_DECIMATE_FILTER 1 +%define CONFIG_DELOGO_FILTER 1 +%define CONFIG_DESHAKE_FILTER 1 +%define CONFIG_DRAWBOX_FILTER 1 +%define CONFIG_DRAWTEXT_FILTER 0 +%define CONFIG_EDGEDETECT_FILTER 1 +%define CONFIG_FADE_FILTER 1 +%define CONFIG_FIELD_FILTER 1 +%define CONFIG_FIELDORDER_FILTER 1 +%define CONFIG_FORMAT_FILTER 1 +%define CONFIG_FPS_FILTER 1 +%define CONFIG_FRAMESTEP_FILTER 1 +%define CONFIG_FREI0R_FILTER 0 +%define CONFIG_GEQ_FILTER 1 +%define CONFIG_GRADFUN_FILTER 1 +%define CONFIG_HFLIP_FILTER 1 +%define CONFIG_HISTEQ_FILTER 1 +%define CONFIG_HISTOGRAM_FILTER 1 +%define CONFIG_HQDN3D_FILTER 1 +%define CONFIG_HUE_FILTER 1 +%define CONFIG_IDET_FILTER 1 +%define CONFIG_IL_FILTER 1 +%define CONFIG_KERNDEINT_FILTER 1 +%define CONFIG_LUT_FILTER 1 +%define CONFIG_LUTRGB_FILTER 1 +%define CONFIG_LUTYUV_FILTER 1 +%define CONFIG_MP_FILTER 1 +%define CONFIG_NEGATE_FILTER 1 +%define CONFIG_NOFORMAT_FILTER 1 +%define CONFIG_NOISE_FILTER 1 +%define CONFIG_NULL_FILTER 1 +%define CONFIG_OCV_FILTER 0 +%define CONFIG_OVERLAY_FILTER 1 +%define CONFIG_PAD_FILTER 1 +%define CONFIG_PERMS_FILTER 1 +%define CONFIG_PIXDESCTEST_FILTER 1 +%define CONFIG_PP_FILTER 1 +%define CONFIG_REMOVELOGO_FILTER 1 +%define CONFIG_SCALE_FILTER 1 +%define CONFIG_SELECT_FILTER 1 +%define CONFIG_SENDCMD_FILTER 1 +%define CONFIG_SETDAR_FILTER 1 +%define CONFIG_SETFIELD_FILTER 1 +%define CONFIG_SETPTS_FILTER 1 +%define CONFIG_SETSAR_FILTER 1 +%define CONFIG_SETTB_FILTER 1 +%define CONFIG_SHOWINFO_FILTER 1 +%define CONFIG_SMARTBLUR_FILTER 1 +%define CONFIG_SPLIT_FILTER 1 +%define CONFIG_STEREO3D_FILTER 1 +%define CONFIG_SUBTITLES_FILTER 0 +%define CONFIG_SUPER2XSAI_FILTER 1 +%define CONFIG_SWAPUV_FILTER 1 +%define CONFIG_THUMBNAIL_FILTER 1 +%define CONFIG_TILE_FILTER 1 +%define CONFIG_TINTERLACE_FILTER 1 +%define CONFIG_TRANSPOSE_FILTER 1 +%define CONFIG_UNSHARP_FILTER 1 +%define CONFIG_VFLIP_FILTER 1 +%define CONFIG_YADIF_FILTER 1 +%define CONFIG_CELLAUTO_FILTER 1 +%define CONFIG_COLOR_FILTER 1 +%define CONFIG_FREI0R_SRC_FILTER 0 +%define CONFIG_LIFE_FILTER 1 +%define CONFIG_MANDELBROT_FILTER 1 +%define CONFIG_MPTESTSRC_FILTER 1 +%define CONFIG_NULLSRC_FILTER 1 +%define CONFIG_RGBTESTSRC_FILTER 1 +%define CONFIG_SMPTEBARS_FILTER 1 +%define CONFIG_TESTSRC_FILTER 1 +%define CONFIG_NULLSINK_FILTER 1 +%define CONFIG_CONCAT_FILTER 1 +%define CONFIG_SHOWSPECTRUM_FILTER 1 +%define CONFIG_SHOWWAVES_FILTER 1 +%define CONFIG_AMOVIE_FILTER 1 +%define CONFIG_MOVIE_FILTER 1 +%define CONFIG_H263_VAAPI_HWACCEL 0 +%define CONFIG_H263_VDPAU_HWACCEL 0 +%define CONFIG_H264_DXVA2_HWACCEL 0 +%define CONFIG_H264_VAAPI_HWACCEL 0 +%define CONFIG_H264_VDA_HWACCEL 0 +%define CONFIG_H264_VDPAU_HWACCEL 0 +%define CONFIG_MPEG1_VDPAU_HWACCEL 0 +%define CONFIG_MPEG2_DXVA2_HWACCEL 0 +%define CONFIG_MPEG2_VAAPI_HWACCEL 0 +%define CONFIG_MPEG2_VDPAU_HWACCEL 0 +%define CONFIG_MPEG4_VAAPI_HWACCEL 0 +%define CONFIG_MPEG4_VDPAU_HWACCEL 0 +%define CONFIG_VC1_DXVA2_HWACCEL 0 +%define CONFIG_VC1_VAAPI_HWACCEL 0 +%define CONFIG_VC1_VDPAU_HWACCEL 0 +%define CONFIG_WMV3_DXVA2_HWACCEL 0 +%define CONFIG_WMV3_VAAPI_HWACCEL 0 +%define CONFIG_WMV3_VDPAU_HWACCEL 0 +%define CONFIG_ALSA_INDEV 0 +%define CONFIG_BKTR_INDEV 0 +%define CONFIG_DSHOW_INDEV 0 +%define CONFIG_DV1394_INDEV 1 +%define CONFIG_FBDEV_INDEV 1 +%define CONFIG_IEC61883_INDEV 0 +%define CONFIG_JACK_INDEV 0 +%define CONFIG_LAVFI_INDEV 1 +%define CONFIG_OPENAL_INDEV 0 +%define CONFIG_OSS_INDEV 1 +%define CONFIG_PULSE_INDEV 0 +%define CONFIG_SNDIO_INDEV 0 +%define CONFIG_V4L2_INDEV 1 +%define CONFIG_VFWCAP_INDEV 0 +%define CONFIG_X11GRAB_INDEV 1 +%define CONFIG_LIBCDIO_INDEV 0 +%define CONFIG_LIBDC1394_INDEV 0 +%define CONFIG_A64_MUXER 1 +%define CONFIG_AC3_MUXER 1 +%define CONFIG_ADTS_MUXER 1 +%define CONFIG_ADX_MUXER 1 +%define CONFIG_AIFF_MUXER 1 +%define CONFIG_AMR_MUXER 1 +%define CONFIG_ASF_MUXER 1 +%define CONFIG_ASS_MUXER 1 +%define CONFIG_AST_MUXER 1 +%define CONFIG_ASF_STREAM_MUXER 1 +%define CONFIG_AU_MUXER 1 +%define CONFIG_AVI_MUXER 1 +%define CONFIG_AVM2_MUXER 1 +%define CONFIG_BIT_MUXER 1 +%define CONFIG_CAF_MUXER 1 +%define CONFIG_CAVSVIDEO_MUXER 1 +%define CONFIG_CRC_MUXER 1 +%define CONFIG_DAUD_MUXER 1 +%define CONFIG_DIRAC_MUXER 1 +%define CONFIG_DNXHD_MUXER 1 +%define CONFIG_DTS_MUXER 1 +%define CONFIG_DV_MUXER 1 +%define CONFIG_EAC3_MUXER 1 +%define CONFIG_F4V_MUXER 1 +%define CONFIG_FFM_MUXER 1 +%define CONFIG_FFMETADATA_MUXER 1 +%define CONFIG_FILMSTRIP_MUXER 1 +%define CONFIG_FLAC_MUXER 1 +%define CONFIG_FLV_MUXER 1 +%define CONFIG_FRAMECRC_MUXER 1 +%define CONFIG_FRAMEMD5_MUXER 1 +%define CONFIG_G722_MUXER 1 +%define CONFIG_G723_1_MUXER 1 +%define CONFIG_GIF_MUXER 1 +%define CONFIG_GXF_MUXER 1 +%define CONFIG_H261_MUXER 1 +%define CONFIG_H263_MUXER 1 +%define CONFIG_H264_MUXER 1 +%define CONFIG_HLS_MUXER 1 +%define CONFIG_ICO_MUXER 1 +%define CONFIG_ILBC_MUXER 1 +%define CONFIG_IMAGE2_MUXER 1 +%define CONFIG_IMAGE2PIPE_MUXER 1 +%define CONFIG_IPOD_MUXER 1 +%define CONFIG_IRCAM_MUXER 1 +%define CONFIG_ISMV_MUXER 1 +%define CONFIG_IVF_MUXER 1 +%define CONFIG_JACOSUB_MUXER 1 +%define CONFIG_LATM_MUXER 1 +%define CONFIG_M4V_MUXER 1 +%define CONFIG_MD5_MUXER 1 +%define CONFIG_MATROSKA_MUXER 1 +%define CONFIG_MATROSKA_AUDIO_MUXER 1 +%define CONFIG_MICRODVD_MUXER 1 +%define CONFIG_MJPEG_MUXER 1 +%define CONFIG_MLP_MUXER 1 +%define CONFIG_MMF_MUXER 1 +%define CONFIG_MOV_MUXER 1 +%define CONFIG_MP2_MUXER 1 +%define CONFIG_MP3_MUXER 1 +%define CONFIG_MP4_MUXER 1 +%define CONFIG_MPEG1SYSTEM_MUXER 1 +%define CONFIG_MPEG1VCD_MUXER 1 +%define CONFIG_MPEG1VIDEO_MUXER 1 +%define CONFIG_MPEG2DVD_MUXER 1 +%define CONFIG_MPEG2SVCD_MUXER 1 +%define CONFIG_MPEG2VIDEO_MUXER 1 +%define CONFIG_MPEG2VOB_MUXER 1 +%define CONFIG_MPEGTS_MUXER 1 +%define CONFIG_MPJPEG_MUXER 1 +%define CONFIG_MXF_MUXER 1 +%define CONFIG_MXF_D10_MUXER 1 +%define CONFIG_NULL_MUXER 1 +%define CONFIG_NUT_MUXER 1 +%define CONFIG_OGG_MUXER 1 +%define CONFIG_OMA_MUXER 1 +%define CONFIG_PCM_ALAW_MUXER 1 +%define CONFIG_PCM_MULAW_MUXER 1 +%define CONFIG_PCM_F64BE_MUXER 1 +%define CONFIG_PCM_F64LE_MUXER 1 +%define CONFIG_PCM_F32BE_MUXER 1 +%define CONFIG_PCM_F32LE_MUXER 1 +%define CONFIG_PCM_S32BE_MUXER 1 +%define CONFIG_PCM_S32LE_MUXER 1 +%define CONFIG_PCM_S24BE_MUXER 1 +%define CONFIG_PCM_S24LE_MUXER 1 +%define CONFIG_PCM_S16BE_MUXER 1 +%define CONFIG_PCM_S16LE_MUXER 1 +%define CONFIG_PCM_S8_MUXER 1 +%define CONFIG_PCM_U32BE_MUXER 1 +%define CONFIG_PCM_U32LE_MUXER 1 +%define CONFIG_PCM_U24BE_MUXER 1 +%define CONFIG_PCM_U24LE_MUXER 1 +%define CONFIG_PCM_U16BE_MUXER 1 +%define CONFIG_PCM_U16LE_MUXER 1 +%define CONFIG_PCM_U8_MUXER 1 +%define CONFIG_PSP_MUXER 1 +%define CONFIG_RAWVIDEO_MUXER 1 +%define CONFIG_RM_MUXER 1 +%define CONFIG_ROQ_MUXER 1 +%define CONFIG_RSO_MUXER 1 +%define CONFIG_RTP_MUXER 1 +%define CONFIG_RTSP_MUXER 1 +%define CONFIG_SAP_MUXER 1 +%define CONFIG_SEGMENT_MUXER 1 +%define CONFIG_STREAM_SEGMENT_MUXER 1 +%define CONFIG_SMJPEG_MUXER 1 +%define CONFIG_SMOOTHSTREAMING_MUXER 1 +%define CONFIG_SOX_MUXER 1 +%define CONFIG_SPDIF_MUXER 1 +%define CONFIG_SRT_MUXER 1 +%define CONFIG_SWF_MUXER 1 +%define CONFIG_TEE_MUXER 1 +%define CONFIG_TG2_MUXER 1 +%define CONFIG_TGP_MUXER 1 +%define CONFIG_MKVTIMESTAMP_V2_MUXER 1 +%define CONFIG_TRUEHD_MUXER 1 +%define CONFIG_VC1_MUXER 1 +%define CONFIG_VC1T_MUXER 1 +%define CONFIG_VOC_MUXER 1 +%define CONFIG_W64_MUXER 1 +%define CONFIG_WAV_MUXER 1 +%define CONFIG_WEBM_MUXER 1 +%define CONFIG_WTV_MUXER 1 +%define CONFIG_WV_MUXER 1 +%define CONFIG_YUV4MPEGPIPE_MUXER 1 +%define CONFIG_LIBNUT_MUXER 0 +%define CONFIG_ALSA_OUTDEV 0 +%define CONFIG_CACA_OUTDEV 0 +%define CONFIG_OSS_OUTDEV 1 +%define CONFIG_SDL_OUTDEV 0 +%define CONFIG_SNDIO_OUTDEV 0 +%define CONFIG_AAC_PARSER 1 +%define CONFIG_AAC_LATM_PARSER 1 +%define CONFIG_AC3_PARSER 1 +%define CONFIG_ADX_PARSER 1 +%define CONFIG_BMP_PARSER 1 +%define CONFIG_CAVSVIDEO_PARSER 1 +%define CONFIG_COOK_PARSER 1 +%define CONFIG_DCA_PARSER 1 +%define CONFIG_DIRAC_PARSER 1 +%define CONFIG_DNXHD_PARSER 1 +%define CONFIG_DVBSUB_PARSER 1 +%define CONFIG_DVDSUB_PARSER 1 +%define CONFIG_DVD_NAV_PARSER 1 +%define CONFIG_FLAC_PARSER 1 +%define CONFIG_GSM_PARSER 1 +%define CONFIG_H261_PARSER 1 +%define CONFIG_H263_PARSER 1 +%define CONFIG_H264_PARSER 1 +%define CONFIG_MJPEG_PARSER 1 +%define CONFIG_MLP_PARSER 1 +%define CONFIG_MPEG4VIDEO_PARSER 1 +%define CONFIG_MPEGAUDIO_PARSER 1 +%define CONFIG_MPEGVIDEO_PARSER 1 +%define CONFIG_PNG_PARSER 1 +%define CONFIG_PNM_PARSER 1 +%define CONFIG_RV30_PARSER 1 +%define CONFIG_RV40_PARSER 1 +%define CONFIG_TAK_PARSER 1 +%define CONFIG_VC1_PARSER 1 +%define CONFIG_VORBIS_PARSER 1 +%define CONFIG_VP3_PARSER 1 +%define CONFIG_VP8_PARSER 1 +%define CONFIG_BLURAY_PROTOCOL 0 +%define CONFIG_CACHE_PROTOCOL 1 +%define CONFIG_CONCAT_PROTOCOL 1 +%define CONFIG_CRYPTO_PROTOCOL 1 +%define CONFIG_DATA_PROTOCOL 1 +%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 +%define CONFIG_FFRTMPHTTP_PROTOCOL 1 +%define CONFIG_FILE_PROTOCOL 1 +%define CONFIG_GOPHER_PROTOCOL 1 +%define CONFIG_HLS_PROTOCOL 1 +%define CONFIG_HTTP_PROTOCOL 1 +%define CONFIG_HTTPPROXY_PROTOCOL 1 +%define CONFIG_HTTPS_PROTOCOL 0 +%define CONFIG_MMSH_PROTOCOL 1 +%define CONFIG_MMST_PROTOCOL 1 +%define CONFIG_MD5_PROTOCOL 1 +%define CONFIG_PIPE_PROTOCOL 1 +%define CONFIG_RTMP_PROTOCOL 1 +%define CONFIG_RTMPE_PROTOCOL 0 +%define CONFIG_RTMPS_PROTOCOL 0 +%define CONFIG_RTMPT_PROTOCOL 1 +%define CONFIG_RTMPTE_PROTOCOL 0 +%define CONFIG_RTMPTS_PROTOCOL 0 +%define CONFIG_RTP_PROTOCOL 1 +%define CONFIG_SCTP_PROTOCOL 0 +%define CONFIG_SRTP_PROTOCOL 1 +%define CONFIG_TCP_PROTOCOL 1 +%define CONFIG_TLS_PROTOCOL 0 +%define CONFIG_UDP_PROTOCOL 1 +%define CONFIG_LIBRTMP_PROTOCOL 0 +%define CONFIG_LIBRTMPE_PROTOCOL 0 +%define CONFIG_LIBRTMPS_PROTOCOL 0 +%define CONFIG_LIBRTMPT_PROTOCOL 0 +%define CONFIG_LIBRTMPTE_PROTOCOL 0 diff --git a/ffmpeg/config.fate b/ffmpeg/config.fate new file mode 100644 index 0000000..3343b5b --- /dev/null +++ b/ffmpeg/config.fate @@ -0,0 +1 @@ +config:x86:x86_64:generic:linux:gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1):--prefix=/usr/local --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-bzlib --enable-libfaac --enable-libmp3lame --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib diff --git a/ffmpeg/config.h b/ffmpeg/config.h new file mode 100644 index 0000000..8e7ee8d --- /dev/null +++ b/ffmpeg/config.h @@ -0,0 +1,1526 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_H +#define FFMPEG_CONFIG_H +#define FFMPEG_CONFIGURATION "--prefix=/usr/local --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-bzlib --enable-libfaac --enable-libmp3lame --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib" +#define FFMPEG_LICENSE "nonfree and unredistributable" +#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" +#define AVCONV_DATADIR "/usr/local/share/ffmpeg" +#define CC_IDENT "gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)" +#define av_restrict restrict +#define EXTERN_PREFIX "" +#define EXTERN_ASM +#define SLIBSUF ".so" +#define HAVE_MMX2 HAVE_MMXEXT +#define ARCH_AARCH64 0 +#define ARCH_ALPHA 0 +#define ARCH_ARM 0 +#define ARCH_AVR32 0 +#define ARCH_AVR32_AP 0 +#define ARCH_AVR32_UC 0 +#define ARCH_BFIN 0 +#define ARCH_IA64 0 +#define ARCH_M68K 0 +#define ARCH_MIPS 0 +#define ARCH_MIPS64 0 +#define ARCH_PARISC 0 +#define ARCH_PPC 0 +#define ARCH_PPC64 0 +#define ARCH_S390 0 +#define ARCH_SH4 0 +#define ARCH_SPARC 0 +#define ARCH_SPARC64 0 +#define ARCH_TILEGX 0 +#define ARCH_TILEPRO 0 +#define ARCH_TOMI 0 +#define ARCH_X86 1 +#define ARCH_X86_32 0 +#define ARCH_X86_64 1 +#define HAVE_ARMV5TE 0 +#define HAVE_ARMV6 0 +#define HAVE_ARMV6T2 0 +#define HAVE_NEON 0 +#define HAVE_VFP 0 +#define HAVE_VFPV3 0 +#define HAVE_AMD3DNOW 1 +#define HAVE_AMD3DNOWEXT 1 +#define HAVE_AVX 1 +#define HAVE_FMA4 1 +#define HAVE_MMX 1 +#define HAVE_MMXEXT 1 +#define HAVE_SSE 1 +#define HAVE_SSE2 1 +#define HAVE_SSE3 1 +#define HAVE_SSE4 1 +#define HAVE_SSE42 1 +#define HAVE_SSSE3 1 +#define HAVE_ALTIVEC 0 +#define HAVE_PPC4XX 0 +#define HAVE_VIS 0 +#define HAVE_MIPSFPU 0 +#define HAVE_MIPS32R2 0 +#define HAVE_MIPSDSPR1 0 +#define HAVE_MIPSDSPR2 0 +#define HAVE_ARMV5TE_EXTERNAL 0 +#define HAVE_ARMV6_EXTERNAL 0 +#define HAVE_ARMV6T2_EXTERNAL 0 +#define HAVE_NEON_EXTERNAL 0 +#define HAVE_VFP_EXTERNAL 0 +#define HAVE_VFPV3_EXTERNAL 0 +#define HAVE_AMD3DNOW_EXTERNAL 1 +#define HAVE_AMD3DNOWEXT_EXTERNAL 1 +#define HAVE_AVX_EXTERNAL 1 +#define HAVE_FMA4_EXTERNAL 1 +#define HAVE_MMX_EXTERNAL 1 +#define HAVE_MMXEXT_EXTERNAL 1 +#define HAVE_SSE_EXTERNAL 1 +#define HAVE_SSE2_EXTERNAL 1 +#define HAVE_SSE3_EXTERNAL 1 +#define HAVE_SSE4_EXTERNAL 1 +#define HAVE_SSE42_EXTERNAL 1 +#define HAVE_SSSE3_EXTERNAL 1 +#define HAVE_ALTIVEC_EXTERNAL 0 +#define HAVE_PPC4XX_EXTERNAL 0 +#define HAVE_VIS_EXTERNAL 0 +#define HAVE_MIPSFPU_EXTERNAL 0 +#define HAVE_MIPS32R2_EXTERNAL 0 +#define HAVE_MIPSDSPR1_EXTERNAL 0 +#define HAVE_MIPSDSPR2_EXTERNAL 0 +#define HAVE_ARMV5TE_INLINE 0 +#define HAVE_ARMV6_INLINE 0 +#define HAVE_ARMV6T2_INLINE 0 +#define HAVE_NEON_INLINE 0 +#define HAVE_VFP_INLINE 0 +#define HAVE_VFPV3_INLINE 0 +#define HAVE_AMD3DNOW_INLINE 1 +#define HAVE_AMD3DNOWEXT_INLINE 1 +#define HAVE_AVX_INLINE 1 +#define HAVE_FMA4_INLINE 1 +#define HAVE_MMX_INLINE 1 +#define HAVE_MMXEXT_INLINE 1 +#define HAVE_SSE_INLINE 1 +#define HAVE_SSE2_INLINE 1 +#define HAVE_SSE3_INLINE 1 +#define HAVE_SSE4_INLINE 1 +#define HAVE_SSE42_INLINE 1 +#define HAVE_SSSE3_INLINE 1 +#define HAVE_ALTIVEC_INLINE 0 +#define HAVE_PPC4XX_INLINE 0 +#define HAVE_VIS_INLINE 0 +#define HAVE_MIPSFPU_INLINE 0 +#define HAVE_MIPS32R2_INLINE 0 +#define HAVE_MIPSDSPR1_INLINE 0 +#define HAVE_MIPSDSPR2_INLINE 0 +#define HAVE_INLINE_ASM 1 +#define HAVE_SYMVER 1 +#define HAVE_YASM 1 +#define HAVE_BIGENDIAN 0 +#define HAVE_FAST_UNALIGNED 1 +#define HAVE_INCOMPATIBLE_FORK_ABI 0 +#define HAVE_PTHREADS 1 +#define HAVE_W32THREADS 0 +#define HAVE_OS2THREADS 0 +#define HAVE_ATANF 1 +#define HAVE_ATAN2F 1 +#define HAVE_CBRT 1 +#define HAVE_CBRTF 1 +#define HAVE_COSF 1 +#define HAVE_EXP2 1 +#define HAVE_EXP2F 1 +#define HAVE_EXPF 1 +#define HAVE_ISINF 1 +#define HAVE_ISNAN 1 +#define HAVE_LDEXPF 1 +#define HAVE_LLRINT 1 +#define HAVE_LLRINTF 1 +#define HAVE_LOG2 1 +#define HAVE_LOG2F 1 +#define HAVE_LOG10F 1 +#define HAVE_LRINT 1 +#define HAVE_LRINTF 1 +#define HAVE_POWF 1 +#define HAVE_RINT 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SINF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_ACCESS 1 +#define HAVE_ALIGNED_MALLOC 0 +#define HAVE_ALIGNED_STACK 1 +#define HAVE_ALSA_ASOUNDLIB_H 0 +#define HAVE_ALTIVEC_H 0 +#define HAVE_ARPA_INET_H 1 +#define HAVE_ASM_MOD_Q 0 +#define HAVE_ASM_MOD_Y 0 +#define HAVE_ASM_TYPES_H 1 +#define HAVE_ATTRIBUTE_MAY_ALIAS 1 +#define HAVE_ATTRIBUTE_PACKED 1 +#define HAVE_CDIO_PARANOIA_H 0 +#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_CLOSESOCKET 0 +#define HAVE_CMOV 1 +#define HAVE_COMMANDLINETOARGVW 0 +#define HAVE_CPUNOP 1 +#define HAVE_CRYPTGENRANDOM 0 +#define HAVE_DCBZL 0 +#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 +#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 +#define HAVE_DEV_IC_BT8XX_H 0 +#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 +#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 +#define HAVE_DIRECT_H 0 +#define HAVE_DLFCN_H 1 +#define HAVE_DLOPEN 1 +#define HAVE_DOS_PATHS 0 +#define HAVE_DXVA_H 0 +#define HAVE_EBP_AVAILABLE 1 +#define HAVE_EBX_AVAILABLE 1 +#define HAVE_FAST_64BIT 1 +#define HAVE_FAST_CLZ 1 +#define HAVE_FAST_CMOV 1 +#define HAVE_FCNTL 1 +#define HAVE_FORK 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETHRTIME 0 +#define HAVE_GETOPT 1 +#define HAVE_GETPROCESSAFFINITYMASK 0 +#define HAVE_GETPROCESSMEMORYINFO 0 +#define HAVE_GETPROCESSTIMES 0 +#define HAVE_GETSYSTEMTIMEASFILETIME 0 +#define HAVE_GETRUSAGE 1 +#define HAVE_GETSERVBYPORT 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GLOB 1 +#define HAVE_GNU_AS 1 +#define HAVE_GSM_H 0 +#define HAVE_IBM_ASM 0 +#define HAVE_INET_ATON 1 +#define HAVE_IO_H 0 +#define HAVE_ISATTY 1 +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 +#define HAVE_KBHIT 0 +#define HAVE_LDBRX 0 +#define HAVE_LIBDC1394_1 0 +#define HAVE_LIBDC1394_2 0 +#define HAVE_LOCAL_ALIGNED_16 1 +#define HAVE_LOCAL_ALIGNED_8 1 +#define HAVE_LOCALTIME_R 1 +#define HAVE_LOONGSON 0 +#define HAVE_LZO1X_999_COMPRESS 0 +#define HAVE_MACHINE_IOCTL_BT848_H 0 +#define HAVE_MACHINE_IOCTL_METEOR_H 0 +#define HAVE_MACHINE_RW_BARRIER 0 +#define HAVE_MAKEINFO 0 +#define HAVE_MALLOC_H 1 +#define HAVE_MAPVIEWOFFILE 0 +#define HAVE_MEMALIGN 1 +#define HAVE_MEMORYBARRIER 0 +#define HAVE_MKSTEMP 1 +#define HAVE_MM_EMPTY 1 +#define HAVE_MMAP 1 +#define HAVE_MPROTECT 1 +#define HAVE_MSVCRT 0 +#define HAVE_NANOSLEEP 1 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +#define HAVE_PEEKNAMEDPIPE 0 +#define HAVE_PERL 1 +#define HAVE_POD2MAN 1 +#define HAVE_POLL_H 1 +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PTHREAD_CANCEL 1 +#define HAVE_RDTSC 0 +#define HAVE_RSYNC_CONTIMEOUT 1 +#define HAVE_SCHED_GETAFFINITY 1 +#define HAVE_SDL 0 +#define HAVE_SETCONSOLETEXTATTRIBUTE 0 +#define HAVE_SETMODE 0 +#define HAVE_SETRLIMIT 1 +#define HAVE_SLEEP 0 +#define HAVE_SNDIO_H 0 +#define HAVE_SOCKLEN_T 1 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_STRERROR_R 1 +#define HAVE_STRUCT_ADDRINFO 1 +#define HAVE_STRUCT_GROUP_SOURCE_REQ 1 +#define HAVE_STRUCT_IP_MREQ_SOURCE 1 +#define HAVE_STRUCT_IPV6_MREQ 1 +#define HAVE_STRUCT_POLLFD 1 +#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 +#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 +#define HAVE_STRUCT_SOCKADDR_IN6 1 +#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 +#define HAVE_SYMVER_ASM_LABEL 0 +#define HAVE_SYMVER_GNU_ASM 1 +#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTL 1 +#define HAVE_SYS_MMAN_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SOUNDCARD_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_VIDEOIO_H 0 +#define HAVE_TERMIOS_H 1 +#define HAVE_TEXI2HTML 0 +#define HAVE_THREADS 1 +#define HAVE_UNISTD_H 1 +#define HAVE_USLEEP 1 +#define HAVE_VFP_ARGS 0 +#define HAVE_VIRTUALALLOC 0 +#define HAVE_WINDOWS_H 0 +#define HAVE_WINSOCK2_H 0 +#define HAVE_XFORM_ASM 0 +#define HAVE_XMM_CLOBBERS 1 +#define CONFIG_BSFS 1 +#define CONFIG_DECODERS 1 +#define CONFIG_DEMUXERS 1 +#define CONFIG_ENCODERS 1 +#define CONFIG_FILTERS 1 +#define CONFIG_HWACCELS 0 +#define CONFIG_INDEVS 1 +#define CONFIG_MUXERS 1 +#define CONFIG_OUTDEVS 1 +#define CONFIG_PARSERS 1 +#define CONFIG_PROTOCOLS 1 +#define CONFIG_DOC 1 +#define CONFIG_HTMLPAGES 0 +#define CONFIG_MANPAGES 1 +#define CONFIG_PODPAGES 1 +#define CONFIG_TXTPAGES 0 +#define CONFIG_AVISYNTH 0 +#define CONFIG_BZLIB 0 +#define CONFIG_CRYSTALHD 0 +#define CONFIG_FONTCONFIG 0 +#define CONFIG_FREI0R 0 +#define CONFIG_GNUTLS 0 +#define CONFIG_ICONV 1 +#define CONFIG_LIBAACPLUS 0 +#define CONFIG_LIBASS 0 +#define CONFIG_LIBBLURAY 0 +#define CONFIG_LIBCACA 0 +#define CONFIG_LIBCDIO 0 +#define CONFIG_LIBCELT 0 +#define CONFIG_LIBDC1394 0 +#define CONFIG_LIBFAAC 1 +#define CONFIG_LIBFDK_AAC 0 +#define CONFIG_LIBFLITE 0 +#define CONFIG_LIBFREETYPE 0 +#define CONFIG_LIBGSM 0 +#define CONFIG_LIBIEC61883 0 +#define CONFIG_LIBILBC 0 +#define CONFIG_LIBMODPLUG 0 +#define CONFIG_LIBMP3LAME 1 +#define CONFIG_LIBNUT 0 +#define CONFIG_LIBOPENCORE_AMRNB 0 +#define CONFIG_LIBOPENCORE_AMRWB 0 +#define CONFIG_LIBOPENCV 0 +#define CONFIG_LIBOPENJPEG 0 +#define CONFIG_LIBOPUS 0 +#define CONFIG_LIBPULSE 0 +#define CONFIG_LIBRTMP 0 +#define CONFIG_LIBSCHROEDINGER 1 +#define CONFIG_LIBSOXR 0 +#define CONFIG_LIBSPEEX 0 +#define CONFIG_LIBSTAGEFRIGHT_H264 0 +#define CONFIG_LIBTHEORA 1 +#define CONFIG_LIBTWOLAME 0 +#define CONFIG_LIBUTVIDEO 0 +#define CONFIG_LIBV4L2 0 +#define CONFIG_LIBVO_AACENC 0 +#define CONFIG_LIBVO_AMRWBENC 0 +#define CONFIG_LIBVORBIS 1 +#define CONFIG_LIBVPX 0 +#define CONFIG_LIBX264 1 +#define CONFIG_LIBXAVS 0 +#define CONFIG_LIBXVID 1 +#define CONFIG_OPENAL 0 +#define CONFIG_OPENSSL 0 +#define CONFIG_X11GRAB 1 +#define CONFIG_ZLIB 1 +#define CONFIG_DXVA2 0 +#define CONFIG_VAAPI 0 +#define CONFIG_VDA 0 +#define CONFIG_VDPAU 0 +#define CONFIG_AVCODEC 1 +#define CONFIG_AVDEVICE 1 +#define CONFIG_AVFILTER 1 +#define CONFIG_AVFORMAT 1 +#define CONFIG_AVRESAMPLE 0 +#define CONFIG_AVUTIL 1 +#define CONFIG_POSTPROC 1 +#define CONFIG_SWRESAMPLE 1 +#define CONFIG_SWSCALE 1 +#define CONFIG_FFPLAY 0 +#define CONFIG_FFPROBE 1 +#define CONFIG_FFSERVER 1 +#define CONFIG_FFMPEG 1 +#define CONFIG_DCT 1 +#define CONFIG_DWT 1 +#define CONFIG_FAST_UNALIGNED 1 +#define CONFIG_FFT 1 +#define CONFIG_FTRAPV 0 +#define CONFIG_GPL 1 +#define CONFIG_GRAY 0 +#define CONFIG_HARDCODED_TABLES 0 +#define CONFIG_INCOMPATIBLE_FORK_ABI 0 +#define CONFIG_LSP 1 +#define CONFIG_LZO 1 +#define CONFIG_MDCT 1 +#define CONFIG_MEMALIGN_HACK 0 +#define CONFIG_MEMORY_POISONING 0 +#define CONFIG_NETWORK 1 +#define CONFIG_NONFREE 1 +#define CONFIG_PIC 1 +#define CONFIG_RDFT 1 +#define CONFIG_RUNTIME_CPUDETECT 1 +#define CONFIG_SAFE_BITSTREAM_READER 1 +#define CONFIG_SHARED 1 +#define CONFIG_SMALL 0 +#define CONFIG_SRAM 0 +#define CONFIG_STATIC 1 +#define CONFIG_SWSCALE_ALPHA 1 +#define CONFIG_THUMB 0 +#define CONFIG_VERSION3 0 +#define CONFIG_XMM_CLOBBER_TEST 0 +#define CONFIG_AANDCTTABLES 1 +#define CONFIG_AC3DSP 1 +#define CONFIG_AUDIO_FRAME_QUEUE 1 +#define CONFIG_DSPUTIL 1 +#define CONFIG_ERROR_RESILIENCE 1 +#define CONFIG_FRAME_THREAD_ENCODER 1 +#define CONFIG_GCRYPT 0 +#define CONFIG_GOLOMB 1 +#define CONFIG_GPLV3 0 +#define CONFIG_H264CHROMA 1 +#define CONFIG_H264DSP 1 +#define CONFIG_H264PRED 1 +#define CONFIG_H264QPEL 1 +#define CONFIG_HPELDSP 1 +#define CONFIG_HUFFMAN 1 +#define CONFIG_LGPLV3 0 +#define CONFIG_LPC 1 +#define CONFIG_MPEGAUDIO 1 +#define CONFIG_MPEGAUDIODSP 1 +#define CONFIG_MPEGVIDEO 1 +#define CONFIG_MPEGVIDEOENC 1 +#define CONFIG_NETTLE 0 +#define CONFIG_RANGECODER 1 +#define CONFIG_RTPDEC 1 +#define CONFIG_RTPENC_CHAIN 1 +#define CONFIG_SINEWIN 1 +#define CONFIG_VIDEODSP 1 +#define CONFIG_VP3DSP 1 +#define CONFIG_AAC_ADTSTOASC_BSF 1 +#define CONFIG_CHOMP_BSF 1 +#define CONFIG_DUMP_EXTRADATA_BSF 1 +#define CONFIG_H264_MP4TOANNEXB_BSF 1 +#define CONFIG_IMX_DUMP_HEADER_BSF 1 +#define CONFIG_MJPEG2JPEG_BSF 1 +#define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 +#define CONFIG_MP3_HEADER_COMPRESS_BSF 1 +#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 +#define CONFIG_MOV2TEXTSUB_BSF 1 +#define CONFIG_NOISE_BSF 1 +#define CONFIG_REMOVE_EXTRADATA_BSF 1 +#define CONFIG_TEXT2MOVSUB_BSF 1 +#define CONFIG_AASC_DECODER 1 +#define CONFIG_AMV_DECODER 1 +#define CONFIG_ANM_DECODER 1 +#define CONFIG_ANSI_DECODER 1 +#define CONFIG_ASV1_DECODER 1 +#define CONFIG_ASV2_DECODER 1 +#define CONFIG_AURA_DECODER 1 +#define CONFIG_AURA2_DECODER 1 +#define CONFIG_AVRP_DECODER 1 +#define CONFIG_AVRN_DECODER 1 +#define CONFIG_AVS_DECODER 1 +#define CONFIG_AVUI_DECODER 1 +#define CONFIG_AYUV_DECODER 1 +#define CONFIG_BETHSOFTVID_DECODER 1 +#define CONFIG_BFI_DECODER 1 +#define CONFIG_BINK_DECODER 1 +#define CONFIG_BMP_DECODER 1 +#define CONFIG_BMV_VIDEO_DECODER 1 +#define CONFIG_BRENDER_PIX_DECODER 1 +#define CONFIG_C93_DECODER 1 +#define CONFIG_CAVS_DECODER 1 +#define CONFIG_CDGRAPHICS_DECODER 1 +#define CONFIG_CDXL_DECODER 1 +#define CONFIG_CINEPAK_DECODER 1 +#define CONFIG_CLJR_DECODER 1 +#define CONFIG_CLLC_DECODER 1 +#define CONFIG_COMFORTNOISE_DECODER 1 +#define CONFIG_CPIA_DECODER 1 +#define CONFIG_CSCD_DECODER 1 +#define CONFIG_CYUV_DECODER 1 +#define CONFIG_DFA_DECODER 1 +#define CONFIG_DIRAC_DECODER 1 +#define CONFIG_DNXHD_DECODER 1 +#define CONFIG_DPX_DECODER 1 +#define CONFIG_DSICINVIDEO_DECODER 1 +#define CONFIG_DVVIDEO_DECODER 1 +#define CONFIG_DXA_DECODER 1 +#define CONFIG_DXTORY_DECODER 1 +#define CONFIG_EACMV_DECODER 1 +#define CONFIG_EAMAD_DECODER 1 +#define CONFIG_EATGQ_DECODER 1 +#define CONFIG_EATGV_DECODER 1 +#define CONFIG_EATQI_DECODER 1 +#define CONFIG_EIGHTBPS_DECODER 1 +#define CONFIG_EIGHTSVX_EXP_DECODER 1 +#define CONFIG_EIGHTSVX_FIB_DECODER 1 +#define CONFIG_ESCAPE124_DECODER 1 +#define CONFIG_ESCAPE130_DECODER 1 +#define CONFIG_EXR_DECODER 1 +#define CONFIG_FFV1_DECODER 1 +#define CONFIG_FFVHUFF_DECODER 1 +#define CONFIG_FLASHSV_DECODER 1 +#define CONFIG_FLASHSV2_DECODER 1 +#define CONFIG_FLIC_DECODER 1 +#define CONFIG_FLV_DECODER 1 +#define CONFIG_FOURXM_DECODER 1 +#define CONFIG_FRAPS_DECODER 1 +#define CONFIG_FRWU_DECODER 1 +#define CONFIG_GIF_DECODER 1 +#define CONFIG_H261_DECODER 1 +#define CONFIG_H263_DECODER 1 +#define CONFIG_H263I_DECODER 1 +#define CONFIG_H263P_DECODER 1 +#define CONFIG_H264_DECODER 1 +#define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_VDA_DECODER 0 +#define CONFIG_H264_VDPAU_DECODER 0 +#define CONFIG_HUFFYUV_DECODER 1 +#define CONFIG_IDCIN_DECODER 1 +#define CONFIG_IFF_BYTERUN1_DECODER 1 +#define CONFIG_IFF_ILBM_DECODER 1 +#define CONFIG_INDEO2_DECODER 1 +#define CONFIG_INDEO3_DECODER 1 +#define CONFIG_INDEO4_DECODER 1 +#define CONFIG_INDEO5_DECODER 1 +#define CONFIG_INTERPLAY_VIDEO_DECODER 1 +#define CONFIG_JPEG2000_DECODER 1 +#define CONFIG_JPEGLS_DECODER 1 +#define CONFIG_JV_DECODER 1 +#define CONFIG_KGV1_DECODER 1 +#define CONFIG_KMVC_DECODER 1 +#define CONFIG_LAGARITH_DECODER 1 +#define CONFIG_LOCO_DECODER 1 +#define CONFIG_MDEC_DECODER 1 +#define CONFIG_MIMIC_DECODER 1 +#define CONFIG_MJPEG_DECODER 1 +#define CONFIG_MJPEGB_DECODER 1 +#define CONFIG_MMVIDEO_DECODER 1 +#define CONFIG_MOTIONPIXELS_DECODER 1 +#define CONFIG_MPEG_XVMC_DECODER 1 +#define CONFIG_MPEG1VIDEO_DECODER 1 +#define CONFIG_MPEG2VIDEO_DECODER 1 +#define CONFIG_MPEG4_DECODER 1 +#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG4_VDPAU_DECODER 0 +#define CONFIG_MPEGVIDEO_DECODER 1 +#define CONFIG_MPEG_VDPAU_DECODER 0 +#define CONFIG_MPEG1_VDPAU_DECODER 0 +#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MSA1_DECODER 1 +#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSMPEG4V1_DECODER 1 +#define CONFIG_MSMPEG4V2_DECODER 1 +#define CONFIG_MSMPEG4V3_DECODER 1 +#define CONFIG_MSRLE_DECODER 1 +#define CONFIG_MSS1_DECODER 1 +#define CONFIG_MSS2_DECODER 1 +#define CONFIG_MSVIDEO1_DECODER 1 +#define CONFIG_MSZH_DECODER 1 +#define CONFIG_MTS2_DECODER 1 +#define CONFIG_MVC1_DECODER 1 +#define CONFIG_MVC2_DECODER 1 +#define CONFIG_MXPEG_DECODER 1 +#define CONFIG_NUV_DECODER 1 +#define CONFIG_PAF_VIDEO_DECODER 1 +#define CONFIG_PAM_DECODER 1 +#define CONFIG_PBM_DECODER 1 +#define CONFIG_PCX_DECODER 1 +#define CONFIG_PGM_DECODER 1 +#define CONFIG_PGMYUV_DECODER 1 +#define CONFIG_PICTOR_DECODER 1 +#define CONFIG_PNG_DECODER 1 +#define CONFIG_PPM_DECODER 1 +#define CONFIG_PRORES_DECODER 1 +#define CONFIG_PRORES_LGPL_DECODER 1 +#define CONFIG_PTX_DECODER 1 +#define CONFIG_QDRAW_DECODER 1 +#define CONFIG_QPEG_DECODER 1 +#define CONFIG_QTRLE_DECODER 1 +#define CONFIG_R10K_DECODER 1 +#define CONFIG_R210_DECODER 1 +#define CONFIG_RAWVIDEO_DECODER 1 +#define CONFIG_RL2_DECODER 1 +#define CONFIG_ROQ_DECODER 1 +#define CONFIG_RPZA_DECODER 1 +#define CONFIG_RV10_DECODER 1 +#define CONFIG_RV20_DECODER 1 +#define CONFIG_RV30_DECODER 1 +#define CONFIG_RV40_DECODER 1 +#define CONFIG_S302M_DECODER 1 +#define CONFIG_SANM_DECODER 1 +#define CONFIG_SGI_DECODER 1 +#define CONFIG_SGIRLE_DECODER 1 +#define CONFIG_SMACKER_DECODER 1 +#define CONFIG_SMC_DECODER 1 +#define CONFIG_SNOW_DECODER 1 +#define CONFIG_SP5X_DECODER 1 +#define CONFIG_SUNRAST_DECODER 1 +#define CONFIG_SVQ1_DECODER 1 +#define CONFIG_SVQ3_DECODER 1 +#define CONFIG_TARGA_DECODER 1 +#define CONFIG_TARGA_Y216_DECODER 1 +#define CONFIG_THEORA_DECODER 1 +#define CONFIG_THP_DECODER 1 +#define CONFIG_TIERTEXSEQVIDEO_DECODER 1 +#define CONFIG_TIFF_DECODER 1 +#define CONFIG_TMV_DECODER 1 +#define CONFIG_TRUEMOTION1_DECODER 1 +#define CONFIG_TRUEMOTION2_DECODER 1 +#define CONFIG_TSCC_DECODER 1 +#define CONFIG_TSCC2_DECODER 1 +#define CONFIG_TXD_DECODER 1 +#define CONFIG_ULTI_DECODER 1 +#define CONFIG_UTVIDEO_DECODER 1 +#define CONFIG_V210_DECODER 1 +#define CONFIG_V210X_DECODER 1 +#define CONFIG_V308_DECODER 1 +#define CONFIG_V408_DECODER 1 +#define CONFIG_V410_DECODER 1 +#define CONFIG_VB_DECODER 1 +#define CONFIG_VBLE_DECODER 1 +#define CONFIG_VC1_DECODER 1 +#define CONFIG_VC1_CRYSTALHD_DECODER 0 +#define CONFIG_VC1_VDPAU_DECODER 0 +#define CONFIG_VC1IMAGE_DECODER 1 +#define CONFIG_VCR1_DECODER 1 +#define CONFIG_VMDVIDEO_DECODER 1 +#define CONFIG_VMNC_DECODER 1 +#define CONFIG_VP3_DECODER 1 +#define CONFIG_VP5_DECODER 1 +#define CONFIG_VP6_DECODER 1 +#define CONFIG_VP6A_DECODER 1 +#define CONFIG_VP6F_DECODER 1 +#define CONFIG_VP8_DECODER 1 +#define CONFIG_VQA_DECODER 1 +#define CONFIG_WMV1_DECODER 1 +#define CONFIG_WMV2_DECODER 1 +#define CONFIG_WMV3_DECODER 1 +#define CONFIG_WMV3_CRYSTALHD_DECODER 0 +#define CONFIG_WMV3_VDPAU_DECODER 0 +#define CONFIG_WMV3IMAGE_DECODER 1 +#define CONFIG_WNV1_DECODER 1 +#define CONFIG_XAN_WC3_DECODER 1 +#define CONFIG_XAN_WC4_DECODER 1 +#define CONFIG_XBM_DECODER 1 +#define CONFIG_XFACE_DECODER 1 +#define CONFIG_XL_DECODER 1 +#define CONFIG_XWD_DECODER 1 +#define CONFIG_Y41P_DECODER 1 +#define CONFIG_YOP_DECODER 1 +#define CONFIG_YUV4_DECODER 1 +#define CONFIG_ZERO12V_DECODER 1 +#define CONFIG_ZEROCODEC_DECODER 1 +#define CONFIG_ZLIB_DECODER 1 +#define CONFIG_ZMBV_DECODER 1 +#define CONFIG_AAC_DECODER 1 +#define CONFIG_AAC_LATM_DECODER 1 +#define CONFIG_AC3_DECODER 1 +#define CONFIG_ALAC_DECODER 1 +#define CONFIG_ALS_DECODER 1 +#define CONFIG_AMRNB_DECODER 1 +#define CONFIG_AMRWB_DECODER 1 +#define CONFIG_APE_DECODER 1 +#define CONFIG_ATRAC1_DECODER 1 +#define CONFIG_ATRAC3_DECODER 1 +#define CONFIG_BINKAUDIO_DCT_DECODER 1 +#define CONFIG_BINKAUDIO_RDFT_DECODER 1 +#define CONFIG_BMV_AUDIO_DECODER 1 +#define CONFIG_COOK_DECODER 1 +#define CONFIG_DCA_DECODER 1 +#define CONFIG_DSICINAUDIO_DECODER 1 +#define CONFIG_EAC3_DECODER 1 +#define CONFIG_EVRC_DECODER 1 +#define CONFIG_FFWAVESYNTH_DECODER 1 +#define CONFIG_FLAC_DECODER 1 +#define CONFIG_G723_1_DECODER 1 +#define CONFIG_G729_DECODER 1 +#define CONFIG_GSM_DECODER 1 +#define CONFIG_GSM_MS_DECODER 1 +#define CONFIG_IAC_DECODER 1 +#define CONFIG_IMC_DECODER 1 +#define CONFIG_MACE3_DECODER 1 +#define CONFIG_MACE6_DECODER 1 +#define CONFIG_MLP_DECODER 1 +#define CONFIG_MP1_DECODER 1 +#define CONFIG_MP1FLOAT_DECODER 1 +#define CONFIG_MP2_DECODER 1 +#define CONFIG_MP2FLOAT_DECODER 1 +#define CONFIG_MP3_DECODER 1 +#define CONFIG_MP3FLOAT_DECODER 1 +#define CONFIG_MP3ADU_DECODER 1 +#define CONFIG_MP3ADUFLOAT_DECODER 1 +#define CONFIG_MP3ON4_DECODER 1 +#define CONFIG_MP3ON4FLOAT_DECODER 1 +#define CONFIG_MPC7_DECODER 1 +#define CONFIG_MPC8_DECODER 1 +#define CONFIG_NELLYMOSER_DECODER 1 +#define CONFIG_PAF_AUDIO_DECODER 1 +#define CONFIG_QCELP_DECODER 1 +#define CONFIG_QDM2_DECODER 1 +#define CONFIG_RA_144_DECODER 1 +#define CONFIG_RA_288_DECODER 1 +#define CONFIG_RALF_DECODER 1 +#define CONFIG_SHORTEN_DECODER 1 +#define CONFIG_SIPR_DECODER 1 +#define CONFIG_SMACKAUD_DECODER 1 +#define CONFIG_SONIC_DECODER 1 +#define CONFIG_TAK_DECODER 1 +#define CONFIG_TRUEHD_DECODER 1 +#define CONFIG_TRUESPEECH_DECODER 1 +#define CONFIG_TTA_DECODER 1 +#define CONFIG_TWINVQ_DECODER 1 +#define CONFIG_VMDAUDIO_DECODER 1 +#define CONFIG_VORBIS_DECODER 1 +#define CONFIG_WAVPACK_DECODER 1 +#define CONFIG_WMALOSSLESS_DECODER 1 +#define CONFIG_WMAPRO_DECODER 1 +#define CONFIG_WMAV1_DECODER 1 +#define CONFIG_WMAV2_DECODER 1 +#define CONFIG_WMAVOICE_DECODER 1 +#define CONFIG_WS_SND1_DECODER 1 +#define CONFIG_PCM_ALAW_DECODER 1 +#define CONFIG_PCM_BLURAY_DECODER 1 +#define CONFIG_PCM_DVD_DECODER 1 +#define CONFIG_PCM_F32BE_DECODER 1 +#define CONFIG_PCM_F32LE_DECODER 1 +#define CONFIG_PCM_F64BE_DECODER 1 +#define CONFIG_PCM_F64LE_DECODER 1 +#define CONFIG_PCM_LXF_DECODER 1 +#define CONFIG_PCM_MULAW_DECODER 1 +#define CONFIG_PCM_S8_DECODER 1 +#define CONFIG_PCM_S8_PLANAR_DECODER 1 +#define CONFIG_PCM_S16BE_DECODER 1 +#define CONFIG_PCM_S16BE_PLANAR_DECODER 1 +#define CONFIG_PCM_S16LE_DECODER 1 +#define CONFIG_PCM_S16LE_PLANAR_DECODER 1 +#define CONFIG_PCM_S24BE_DECODER 1 +#define CONFIG_PCM_S24DAUD_DECODER 1 +#define CONFIG_PCM_S24LE_DECODER 1 +#define CONFIG_PCM_S24LE_PLANAR_DECODER 1 +#define CONFIG_PCM_S32BE_DECODER 1 +#define CONFIG_PCM_S32LE_DECODER 1 +#define CONFIG_PCM_S32LE_PLANAR_DECODER 1 +#define CONFIG_PCM_U8_DECODER 1 +#define CONFIG_PCM_U16BE_DECODER 1 +#define CONFIG_PCM_U16LE_DECODER 1 +#define CONFIG_PCM_U24BE_DECODER 1 +#define CONFIG_PCM_U24LE_DECODER 1 +#define CONFIG_PCM_U32BE_DECODER 1 +#define CONFIG_PCM_U32LE_DECODER 1 +#define CONFIG_PCM_ZORK_DECODER 1 +#define CONFIG_INTERPLAY_DPCM_DECODER 1 +#define CONFIG_ROQ_DPCM_DECODER 1 +#define CONFIG_SOL_DPCM_DECODER 1 +#define CONFIG_XAN_DPCM_DECODER 1 +#define CONFIG_ADPCM_4XM_DECODER 1 +#define CONFIG_ADPCM_ADX_DECODER 1 +#define CONFIG_ADPCM_AFC_DECODER 1 +#define CONFIG_ADPCM_CT_DECODER 1 +#define CONFIG_ADPCM_EA_DECODER 1 +#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1 +#define CONFIG_ADPCM_EA_R1_DECODER 1 +#define CONFIG_ADPCM_EA_R2_DECODER 1 +#define CONFIG_ADPCM_EA_R3_DECODER 1 +#define CONFIG_ADPCM_EA_XAS_DECODER 1 +#define CONFIG_ADPCM_G722_DECODER 1 +#define CONFIG_ADPCM_G726_DECODER 1 +#define CONFIG_ADPCM_IMA_AMV_DECODER 1 +#define CONFIG_ADPCM_IMA_APC_DECODER 1 +#define CONFIG_ADPCM_IMA_DK3_DECODER 1 +#define CONFIG_ADPCM_IMA_DK4_DECODER 1 +#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1 +#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1 +#define CONFIG_ADPCM_IMA_ISS_DECODER 1 +#define CONFIG_ADPCM_IMA_OKI_DECODER 1 +#define CONFIG_ADPCM_IMA_QT_DECODER 1 +#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1 +#define CONFIG_ADPCM_IMA_WAV_DECODER 1 +#define CONFIG_ADPCM_IMA_WS_DECODER 1 +#define CONFIG_ADPCM_MS_DECODER 1 +#define CONFIG_ADPCM_SBPRO_2_DECODER 1 +#define CONFIG_ADPCM_SBPRO_3_DECODER 1 +#define CONFIG_ADPCM_SBPRO_4_DECODER 1 +#define CONFIG_ADPCM_SWF_DECODER 1 +#define CONFIG_ADPCM_THP_DECODER 1 +#define CONFIG_ADPCM_XA_DECODER 1 +#define CONFIG_ADPCM_YAMAHA_DECODER 1 +#define CONFIG_VIMA_DECODER 1 +#define CONFIG_ASS_DECODER 1 +#define CONFIG_DVBSUB_DECODER 1 +#define CONFIG_DVDSUB_DECODER 1 +#define CONFIG_JACOSUB_DECODER 1 +#define CONFIG_MICRODVD_DECODER 1 +#define CONFIG_MOVTEXT_DECODER 1 +#define CONFIG_MPL2_DECODER 1 +#define CONFIG_PGSSUB_DECODER 1 +#define CONFIG_PJS_DECODER 1 +#define CONFIG_REALTEXT_DECODER 1 +#define CONFIG_SAMI_DECODER 1 +#define CONFIG_SRT_DECODER 1 +#define CONFIG_SUBRIP_DECODER 1 +#define CONFIG_SUBVIEWER_DECODER 1 +#define CONFIG_SUBVIEWER1_DECODER 1 +#define CONFIG_TEXT_DECODER 1 +#define CONFIG_VPLAYER_DECODER 1 +#define CONFIG_WEBVTT_DECODER 1 +#define CONFIG_XSUB_DECODER 1 +#define CONFIG_LIBCELT_DECODER 0 +#define CONFIG_LIBGSM_DECODER 0 +#define CONFIG_LIBGSM_MS_DECODER 0 +#define CONFIG_LIBILBC_DECODER 0 +#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 +#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 +#define CONFIG_LIBOPENJPEG_DECODER 0 +#define CONFIG_LIBOPUS_DECODER 0 +#define CONFIG_LIBSCHROEDINGER_DECODER 1 +#define CONFIG_LIBSPEEX_DECODER 0 +#define CONFIG_LIBSTAGEFRIGHT_H264_DECODER 0 +#define CONFIG_LIBUTVIDEO_DECODER 0 +#define CONFIG_LIBVORBIS_DECODER 1 +#define CONFIG_LIBVPX_VP8_DECODER 0 +#define CONFIG_LIBVPX_VP9_DECODER 0 +#define CONFIG_BINTEXT_DECODER 1 +#define CONFIG_XBIN_DECODER 1 +#define CONFIG_IDF_DECODER 1 +#define CONFIG_AAC_DEMUXER 1 +#define CONFIG_AC3_DEMUXER 1 +#define CONFIG_ACT_DEMUXER 1 +#define CONFIG_ADF_DEMUXER 1 +#define CONFIG_ADX_DEMUXER 1 +#define CONFIG_AEA_DEMUXER 1 +#define CONFIG_AFC_DEMUXER 1 +#define CONFIG_AIFF_DEMUXER 1 +#define CONFIG_AMR_DEMUXER 1 +#define CONFIG_ANM_DEMUXER 1 +#define CONFIG_APC_DEMUXER 1 +#define CONFIG_APE_DEMUXER 1 +#define CONFIG_AQTITLE_DEMUXER 1 +#define CONFIG_ASF_DEMUXER 1 +#define CONFIG_ASS_DEMUXER 1 +#define CONFIG_AST_DEMUXER 1 +#define CONFIG_AU_DEMUXER 1 +#define CONFIG_AVI_DEMUXER 1 +#define CONFIG_AVISYNTH_DEMUXER 0 +#define CONFIG_AVR_DEMUXER 1 +#define CONFIG_AVS_DEMUXER 1 +#define CONFIG_BETHSOFTVID_DEMUXER 1 +#define CONFIG_BFI_DEMUXER 1 +#define CONFIG_BINTEXT_DEMUXER 1 +#define CONFIG_BINK_DEMUXER 1 +#define CONFIG_BIT_DEMUXER 1 +#define CONFIG_BMV_DEMUXER 1 +#define CONFIG_BRSTM_DEMUXER 1 +#define CONFIG_C93_DEMUXER 1 +#define CONFIG_CAF_DEMUXER 1 +#define CONFIG_CAVSVIDEO_DEMUXER 1 +#define CONFIG_CDG_DEMUXER 1 +#define CONFIG_CDXL_DEMUXER 1 +#define CONFIG_CONCAT_DEMUXER 1 +#define CONFIG_DAUD_DEMUXER 1 +#define CONFIG_DFA_DEMUXER 1 +#define CONFIG_DIRAC_DEMUXER 1 +#define CONFIG_DNXHD_DEMUXER 1 +#define CONFIG_DSICIN_DEMUXER 1 +#define CONFIG_DTS_DEMUXER 1 +#define CONFIG_DTSHD_DEMUXER 1 +#define CONFIG_DV_DEMUXER 1 +#define CONFIG_DXA_DEMUXER 1 +#define CONFIG_EA_DEMUXER 1 +#define CONFIG_EA_CDATA_DEMUXER 1 +#define CONFIG_EAC3_DEMUXER 1 +#define CONFIG_EPAF_DEMUXER 1 +#define CONFIG_FFM_DEMUXER 1 +#define CONFIG_FFMETADATA_DEMUXER 1 +#define CONFIG_FILMSTRIP_DEMUXER 1 +#define CONFIG_FLAC_DEMUXER 1 +#define CONFIG_FLIC_DEMUXER 1 +#define CONFIG_FLV_DEMUXER 1 +#define CONFIG_FOURXM_DEMUXER 1 +#define CONFIG_FRM_DEMUXER 1 +#define CONFIG_G722_DEMUXER 1 +#define CONFIG_G723_1_DEMUXER 1 +#define CONFIG_G729_DEMUXER 1 +#define CONFIG_GIF_DEMUXER 1 +#define CONFIG_GSM_DEMUXER 1 +#define CONFIG_GXF_DEMUXER 1 +#define CONFIG_H261_DEMUXER 1 +#define CONFIG_H263_DEMUXER 1 +#define CONFIG_H264_DEMUXER 1 +#define CONFIG_HLS_DEMUXER 1 +#define CONFIG_ICO_DEMUXER 1 +#define CONFIG_IDCIN_DEMUXER 1 +#define CONFIG_IDF_DEMUXER 1 +#define CONFIG_IFF_DEMUXER 1 +#define CONFIG_ILBC_DEMUXER 1 +#define CONFIG_IMAGE2_DEMUXER 1 +#define CONFIG_IMAGE2PIPE_DEMUXER 1 +#define CONFIG_INGENIENT_DEMUXER 1 +#define CONFIG_IPMOVIE_DEMUXER 1 +#define CONFIG_IRCAM_DEMUXER 1 +#define CONFIG_ISS_DEMUXER 1 +#define CONFIG_IV8_DEMUXER 1 +#define CONFIG_IVF_DEMUXER 1 +#define CONFIG_JACOSUB_DEMUXER 1 +#define CONFIG_JV_DEMUXER 1 +#define CONFIG_LATM_DEMUXER 1 +#define CONFIG_LMLM4_DEMUXER 1 +#define CONFIG_LOAS_DEMUXER 1 +#define CONFIG_LVF_DEMUXER 1 +#define CONFIG_LXF_DEMUXER 1 +#define CONFIG_M4V_DEMUXER 1 +#define CONFIG_MATROSKA_DEMUXER 1 +#define CONFIG_MGSTS_DEMUXER 1 +#define CONFIG_MICRODVD_DEMUXER 1 +#define CONFIG_MJPEG_DEMUXER 1 +#define CONFIG_MLP_DEMUXER 1 +#define CONFIG_MM_DEMUXER 1 +#define CONFIG_MMF_DEMUXER 1 +#define CONFIG_MOV_DEMUXER 1 +#define CONFIG_MP3_DEMUXER 1 +#define CONFIG_MPC_DEMUXER 1 +#define CONFIG_MPC8_DEMUXER 1 +#define CONFIG_MPEGPS_DEMUXER 1 +#define CONFIG_MPEGTS_DEMUXER 1 +#define CONFIG_MPEGTSRAW_DEMUXER 1 +#define CONFIG_MPEGVIDEO_DEMUXER 1 +#define CONFIG_MPL2_DEMUXER 1 +#define CONFIG_MPSUB_DEMUXER 1 +#define CONFIG_MSNWC_TCP_DEMUXER 1 +#define CONFIG_MTV_DEMUXER 1 +#define CONFIG_MV_DEMUXER 1 +#define CONFIG_MVI_DEMUXER 1 +#define CONFIG_MXF_DEMUXER 1 +#define CONFIG_MXG_DEMUXER 1 +#define CONFIG_NC_DEMUXER 1 +#define CONFIG_NISTSPHERE_DEMUXER 1 +#define CONFIG_NSV_DEMUXER 1 +#define CONFIG_NUT_DEMUXER 1 +#define CONFIG_NUV_DEMUXER 1 +#define CONFIG_OGG_DEMUXER 1 +#define CONFIG_OMA_DEMUXER 1 +#define CONFIG_PAF_DEMUXER 1 +#define CONFIG_PCM_ALAW_DEMUXER 1 +#define CONFIG_PCM_MULAW_DEMUXER 1 +#define CONFIG_PCM_F64BE_DEMUXER 1 +#define CONFIG_PCM_F64LE_DEMUXER 1 +#define CONFIG_PCM_F32BE_DEMUXER 1 +#define CONFIG_PCM_F32LE_DEMUXER 1 +#define CONFIG_PCM_S32BE_DEMUXER 1 +#define CONFIG_PCM_S32LE_DEMUXER 1 +#define CONFIG_PCM_S24BE_DEMUXER 1 +#define CONFIG_PCM_S24LE_DEMUXER 1 +#define CONFIG_PCM_S16BE_DEMUXER 1 +#define CONFIG_PCM_S16LE_DEMUXER 1 +#define CONFIG_PCM_S8_DEMUXER 1 +#define CONFIG_PCM_U32BE_DEMUXER 1 +#define CONFIG_PCM_U32LE_DEMUXER 1 +#define CONFIG_PCM_U24BE_DEMUXER 1 +#define CONFIG_PCM_U24LE_DEMUXER 1 +#define CONFIG_PCM_U16BE_DEMUXER 1 +#define CONFIG_PCM_U16LE_DEMUXER 1 +#define CONFIG_PCM_U8_DEMUXER 1 +#define CONFIG_PJS_DEMUXER 1 +#define CONFIG_PMP_DEMUXER 1 +#define CONFIG_PVA_DEMUXER 1 +#define CONFIG_PVF_DEMUXER 1 +#define CONFIG_QCP_DEMUXER 1 +#define CONFIG_R3D_DEMUXER 1 +#define CONFIG_RAWVIDEO_DEMUXER 1 +#define CONFIG_REALTEXT_DEMUXER 1 +#define CONFIG_RL2_DEMUXER 1 +#define CONFIG_RM_DEMUXER 1 +#define CONFIG_ROQ_DEMUXER 1 +#define CONFIG_RPL_DEMUXER 1 +#define CONFIG_RSO_DEMUXER 1 +#define CONFIG_RTP_DEMUXER 1 +#define CONFIG_RTSP_DEMUXER 1 +#define CONFIG_SAMI_DEMUXER 1 +#define CONFIG_SAP_DEMUXER 1 +#define CONFIG_SBG_DEMUXER 1 +#define CONFIG_SDP_DEMUXER 1 +#define CONFIG_SEGAFILM_DEMUXER 1 +#define CONFIG_SHORTEN_DEMUXER 1 +#define CONFIG_SIFF_DEMUXER 1 +#define CONFIG_SMACKER_DEMUXER 1 +#define CONFIG_SMJPEG_DEMUXER 1 +#define CONFIG_SMUSH_DEMUXER 1 +#define CONFIG_SOL_DEMUXER 1 +#define CONFIG_SOX_DEMUXER 1 +#define CONFIG_SPDIF_DEMUXER 1 +#define CONFIG_SRT_DEMUXER 1 +#define CONFIG_STR_DEMUXER 1 +#define CONFIG_SUBVIEWER1_DEMUXER 1 +#define CONFIG_SUBVIEWER_DEMUXER 1 +#define CONFIG_SWF_DEMUXER 1 +#define CONFIG_TAK_DEMUXER 1 +#define CONFIG_TEDCAPTIONS_DEMUXER 1 +#define CONFIG_THP_DEMUXER 1 +#define CONFIG_TIERTEXSEQ_DEMUXER 1 +#define CONFIG_TMV_DEMUXER 1 +#define CONFIG_TRUEHD_DEMUXER 1 +#define CONFIG_TTA_DEMUXER 1 +#define CONFIG_TXD_DEMUXER 1 +#define CONFIG_TTY_DEMUXER 1 +#define CONFIG_VC1_DEMUXER 1 +#define CONFIG_VC1T_DEMUXER 1 +#define CONFIG_VIVO_DEMUXER 1 +#define CONFIG_VMD_DEMUXER 1 +#define CONFIG_VOBSUB_DEMUXER 1 +#define CONFIG_VOC_DEMUXER 1 +#define CONFIG_VPLAYER_DEMUXER 1 +#define CONFIG_VQF_DEMUXER 1 +#define CONFIG_W64_DEMUXER 1 +#define CONFIG_WAV_DEMUXER 1 +#define CONFIG_WC3_DEMUXER 1 +#define CONFIG_WEBVTT_DEMUXER 1 +#define CONFIG_WSAUD_DEMUXER 1 +#define CONFIG_WSVQA_DEMUXER 1 +#define CONFIG_WTV_DEMUXER 1 +#define CONFIG_WV_DEMUXER 1 +#define CONFIG_XA_DEMUXER 1 +#define CONFIG_XBIN_DEMUXER 1 +#define CONFIG_XMV_DEMUXER 1 +#define CONFIG_XWMA_DEMUXER 1 +#define CONFIG_YOP_DEMUXER 1 +#define CONFIG_YUV4MPEGPIPE_DEMUXER 1 +#define CONFIG_LIBMODPLUG_DEMUXER 0 +#define CONFIG_LIBNUT_DEMUXER 0 +#define CONFIG_A64MULTI_ENCODER 1 +#define CONFIG_A64MULTI5_ENCODER 1 +#define CONFIG_AMV_ENCODER 1 +#define CONFIG_ASV1_ENCODER 1 +#define CONFIG_ASV2_ENCODER 1 +#define CONFIG_AVRP_ENCODER 1 +#define CONFIG_AVUI_ENCODER 1 +#define CONFIG_AYUV_ENCODER 1 +#define CONFIG_BMP_ENCODER 1 +#define CONFIG_CLJR_ENCODER 1 +#define CONFIG_COMFORTNOISE_ENCODER 1 +#define CONFIG_DNXHD_ENCODER 1 +#define CONFIG_DPX_ENCODER 1 +#define CONFIG_DVVIDEO_ENCODER 1 +#define CONFIG_FFV1_ENCODER 1 +#define CONFIG_FFVHUFF_ENCODER 1 +#define CONFIG_FLASHSV_ENCODER 1 +#define CONFIG_FLASHSV2_ENCODER 1 +#define CONFIG_FLV_ENCODER 1 +#define CONFIG_GIF_ENCODER 1 +#define CONFIG_H261_ENCODER 1 +#define CONFIG_H263_ENCODER 1 +#define CONFIG_H263P_ENCODER 1 +#define CONFIG_HUFFYUV_ENCODER 1 +#define CONFIG_JPEG2000_ENCODER 1 +#define CONFIG_JPEGLS_ENCODER 1 +#define CONFIG_LJPEG_ENCODER 1 +#define CONFIG_MJPEG_ENCODER 1 +#define CONFIG_MPEG1VIDEO_ENCODER 1 +#define CONFIG_MPEG2VIDEO_ENCODER 1 +#define CONFIG_MPEG4_ENCODER 1 +#define CONFIG_MSMPEG4V2_ENCODER 1 +#define CONFIG_MSMPEG4V3_ENCODER 1 +#define CONFIG_MSVIDEO1_ENCODER 1 +#define CONFIG_PAM_ENCODER 1 +#define CONFIG_PBM_ENCODER 1 +#define CONFIG_PCX_ENCODER 1 +#define CONFIG_PGM_ENCODER 1 +#define CONFIG_PGMYUV_ENCODER 1 +#define CONFIG_PNG_ENCODER 1 +#define CONFIG_PPM_ENCODER 1 +#define CONFIG_PRORES_ENCODER 1 +#define CONFIG_PRORES_ANATOLIY_ENCODER 1 +#define CONFIG_PRORES_KOSTYA_ENCODER 1 +#define CONFIG_QTRLE_ENCODER 1 +#define CONFIG_R10K_ENCODER 1 +#define CONFIG_R210_ENCODER 1 +#define CONFIG_RAWVIDEO_ENCODER 1 +#define CONFIG_ROQ_ENCODER 1 +#define CONFIG_RV10_ENCODER 1 +#define CONFIG_RV20_ENCODER 1 +#define CONFIG_SGI_ENCODER 1 +#define CONFIG_SNOW_ENCODER 1 +#define CONFIG_SUNRAST_ENCODER 1 +#define CONFIG_SVQ1_ENCODER 1 +#define CONFIG_TARGA_ENCODER 1 +#define CONFIG_TIFF_ENCODER 1 +#define CONFIG_UTVIDEO_ENCODER 1 +#define CONFIG_V210_ENCODER 1 +#define CONFIG_V308_ENCODER 1 +#define CONFIG_V408_ENCODER 1 +#define CONFIG_V410_ENCODER 1 +#define CONFIG_WMV1_ENCODER 1 +#define CONFIG_WMV2_ENCODER 1 +#define CONFIG_XBM_ENCODER 1 +#define CONFIG_XFACE_ENCODER 1 +#define CONFIG_XWD_ENCODER 1 +#define CONFIG_Y41P_ENCODER 1 +#define CONFIG_YUV4_ENCODER 1 +#define CONFIG_ZLIB_ENCODER 1 +#define CONFIG_ZMBV_ENCODER 1 +#define CONFIG_AAC_ENCODER 1 +#define CONFIG_AC3_ENCODER 1 +#define CONFIG_AC3_FIXED_ENCODER 1 +#define CONFIG_ALAC_ENCODER 1 +#define CONFIG_DCA_ENCODER 1 +#define CONFIG_EAC3_ENCODER 1 +#define CONFIG_FLAC_ENCODER 1 +#define CONFIG_G723_1_ENCODER 1 +#define CONFIG_MP2_ENCODER 1 +#define CONFIG_NELLYMOSER_ENCODER 1 +#define CONFIG_RA_144_ENCODER 1 +#define CONFIG_SONIC_ENCODER 1 +#define CONFIG_SONIC_LS_ENCODER 1 +#define CONFIG_VORBIS_ENCODER 1 +#define CONFIG_WMAV1_ENCODER 1 +#define CONFIG_WMAV2_ENCODER 1 +#define CONFIG_PCM_ALAW_ENCODER 1 +#define CONFIG_PCM_F32BE_ENCODER 1 +#define CONFIG_PCM_F32LE_ENCODER 1 +#define CONFIG_PCM_F64BE_ENCODER 1 +#define CONFIG_PCM_F64LE_ENCODER 1 +#define CONFIG_PCM_MULAW_ENCODER 1 +#define CONFIG_PCM_S8_ENCODER 1 +#define CONFIG_PCM_S8_PLANAR_ENCODER 1 +#define CONFIG_PCM_S16BE_ENCODER 1 +#define CONFIG_PCM_S16BE_PLANAR_ENCODER 1 +#define CONFIG_PCM_S16LE_ENCODER 1 +#define CONFIG_PCM_S16LE_PLANAR_ENCODER 1 +#define CONFIG_PCM_S24BE_ENCODER 1 +#define CONFIG_PCM_S24DAUD_ENCODER 1 +#define CONFIG_PCM_S24LE_ENCODER 1 +#define CONFIG_PCM_S24LE_PLANAR_ENCODER 1 +#define CONFIG_PCM_S32BE_ENCODER 1 +#define CONFIG_PCM_S32LE_ENCODER 1 +#define CONFIG_PCM_S32LE_PLANAR_ENCODER 1 +#define CONFIG_PCM_U8_ENCODER 1 +#define CONFIG_PCM_U16BE_ENCODER 1 +#define CONFIG_PCM_U16LE_ENCODER 1 +#define CONFIG_PCM_U24BE_ENCODER 1 +#define CONFIG_PCM_U24LE_ENCODER 1 +#define CONFIG_PCM_U32BE_ENCODER 1 +#define CONFIG_PCM_U32LE_ENCODER 1 +#define CONFIG_ROQ_DPCM_ENCODER 1 +#define CONFIG_ADPCM_ADX_ENCODER 1 +#define CONFIG_ADPCM_G722_ENCODER 1 +#define CONFIG_ADPCM_G726_ENCODER 1 +#define CONFIG_ADPCM_IMA_QT_ENCODER 1 +#define CONFIG_ADPCM_IMA_WAV_ENCODER 1 +#define CONFIG_ADPCM_MS_ENCODER 1 +#define CONFIG_ADPCM_SWF_ENCODER 1 +#define CONFIG_ADPCM_YAMAHA_ENCODER 1 +#define CONFIG_ASS_ENCODER 1 +#define CONFIG_DVBSUB_ENCODER 1 +#define CONFIG_DVDSUB_ENCODER 1 +#define CONFIG_MOVTEXT_ENCODER 1 +#define CONFIG_SRT_ENCODER 1 +#define CONFIG_SUBRIP_ENCODER 1 +#define CONFIG_XSUB_ENCODER 1 +#define CONFIG_LIBFAAC_ENCODER 1 +#define CONFIG_LIBFDK_AAC_ENCODER 0 +#define CONFIG_LIBGSM_ENCODER 0 +#define CONFIG_LIBGSM_MS_ENCODER 0 +#define CONFIG_LIBILBC_ENCODER 0 +#define CONFIG_LIBMP3LAME_ENCODER 1 +#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 +#define CONFIG_LIBOPENJPEG_ENCODER 0 +#define CONFIG_LIBOPUS_ENCODER 0 +#define CONFIG_LIBSCHROEDINGER_ENCODER 1 +#define CONFIG_LIBSPEEX_ENCODER 0 +#define CONFIG_LIBTHEORA_ENCODER 1 +#define CONFIG_LIBTWOLAME_ENCODER 0 +#define CONFIG_LIBUTVIDEO_ENCODER 0 +#define CONFIG_LIBVO_AACENC_ENCODER 0 +#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 +#define CONFIG_LIBVORBIS_ENCODER 1 +#define CONFIG_LIBVPX_VP8_ENCODER 0 +#define CONFIG_LIBVPX_VP9_ENCODER 0 +#define CONFIG_LIBX264_ENCODER 1 +#define CONFIG_LIBX264RGB_ENCODER 1 +#define CONFIG_LIBXAVS_ENCODER 0 +#define CONFIG_LIBXVID_ENCODER 1 +#define CONFIG_LIBAACPLUS_ENCODER 0 +#define CONFIG_ACONVERT_FILTER 1 +#define CONFIG_AFADE_FILTER 1 +#define CONFIG_AFORMAT_FILTER 1 +#define CONFIG_ALLPASS_FILTER 1 +#define CONFIG_AMERGE_FILTER 1 +#define CONFIG_AMIX_FILTER 1 +#define CONFIG_ANULL_FILTER 1 +#define CONFIG_APAD_FILTER 1 +#define CONFIG_APERMS_FILTER 1 +#define CONFIG_ARESAMPLE_FILTER 1 +#define CONFIG_ASELECT_FILTER 1 +#define CONFIG_ASENDCMD_FILTER 1 +#define CONFIG_ASETNSAMPLES_FILTER 1 +#define CONFIG_ASETPTS_FILTER 1 +#define CONFIG_ASETTB_FILTER 1 +#define CONFIG_ASHOWINFO_FILTER 1 +#define CONFIG_ASPLIT_FILTER 1 +#define CONFIG_ASTREAMSYNC_FILTER 1 +#define CONFIG_ASYNCTS_FILTER 0 +#define CONFIG_ATEMPO_FILTER 1 +#define CONFIG_BANDPASS_FILTER 1 +#define CONFIG_BANDREJECT_FILTER 1 +#define CONFIG_BASS_FILTER 1 +#define CONFIG_BIQUAD_FILTER 1 +#define CONFIG_CHANNELMAP_FILTER 1 +#define CONFIG_CHANNELSPLIT_FILTER 1 +#define CONFIG_EARWAX_FILTER 1 +#define CONFIG_EBUR128_FILTER 1 +#define CONFIG_EQUALIZER_FILTER 1 +#define CONFIG_HIGHPASS_FILTER 1 +#define CONFIG_JOIN_FILTER 1 +#define CONFIG_LOWPASS_FILTER 1 +#define CONFIG_PAN_FILTER 1 +#define CONFIG_RESAMPLE_FILTER 0 +#define CONFIG_SILENCEDETECT_FILTER 1 +#define CONFIG_TREBLE_FILTER 1 +#define CONFIG_VOLUME_FILTER 1 +#define CONFIG_VOLUMEDETECT_FILTER 1 +#define CONFIG_AEVALSRC_FILTER 1 +#define CONFIG_ANULLSRC_FILTER 1 +#define CONFIG_FLITE_FILTER 0 +#define CONFIG_SINE_FILTER 1 +#define CONFIG_ANULLSINK_FILTER 1 +#define CONFIG_ALPHAEXTRACT_FILTER 1 +#define CONFIG_ALPHAMERGE_FILTER 1 +#define CONFIG_ASS_FILTER 0 +#define CONFIG_BBOX_FILTER 1 +#define CONFIG_BLACKDETECT_FILTER 1 +#define CONFIG_BLACKFRAME_FILTER 1 +#define CONFIG_BLEND_FILTER 1 +#define CONFIG_BOXBLUR_FILTER 1 +#define CONFIG_COLORMATRIX_FILTER 1 +#define CONFIG_COPY_FILTER 1 +#define CONFIG_CROP_FILTER 1 +#define CONFIG_CROPDETECT_FILTER 1 +#define CONFIG_CURVES_FILTER 1 +#define CONFIG_DECIMATE_FILTER 1 +#define CONFIG_DELOGO_FILTER 1 +#define CONFIG_DESHAKE_FILTER 1 +#define CONFIG_DRAWBOX_FILTER 1 +#define CONFIG_DRAWTEXT_FILTER 0 +#define CONFIG_EDGEDETECT_FILTER 1 +#define CONFIG_FADE_FILTER 1 +#define CONFIG_FIELD_FILTER 1 +#define CONFIG_FIELDORDER_FILTER 1 +#define CONFIG_FORMAT_FILTER 1 +#define CONFIG_FPS_FILTER 1 +#define CONFIG_FRAMESTEP_FILTER 1 +#define CONFIG_FREI0R_FILTER 0 +#define CONFIG_GEQ_FILTER 1 +#define CONFIG_GRADFUN_FILTER 1 +#define CONFIG_HFLIP_FILTER 1 +#define CONFIG_HISTEQ_FILTER 1 +#define CONFIG_HISTOGRAM_FILTER 1 +#define CONFIG_HQDN3D_FILTER 1 +#define CONFIG_HUE_FILTER 1 +#define CONFIG_IDET_FILTER 1 +#define CONFIG_IL_FILTER 1 +#define CONFIG_KERNDEINT_FILTER 1 +#define CONFIG_LUT_FILTER 1 +#define CONFIG_LUTRGB_FILTER 1 +#define CONFIG_LUTYUV_FILTER 1 +#define CONFIG_MP_FILTER 1 +#define CONFIG_NEGATE_FILTER 1 +#define CONFIG_NOFORMAT_FILTER 1 +#define CONFIG_NOISE_FILTER 1 +#define CONFIG_NULL_FILTER 1 +#define CONFIG_OCV_FILTER 0 +#define CONFIG_OVERLAY_FILTER 1 +#define CONFIG_PAD_FILTER 1 +#define CONFIG_PERMS_FILTER 1 +#define CONFIG_PIXDESCTEST_FILTER 1 +#define CONFIG_PP_FILTER 1 +#define CONFIG_REMOVELOGO_FILTER 1 +#define CONFIG_SCALE_FILTER 1 +#define CONFIG_SELECT_FILTER 1 +#define CONFIG_SENDCMD_FILTER 1 +#define CONFIG_SETDAR_FILTER 1 +#define CONFIG_SETFIELD_FILTER 1 +#define CONFIG_SETPTS_FILTER 1 +#define CONFIG_SETSAR_FILTER 1 +#define CONFIG_SETTB_FILTER 1 +#define CONFIG_SHOWINFO_FILTER 1 +#define CONFIG_SMARTBLUR_FILTER 1 +#define CONFIG_SPLIT_FILTER 1 +#define CONFIG_STEREO3D_FILTER 1 +#define CONFIG_SUBTITLES_FILTER 0 +#define CONFIG_SUPER2XSAI_FILTER 1 +#define CONFIG_SWAPUV_FILTER 1 +#define CONFIG_THUMBNAIL_FILTER 1 +#define CONFIG_TILE_FILTER 1 +#define CONFIG_TINTERLACE_FILTER 1 +#define CONFIG_TRANSPOSE_FILTER 1 +#define CONFIG_UNSHARP_FILTER 1 +#define CONFIG_VFLIP_FILTER 1 +#define CONFIG_YADIF_FILTER 1 +#define CONFIG_CELLAUTO_FILTER 1 +#define CONFIG_COLOR_FILTER 1 +#define CONFIG_FREI0R_SRC_FILTER 0 +#define CONFIG_LIFE_FILTER 1 +#define CONFIG_MANDELBROT_FILTER 1 +#define CONFIG_MPTESTSRC_FILTER 1 +#define CONFIG_NULLSRC_FILTER 1 +#define CONFIG_RGBTESTSRC_FILTER 1 +#define CONFIG_SMPTEBARS_FILTER 1 +#define CONFIG_TESTSRC_FILTER 1 +#define CONFIG_NULLSINK_FILTER 1 +#define CONFIG_CONCAT_FILTER 1 +#define CONFIG_SHOWSPECTRUM_FILTER 1 +#define CONFIG_SHOWWAVES_FILTER 1 +#define CONFIG_AMOVIE_FILTER 1 +#define CONFIG_MOVIE_FILTER 1 +#define CONFIG_H263_VAAPI_HWACCEL 0 +#define CONFIG_H263_VDPAU_HWACCEL 0 +#define CONFIG_H264_DXVA2_HWACCEL 0 +#define CONFIG_H264_VAAPI_HWACCEL 0 +#define CONFIG_H264_VDA_HWACCEL 0 +#define CONFIG_H264_VDPAU_HWACCEL 0 +#define CONFIG_MPEG1_VDPAU_HWACCEL 0 +#define CONFIG_MPEG2_DXVA2_HWACCEL 0 +#define CONFIG_MPEG2_VAAPI_HWACCEL 0 +#define CONFIG_MPEG2_VDPAU_HWACCEL 0 +#define CONFIG_MPEG4_VAAPI_HWACCEL 0 +#define CONFIG_MPEG4_VDPAU_HWACCEL 0 +#define CONFIG_VC1_DXVA2_HWACCEL 0 +#define CONFIG_VC1_VAAPI_HWACCEL 0 +#define CONFIG_VC1_VDPAU_HWACCEL 0 +#define CONFIG_WMV3_DXVA2_HWACCEL 0 +#define CONFIG_WMV3_VAAPI_HWACCEL 0 +#define CONFIG_WMV3_VDPAU_HWACCEL 0 +#define CONFIG_ALSA_INDEV 0 +#define CONFIG_BKTR_INDEV 0 +#define CONFIG_DSHOW_INDEV 0 +#define CONFIG_DV1394_INDEV 1 +#define CONFIG_FBDEV_INDEV 1 +#define CONFIG_IEC61883_INDEV 0 +#define CONFIG_JACK_INDEV 0 +#define CONFIG_LAVFI_INDEV 1 +#define CONFIG_OPENAL_INDEV 0 +#define CONFIG_OSS_INDEV 1 +#define CONFIG_PULSE_INDEV 0 +#define CONFIG_SNDIO_INDEV 0 +#define CONFIG_V4L2_INDEV 1 +#define CONFIG_VFWCAP_INDEV 0 +#define CONFIG_X11GRAB_INDEV 1 +#define CONFIG_LIBCDIO_INDEV 0 +#define CONFIG_LIBDC1394_INDEV 0 +#define CONFIG_A64_MUXER 1 +#define CONFIG_AC3_MUXER 1 +#define CONFIG_ADTS_MUXER 1 +#define CONFIG_ADX_MUXER 1 +#define CONFIG_AIFF_MUXER 1 +#define CONFIG_AMR_MUXER 1 +#define CONFIG_ASF_MUXER 1 +#define CONFIG_ASS_MUXER 1 +#define CONFIG_AST_MUXER 1 +#define CONFIG_ASF_STREAM_MUXER 1 +#define CONFIG_AU_MUXER 1 +#define CONFIG_AVI_MUXER 1 +#define CONFIG_AVM2_MUXER 1 +#define CONFIG_BIT_MUXER 1 +#define CONFIG_CAF_MUXER 1 +#define CONFIG_CAVSVIDEO_MUXER 1 +#define CONFIG_CRC_MUXER 1 +#define CONFIG_DAUD_MUXER 1 +#define CONFIG_DIRAC_MUXER 1 +#define CONFIG_DNXHD_MUXER 1 +#define CONFIG_DTS_MUXER 1 +#define CONFIG_DV_MUXER 1 +#define CONFIG_EAC3_MUXER 1 +#define CONFIG_F4V_MUXER 1 +#define CONFIG_FFM_MUXER 1 +#define CONFIG_FFMETADATA_MUXER 1 +#define CONFIG_FILMSTRIP_MUXER 1 +#define CONFIG_FLAC_MUXER 1 +#define CONFIG_FLV_MUXER 1 +#define CONFIG_FRAMECRC_MUXER 1 +#define CONFIG_FRAMEMD5_MUXER 1 +#define CONFIG_G722_MUXER 1 +#define CONFIG_G723_1_MUXER 1 +#define CONFIG_GIF_MUXER 1 +#define CONFIG_GXF_MUXER 1 +#define CONFIG_H261_MUXER 1 +#define CONFIG_H263_MUXER 1 +#define CONFIG_H264_MUXER 1 +#define CONFIG_HLS_MUXER 1 +#define CONFIG_ICO_MUXER 1 +#define CONFIG_ILBC_MUXER 1 +#define CONFIG_IMAGE2_MUXER 1 +#define CONFIG_IMAGE2PIPE_MUXER 1 +#define CONFIG_IPOD_MUXER 1 +#define CONFIG_IRCAM_MUXER 1 +#define CONFIG_ISMV_MUXER 1 +#define CONFIG_IVF_MUXER 1 +#define CONFIG_JACOSUB_MUXER 1 +#define CONFIG_LATM_MUXER 1 +#define CONFIG_M4V_MUXER 1 +#define CONFIG_MD5_MUXER 1 +#define CONFIG_MATROSKA_MUXER 1 +#define CONFIG_MATROSKA_AUDIO_MUXER 1 +#define CONFIG_MICRODVD_MUXER 1 +#define CONFIG_MJPEG_MUXER 1 +#define CONFIG_MLP_MUXER 1 +#define CONFIG_MMF_MUXER 1 +#define CONFIG_MOV_MUXER 1 +#define CONFIG_MP2_MUXER 1 +#define CONFIG_MP3_MUXER 1 +#define CONFIG_MP4_MUXER 1 +#define CONFIG_MPEG1SYSTEM_MUXER 1 +#define CONFIG_MPEG1VCD_MUXER 1 +#define CONFIG_MPEG1VIDEO_MUXER 1 +#define CONFIG_MPEG2DVD_MUXER 1 +#define CONFIG_MPEG2SVCD_MUXER 1 +#define CONFIG_MPEG2VIDEO_MUXER 1 +#define CONFIG_MPEG2VOB_MUXER 1 +#define CONFIG_MPEGTS_MUXER 1 +#define CONFIG_MPJPEG_MUXER 1 +#define CONFIG_MXF_MUXER 1 +#define CONFIG_MXF_D10_MUXER 1 +#define CONFIG_NULL_MUXER 1 +#define CONFIG_NUT_MUXER 1 +#define CONFIG_OGG_MUXER 1 +#define CONFIG_OMA_MUXER 1 +#define CONFIG_PCM_ALAW_MUXER 1 +#define CONFIG_PCM_MULAW_MUXER 1 +#define CONFIG_PCM_F64BE_MUXER 1 +#define CONFIG_PCM_F64LE_MUXER 1 +#define CONFIG_PCM_F32BE_MUXER 1 +#define CONFIG_PCM_F32LE_MUXER 1 +#define CONFIG_PCM_S32BE_MUXER 1 +#define CONFIG_PCM_S32LE_MUXER 1 +#define CONFIG_PCM_S24BE_MUXER 1 +#define CONFIG_PCM_S24LE_MUXER 1 +#define CONFIG_PCM_S16BE_MUXER 1 +#define CONFIG_PCM_S16LE_MUXER 1 +#define CONFIG_PCM_S8_MUXER 1 +#define CONFIG_PCM_U32BE_MUXER 1 +#define CONFIG_PCM_U32LE_MUXER 1 +#define CONFIG_PCM_U24BE_MUXER 1 +#define CONFIG_PCM_U24LE_MUXER 1 +#define CONFIG_PCM_U16BE_MUXER 1 +#define CONFIG_PCM_U16LE_MUXER 1 +#define CONFIG_PCM_U8_MUXER 1 +#define CONFIG_PSP_MUXER 1 +#define CONFIG_RAWVIDEO_MUXER 1 +#define CONFIG_RM_MUXER 1 +#define CONFIG_ROQ_MUXER 1 +#define CONFIG_RSO_MUXER 1 +#define CONFIG_RTP_MUXER 1 +#define CONFIG_RTSP_MUXER 1 +#define CONFIG_SAP_MUXER 1 +#define CONFIG_SEGMENT_MUXER 1 +#define CONFIG_STREAM_SEGMENT_MUXER 1 +#define CONFIG_SMJPEG_MUXER 1 +#define CONFIG_SMOOTHSTREAMING_MUXER 1 +#define CONFIG_SOX_MUXER 1 +#define CONFIG_SPDIF_MUXER 1 +#define CONFIG_SRT_MUXER 1 +#define CONFIG_SWF_MUXER 1 +#define CONFIG_TEE_MUXER 1 +#define CONFIG_TG2_MUXER 1 +#define CONFIG_TGP_MUXER 1 +#define CONFIG_MKVTIMESTAMP_V2_MUXER 1 +#define CONFIG_TRUEHD_MUXER 1 +#define CONFIG_VC1_MUXER 1 +#define CONFIG_VC1T_MUXER 1 +#define CONFIG_VOC_MUXER 1 +#define CONFIG_W64_MUXER 1 +#define CONFIG_WAV_MUXER 1 +#define CONFIG_WEBM_MUXER 1 +#define CONFIG_WTV_MUXER 1 +#define CONFIG_WV_MUXER 1 +#define CONFIG_YUV4MPEGPIPE_MUXER 1 +#define CONFIG_LIBNUT_MUXER 0 +#define CONFIG_ALSA_OUTDEV 0 +#define CONFIG_CACA_OUTDEV 0 +#define CONFIG_OSS_OUTDEV 1 +#define CONFIG_SDL_OUTDEV 0 +#define CONFIG_SNDIO_OUTDEV 0 +#define CONFIG_AAC_PARSER 1 +#define CONFIG_AAC_LATM_PARSER 1 +#define CONFIG_AC3_PARSER 1 +#define CONFIG_ADX_PARSER 1 +#define CONFIG_BMP_PARSER 1 +#define CONFIG_CAVSVIDEO_PARSER 1 +#define CONFIG_COOK_PARSER 1 +#define CONFIG_DCA_PARSER 1 +#define CONFIG_DIRAC_PARSER 1 +#define CONFIG_DNXHD_PARSER 1 +#define CONFIG_DVBSUB_PARSER 1 +#define CONFIG_DVDSUB_PARSER 1 +#define CONFIG_DVD_NAV_PARSER 1 +#define CONFIG_FLAC_PARSER 1 +#define CONFIG_GSM_PARSER 1 +#define CONFIG_H261_PARSER 1 +#define CONFIG_H263_PARSER 1 +#define CONFIG_H264_PARSER 1 +#define CONFIG_MJPEG_PARSER 1 +#define CONFIG_MLP_PARSER 1 +#define CONFIG_MPEG4VIDEO_PARSER 1 +#define CONFIG_MPEGAUDIO_PARSER 1 +#define CONFIG_MPEGVIDEO_PARSER 1 +#define CONFIG_PNG_PARSER 1 +#define CONFIG_PNM_PARSER 1 +#define CONFIG_RV30_PARSER 1 +#define CONFIG_RV40_PARSER 1 +#define CONFIG_TAK_PARSER 1 +#define CONFIG_VC1_PARSER 1 +#define CONFIG_VORBIS_PARSER 1 +#define CONFIG_VP3_PARSER 1 +#define CONFIG_VP8_PARSER 1 +#define CONFIG_BLURAY_PROTOCOL 0 +#define CONFIG_CACHE_PROTOCOL 1 +#define CONFIG_CONCAT_PROTOCOL 1 +#define CONFIG_CRYPTO_PROTOCOL 1 +#define CONFIG_DATA_PROTOCOL 1 +#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 +#define CONFIG_FFRTMPHTTP_PROTOCOL 1 +#define CONFIG_FILE_PROTOCOL 1 +#define CONFIG_GOPHER_PROTOCOL 1 +#define CONFIG_HLS_PROTOCOL 1 +#define CONFIG_HTTP_PROTOCOL 1 +#define CONFIG_HTTPPROXY_PROTOCOL 1 +#define CONFIG_HTTPS_PROTOCOL 0 +#define CONFIG_MMSH_PROTOCOL 1 +#define CONFIG_MMST_PROTOCOL 1 +#define CONFIG_MD5_PROTOCOL 1 +#define CONFIG_PIPE_PROTOCOL 1 +#define CONFIG_RTMP_PROTOCOL 1 +#define CONFIG_RTMPE_PROTOCOL 0 +#define CONFIG_RTMPS_PROTOCOL 0 +#define CONFIG_RTMPT_PROTOCOL 1 +#define CONFIG_RTMPTE_PROTOCOL 0 +#define CONFIG_RTMPTS_PROTOCOL 0 +#define CONFIG_RTP_PROTOCOL 1 +#define CONFIG_SCTP_PROTOCOL 0 +#define CONFIG_SRTP_PROTOCOL 1 +#define CONFIG_TCP_PROTOCOL 1 +#define CONFIG_TLS_PROTOCOL 0 +#define CONFIG_UDP_PROTOCOL 1 +#define CONFIG_LIBRTMP_PROTOCOL 0 +#define CONFIG_LIBRTMPE_PROTOCOL 0 +#define CONFIG_LIBRTMPS_PROTOCOL 0 +#define CONFIG_LIBRTMPT_PROTOCOL 0 +#define CONFIG_LIBRTMPTE_PROTOCOL 0 +#endif /* FFMPEG_CONFIG_H */ diff --git a/ffmpeg/config.log b/ffmpeg/config.log new file mode 100644 index 0000000..5136c20 --- /dev/null +++ b/ffmpeg/config.log @@ -0,0 +1,7956 @@ +# ./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-bzlib --enable-libfaac --enable-libmp3lame --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib +ALL_COMPONENTS=' + aac_adtstoasc_bsf +chomp_bsf +dump_extradata_bsf +h264_mp4toannexb_bsf +imx_dump_header_bsf +mjpeg2jpeg_bsf +mjpega_dump_header_bsf +mp3_header_compress_bsf +mp3_header_decompress_bsf +mov2textsub_bsf +noise_bsf +remove_extradata_bsf +text2movsub_bsf + aasc_decoder +amv_decoder +anm_decoder +ansi_decoder +asv1_decoder +asv2_decoder +aura_decoder +aura2_decoder +avrp_decoder +avrn_decoder +avs_decoder +avui_decoder +ayuv_decoder +bethsoftvid_decoder +bfi_decoder +bink_decoder +bmp_decoder +bmv_video_decoder +brender_pix_decoder +c93_decoder +cavs_decoder +cdgraphics_decoder +cdxl_decoder +cinepak_decoder +cljr_decoder +cllc_decoder +comfortnoise_decoder +cpia_decoder +cscd_decoder +cyuv_decoder +dfa_decoder +dirac_decoder +dnxhd_decoder +dpx_decoder +dsicinvideo_decoder +dvvideo_decoder +dxa_decoder +dxtory_decoder +eacmv_decoder +eamad_decoder +eatgq_decoder +eatgv_decoder +eatqi_decoder +eightbps_decoder +eightsvx_exp_decoder +eightsvx_fib_decoder +escape124_decoder +escape130_decoder +exr_decoder +ffv1_decoder +ffvhuff_decoder +flashsv_decoder +flashsv2_decoder +flic_decoder +flv_decoder +fourxm_decoder +fraps_decoder +frwu_decoder +gif_decoder +h261_decoder +h263_decoder +h263i_decoder +h263p_decoder +h264_decoder +h264_crystalhd_decoder +h264_vda_decoder +h264_vdpau_decoder +huffyuv_decoder +idcin_decoder +iff_byterun1_decoder +iff_ilbm_decoder +indeo2_decoder +indeo3_decoder +indeo4_decoder +indeo5_decoder +interplay_video_decoder +jpeg2000_decoder +jpegls_decoder +jv_decoder +kgv1_decoder +kmvc_decoder +lagarith_decoder +loco_decoder +mdec_decoder +mimic_decoder +mjpeg_decoder +mjpegb_decoder +mmvideo_decoder +motionpixels_decoder +mpeg_xvmc_decoder +mpeg1video_decoder +mpeg2video_decoder +mpeg4_decoder +mpeg4_crystalhd_decoder +mpeg4_vdpau_decoder +mpegvideo_decoder +mpeg_vdpau_decoder +mpeg1_vdpau_decoder +mpeg2_crystalhd_decoder +msa1_decoder +msmpeg4_crystalhd_decoder +msmpeg4v1_decoder +msmpeg4v2_decoder +msmpeg4v3_decoder +msrle_decoder +mss1_decoder +mss2_decoder +msvideo1_decoder +mszh_decoder +mts2_decoder +mvc1_decoder +mvc2_decoder +mxpeg_decoder +nuv_decoder +paf_video_decoder +pam_decoder +pbm_decoder +pcx_decoder +pgm_decoder +pgmyuv_decoder +pictor_decoder +png_decoder +ppm_decoder +prores_decoder +prores_lgpl_decoder +ptx_decoder +qdraw_decoder +qpeg_decoder +qtrle_decoder +r10k_decoder +r210_decoder +rawvideo_decoder +rl2_decoder +roq_decoder +rpza_decoder +rv10_decoder +rv20_decoder +rv30_decoder +rv40_decoder +s302m_decoder +sanm_decoder +sgi_decoder +sgirle_decoder +smacker_decoder +smc_decoder +snow_decoder +sp5x_decoder +sunrast_decoder +svq1_decoder +svq3_decoder +targa_decoder +targa_y216_decoder +theora_decoder +thp_decoder +tiertexseqvideo_decoder +tiff_decoder +tmv_decoder +truemotion1_decoder +truemotion2_decoder +tscc_decoder +tscc2_decoder +txd_decoder +ulti_decoder +utvideo_decoder +v210_decoder +v210x_decoder +v308_decoder +v408_decoder +v410_decoder +vb_decoder +vble_decoder +vc1_decoder +vc1_crystalhd_decoder +vc1_vdpau_decoder +vc1image_decoder +vcr1_decoder +vmdvideo_decoder +vmnc_decoder +vp3_decoder +vp5_decoder +vp6_decoder +vp6a_decoder +vp6f_decoder +vp8_decoder +vqa_decoder +wmv1_decoder +wmv2_decoder +wmv3_decoder +wmv3_crystalhd_decoder +wmv3_vdpau_decoder +wmv3image_decoder +wnv1_decoder +xan_wc3_decoder +xan_wc4_decoder +xbm_decoder +xface_decoder +xl_decoder +xwd_decoder +y41p_decoder +yop_decoder +yuv4_decoder +zero12v_decoder +zerocodec_decoder +zlib_decoder +zmbv_decoder +aac_decoder +aac_latm_decoder +ac3_decoder +alac_decoder +als_decoder +amrnb_decoder +amrwb_decoder +ape_decoder +atrac1_decoder +atrac3_decoder +binkaudio_dct_decoder +binkaudio_rdft_decoder +bmv_audio_decoder +cook_decoder +dca_decoder +dsicinaudio_decoder +eac3_decoder +evrc_decoder +ffwavesynth_decoder +flac_decoder +g723_1_decoder +g729_decoder +gsm_decoder +gsm_ms_decoder +iac_decoder +imc_decoder +mace3_decoder +mace6_decoder +mlp_decoder +mp1_decoder +mp1float_decoder +mp2_decoder +mp2float_decoder +mp3_decoder +mp3float_decoder +mp3adu_decoder +mp3adufloat_decoder +mp3on4_decoder +mp3on4float_decoder +mpc7_decoder +mpc8_decoder +nellymoser_decoder +paf_audio_decoder +qcelp_decoder +qdm2_decoder +ra_144_decoder +ra_288_decoder +ralf_decoder +shorten_decoder +sipr_decoder +smackaud_decoder +sonic_decoder +tak_decoder +truehd_decoder +truespeech_decoder +tta_decoder +twinvq_decoder +vmdaudio_decoder +vorbis_decoder +wavpack_decoder +wmalossless_decoder +wmapro_decoder +wmav1_decoder +wmav2_decoder +wmavoice_decoder +ws_snd1_decoder +pcm_alaw_decoder +pcm_bluray_decoder +pcm_dvd_decoder +pcm_f32be_decoder +pcm_f32le_decoder +pcm_f64be_decoder +pcm_f64le_decoder +pcm_lxf_decoder +pcm_mulaw_decoder +pcm_s8_decoder +pcm_s8_planar_decoder +pcm_s16be_decoder +pcm_s16be_planar_decoder +pcm_s16le_decoder +pcm_s16le_planar_decoder +pcm_s24be_decoder +pcm_s24daud_decoder +pcm_s24le_decoder +pcm_s24le_planar_decoder +pcm_s32be_decoder +pcm_s32le_decoder +pcm_s32le_planar_decoder +pcm_u8_decoder +pcm_u16be_decoder +pcm_u16le_decoder +pcm_u24be_decoder +pcm_u24le_decoder +pcm_u32be_decoder +pcm_u32le_decoder +pcm_zork_decoder +interplay_dpcm_decoder +roq_dpcm_decoder +sol_dpcm_decoder +xan_dpcm_decoder +adpcm_4xm_decoder +adpcm_adx_decoder +adpcm_afc_decoder +adpcm_ct_decoder +adpcm_ea_decoder +adpcm_ea_maxis_xa_decoder +adpcm_ea_r1_decoder +adpcm_ea_r2_decoder +adpcm_ea_r3_decoder +adpcm_ea_xas_decoder +adpcm_g722_decoder +adpcm_g726_decoder +adpcm_ima_amv_decoder +adpcm_ima_apc_decoder +adpcm_ima_dk3_decoder +adpcm_ima_dk4_decoder +adpcm_ima_ea_eacs_decoder +adpcm_ima_ea_sead_decoder +adpcm_ima_iss_decoder +adpcm_ima_oki_decoder +adpcm_ima_qt_decoder +adpcm_ima_smjpeg_decoder +adpcm_ima_wav_decoder +adpcm_ima_ws_decoder +adpcm_ms_decoder +adpcm_sbpro_2_decoder +adpcm_sbpro_3_decoder +adpcm_sbpro_4_decoder +adpcm_swf_decoder +adpcm_thp_decoder +adpcm_xa_decoder +adpcm_yamaha_decoder +vima_decoder +ass_decoder +dvbsub_decoder +dvdsub_decoder +jacosub_decoder +microdvd_decoder +movtext_decoder +mpl2_decoder +pgssub_decoder +pjs_decoder +realtext_decoder +sami_decoder +srt_decoder +subrip_decoder +subviewer_decoder +subviewer1_decoder +text_decoder +vplayer_decoder +webvtt_decoder +xsub_decoder +libcelt_decoder +libgsm_decoder +libgsm_ms_decoder +libilbc_decoder +libopencore_amrnb_decoder +libopencore_amrwb_decoder +libopenjpeg_decoder +libopus_decoder +libschroedinger_decoder +libspeex_decoder +libstagefright_h264_decoder +libutvideo_decoder +libvorbis_decoder +libvpx_vp8_decoder +libvpx_vp9_decoder +bintext_decoder +xbin_decoder +idf_decoder + aac_demuxer +ac3_demuxer +act_demuxer +adf_demuxer +adx_demuxer +aea_demuxer +afc_demuxer +aiff_demuxer +amr_demuxer +anm_demuxer +apc_demuxer +ape_demuxer +aqtitle_demuxer +asf_demuxer +ass_demuxer +ast_demuxer +au_demuxer +avi_demuxer +avisynth_demuxer +avr_demuxer +avs_demuxer +bethsoftvid_demuxer +bfi_demuxer +bintext_demuxer +bink_demuxer +bit_demuxer +bmv_demuxer +brstm_demuxer +c93_demuxer +caf_demuxer +cavsvideo_demuxer +cdg_demuxer +cdxl_demuxer +concat_demuxer +daud_demuxer +dfa_demuxer +dirac_demuxer +dnxhd_demuxer +dsicin_demuxer +dts_demuxer +dtshd_demuxer +dv_demuxer +dxa_demuxer +ea_demuxer +ea_cdata_demuxer +eac3_demuxer +epaf_demuxer +ffm_demuxer +ffmetadata_demuxer +filmstrip_demuxer +flac_demuxer +flic_demuxer +flv_demuxer +fourxm_demuxer +frm_demuxer +g722_demuxer +g723_1_demuxer +g729_demuxer +gif_demuxer +gsm_demuxer +gxf_demuxer +h261_demuxer +h263_demuxer +h264_demuxer +hls_demuxer +ico_demuxer +idcin_demuxer +idf_demuxer +iff_demuxer +ilbc_demuxer +image2_demuxer +image2pipe_demuxer +ingenient_demuxer +ipmovie_demuxer +ircam_demuxer +iss_demuxer +iv8_demuxer +ivf_demuxer +jacosub_demuxer +jv_demuxer +latm_demuxer +lmlm4_demuxer +loas_demuxer +lvf_demuxer +lxf_demuxer +m4v_demuxer +matroska_demuxer +mgsts_demuxer +microdvd_demuxer +mjpeg_demuxer +mlp_demuxer +mm_demuxer +mmf_demuxer +mov_demuxer +mp3_demuxer +mpc_demuxer +mpc8_demuxer +mpegps_demuxer +mpegts_demuxer +mpegtsraw_demuxer +mpegvideo_demuxer +mpl2_demuxer +mpsub_demuxer +msnwc_tcp_demuxer +mtv_demuxer +mv_demuxer +mvi_demuxer +mxf_demuxer +mxg_demuxer +nc_demuxer +nistsphere_demuxer +nsv_demuxer +nut_demuxer +nuv_demuxer +ogg_demuxer +oma_demuxer +paf_demuxer +pcm_alaw_demuxer +pcm_mulaw_demuxer +pcm_f64be_demuxer +pcm_f64le_demuxer +pcm_f32be_demuxer +pcm_f32le_demuxer +pcm_s32be_demuxer +pcm_s32le_demuxer +pcm_s24be_demuxer +pcm_s24le_demuxer +pcm_s16be_demuxer +pcm_s16le_demuxer +pcm_s8_demuxer +pcm_u32be_demuxer +pcm_u32le_demuxer +pcm_u24be_demuxer +pcm_u24le_demuxer +pcm_u16be_demuxer +pcm_u16le_demuxer +pcm_u8_demuxer +pjs_demuxer +pmp_demuxer +pva_demuxer +pvf_demuxer +qcp_demuxer +r3d_demuxer +rawvideo_demuxer +realtext_demuxer +rl2_demuxer +rm_demuxer +roq_demuxer +rpl_demuxer +rso_demuxer +rtp_demuxer +rtsp_demuxer +sami_demuxer +sap_demuxer +sbg_demuxer +sdp_demuxer +segafilm_demuxer +shorten_demuxer +siff_demuxer +smacker_demuxer +smjpeg_demuxer +smush_demuxer +sol_demuxer +sox_demuxer +spdif_demuxer +srt_demuxer +str_demuxer +subviewer1_demuxer +subviewer_demuxer +swf_demuxer +tak_demuxer +tedcaptions_demuxer +thp_demuxer +tiertexseq_demuxer +tmv_demuxer +truehd_demuxer +tta_demuxer +txd_demuxer +tty_demuxer +vc1_demuxer +vc1t_demuxer +vivo_demuxer +vmd_demuxer +vobsub_demuxer +voc_demuxer +vplayer_demuxer +vqf_demuxer +w64_demuxer +wav_demuxer +wc3_demuxer +webvtt_demuxer +wsaud_demuxer +wsvqa_demuxer +wtv_demuxer +wv_demuxer +xa_demuxer +xbin_demuxer +xmv_demuxer +xwma_demuxer +yop_demuxer +yuv4mpegpipe_demuxer +libmodplug_demuxer +libnut_demuxer + a64multi_encoder +a64multi5_encoder +amv_encoder +asv1_encoder +asv2_encoder +avrp_encoder +avui_encoder +ayuv_encoder +bmp_encoder +cljr_encoder +comfortnoise_encoder +dnxhd_encoder +dpx_encoder +dvvideo_encoder +ffv1_encoder +ffvhuff_encoder +flashsv_encoder +flashsv2_encoder +flv_encoder +gif_encoder +h261_encoder +h263_encoder +h263p_encoder +huffyuv_encoder +jpeg2000_encoder +jpegls_encoder +ljpeg_encoder +mjpeg_encoder +mpeg1video_encoder +mpeg2video_encoder +mpeg4_encoder +msmpeg4v2_encoder +msmpeg4v3_encoder +msvideo1_encoder +pam_encoder +pbm_encoder +pcx_encoder +pgm_encoder +pgmyuv_encoder +png_encoder +ppm_encoder +prores_encoder +prores_anatoliy_encoder +prores_kostya_encoder +qtrle_encoder +r10k_encoder +r210_encoder +rawvideo_encoder +roq_encoder +rv10_encoder +rv20_encoder +sgi_encoder +snow_encoder +sunrast_encoder +svq1_encoder +targa_encoder +tiff_encoder +utvideo_encoder +v210_encoder +v308_encoder +v408_encoder +v410_encoder +wmv1_encoder +wmv2_encoder +xbm_encoder +xface_encoder +xwd_encoder +y41p_encoder +yuv4_encoder +zlib_encoder +zmbv_encoder +aac_encoder +ac3_encoder +ac3_fixed_encoder +alac_encoder +dca_encoder +eac3_encoder +flac_encoder +g723_1_encoder +mp2_encoder +nellymoser_encoder +ra_144_encoder +sonic_encoder +sonic_ls_encoder +vorbis_encoder +wmav1_encoder +wmav2_encoder +pcm_alaw_encoder +pcm_f32be_encoder +pcm_f32le_encoder +pcm_f64be_encoder +pcm_f64le_encoder +pcm_mulaw_encoder +pcm_s8_encoder +pcm_s8_planar_encoder +pcm_s16be_encoder +pcm_s16be_planar_encoder +pcm_s16le_encoder +pcm_s16le_planar_encoder +pcm_s24be_encoder +pcm_s24daud_encoder +pcm_s24le_encoder +pcm_s24le_planar_encoder +pcm_s32be_encoder +pcm_s32le_encoder +pcm_s32le_planar_encoder +pcm_u8_encoder +pcm_u16be_encoder +pcm_u16le_encoder +pcm_u24be_encoder +pcm_u24le_encoder +pcm_u32be_encoder +pcm_u32le_encoder +roq_dpcm_encoder +adpcm_adx_encoder +adpcm_g722_encoder +adpcm_g726_encoder +adpcm_ima_qt_encoder +adpcm_ima_wav_encoder +adpcm_ms_encoder +adpcm_swf_encoder +adpcm_yamaha_encoder +ass_encoder +dvbsub_encoder +dvdsub_encoder +movtext_encoder +srt_encoder +subrip_encoder +xsub_encoder +libfaac_encoder +libfdk_aac_encoder +libgsm_encoder +libgsm_ms_encoder +libilbc_encoder +libmp3lame_encoder +libopencore_amrnb_encoder +libopenjpeg_encoder +libopus_encoder +libschroedinger_encoder +libspeex_encoder +libtheora_encoder +libtwolame_encoder +libutvideo_encoder +libvo_aacenc_encoder +libvo_amrwbenc_encoder +libvorbis_encoder +libvpx_vp8_encoder +libvpx_vp9_encoder +libx264_encoder +libx264rgb_encoder +libxavs_encoder +libxvid_encoder +libaacplus_encoder + aconvert_filter +afade_filter +aformat_filter +allpass_filter +amerge_filter +amix_filter +anull_filter +apad_filter +aperms_filter +aresample_filter +aselect_filter +asendcmd_filter +asetnsamples_filter +asetpts_filter +asettb_filter +ashowinfo_filter +asplit_filter +astreamsync_filter +asyncts_filter +atempo_filter +bandpass_filter +bandreject_filter +bass_filter +biquad_filter +channelmap_filter +channelsplit_filter +earwax_filter +ebur128_filter +equalizer_filter +highpass_filter +join_filter +lowpass_filter +pan_filter +resample_filter +silencedetect_filter +treble_filter +volume_filter +volumedetect_filter +aevalsrc_filter +anullsrc_filter +flite_filter +sine_filter +anullsink_filter +alphaextract_filter +alphamerge_filter +ass_filter +bbox_filter +blackdetect_filter +blackframe_filter +blend_filter +boxblur_filter +colormatrix_filter +copy_filter +crop_filter +cropdetect_filter +curves_filter +decimate_filter +delogo_filter +deshake_filter +drawbox_filter +drawtext_filter +edgedetect_filter +fade_filter +field_filter +fieldorder_filter +format_filter +fps_filter +framestep_filter +frei0r_filter +geq_filter +gradfun_filter +hflip_filter +histeq_filter +histogram_filter +hqdn3d_filter +hue_filter +idet_filter +il_filter +kerndeint_filter +lut_filter +lutrgb_filter +lutyuv_filter +mp_filter +negate_filter +noformat_filter +noise_filter +null_filter +ocv_filter +overlay_filter +pad_filter +perms_filter +pixdesctest_filter +pp_filter +removelogo_filter +scale_filter +select_filter +sendcmd_filter +setdar_filter +setfield_filter +setpts_filter +setsar_filter +settb_filter +showinfo_filter +smartblur_filter +split_filter +stereo3d_filter +subtitles_filter +super2xsai_filter +swapuv_filter +thumbnail_filter +tile_filter +tinterlace_filter +transpose_filter +unsharp_filter +vflip_filter +yadif_filter +cellauto_filter +color_filter +frei0r_src_filter +life_filter +mandelbrot_filter +mptestsrc_filter +nullsrc_filter +rgbtestsrc_filter +smptebars_filter +testsrc_filter +nullsink_filter +concat_filter +showspectrum_filter +showwaves_filter +amovie_filter +movie_filter + h263_vaapi_hwaccel +h263_vdpau_hwaccel +h264_dxva2_hwaccel +h264_vaapi_hwaccel +h264_vda_hwaccel +h264_vdpau_hwaccel +mpeg1_vdpau_hwaccel +mpeg2_dxva2_hwaccel +mpeg2_vaapi_hwaccel +mpeg2_vdpau_hwaccel +mpeg4_vaapi_hwaccel +mpeg4_vdpau_hwaccel +vc1_dxva2_hwaccel +vc1_vaapi_hwaccel +vc1_vdpau_hwaccel +wmv3_dxva2_hwaccel +wmv3_vaapi_hwaccel +wmv3_vdpau_hwaccel + alsa_indev +bktr_indev +dshow_indev +dv1394_indev +fbdev_indev +iec61883_indev +jack_indev +lavfi_indev +openal_indev +oss_indev +pulse_indev +sndio_indev +v4l2_indev +vfwcap_indev +x11grab_indev +libcdio_indev +libdc1394_indev + a64_muxer +ac3_muxer +adts_muxer +adx_muxer +aiff_muxer +amr_muxer +asf_muxer +ass_muxer +ast_muxer +asf_stream_muxer +au_muxer +avi_muxer +avm2_muxer +bit_muxer +caf_muxer +cavsvideo_muxer +crc_muxer +daud_muxer +dirac_muxer +dnxhd_muxer +dts_muxer +dv_muxer +eac3_muxer +f4v_muxer +ffm_muxer +ffmetadata_muxer +filmstrip_muxer +flac_muxer +flv_muxer +framecrc_muxer +framemd5_muxer +g722_muxer +g723_1_muxer +gif_muxer +gxf_muxer +h261_muxer +h263_muxer +h264_muxer +hls_muxer +ico_muxer +ilbc_muxer +image2_muxer +image2pipe_muxer +ipod_muxer +ircam_muxer +ismv_muxer +ivf_muxer +jacosub_muxer +latm_muxer +m4v_muxer +md5_muxer +matroska_muxer +matroska_audio_muxer +microdvd_muxer +mjpeg_muxer +mlp_muxer +mmf_muxer +mov_muxer +mp2_muxer +mp3_muxer +mp4_muxer +mpeg1system_muxer +mpeg1vcd_muxer +mpeg1video_muxer +mpeg2dvd_muxer +mpeg2svcd_muxer +mpeg2video_muxer +mpeg2vob_muxer +mpegts_muxer +mpjpeg_muxer +mxf_muxer +mxf_d10_muxer +null_muxer +nut_muxer +ogg_muxer +oma_muxer +pcm_alaw_muxer +pcm_mulaw_muxer +pcm_f64be_muxer +pcm_f64le_muxer +pcm_f32be_muxer +pcm_f32le_muxer +pcm_s32be_muxer +pcm_s32le_muxer +pcm_s24be_muxer +pcm_s24le_muxer +pcm_s16be_muxer +pcm_s16le_muxer +pcm_s8_muxer +pcm_u32be_muxer +pcm_u32le_muxer +pcm_u24be_muxer +pcm_u24le_muxer +pcm_u16be_muxer +pcm_u16le_muxer +pcm_u8_muxer +psp_muxer +rawvideo_muxer +rm_muxer +roq_muxer +rso_muxer +rtp_muxer +rtsp_muxer +sap_muxer +segment_muxer +stream_segment_muxer +smjpeg_muxer +smoothstreaming_muxer +sox_muxer +spdif_muxer +srt_muxer +swf_muxer +tee_muxer +tg2_muxer +tgp_muxer +mkvtimestamp_v2_muxer +truehd_muxer +vc1_muxer +vc1t_muxer +voc_muxer +w64_muxer +wav_muxer +webm_muxer +wtv_muxer +wv_muxer +yuv4mpegpipe_muxer +libnut_muxer + alsa_outdev +caca_outdev +oss_outdev +sdl_outdev +sndio_outdev + aac_parser +aac_latm_parser +ac3_parser +adx_parser +bmp_parser +cavsvideo_parser +cook_parser +dca_parser +dirac_parser +dnxhd_parser +dvbsub_parser +dvdsub_parser +dvd_nav_parser +flac_parser +gsm_parser +h261_parser +h263_parser +h264_parser +mjpeg_parser +mlp_parser +mpeg4video_parser +mpegaudio_parser +mpegvideo_parser +png_parser +pnm_parser +rv30_parser +rv40_parser +tak_parser +vc1_parser +vorbis_parser +vp3_parser +vp8_parser + bluray_protocol +cache_protocol +concat_protocol +crypto_protocol +data_protocol +ffrtmpcrypt_protocol +ffrtmphttp_protocol +file_protocol +gopher_protocol +hls_protocol +http_protocol +httpproxy_protocol +https_protocol +mmsh_protocol +mmst_protocol +md5_protocol +pipe_protocol +rtmp_protocol +rtmpe_protocol +rtmps_protocol +rtmpt_protocol +rtmpte_protocol +rtmpts_protocol +rtp_protocol +sctp_protocol +srtp_protocol +tcp_protocol +tls_protocol +udp_protocol +librtmp_protocol +librtmpe_protocol +librtmps_protocol +librtmpt_protocol +librtmpte_protocol +' +ARCH_EXT_LIST=' + + armv5te + armv6 + armv6t2 + neon + vfp + vfpv3 + + + amd3dnow + amd3dnowext + avx + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 + + altivec + ppc4xx + vis + mipsfpu + mips32r2 + mipsdspr1 + mipsdspr2 +' +ARCH_EXT_LIST_ARM=' + armv5te + armv6 + armv6t2 + neon + vfp + vfpv3 +' +ARCH_EXT_LIST_X86=' + amd3dnow + amd3dnowext + avx + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 +' +ARCH_LIST=' + aarch64 + alpha + arm + avr32 + avr32_ap + avr32_uc + bfin + ia64 + m68k + mips + mips64 + parisc + ppc + ppc64 + s390 + sh4 + sparc + sparc64 + tilegx + tilepro + tomi + x86 + x86_32 + x86_64 +' +AS_C='-c' +AS_O='-o $@' +BSF_LIST='aac_adtstoasc_bsf +chomp_bsf +dump_extradata_bsf +h264_mp4toannexb_bsf +imx_dump_header_bsf +mjpeg2jpeg_bsf +mjpega_dump_header_bsf +mp3_header_compress_bsf +mp3_header_decompress_bsf +mov2textsub_bsf +noise_bsf +remove_extradata_bsf +text2movsub_bsf' +CC_C='-c' +CC_E='-E -o $@' +CC_O='-o $@' +CMDLINE_APPEND=' + extra_cflags + extra_cxxflags + host_cppflags +' +CMDLINE_SELECT=' + + + armv5te + armv6 + armv6t2 + neon + vfp + vfpv3 + + + amd3dnow + amd3dnowext + avx + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 + + altivec + ppc4xx + vis + mipsfpu + mips32r2 + mipsdspr1 + mipsdspr2 + + + + bsfs + decoders + demuxers + encoders + filters + hwaccels + indevs + muxers + outdevs + parsers + protocols + + + doc + htmlpages + manpages + podpages + txtpages + + + avisynth + bzlib + crystalhd + fontconfig + frei0r + gnutls + iconv + libaacplus + libass + libbluray + libcaca + libcdio + libcelt + libdc1394 + libfaac + libfdk_aac + libflite + libfreetype + libgsm + libiec61883 + libilbc + libmodplug + libmp3lame + libnut + libopencore_amrnb + libopencore_amrwb + libopencv + libopenjpeg + libopus + libpulse + librtmp + libschroedinger + libsoxr + libspeex + libstagefright_h264 + libtheora + libtwolame + libutvideo + libv4l2 + libvo_aacenc + libvo_amrwbenc + libvorbis + libvpx + libx264 + libxavs + libxvid + openal + openssl + x11grab + zlib + + + dxva2 + vaapi + vda + vdpau + + + avcodec + avdevice + avfilter + avformat + avresample + avutil + postproc + swresample + swscale + + + ffplay + ffprobe + ffserver + ffmpeg + + dct + dwt + fast_unaligned + fft + ftrapv + gpl + gray + hardcoded_tables + incompatible_fork_abi + lsp + lzo + mdct + memalign_hack + memory_poisoning + network + nonfree + pic + rdft + runtime_cpudetect + safe_bitstream_reader + shared + small + sram + static + swscale_alpha + thumb + version3 + xmm_clobber_test + + + inline_asm + symver + yasm + + + pthreads + w32threads + os2threads + + asm + coverage + cross_compile + debug + extra_warnings + logging + lto + optimizations + stripping +' +CMDLINE_SET=' + + bindir + datadir + incdir + libdir + mandir + prefix + shlibdir + + ar + arch + as + assert_level + build_suffix + cc + cpu + cross_prefix + cxx + dep_cc + extra_version + host_cc + host_cflags + host_ld + host_ldflags + host_libs + host_os + install + ld + logfile + malloc_prefix + nm + optflags + pkg_config + progs_suffix + random_seed + samples + strip + sysinclude + sysroot + target_exec + target_os + target_path + toolchain + valgrind + yasmexe +' +COLORTERM='gnome-terminal' +COMPONENT_LIST=' + bsfs + decoders + demuxers + encoders + filters + hwaccels + indevs + muxers + outdevs + parsers + protocols +' +CONFIG_EXTRA=' + aandcttables + ac3dsp + audio_frame_queue + dsputil + error_resilience + frame_thread_encoder + gcrypt + golomb + gplv3 + h264chroma + h264dsp + h264pred + h264qpel + hpeldsp + huffman + lgplv3 + lpc + mpegaudio + mpegaudiodsp + mpegvideo + mpegvideoenc + nettle + rangecoder + rtpdec + rtpenc_chain + sinewin + videodsp + vp3dsp +' +CONFIG_LIST=' + + bsfs + decoders + demuxers + encoders + filters + hwaccels + indevs + muxers + outdevs + parsers + protocols + + + doc + htmlpages + manpages + podpages + txtpages + + + avisynth + bzlib + crystalhd + fontconfig + frei0r + gnutls + iconv + libaacplus + libass + libbluray + libcaca + libcdio + libcelt + libdc1394 + libfaac + libfdk_aac + libflite + libfreetype + libgsm + libiec61883 + libilbc + libmodplug + libmp3lame + libnut + libopencore_amrnb + libopencore_amrwb + libopencv + libopenjpeg + libopus + libpulse + librtmp + libschroedinger + libsoxr + libspeex + libstagefright_h264 + libtheora + libtwolame + libutvideo + libv4l2 + libvo_aacenc + libvo_amrwbenc + libvorbis + libvpx + libx264 + libxavs + libxvid + openal + openssl + x11grab + zlib + + + dxva2 + vaapi + vda + vdpau + + + avcodec + avdevice + avfilter + avformat + avresample + avutil + postproc + swresample + swscale + + + ffplay + ffprobe + ffserver + ffmpeg + + dct + dwt + fast_unaligned + fft + ftrapv + gpl + gray + hardcoded_tables + incompatible_fork_abi + lsp + lzo + mdct + memalign_hack + memory_poisoning + network + nonfree + pic + rdft + runtime_cpudetect + safe_bitstream_reader + shared + small + sram + static + swscale_alpha + thumb + version3 + xmm_clobber_test +' +CXX_C='-c' +CXX_O='-o $@' +DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-G0fCt3mKLq,guid=cb0435965ab8e010246e768a520de349' +DECODER_LIST='aasc_decoder +amv_decoder +anm_decoder +ansi_decoder +asv1_decoder +asv2_decoder +aura_decoder +aura2_decoder +avrp_decoder +avrn_decoder +avs_decoder +avui_decoder +ayuv_decoder +bethsoftvid_decoder +bfi_decoder +bink_decoder +bmp_decoder +bmv_video_decoder +brender_pix_decoder +c93_decoder +cavs_decoder +cdgraphics_decoder +cdxl_decoder +cinepak_decoder +cljr_decoder +cllc_decoder +comfortnoise_decoder +cpia_decoder +cscd_decoder +cyuv_decoder +dfa_decoder +dirac_decoder +dnxhd_decoder +dpx_decoder +dsicinvideo_decoder +dvvideo_decoder +dxa_decoder +dxtory_decoder +eacmv_decoder +eamad_decoder +eatgq_decoder +eatgv_decoder +eatqi_decoder +eightbps_decoder +eightsvx_exp_decoder +eightsvx_fib_decoder +escape124_decoder +escape130_decoder +exr_decoder +ffv1_decoder +ffvhuff_decoder +flashsv_decoder +flashsv2_decoder +flic_decoder +flv_decoder +fourxm_decoder +fraps_decoder +frwu_decoder +gif_decoder +h261_decoder +h263_decoder +h263i_decoder +h263p_decoder +h264_decoder +h264_crystalhd_decoder +h264_vda_decoder +h264_vdpau_decoder +huffyuv_decoder +idcin_decoder +iff_byterun1_decoder +iff_ilbm_decoder +indeo2_decoder +indeo3_decoder +indeo4_decoder +indeo5_decoder +interplay_video_decoder +jpeg2000_decoder +jpegls_decoder +jv_decoder +kgv1_decoder +kmvc_decoder +lagarith_decoder +loco_decoder +mdec_decoder +mimic_decoder +mjpeg_decoder +mjpegb_decoder +mmvideo_decoder +motionpixels_decoder +mpeg_xvmc_decoder +mpeg1video_decoder +mpeg2video_decoder +mpeg4_decoder +mpeg4_crystalhd_decoder +mpeg4_vdpau_decoder +mpegvideo_decoder +mpeg_vdpau_decoder +mpeg1_vdpau_decoder +mpeg2_crystalhd_decoder +msa1_decoder +msmpeg4_crystalhd_decoder +msmpeg4v1_decoder +msmpeg4v2_decoder +msmpeg4v3_decoder +msrle_decoder +mss1_decoder +mss2_decoder +msvideo1_decoder +mszh_decoder +mts2_decoder +mvc1_decoder +mvc2_decoder +mxpeg_decoder +nuv_decoder +paf_video_decoder +pam_decoder +pbm_decoder +pcx_decoder +pgm_decoder +pgmyuv_decoder +pictor_decoder +png_decoder +ppm_decoder +prores_decoder +prores_lgpl_decoder +ptx_decoder +qdraw_decoder +qpeg_decoder +qtrle_decoder +r10k_decoder +r210_decoder +rawvideo_decoder +rl2_decoder +roq_decoder +rpza_decoder +rv10_decoder +rv20_decoder +rv30_decoder +rv40_decoder +s302m_decoder +sanm_decoder +sgi_decoder +sgirle_decoder +smacker_decoder +smc_decoder +snow_decoder +sp5x_decoder +sunrast_decoder +svq1_decoder +svq3_decoder +targa_decoder +targa_y216_decoder +theora_decoder +thp_decoder +tiertexseqvideo_decoder +tiff_decoder +tmv_decoder +truemotion1_decoder +truemotion2_decoder +tscc_decoder +tscc2_decoder +txd_decoder +ulti_decoder +utvideo_decoder +v210_decoder +v210x_decoder +v308_decoder +v408_decoder +v410_decoder +vb_decoder +vble_decoder +vc1_decoder +vc1_crystalhd_decoder +vc1_vdpau_decoder +vc1image_decoder +vcr1_decoder +vmdvideo_decoder +vmnc_decoder +vp3_decoder +vp5_decoder +vp6_decoder +vp6a_decoder +vp6f_decoder +vp8_decoder +vqa_decoder +wmv1_decoder +wmv2_decoder +wmv3_decoder +wmv3_crystalhd_decoder +wmv3_vdpau_decoder +wmv3image_decoder +wnv1_decoder +xan_wc3_decoder +xan_wc4_decoder +xbm_decoder +xface_decoder +xl_decoder +xwd_decoder +y41p_decoder +yop_decoder +yuv4_decoder +zero12v_decoder +zerocodec_decoder +zlib_decoder +zmbv_decoder +aac_decoder +aac_latm_decoder +ac3_decoder +alac_decoder +als_decoder +amrnb_decoder +amrwb_decoder +ape_decoder +atrac1_decoder +atrac3_decoder +binkaudio_dct_decoder +binkaudio_rdft_decoder +bmv_audio_decoder +cook_decoder +dca_decoder +dsicinaudio_decoder +eac3_decoder +evrc_decoder +ffwavesynth_decoder +flac_decoder +g723_1_decoder +g729_decoder +gsm_decoder +gsm_ms_decoder +iac_decoder +imc_decoder +mace3_decoder +mace6_decoder +mlp_decoder +mp1_decoder +mp1float_decoder +mp2_decoder +mp2float_decoder +mp3_decoder +mp3float_decoder +mp3adu_decoder +mp3adufloat_decoder +mp3on4_decoder +mp3on4float_decoder +mpc7_decoder +mpc8_decoder +nellymoser_decoder +paf_audio_decoder +qcelp_decoder +qdm2_decoder +ra_144_decoder +ra_288_decoder +ralf_decoder +shorten_decoder +sipr_decoder +smackaud_decoder +sonic_decoder +tak_decoder +truehd_decoder +truespeech_decoder +tta_decoder +twinvq_decoder +vmdaudio_decoder +vorbis_decoder +wavpack_decoder +wmalossless_decoder +wmapro_decoder +wmav1_decoder +wmav2_decoder +wmavoice_decoder +ws_snd1_decoder +pcm_alaw_decoder +pcm_bluray_decoder +pcm_dvd_decoder +pcm_f32be_decoder +pcm_f32le_decoder +pcm_f64be_decoder +pcm_f64le_decoder +pcm_lxf_decoder +pcm_mulaw_decoder +pcm_s8_decoder +pcm_s8_planar_decoder +pcm_s16be_decoder +pcm_s16be_planar_decoder +pcm_s16le_decoder +pcm_s16le_planar_decoder +pcm_s24be_decoder +pcm_s24daud_decoder +pcm_s24le_decoder +pcm_s24le_planar_decoder +pcm_s32be_decoder +pcm_s32le_decoder +pcm_s32le_planar_decoder +pcm_u8_decoder +pcm_u16be_decoder +pcm_u16le_decoder +pcm_u24be_decoder +pcm_u24le_decoder +pcm_u32be_decoder +pcm_u32le_decoder +pcm_zork_decoder +interplay_dpcm_decoder +roq_dpcm_decoder +sol_dpcm_decoder +xan_dpcm_decoder +adpcm_4xm_decoder +adpcm_adx_decoder +adpcm_afc_decoder +adpcm_ct_decoder +adpcm_ea_decoder +adpcm_ea_maxis_xa_decoder +adpcm_ea_r1_decoder +adpcm_ea_r2_decoder +adpcm_ea_r3_decoder +adpcm_ea_xas_decoder +adpcm_g722_decoder +adpcm_g726_decoder +adpcm_ima_amv_decoder +adpcm_ima_apc_decoder +adpcm_ima_dk3_decoder +adpcm_ima_dk4_decoder +adpcm_ima_ea_eacs_decoder +adpcm_ima_ea_sead_decoder +adpcm_ima_iss_decoder +adpcm_ima_oki_decoder +adpcm_ima_qt_decoder +adpcm_ima_smjpeg_decoder +adpcm_ima_wav_decoder +adpcm_ima_ws_decoder +adpcm_ms_decoder +adpcm_sbpro_2_decoder +adpcm_sbpro_3_decoder +adpcm_sbpro_4_decoder +adpcm_swf_decoder +adpcm_thp_decoder +adpcm_xa_decoder +adpcm_yamaha_decoder +vima_decoder +ass_decoder +dvbsub_decoder +dvdsub_decoder +jacosub_decoder +microdvd_decoder +movtext_decoder +mpl2_decoder +pgssub_decoder +pjs_decoder +realtext_decoder +sami_decoder +srt_decoder +subrip_decoder +subviewer_decoder +subviewer1_decoder +text_decoder +vplayer_decoder +webvtt_decoder +xsub_decoder +libcelt_decoder +libgsm_decoder +libgsm_ms_decoder +libilbc_decoder +libopencore_amrnb_decoder +libopencore_amrwb_decoder +libopenjpeg_decoder +libopus_decoder +libschroedinger_decoder +libspeex_decoder +libstagefright_h264_decoder +libutvideo_decoder +libvorbis_decoder +libvpx_vp8_decoder +libvpx_vp9_decoder +bintext_decoder +xbin_decoder +idf_decoder' +DEFAULTS_PATH='/usr/share/gconf/xubuntu.default.path' +DEMUXER_LIST='aac_demuxer +ac3_demuxer +act_demuxer +adf_demuxer +adx_demuxer +aea_demuxer +afc_demuxer +aiff_demuxer +amr_demuxer +anm_demuxer +apc_demuxer +ape_demuxer +aqtitle_demuxer +asf_demuxer +ass_demuxer +ast_demuxer +au_demuxer +avi_demuxer +avisynth_demuxer +avr_demuxer +avs_demuxer +bethsoftvid_demuxer +bfi_demuxer +bintext_demuxer +bink_demuxer +bit_demuxer +bmv_demuxer +brstm_demuxer +c93_demuxer +caf_demuxer +cavsvideo_demuxer +cdg_demuxer +cdxl_demuxer +concat_demuxer +daud_demuxer +dfa_demuxer +dirac_demuxer +dnxhd_demuxer +dsicin_demuxer +dts_demuxer +dtshd_demuxer +dv_demuxer +dxa_demuxer +ea_demuxer +ea_cdata_demuxer +eac3_demuxer +epaf_demuxer +ffm_demuxer +ffmetadata_demuxer +filmstrip_demuxer +flac_demuxer +flic_demuxer +flv_demuxer +fourxm_demuxer +frm_demuxer +g722_demuxer +g723_1_demuxer +g729_demuxer +gif_demuxer +gsm_demuxer +gxf_demuxer +h261_demuxer +h263_demuxer +h264_demuxer +hls_demuxer +ico_demuxer +idcin_demuxer +idf_demuxer +iff_demuxer +ilbc_demuxer +image2_demuxer +image2pipe_demuxer +ingenient_demuxer +ipmovie_demuxer +ircam_demuxer +iss_demuxer +iv8_demuxer +ivf_demuxer +jacosub_demuxer +jv_demuxer +latm_demuxer +lmlm4_demuxer +loas_demuxer +lvf_demuxer +lxf_demuxer +m4v_demuxer +matroska_demuxer +mgsts_demuxer +microdvd_demuxer +mjpeg_demuxer +mlp_demuxer +mm_demuxer +mmf_demuxer +mov_demuxer +mp3_demuxer +mpc_demuxer +mpc8_demuxer +mpegps_demuxer +mpegts_demuxer +mpegtsraw_demuxer +mpegvideo_demuxer +mpl2_demuxer +mpsub_demuxer +msnwc_tcp_demuxer +mtv_demuxer +mv_demuxer +mvi_demuxer +mxf_demuxer +mxg_demuxer +nc_demuxer +nistsphere_demuxer +nsv_demuxer +nut_demuxer +nuv_demuxer +ogg_demuxer +oma_demuxer +paf_demuxer +pcm_alaw_demuxer +pcm_mulaw_demuxer +pcm_f64be_demuxer +pcm_f64le_demuxer +pcm_f32be_demuxer +pcm_f32le_demuxer +pcm_s32be_demuxer +pcm_s32le_demuxer +pcm_s24be_demuxer +pcm_s24le_demuxer +pcm_s16be_demuxer +pcm_s16le_demuxer +pcm_s8_demuxer +pcm_u32be_demuxer +pcm_u32le_demuxer +pcm_u24be_demuxer +pcm_u24le_demuxer +pcm_u16be_demuxer +pcm_u16le_demuxer +pcm_u8_demuxer +pjs_demuxer +pmp_demuxer +pva_demuxer +pvf_demuxer +qcp_demuxer +r3d_demuxer +rawvideo_demuxer +realtext_demuxer +rl2_demuxer +rm_demuxer +roq_demuxer +rpl_demuxer +rso_demuxer +rtp_demuxer +rtsp_demuxer +sami_demuxer +sap_demuxer +sbg_demuxer +sdp_demuxer +segafilm_demuxer +shorten_demuxer +siff_demuxer +smacker_demuxer +smjpeg_demuxer +smush_demuxer +sol_demuxer +sox_demuxer +spdif_demuxer +srt_demuxer +str_demuxer +subviewer1_demuxer +subviewer_demuxer +swf_demuxer +tak_demuxer +tedcaptions_demuxer +thp_demuxer +tiertexseq_demuxer +tmv_demuxer +truehd_demuxer +tta_demuxer +txd_demuxer +tty_demuxer +vc1_demuxer +vc1t_demuxer +vivo_demuxer +vmd_demuxer +vobsub_demuxer +voc_demuxer +vplayer_demuxer +vqf_demuxer +w64_demuxer +wav_demuxer +wc3_demuxer +webvtt_demuxer +wsaud_demuxer +wsvqa_demuxer +wtv_demuxer +wv_demuxer +xa_demuxer +xbin_demuxer +xmv_demuxer +xwma_demuxer +yop_demuxer +yuv4mpegpipe_demuxer +libmodplug_demuxer +libnut_demuxer' +DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)' +DEPFLAGS='-MM' +DESKTOP_SESSION='xubuntu' +DISPLAY=':0.0' +DOCUMENT_LIST=' + doc + htmlpages + manpages + podpages + txtpages +' +E1='0' +E2='2' +ENCODER_LIST='a64multi_encoder +a64multi5_encoder +amv_encoder +asv1_encoder +asv2_encoder +avrp_encoder +avui_encoder +ayuv_encoder +bmp_encoder +cljr_encoder +comfortnoise_encoder +dnxhd_encoder +dpx_encoder +dvvideo_encoder +ffv1_encoder +ffvhuff_encoder +flashsv_encoder +flashsv2_encoder +flv_encoder +gif_encoder +h261_encoder +h263_encoder +h263p_encoder +huffyuv_encoder +jpeg2000_encoder +jpegls_encoder +ljpeg_encoder +mjpeg_encoder +mpeg1video_encoder +mpeg2video_encoder +mpeg4_encoder +msmpeg4v2_encoder +msmpeg4v3_encoder +msvideo1_encoder +pam_encoder +pbm_encoder +pcx_encoder +pgm_encoder +pgmyuv_encoder +png_encoder +ppm_encoder +prores_encoder +prores_anatoliy_encoder +prores_kostya_encoder +qtrle_encoder +r10k_encoder +r210_encoder +rawvideo_encoder +roq_encoder +rv10_encoder +rv20_encoder +sgi_encoder +snow_encoder +sunrast_encoder +svq1_encoder +targa_encoder +tiff_encoder +utvideo_encoder +v210_encoder +v308_encoder +v408_encoder +v410_encoder +wmv1_encoder +wmv2_encoder +xbm_encoder +xface_encoder +xwd_encoder +y41p_encoder +yuv4_encoder +zlib_encoder +zmbv_encoder +aac_encoder +ac3_encoder +ac3_fixed_encoder +alac_encoder +dca_encoder +eac3_encoder +flac_encoder +g723_1_encoder +mp2_encoder +nellymoser_encoder +ra_144_encoder +sonic_encoder +sonic_ls_encoder +vorbis_encoder +wmav1_encoder +wmav2_encoder +pcm_alaw_encoder +pcm_f32be_encoder +pcm_f32le_encoder +pcm_f64be_encoder +pcm_f64le_encoder +pcm_mulaw_encoder +pcm_s8_encoder +pcm_s8_planar_encoder +pcm_s16be_encoder +pcm_s16be_planar_encoder +pcm_s16le_encoder +pcm_s16le_planar_encoder +pcm_s24be_encoder +pcm_s24daud_encoder +pcm_s24le_encoder +pcm_s24le_planar_encoder +pcm_s32be_encoder +pcm_s32le_encoder +pcm_s32le_planar_encoder +pcm_u8_encoder +pcm_u16be_encoder +pcm_u16le_encoder +pcm_u24be_encoder +pcm_u24le_encoder +pcm_u32be_encoder +pcm_u32le_encoder +roq_dpcm_encoder +adpcm_adx_encoder +adpcm_g722_encoder +adpcm_g726_encoder +adpcm_ima_qt_encoder +adpcm_ima_wav_encoder +adpcm_ms_encoder +adpcm_swf_encoder +adpcm_yamaha_encoder +ass_encoder +dvbsub_encoder +dvdsub_encoder +movtext_encoder +srt_encoder +subrip_encoder +xsub_encoder +libfaac_encoder +libfdk_aac_encoder +libgsm_encoder +libgsm_ms_encoder +libilbc_encoder +libmp3lame_encoder +libopencore_amrnb_encoder +libopenjpeg_encoder +libopus_encoder +libschroedinger_encoder +libspeex_encoder +libtheora_encoder +libtwolame_encoder +libutvideo_encoder +libvo_aacenc_encoder +libvo_amrwbenc_encoder +libvorbis_encoder +libvpx_vp8_encoder +libvpx_vp9_encoder +libx264_encoder +libx264rgb_encoder +libxavs_encoder +libxvid_encoder +libaacplus_encoder' +EXTERNAL_LIBRARY_LIST=' + avisynth + bzlib + crystalhd + fontconfig + frei0r + gnutls + iconv + libaacplus + libass + libbluray + libcaca + libcdio + libcelt + libdc1394 + libfaac + libfdk_aac + libflite + libfreetype + libgsm + libiec61883 + libilbc + libmodplug + libmp3lame + libnut + libopencore_amrnb + libopencore_amrwb + libopencv + libopenjpeg + libopus + libpulse + librtmp + libschroedinger + libsoxr + libspeex + libstagefright_h264 + libtheora + libtwolame + libutvideo + libv4l2 + libvo_aacenc + libvo_amrwbenc + libvorbis + libvpx + libx264 + libxavs + libxvid + openal + openssl + x11grab + zlib +' +FFMPEG_CONFIGURATION='--prefix=/usr/local --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-bzlib --enable-libfaac --enable-libmp3lame --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib' +FFSERVERLDFLAGS='-Wl,-E' +FILTER_LIST='aconvert_filter +afade_filter +aformat_filter +allpass_filter +amerge_filter +amix_filter +anull_filter +apad_filter +aperms_filter +aresample_filter +aselect_filter +asendcmd_filter +asetnsamples_filter +asetpts_filter +asettb_filter +ashowinfo_filter +asplit_filter +astreamsync_filter +asyncts_filter +atempo_filter +bandpass_filter +bandreject_filter +bass_filter +biquad_filter +channelmap_filter +channelsplit_filter +earwax_filter +ebur128_filter +equalizer_filter +highpass_filter +join_filter +lowpass_filter +pan_filter +resample_filter +silencedetect_filter +treble_filter +volume_filter +volumedetect_filter +aevalsrc_filter +anullsrc_filter +flite_filter +sine_filter +anullsink_filter +alphaextract_filter +alphamerge_filter +ass_filter +bbox_filter +blackdetect_filter +blackframe_filter +blend_filter +boxblur_filter +colormatrix_filter +copy_filter +crop_filter +cropdetect_filter +curves_filter +decimate_filter +delogo_filter +deshake_filter +drawbox_filter +drawtext_filter +edgedetect_filter +fade_filter +field_filter +fieldorder_filter +format_filter +fps_filter +framestep_filter +frei0r_filter +geq_filter +gradfun_filter +hflip_filter +histeq_filter +histogram_filter +hqdn3d_filter +hue_filter +idet_filter +il_filter +kerndeint_filter +lut_filter +lutrgb_filter +lutyuv_filter +mp_filter +negate_filter +noformat_filter +noise_filter +null_filter +ocv_filter +overlay_filter +pad_filter +perms_filter +pixdesctest_filter +pp_filter +removelogo_filter +scale_filter +select_filter +sendcmd_filter +setdar_filter +setfield_filter +setpts_filter +setsar_filter +settb_filter +showinfo_filter +smartblur_filter +split_filter +stereo3d_filter +subtitles_filter +super2xsai_filter +swapuv_filter +thumbnail_filter +tile_filter +tinterlace_filter +transpose_filter +unsharp_filter +vflip_filter +yadif_filter +cellauto_filter +color_filter +frei0r_src_filter +life_filter +mandelbrot_filter +mptestsrc_filter +nullsrc_filter +rgbtestsrc_filter +smptebars_filter +testsrc_filter +nullsink_filter +concat_filter +showspectrum_filter +showwaves_filter +amovie_filter +movie_filter' +FULLNAME='$(NAME)$(BUILDSUF)' +GDMSESSION='xubuntu' +GLADE_CATALOG_PATH=':/usr/share/glade3/catalogs' +GLADE_MODULE_PATH=':/usr/share/glade3/pixmaps' +GLADE_PIXMAP_PATH=':/usr/lib/glade3/modules' +GNOME_KEYRING_CONTROL='/run/user/tim/keyring-KD6UoI' +GNOME_KEYRING_PID='2061' +GPG_AGENT_INFO='/run/user/tim/keyring-KD6UoI/gpg:0:1' +HAVE_LIST=' + + + armv5te + armv6 + armv6t2 + neon + vfp + vfpv3 + + + amd3dnow + amd3dnowext + avx + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 + + altivec + ppc4xx + vis + mipsfpu + mips32r2 + mipsdspr1 + mipsdspr2 + + armv5te_external +armv6_external +armv6t2_external +neon_external +vfp_external +vfpv3_external +amd3dnow_external +amd3dnowext_external +avx_external +fma4_external +mmx_external +mmxext_external +sse_external +sse2_external +sse3_external +sse4_external +sse42_external +ssse3_external +altivec_external +ppc4xx_external +vis_external +mipsfpu_external +mips32r2_external +mipsdspr1_external +mipsdspr2_external + armv5te_inline +armv6_inline +armv6t2_inline +neon_inline +vfp_inline +vfpv3_inline +amd3dnow_inline +amd3dnowext_inline +avx_inline +fma4_inline +mmx_inline +mmxext_inline +sse_inline +sse2_inline +sse3_inline +sse4_inline +sse42_inline +ssse3_inline +altivec_inline +ppc4xx_inline +vis_inline +mipsfpu_inline +mips32r2_inline +mipsdspr1_inline +mipsdspr2_inline + + inline_asm + symver + yasm + + + bigendian + fast_unaligned + incompatible_fork_abi + + + pthreads + w32threads + os2threads + + + atanf + atan2f + cbrt + cbrtf + cosf + exp2 + exp2f + expf + isinf + isnan + ldexpf + llrint + llrintf + log2 + log2f + log10f + lrint + lrintf + powf + rint + round + roundf + sinf + trunc + truncf + + access + aligned_malloc + aligned_stack + alsa_asoundlib_h + altivec_h + arpa_inet_h + asm_mod_q + asm_mod_y + asm_types_h + attribute_may_alias + attribute_packed + cdio_paranoia_h + cdio_paranoia_paranoia_h + clock_gettime + closesocket + cmov + CommandLineToArgvW + cpunop + CryptGenRandom + dcbzl + dev_bktr_ioctl_bt848_h + dev_bktr_ioctl_meteor_h + dev_ic_bt8xx_h + dev_video_bktr_ioctl_bt848_h + dev_video_meteor_ioctl_meteor_h + direct_h + dlfcn_h + dlopen + dos_paths + dxva_h + ebp_available + ebx_available + fast_64bit + fast_clz + fast_cmov + fcntl + fork + getaddrinfo + gethrtime + getopt + GetProcessAffinityMask + GetProcessMemoryInfo + GetProcessTimes + GetSystemTimeAsFileTime + getrusage + getservbyport + gettimeofday + glob + gnu_as + gsm_h + ibm_asm + inet_aton + io_h + isatty + jack_port_get_latency_range + kbhit + ldbrx + libdc1394_1 + libdc1394_2 + local_aligned_16 + local_aligned_8 + localtime_r + loongson + lzo1x_999_compress + machine_ioctl_bt848_h + machine_ioctl_meteor_h + machine_rw_barrier + makeinfo + malloc_h + MapViewOfFile + memalign + MemoryBarrier + mkstemp + mm_empty + mmap + mprotect + msvcrt + nanosleep + openjpeg_1_5_openjpeg_h + PeekNamedPipe + perl + pod2man + poll_h + posix_memalign + pthread_cancel + rdtsc + rsync_contimeout + sched_getaffinity + sdl + SetConsoleTextAttribute + setmode + setrlimit + Sleep + sndio_h + socklen_t + soundcard_h + strerror_r + struct_addrinfo + struct_group_source_req + struct_ip_mreq_source + struct_ipv6_mreq + struct_pollfd + struct_rusage_ru_maxrss + struct_sctp_event_subscribe + struct_sockaddr_in6 + struct_sockaddr_sa_len + struct_sockaddr_storage + struct_v4l2_frmivalenum_discrete + symver_asm_label + symver_gnu_asm + sync_val_compare_and_swap + sysconf + sysctl + sys_mman_h + sys_param_h + sys_resource_h + sys_select_h + sys_soundcard_h + sys_time_h + sys_videoio_h + termios_h + texi2html + threads + unistd_h + usleep + vfp_args + VirtualAlloc + windows_h + winsock2_h + xform_asm + xmm_clobbers +' +HAVE_LIST_CMDLINE=' + inline_asm + symver + yasm +' +HAVE_LIST_PUB=' + bigendian + fast_unaligned + incompatible_fork_abi +' +HOME='/home/tim' +HOSTCC_C='-c' +HOSTCC_O='-o $@' +HOSTLD_O='-o $@' +HWACCEL_LIST='h263_vaapi_hwaccel +h263_vdpau_hwaccel +h264_dxva2_hwaccel +h264_vaapi_hwaccel +h264_vda_hwaccel +h264_vdpau_hwaccel +mpeg1_vdpau_hwaccel +mpeg2_dxva2_hwaccel +mpeg2_vaapi_hwaccel +mpeg2_vdpau_hwaccel +mpeg4_vaapi_hwaccel +mpeg4_vdpau_hwaccel +vc1_dxva2_hwaccel +vc1_vaapi_hwaccel +vc1_vdpau_hwaccel +wmv3_dxva2_hwaccel +wmv3_vaapi_hwaccel +wmv3_vdpau_hwaccel' +IFS=' +' +INDEV_LIST='alsa_indev +bktr_indev +dshow_indev +dv1394_indev +fbdev_indev +iec61883_indev +jack_indev +lavfi_indev +openal_indev +oss_indev +pulse_indev +sndio_indev +v4l2_indev +vfwcap_indev +x11grab_indev +libcdio_indev +libdc1394_indev' +LANG='en_US.UTF-8' +LANGUAGE='en' +LC_ADDRESS='en_US.UTF-8' +LC_ALL='C' +LC_IDENTIFICATION='en_US.UTF-8' +LC_MEASUREMENT='en_US.UTF-8' +LC_MONETARY='en_US.UTF-8' +LC_NAME='en_US.UTF-8' +LC_NUMERIC='en_US.UTF-8' +LC_PAPER='en_US.UTF-8' +LC_TELEPHONE='en_US.UTF-8' +LC_TIME='en_US.UTF-8' +LD_LIB='-l%' +LD_O='-o $@' +LD_PATH='-L' +LESSCLOSE='/usr/bin/lesspipe %s %s' +LESSOPEN='| /usr/bin/lesspipe %s' +LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' +LIBPREF='lib' +LIBRARY_LIST=' + avcodec + avdevice + avfilter + avformat + avresample + avutil + postproc + swresample + swscale +' +LIBSUF='.a' +LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' +LOGNAME='tim' +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:' +MANDATORY_PATH='/usr/share/gconf/xubuntu.mandatory.path' +MATH_FUNCS=' + atanf + atan2f + cbrt + cbrtf + cosf + exp2 + exp2f + expf + isinf + isnan + ldexpf + llrint + llrintf + log2 + log2f + log10f + lrint + lrintf + powf + rint + round + roundf + sinf + trunc + truncf +' +MUXER_LIST='a64_muxer +ac3_muxer +adts_muxer +adx_muxer +aiff_muxer +amr_muxer +asf_muxer +ass_muxer +ast_muxer +asf_stream_muxer +au_muxer +avi_muxer +avm2_muxer +bit_muxer +caf_muxer +cavsvideo_muxer +crc_muxer +daud_muxer +dirac_muxer +dnxhd_muxer +dts_muxer +dv_muxer +eac3_muxer +f4v_muxer +ffm_muxer +ffmetadata_muxer +filmstrip_muxer +flac_muxer +flv_muxer +framecrc_muxer +framemd5_muxer +g722_muxer +g723_1_muxer +gif_muxer +gxf_muxer +h261_muxer +h263_muxer +h264_muxer +hls_muxer +ico_muxer +ilbc_muxer +image2_muxer +image2pipe_muxer +ipod_muxer +ircam_muxer +ismv_muxer +ivf_muxer +jacosub_muxer +latm_muxer +m4v_muxer +md5_muxer +matroska_muxer +matroska_audio_muxer +microdvd_muxer +mjpeg_muxer +mlp_muxer +mmf_muxer +mov_muxer +mp2_muxer +mp3_muxer +mp4_muxer +mpeg1system_muxer +mpeg1vcd_muxer +mpeg1video_muxer +mpeg2dvd_muxer +mpeg2svcd_muxer +mpeg2video_muxer +mpeg2vob_muxer +mpegts_muxer +mpjpeg_muxer +mxf_muxer +mxf_d10_muxer +null_muxer +nut_muxer +ogg_muxer +oma_muxer +pcm_alaw_muxer +pcm_mulaw_muxer +pcm_f64be_muxer +pcm_f64le_muxer +pcm_f32be_muxer +pcm_f32le_muxer +pcm_s32be_muxer +pcm_s32le_muxer +pcm_s24be_muxer +pcm_s24le_muxer +pcm_s16be_muxer +pcm_s16le_muxer +pcm_s8_muxer +pcm_u32be_muxer +pcm_u32le_muxer +pcm_u24be_muxer +pcm_u24le_muxer +pcm_u16be_muxer +pcm_u16le_muxer +pcm_u8_muxer +psp_muxer +rawvideo_muxer +rm_muxer +roq_muxer +rso_muxer +rtp_muxer +rtsp_muxer +sap_muxer +segment_muxer +stream_segment_muxer +smjpeg_muxer +smoothstreaming_muxer +sox_muxer +spdif_muxer +srt_muxer +swf_muxer +tee_muxer +tg2_muxer +tgp_muxer +mkvtimestamp_v2_muxer +truehd_muxer +vc1_muxer +vc1t_muxer +voc_muxer +w64_muxer +wav_muxer +webm_muxer +wtv_muxer +wv_muxer +yuv4mpegpipe_muxer +libnut_muxer' +OLDPWD='/home/tim/workspace/rotor' +OPTIND='1' +ORBIT_SOCKETDIR='/tmp/orbit-tim' +OUTDEV_LIST='alsa_outdev +caca_outdev +oss_outdev +sdl_outdev +sndio_outdev' +PAPERSIZE='letter' +PARSER_LIST='aac_parser +aac_latm_parser +ac3_parser +adx_parser +bmp_parser +cavsvideo_parser +cook_parser +dca_parser +dirac_parser +dnxhd_parser +dvbsub_parser +dvdsub_parser +dvd_nav_parser +flac_parser +gsm_parser +h261_parser +h263_parser +h264_parser +mjpeg_parser +mlp_parser +mpeg4video_parser +mpegaudio_parser +mpegvideo_parser +png_parser +pnm_parser +rv30_parser +rv40_parser +tak_parser +vc1_parser +vorbis_parser +vp3_parser +vp8_parser' +PATH='/home/tim/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games' +PATHS_LIST=' + bindir + datadir + incdir + libdir + mandir + prefix + shlibdir +' +PPID='5498' +PROGRAM_LIST=' + ffplay + ffprobe + ffserver + ffmpeg +' +PROTOCOL_LIST='bluray_protocol +cache_protocol +concat_protocol +crypto_protocol +data_protocol +ffrtmpcrypt_protocol +ffrtmphttp_protocol +file_protocol +gopher_protocol +hls_protocol +http_protocol +httpproxy_protocol +https_protocol +mmsh_protocol +mmst_protocol +md5_protocol +pipe_protocol +rtmp_protocol +rtmpe_protocol +rtmps_protocol +rtmpt_protocol +rtmpte_protocol +rtmpts_protocol +rtp_protocol +sctp_protocol +srtp_protocol +tcp_protocol +tls_protocol +udp_protocol +librtmp_protocol +librtmpe_protocol +librtmps_protocol +librtmpt_protocol +librtmpte_protocol' +PS1='$ ' +PS2='> ' +PS4='+ ' +PWD='/home/tim/workspace/rotor/ffmpeg' +SESSION_MANAGER='local/Baker:@/tmp/.ICE-unix/2134,unix/Baker:/tmp/.ICE-unix/2134' +SHELL='/bin/bash' +SHFLAGS='-shared -Wl,-soname,$$(@F)' +SHLVL='1' +SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' +SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' +SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' +SLIBPREF='lib' +SLIBSUF='.so' +SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' +SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' +SSH_AGENT_PID='2115' +SSH_AUTH_SOCK='/run/user/tim/keyring-KD6UoI/ssh' +TERM='xterm' +TERMINATOR_UUID='urn:uuid:58390c41-c22c-4de5-97f1-f2760761f421' +TEXTDOMAIN='im-config' +TEXTDOMAINDIR='/usr/share/locale/' +THREADS_LIST=' + pthreads + w32threads + os2threads +' +USER='tim' +WINDOWID='69206020' +XAUTHORITY='/home/tim/.Xauthority' +XDG_CONFIG_DIRS='/etc/xdg/xdg-xubuntu:/etc/xdg:/etc/xdg' +XDG_CURRENT_DESKTOP='XFCE' +XDG_DATA_DIRS='/usr/share/xubuntu:/usr/local/share/:/usr/share/:/usr/share' +XDG_MENU_PREFIX='xfce-' +XDG_RUNTIME_DIR='/run/user/tim' +XDG_SEAT_PATH='/org/freedesktop/DisplayManager/Seat0' +XDG_SESSION_COOKIE='b9b91ff75b4219338300fa95520cd0f9-1376641865.468264-1873504675' +XDG_SESSION_PATH='/org/freedesktop/DisplayManager/Session0' +_='./configure' +a64_muxer='yes' +a64multi5_encoder='yes' +a64multi_encoder='yes' +aac_adtstoasc_bsf='yes' +aac_decoder='yes' +aac_decoder_select='mdct sinewin' +aac_demuxer='yes' +aac_encoder='yes' +aac_encoder_select='audio_frame_queue mdct sinewin' +aac_latm_decoder='yes' +aac_latm_decoder_select='aac_decoder aac_latm_parser' +aac_latm_parser='yes' +aac_parser='yes' +aasc_decoder='yes' +ac3_decoder='yes' +ac3_decoder_select='mdct ac3dsp ac3_parser dsputil' +ac3_demuxer='yes' +ac3_demuxer_select='ac3_parser' +ac3_encoder='yes' +ac3_encoder_select='mdct ac3dsp dsputil' +ac3_fixed_encoder='yes' +ac3_fixed_encoder_select='mdct ac3dsp dsputil' +ac3_muxer='yes' +ac3_parser='yes' +aconvert_filter='yes' +aconvert_filter_deps='swresample' +act_demuxer='yes' +action='enable' +adf_demuxer='yes' +adpcm_4xm_decoder='yes' +adpcm_adx_decoder='yes' +adpcm_adx_encoder='yes' +adpcm_afc_decoder='yes' +adpcm_ct_decoder='yes' +adpcm_ea_decoder='yes' +adpcm_ea_maxis_xa_decoder='yes' +adpcm_ea_r1_decoder='yes' +adpcm_ea_r2_decoder='yes' +adpcm_ea_r3_decoder='yes' +adpcm_ea_xas_decoder='yes' +adpcm_g722_decoder='yes' +adpcm_g722_encoder='yes' +adpcm_g726_decoder='yes' +adpcm_g726_encoder='yes' +adpcm_ima_amv_decoder='yes' +adpcm_ima_apc_decoder='yes' +adpcm_ima_dk3_decoder='yes' +adpcm_ima_dk4_decoder='yes' +adpcm_ima_ea_eacs_decoder='yes' +adpcm_ima_ea_sead_decoder='yes' +adpcm_ima_iss_decoder='yes' +adpcm_ima_oki_decoder='yes' +adpcm_ima_qt_decoder='yes' +adpcm_ima_qt_encoder='yes' +adpcm_ima_smjpeg_decoder='yes' +adpcm_ima_wav_decoder='yes' +adpcm_ima_wav_encoder='yes' +adpcm_ima_ws_decoder='yes' +adpcm_ms_decoder='yes' +adpcm_ms_encoder='yes' +adpcm_sbpro_2_decoder='yes' +adpcm_sbpro_3_decoder='yes' +adpcm_sbpro_4_decoder='yes' +adpcm_swf_decoder='yes' +adpcm_swf_encoder='yes' +adpcm_thp_decoder='yes' +adpcm_xa_decoder='yes' +adpcm_yamaha_decoder='yes' +adpcm_yamaha_encoder='yes' +adts_muxer='yes' +adx_demuxer='yes' +adx_muxer='yes' +adx_parser='yes' +aea_demuxer='yes' +aevalsrc_filter='yes' +afade_filter='yes' +afc_demuxer='yes' +aformat_filter='yes' +aiff_demuxer='yes' +aiff_muxer='yes' +alac_decoder='yes' +alac_encoder='yes' +alac_encoder_select='lpc' +aligned_stack_if_any='ppc x86' +allpass_filter='yes' +alphaextract_filter='yes' +alphamerge_filter='yes' +als_decoder='yes' +als_decoder_select='dsputil' +alsa_indev='yes' +alsa_indev_deps='alsa_asoundlib_h snd_pcm_htimestamp' +alsa_outdev='yes' +alsa_outdev_deps='alsa_asoundlib_h' +altivec='yes' +altivec_deps='ppc' +amd3dnow='yes' +amd3dnow_deps='mmx' +amd3dnow_external_deps='mmx_external' +amd3dnow_inline_deps='mmx_inline' +amd3dnow_suggest='amd3dnow_external amd3dnow_inline' +amd3dnowext='yes' +amd3dnowext_deps='amd3dnow' +amd3dnowext_external_deps='amd3dnow_external' +amd3dnowext_inline_deps='amd3dnow_inline' +amd3dnowext_suggest='amd3dnowext_external amd3dnowext_inline' +amerge_filter='yes' +amix_filter='yes' +amovie_filter='yes' +amovie_filter_deps='avcodec avformat' +amr_demuxer='yes' +amr_muxer='yes' +amrnb_decoder='yes' +amrnb_decoder_select='lsp' +amrwb_decoder='yes' +amrwb_decoder_select='lsp' +amv_decoder='yes' +amv_encoder='yes' +amv_encoder_select='aandcttables' +anm_decoder='yes' +anm_demuxer='yes' +ansi_decoder='yes' +anull_filter='yes' +anullsink_filter='yes' +anullsrc_filter='yes' +apad_filter='yes' +apc_demuxer='yes' +ape_decoder='yes' +ape_decoder_select='dsputil' +ape_demuxer='yes' +aperms_filter='yes' +aqtitle_demuxer='yes' +ar_default='ar' +arch_default='x86_64' +aresample_filter='yes' +aresample_filter_deps='swresample' +armv5te='yes' +armv5te_deps='arm' +armv5te_inline_deps='inline_asm' +armv6='yes' +armv6_deps='arm' +armv6_inline_deps='inline_asm' +armv6t2='yes' +armv6t2_deps='arm' +armv6t2_inline_deps='inline_asm' +aselect_filter='yes' +asendcmd_filter='yes' +asetnsamples_filter='yes' +asetpts_filter='yes' +asettb_filter='yes' +asf_demuxer='yes' +asf_muxer='yes' +asf_stream_muxer='yes' +asf_stream_muxer_select='asf_muxer' +asflags_filter='echo' +ashowinfo_filter='yes' +asm='yes' +asplit_filter='yes' +ass_decoder='yes' +ass_demuxer='yes' +ass_encoder='yes' +ass_filter='yes' +ass_filter_deps='libass' +ass_muxer='yes' +ast_demuxer='yes' +ast_muxer='yes' +astreamsync_filter='yes' +asv1_decoder='yes' +asv1_encoder='yes' +asv2_decoder='yes' +asv2_encoder='yes' +asv_decoder_select='dsputil' +asyncts_filter='yes' +asyncts_filter_deps='avresample' +atempo_filter='yes' +atempo_filter_deps='avcodec rdft' +atrac1_decoder='yes' +atrac1_decoder_select='mdct sinewin' +atrac3_decoder='yes' +atrac3_decoder_select='mdct' +au_demuxer='yes' +au_muxer='yes' +aura2_decoder='yes' +aura_decoder='yes' +avcodec='yes' +avcodec_deps='avutil' +avdevice='yes' +avdevice_deps='avutil avcodec avformat' +avfilter='yes' +avfilter_deps='avutil' +avformat='yes' +avformat_deps='avutil avcodec' +avi_demuxer='yes' +avi_muxer='yes' +avisynth_demuxer='yes' +avisynth_demuxer_deps='avisynth' +avm2_muxer='yes' +avr_demuxer='yes' +avresample_deps='avutil' +avrn_decoder='yes' +avrp_decoder='yes' +avrp_encoder='yes' +avs_decoder='yes' +avs_demuxer='yes' +avui_decoder='yes' +avui_encoder='yes' +avutil='yes' +avx='yes' +avx_deps='sse42' +avx_external_deps='sse42_external' +avx_inline_deps='sse42_inline' +avx_suggest='avx_external avx_inline' +ayuv_decoder='yes' +ayuv_encoder='yes' +bandpass_filter='yes' +bandreject_filter='yes' +bass_filter='yes' +bbox_filter='yes' +bethsoftvid_decoder='yes' +bethsoftvid_demuxer='yes' +bfi_decoder='yes' +bfi_demuxer='yes' +bindir_default='${prefix}/bin' +bink_decoder='yes' +bink_decoder_select='dsputil hpeldsp' +bink_demuxer='yes' +binkaudio_dct_decoder='yes' +binkaudio_dct_decoder_select='mdct rdft dct sinewin' +binkaudio_rdft_decoder='yes' +binkaudio_rdft_decoder_select='mdct rdft sinewin' +bintext_decoder='yes' +bintext_demuxer='yes' +biquad_filter='yes' +bit_demuxer='yes' +bit_muxer='yes' +bktr_indev='yes' +bktr_indev_deps_any='dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h' +blackdetect_filter='yes' +blackframe_filter='yes' +blackframe_filter_deps='gpl' +blend_filter='yes' +bluray_protocol='yes' +bluray_protocol_deps='libbluray' +bmp_decoder='yes' +bmp_encoder='yes' +bmp_parser='yes' +bmv_audio_decoder='yes' +bmv_demuxer='yes' +bmv_video_decoder='yes' +boxblur_filter='yes' +boxblur_filter_deps='gpl' +brender_pix_decoder='yes' +brstm_demuxer='yes' +bsfs_if_any='aac_adtstoasc_bsf +chomp_bsf +dump_extradata_bsf +h264_mp4toannexb_bsf +imx_dump_header_bsf +mjpeg2jpeg_bsf +mjpega_dump_header_bsf +mp3_header_compress_bsf +mp3_header_decompress_bsf +mov2textsub_bsf +noise_bsf +remove_extradata_bsf +text2movsub_bsf' +bzlib='yes' +c93_decoder='yes' +c93_demuxer='yes' +caca_outdev='yes' +caca_outdev_deps='libcaca' +cache_protocol='yes' +caf_demuxer='yes' +caf_muxer='yes' +cavs_decoder='yes' +cavs_decoder_select='dsputil golomb h264chroma mpegvideo videodsp' +cavsvideo_demuxer='yes' +cavsvideo_muxer='yes' +cavsvideo_parser='yes' +cc_default='gcc' +cdg_demuxer='yes' +cdgraphics_decoder='yes' +cdxl_decoder='yes' +cdxl_demuxer='yes' +cellauto_filter='yes' +cflags_filter='echo' +channelmap_filter='yes' +channelsplit_filter='yes' +chomp_bsf='yes' +cinepak_decoder='yes' +cljr_decoder='yes' +cljr_encoder='yes' +cllc_decoder='yes' +cllc_decoder_select='dsputil' +color_filter='yes' +colormatrix_filter='yes' +colormatrix_filter_deps='gpl' +comfortnoise_decoder='yes' +comfortnoise_encoder='yes' +comfortnoise_encoder_select='lpc' +concat_demuxer='yes' +concat_filter='yes' +concat_protocol='yes' +cook_decoder='yes' +cook_decoder_select='dsputil mdct sinewin' +cook_parser='yes' +copy_filter='yes' +cp_f='cp -f' +cpia_decoder='yes' +cpu='generic' +crc_muxer='yes' +crop_filter='yes' +cropdetect_filter='yes' +cropdetect_filter_deps='gpl' +crypto_protocol='yes' +crystalhd_deps='libcrystalhd_libcrystalhd_if_h' +cscd_decoder='yes' +cscd_decoder_select='lzo' +cscd_decoder_suggest='zlib' +curves_filter='yes' +cxx_default='g++' +cyuv_decoder='yes' +data_protocol='yes' +datadir_default='${prefix}/share/ffmpeg' +daud_demuxer='yes' +daud_muxer='yes' +dca_decoder='yes' +dca_decoder_select='mdct' +dca_encoder='yes' +dca_parser='yes' +dct_select='rdft' +debug='yes' +decimate_filter='yes' +decimate_filter_deps='gpl avcodec' +decoders_if_any='aasc_decoder +amv_decoder +anm_decoder +ansi_decoder +asv1_decoder +asv2_decoder +aura_decoder +aura2_decoder +avrp_decoder +avrn_decoder +avs_decoder +avui_decoder +ayuv_decoder +bethsoftvid_decoder +bfi_decoder +bink_decoder +bmp_decoder +bmv_video_decoder +brender_pix_decoder +c93_decoder +cavs_decoder +cdgraphics_decoder +cdxl_decoder +cinepak_decoder +cljr_decoder +cllc_decoder +comfortnoise_decoder +cpia_decoder +cscd_decoder +cyuv_decoder +dfa_decoder +dirac_decoder +dnxhd_decoder +dpx_decoder +dsicinvideo_decoder +dvvideo_decoder +dxa_decoder +dxtory_decoder +eacmv_decoder +eamad_decoder +eatgq_decoder +eatgv_decoder +eatqi_decoder +eightbps_decoder +eightsvx_exp_decoder +eightsvx_fib_decoder +escape124_decoder +escape130_decoder +exr_decoder +ffv1_decoder +ffvhuff_decoder +flashsv_decoder +flashsv2_decoder +flic_decoder +flv_decoder +fourxm_decoder +fraps_decoder +frwu_decoder +gif_decoder +h261_decoder +h263_decoder +h263i_decoder +h263p_decoder +h264_decoder +h264_crystalhd_decoder +h264_vda_decoder +h264_vdpau_decoder +huffyuv_decoder +idcin_decoder +iff_byterun1_decoder +iff_ilbm_decoder +indeo2_decoder +indeo3_decoder +indeo4_decoder +indeo5_decoder +interplay_video_decoder +jpeg2000_decoder +jpegls_decoder +jv_decoder +kgv1_decoder +kmvc_decoder +lagarith_decoder +loco_decoder +mdec_decoder +mimic_decoder +mjpeg_decoder +mjpegb_decoder +mmvideo_decoder +motionpixels_decoder +mpeg_xvmc_decoder +mpeg1video_decoder +mpeg2video_decoder +mpeg4_decoder +mpeg4_crystalhd_decoder +mpeg4_vdpau_decoder +mpegvideo_decoder +mpeg_vdpau_decoder +mpeg1_vdpau_decoder +mpeg2_crystalhd_decoder +msa1_decoder +msmpeg4_crystalhd_decoder +msmpeg4v1_decoder +msmpeg4v2_decoder +msmpeg4v3_decoder +msrle_decoder +mss1_decoder +mss2_decoder +msvideo1_decoder +mszh_decoder +mts2_decoder +mvc1_decoder +mvc2_decoder +mxpeg_decoder +nuv_decoder +paf_video_decoder +pam_decoder +pbm_decoder +pcx_decoder +pgm_decoder +pgmyuv_decoder +pictor_decoder +png_decoder +ppm_decoder +prores_decoder +prores_lgpl_decoder +ptx_decoder +qdraw_decoder +qpeg_decoder +qtrle_decoder +r10k_decoder +r210_decoder +rawvideo_decoder +rl2_decoder +roq_decoder +rpza_decoder +rv10_decoder +rv20_decoder +rv30_decoder +rv40_decoder +s302m_decoder +sanm_decoder +sgi_decoder +sgirle_decoder +smacker_decoder +smc_decoder +snow_decoder +sp5x_decoder +sunrast_decoder +svq1_decoder +svq3_decoder +targa_decoder +targa_y216_decoder +theora_decoder +thp_decoder +tiertexseqvideo_decoder +tiff_decoder +tmv_decoder +truemotion1_decoder +truemotion2_decoder +tscc_decoder +tscc2_decoder +txd_decoder +ulti_decoder +utvideo_decoder +v210_decoder +v210x_decoder +v308_decoder +v408_decoder +v410_decoder +vb_decoder +vble_decoder +vc1_decoder +vc1_crystalhd_decoder +vc1_vdpau_decoder +vc1image_decoder +vcr1_decoder +vmdvideo_decoder +vmnc_decoder +vp3_decoder +vp5_decoder +vp6_decoder +vp6a_decoder +vp6f_decoder +vp8_decoder +vqa_decoder +wmv1_decoder +wmv2_decoder +wmv3_decoder +wmv3_crystalhd_decoder +wmv3_vdpau_decoder +wmv3image_decoder +wnv1_decoder +xan_wc3_decoder +xan_wc4_decoder +xbm_decoder +xface_decoder +xl_decoder +xwd_decoder +y41p_decoder +yop_decoder +yuv4_decoder +zero12v_decoder +zerocodec_decoder +zlib_decoder +zmbv_decoder +aac_decoder +aac_latm_decoder +ac3_decoder +alac_decoder +als_decoder +amrnb_decoder +amrwb_decoder +ape_decoder +atrac1_decoder +atrac3_decoder +binkaudio_dct_decoder +binkaudio_rdft_decoder +bmv_audio_decoder +cook_decoder +dca_decoder +dsicinaudio_decoder +eac3_decoder +evrc_decoder +ffwavesynth_decoder +flac_decoder +g723_1_decoder +g729_decoder +gsm_decoder +gsm_ms_decoder +iac_decoder +imc_decoder +mace3_decoder +mace6_decoder +mlp_decoder +mp1_decoder +mp1float_decoder +mp2_decoder +mp2float_decoder +mp3_decoder +mp3float_decoder +mp3adu_decoder +mp3adufloat_decoder +mp3on4_decoder +mp3on4float_decoder +mpc7_decoder +mpc8_decoder +nellymoser_decoder +paf_audio_decoder +qcelp_decoder +qdm2_decoder +ra_144_decoder +ra_288_decoder +ralf_decoder +shorten_decoder +sipr_decoder +smackaud_decoder +sonic_decoder +tak_decoder +truehd_decoder +truespeech_decoder +tta_decoder +twinvq_decoder +vmdaudio_decoder +vorbis_decoder +wavpack_decoder +wmalossless_decoder +wmapro_decoder +wmav1_decoder +wmav2_decoder +wmavoice_decoder +ws_snd1_decoder +pcm_alaw_decoder +pcm_bluray_decoder +pcm_dvd_decoder +pcm_f32be_decoder +pcm_f32le_decoder +pcm_f64be_decoder +pcm_f64le_decoder +pcm_lxf_decoder +pcm_mulaw_decoder +pcm_s8_decoder +pcm_s8_planar_decoder +pcm_s16be_decoder +pcm_s16be_planar_decoder +pcm_s16le_decoder +pcm_s16le_planar_decoder +pcm_s24be_decoder +pcm_s24daud_decoder +pcm_s24le_decoder +pcm_s24le_planar_decoder +pcm_s32be_decoder +pcm_s32le_decoder +pcm_s32le_planar_decoder +pcm_u8_decoder +pcm_u16be_decoder +pcm_u16le_decoder +pcm_u24be_decoder +pcm_u24le_decoder +pcm_u32be_decoder +pcm_u32le_decoder +pcm_zork_decoder +interplay_dpcm_decoder +roq_dpcm_decoder +sol_dpcm_decoder +xan_dpcm_decoder +adpcm_4xm_decoder +adpcm_adx_decoder +adpcm_afc_decoder +adpcm_ct_decoder +adpcm_ea_decoder +adpcm_ea_maxis_xa_decoder +adpcm_ea_r1_decoder +adpcm_ea_r2_decoder +adpcm_ea_r3_decoder +adpcm_ea_xas_decoder +adpcm_g722_decoder +adpcm_g726_decoder +adpcm_ima_amv_decoder +adpcm_ima_apc_decoder +adpcm_ima_dk3_decoder +adpcm_ima_dk4_decoder +adpcm_ima_ea_eacs_decoder +adpcm_ima_ea_sead_decoder +adpcm_ima_iss_decoder +adpcm_ima_oki_decoder +adpcm_ima_qt_decoder +adpcm_ima_smjpeg_decoder +adpcm_ima_wav_decoder +adpcm_ima_ws_decoder +adpcm_ms_decoder +adpcm_sbpro_2_decoder +adpcm_sbpro_3_decoder +adpcm_sbpro_4_decoder +adpcm_swf_decoder +adpcm_thp_decoder +adpcm_xa_decoder +adpcm_yamaha_decoder +vima_decoder +ass_decoder +dvbsub_decoder +dvdsub_decoder +jacosub_decoder +microdvd_decoder +movtext_decoder +mpl2_decoder +pgssub_decoder +pjs_decoder +realtext_decoder +sami_decoder +srt_decoder +subrip_decoder +subviewer_decoder +subviewer1_decoder +text_decoder +vplayer_decoder +webvtt_decoder +xsub_decoder +libcelt_decoder +libgsm_decoder +libgsm_ms_decoder +libilbc_decoder +libopencore_amrnb_decoder +libopencore_amrwb_decoder +libopenjpeg_decoder +libopus_decoder +libschroedinger_decoder +libspeex_decoder +libstagefright_h264_decoder +libutvideo_decoder +libvorbis_decoder +libvpx_vp8_decoder +libvpx_vp9_decoder +bintext_decoder +xbin_decoder +idf_decoder' +delogo_filter='yes' +delogo_filter_deps='gpl' +demuxers_if_any='aac_demuxer +ac3_demuxer +act_demuxer +adf_demuxer +adx_demuxer +aea_demuxer +afc_demuxer +aiff_demuxer +amr_demuxer +anm_demuxer +apc_demuxer +ape_demuxer +aqtitle_demuxer +asf_demuxer +ass_demuxer +ast_demuxer +au_demuxer +avi_demuxer +avisynth_demuxer +avr_demuxer +avs_demuxer +bethsoftvid_demuxer +bfi_demuxer +bintext_demuxer +bink_demuxer +bit_demuxer +bmv_demuxer +brstm_demuxer +c93_demuxer +caf_demuxer +cavsvideo_demuxer +cdg_demuxer +cdxl_demuxer +concat_demuxer +daud_demuxer +dfa_demuxer +dirac_demuxer +dnxhd_demuxer +dsicin_demuxer +dts_demuxer +dtshd_demuxer +dv_demuxer +dxa_demuxer +ea_demuxer +ea_cdata_demuxer +eac3_demuxer +epaf_demuxer +ffm_demuxer +ffmetadata_demuxer +filmstrip_demuxer +flac_demuxer +flic_demuxer +flv_demuxer +fourxm_demuxer +frm_demuxer +g722_demuxer +g723_1_demuxer +g729_demuxer +gif_demuxer +gsm_demuxer +gxf_demuxer +h261_demuxer +h263_demuxer +h264_demuxer +hls_demuxer +ico_demuxer +idcin_demuxer +idf_demuxer +iff_demuxer +ilbc_demuxer +image2_demuxer +image2pipe_demuxer +ingenient_demuxer +ipmovie_demuxer +ircam_demuxer +iss_demuxer +iv8_demuxer +ivf_demuxer +jacosub_demuxer +jv_demuxer +latm_demuxer +lmlm4_demuxer +loas_demuxer +lvf_demuxer +lxf_demuxer +m4v_demuxer +matroska_demuxer +mgsts_demuxer +microdvd_demuxer +mjpeg_demuxer +mlp_demuxer +mm_demuxer +mmf_demuxer +mov_demuxer +mp3_demuxer +mpc_demuxer +mpc8_demuxer +mpegps_demuxer +mpegts_demuxer +mpegtsraw_demuxer +mpegvideo_demuxer +mpl2_demuxer +mpsub_demuxer +msnwc_tcp_demuxer +mtv_demuxer +mv_demuxer +mvi_demuxer +mxf_demuxer +mxg_demuxer +nc_demuxer +nistsphere_demuxer +nsv_demuxer +nut_demuxer +nuv_demuxer +ogg_demuxer +oma_demuxer +paf_demuxer +pcm_alaw_demuxer +pcm_mulaw_demuxer +pcm_f64be_demuxer +pcm_f64le_demuxer +pcm_f32be_demuxer +pcm_f32le_demuxer +pcm_s32be_demuxer +pcm_s32le_demuxer +pcm_s24be_demuxer +pcm_s24le_demuxer +pcm_s16be_demuxer +pcm_s16le_demuxer +pcm_s8_demuxer +pcm_u32be_demuxer +pcm_u32le_demuxer +pcm_u24be_demuxer +pcm_u24le_demuxer +pcm_u16be_demuxer +pcm_u16le_demuxer +pcm_u8_demuxer +pjs_demuxer +pmp_demuxer +pva_demuxer +pvf_demuxer +qcp_demuxer +r3d_demuxer +rawvideo_demuxer +realtext_demuxer +rl2_demuxer +rm_demuxer +roq_demuxer +rpl_demuxer +rso_demuxer +rtp_demuxer +rtsp_demuxer +sami_demuxer +sap_demuxer +sbg_demuxer +sdp_demuxer +segafilm_demuxer +shorten_demuxer +siff_demuxer +smacker_demuxer +smjpeg_demuxer +smush_demuxer +sol_demuxer +sox_demuxer +spdif_demuxer +srt_demuxer +str_demuxer +subviewer1_demuxer +subviewer_demuxer +swf_demuxer +tak_demuxer +tedcaptions_demuxer +thp_demuxer +tiertexseq_demuxer +tmv_demuxer +truehd_demuxer +tta_demuxer +txd_demuxer +tty_demuxer +vc1_demuxer +vc1t_demuxer +vivo_demuxer +vmd_demuxer +vobsub_demuxer +voc_demuxer +vplayer_demuxer +vqf_demuxer +w64_demuxer +wav_demuxer +wc3_demuxer +webvtt_demuxer +wsaud_demuxer +wsvqa_demuxer +wtv_demuxer +wv_demuxer +xa_demuxer +xbin_demuxer +xmv_demuxer +xwma_demuxer +yop_demuxer +yuv4mpegpipe_demuxer +libmodplug_demuxer +libnut_demuxer' +dep='sse3' +deshake_filter='yes' +deshake_filter_deps='avcodec' +dfa_decoder='yes' +dfa_demuxer='yes' +dirac_decoder='yes' +dirac_decoder_select='dsputil dwt golomb videodsp' +dirac_demuxer='yes' +dirac_demuxer_select='dirac_parser' +dirac_muxer='yes' +dirac_parser='yes' +dnxhd_decoder='yes' +dnxhd_decoder_select='dsputil' +dnxhd_demuxer='yes' +dnxhd_encoder='yes' +dnxhd_encoder_select='aandcttables dsputil mpegvideoenc' +dnxhd_muxer='yes' +dnxhd_parser='yes' +doc='yes' +doc_deps_any='manpages htmlpages podpages txtpages' +dpx_decoder='yes' +dpx_encoder='yes' +drawbox_filter='yes' +drawtext_filter='yes' +drawtext_filter_deps='libfreetype' +dshow_indev='yes' +dshow_indev_deps='IBaseFilter' +dshow_indev_extralibs='-lpsapi -lole32 -lstrmiids -luuid' +dsicin_demuxer='yes' +dsicinaudio_decoder='yes' +dsicinvideo_decoder='yes' +dts_demuxer='yes' +dts_demuxer_select='dca_parser' +dts_muxer='yes' +dtshd_demuxer='yes' +dtshd_demuxer_select='dca_parser' +dump_extradata_bsf='yes' +dv1394_indev='yes' +dv1394_indev_deps='dv1394 dv_demuxer' +dv_decoder_select='dsputil' +dv_demuxer='yes' +dv_muxer='yes' +dvbsub_decoder='yes' +dvbsub_encoder='yes' +dvbsub_parser='yes' +dvd_nav_parser='yes' +dvdsub_decoder='yes' +dvdsub_encoder='yes' +dvdsub_parser='yes' +dvvideo_decoder='yes' +dvvideo_encoder='yes' +dxa_decoder='yes' +dxa_decoder_select='zlib' +dxa_demuxer='yes' +dxtory_decoder='yes' +dxva2_deps='dxva2api_h' +ea_cdata_demuxer='yes' +ea_demuxer='yes' +eac3_decoder='yes' +eac3_decoder_select='ac3_decoder' +eac3_demuxer='yes' +eac3_demuxer_select='ac3_parser' +eac3_encoder='yes' +eac3_encoder_select='ac3_encoder' +eac3_muxer='yes' +eacmv_decoder='yes' +eamad_decoder='yes' +eamad_decoder_select='aandcttables dsputil mpegvideo' +earwax_filter='yes' +eatgq_decoder='yes' +eatgq_decoder_select='aandcttables' +eatgv_decoder='yes' +eatqi_decoder='yes' +eatqi_decoder_select='aandcttables mpegvideo' +ebur128_filter='yes' +ebur128_filter_deps='gpl' +edgedetect_filter='yes' +eightbps_decoder='yes' +eightsvx_exp_decoder='yes' +eightsvx_fib_decoder='yes' +encoders_if_any='a64multi_encoder +a64multi5_encoder +amv_encoder +asv1_encoder +asv2_encoder +avrp_encoder +avui_encoder +ayuv_encoder +bmp_encoder +cljr_encoder +comfortnoise_encoder +dnxhd_encoder +dpx_encoder +dvvideo_encoder +ffv1_encoder +ffvhuff_encoder +flashsv_encoder +flashsv2_encoder +flv_encoder +gif_encoder +h261_encoder +h263_encoder +h263p_encoder +huffyuv_encoder +jpeg2000_encoder +jpegls_encoder +ljpeg_encoder +mjpeg_encoder +mpeg1video_encoder +mpeg2video_encoder +mpeg4_encoder +msmpeg4v2_encoder +msmpeg4v3_encoder +msvideo1_encoder +pam_encoder +pbm_encoder +pcx_encoder +pgm_encoder +pgmyuv_encoder +png_encoder +ppm_encoder +prores_encoder +prores_anatoliy_encoder +prores_kostya_encoder +qtrle_encoder +r10k_encoder +r210_encoder +rawvideo_encoder +roq_encoder +rv10_encoder +rv20_encoder +sgi_encoder +snow_encoder +sunrast_encoder +svq1_encoder +targa_encoder +tiff_encoder +utvideo_encoder +v210_encoder +v308_encoder +v408_encoder +v410_encoder +wmv1_encoder +wmv2_encoder +xbm_encoder +xface_encoder +xwd_encoder +y41p_encoder +yuv4_encoder +zlib_encoder +zmbv_encoder +aac_encoder +ac3_encoder +ac3_fixed_encoder +alac_encoder +dca_encoder +eac3_encoder +flac_encoder +g723_1_encoder +mp2_encoder +nellymoser_encoder +ra_144_encoder +sonic_encoder +sonic_ls_encoder +vorbis_encoder +wmav1_encoder +wmav2_encoder +pcm_alaw_encoder +pcm_f32be_encoder +pcm_f32le_encoder +pcm_f64be_encoder +pcm_f64le_encoder +pcm_mulaw_encoder +pcm_s8_encoder +pcm_s8_planar_encoder +pcm_s16be_encoder +pcm_s16be_planar_encoder +pcm_s16le_encoder +pcm_s16le_planar_encoder +pcm_s24be_encoder +pcm_s24daud_encoder +pcm_s24le_encoder +pcm_s24le_planar_encoder +pcm_s32be_encoder +pcm_s32le_encoder +pcm_s32le_planar_encoder +pcm_u8_encoder +pcm_u16be_encoder +pcm_u16le_encoder +pcm_u24be_encoder +pcm_u24le_encoder +pcm_u32be_encoder +pcm_u32le_encoder +roq_dpcm_encoder +adpcm_adx_encoder +adpcm_g722_encoder +adpcm_g726_encoder +adpcm_ima_qt_encoder +adpcm_ima_wav_encoder +adpcm_ms_encoder +adpcm_swf_encoder +adpcm_yamaha_encoder +ass_encoder +dvbsub_encoder +dvdsub_encoder +movtext_encoder +srt_encoder +subrip_encoder +xsub_encoder +libfaac_encoder +libfdk_aac_encoder +libgsm_encoder +libgsm_ms_encoder +libilbc_encoder +libmp3lame_encoder +libopencore_amrnb_encoder +libopenjpeg_encoder +libopus_encoder +libschroedinger_encoder +libspeex_encoder +libtheora_encoder +libtwolame_encoder +libutvideo_encoder +libvo_aacenc_encoder +libvo_amrwbenc_encoder +libvorbis_encoder +libvpx_vp8_encoder +libvpx_vp9_encoder +libx264_encoder +libx264rgb_encoder +libxavs_encoder +libxvid_encoder +libaacplus_encoder' +epaf_demuxer='yes' +equalizer_filter='yes' +error_resilience_select='dsputil' +escape124_decoder='yes' +escape130_decoder='yes' +evrc_decoder='yes' +exr_decoder='yes' +exr_decoder_select='zlib' +ext='ssse3' +f4v_muxer='yes' +f4v_muxer_select='mov_muxer' +fade_filter='yes' +fast_64bit_if_any='alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64' +fast_clz_if_any='alpha avr32 mips ppc x86' +fast_unaligned_if_any='ppc x86' +fbdev_indev='yes' +fbdev_indev_deps='linux_fb_h' +ffm_demuxer='yes' +ffm_muxer='yes' +ffmetadata_demuxer='yes' +ffmetadata_muxer='yes' +ffmpeg='yes' +ffmpeg_deps='avcodec avfilter avformat swscale swresample' +ffmpeg_select='format_filter aformat_filter + setpts_filter null_filter anull_filter' +ffplay='yes' +ffplay_deps='avcodec avformat swscale swresample sdl' +ffplay_select='rdft crop_filter' +ffprobe='yes' +ffprobe_deps='avcodec avformat' +ffrtmpcrypt_protocol='yes' +ffrtmpcrypt_protocol_deps='!librtmp_protocol' +ffrtmpcrypt_protocol_deps_any='gcrypt nettle openssl' +ffrtmpcrypt_protocol_select='tcp_protocol' +ffrtmphttp_protocol='yes' +ffrtmphttp_protocol_deps='!librtmp_protocol' +ffrtmphttp_protocol_select='http_protocol' +ffserver='yes' +ffserver_deps='avformat ffm_muxer fork rtp_protocol rtsp_demuxer' +ffserver_extralibs='$ldl' +ffv1_decoder='yes' +ffv1_decoder_select='dsputil golomb rangecoder' +ffv1_encoder='yes' +ffv1_encoder_select='rangecoder' +ffvhuff_decoder='yes' +ffvhuff_encoder='yes' +ffvhuff_encoder_select='huffman' +ffwavesynth_decoder='yes' +field_filter='yes' +fieldorder_filter='yes' +file_protocol='yes' +filmstrip_demuxer='yes' +filmstrip_muxer='yes' +filters_if_any='aconvert_filter +afade_filter +aformat_filter +allpass_filter +amerge_filter +amix_filter +anull_filter +apad_filter +aperms_filter +aresample_filter +aselect_filter +asendcmd_filter +asetnsamples_filter +asetpts_filter +asettb_filter +ashowinfo_filter +asplit_filter +astreamsync_filter +asyncts_filter +atempo_filter +bandpass_filter +bandreject_filter +bass_filter +biquad_filter +channelmap_filter +channelsplit_filter +earwax_filter +ebur128_filter +equalizer_filter +highpass_filter +join_filter +lowpass_filter +pan_filter +resample_filter +silencedetect_filter +treble_filter +volume_filter +volumedetect_filter +aevalsrc_filter +anullsrc_filter +flite_filter +sine_filter +anullsink_filter +alphaextract_filter +alphamerge_filter +ass_filter +bbox_filter +blackdetect_filter +blackframe_filter +blend_filter +boxblur_filter +colormatrix_filter +copy_filter +crop_filter +cropdetect_filter +curves_filter +decimate_filter +delogo_filter +deshake_filter +drawbox_filter +drawtext_filter +edgedetect_filter +fade_filter +field_filter +fieldorder_filter +format_filter +fps_filter +framestep_filter +frei0r_filter +geq_filter +gradfun_filter +hflip_filter +histeq_filter +histogram_filter +hqdn3d_filter +hue_filter +idet_filter +il_filter +kerndeint_filter +lut_filter +lutrgb_filter +lutyuv_filter +mp_filter +negate_filter +noformat_filter +noise_filter +null_filter +ocv_filter +overlay_filter +pad_filter +perms_filter +pixdesctest_filter +pp_filter +removelogo_filter +scale_filter +select_filter +sendcmd_filter +setdar_filter +setfield_filter +setpts_filter +setsar_filter +settb_filter +showinfo_filter +smartblur_filter +split_filter +stereo3d_filter +subtitles_filter +super2xsai_filter +swapuv_filter +thumbnail_filter +tile_filter +tinterlace_filter +transpose_filter +unsharp_filter +vflip_filter +yadif_filter +cellauto_filter +color_filter +frei0r_src_filter +life_filter +mandelbrot_filter +mptestsrc_filter +nullsrc_filter +rgbtestsrc_filter +smptebars_filter +testsrc_filter +nullsink_filter +concat_filter +showspectrum_filter +showwaves_filter +amovie_filter +movie_filter' +flac_decoder='yes' +flac_decoder_select='golomb' +flac_demuxer='yes' +flac_demuxer_select='flac_parser' +flac_encoder='yes' +flac_encoder_select='dsputil golomb lpc' +flac_muxer='yes' +flac_parser='yes' +flashsv2_decoder='yes' +flashsv2_decoder_select='zlib' +flashsv2_encoder='yes' +flashsv2_encoder_select='zlib' +flashsv_decoder='yes' +flashsv_decoder_select='zlib' +flashsv_encoder='yes' +flashsv_encoder_select='zlib' +flic_decoder='yes' +flic_demuxer='yes' +flite_filter='yes' +flite_filter_deps='libflite' +flv_decoder='yes' +flv_decoder_select='h263_decoder' +flv_demuxer='yes' +flv_encoder='yes' +flv_encoder_select='h263_encoder' +flv_muxer='yes' +fma4='yes' +fma4_deps='avx' +fma4_external_deps='avx_external' +fma4_inline_deps='avx_inline' +fma4_suggest='fma4_external fma4_inline' +format_filter='yes' +fourxm_decoder='yes' +fourxm_decoder_select='dsputil' +fourxm_demuxer='yes' +fps_filter='yes' +frame_thread_encoder_deps='encoders threads' +framecrc_muxer='yes' +framemd5_muxer='yes' +framestep_filter='yes' +fraps_decoder='yes' +fraps_decoder_select='dsputil huffman' +frei0r_filter='yes' +frei0r_filter_deps='frei0r dlopen' +frei0r_filter_extralibs='$ldl' +frei0r_src_filter='yes' +frei0r_src_filter_deps='frei0r dlopen' +frei0r_src_filter_extralibs='$ldl' +frm_demuxer='yes' +frwu_decoder='yes' +g722_demuxer='yes' +g722_muxer='yes' +g723_1_decoder='yes' +g723_1_demuxer='yes' +g723_1_encoder='yes' +g723_1_muxer='yes' +g729_decoder='yes' +g729_decoder_select='dsputil' +g729_demuxer='yes' +geq_filter='yes' +geq_filter_deps='gpl' +gif_decoder='yes' +gif_demuxer='yes' +gif_encoder='yes' +gif_muxer='yes' +gopher_protocol='yes' +gopher_protocol_select='network' +gpl='yes' +gradfun_filter='yes' +gsm_decoder='yes' +gsm_demuxer='yes' +gsm_ms_decoder='yes' +gsm_parser='yes' +gxf_demuxer='yes' +gxf_muxer='yes' +h261_decoder='yes' +h261_decoder_select='error_resilience mpegvideo' +h261_demuxer='yes' +h261_encoder='yes' +h261_encoder_select='aandcttables mpegvideoenc' +h261_muxer='yes' +h261_parser='yes' +h263_decoder='yes' +h263_decoder_select='error_resilience h263_parser mpegvideo' +h263_demuxer='yes' +h263_encoder='yes' +h263_encoder_select='aandcttables mpegvideoenc' +h263_muxer='yes' +h263_parser='yes' +h263_vaapi_hwaccel='yes' +h263_vaapi_hwaccel_deps='vaapi' +h263_vaapi_hwaccel_select='h263_decoder' +h263_vdpau_hwaccel='yes' +h263_vdpau_hwaccel_deps='vdpau' +h263_vdpau_hwaccel_select='h263_decoder' +h263i_decoder='yes' +h263i_decoder_select='h263_decoder' +h263p_decoder='yes' +h263p_encoder='yes' +h263p_encoder_select='h263_encoder' +h264_crystalhd_decoder='yes' +h264_crystalhd_decoder_select='crystalhd h264_mp4toannexb_bsf h264_parser' +h264_decoder='yes' +h264_decoder_select='golomb h264chroma h264dsp h264pred h264qpel videodsp' +h264_demuxer='yes' +h264_dxva2_hwaccel='yes' +h264_dxva2_hwaccel_deps='dxva2' +h264_dxva2_hwaccel_select='h264_decoder' +h264_mp4toannexb_bsf='yes' +h264_muxer='yes' +h264_parser='yes' +h264_parser_select='golomb h264chroma h264dsp h264pred h264qpel videodsp' +h264_vaapi_hwaccel='yes' +h264_vaapi_hwaccel_deps='vaapi' +h264_vaapi_hwaccel_select='h264_decoder' +h264_vda_decoder='yes' +h264_vda_decoder_deps='vda' +h264_vda_decoder_select='h264_decoder' +h264_vda_hwaccel='yes' +h264_vda_hwaccel_deps='vda' +h264_vda_hwaccel_select='h264_decoder' +h264_vdpau_decoder='yes' +h264_vdpau_decoder_deps='vdpau' +h264_vdpau_decoder_select='h264_decoder' +h264_vdpau_hwaccel='yes' +h264_vdpau_hwaccel_deps='vdpau' +h264_vdpau_hwaccel_select='h264_decoder' +hflip_filter='yes' +highpass_filter='yes' +histeq_filter='yes' +histeq_filter_deps='gpl' +histogram_filter='yes' +hls_demuxer='yes' +hls_muxer='yes' +hls_protocol='yes' +host_cc_default='gcc' +host_cflags='-O3 -g' +host_cflags_filter='echo' +host_cppflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600' +host_ldflags_filter='echo' +host_libs='-lm' +host_os='linux' +hqdn3d_filter='yes' +hqdn3d_filter_deps='gpl' +htmlpages='yes' +htmlpages_deps='texi2html' +http_protocol='yes' +http_protocol_select='tcp_protocol' +httpproxy_protocol='yes' +httpproxy_protocol_select='tcp_protocol' +https_protocol='yes' +https_protocol_select='tls_protocol' +hue_filter='yes' +hue_filter_deps='gpl' +huffyuv_decoder='yes' +huffyuv_decoder_select='dsputil' +huffyuv_encoder='yes' +huffyuv_encoder_select='huffman' +hwaccels_if_any='h263_vaapi_hwaccel +h263_vdpau_hwaccel +h264_dxva2_hwaccel +h264_vaapi_hwaccel +h264_vda_hwaccel +h264_vdpau_hwaccel +mpeg1_vdpau_hwaccel +mpeg2_dxva2_hwaccel +mpeg2_vaapi_hwaccel +mpeg2_vdpau_hwaccel +mpeg4_vaapi_hwaccel +mpeg4_vdpau_hwaccel +vc1_dxva2_hwaccel +vc1_vaapi_hwaccel +vc1_vdpau_hwaccel +wmv3_dxva2_hwaccel +wmv3_vaapi_hwaccel +wmv3_vdpau_hwaccel' +iac_decoder='yes' +iac_decoder_select='fft mdct sinewin' +ico_demuxer='yes' +ico_muxer='yes' +idcin_decoder='yes' +idcin_demuxer='yes' +idet_filter='yes' +idf_decoder='yes' +idf_demuxer='yes' +iec61883_indev='yes' +iec61883_indev_deps='libiec61883' +iff_byterun1_decoder='yes' +iff_demuxer='yes' +iff_ilbm_decoder='yes' +il_filter='yes' +ilbc_demuxer='yes' +ilbc_muxer='yes' +image2_demuxer='yes' +image2_muxer='yes' +image2pipe_demuxer='yes' +image2pipe_muxer='yes' +imc_decoder='yes' +imc_decoder_select='dsputil fft mdct sinewin' +imx_dump_header_bsf='yes' +incdir_default='${prefix}/include' +indeo2_decoder='yes' +indeo3_decoder='yes' +indeo3_decoder_select='hpeldsp' +indeo4_decoder='yes' +indeo5_decoder='yes' +indevs_if_any='alsa_indev +bktr_indev +dshow_indev +dv1394_indev +fbdev_indev +iec61883_indev +jack_indev +lavfi_indev +openal_indev +oss_indev +pulse_indev +sndio_indev +v4l2_indev +vfwcap_indev +x11grab_indev +libcdio_indev +libdc1394_indev' +ingenient_demuxer='yes' +inline_asm_deps='!tms470' +install='install' +interplay_dpcm_decoder='yes' +interplay_video_decoder='yes' +interplay_video_decoder_select='hpeldsp' +ipmovie_demuxer='yes' +ipod_muxer='yes' +ipod_muxer_select='mov_muxer' +ircam_demuxer='yes' +ircam_muxer='yes' +ismv_muxer='yes' +ismv_muxer_select='mov_muxer' +iss_demuxer='yes' +iv8_demuxer='yes' +ivf_demuxer='yes' +ivf_muxer='yes' +jack_indev='yes' +jack_indev_deps='jack_jack_h sem_timedwait' +jacosub_decoder='yes' +jacosub_demuxer='yes' +jacosub_muxer='yes' +join_filter='yes' +jpeg2000_decoder='yes' +jpeg2000_encoder='yes' +jpegls_decoder='yes' +jpegls_decoder_select='golomb' +jpegls_encoder='yes' +jpegls_encoder_select='golomb' +jv_decoder='yes' +jv_decoder_select='dsputil' +jv_demuxer='yes' +kerndeint_filter='yes' +kerndeint_filter_deps='gpl' +kgv1_decoder='yes' +kmvc_decoder='yes' +l='' +lagarith_decoder='yes' +lagarith_decoder_select='dsputil' +latm_demuxer='yes' +latm_muxer='yes' +lavfi_indev='yes' +lavfi_indev_deps='avfilter' +ldflags_filter='echo' +libaacplus_encoder='yes' +libaacplus_encoder_deps='libaacplus' +libcdio_indev='yes' +libcdio_indev_deps='libcdio' +libcelt_decoder='yes' +libcelt_decoder_deps='libcelt' +libdc1394_indev='yes' +libdc1394_indev_deps='libdc1394' +libdir_default='${prefix}/lib' +libfaac='yes' +libfaac_encoder='yes' +libfaac_encoder_deps='libfaac' +libfaac_encoder_select='audio_frame_queue' +libfdk_aac_encoder='yes' +libfdk_aac_encoder_deps='libfdk_aac' +libfdk_aac_encoder_select='audio_frame_queue' +libgsm_decoder='yes' +libgsm_decoder_deps='libgsm' +libgsm_encoder='yes' +libgsm_encoder_deps='libgsm' +libgsm_ms_decoder='yes' +libgsm_ms_decoder_deps='libgsm' +libgsm_ms_encoder='yes' +libgsm_ms_encoder_deps='libgsm' +libilbc_decoder='yes' +libilbc_decoder_deps='libilbc' +libilbc_encoder='yes' +libilbc_encoder_deps='libilbc' +libmodplug_demuxer='yes' +libmodplug_demuxer_deps='libmodplug' +libmp3lame='yes' +libmp3lame_encoder='yes' +libmp3lame_encoder_deps='libmp3lame' +libmp3lame_encoder_select='audio_frame_queue' +libnut_demuxer='yes' +libnut_demuxer_deps='libnut' +libnut_muxer='yes' +libnut_muxer_deps='libnut' +libopencore_amrnb_decoder='yes' +libopencore_amrnb_decoder_deps='libopencore_amrnb' +libopencore_amrnb_encoder='yes' +libopencore_amrnb_encoder_deps='libopencore_amrnb' +libopencore_amrnb_encoder_select='audio_frame_queue' +libopencore_amrwb_decoder='yes' +libopencore_amrwb_decoder_deps='libopencore_amrwb' +libopenjpeg_decoder='yes' +libopenjpeg_decoder_deps='libopenjpeg' +libopenjpeg_encoder='yes' +libopenjpeg_encoder_deps='libopenjpeg' +libopus_decoder='yes' +libopus_decoder_deps='libopus' +libopus_encoder='yes' +libopus_encoder_deps='libopus' +libopus_encoder_select='audio_frame_queue' +librtmp_protocol='yes' +librtmp_protocol_deps='librtmp' +librtmpe_protocol='yes' +librtmpe_protocol_deps='librtmp' +librtmps_protocol='yes' +librtmps_protocol_deps='librtmp' +librtmpt_protocol='yes' +librtmpt_protocol_deps='librtmp' +librtmpte_protocol='yes' +librtmpte_protocol_deps='librtmp' +libschroedinger='yes' +libschroedinger_decoder='yes' +libschroedinger_decoder_deps='libschroedinger' +libschroedinger_encoder='yes' +libschroedinger_encoder_deps='libschroedinger' +libspeex_decoder='yes' +libspeex_decoder_deps='libspeex' +libspeex_encoder='yes' +libspeex_encoder_deps='libspeex' +libspeex_encoder_select='audio_frame_queue' +libstagefright_h264_decoder='yes' +libstagefright_h264_decoder_deps='libstagefright_h264' +libtheora='yes' +libtheora_encoder='yes' +libtheora_encoder_deps='libtheora' +libtwolame_encoder='yes' +libtwolame_encoder_deps='libtwolame' +libutvideo_decoder='yes' +libutvideo_decoder_deps='libutvideo' +libutvideo_encoder='yes' +libutvideo_encoder_deps='libutvideo' +libv4l2_indev_deps='libv4l2' +libvo_aacenc_encoder='yes' +libvo_aacenc_encoder_deps='libvo_aacenc' +libvo_aacenc_encoder_select='audio_frame_queue' +libvo_amrwbenc_encoder='yes' +libvo_amrwbenc_encoder_deps='libvo_amrwbenc' +libvorbis='yes' +libvorbis_decoder='yes' +libvorbis_decoder_deps='libvorbis' +libvorbis_encoder='yes' +libvorbis_encoder_deps='libvorbis' +libvorbis_encoder_select='audio_frame_queue' +libvpx_vp8_decoder='yes' +libvpx_vp8_decoder_deps='libvpx' +libvpx_vp8_encoder='yes' +libvpx_vp8_encoder_deps='libvpx' +libvpx_vp9_decoder='yes' +libvpx_vp9_decoder_deps='libvpx' +libvpx_vp9_encoder='yes' +libvpx_vp9_encoder_deps='libvpx' +libx264='yes' +libx264_encoder='yes' +libx264_encoder_deps='libx264' +libx264rgb_encoder='yes' +libx264rgb_encoder_deps='libx264' +libxavs_encoder='yes' +libxavs_encoder_deps='libxavs' +libxvid='yes' +libxvid_encoder='yes' +libxvid_encoder_deps='libxvid' +life_filter='yes' +ljpeg_encoder='yes' +ljpeg_encoder_select='aandcttables mpegvideoenc' +lmlm4_demuxer='yes' +ln_s='ln -s -f' +loas_demuxer='yes' +loco_decoder='yes' +loco_decoder_select='golomb' +log2_deps='!msvcrt' +logfile='config.log' +lowpass_filter='yes' +lut_filter='yes' +lutrgb_filter='yes' +lutyuv_filter='yes' +lvf_demuxer='yes' +lxf_demuxer='yes' +m='eval ${v}_inline_deps=inline_asm' +m4v_demuxer='yes' +m4v_muxer='yes' +mace3_decoder='yes' +mace6_decoder='yes' +mandelbrot_filter='yes' +mandir_default='${prefix}/share/man' +manpages='yes' +manpages_deps='perl pod2man' +matroska_audio_muxer='yes' +matroska_audio_muxer_select='matroska_muxer' +matroska_demuxer='yes' +matroska_demuxer_suggest='bzlib lzo zlib' +matroska_muxer='yes' +md5_muxer='yes' +md5_protocol='yes' +mdct_select='fft' +mdec_decoder='yes' +mdec_decoder_select='dsputil error_resilience mpegvideo' +mgsts_demuxer='yes' +microdvd_decoder='yes' +microdvd_demuxer='yes' +microdvd_muxer='yes' +mimic_decoder='yes' +mimic_decoder_select='dsputil hpeldsp' +mips32r2='yes' +mips32r2_deps='mips' +mipsdspr1='yes' +mipsdspr1_deps='mips' +mipsdspr2='yes' +mipsdspr2_deps='mips' +mipsfpu='yes' +mipsfpu_deps='mips' +mjpeg2jpeg_bsf='yes' +mjpeg_decoder='yes' +mjpeg_decoder_select='dsputil hpeldsp' +mjpeg_demuxer='yes' +mjpeg_encoder='yes' +mjpeg_encoder_select='aandcttables dsputil mpegvideoenc' +mjpeg_muxer='yes' +mjpeg_parser='yes' +mjpega_dump_header_bsf='yes' +mjpegb_decoder='yes' +mkvtimestamp_v2_muxer='yes' +mlp_decoder='yes' +mlp_decoder_select='dsputil mlp_parser' +mlp_demuxer='yes' +mlp_muxer='yes' +mlp_parser='yes' +mm_demuxer='yes' +mmf_demuxer='yes' +mmf_muxer='yes' +mmsh_protocol='yes' +mmsh_protocol_select='http_protocol' +mmst_protocol='yes' +mmst_protocol_select='network' +mmvideo_decoder='yes' +mmx='yes' +mmx_deps='x86' +mmx_external_deps='yasm' +mmx_inline_deps='inline_asm' +mmx_suggest='mmx_external mmx_inline' +mmxext='yes' +mmxext_deps='mmx' +mmxext_external_deps='mmx_external' +mmxext_inline_deps='mmx_inline' +mmxext_suggest='mmxext_external mmxext_inline' +motionpixels_decoder='yes' +motionpixels_decoder_select='dsputil' +mov2textsub_bsf='yes' +mov_demuxer='yes' +mov_demuxer_suggest='zlib' +mov_muxer='yes' +mov_muxer_select='rtpenc_chain' +movie_filter='yes' +movie_filter_deps='avcodec avformat' +movtext_decoder='yes' +movtext_encoder='yes' +mp1_decoder='yes' +mp1_decoder_select='mpegaudio' +mp1float_decoder='yes' +mp1float_decoder_select='mpegaudio' +mp2_decoder='yes' +mp2_decoder_select='mpegaudio' +mp2_encoder='yes' +mp2_muxer='yes' +mp2float_decoder='yes' +mp2float_decoder_select='mpegaudio' +mp3_decoder='yes' +mp3_decoder_select='mpegaudio' +mp3_demuxer='yes' +mp3_demuxer_select='mpegaudio_parser' +mp3_header_compress_bsf='yes' +mp3_header_decompress_bsf='yes' +mp3_muxer='yes' +mp3adu_decoder='yes' +mp3adu_decoder_select='mpegaudio' +mp3adufloat_decoder='yes' +mp3adufloat_decoder_select='mpegaudio' +mp3float_decoder='yes' +mp3float_decoder_select='mpegaudio' +mp3on4_decoder='yes' +mp3on4_decoder_select='mpegaudio' +mp3on4float_decoder='yes' +mp3on4float_decoder_select='mpegaudio' +mp4_muxer='yes' +mp4_muxer_select='mov_muxer' +mp_filter='yes' +mp_filter_deps='gpl avcodec swscale inline_asm' +mpc7_decoder='yes' +mpc7_decoder_select='dsputil mpegaudiodsp' +mpc8_decoder='yes' +mpc8_decoder_select='dsputil mpegaudiodsp' +mpc8_demuxer='yes' +mpc_demuxer='yes' +mpeg1_vdpau_decoder='yes' +mpeg1_vdpau_decoder_deps='vdpau' +mpeg1_vdpau_decoder_select='mpeg1video_decoder' +mpeg1_vdpau_hwaccel='yes' +mpeg1_vdpau_hwaccel_deps='vdpau' +mpeg1_vdpau_hwaccel_select='mpeg1video_decoder' +mpeg1system_muxer='yes' +mpeg1vcd_muxer='yes' +mpeg1video_decoder='yes' +mpeg1video_decoder_select='error_resilience mpegvideo' +mpeg1video_encoder='yes' +mpeg1video_encoder_select='aandcttables mpegvideoenc' +mpeg1video_muxer='yes' +mpeg2_crystalhd_decoder='yes' +mpeg2_crystalhd_decoder_select='crystalhd' +mpeg2_dxva2_hwaccel='yes' +mpeg2_dxva2_hwaccel_deps='dxva2' +mpeg2_dxva2_hwaccel_select='mpeg2video_decoder' +mpeg2_vaapi_hwaccel='yes' +mpeg2_vaapi_hwaccel_deps='vaapi' +mpeg2_vaapi_hwaccel_select='mpeg2video_decoder' +mpeg2_vdpau_hwaccel='yes' +mpeg2_vdpau_hwaccel_deps='vdpau' +mpeg2_vdpau_hwaccel_select='mpeg2video_decoder' +mpeg2dvd_muxer='yes' +mpeg2svcd_muxer='yes' +mpeg2video_decoder='yes' +mpeg2video_decoder_select='error_resilience mpegvideo' +mpeg2video_encoder='yes' +mpeg2video_encoder_select='aandcttables mpegvideoenc' +mpeg2video_muxer='yes' +mpeg2vob_muxer='yes' +mpeg4_crystalhd_decoder='yes' +mpeg4_crystalhd_decoder_select='crystalhd' +mpeg4_decoder='yes' +mpeg4_decoder_select='h263_decoder mpeg4video_parser' +mpeg4_encoder='yes' +mpeg4_encoder_select='h263_encoder' +mpeg4_vaapi_hwaccel='yes' +mpeg4_vaapi_hwaccel_deps='vaapi' +mpeg4_vaapi_hwaccel_select='mpeg4_decoder' +mpeg4_vdpau_decoder='yes' +mpeg4_vdpau_decoder_deps='vdpau' +mpeg4_vdpau_decoder_select='mpeg4_decoder' +mpeg4_vdpau_hwaccel='yes' +mpeg4_vdpau_hwaccel_deps='vdpau' +mpeg4_vdpau_hwaccel_select='mpeg4_decoder' +mpeg4video_parser='yes' +mpeg4video_parser_select='error_resilience mpegvideo' +mpeg_vdpau_decoder='yes' +mpeg_vdpau_decoder_deps='vdpau' +mpeg_vdpau_decoder_select='mpegvideo_decoder' +mpeg_xvmc_decoder='yes' +mpeg_xvmc_decoder_deps='X11_extensions_XvMClib_h' +mpeg_xvmc_decoder_select='mpegvideo_decoder' +mpegaudio_parser='yes' +mpegaudio_select='mpegaudiodsp' +mpegaudiodsp_select='dct' +mpegps_demuxer='yes' +mpegts_demuxer='yes' +mpegts_muxer='yes' +mpegts_muxer_select='adts_muxer latm_muxer mpegvideo' +mpegtsraw_demuxer='yes' +mpegtsraw_demuxer_select='mpegts_demuxer' +mpegvideo_decoder='yes' +mpegvideo_demuxer='yes' +mpegvideo_parser='yes' +mpegvideo_parser_select='error_resilience mpegvideo' +mpegvideo_select='dsputil error_resilience h264chroma hpeldsp videodsp' +mpegvideoenc_select='mpegvideo' +mpjpeg_muxer='yes' +mpl2_decoder='yes' +mpl2_demuxer='yes' +mpsub_demuxer='yes' +mptestsrc_filter='yes' +mptestsrc_filter_deps='gpl' +msa1_decoder='yes' +msmpeg4_crystalhd_decoder='yes' +msmpeg4_crystalhd_decoder_select='crystalhd' +msmpeg4v1_decoder='yes' +msmpeg4v1_decoder_select='h263_decoder' +msmpeg4v1_encoder_select='h263_encoder' +msmpeg4v2_decoder='yes' +msmpeg4v2_decoder_select='h263_decoder' +msmpeg4v2_encoder='yes' +msmpeg4v2_encoder_select='h263_encoder' +msmpeg4v3_decoder='yes' +msmpeg4v3_decoder_select='h263_decoder' +msmpeg4v3_encoder='yes' +msmpeg4v3_encoder_select='h263_encoder' +msnwc_tcp_demuxer='yes' +msrle_decoder='yes' +mss1_decoder='yes' +mss2_decoder='yes' +mss2_decoder_select='error_resilience vc1_decoder' +msvideo1_decoder='yes' +msvideo1_encoder='yes' +mszh_decoder='yes' +mts2_decoder='yes' +mtv_demuxer='yes' +muxers_if_any='a64_muxer +ac3_muxer +adts_muxer +adx_muxer +aiff_muxer +amr_muxer +asf_muxer +ass_muxer +ast_muxer +asf_stream_muxer +au_muxer +avi_muxer +avm2_muxer +bit_muxer +caf_muxer +cavsvideo_muxer +crc_muxer +daud_muxer +dirac_muxer +dnxhd_muxer +dts_muxer +dv_muxer +eac3_muxer +f4v_muxer +ffm_muxer +ffmetadata_muxer +filmstrip_muxer +flac_muxer +flv_muxer +framecrc_muxer +framemd5_muxer +g722_muxer +g723_1_muxer +gif_muxer +gxf_muxer +h261_muxer +h263_muxer +h264_muxer +hls_muxer +ico_muxer +ilbc_muxer +image2_muxer +image2pipe_muxer +ipod_muxer +ircam_muxer +ismv_muxer +ivf_muxer +jacosub_muxer +latm_muxer +m4v_muxer +md5_muxer +matroska_muxer +matroska_audio_muxer +microdvd_muxer +mjpeg_muxer +mlp_muxer +mmf_muxer +mov_muxer +mp2_muxer +mp3_muxer +mp4_muxer +mpeg1system_muxer +mpeg1vcd_muxer +mpeg1video_muxer +mpeg2dvd_muxer +mpeg2svcd_muxer +mpeg2video_muxer +mpeg2vob_muxer +mpegts_muxer +mpjpeg_muxer +mxf_muxer +mxf_d10_muxer +null_muxer +nut_muxer +ogg_muxer +oma_muxer +pcm_alaw_muxer +pcm_mulaw_muxer +pcm_f64be_muxer +pcm_f64le_muxer +pcm_f32be_muxer +pcm_f32le_muxer +pcm_s32be_muxer +pcm_s32le_muxer +pcm_s24be_muxer +pcm_s24le_muxer +pcm_s16be_muxer +pcm_s16le_muxer +pcm_s8_muxer +pcm_u32be_muxer +pcm_u32le_muxer +pcm_u24be_muxer +pcm_u24le_muxer +pcm_u16be_muxer +pcm_u16le_muxer +pcm_u8_muxer +psp_muxer +rawvideo_muxer +rm_muxer +roq_muxer +rso_muxer +rtp_muxer +rtsp_muxer +sap_muxer +segment_muxer +stream_segment_muxer +smjpeg_muxer +smoothstreaming_muxer +sox_muxer +spdif_muxer +srt_muxer +swf_muxer +tee_muxer +tg2_muxer +tgp_muxer +mkvtimestamp_v2_muxer +truehd_muxer +vc1_muxer +vc1t_muxer +voc_muxer +w64_muxer +wav_muxer +webm_muxer +wtv_muxer +wv_muxer +yuv4mpegpipe_muxer +libnut_muxer' +mv_demuxer='yes' +mvc1_decoder='yes' +mvc2_decoder='yes' +mvi_demuxer='yes' +mxf_d10_muxer='yes' +mxf_d10_muxer_select='mxf_muxer' +mxf_demuxer='yes' +mxf_muxer='yes' +mxg_demuxer='yes' +mxpeg_decoder='yes' +n='protocols' +nc_demuxer='yes' +need_memalign='altivec neon sse' +negate_filter='yes' +negate_filter_deps='lut_filter' +nellymoser_decoder='yes' +nellymoser_decoder_select='mdct sinewin' +nellymoser_encoder='yes' +nellymoser_encoder_select='audio_frame_queue mdct sinewin' +neon='yes' +neon_deps='arm' +neon_inline_deps='inline_asm' +nistsphere_demuxer='yes' +nm_default='nm -g' +noformat_filter='yes' +nogas=':' +noise_bsf='yes' +noise_filter='yes' +noise_filter_deps='gpl' +nonfree='yes' +nsv_demuxer='yes' +null_filter='yes' +null_muxer='yes' +nullsink_filter='yes' +nullsrc_filter='yes' +nut_demuxer='yes' +nut_muxer='yes' +nuv_decoder='yes' +nuv_decoder_select='dsputil lzo' +nuv_demuxer='yes' +objformat='elf' +ocv_filter='yes' +ocv_filter_deps='libopencv' +ogg_demuxer='yes' +ogg_demuxer_select='golomb' +ogg_muxer='yes' +oma_demuxer='yes' +oma_muxer='yes' +op='=' +openal_indev='yes' +openal_indev_deps='openal' +opt='--enable-zlib' +optimizations='yes' +option='zlib' +optname='prefix' +optval='--enable-zlib' +oss_indev='yes' +oss_indev_deps_any='soundcard_h sys_soundcard_h' +oss_outdev='yes' +oss_outdev_deps_any='soundcard_h sys_soundcard_h' +outdevs_if_any='alsa_outdev +caca_outdev +oss_outdev +sdl_outdev +sndio_outdev' +overlay_filter='yes' +pad_filter='yes' +paf_audio_decoder='yes' +paf_demuxer='yes' +paf_video_decoder='yes' +pam_decoder='yes' +pam_encoder='yes' +pan_filter='yes' +pan_filter_deps='swresample' +parsers_if_any='aac_parser +aac_latm_parser +ac3_parser +adx_parser +bmp_parser +cavsvideo_parser +cook_parser +dca_parser +dirac_parser +dnxhd_parser +dvbsub_parser +dvdsub_parser +dvd_nav_parser +flac_parser +gsm_parser +h261_parser +h263_parser +h264_parser +mjpeg_parser +mlp_parser +mpeg4video_parser +mpegaudio_parser +mpegvideo_parser +png_parser +pnm_parser +rv30_parser +rv40_parser +tak_parser +vc1_parser +vorbis_parser +vp3_parser +vp8_parser' +pbm_decoder='yes' +pbm_encoder='yes' +pcm_alaw_decoder='yes' +pcm_alaw_demuxer='yes' +pcm_alaw_encoder='yes' +pcm_alaw_muxer='yes' +pcm_bluray_decoder='yes' +pcm_dvd_decoder='yes' +pcm_f32be_decoder='yes' +pcm_f32be_demuxer='yes' +pcm_f32be_encoder='yes' +pcm_f32be_muxer='yes' +pcm_f32le_decoder='yes' +pcm_f32le_demuxer='yes' +pcm_f32le_encoder='yes' +pcm_f32le_muxer='yes' +pcm_f64be_decoder='yes' +pcm_f64be_demuxer='yes' +pcm_f64be_encoder='yes' +pcm_f64be_muxer='yes' +pcm_f64le_decoder='yes' +pcm_f64le_demuxer='yes' +pcm_f64le_encoder='yes' +pcm_f64le_muxer='yes' +pcm_lxf_decoder='yes' +pcm_mulaw_decoder='yes' +pcm_mulaw_demuxer='yes' +pcm_mulaw_encoder='yes' +pcm_mulaw_muxer='yes' +pcm_s16be_decoder='yes' +pcm_s16be_demuxer='yes' +pcm_s16be_encoder='yes' +pcm_s16be_muxer='yes' +pcm_s16be_planar_decoder='yes' +pcm_s16be_planar_encoder='yes' +pcm_s16le_decoder='yes' +pcm_s16le_demuxer='yes' +pcm_s16le_encoder='yes' +pcm_s16le_muxer='yes' +pcm_s16le_planar_decoder='yes' +pcm_s16le_planar_encoder='yes' +pcm_s24be_decoder='yes' +pcm_s24be_demuxer='yes' +pcm_s24be_encoder='yes' +pcm_s24be_muxer='yes' +pcm_s24daud_decoder='yes' +pcm_s24daud_encoder='yes' +pcm_s24le_decoder='yes' +pcm_s24le_demuxer='yes' +pcm_s24le_encoder='yes' +pcm_s24le_muxer='yes' +pcm_s24le_planar_decoder='yes' +pcm_s24le_planar_encoder='yes' +pcm_s32be_decoder='yes' +pcm_s32be_demuxer='yes' +pcm_s32be_encoder='yes' +pcm_s32be_muxer='yes' +pcm_s32le_decoder='yes' +pcm_s32le_demuxer='yes' +pcm_s32le_encoder='yes' +pcm_s32le_muxer='yes' +pcm_s32le_planar_decoder='yes' +pcm_s32le_planar_encoder='yes' +pcm_s8_decoder='yes' +pcm_s8_demuxer='yes' +pcm_s8_encoder='yes' +pcm_s8_muxer='yes' +pcm_s8_planar_decoder='yes' +pcm_s8_planar_encoder='yes' +pcm_u16be_decoder='yes' +pcm_u16be_demuxer='yes' +pcm_u16be_encoder='yes' +pcm_u16be_muxer='yes' +pcm_u16le_decoder='yes' +pcm_u16le_demuxer='yes' +pcm_u16le_encoder='yes' +pcm_u16le_muxer='yes' +pcm_u24be_decoder='yes' +pcm_u24be_demuxer='yes' +pcm_u24be_encoder='yes' +pcm_u24be_muxer='yes' +pcm_u24le_decoder='yes' +pcm_u24le_demuxer='yes' +pcm_u24le_encoder='yes' +pcm_u24le_muxer='yes' +pcm_u32be_decoder='yes' +pcm_u32be_demuxer='yes' +pcm_u32be_encoder='yes' +pcm_u32be_muxer='yes' +pcm_u32le_decoder='yes' +pcm_u32le_demuxer='yes' +pcm_u32le_encoder='yes' +pcm_u32le_muxer='yes' +pcm_u8_decoder='yes' +pcm_u8_demuxer='yes' +pcm_u8_encoder='yes' +pcm_u8_muxer='yes' +pcm_zork_decoder='yes' +pcx_decoder='yes' +pcx_encoder='yes' +perms_filter='yes' +pgm_decoder='yes' +pgm_encoder='yes' +pgmyuv_decoder='yes' +pgmyuv_encoder='yes' +pgssub_decoder='yes' +pictor_decoder='yes' +pipe_protocol='yes' +pixdesctest_filter='yes' +pixfmts_super2xsai_test_deps='super2xsai_filter' +pjs_decoder='yes' +pjs_demuxer='yes' +pkg_config_default='pkg-config' +pmp_demuxer='yes' +png_decoder='yes' +png_decoder_select='zlib' +png_encoder='yes' +png_encoder_select='dsputil zlib' +png_parser='yes' +pnm_parser='yes' +podpages='yes' +podpages_deps='perl' +postproc='yes' +postproc_deps='avutil gpl' +pp_filter='yes' +pp_filter_deps='gpl postproc' +ppc4xx='yes' +ppc4xx_deps='ppc' +ppm_decoder='yes' +ppm_encoder='yes' +prefix='/usr/local' +prefix_default='/usr/local' +prores_anatoliy_encoder='yes' +prores_decoder='yes' +prores_decoder_select='dsputil' +prores_encoder='yes' +prores_kostya_encoder='yes' +prores_lgpl_decoder='yes' +protocols_if_any='bluray_protocol +cache_protocol +concat_protocol +crypto_protocol +data_protocol +ffrtmpcrypt_protocol +ffrtmphttp_protocol +file_protocol +gopher_protocol +hls_protocol +http_protocol +httpproxy_protocol +https_protocol +mmsh_protocol +mmst_protocol +md5_protocol +pipe_protocol +rtmp_protocol +rtmpe_protocol +rtmps_protocol +rtmpt_protocol +rtmpte_protocol +rtmpts_protocol +rtp_protocol +sctp_protocol +srtp_protocol +tcp_protocol +tls_protocol +udp_protocol +librtmp_protocol +librtmpe_protocol +librtmps_protocol +librtmpt_protocol +librtmpte_protocol' +psp_muxer='yes' +psp_muxer_select='mov_muxer' +pthreads='yes' +ptx_decoder='yes' +pulse_indev='yes' +pulse_indev_deps='libpulse' +pva_demuxer='yes' +pvf_demuxer='yes' +qcelp_decoder='yes' +qcelp_decoder_select='lsp' +qcp_demuxer='yes' +qdm2_decoder='yes' +qdm2_decoder_select='mdct rdft mpegaudiodsp' +qdraw_decoder='yes' +qpeg_decoder='yes' +qtrle_decoder='yes' +qtrle_encoder='yes' +quotes='""' +r='--enable-zlib' +r10k_decoder='yes' +r10k_encoder='yes' +r210_decoder='yes' +r210_encoder='yes' +r3d_demuxer='yes' +ra_144_decoder='yes' +ra_144_encoder='yes' +ra_144_encoder_select='audio_frame_queue lpc' +ra_288_decoder='yes' +ralf_decoder='yes' +ralf_decoder_select='golomb' +ranlib='ranlib' +rawvideo_decoder='yes' +rawvideo_demuxer='yes' +rawvideo_encoder='yes' +rawvideo_muxer='yes' +rdft_select='fft' +realtext_decoder='yes' +realtext_demuxer='yes' +remove_extradata_bsf='yes' +removelogo_filter='yes' +removelogo_filter_deps='avcodec avformat swscale' +resample_filter='yes' +resample_filter_deps='avresample' +rgbtestsrc_filter='yes' +rl2_decoder='yes' +rl2_demuxer='yes' +rm_demuxer='yes' +rm_muxer='yes' +roq_decoder='yes' +roq_demuxer='yes' +roq_dpcm_decoder='yes' +roq_dpcm_encoder='yes' +roq_encoder='yes' +roq_muxer='yes' +rpl_demuxer='yes' +rpza_decoder='yes' +rso_demuxer='yes' +rso_muxer='yes' +rtjpeg_decoder_select='dsputil' +rtmp_protocol='yes' +rtmp_protocol_deps='!librtmp_protocol' +rtmp_protocol_select='tcp_protocol' +rtmpe_protocol='yes' +rtmpe_protocol_select='ffrtmpcrypt_protocol' +rtmps_protocol='yes' +rtmps_protocol_deps='!librtmp_protocol' +rtmps_protocol_select='tls_protocol' +rtmpt_protocol='yes' +rtmpt_protocol_select='ffrtmphttp_protocol' +rtmpte_protocol='yes' +rtmpte_protocol_select='ffrtmpcrypt_protocol ffrtmphttp_protocol' +rtmpts_protocol='yes' +rtmpts_protocol_select='ffrtmphttp_protocol https_protocol' +rtp_demuxer='yes' +rtp_demuxer_select='sdp_demuxer' +rtp_muxer='yes' +rtp_muxer_select='mpegvideo' +rtp_protocol='yes' +rtp_protocol_select='udp_protocol' +rtpdec_select='asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer' +rtsp_demuxer='yes' +rtsp_demuxer_select='http_protocol rtpdec' +rtsp_muxer='yes' +rtsp_muxer_select='rtp_muxer http_protocol rtp_protocol rtpenc_chain' +runtime_cpudetect='yes' +rv10_decoder='yes' +rv10_decoder_select='error_resilience h263_decoder' +rv10_encoder='yes' +rv10_encoder_select='h263_encoder' +rv20_decoder='yes' +rv20_decoder_select='error_resilience h263_decoder' +rv20_encoder='yes' +rv20_encoder_select='h263_encoder' +rv30_decoder='yes' +rv30_decoder_select='error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp' +rv30_parser='yes' +rv40_decoder='yes' +rv40_decoder_select='error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp' +rv40_parser='yes' +s302m_decoder='yes' +safe_bitstream_reader='yes' +sami_decoder='yes' +sami_demuxer='yes' +sanm_decoder='yes' +sap_demuxer='yes' +sap_demuxer_select='sdp_demuxer' +sap_muxer='yes' +sap_muxer_select='rtp_muxer rtp_protocol rtpenc_chain' +sbg_demuxer='yes' +scale_filter='yes' +scale_filter_deps='swscale' +sctp_protocol='yes' +sctp_protocol_deps='struct_sctp_event_subscribe' +sctp_protocol_select='network' +sdl_outdev='yes' +sdl_outdev_deps='sdl' +sdp_demuxer='yes' +sdp_demuxer_select='rtpdec' +segafilm_demuxer='yes' +segment_muxer='yes' +select_filter='yes' +sendcmd_filter='yes' +setdar_filter='yes' +setfield_filter='yes' +setpts_filter='yes' +setsar_filter='yes' +settb_filter='yes' +sgi_decoder='yes' +sgi_encoder='yes' +sgirle_decoder='yes' +shared='yes' +shlibdir_default='${prefix}/lib' +shorten_decoder='yes' +shorten_decoder_select='golomb' +shorten_demuxer='yes' +showinfo_filter='yes' +showspectrum_filter='yes' +showspectrum_filter_deps='avcodec rdft' +showwaves_filter='yes' +siff_demuxer='yes' +silencedetect_filter='yes' +sine_filter='yes' +sipr_decoder='yes' +sipr_decoder_select='lsp' +smackaud_decoder='yes' +smacker_decoder='yes' +smacker_demuxer='yes' +smartblur_filter='yes' +smartblur_filter_deps='gpl swscale' +smc_decoder='yes' +smjpeg_demuxer='yes' +smjpeg_muxer='yes' +smoothstreaming_muxer='yes' +smoothstreaming_muxer_select='ismv_muxer' +smptebars_filter='yes' +smush_demuxer='yes' +sndio_indev='yes' +sndio_indev_deps='sndio_h' +sndio_outdev='yes' +sndio_outdev_deps='sndio_h' +snow_decoder='yes' +snow_decoder_select='dsputil dwt h264qpel hpeldsp rangecoder' +snow_encoder='yes' +snow_encoder_select='aandcttables dsputil dwt h264qpel hpeldsp error_resilience mpegvideoenc rangecoder' +sol_demuxer='yes' +sol_dpcm_decoder='yes' +sonic_decoder='yes' +sonic_decoder_select='golomb' +sonic_encoder='yes' +sonic_encoder_select='golomb' +sonic_ls_encoder='yes' +sonic_ls_encoder_select='golomb' +source_path='.' +sox_demuxer='yes' +sox_muxer='yes' +sp5x_decoder='yes' +spdif_demuxer='yes' +spdif_muxer='yes' +spdif_muxer_select='aac_parser' +split_filter='yes' +srt_decoder='yes' +srt_demuxer='yes' +srt_encoder='yes' +srt_muxer='yes' +srtp_protocol='yes' +srtp_protocol_select='rtp_protocol' +sse='yes' +sse2='yes' +sse2_deps='sse' +sse2_external_deps='sse_external' +sse2_inline_deps='sse_inline' +sse2_suggest='sse2_external sse2_inline' +sse3='yes' +sse3_deps='sse2' +sse3_external_deps='sse2_external' +sse3_inline_deps='sse2_inline' +sse3_suggest='sse3_external sse3_inline' +sse4='yes' +sse42='yes' +sse42_deps='sse4' +sse42_external_deps='sse4_external' +sse42_inline_deps='sse4_inline' +sse42_suggest='sse42_external sse42_inline' +sse4_deps='ssse3' +sse4_external_deps='ssse3_external' +sse4_inline_deps='ssse3_inline' +sse4_suggest='sse4_external sse4_inline' +sse_deps='mmxext' +sse_external_deps='mmxext_external' +sse_inline_deps='mmxext_inline' +sse_suggest='sse_external sse_inline' +ssse3='yes' +ssse3_deps='sse3' +ssse3_external_deps='sse3_external' +ssse3_inline_deps='sse3_inline' +ssse3_suggest='ssse3_external ssse3_inline' +static='yes' +stereo3d_filter='yes' +stereo3d_filter_deps='gpl' +str_demuxer='yes' +stream_segment_muxer='yes' +strip_default='strip' +stripping='yes' +subrip_decoder='yes' +subrip_encoder='yes' +subtitles_filter='yes' +subtitles_filter_deps='avformat avcodec libass' +subviewer1_decoder='yes' +subviewer1_demuxer='yes' +subviewer_decoder='yes' +subviewer_demuxer='yes' +sunrast_decoder='yes' +sunrast_encoder='yes' +super2xsai_filter='yes' +super2xsai_filter_deps='gpl' +svq1_decoder='yes' +svq1_decoder_select='hpeldsp' +svq1_encoder='yes' +svq1_encoder_select='aandcttables dsputil hpeldsp mpegvideoenc' +svq3_decoder='yes' +svq3_decoder_select='dsputil error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp' +svq3_decoder_suggest='zlib' +swapuv_filter='yes' +swf_demuxer='yes' +swf_muxer='yes' +swresample='yes' +swscale='yes' +swscale_alpha='yes' +swscale_deps='avutil' +symver_if_any='symver_asm_label symver_gnu_asm' +tak_decoder='yes' +tak_decoder_select='dsputil' +tak_demuxer='yes' +tak_demuxer_select='tak_parser' +tak_parser='yes' +targa_decoder='yes' +targa_encoder='yes' +targa_y216_decoder='yes' +target_os_default='linux' +target_path='$(CURDIR)' +tcp_protocol='yes' +tcp_protocol_select='network' +tedcaptions_demuxer='yes' +tee_muxer='yes' +testsrc_filter='yes' +text2movsub_bsf='yes' +text_decoder='yes' +tg2_muxer='yes' +tg2_muxer_select='mov_muxer' +tgp_muxer='yes' +tgp_muxer_select='mov_muxer' +theora_decoder='yes' +theora_decoder_select='vp3_decoder' +thp_decoder='yes' +thp_demuxer='yes' +thumbnail_filter='yes' +tiertexseq_demuxer='yes' +tiertexseqvideo_decoder='yes' +tiff_decoder='yes' +tiff_decoder_suggest='zlib' +tiff_encoder='yes' +tiff_encoder_suggest='zlib' +tile_filter='yes' +tinterlace_filter='yes' +tinterlace_filter_deps='gpl' +tinterlace_merge_test_deps='tinterlace_filter' +tinterlace_pad_test_deps='tinterlace_filter' +tls_protocol='yes' +tls_protocol_deps_any='openssl gnutls' +tls_protocol_select='tcp_protocol' +tmv_decoder='yes' +tmv_demuxer='yes' +transpose_filter='yes' +treble_filter='yes' +truehd_decoder='yes' +truehd_decoder_select='mlp_parser' +truehd_demuxer='yes' +truehd_muxer='yes' +truemotion1_decoder='yes' +truemotion2_decoder='yes' +truemotion2_decoder_select='dsputil' +truespeech_decoder='yes' +tscc2_decoder='yes' +tscc_decoder='yes' +tscc_decoder_select='zlib' +tta_decoder='yes' +tta_demuxer='yes' +tty_demuxer='yes' +twinvq_decoder='yes' +twinvq_decoder_select='mdct lsp sinewin' +txd_decoder='yes' +txd_demuxer='yes' +txtpages='yes' +txtpages_deps='makeinfo' +udp_protocol='yes' +udp_protocol_select='network' +ulti_decoder='yes' +unsharp_filter='yes' +utvideo_decoder='yes' +utvideo_decoder_select='dsputil' +utvideo_encoder='yes' +utvideo_encoder_select='huffman' +v='PROTOCOL_LIST' +v210_decoder='yes' +v210_encoder='yes' +v210x_decoder='yes' +v308_decoder='yes' +v308_encoder='yes' +v408_decoder='yes' +v408_encoder='yes' +v410_decoder='yes' +v410_encoder='yes' +v4l2_indev='yes' +v4l2_indev_deps_any='linux_videodev2_h sys_videoio_h' +v4l_indev_deps='linux_videodev_h' +vaapi_deps='va_va_h' +value='yes' +var='zlib' +vb_decoder='yes' +vble_decoder='yes' +vble_decoder_select='dsputil' +vc1_crystalhd_decoder='yes' +vc1_crystalhd_decoder_select='crystalhd' +vc1_decoder='yes' +vc1_decoder_select='error_resilience h263_decoder h264chroma h264qpel' +vc1_demuxer='yes' +vc1_dxva2_hwaccel='yes' +vc1_dxva2_hwaccel_deps='dxva2' +vc1_dxva2_hwaccel_select='vc1_decoder' +vc1_muxer='yes' +vc1_parser='yes' +vc1_parser_select='mpegvideo' +vc1_vaapi_hwaccel='yes' +vc1_vaapi_hwaccel_deps='vaapi' +vc1_vaapi_hwaccel_select='vc1_decoder' +vc1_vdpau_decoder='yes' +vc1_vdpau_decoder_deps='vdpau' +vc1_vdpau_decoder_select='vc1_decoder' +vc1_vdpau_hwaccel='yes' +vc1_vdpau_hwaccel_deps='vdpau' +vc1_vdpau_hwaccel_select='vc1_decoder' +vc1image_decoder='yes' +vc1image_decoder_select='vc1_decoder' +vc1t_demuxer='yes' +vc1t_muxer='yes' +vcr1_decoder='yes' +vda_deps='VideoDecodeAcceleration_VDADecoder_h pthreads' +vda_extralibs='-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore' +vdpau_deps='vdpau_vdpau_h vdpau_vdpau_x11_h' +vflip_filter='yes' +vfp='yes' +vfp_deps='arm' +vfp_inline_deps='inline_asm' +vfpv3='yes' +vfpv3_deps='vfp' +vfpv3_inline_deps='inline_asm' +vfwcap_indev='yes' +vfwcap_indev_deps='capCreateCaptureWindow vfwcap_defines' +vfwcap_indev_extralibs='-lavicap32' +vima_decoder='yes' +vis='yes' +vis_deps='sparc' +vivo_demuxer='yes' +vmd_demuxer='yes' +vmdaudio_decoder='yes' +vmdvideo_decoder='yes' +vmnc_decoder='yes' +vobsub_demuxer='yes' +vobsub_demuxer_select='mpegps_demuxer' +voc_demuxer='yes' +voc_muxer='yes' +volume_filter='yes' +volumedetect_filter='yes' +vorbis_decoder='yes' +vorbis_decoder_select='mdct' +vorbis_encoder='yes' +vorbis_encoder_select='mdct' +vorbis_parser='yes' +vp3_decoder='yes' +vp3_decoder_select='hpeldsp vp3dsp videodsp' +vp3_parser='yes' +vp5_decoder='yes' +vp5_decoder_select='h264chroma hpeldsp videodsp vp3dsp' +vp6_decoder='yes' +vp6_decoder_select='h264chroma hpeldsp huffman videodsp vp3dsp' +vp6a_decoder='yes' +vp6a_decoder_select='vp6_decoder' +vp6f_decoder='yes' +vp6f_decoder_select='vp6_decoder' +vp8_decoder='yes' +vp8_decoder_select='h264pred videodsp' +vp8_parser='yes' +vplayer_decoder='yes' +vplayer_demuxer='yes' +vqa_decoder='yes' +vqf_demuxer='yes' +w64_demuxer='yes' +w64_demuxer_deps='wav_demuxer' +w64_muxer='yes' +w64_muxer_deps='wav_muxer' +wav_demuxer='yes' +wav_muxer='yes' +wavpack_decoder='yes' +wc3_demuxer='yes' +webm_muxer='yes' +webvtt_decoder='yes' +webvtt_demuxer='yes' +wmalossless_decoder='yes' +wmapro_decoder='yes' +wmapro_decoder_select='mdct sinewin' +wmav1_decoder='yes' +wmav1_decoder_select='mdct sinewin' +wmav1_encoder='yes' +wmav1_encoder_select='mdct sinewin' +wmav2_decoder='yes' +wmav2_decoder_select='mdct sinewin' +wmav2_encoder='yes' +wmav2_encoder_select='mdct sinewin' +wmavoice_decoder='yes' +wmavoice_decoder_select='lsp rdft dct mdct sinewin' +wmv1_decoder='yes' +wmv1_decoder_select='h263_decoder' +wmv1_encoder='yes' +wmv1_encoder_select='h263_encoder' +wmv2_decoder='yes' +wmv2_decoder_select='h263_decoder videodsp' +wmv2_encoder='yes' +wmv2_encoder_select='h263_encoder' +wmv3_crystalhd_decoder='yes' +wmv3_crystalhd_decoder_select='crystalhd' +wmv3_decoder='yes' +wmv3_decoder_select='vc1_decoder' +wmv3_dxva2_hwaccel='yes' +wmv3_dxva2_hwaccel_select='vc1_dxva2_hwaccel' +wmv3_vaapi_hwaccel='yes' +wmv3_vaapi_hwaccel_select='vc1_vaapi_hwaccel' +wmv3_vdpau_decoder='yes' +wmv3_vdpau_decoder_select='vc1_vdpau_decoder' +wmv3_vdpau_hwaccel='yes' +wmv3_vdpau_hwaccel_select='vc1_vdpau_hwaccel' +wmv3image_decoder='yes' +wmv3image_decoder_select='wmv3_decoder' +wnv1_decoder='yes' +ws_snd1_decoder='yes' +wsaud_demuxer='yes' +wsvqa_demuxer='yes' +wtv_demuxer='yes' +wtv_muxer='yes' +wv_demuxer='yes' +wv_muxer='yes' +x11grab='yes' +x11grab_indev='yes' +x11grab_indev_deps='x11grab' +x86_64_suggest='cmov fast_cmov' +xa_demuxer='yes' +xan_dpcm_decoder='yes' +xan_wc3_decoder='yes' +xan_wc4_decoder='yes' +xbin_decoder='yes' +xbin_demuxer='yes' +xbm_decoder='yes' +xbm_encoder='yes' +xface_decoder='yes' +xface_encoder='yes' +xl_decoder='yes' +xmv_demuxer='yes' +xsub_decoder='yes' +xsub_encoder='yes' +xwd_decoder='yes' +xwd_encoder='yes' +xwma_demuxer='yes' +y41p_decoder='yes' +y41p_encoder='yes' +yadif_filter='yes' +yadif_filter_deps='gpl' +yasmexe_default='yasm' +yop_decoder='yes' +yop_demuxer='yes' +yuv4_decoder='yes' +yuv4_encoder='yes' +yuv4mpegpipe_demuxer='yes' +yuv4mpegpipe_muxer='yes' +zero12v_decoder='yes' +zerocodec_decoder='yes' +zerocodec_decoder_select='zlib' +zlib='yes' +zlib_decoder='yes' +zlib_decoder_select='zlib' +zlib_encoder='yes' +zlib_encoder_select='zlib' +zmbv_decoder='yes' +zmbv_decoder_select='zlib' +zmbv_encoder='yes' +zmbv_encoder_select='zlib' +mktemp -u XXXXXX +uL6mY9 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void){ return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_cflags -std=c99 +check_cc -std=c99 +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -std=c99 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc -D_FILE_OFFSET_BITS=64 +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -std=c99 -D_FILE_OFFSET_BITS=64 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc -D_LARGEFILE_SOURCE +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -std=c99 -D_LARGEFILE_SOURCE -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_host_cflags -std=c99 +check_host_cc -std=c99 +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -O3 -g -std=c99 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_host_cflags -Wall +check_host_cc -Wall +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -O3 -g -std=c99 -Wall -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_code cc int test[2*(sizeof(void *) > 4) - 1] +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void) { int test[2*(sizeof(void *) > 4) - 1]; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -std=c99 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cpp_condition features.h defined __UCLIBC__ +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #if !(defined __UCLIBC__) + 3 #error "unsatisfied condition: defined __UCLIBC__" + 4 #endif +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -std=c99 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:3:2: error: #error "unsatisfied condition: defined __UCLIBC__" +check_cpp_condition features.h defined __GLIBC__ +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #if !(defined __GLIBC__) + 3 #error "unsatisfied condition: defined __GLIBC__" + 4 #endif +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -std=c99 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cpp_condition stdlib.h defined(__PIC__) || defined(__pic__) || defined(PIC) +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC)) + 3 #error "unsatisfied condition: defined(__PIC__) || defined(__pic__) || defined(PIC)" + 4 #endif +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -std=c99 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:3:2: error: #error "unsatisfied condition: defined(__PIC__) || defined(__pic__) || defined(PIC)" +check_cflags -fomit-frame-pointer +check_cc -fomit-frame-pointer +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int ff_extern; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(void) { __asm__ volatile ("" ::); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(char * restrict p); +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 struct { int x; } __attribute__((packed)) x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 union { int x; } __attribute__((may_alias)) x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_builtin rdtsc intrin.h __rdtsc() +check_code ld intrin.h __rdtsc() cc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { __rdtsc(); return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:20: fatal error: intrin.h: No such file or directory +compilation terminated. +check_builtin mm_empty mmintrin.h _mm_empty() +check_code ld mmintrin.h _mm_empty() cc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { _mm_empty(); return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 static void sighandler(int sig){ + 3 raise(SIGTERM); + 4 } + 5 int func(void){ + 6 volatile int i=0; + 7 __asm__ volatile ("xorl %%ebp, %%ebp" ::: "%ebp"); + 8 return i; + 9 } + 10 int (*func_ptr)(void) = func; + 11 int main(void){ + 12 signal(SIGILL, sighandler); + 13 signal(SIGFPE, sighandler); + 14 signal(SIGSEGV, sighandler); + 15 #ifdef SIGBUS + 16 signal(SIGBUS, sighandler); + 17 #endif + 18 return func_ptr(); + 19 } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_inline_asm ebx_available ""::"b"(0) +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(void){ __asm__ volatile(""::"b"(0)); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_inline_asm ebx_available "":::"%ebx" +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(void){ __asm__ volatile("":::"%ebx"); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_inline_asm xmm_clobbers "":::"%xmm0" +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(void){ __asm__ volatile("":::"%xmm0"); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_inline_asm ssse3_inline "pabsw %xmm0, %xmm0" +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(void){ __asm__ volatile("pabsw %xmm0, %xmm0"); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_inline_asm mmxext_inline "pmaxub %mm0, %mm1" +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void foo(void){ __asm__ volatile("pmaxub %mm0, %mm1"); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +yasm --version +yasm 1.2.0 +Compiled on Jan 18 2013. +Copyright (c) 2001-2011 Peter Johnson and other Yasm developers. +Run yasm --license for licensing overview and summary. +check_yasm pextrd [eax], xmm0, 1 +BEGIN /tmp/ffconf.d8c5DEFd.S + 1 pextrd [eax], xmm0, 1 +END /tmp/ffconf.d8c5DEFd.S +yasm -f elf -m amd64 -DPIC -g dwarf2 -Werror -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.d8c5DEFd.S +: error: warnings being treated as errors +check_yasm vextractf128 xmm0, ymm0, 0 +BEGIN /tmp/ffconf.d8c5DEFd.S + 1 vextractf128 xmm0, ymm0, 0 +END /tmp/ffconf.d8c5DEFd.S +yasm -f elf -m amd64 -DPIC -g dwarf2 -Werror -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.d8c5DEFd.S +: error: warnings being treated as errors +check_yasm vfmaddps ymm0, ymm1, ymm2, ymm3 +BEGIN /tmp/ffconf.d8c5DEFd.S + 1 vfmaddps ymm0, ymm1, ymm2, ymm3 +END /tmp/ffconf.d8c5DEFd.S +yasm -f elf -m amd64 -DPIC -g dwarf2 -Werror -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.d8c5DEFd.S +: error: warnings being treated as errors +check_yasm CPU amdnop +BEGIN /tmp/ffconf.d8c5DEFd.S + 1 CPU amdnop +END /tmp/ffconf.d8c5DEFd.S +yasm -f elf -m amd64 -DPIC -g dwarf2 -Werror -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.d8c5DEFd.S +: error: warnings being treated as errors +check_as +BEGIN /tmp/ffconf.d8c5DEFd.S + 1 .macro m n + 2 \n: .int 0 + 3 .endm + 4 m x +END /tmp/ffconf.d8c5DEFd.S +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.d8c5DEFd.S +check_ldflags -Wl,--as-needed +test_ldflags -Wl,--as-needed +check_ld cc -Wl,--as-needed +check_cc -Wl,--as-needed +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void){ return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -Wl,--as-needed -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func dlopen +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int dlopen(); + 2 int main(void){ dlopen(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +/tmp/ffconf.WmZw03tR.o: In function `main': +ffconf.gOnL6Qra.c:(.text+0xa): undefined reference to `dlopen' +collect2: error: ld returned 1 exit status +check_func dlopen -ldl +check_ld cc -ldl +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int dlopen(); + 2 int main(void){ dlopen(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -ldl +check_type sys/types.h sys/socket.h socklen_t +check_code cc sys/types.h sys/socket.h socklen_t v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 int main(void) { socklen_t v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type netdb.h struct addrinfo +check_code cc netdb.h struct addrinfo v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct addrinfo v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type netinet/in.h struct group_source_req -D_BSD_SOURCE +check_code cc netinet/in.h struct group_source_req v -D_BSD_SOURCE +check_cc -D_BSD_SOURCE +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct group_source_req v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -D_BSD_SOURCE -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type netinet/in.h struct ip_mreq_source -D_BSD_SOURCE +check_code cc netinet/in.h struct ip_mreq_source v -D_BSD_SOURCE +check_cc -D_BSD_SOURCE +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct ip_mreq_source v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -D_BSD_SOURCE -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type netinet/in.h struct ipv6_mreq -D_DARWIN_C_SOURCE +check_code cc netinet/in.h struct ipv6_mreq v -D_DARWIN_C_SOURCE +check_cc -D_DARWIN_C_SOURCE +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct ipv6_mreq v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -D_DARWIN_C_SOURCE -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type netinet/in.h struct sockaddr_in6 +check_code cc netinet/in.h struct sockaddr_in6 v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct sockaddr_in6 v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type poll.h struct pollfd +check_code cc poll.h struct pollfd v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct pollfd v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_type sys/types.h sys/socket.h struct sockaddr_storage +check_code cc sys/types.h sys/socket.h struct sockaddr_storage v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 int main(void) { struct sockaddr_storage v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_struct sys/types.h sys/socket.h struct sockaddr sa_len +check_code cc sys/types.h sys/socket.h const void *p = &((struct sockaddr *)0)->sa_len +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:57: error: 'struct sockaddr' has no member named 'sa_len' +check_type netinet/sctp.h struct sctp_event_subscribe +check_code cc netinet/sctp.h struct sctp_event_subscribe v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct sctp_event_subscribe v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:26: fatal error: netinet/sctp.h: No such file or directory +compilation terminated. +check_func getaddrinfo +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int getaddrinfo(); + 2 int main(void){ getaddrinfo(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func getservbyport +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int getservbyport(); + 2 int main(void){ getservbyport(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_header arpa/inet.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func closesocket +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int closesocket(); + 2 int main(void){ closesocket(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +/tmp/ffconf.WmZw03tR.o: In function `main': +ffconf.gOnL6Qra.c:(.text+0xa): undefined reference to `closesocket' +collect2: error: ld returned 1 exit status +check_func nanosleep +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int nanosleep(); + 2 int main(void){ nanosleep(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func access +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int access(); + 2 int main(void){ access(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func clock_gettime +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int clock_gettime(); + 2 int main(void){ clock_gettime(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func fcntl +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int fcntl(); + 2 int main(void){ fcntl(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func fork +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int fork(); + 2 int main(void){ fork(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func gethrtime +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int gethrtime(); + 2 int main(void){ gethrtime(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +/tmp/ffconf.WmZw03tR.o: In function `main': +ffconf.gOnL6Qra.c:(.text+0xa): undefined reference to `gethrtime' +collect2: error: ld returned 1 exit status +check_func getopt +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int getopt(); + 2 int main(void){ getopt(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func getrusage +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int getrusage(); + 2 int main(void){ getrusage(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_struct sys/time.h sys/resource.h struct rusage ru_maxrss +check_code cc sys/time.h sys/resource.h const void *p = &((struct rusage *)0)->ru_maxrss +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 int main(void) { const void *p = &((struct rusage *)0)->ru_maxrss; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func gettimeofday +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int gettimeofday(); + 2 int main(void){ gettimeofday(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func inet_aton +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int inet_aton(); + 2 int main(void){ inet_aton(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func isatty +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int isatty(); + 2 int main(void){ isatty(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func localtime_r +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int localtime_r(); + 2 int main(void){ localtime_r(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func memalign +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int memalign(); + 2 int main(void){ memalign(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func mkstemp +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int mkstemp(); + 2 int main(void){ mkstemp(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func mmap +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int mmap(); + 2 int main(void){ mmap(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func mprotect +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int mprotect(); + 2 int main(void){ mprotect(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func posix_memalign +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int posix_memalign(); + 2 int main(void){ posix_memalign(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func_headers malloc.h _aligned_malloc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check__aligned_malloc(void) { return (long) _aligned_malloc; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'check__aligned_malloc': +/tmp/ffconf.gOnL6Qra.c:2:50: error: '_aligned_malloc' undeclared (first use in this function) +/tmp/ffconf.gOnL6Qra.c:2:50: note: each undeclared identifier is reported only once for each function it appears in +check_func setrlimit +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int setrlimit(); + 2 int main(void){ setrlimit(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func strerror_r +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int strerror_r(); + 2 int main(void){ strerror_r(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func sched_getaffinity +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int sched_getaffinity(); + 2 int main(void){ sched_getaffinity(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_builtin sync_val_compare_and_swap int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval) +check_code ld int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval) cc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void) { int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval); return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_builtin machine_rw_barrier mbarrier.h __machine_rw_barrier() +check_code ld mbarrier.h __machine_rw_barrier() cc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { __machine_rw_barrier(); return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:22: fatal error: mbarrier.h: No such file or directory +compilation terminated. +check_builtin MemoryBarrier windows.h MemoryBarrier() +check_code ld windows.h MemoryBarrier() cc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { MemoryBarrier(); return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func sysconf +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int sysconf(); + 2 int main(void){ sysconf(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func sysctl +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int sysctl(); + 2 int main(void){ sysctl(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func usleep +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int usleep(); + 2 int main(void){ usleep(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_func_headers conio.h kbhit +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_kbhit(void) { return (long) kbhit; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:19: fatal error: conio.h: No such file or directory +compilation terminated. +check_func_headers windows.h PeekNamedPipe +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_PeekNamedPipe(void) { return (long) PeekNamedPipe; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers io.h setmode +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_setmode(void) { return (long) setmode; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:16: fatal error: io.h: No such file or directory +compilation terminated. +check_func_headers lzo/lzo1x.h lzo1x_999_compress +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_lzo1x_999_compress(void) { return (long) lzo1x_999_compress; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:23: fatal error: lzo/lzo1x.h: No such file or directory +compilation terminated. +check_lib2 windows.h shellapi.h CommandLineToArgvW -lshell32 +check_func_headers windows.h shellapi.h CommandLineToArgvW -lshell32 +check_ld cc -lshell32 +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 long check_CommandLineToArgvW(void) { return (long) CommandLineToArgvW; } + 4 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_lib2 windows.h wincrypt.h CryptGenRandom -ladvapi32 +check_func_headers windows.h wincrypt.h CryptGenRandom -ladvapi32 +check_ld cc -ladvapi32 +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 long check_CryptGenRandom(void) { return (long) CryptGenRandom; } + 4 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_lib2 windows.h psapi.h GetProcessMemoryInfo -lpsapi +check_func_headers windows.h psapi.h GetProcessMemoryInfo -lpsapi +check_ld cc -lpsapi +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 long check_GetProcessMemoryInfo(void) { return (long) GetProcessMemoryInfo; } + 4 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h GetProcessAffinityMask +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_GetProcessAffinityMask(void) { return (long) GetProcessAffinityMask; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h GetProcessTimes +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_GetProcessTimes(void) { return (long) GetProcessTimes; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h GetSystemTimeAsFileTime +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_GetSystemTimeAsFileTime(void) { return (long) GetSystemTimeAsFileTime; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h MapViewOfFile +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_MapViewOfFile(void) { return (long) MapViewOfFile; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h SetConsoleTextAttribute +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_SetConsoleTextAttribute(void) { return (long) SetConsoleTextAttribute; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h Sleep +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_Sleep(void) { return (long) Sleep; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers windows.h VirtualAlloc +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_VirtualAlloc(void) { return (long) VirtualAlloc; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_func_headers glob.h glob +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_glob(void) { return (long) glob; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o +check_header direct.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:20: fatal error: direct.h: No such file or directory +compilation terminated. +check_header dlfcn.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header dxva.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:18: fatal error: dxva.h: No such file or directory +compilation terminated. +check_header dxva2api.h -D_WIN32_WINNT=0x0600 +check_cpp -D_WIN32_WINNT=0x0600 +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -D_WIN32_WINNT=0x0600 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:22: fatal error: dxva2api.h: No such file or directory +compilation terminated. +check_header io.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:16: fatal error: io.h: No such file or directory +compilation terminated. +check_header libcrystalhd/libcrystalhd_if.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:42: fatal error: libcrystalhd/libcrystalhd_if.h: No such file or directory +compilation terminated. +check_header malloc.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header poll.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header sys/mman.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header sys/param.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header sys/resource.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header sys/select.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header sys/time.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header termios.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header unistd.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header vdpau/vdpau.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:25: fatal error: vdpau/vdpau.h: No such file or directory +compilation terminated. +check_header vdpau/vdpau_x11.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:29: fatal error: vdpau/vdpau_x11.h: No such file or directory +compilation terminated. +check_header VideoDecodeAcceleration/VDADecoder.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:48: fatal error: VideoDecodeAcceleration/VDADecoder.h: No such file or directory +compilation terminated. +check_header windows.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_header X11/extensions/XvMClib.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header asm/types.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_lib zlib.h zlibVersion -lz +check_header zlib.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func zlibVersion -lz +check_ld cc -lz +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int zlibVersion(); + 2 int main(void){ zlibVersion(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lz +check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 +check_func_headers bzlib.h BZ2_bzlibVersion -lbz2 +check_ld cc -lbz2 +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_BZ2_bzlibVersion(void) { return (long) BZ2_bzlibVersion; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:19: fatal error: bzlib.h: No such file or directory +compilation terminated. +check_func pthread_create +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int pthread_create(); + 2 int main(void){ pthread_create(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lz +/tmp/ffconf.WmZw03tR.o: In function `main': +ffconf.gOnL6Qra.c:(.text+0xa): undefined reference to `pthread_create' +collect2: error: ld returned 1 exit status +check_func pthread_create -pthread +check_ld cc -pthread +check_cc -pthread +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int pthread_create(); + 2 int main(void){ pthread_create(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -pthread -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lz +check_func pthread_cancel +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int pthread_cancel(); + 2 int main(void){ pthread_cancel(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -pthread -lz +check_lib math.h sin -lm +check_header math.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func sin -lm +check_ld cc -lm +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int sin(); + 2 int main(void){ sin(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:12: warning: conflicting types for built-in function 'sin' [enabled by default] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd +check_header libcrystalhd/libcrystalhd_if.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:42: fatal error: libcrystalhd/libcrystalhd_if.h: No such file or directory +compilation terminated. +check_mathfunc atanf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return atanf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc atan2f 2 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return atan2f(f, g); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc cbrt 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return cbrt(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc cbrtf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return cbrtf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc cosf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return cosf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc exp2 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return exp2(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc exp2f 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return exp2f(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc expf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return expf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc isinf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return isinf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc isnan 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return isnan(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc ldexpf 2 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return ldexpf(f, g); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc llrint 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return llrint(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc llrintf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return llrintf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc log2 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return log2(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc log2f 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return log2f(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc log10f 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return log10f(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc lrint 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return lrint(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc lrintf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return lrintf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc powf 2 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return powf(f, g); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc rint 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return rint(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc round 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return round(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc roundf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return roundf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc sinf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return sinf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc trunc 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return trunc(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_mathfunc truncf 1 +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 float foo(float f, float g) { return truncf(f); } + 3 int main(void){ return (int) foo; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c: In function 'main': +/tmp/ffconf.gOnL6Qra.c:3:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lm -pthread -lz +check_lib2 stdint.h faac.h faacEncGetVersion -lfaac +check_func_headers stdint.h faac.h faacEncGetVersion -lfaac +check_ld cc -lfaac +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 long check_faacEncGetVersion(void) { return (long) faacEncGetVersion; } + 4 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lfaac -lm -pthread -lz +check_lib lame/lame.h lame_set_VBR_quality -lmp3lame +check_header lame/lame.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func lame_set_VBR_quality -lmp3lame +check_ld cc -lmp3lame +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int lame_set_VBR_quality(); + 2 int main(void){ lame_set_VBR_quality(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lmp3lame -lfaac -lm -pthread -lz +check_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init +check_func_headers schroedinger/schro.h schro_init -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -lschroedinger-1.0 +check_ld cc -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -lschroedinger-1.0 +check_cc -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_schro_init(void) { return (long) schro_init; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_lib theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg +check_header theora/theoraenc.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func th_info_init -ltheoraenc -ltheoradec -logg +check_ld cc -ltheoraenc -ltheoradec -logg +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int th_info_init(); + 2 int main(void){ th_info_init(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_lib vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg +check_header vorbis/vorbisenc.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func vorbis_info_init -lvorbisenc -lvorbis -logg +check_ld cc -lvorbisenc -lvorbis -logg +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int vorbis_info_init(); + 2 int main(void){ vorbis_info_init(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_lib x264.h x264_encoder_encode -lx264 +check_header x264.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +In file included from /tmp/ffconf.gOnL6Qra.c:1:0: +/usr/local/include/x264.h:36:4: warning: #warning You must include stdint.h or inttypes.h before x264.h [-Wcpp] +check_func x264_encoder_encode -lx264 +check_ld cc -lx264 +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int x264_encoder_encode(); + 2 int main(void){ x264_encoder_encode(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_cpp_condition x264.h X264_BUILD >= 118 +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #if !(X264_BUILD >= 118) + 3 #error "unsatisfied condition: X264_BUILD >= 118" + 4 #endif +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +In file included from /tmp/ffconf.gOnL6Qra.c:1:0: +/usr/local/include/x264.h:36:4: warning: #warning You must include stdint.h or inttypes.h before x264.h [-Wcpp] +check_lib xvid.h xvid_global -lxvidcore +check_header xvid.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func xvid_global -lxvidcore +check_ld cc -lxvidcore +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int xvid_global(); + 2 int main(void){ xvid_global(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_pkg_config sdl SDL_events.h SDL_PollEvent +check_header linux/fb.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header linux/videodev.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:28: fatal error: linux/videodev.h: No such file or directory +compilation terminated. +check_header linux/videodev2.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_code cc linux/videodev2.h struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0; +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header sys/videoio.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:25: fatal error: sys/videoio.h: No such file or directory +compilation terminated. +check_func_headers windows.h vfw.h capCreateCaptureWindow -lavicap32 +check_ld cc -lavicap32 +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #include + 3 long check_capCreateCaptureWindow(void) { return (long) capCreateCaptureWindow; } + 4 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:21: fatal error: windows.h: No such file or directory +compilation terminated. +check_cpp_condition vfw.h WM_CAP_DRIVER_CONNECT > WM_USER +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 #if !(WM_CAP_DRIVER_CONNECT > WM_USER) + 3 #error "unsatisfied condition: WM_CAP_DRIVER_CONNECT > WM_USER" + 4 #endif +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:17: fatal error: vfw.h: No such file or directory +compilation terminated. +check_type dshow.h IBaseFilter +check_code cc dshow.h IBaseFilter v +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { IBaseFilter v; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:19: fatal error: dshow.h: No such file or directory +compilation terminated. +check_header dev/bktr/ioctl_meteor.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:35: fatal error: dev/bktr/ioctl_meteor.h: No such file or directory +compilation terminated. +check_header machine/ioctl_meteor.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:34: fatal error: machine/ioctl_meteor.h: No such file or directory +compilation terminated. +check_header dev/video/meteor/ioctl_meteor.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:43: fatal error: dev/video/meteor/ioctl_meteor.h: No such file or directory +compilation terminated. +check_header dev/ic/bt8xx.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:26: fatal error: dev/ic/bt8xx.h: No such file or directory +compilation terminated. +check_header sndio.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:19: fatal error: sndio.h: No such file or directory +compilation terminated. +check_struct sys/soundcard.h audio_buf_info bytes +check_code cc sys/soundcard.h const void *p = &((audio_buf_info *)0)->bytes +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int main(void) { const void *p = &((audio_buf_info *)0)->bytes; return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_header soundcard.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:23: fatal error: soundcard.h: No such file or directory +compilation terminated. +check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound +check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound +check_ld cc -lasound +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_snd_pcm_htimestamp(void) { return (long) snd_pcm_htimestamp; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:28: fatal error: alsa/asoundlib.h: No such file or directory +compilation terminated. +check_lib2 jack/jack.h jack_client_open -ljack +check_func_headers jack/jack.h jack_client_open -ljack +check_ld cc -ljack +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_jack_client_open(void) { return (long) jack_client_open; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:23: fatal error: jack/jack.h: No such file or directory +compilation terminated. +check_lib2 sndio.h sio_open -lsndio +check_func_headers sndio.h sio_open -lsndio +check_ld cc -lsndio +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_sio_open(void) { return (long) sio_open; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:19: fatal error: sndio.h: No such file or directory +compilation terminated. +check_lib X11/Xlib.h XOpenDisplay -lX11 +check_header X11/Xlib.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func XOpenDisplay -lX11 +check_ld cc -lX11 +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int XOpenDisplay(); + 2 int main(void){ XOpenDisplay(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_lib X11/extensions/XShm.h XShmCreateImage -lXext +check_header X11/extensions/XShm.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func XShmCreateImage -lXext +check_ld cc -lXext +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int XShmCreateImage(); + 2 int main(void){ XShmCreateImage(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_lib X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes +check_header X11/extensions/Xfixes.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_func XFixesGetCursorImage -lXfixes +check_ld cc -lXfixes +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 extern int XFixesGetCursorImage(); + 2 int main(void){ XFixesGetCursorImage(); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_lib va/va.h vaInitialize -lva +check_header va/va.h +check_cpp +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -E -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:1:19: fatal error: va/va.h: No such file or directory +compilation terminated. +check_func_headers iconv.h iconv +check_ld cc +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 #include + 2 long check_iconv(void) { return (long) iconv; } + 3 int main(void) { return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_cflags -Wdeclaration-after-statement +check_cc -Wdeclaration-after-statement +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wall +check_cc -Wall +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wno-parentheses +check_cc -Wno-parentheses +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wno-switch +check_cc -Wno-switch +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wno-format-zero-length +check_cc -Wno-format-zero-length +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wdisabled-optimization +check_cc -Wdisabled-optimization +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wpointer-arith +check_cc -Wpointer-arith +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wredundant-decls +check_cc -Wredundant-decls +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wno-pointer-sign +check_cc -Wno-pointer-sign +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wwrite-strings +check_cc -Wwrite-strings +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wtype-limits +check_cc -Wtype-limits +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wundef +check_cc -Wundef +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wmissing-prototypes +check_cc -Wmissing-prototypes +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wno-pointer-to-int-cast +check_cc -Wno-pointer-to-int-cast +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Wstrict-prototypes +check_cc -Wstrict-prototypes +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_ldflags -Wl,--warn-common +test_ldflags -Wl,--warn-common +check_ld cc -Wl,--warn-common +check_cc -Wl,--warn-common +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void){ return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wl,--warn-common -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -Wl,--warn-common -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +test_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +check_ld cc -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +check_cc -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void){ return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +test_ldflags -Wl,-Bsymbolic +check_ld cc -Wl,-Bsymbolic +check_cc -Wl,-Bsymbolic +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void){ return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wl,-Bsymbolic -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -Wl,-Bsymbolic -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +test_ldflags -Wl,--version-script,/tmp/ffconf.Fx2SrclQ.ver +check_ld cc -Wl,--version-script,/tmp/ffconf.Fx2SrclQ.ver +check_cc -Wl,--version-script,/tmp/ffconf.Fx2SrclQ.ver +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int main(void){ return 0; } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wl,--version-script,/tmp/ffconf.Fx2SrclQ.ver -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +gcc -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -Wl,--version-script,/tmp/ffconf.Fx2SrclQ.ver -o /tmp/ffconf.drNgTpAG /tmp/ffconf.WmZw03tR.o -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 void ff_foo(void) __asm__ ("av_foo@VERSION"); + 2 void ff_foo(void) { __asm__(""); } +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ccyulAvK.s: Assembler messages: +/tmp/ccyulAvK.s:4: Error: junk at end of line, first unrecognized character is `@' +/tmp/ccyulAvK.s:5: Error: unrecognized symbol type "VERSION" +/tmp/ccyulAvK.s:5: Error: junk at end of line, first unrecognized character is `,' +/tmp/ccyulAvK.s:6: Error: invalid character '@' in mnemonic +/tmp/ccyulAvK.s:15: Error: expected comma after name `av_foo' in .size directive +check_cc +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 __asm__(".symver ff_foo,av_foo@VERSION"); + 2 void ff_foo(void) {} +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +/tmp/ffconf.gOnL6Qra.c:2:6: warning: no previous prototype for 'ff_foo' [-Wmissing-prototypes] +check_cflags -O3 +check_cc -O3 +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -fno-math-errno +check_cc -fno-math-errno +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -fno-signed-zeros +check_cc -fno-signed-zeros +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cc -mno-red-zone +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -mno-red-zone -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -fno-tree-vectorize +check_cc -fno-tree-vectorize +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Werror=implicit-function-declaration +check_cc -Werror=implicit-function-declaration +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Werror=missing-prototypes +check_cc -Werror=missing-prototypes +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Werror=return-type +check_cc -Werror=return-type +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c +check_cflags -Werror=vla +check_cc -Werror=vla +BEGIN /tmp/ffconf.gOnL6Qra.c + 1 int x; +END /tmp/ffconf.gOnL6Qra.c +gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -c -o /tmp/ffconf.WmZw03tR.o /tmp/ffconf.gOnL6Qra.c diff --git a/ffmpeg/config.mak b/ffmpeg/config.mak new file mode 100644 index 0000000..1253f77 --- /dev/null +++ b/ffmpeg/config.mak @@ -0,0 +1,1647 @@ +# Automatically generated by configure - do not modify! +ifndef FFMPEG_CONFIG_MAK +FFMPEG_CONFIG_MAK=1 +FFMPEG_CONFIGURATION=--prefix=/usr/local --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-bzlib --enable-libfaac --enable-libmp3lame --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib +prefix=/usr/local +LIBDIR=$(DESTDIR)${prefix}/lib +SHLIBDIR=$(DESTDIR)${prefix}/lib +INCDIR=$(DESTDIR)${prefix}/include +BINDIR=$(DESTDIR)${prefix}/bin +DATADIR=$(DESTDIR)${prefix}/share/ffmpeg +MANDIR=$(DESTDIR)${prefix}/share/man +SRC_PATH=. +ifndef MAIN_MAKEFILE +SRC_PATH:=$(SRC_PATH:.%=..%) +endif +CC_IDENT=gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1) +ARCH=x86 +CC=gcc +CXX=g++ +AS=gcc +LD=gcc +DEPCC=gcc +DEPCCFLAGS= $(CPPFLAGS) +DEPAS=gcc +DEPASFLAGS= $(CPPFLAGS) +YASM=yasm +DEPYASM=yasm +AR=ar +ARFLAGS=rc +AR_O=$@ +RANLIB=ranlib +CP=cp -p +LN_S=ln -s -f +STRIP=strip +CPPFLAGS= -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC +CFLAGS= -std=c99 -fomit-frame-pointer -fPIC -pthread -I/usr/include/schroedinger-1.0 -I/usr/include/orc-0.4 -g -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla +CXXFLAGS= -D__STDC_CONSTANT_MACROS +ASFLAGS= -fPIC -g +AS_C=-c +AS_O=-o $@ +CC_C=-c +CC_E=-E -o $@ +CC_O=-o $@ +CXX_C=-c +CXX_O=-o $@ +LD_O=-o $@ +LD_LIB=-l% +LD_PATH=-L +DLLTOOL= +LDFLAGS= -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +LDFLAGS-ffserver=-Wl,-E +SHFLAGS=-shared -Wl,-soname,$$(@F) -Wl,-Bsymbolic -Wl,--version-script,$(SUBDIR)lib$(NAME).ver +YASMFLAGS=-f elf -m amd64 -DPIC -g dwarf2 +BUILDSUF= +PROGSSUF= +FULLNAME=$(NAME)$(BUILDSUF) +LIBPREF=lib +LIBSUF=.a +LIBNAME=$(LIBPREF)$(FULLNAME)$(LIBSUF) +SLIBPREF=lib +SLIBSUF=.so +EXESUF= +EXTRA_VERSION= +CCDEP= +CXXDEP= +CCDEP_FLAGS= +ASDEP= +ASDEP_FLAGS= +CC_DEPFLAGS=-MMD -MF $(@:.o=.d) -MT $@ +AS_DEPFLAGS=-MMD -MF $(@:.o=.d) -MT $@ +HOSTCC=gcc +HOSTLD=gcc +HOSTCFLAGS=-O3 -g -std=c99 -Wall +HOSTCPPFLAGS=-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600 +HOSTEXESUF= +HOSTLDFLAGS= +HOSTLIBS=-lm +DEPHOSTCC=gcc +DEPHOSTCCFLAGS= $(HOSTCCFLAGS) +HOSTCCDEP= +HOSTCCDEP_FLAGS= +HOSTCC_DEPFLAGS=-MMD -MF $(@:.o=.d) -MT $@ +HOSTCC_C=-c +HOSTCC_O=-o $@ +HOSTLD_O=-o $@ +TARGET_EXEC= +TARGET_PATH=$(CURDIR) +LIBS-ffplay= +CFLAGS-ffplay= +ZLIB=-lz +LIB_INSTALL_EXTRA_CMD=$$(RANLIB) "$(LIBDIR)/$(LIBNAME)" +EXTRALIBS=-ldl -lXfixes -lXext -lX11 -lxvidcore -lx264 -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lschroedinger-1.0 -lmp3lame -lfaac -lm -pthread -lz +COMPAT_OBJS= +EXEOBJS= +INSTALL=install +LIBTARGET= +SLIBNAME=$(SLIBPREF)$(FULLNAME)$(SLIBSUF) +SLIBNAME_WITH_VERSION=$(SLIBNAME).$(LIBVERSION) +SLIBNAME_WITH_MAJOR=$(SLIBNAME).$(LIBMAJOR) +SLIB_CREATE_DEF_CMD= +SLIB_EXTRA_CMD= +SLIB_INSTALL_NAME=$(SLIBNAME_WITH_VERSION) +SLIB_INSTALL_LINKS=$(SLIBNAME_WITH_MAJOR) $(SLIBNAME) +SLIB_INSTALL_EXTRA_LIB= +SLIB_INSTALL_EXTRA_SHLIB= +SAMPLES:=$(FATE_SAMPLES) +NOREDZONE_FLAGS=-mno-red-zone +libavcodec_VERSION=55.1.100 +libavcodec_VERSION_MAJOR=55 +libavcodec_VERSION_MINOR=1 +libavdevice_VERSION=55.0.100 +libavdevice_VERSION_MAJOR=55 +libavdevice_VERSION_MINOR=0 +libavfilter_VERSION=3.48.100 +libavfilter_VERSION_MAJOR=3 +libavfilter_VERSION_MINOR=48 +libavformat_VERSION=55.0.100 +libavformat_VERSION_MAJOR=55 +libavformat_VERSION_MINOR=0 +libavresample_VERSION=1.1.0 +libavresample_VERSION_MAJOR=1 +libavresample_VERSION_MINOR=1 +libavutil_VERSION=52.22.100 +libavutil_VERSION_MAJOR=52 +libavutil_VERSION_MINOR=22 +libpostproc_VERSION=52.2.100 +libpostproc_VERSION_MAJOR=52 +libpostproc_VERSION_MINOR=2 +libswresample_VERSION=0.17.102 +libswresample_VERSION_MAJOR=0 +libswresample_VERSION_MINOR=17 +libswscale_VERSION=2.2.100 +libswscale_VERSION_MAJOR=2 +libswscale_VERSION_MINOR=2 +!ARCH_AARCH64=yes +!ARCH_ALPHA=yes +!ARCH_ARM=yes +!ARCH_AVR32=yes +!ARCH_AVR32_AP=yes +!ARCH_AVR32_UC=yes +!ARCH_BFIN=yes +!ARCH_IA64=yes +!ARCH_M68K=yes +!ARCH_MIPS=yes +!ARCH_MIPS64=yes +!ARCH_PARISC=yes +!ARCH_PPC=yes +!ARCH_PPC64=yes +!ARCH_S390=yes +!ARCH_SH4=yes +!ARCH_SPARC=yes +!ARCH_SPARC64=yes +!ARCH_TILEGX=yes +!ARCH_TILEPRO=yes +!ARCH_TOMI=yes +ARCH_X86=yes +!ARCH_X86_32=yes +ARCH_X86_64=yes +!HAVE_ARMV5TE=yes +!HAVE_ARMV6=yes +!HAVE_ARMV6T2=yes +!HAVE_NEON=yes +!HAVE_VFP=yes +!HAVE_VFPV3=yes +HAVE_AMD3DNOW=yes +HAVE_AMD3DNOWEXT=yes +HAVE_AVX=yes +HAVE_FMA4=yes +HAVE_MMX=yes +HAVE_MMXEXT=yes +HAVE_SSE=yes +HAVE_SSE2=yes +HAVE_SSE3=yes +HAVE_SSE4=yes +HAVE_SSE42=yes +HAVE_SSSE3=yes +!HAVE_ALTIVEC=yes +!HAVE_PPC4XX=yes +!HAVE_VIS=yes +!HAVE_MIPSFPU=yes +!HAVE_MIPS32R2=yes +!HAVE_MIPSDSPR1=yes +!HAVE_MIPSDSPR2=yes +!HAVE_ARMV5TE_EXTERNAL=yes +!HAVE_ARMV6_EXTERNAL=yes +!HAVE_ARMV6T2_EXTERNAL=yes +!HAVE_NEON_EXTERNAL=yes +!HAVE_VFP_EXTERNAL=yes +!HAVE_VFPV3_EXTERNAL=yes +HAVE_AMD3DNOW_EXTERNAL=yes +HAVE_AMD3DNOWEXT_EXTERNAL=yes +HAVE_AVX_EXTERNAL=yes +HAVE_FMA4_EXTERNAL=yes +HAVE_MMX_EXTERNAL=yes +HAVE_MMXEXT_EXTERNAL=yes +HAVE_SSE_EXTERNAL=yes +HAVE_SSE2_EXTERNAL=yes +HAVE_SSE3_EXTERNAL=yes +HAVE_SSE4_EXTERNAL=yes +HAVE_SSE42_EXTERNAL=yes +HAVE_SSSE3_EXTERNAL=yes +!HAVE_ALTIVEC_EXTERNAL=yes +!HAVE_PPC4XX_EXTERNAL=yes +!HAVE_VIS_EXTERNAL=yes +!HAVE_MIPSFPU_EXTERNAL=yes +!HAVE_MIPS32R2_EXTERNAL=yes +!HAVE_MIPSDSPR1_EXTERNAL=yes +!HAVE_MIPSDSPR2_EXTERNAL=yes +!HAVE_ARMV5TE_INLINE=yes +!HAVE_ARMV6_INLINE=yes +!HAVE_ARMV6T2_INLINE=yes +!HAVE_NEON_INLINE=yes +!HAVE_VFP_INLINE=yes +!HAVE_VFPV3_INLINE=yes +HAVE_AMD3DNOW_INLINE=yes +HAVE_AMD3DNOWEXT_INLINE=yes +HAVE_AVX_INLINE=yes +HAVE_FMA4_INLINE=yes +HAVE_MMX_INLINE=yes +HAVE_MMXEXT_INLINE=yes +HAVE_SSE_INLINE=yes +HAVE_SSE2_INLINE=yes +HAVE_SSE3_INLINE=yes +HAVE_SSE4_INLINE=yes +HAVE_SSE42_INLINE=yes +HAVE_SSSE3_INLINE=yes +!HAVE_ALTIVEC_INLINE=yes +!HAVE_PPC4XX_INLINE=yes +!HAVE_VIS_INLINE=yes +!HAVE_MIPSFPU_INLINE=yes +!HAVE_MIPS32R2_INLINE=yes +!HAVE_MIPSDSPR1_INLINE=yes +!HAVE_MIPSDSPR2_INLINE=yes +HAVE_INLINE_ASM=yes +HAVE_SYMVER=yes +HAVE_YASM=yes +!HAVE_BIGENDIAN=yes +HAVE_FAST_UNALIGNED=yes +!HAVE_INCOMPATIBLE_FORK_ABI=yes +HAVE_PTHREADS=yes +!HAVE_W32THREADS=yes +!HAVE_OS2THREADS=yes +HAVE_ATANF=yes +HAVE_ATAN2F=yes +HAVE_CBRT=yes +HAVE_CBRTF=yes +HAVE_COSF=yes +HAVE_EXP2=yes +HAVE_EXP2F=yes +HAVE_EXPF=yes +HAVE_ISINF=yes +HAVE_ISNAN=yes +HAVE_LDEXPF=yes +HAVE_LLRINT=yes +HAVE_LLRINTF=yes +HAVE_LOG2=yes +HAVE_LOG2F=yes +HAVE_LOG10F=yes +HAVE_LRINT=yes +HAVE_LRINTF=yes +HAVE_POWF=yes +HAVE_RINT=yes +HAVE_ROUND=yes +HAVE_ROUNDF=yes +HAVE_SINF=yes +HAVE_TRUNC=yes +HAVE_TRUNCF=yes +HAVE_ACCESS=yes +!HAVE_ALIGNED_MALLOC=yes +HAVE_ALIGNED_STACK=yes +!HAVE_ALSA_ASOUNDLIB_H=yes +!HAVE_ALTIVEC_H=yes +HAVE_ARPA_INET_H=yes +!HAVE_ASM_MOD_Q=yes +!HAVE_ASM_MOD_Y=yes +HAVE_ASM_TYPES_H=yes +HAVE_ATTRIBUTE_MAY_ALIAS=yes +HAVE_ATTRIBUTE_PACKED=yes +!HAVE_CDIO_PARANOIA_H=yes +!HAVE_CDIO_PARANOIA_PARANOIA_H=yes +HAVE_CLOCK_GETTIME=yes +!HAVE_CLOSESOCKET=yes +HAVE_CMOV=yes +!HAVE_COMMANDLINETOARGVW=yes +HAVE_CPUNOP=yes +!HAVE_CRYPTGENRANDOM=yes +!HAVE_DCBZL=yes +!HAVE_DEV_BKTR_IOCTL_BT848_H=yes +!HAVE_DEV_BKTR_IOCTL_METEOR_H=yes +!HAVE_DEV_IC_BT8XX_H=yes +!HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H=yes +!HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H=yes +!HAVE_DIRECT_H=yes +HAVE_DLFCN_H=yes +HAVE_DLOPEN=yes +!HAVE_DOS_PATHS=yes +!HAVE_DXVA_H=yes +HAVE_EBP_AVAILABLE=yes +HAVE_EBX_AVAILABLE=yes +HAVE_FAST_64BIT=yes +HAVE_FAST_CLZ=yes +HAVE_FAST_CMOV=yes +HAVE_FCNTL=yes +HAVE_FORK=yes +HAVE_GETADDRINFO=yes +!HAVE_GETHRTIME=yes +HAVE_GETOPT=yes +!HAVE_GETPROCESSAFFINITYMASK=yes +!HAVE_GETPROCESSMEMORYINFO=yes +!HAVE_GETPROCESSTIMES=yes +!HAVE_GETSYSTEMTIMEASFILETIME=yes +HAVE_GETRUSAGE=yes +HAVE_GETSERVBYPORT=yes +HAVE_GETTIMEOFDAY=yes +HAVE_GLOB=yes +HAVE_GNU_AS=yes +!HAVE_GSM_H=yes +!HAVE_IBM_ASM=yes +HAVE_INET_ATON=yes +!HAVE_IO_H=yes +HAVE_ISATTY=yes +!HAVE_JACK_PORT_GET_LATENCY_RANGE=yes +!HAVE_KBHIT=yes +!HAVE_LDBRX=yes +!HAVE_LIBDC1394_1=yes +!HAVE_LIBDC1394_2=yes +HAVE_LOCAL_ALIGNED_16=yes +HAVE_LOCAL_ALIGNED_8=yes +HAVE_LOCALTIME_R=yes +!HAVE_LOONGSON=yes +!HAVE_LZO1X_999_COMPRESS=yes +!HAVE_MACHINE_IOCTL_BT848_H=yes +!HAVE_MACHINE_IOCTL_METEOR_H=yes +!HAVE_MACHINE_RW_BARRIER=yes +!HAVE_MAKEINFO=yes +HAVE_MALLOC_H=yes +!HAVE_MAPVIEWOFFILE=yes +HAVE_MEMALIGN=yes +!HAVE_MEMORYBARRIER=yes +HAVE_MKSTEMP=yes +HAVE_MM_EMPTY=yes +HAVE_MMAP=yes +HAVE_MPROTECT=yes +!HAVE_MSVCRT=yes +HAVE_NANOSLEEP=yes +!HAVE_OPENJPEG_1_5_OPENJPEG_H=yes +!HAVE_PEEKNAMEDPIPE=yes +HAVE_PERL=yes +HAVE_POD2MAN=yes +HAVE_POLL_H=yes +HAVE_POSIX_MEMALIGN=yes +HAVE_PTHREAD_CANCEL=yes +!HAVE_RDTSC=yes +HAVE_RSYNC_CONTIMEOUT=yes +HAVE_SCHED_GETAFFINITY=yes +!HAVE_SDL=yes +!HAVE_SETCONSOLETEXTATTRIBUTE=yes +!HAVE_SETMODE=yes +HAVE_SETRLIMIT=yes +!HAVE_SLEEP=yes +!HAVE_SNDIO_H=yes +HAVE_SOCKLEN_T=yes +!HAVE_SOUNDCARD_H=yes +HAVE_STRERROR_R=yes +HAVE_STRUCT_ADDRINFO=yes +HAVE_STRUCT_GROUP_SOURCE_REQ=yes +HAVE_STRUCT_IP_MREQ_SOURCE=yes +HAVE_STRUCT_IPV6_MREQ=yes +HAVE_STRUCT_POLLFD=yes +HAVE_STRUCT_RUSAGE_RU_MAXRSS=yes +!HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE=yes +HAVE_STRUCT_SOCKADDR_IN6=yes +!HAVE_STRUCT_SOCKADDR_SA_LEN=yes +HAVE_STRUCT_SOCKADDR_STORAGE=yes +HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE=yes +!HAVE_SYMVER_ASM_LABEL=yes +HAVE_SYMVER_GNU_ASM=yes +HAVE_SYNC_VAL_COMPARE_AND_SWAP=yes +HAVE_SYSCONF=yes +HAVE_SYSCTL=yes +HAVE_SYS_MMAN_H=yes +HAVE_SYS_PARAM_H=yes +HAVE_SYS_RESOURCE_H=yes +HAVE_SYS_SELECT_H=yes +HAVE_SYS_SOUNDCARD_H=yes +HAVE_SYS_TIME_H=yes +!HAVE_SYS_VIDEOIO_H=yes +HAVE_TERMIOS_H=yes +!HAVE_TEXI2HTML=yes +HAVE_THREADS=yes +HAVE_UNISTD_H=yes +HAVE_USLEEP=yes +!HAVE_VFP_ARGS=yes +!HAVE_VIRTUALALLOC=yes +!HAVE_WINDOWS_H=yes +!HAVE_WINSOCK2_H=yes +!HAVE_XFORM_ASM=yes +HAVE_XMM_CLOBBERS=yes +CONFIG_BSFS=yes +CONFIG_DECODERS=yes +CONFIG_DEMUXERS=yes +CONFIG_ENCODERS=yes +CONFIG_FILTERS=yes +!CONFIG_HWACCELS=yes +CONFIG_INDEVS=yes +CONFIG_MUXERS=yes +CONFIG_OUTDEVS=yes +CONFIG_PARSERS=yes +CONFIG_PROTOCOLS=yes +CONFIG_DOC=yes +!CONFIG_HTMLPAGES=yes +CONFIG_MANPAGES=yes +CONFIG_PODPAGES=yes +!CONFIG_TXTPAGES=yes +!CONFIG_AVISYNTH=yes +!CONFIG_BZLIB=yes +!CONFIG_CRYSTALHD=yes +!CONFIG_FONTCONFIG=yes +!CONFIG_FREI0R=yes +!CONFIG_GNUTLS=yes +CONFIG_ICONV=yes +!CONFIG_LIBAACPLUS=yes +!CONFIG_LIBASS=yes +!CONFIG_LIBBLURAY=yes +!CONFIG_LIBCACA=yes +!CONFIG_LIBCDIO=yes +!CONFIG_LIBCELT=yes +!CONFIG_LIBDC1394=yes +CONFIG_LIBFAAC=yes +!CONFIG_LIBFDK_AAC=yes +!CONFIG_LIBFLITE=yes +!CONFIG_LIBFREETYPE=yes +!CONFIG_LIBGSM=yes +!CONFIG_LIBIEC61883=yes +!CONFIG_LIBILBC=yes +!CONFIG_LIBMODPLUG=yes +CONFIG_LIBMP3LAME=yes +!CONFIG_LIBNUT=yes +!CONFIG_LIBOPENCORE_AMRNB=yes +!CONFIG_LIBOPENCORE_AMRWB=yes +!CONFIG_LIBOPENCV=yes +!CONFIG_LIBOPENJPEG=yes +!CONFIG_LIBOPUS=yes +!CONFIG_LIBPULSE=yes +!CONFIG_LIBRTMP=yes +CONFIG_LIBSCHROEDINGER=yes +!CONFIG_LIBSOXR=yes +!CONFIG_LIBSPEEX=yes +!CONFIG_LIBSTAGEFRIGHT_H264=yes +CONFIG_LIBTHEORA=yes +!CONFIG_LIBTWOLAME=yes +!CONFIG_LIBUTVIDEO=yes +!CONFIG_LIBV4L2=yes +!CONFIG_LIBVO_AACENC=yes +!CONFIG_LIBVO_AMRWBENC=yes +CONFIG_LIBVORBIS=yes +!CONFIG_LIBVPX=yes +CONFIG_LIBX264=yes +!CONFIG_LIBXAVS=yes +CONFIG_LIBXVID=yes +!CONFIG_OPENAL=yes +!CONFIG_OPENSSL=yes +CONFIG_X11GRAB=yes +CONFIG_ZLIB=yes +!CONFIG_DXVA2=yes +!CONFIG_VAAPI=yes +!CONFIG_VDA=yes +!CONFIG_VDPAU=yes +CONFIG_AVCODEC=yes +CONFIG_AVDEVICE=yes +CONFIG_AVFILTER=yes +CONFIG_AVFORMAT=yes +!CONFIG_AVRESAMPLE=yes +CONFIG_AVUTIL=yes +CONFIG_POSTPROC=yes +CONFIG_SWRESAMPLE=yes +CONFIG_SWSCALE=yes +!CONFIG_FFPLAY=yes +CONFIG_FFPROBE=yes +CONFIG_FFSERVER=yes +CONFIG_FFMPEG=yes +CONFIG_DCT=yes +CONFIG_DWT=yes +CONFIG_FAST_UNALIGNED=yes +CONFIG_FFT=yes +!CONFIG_FTRAPV=yes +CONFIG_GPL=yes +!CONFIG_GRAY=yes +!CONFIG_HARDCODED_TABLES=yes +!CONFIG_INCOMPATIBLE_FORK_ABI=yes +CONFIG_LSP=yes +CONFIG_LZO=yes +CONFIG_MDCT=yes +!CONFIG_MEMALIGN_HACK=yes +!CONFIG_MEMORY_POISONING=yes +CONFIG_NETWORK=yes +CONFIG_NONFREE=yes +CONFIG_PIC=yes +CONFIG_RDFT=yes +CONFIG_RUNTIME_CPUDETECT=yes +CONFIG_SAFE_BITSTREAM_READER=yes +CONFIG_SHARED=yes +!CONFIG_SMALL=yes +!CONFIG_SRAM=yes +CONFIG_STATIC=yes +CONFIG_SWSCALE_ALPHA=yes +!CONFIG_THUMB=yes +!CONFIG_VERSION3=yes +!CONFIG_XMM_CLOBBER_TEST=yes +CONFIG_AANDCTTABLES=yes +CONFIG_AC3DSP=yes +CONFIG_AUDIO_FRAME_QUEUE=yes +CONFIG_DSPUTIL=yes +CONFIG_ERROR_RESILIENCE=yes +CONFIG_FRAME_THREAD_ENCODER=yes +!CONFIG_GCRYPT=yes +CONFIG_GOLOMB=yes +!CONFIG_GPLV3=yes +CONFIG_H264CHROMA=yes +CONFIG_H264DSP=yes +CONFIG_H264PRED=yes +CONFIG_H264QPEL=yes +CONFIG_HPELDSP=yes +CONFIG_HUFFMAN=yes +!CONFIG_LGPLV3=yes +CONFIG_LPC=yes +CONFIG_MPEGAUDIO=yes +CONFIG_MPEGAUDIODSP=yes +CONFIG_MPEGVIDEO=yes +CONFIG_MPEGVIDEOENC=yes +!CONFIG_NETTLE=yes +CONFIG_RANGECODER=yes +CONFIG_RTPDEC=yes +CONFIG_RTPENC_CHAIN=yes +CONFIG_SINEWIN=yes +CONFIG_VIDEODSP=yes +CONFIG_VP3DSP=yes +CONFIG_AAC_ADTSTOASC_BSF=yes +CONFIG_CHOMP_BSF=yes +CONFIG_DUMP_EXTRADATA_BSF=yes +CONFIG_H264_MP4TOANNEXB_BSF=yes +CONFIG_IMX_DUMP_HEADER_BSF=yes +CONFIG_MJPEG2JPEG_BSF=yes +CONFIG_MJPEGA_DUMP_HEADER_BSF=yes +CONFIG_MP3_HEADER_COMPRESS_BSF=yes +CONFIG_MP3_HEADER_DECOMPRESS_BSF=yes +CONFIG_MOV2TEXTSUB_BSF=yes +CONFIG_NOISE_BSF=yes +CONFIG_REMOVE_EXTRADATA_BSF=yes +CONFIG_TEXT2MOVSUB_BSF=yes +CONFIG_AASC_DECODER=yes +CONFIG_AMV_DECODER=yes +CONFIG_ANM_DECODER=yes +CONFIG_ANSI_DECODER=yes +CONFIG_ASV1_DECODER=yes +CONFIG_ASV2_DECODER=yes +CONFIG_AURA_DECODER=yes +CONFIG_AURA2_DECODER=yes +CONFIG_AVRP_DECODER=yes +CONFIG_AVRN_DECODER=yes +CONFIG_AVS_DECODER=yes +CONFIG_AVUI_DECODER=yes +CONFIG_AYUV_DECODER=yes +CONFIG_BETHSOFTVID_DECODER=yes +CONFIG_BFI_DECODER=yes +CONFIG_BINK_DECODER=yes +CONFIG_BMP_DECODER=yes +CONFIG_BMV_VIDEO_DECODER=yes +CONFIG_BRENDER_PIX_DECODER=yes +CONFIG_C93_DECODER=yes +CONFIG_CAVS_DECODER=yes +CONFIG_CDGRAPHICS_DECODER=yes +CONFIG_CDXL_DECODER=yes +CONFIG_CINEPAK_DECODER=yes +CONFIG_CLJR_DECODER=yes +CONFIG_CLLC_DECODER=yes +CONFIG_COMFORTNOISE_DECODER=yes +CONFIG_CPIA_DECODER=yes +CONFIG_CSCD_DECODER=yes +CONFIG_CYUV_DECODER=yes +CONFIG_DFA_DECODER=yes +CONFIG_DIRAC_DECODER=yes +CONFIG_DNXHD_DECODER=yes +CONFIG_DPX_DECODER=yes +CONFIG_DSICINVIDEO_DECODER=yes +CONFIG_DVVIDEO_DECODER=yes +CONFIG_DXA_DECODER=yes +CONFIG_DXTORY_DECODER=yes +CONFIG_EACMV_DECODER=yes +CONFIG_EAMAD_DECODER=yes +CONFIG_EATGQ_DECODER=yes +CONFIG_EATGV_DECODER=yes +CONFIG_EATQI_DECODER=yes +CONFIG_EIGHTBPS_DECODER=yes +CONFIG_EIGHTSVX_EXP_DECODER=yes +CONFIG_EIGHTSVX_FIB_DECODER=yes +CONFIG_ESCAPE124_DECODER=yes +CONFIG_ESCAPE130_DECODER=yes +CONFIG_EXR_DECODER=yes +CONFIG_FFV1_DECODER=yes +CONFIG_FFVHUFF_DECODER=yes +CONFIG_FLASHSV_DECODER=yes +CONFIG_FLASHSV2_DECODER=yes +CONFIG_FLIC_DECODER=yes +CONFIG_FLV_DECODER=yes +CONFIG_FOURXM_DECODER=yes +CONFIG_FRAPS_DECODER=yes +CONFIG_FRWU_DECODER=yes +CONFIG_GIF_DECODER=yes +CONFIG_H261_DECODER=yes +CONFIG_H263_DECODER=yes +CONFIG_H263I_DECODER=yes +CONFIG_H263P_DECODER=yes +CONFIG_H264_DECODER=yes +!CONFIG_H264_CRYSTALHD_DECODER=yes +!CONFIG_H264_VDA_DECODER=yes +!CONFIG_H264_VDPAU_DECODER=yes +CONFIG_HUFFYUV_DECODER=yes +CONFIG_IDCIN_DECODER=yes +CONFIG_IFF_BYTERUN1_DECODER=yes +CONFIG_IFF_ILBM_DECODER=yes +CONFIG_INDEO2_DECODER=yes +CONFIG_INDEO3_DECODER=yes +CONFIG_INDEO4_DECODER=yes +CONFIG_INDEO5_DECODER=yes +CONFIG_INTERPLAY_VIDEO_DECODER=yes +CONFIG_JPEG2000_DECODER=yes +CONFIG_JPEGLS_DECODER=yes +CONFIG_JV_DECODER=yes +CONFIG_KGV1_DECODER=yes +CONFIG_KMVC_DECODER=yes +CONFIG_LAGARITH_DECODER=yes +CONFIG_LOCO_DECODER=yes +CONFIG_MDEC_DECODER=yes +CONFIG_MIMIC_DECODER=yes +CONFIG_MJPEG_DECODER=yes +CONFIG_MJPEGB_DECODER=yes +CONFIG_MMVIDEO_DECODER=yes +CONFIG_MOTIONPIXELS_DECODER=yes +CONFIG_MPEG_XVMC_DECODER=yes +CONFIG_MPEG1VIDEO_DECODER=yes +CONFIG_MPEG2VIDEO_DECODER=yes +CONFIG_MPEG4_DECODER=yes +!CONFIG_MPEG4_CRYSTALHD_DECODER=yes +!CONFIG_MPEG4_VDPAU_DECODER=yes +CONFIG_MPEGVIDEO_DECODER=yes +!CONFIG_MPEG_VDPAU_DECODER=yes +!CONFIG_MPEG1_VDPAU_DECODER=yes +!CONFIG_MPEG2_CRYSTALHD_DECODER=yes +CONFIG_MSA1_DECODER=yes +!CONFIG_MSMPEG4_CRYSTALHD_DECODER=yes +CONFIG_MSMPEG4V1_DECODER=yes +CONFIG_MSMPEG4V2_DECODER=yes +CONFIG_MSMPEG4V3_DECODER=yes +CONFIG_MSRLE_DECODER=yes +CONFIG_MSS1_DECODER=yes +CONFIG_MSS2_DECODER=yes +CONFIG_MSVIDEO1_DECODER=yes +CONFIG_MSZH_DECODER=yes +CONFIG_MTS2_DECODER=yes +CONFIG_MVC1_DECODER=yes +CONFIG_MVC2_DECODER=yes +CONFIG_MXPEG_DECODER=yes +CONFIG_NUV_DECODER=yes +CONFIG_PAF_VIDEO_DECODER=yes +CONFIG_PAM_DECODER=yes +CONFIG_PBM_DECODER=yes +CONFIG_PCX_DECODER=yes +CONFIG_PGM_DECODER=yes +CONFIG_PGMYUV_DECODER=yes +CONFIG_PICTOR_DECODER=yes +CONFIG_PNG_DECODER=yes +CONFIG_PPM_DECODER=yes +CONFIG_PRORES_DECODER=yes +CONFIG_PRORES_LGPL_DECODER=yes +CONFIG_PTX_DECODER=yes +CONFIG_QDRAW_DECODER=yes +CONFIG_QPEG_DECODER=yes +CONFIG_QTRLE_DECODER=yes +CONFIG_R10K_DECODER=yes +CONFIG_R210_DECODER=yes +CONFIG_RAWVIDEO_DECODER=yes +CONFIG_RL2_DECODER=yes +CONFIG_ROQ_DECODER=yes +CONFIG_RPZA_DECODER=yes +CONFIG_RV10_DECODER=yes +CONFIG_RV20_DECODER=yes +CONFIG_RV30_DECODER=yes +CONFIG_RV40_DECODER=yes +CONFIG_S302M_DECODER=yes +CONFIG_SANM_DECODER=yes +CONFIG_SGI_DECODER=yes +CONFIG_SGIRLE_DECODER=yes +CONFIG_SMACKER_DECODER=yes +CONFIG_SMC_DECODER=yes +CONFIG_SNOW_DECODER=yes +CONFIG_SP5X_DECODER=yes +CONFIG_SUNRAST_DECODER=yes +CONFIG_SVQ1_DECODER=yes +CONFIG_SVQ3_DECODER=yes +CONFIG_TARGA_DECODER=yes +CONFIG_TARGA_Y216_DECODER=yes +CONFIG_THEORA_DECODER=yes +CONFIG_THP_DECODER=yes +CONFIG_TIERTEXSEQVIDEO_DECODER=yes +CONFIG_TIFF_DECODER=yes +CONFIG_TMV_DECODER=yes +CONFIG_TRUEMOTION1_DECODER=yes +CONFIG_TRUEMOTION2_DECODER=yes +CONFIG_TSCC_DECODER=yes +CONFIG_TSCC2_DECODER=yes +CONFIG_TXD_DECODER=yes +CONFIG_ULTI_DECODER=yes +CONFIG_UTVIDEO_DECODER=yes +CONFIG_V210_DECODER=yes +CONFIG_V210X_DECODER=yes +CONFIG_V308_DECODER=yes +CONFIG_V408_DECODER=yes +CONFIG_V410_DECODER=yes +CONFIG_VB_DECODER=yes +CONFIG_VBLE_DECODER=yes +CONFIG_VC1_DECODER=yes +!CONFIG_VC1_CRYSTALHD_DECODER=yes +!CONFIG_VC1_VDPAU_DECODER=yes +CONFIG_VC1IMAGE_DECODER=yes +CONFIG_VCR1_DECODER=yes +CONFIG_VMDVIDEO_DECODER=yes +CONFIG_VMNC_DECODER=yes +CONFIG_VP3_DECODER=yes +CONFIG_VP5_DECODER=yes +CONFIG_VP6_DECODER=yes +CONFIG_VP6A_DECODER=yes +CONFIG_VP6F_DECODER=yes +CONFIG_VP8_DECODER=yes +CONFIG_VQA_DECODER=yes +CONFIG_WMV1_DECODER=yes +CONFIG_WMV2_DECODER=yes +CONFIG_WMV3_DECODER=yes +!CONFIG_WMV3_CRYSTALHD_DECODER=yes +!CONFIG_WMV3_VDPAU_DECODER=yes +CONFIG_WMV3IMAGE_DECODER=yes +CONFIG_WNV1_DECODER=yes +CONFIG_XAN_WC3_DECODER=yes +CONFIG_XAN_WC4_DECODER=yes +CONFIG_XBM_DECODER=yes +CONFIG_XFACE_DECODER=yes +CONFIG_XL_DECODER=yes +CONFIG_XWD_DECODER=yes +CONFIG_Y41P_DECODER=yes +CONFIG_YOP_DECODER=yes +CONFIG_YUV4_DECODER=yes +CONFIG_ZERO12V_DECODER=yes +CONFIG_ZEROCODEC_DECODER=yes +CONFIG_ZLIB_DECODER=yes +CONFIG_ZMBV_DECODER=yes +CONFIG_AAC_DECODER=yes +CONFIG_AAC_LATM_DECODER=yes +CONFIG_AC3_DECODER=yes +CONFIG_ALAC_DECODER=yes +CONFIG_ALS_DECODER=yes +CONFIG_AMRNB_DECODER=yes +CONFIG_AMRWB_DECODER=yes +CONFIG_APE_DECODER=yes +CONFIG_ATRAC1_DECODER=yes +CONFIG_ATRAC3_DECODER=yes +CONFIG_BINKAUDIO_DCT_DECODER=yes +CONFIG_BINKAUDIO_RDFT_DECODER=yes +CONFIG_BMV_AUDIO_DECODER=yes +CONFIG_COOK_DECODER=yes +CONFIG_DCA_DECODER=yes +CONFIG_DSICINAUDIO_DECODER=yes +CONFIG_EAC3_DECODER=yes +CONFIG_EVRC_DECODER=yes +CONFIG_FFWAVESYNTH_DECODER=yes +CONFIG_FLAC_DECODER=yes +CONFIG_G723_1_DECODER=yes +CONFIG_G729_DECODER=yes +CONFIG_GSM_DECODER=yes +CONFIG_GSM_MS_DECODER=yes +CONFIG_IAC_DECODER=yes +CONFIG_IMC_DECODER=yes +CONFIG_MACE3_DECODER=yes +CONFIG_MACE6_DECODER=yes +CONFIG_MLP_DECODER=yes +CONFIG_MP1_DECODER=yes +CONFIG_MP1FLOAT_DECODER=yes +CONFIG_MP2_DECODER=yes +CONFIG_MP2FLOAT_DECODER=yes +CONFIG_MP3_DECODER=yes +CONFIG_MP3FLOAT_DECODER=yes +CONFIG_MP3ADU_DECODER=yes +CONFIG_MP3ADUFLOAT_DECODER=yes +CONFIG_MP3ON4_DECODER=yes +CONFIG_MP3ON4FLOAT_DECODER=yes +CONFIG_MPC7_DECODER=yes +CONFIG_MPC8_DECODER=yes +CONFIG_NELLYMOSER_DECODER=yes +CONFIG_PAF_AUDIO_DECODER=yes +CONFIG_QCELP_DECODER=yes +CONFIG_QDM2_DECODER=yes +CONFIG_RA_144_DECODER=yes +CONFIG_RA_288_DECODER=yes +CONFIG_RALF_DECODER=yes +CONFIG_SHORTEN_DECODER=yes +CONFIG_SIPR_DECODER=yes +CONFIG_SMACKAUD_DECODER=yes +CONFIG_SONIC_DECODER=yes +CONFIG_TAK_DECODER=yes +CONFIG_TRUEHD_DECODER=yes +CONFIG_TRUESPEECH_DECODER=yes +CONFIG_TTA_DECODER=yes +CONFIG_TWINVQ_DECODER=yes +CONFIG_VMDAUDIO_DECODER=yes +CONFIG_VORBIS_DECODER=yes +CONFIG_WAVPACK_DECODER=yes +CONFIG_WMALOSSLESS_DECODER=yes +CONFIG_WMAPRO_DECODER=yes +CONFIG_WMAV1_DECODER=yes +CONFIG_WMAV2_DECODER=yes +CONFIG_WMAVOICE_DECODER=yes +CONFIG_WS_SND1_DECODER=yes +CONFIG_PCM_ALAW_DECODER=yes +CONFIG_PCM_BLURAY_DECODER=yes +CONFIG_PCM_DVD_DECODER=yes +CONFIG_PCM_F32BE_DECODER=yes +CONFIG_PCM_F32LE_DECODER=yes +CONFIG_PCM_F64BE_DECODER=yes +CONFIG_PCM_F64LE_DECODER=yes +CONFIG_PCM_LXF_DECODER=yes +CONFIG_PCM_MULAW_DECODER=yes +CONFIG_PCM_S8_DECODER=yes +CONFIG_PCM_S8_PLANAR_DECODER=yes +CONFIG_PCM_S16BE_DECODER=yes +CONFIG_PCM_S16BE_PLANAR_DECODER=yes +CONFIG_PCM_S16LE_DECODER=yes +CONFIG_PCM_S16LE_PLANAR_DECODER=yes +CONFIG_PCM_S24BE_DECODER=yes +CONFIG_PCM_S24DAUD_DECODER=yes +CONFIG_PCM_S24LE_DECODER=yes +CONFIG_PCM_S24LE_PLANAR_DECODER=yes +CONFIG_PCM_S32BE_DECODER=yes +CONFIG_PCM_S32LE_DECODER=yes +CONFIG_PCM_S32LE_PLANAR_DECODER=yes +CONFIG_PCM_U8_DECODER=yes +CONFIG_PCM_U16BE_DECODER=yes +CONFIG_PCM_U16LE_DECODER=yes +CONFIG_PCM_U24BE_DECODER=yes +CONFIG_PCM_U24LE_DECODER=yes +CONFIG_PCM_U32BE_DECODER=yes +CONFIG_PCM_U32LE_DECODER=yes +CONFIG_PCM_ZORK_DECODER=yes +CONFIG_INTERPLAY_DPCM_DECODER=yes +CONFIG_ROQ_DPCM_DECODER=yes +CONFIG_SOL_DPCM_DECODER=yes +CONFIG_XAN_DPCM_DECODER=yes +CONFIG_ADPCM_4XM_DECODER=yes +CONFIG_ADPCM_ADX_DECODER=yes +CONFIG_ADPCM_AFC_DECODER=yes +CONFIG_ADPCM_CT_DECODER=yes +CONFIG_ADPCM_EA_DECODER=yes +CONFIG_ADPCM_EA_MAXIS_XA_DECODER=yes +CONFIG_ADPCM_EA_R1_DECODER=yes +CONFIG_ADPCM_EA_R2_DECODER=yes +CONFIG_ADPCM_EA_R3_DECODER=yes +CONFIG_ADPCM_EA_XAS_DECODER=yes +CONFIG_ADPCM_G722_DECODER=yes +CONFIG_ADPCM_G726_DECODER=yes +CONFIG_ADPCM_IMA_AMV_DECODER=yes +CONFIG_ADPCM_IMA_APC_DECODER=yes +CONFIG_ADPCM_IMA_DK3_DECODER=yes +CONFIG_ADPCM_IMA_DK4_DECODER=yes +CONFIG_ADPCM_IMA_EA_EACS_DECODER=yes +CONFIG_ADPCM_IMA_EA_SEAD_DECODER=yes +CONFIG_ADPCM_IMA_ISS_DECODER=yes +CONFIG_ADPCM_IMA_OKI_DECODER=yes +CONFIG_ADPCM_IMA_QT_DECODER=yes +CONFIG_ADPCM_IMA_SMJPEG_DECODER=yes +CONFIG_ADPCM_IMA_WAV_DECODER=yes +CONFIG_ADPCM_IMA_WS_DECODER=yes +CONFIG_ADPCM_MS_DECODER=yes +CONFIG_ADPCM_SBPRO_2_DECODER=yes +CONFIG_ADPCM_SBPRO_3_DECODER=yes +CONFIG_ADPCM_SBPRO_4_DECODER=yes +CONFIG_ADPCM_SWF_DECODER=yes +CONFIG_ADPCM_THP_DECODER=yes +CONFIG_ADPCM_XA_DECODER=yes +CONFIG_ADPCM_YAMAHA_DECODER=yes +CONFIG_VIMA_DECODER=yes +CONFIG_ASS_DECODER=yes +CONFIG_DVBSUB_DECODER=yes +CONFIG_DVDSUB_DECODER=yes +CONFIG_JACOSUB_DECODER=yes +CONFIG_MICRODVD_DECODER=yes +CONFIG_MOVTEXT_DECODER=yes +CONFIG_MPL2_DECODER=yes +CONFIG_PGSSUB_DECODER=yes +CONFIG_PJS_DECODER=yes +CONFIG_REALTEXT_DECODER=yes +CONFIG_SAMI_DECODER=yes +CONFIG_SRT_DECODER=yes +CONFIG_SUBRIP_DECODER=yes +CONFIG_SUBVIEWER_DECODER=yes +CONFIG_SUBVIEWER1_DECODER=yes +CONFIG_TEXT_DECODER=yes +CONFIG_VPLAYER_DECODER=yes +CONFIG_WEBVTT_DECODER=yes +CONFIG_XSUB_DECODER=yes +!CONFIG_LIBCELT_DECODER=yes +!CONFIG_LIBGSM_DECODER=yes +!CONFIG_LIBGSM_MS_DECODER=yes +!CONFIG_LIBILBC_DECODER=yes +!CONFIG_LIBOPENCORE_AMRNB_DECODER=yes +!CONFIG_LIBOPENCORE_AMRWB_DECODER=yes +!CONFIG_LIBOPENJPEG_DECODER=yes +!CONFIG_LIBOPUS_DECODER=yes +CONFIG_LIBSCHROEDINGER_DECODER=yes +!CONFIG_LIBSPEEX_DECODER=yes +!CONFIG_LIBSTAGEFRIGHT_H264_DECODER=yes +!CONFIG_LIBUTVIDEO_DECODER=yes +CONFIG_LIBVORBIS_DECODER=yes +!CONFIG_LIBVPX_VP8_DECODER=yes +!CONFIG_LIBVPX_VP9_DECODER=yes +CONFIG_BINTEXT_DECODER=yes +CONFIG_XBIN_DECODER=yes +CONFIG_IDF_DECODER=yes +CONFIG_AAC_DEMUXER=yes +CONFIG_AC3_DEMUXER=yes +CONFIG_ACT_DEMUXER=yes +CONFIG_ADF_DEMUXER=yes +CONFIG_ADX_DEMUXER=yes +CONFIG_AEA_DEMUXER=yes +CONFIG_AFC_DEMUXER=yes +CONFIG_AIFF_DEMUXER=yes +CONFIG_AMR_DEMUXER=yes +CONFIG_ANM_DEMUXER=yes +CONFIG_APC_DEMUXER=yes +CONFIG_APE_DEMUXER=yes +CONFIG_AQTITLE_DEMUXER=yes +CONFIG_ASF_DEMUXER=yes +CONFIG_ASS_DEMUXER=yes +CONFIG_AST_DEMUXER=yes +CONFIG_AU_DEMUXER=yes +CONFIG_AVI_DEMUXER=yes +!CONFIG_AVISYNTH_DEMUXER=yes +CONFIG_AVR_DEMUXER=yes +CONFIG_AVS_DEMUXER=yes +CONFIG_BETHSOFTVID_DEMUXER=yes +CONFIG_BFI_DEMUXER=yes +CONFIG_BINTEXT_DEMUXER=yes +CONFIG_BINK_DEMUXER=yes +CONFIG_BIT_DEMUXER=yes +CONFIG_BMV_DEMUXER=yes +CONFIG_BRSTM_DEMUXER=yes +CONFIG_C93_DEMUXER=yes +CONFIG_CAF_DEMUXER=yes +CONFIG_CAVSVIDEO_DEMUXER=yes +CONFIG_CDG_DEMUXER=yes +CONFIG_CDXL_DEMUXER=yes +CONFIG_CONCAT_DEMUXER=yes +CONFIG_DAUD_DEMUXER=yes +CONFIG_DFA_DEMUXER=yes +CONFIG_DIRAC_DEMUXER=yes +CONFIG_DNXHD_DEMUXER=yes +CONFIG_DSICIN_DEMUXER=yes +CONFIG_DTS_DEMUXER=yes +CONFIG_DTSHD_DEMUXER=yes +CONFIG_DV_DEMUXER=yes +CONFIG_DXA_DEMUXER=yes +CONFIG_EA_DEMUXER=yes +CONFIG_EA_CDATA_DEMUXER=yes +CONFIG_EAC3_DEMUXER=yes +CONFIG_EPAF_DEMUXER=yes +CONFIG_FFM_DEMUXER=yes +CONFIG_FFMETADATA_DEMUXER=yes +CONFIG_FILMSTRIP_DEMUXER=yes +CONFIG_FLAC_DEMUXER=yes +CONFIG_FLIC_DEMUXER=yes +CONFIG_FLV_DEMUXER=yes +CONFIG_FOURXM_DEMUXER=yes +CONFIG_FRM_DEMUXER=yes +CONFIG_G722_DEMUXER=yes +CONFIG_G723_1_DEMUXER=yes +CONFIG_G729_DEMUXER=yes +CONFIG_GIF_DEMUXER=yes +CONFIG_GSM_DEMUXER=yes +CONFIG_GXF_DEMUXER=yes +CONFIG_H261_DEMUXER=yes +CONFIG_H263_DEMUXER=yes +CONFIG_H264_DEMUXER=yes +CONFIG_HLS_DEMUXER=yes +CONFIG_ICO_DEMUXER=yes +CONFIG_IDCIN_DEMUXER=yes +CONFIG_IDF_DEMUXER=yes +CONFIG_IFF_DEMUXER=yes +CONFIG_ILBC_DEMUXER=yes +CONFIG_IMAGE2_DEMUXER=yes +CONFIG_IMAGE2PIPE_DEMUXER=yes +CONFIG_INGENIENT_DEMUXER=yes +CONFIG_IPMOVIE_DEMUXER=yes +CONFIG_IRCAM_DEMUXER=yes +CONFIG_ISS_DEMUXER=yes +CONFIG_IV8_DEMUXER=yes +CONFIG_IVF_DEMUXER=yes +CONFIG_JACOSUB_DEMUXER=yes +CONFIG_JV_DEMUXER=yes +CONFIG_LATM_DEMUXER=yes +CONFIG_LMLM4_DEMUXER=yes +CONFIG_LOAS_DEMUXER=yes +CONFIG_LVF_DEMUXER=yes +CONFIG_LXF_DEMUXER=yes +CONFIG_M4V_DEMUXER=yes +CONFIG_MATROSKA_DEMUXER=yes +CONFIG_MGSTS_DEMUXER=yes +CONFIG_MICRODVD_DEMUXER=yes +CONFIG_MJPEG_DEMUXER=yes +CONFIG_MLP_DEMUXER=yes +CONFIG_MM_DEMUXER=yes +CONFIG_MMF_DEMUXER=yes +CONFIG_MOV_DEMUXER=yes +CONFIG_MP3_DEMUXER=yes +CONFIG_MPC_DEMUXER=yes +CONFIG_MPC8_DEMUXER=yes +CONFIG_MPEGPS_DEMUXER=yes +CONFIG_MPEGTS_DEMUXER=yes +CONFIG_MPEGTSRAW_DEMUXER=yes +CONFIG_MPEGVIDEO_DEMUXER=yes +CONFIG_MPL2_DEMUXER=yes +CONFIG_MPSUB_DEMUXER=yes +CONFIG_MSNWC_TCP_DEMUXER=yes +CONFIG_MTV_DEMUXER=yes +CONFIG_MV_DEMUXER=yes +CONFIG_MVI_DEMUXER=yes +CONFIG_MXF_DEMUXER=yes +CONFIG_MXG_DEMUXER=yes +CONFIG_NC_DEMUXER=yes +CONFIG_NISTSPHERE_DEMUXER=yes +CONFIG_NSV_DEMUXER=yes +CONFIG_NUT_DEMUXER=yes +CONFIG_NUV_DEMUXER=yes +CONFIG_OGG_DEMUXER=yes +CONFIG_OMA_DEMUXER=yes +CONFIG_PAF_DEMUXER=yes +CONFIG_PCM_ALAW_DEMUXER=yes +CONFIG_PCM_MULAW_DEMUXER=yes +CONFIG_PCM_F64BE_DEMUXER=yes +CONFIG_PCM_F64LE_DEMUXER=yes +CONFIG_PCM_F32BE_DEMUXER=yes +CONFIG_PCM_F32LE_DEMUXER=yes +CONFIG_PCM_S32BE_DEMUXER=yes +CONFIG_PCM_S32LE_DEMUXER=yes +CONFIG_PCM_S24BE_DEMUXER=yes +CONFIG_PCM_S24LE_DEMUXER=yes +CONFIG_PCM_S16BE_DEMUXER=yes +CONFIG_PCM_S16LE_DEMUXER=yes +CONFIG_PCM_S8_DEMUXER=yes +CONFIG_PCM_U32BE_DEMUXER=yes +CONFIG_PCM_U32LE_DEMUXER=yes +CONFIG_PCM_U24BE_DEMUXER=yes +CONFIG_PCM_U24LE_DEMUXER=yes +CONFIG_PCM_U16BE_DEMUXER=yes +CONFIG_PCM_U16LE_DEMUXER=yes +CONFIG_PCM_U8_DEMUXER=yes +CONFIG_PJS_DEMUXER=yes +CONFIG_PMP_DEMUXER=yes +CONFIG_PVA_DEMUXER=yes +CONFIG_PVF_DEMUXER=yes +CONFIG_QCP_DEMUXER=yes +CONFIG_R3D_DEMUXER=yes +CONFIG_RAWVIDEO_DEMUXER=yes +CONFIG_REALTEXT_DEMUXER=yes +CONFIG_RL2_DEMUXER=yes +CONFIG_RM_DEMUXER=yes +CONFIG_ROQ_DEMUXER=yes +CONFIG_RPL_DEMUXER=yes +CONFIG_RSO_DEMUXER=yes +CONFIG_RTP_DEMUXER=yes +CONFIG_RTSP_DEMUXER=yes +CONFIG_SAMI_DEMUXER=yes +CONFIG_SAP_DEMUXER=yes +CONFIG_SBG_DEMUXER=yes +CONFIG_SDP_DEMUXER=yes +CONFIG_SEGAFILM_DEMUXER=yes +CONFIG_SHORTEN_DEMUXER=yes +CONFIG_SIFF_DEMUXER=yes +CONFIG_SMACKER_DEMUXER=yes +CONFIG_SMJPEG_DEMUXER=yes +CONFIG_SMUSH_DEMUXER=yes +CONFIG_SOL_DEMUXER=yes +CONFIG_SOX_DEMUXER=yes +CONFIG_SPDIF_DEMUXER=yes +CONFIG_SRT_DEMUXER=yes +CONFIG_STR_DEMUXER=yes +CONFIG_SUBVIEWER1_DEMUXER=yes +CONFIG_SUBVIEWER_DEMUXER=yes +CONFIG_SWF_DEMUXER=yes +CONFIG_TAK_DEMUXER=yes +CONFIG_TEDCAPTIONS_DEMUXER=yes +CONFIG_THP_DEMUXER=yes +CONFIG_TIERTEXSEQ_DEMUXER=yes +CONFIG_TMV_DEMUXER=yes +CONFIG_TRUEHD_DEMUXER=yes +CONFIG_TTA_DEMUXER=yes +CONFIG_TXD_DEMUXER=yes +CONFIG_TTY_DEMUXER=yes +CONFIG_VC1_DEMUXER=yes +CONFIG_VC1T_DEMUXER=yes +CONFIG_VIVO_DEMUXER=yes +CONFIG_VMD_DEMUXER=yes +CONFIG_VOBSUB_DEMUXER=yes +CONFIG_VOC_DEMUXER=yes +CONFIG_VPLAYER_DEMUXER=yes +CONFIG_VQF_DEMUXER=yes +CONFIG_W64_DEMUXER=yes +CONFIG_WAV_DEMUXER=yes +CONFIG_WC3_DEMUXER=yes +CONFIG_WEBVTT_DEMUXER=yes +CONFIG_WSAUD_DEMUXER=yes +CONFIG_WSVQA_DEMUXER=yes +CONFIG_WTV_DEMUXER=yes +CONFIG_WV_DEMUXER=yes +CONFIG_XA_DEMUXER=yes +CONFIG_XBIN_DEMUXER=yes +CONFIG_XMV_DEMUXER=yes +CONFIG_XWMA_DEMUXER=yes +CONFIG_YOP_DEMUXER=yes +CONFIG_YUV4MPEGPIPE_DEMUXER=yes +!CONFIG_LIBMODPLUG_DEMUXER=yes +!CONFIG_LIBNUT_DEMUXER=yes +CONFIG_A64MULTI_ENCODER=yes +CONFIG_A64MULTI5_ENCODER=yes +CONFIG_AMV_ENCODER=yes +CONFIG_ASV1_ENCODER=yes +CONFIG_ASV2_ENCODER=yes +CONFIG_AVRP_ENCODER=yes +CONFIG_AVUI_ENCODER=yes +CONFIG_AYUV_ENCODER=yes +CONFIG_BMP_ENCODER=yes +CONFIG_CLJR_ENCODER=yes +CONFIG_COMFORTNOISE_ENCODER=yes +CONFIG_DNXHD_ENCODER=yes +CONFIG_DPX_ENCODER=yes +CONFIG_DVVIDEO_ENCODER=yes +CONFIG_FFV1_ENCODER=yes +CONFIG_FFVHUFF_ENCODER=yes +CONFIG_FLASHSV_ENCODER=yes +CONFIG_FLASHSV2_ENCODER=yes +CONFIG_FLV_ENCODER=yes +CONFIG_GIF_ENCODER=yes +CONFIG_H261_ENCODER=yes +CONFIG_H263_ENCODER=yes +CONFIG_H263P_ENCODER=yes +CONFIG_HUFFYUV_ENCODER=yes +CONFIG_JPEG2000_ENCODER=yes +CONFIG_JPEGLS_ENCODER=yes +CONFIG_LJPEG_ENCODER=yes +CONFIG_MJPEG_ENCODER=yes +CONFIG_MPEG1VIDEO_ENCODER=yes +CONFIG_MPEG2VIDEO_ENCODER=yes +CONFIG_MPEG4_ENCODER=yes +CONFIG_MSMPEG4V2_ENCODER=yes +CONFIG_MSMPEG4V3_ENCODER=yes +CONFIG_MSVIDEO1_ENCODER=yes +CONFIG_PAM_ENCODER=yes +CONFIG_PBM_ENCODER=yes +CONFIG_PCX_ENCODER=yes +CONFIG_PGM_ENCODER=yes +CONFIG_PGMYUV_ENCODER=yes +CONFIG_PNG_ENCODER=yes +CONFIG_PPM_ENCODER=yes +CONFIG_PRORES_ENCODER=yes +CONFIG_PRORES_ANATOLIY_ENCODER=yes +CONFIG_PRORES_KOSTYA_ENCODER=yes +CONFIG_QTRLE_ENCODER=yes +CONFIG_R10K_ENCODER=yes +CONFIG_R210_ENCODER=yes +CONFIG_RAWVIDEO_ENCODER=yes +CONFIG_ROQ_ENCODER=yes +CONFIG_RV10_ENCODER=yes +CONFIG_RV20_ENCODER=yes +CONFIG_SGI_ENCODER=yes +CONFIG_SNOW_ENCODER=yes +CONFIG_SUNRAST_ENCODER=yes +CONFIG_SVQ1_ENCODER=yes +CONFIG_TARGA_ENCODER=yes +CONFIG_TIFF_ENCODER=yes +CONFIG_UTVIDEO_ENCODER=yes +CONFIG_V210_ENCODER=yes +CONFIG_V308_ENCODER=yes +CONFIG_V408_ENCODER=yes +CONFIG_V410_ENCODER=yes +CONFIG_WMV1_ENCODER=yes +CONFIG_WMV2_ENCODER=yes +CONFIG_XBM_ENCODER=yes +CONFIG_XFACE_ENCODER=yes +CONFIG_XWD_ENCODER=yes +CONFIG_Y41P_ENCODER=yes +CONFIG_YUV4_ENCODER=yes +CONFIG_ZLIB_ENCODER=yes +CONFIG_ZMBV_ENCODER=yes +CONFIG_AAC_ENCODER=yes +CONFIG_AC3_ENCODER=yes +CONFIG_AC3_FIXED_ENCODER=yes +CONFIG_ALAC_ENCODER=yes +CONFIG_DCA_ENCODER=yes +CONFIG_EAC3_ENCODER=yes +CONFIG_FLAC_ENCODER=yes +CONFIG_G723_1_ENCODER=yes +CONFIG_MP2_ENCODER=yes +CONFIG_NELLYMOSER_ENCODER=yes +CONFIG_RA_144_ENCODER=yes +CONFIG_SONIC_ENCODER=yes +CONFIG_SONIC_LS_ENCODER=yes +CONFIG_VORBIS_ENCODER=yes +CONFIG_WMAV1_ENCODER=yes +CONFIG_WMAV2_ENCODER=yes +CONFIG_PCM_ALAW_ENCODER=yes +CONFIG_PCM_F32BE_ENCODER=yes +CONFIG_PCM_F32LE_ENCODER=yes +CONFIG_PCM_F64BE_ENCODER=yes +CONFIG_PCM_F64LE_ENCODER=yes +CONFIG_PCM_MULAW_ENCODER=yes +CONFIG_PCM_S8_ENCODER=yes +CONFIG_PCM_S8_PLANAR_ENCODER=yes +CONFIG_PCM_S16BE_ENCODER=yes +CONFIG_PCM_S16BE_PLANAR_ENCODER=yes +CONFIG_PCM_S16LE_ENCODER=yes +CONFIG_PCM_S16LE_PLANAR_ENCODER=yes +CONFIG_PCM_S24BE_ENCODER=yes +CONFIG_PCM_S24DAUD_ENCODER=yes +CONFIG_PCM_S24LE_ENCODER=yes +CONFIG_PCM_S24LE_PLANAR_ENCODER=yes +CONFIG_PCM_S32BE_ENCODER=yes +CONFIG_PCM_S32LE_ENCODER=yes +CONFIG_PCM_S32LE_PLANAR_ENCODER=yes +CONFIG_PCM_U8_ENCODER=yes +CONFIG_PCM_U16BE_ENCODER=yes +CONFIG_PCM_U16LE_ENCODER=yes +CONFIG_PCM_U24BE_ENCODER=yes +CONFIG_PCM_U24LE_ENCODER=yes +CONFIG_PCM_U32BE_ENCODER=yes +CONFIG_PCM_U32LE_ENCODER=yes +CONFIG_ROQ_DPCM_ENCODER=yes +CONFIG_ADPCM_ADX_ENCODER=yes +CONFIG_ADPCM_G722_ENCODER=yes +CONFIG_ADPCM_G726_ENCODER=yes +CONFIG_ADPCM_IMA_QT_ENCODER=yes +CONFIG_ADPCM_IMA_WAV_ENCODER=yes +CONFIG_ADPCM_MS_ENCODER=yes +CONFIG_ADPCM_SWF_ENCODER=yes +CONFIG_ADPCM_YAMAHA_ENCODER=yes +CONFIG_ASS_ENCODER=yes +CONFIG_DVBSUB_ENCODER=yes +CONFIG_DVDSUB_ENCODER=yes +CONFIG_MOVTEXT_ENCODER=yes +CONFIG_SRT_ENCODER=yes +CONFIG_SUBRIP_ENCODER=yes +CONFIG_XSUB_ENCODER=yes +CONFIG_LIBFAAC_ENCODER=yes +!CONFIG_LIBFDK_AAC_ENCODER=yes +!CONFIG_LIBGSM_ENCODER=yes +!CONFIG_LIBGSM_MS_ENCODER=yes +!CONFIG_LIBILBC_ENCODER=yes +CONFIG_LIBMP3LAME_ENCODER=yes +!CONFIG_LIBOPENCORE_AMRNB_ENCODER=yes +!CONFIG_LIBOPENJPEG_ENCODER=yes +!CONFIG_LIBOPUS_ENCODER=yes +CONFIG_LIBSCHROEDINGER_ENCODER=yes +!CONFIG_LIBSPEEX_ENCODER=yes +CONFIG_LIBTHEORA_ENCODER=yes +!CONFIG_LIBTWOLAME_ENCODER=yes +!CONFIG_LIBUTVIDEO_ENCODER=yes +!CONFIG_LIBVO_AACENC_ENCODER=yes +!CONFIG_LIBVO_AMRWBENC_ENCODER=yes +CONFIG_LIBVORBIS_ENCODER=yes +!CONFIG_LIBVPX_VP8_ENCODER=yes +!CONFIG_LIBVPX_VP9_ENCODER=yes +CONFIG_LIBX264_ENCODER=yes +CONFIG_LIBX264RGB_ENCODER=yes +!CONFIG_LIBXAVS_ENCODER=yes +CONFIG_LIBXVID_ENCODER=yes +!CONFIG_LIBAACPLUS_ENCODER=yes +CONFIG_ACONVERT_FILTER=yes +CONFIG_AFADE_FILTER=yes +CONFIG_AFORMAT_FILTER=yes +CONFIG_ALLPASS_FILTER=yes +CONFIG_AMERGE_FILTER=yes +CONFIG_AMIX_FILTER=yes +CONFIG_ANULL_FILTER=yes +CONFIG_APAD_FILTER=yes +CONFIG_APERMS_FILTER=yes +CONFIG_ARESAMPLE_FILTER=yes +CONFIG_ASELECT_FILTER=yes +CONFIG_ASENDCMD_FILTER=yes +CONFIG_ASETNSAMPLES_FILTER=yes +CONFIG_ASETPTS_FILTER=yes +CONFIG_ASETTB_FILTER=yes +CONFIG_ASHOWINFO_FILTER=yes +CONFIG_ASPLIT_FILTER=yes +CONFIG_ASTREAMSYNC_FILTER=yes +!CONFIG_ASYNCTS_FILTER=yes +CONFIG_ATEMPO_FILTER=yes +CONFIG_BANDPASS_FILTER=yes +CONFIG_BANDREJECT_FILTER=yes +CONFIG_BASS_FILTER=yes +CONFIG_BIQUAD_FILTER=yes +CONFIG_CHANNELMAP_FILTER=yes +CONFIG_CHANNELSPLIT_FILTER=yes +CONFIG_EARWAX_FILTER=yes +CONFIG_EBUR128_FILTER=yes +CONFIG_EQUALIZER_FILTER=yes +CONFIG_HIGHPASS_FILTER=yes +CONFIG_JOIN_FILTER=yes +CONFIG_LOWPASS_FILTER=yes +CONFIG_PAN_FILTER=yes +!CONFIG_RESAMPLE_FILTER=yes +CONFIG_SILENCEDETECT_FILTER=yes +CONFIG_TREBLE_FILTER=yes +CONFIG_VOLUME_FILTER=yes +CONFIG_VOLUMEDETECT_FILTER=yes +CONFIG_AEVALSRC_FILTER=yes +CONFIG_ANULLSRC_FILTER=yes +!CONFIG_FLITE_FILTER=yes +CONFIG_SINE_FILTER=yes +CONFIG_ANULLSINK_FILTER=yes +CONFIG_ALPHAEXTRACT_FILTER=yes +CONFIG_ALPHAMERGE_FILTER=yes +!CONFIG_ASS_FILTER=yes +CONFIG_BBOX_FILTER=yes +CONFIG_BLACKDETECT_FILTER=yes +CONFIG_BLACKFRAME_FILTER=yes +CONFIG_BLEND_FILTER=yes +CONFIG_BOXBLUR_FILTER=yes +CONFIG_COLORMATRIX_FILTER=yes +CONFIG_COPY_FILTER=yes +CONFIG_CROP_FILTER=yes +CONFIG_CROPDETECT_FILTER=yes +CONFIG_CURVES_FILTER=yes +CONFIG_DECIMATE_FILTER=yes +CONFIG_DELOGO_FILTER=yes +CONFIG_DESHAKE_FILTER=yes +CONFIG_DRAWBOX_FILTER=yes +!CONFIG_DRAWTEXT_FILTER=yes +CONFIG_EDGEDETECT_FILTER=yes +CONFIG_FADE_FILTER=yes +CONFIG_FIELD_FILTER=yes +CONFIG_FIELDORDER_FILTER=yes +CONFIG_FORMAT_FILTER=yes +CONFIG_FPS_FILTER=yes +CONFIG_FRAMESTEP_FILTER=yes +!CONFIG_FREI0R_FILTER=yes +CONFIG_GEQ_FILTER=yes +CONFIG_GRADFUN_FILTER=yes +CONFIG_HFLIP_FILTER=yes +CONFIG_HISTEQ_FILTER=yes +CONFIG_HISTOGRAM_FILTER=yes +CONFIG_HQDN3D_FILTER=yes +CONFIG_HUE_FILTER=yes +CONFIG_IDET_FILTER=yes +CONFIG_IL_FILTER=yes +CONFIG_KERNDEINT_FILTER=yes +CONFIG_LUT_FILTER=yes +CONFIG_LUTRGB_FILTER=yes +CONFIG_LUTYUV_FILTER=yes +CONFIG_MP_FILTER=yes +CONFIG_NEGATE_FILTER=yes +CONFIG_NOFORMAT_FILTER=yes +CONFIG_NOISE_FILTER=yes +CONFIG_NULL_FILTER=yes +!CONFIG_OCV_FILTER=yes +CONFIG_OVERLAY_FILTER=yes +CONFIG_PAD_FILTER=yes +CONFIG_PERMS_FILTER=yes +CONFIG_PIXDESCTEST_FILTER=yes +CONFIG_PP_FILTER=yes +CONFIG_REMOVELOGO_FILTER=yes +CONFIG_SCALE_FILTER=yes +CONFIG_SELECT_FILTER=yes +CONFIG_SENDCMD_FILTER=yes +CONFIG_SETDAR_FILTER=yes +CONFIG_SETFIELD_FILTER=yes +CONFIG_SETPTS_FILTER=yes +CONFIG_SETSAR_FILTER=yes +CONFIG_SETTB_FILTER=yes +CONFIG_SHOWINFO_FILTER=yes +CONFIG_SMARTBLUR_FILTER=yes +CONFIG_SPLIT_FILTER=yes +CONFIG_STEREO3D_FILTER=yes +!CONFIG_SUBTITLES_FILTER=yes +CONFIG_SUPER2XSAI_FILTER=yes +CONFIG_SWAPUV_FILTER=yes +CONFIG_THUMBNAIL_FILTER=yes +CONFIG_TILE_FILTER=yes +CONFIG_TINTERLACE_FILTER=yes +CONFIG_TRANSPOSE_FILTER=yes +CONFIG_UNSHARP_FILTER=yes +CONFIG_VFLIP_FILTER=yes +CONFIG_YADIF_FILTER=yes +CONFIG_CELLAUTO_FILTER=yes +CONFIG_COLOR_FILTER=yes +!CONFIG_FREI0R_SRC_FILTER=yes +CONFIG_LIFE_FILTER=yes +CONFIG_MANDELBROT_FILTER=yes +CONFIG_MPTESTSRC_FILTER=yes +CONFIG_NULLSRC_FILTER=yes +CONFIG_RGBTESTSRC_FILTER=yes +CONFIG_SMPTEBARS_FILTER=yes +CONFIG_TESTSRC_FILTER=yes +CONFIG_NULLSINK_FILTER=yes +CONFIG_CONCAT_FILTER=yes +CONFIG_SHOWSPECTRUM_FILTER=yes +CONFIG_SHOWWAVES_FILTER=yes +CONFIG_AMOVIE_FILTER=yes +CONFIG_MOVIE_FILTER=yes +!CONFIG_H263_VAAPI_HWACCEL=yes +!CONFIG_H263_VDPAU_HWACCEL=yes +!CONFIG_H264_DXVA2_HWACCEL=yes +!CONFIG_H264_VAAPI_HWACCEL=yes +!CONFIG_H264_VDA_HWACCEL=yes +!CONFIG_H264_VDPAU_HWACCEL=yes +!CONFIG_MPEG1_VDPAU_HWACCEL=yes +!CONFIG_MPEG2_DXVA2_HWACCEL=yes +!CONFIG_MPEG2_VAAPI_HWACCEL=yes +!CONFIG_MPEG2_VDPAU_HWACCEL=yes +!CONFIG_MPEG4_VAAPI_HWACCEL=yes +!CONFIG_MPEG4_VDPAU_HWACCEL=yes +!CONFIG_VC1_DXVA2_HWACCEL=yes +!CONFIG_VC1_VAAPI_HWACCEL=yes +!CONFIG_VC1_VDPAU_HWACCEL=yes +!CONFIG_WMV3_DXVA2_HWACCEL=yes +!CONFIG_WMV3_VAAPI_HWACCEL=yes +!CONFIG_WMV3_VDPAU_HWACCEL=yes +!CONFIG_ALSA_INDEV=yes +!CONFIG_BKTR_INDEV=yes +!CONFIG_DSHOW_INDEV=yes +CONFIG_DV1394_INDEV=yes +CONFIG_FBDEV_INDEV=yes +!CONFIG_IEC61883_INDEV=yes +!CONFIG_JACK_INDEV=yes +CONFIG_LAVFI_INDEV=yes +!CONFIG_OPENAL_INDEV=yes +CONFIG_OSS_INDEV=yes +!CONFIG_PULSE_INDEV=yes +!CONFIG_SNDIO_INDEV=yes +CONFIG_V4L2_INDEV=yes +!CONFIG_VFWCAP_INDEV=yes +CONFIG_X11GRAB_INDEV=yes +!CONFIG_LIBCDIO_INDEV=yes +!CONFIG_LIBDC1394_INDEV=yes +CONFIG_A64_MUXER=yes +CONFIG_AC3_MUXER=yes +CONFIG_ADTS_MUXER=yes +CONFIG_ADX_MUXER=yes +CONFIG_AIFF_MUXER=yes +CONFIG_AMR_MUXER=yes +CONFIG_ASF_MUXER=yes +CONFIG_ASS_MUXER=yes +CONFIG_AST_MUXER=yes +CONFIG_ASF_STREAM_MUXER=yes +CONFIG_AU_MUXER=yes +CONFIG_AVI_MUXER=yes +CONFIG_AVM2_MUXER=yes +CONFIG_BIT_MUXER=yes +CONFIG_CAF_MUXER=yes +CONFIG_CAVSVIDEO_MUXER=yes +CONFIG_CRC_MUXER=yes +CONFIG_DAUD_MUXER=yes +CONFIG_DIRAC_MUXER=yes +CONFIG_DNXHD_MUXER=yes +CONFIG_DTS_MUXER=yes +CONFIG_DV_MUXER=yes +CONFIG_EAC3_MUXER=yes +CONFIG_F4V_MUXER=yes +CONFIG_FFM_MUXER=yes +CONFIG_FFMETADATA_MUXER=yes +CONFIG_FILMSTRIP_MUXER=yes +CONFIG_FLAC_MUXER=yes +CONFIG_FLV_MUXER=yes +CONFIG_FRAMECRC_MUXER=yes +CONFIG_FRAMEMD5_MUXER=yes +CONFIG_G722_MUXER=yes +CONFIG_G723_1_MUXER=yes +CONFIG_GIF_MUXER=yes +CONFIG_GXF_MUXER=yes +CONFIG_H261_MUXER=yes +CONFIG_H263_MUXER=yes +CONFIG_H264_MUXER=yes +CONFIG_HLS_MUXER=yes +CONFIG_ICO_MUXER=yes +CONFIG_ILBC_MUXER=yes +CONFIG_IMAGE2_MUXER=yes +CONFIG_IMAGE2PIPE_MUXER=yes +CONFIG_IPOD_MUXER=yes +CONFIG_IRCAM_MUXER=yes +CONFIG_ISMV_MUXER=yes +CONFIG_IVF_MUXER=yes +CONFIG_JACOSUB_MUXER=yes +CONFIG_LATM_MUXER=yes +CONFIG_M4V_MUXER=yes +CONFIG_MD5_MUXER=yes +CONFIG_MATROSKA_MUXER=yes +CONFIG_MATROSKA_AUDIO_MUXER=yes +CONFIG_MICRODVD_MUXER=yes +CONFIG_MJPEG_MUXER=yes +CONFIG_MLP_MUXER=yes +CONFIG_MMF_MUXER=yes +CONFIG_MOV_MUXER=yes +CONFIG_MP2_MUXER=yes +CONFIG_MP3_MUXER=yes +CONFIG_MP4_MUXER=yes +CONFIG_MPEG1SYSTEM_MUXER=yes +CONFIG_MPEG1VCD_MUXER=yes +CONFIG_MPEG1VIDEO_MUXER=yes +CONFIG_MPEG2DVD_MUXER=yes +CONFIG_MPEG2SVCD_MUXER=yes +CONFIG_MPEG2VIDEO_MUXER=yes +CONFIG_MPEG2VOB_MUXER=yes +CONFIG_MPEGTS_MUXER=yes +CONFIG_MPJPEG_MUXER=yes +CONFIG_MXF_MUXER=yes +CONFIG_MXF_D10_MUXER=yes +CONFIG_NULL_MUXER=yes +CONFIG_NUT_MUXER=yes +CONFIG_OGG_MUXER=yes +CONFIG_OMA_MUXER=yes +CONFIG_PCM_ALAW_MUXER=yes +CONFIG_PCM_MULAW_MUXER=yes +CONFIG_PCM_F64BE_MUXER=yes +CONFIG_PCM_F64LE_MUXER=yes +CONFIG_PCM_F32BE_MUXER=yes +CONFIG_PCM_F32LE_MUXER=yes +CONFIG_PCM_S32BE_MUXER=yes +CONFIG_PCM_S32LE_MUXER=yes +CONFIG_PCM_S24BE_MUXER=yes +CONFIG_PCM_S24LE_MUXER=yes +CONFIG_PCM_S16BE_MUXER=yes +CONFIG_PCM_S16LE_MUXER=yes +CONFIG_PCM_S8_MUXER=yes +CONFIG_PCM_U32BE_MUXER=yes +CONFIG_PCM_U32LE_MUXER=yes +CONFIG_PCM_U24BE_MUXER=yes +CONFIG_PCM_U24LE_MUXER=yes +CONFIG_PCM_U16BE_MUXER=yes +CONFIG_PCM_U16LE_MUXER=yes +CONFIG_PCM_U8_MUXER=yes +CONFIG_PSP_MUXER=yes +CONFIG_RAWVIDEO_MUXER=yes +CONFIG_RM_MUXER=yes +CONFIG_ROQ_MUXER=yes +CONFIG_RSO_MUXER=yes +CONFIG_RTP_MUXER=yes +CONFIG_RTSP_MUXER=yes +CONFIG_SAP_MUXER=yes +CONFIG_SEGMENT_MUXER=yes +CONFIG_STREAM_SEGMENT_MUXER=yes +CONFIG_SMJPEG_MUXER=yes +CONFIG_SMOOTHSTREAMING_MUXER=yes +CONFIG_SOX_MUXER=yes +CONFIG_SPDIF_MUXER=yes +CONFIG_SRT_MUXER=yes +CONFIG_SWF_MUXER=yes +CONFIG_TEE_MUXER=yes +CONFIG_TG2_MUXER=yes +CONFIG_TGP_MUXER=yes +CONFIG_MKVTIMESTAMP_V2_MUXER=yes +CONFIG_TRUEHD_MUXER=yes +CONFIG_VC1_MUXER=yes +CONFIG_VC1T_MUXER=yes +CONFIG_VOC_MUXER=yes +CONFIG_W64_MUXER=yes +CONFIG_WAV_MUXER=yes +CONFIG_WEBM_MUXER=yes +CONFIG_WTV_MUXER=yes +CONFIG_WV_MUXER=yes +CONFIG_YUV4MPEGPIPE_MUXER=yes +!CONFIG_LIBNUT_MUXER=yes +!CONFIG_ALSA_OUTDEV=yes +!CONFIG_CACA_OUTDEV=yes +CONFIG_OSS_OUTDEV=yes +!CONFIG_SDL_OUTDEV=yes +!CONFIG_SNDIO_OUTDEV=yes +CONFIG_AAC_PARSER=yes +CONFIG_AAC_LATM_PARSER=yes +CONFIG_AC3_PARSER=yes +CONFIG_ADX_PARSER=yes +CONFIG_BMP_PARSER=yes +CONFIG_CAVSVIDEO_PARSER=yes +CONFIG_COOK_PARSER=yes +CONFIG_DCA_PARSER=yes +CONFIG_DIRAC_PARSER=yes +CONFIG_DNXHD_PARSER=yes +CONFIG_DVBSUB_PARSER=yes +CONFIG_DVDSUB_PARSER=yes +CONFIG_DVD_NAV_PARSER=yes +CONFIG_FLAC_PARSER=yes +CONFIG_GSM_PARSER=yes +CONFIG_H261_PARSER=yes +CONFIG_H263_PARSER=yes +CONFIG_H264_PARSER=yes +CONFIG_MJPEG_PARSER=yes +CONFIG_MLP_PARSER=yes +CONFIG_MPEG4VIDEO_PARSER=yes +CONFIG_MPEGAUDIO_PARSER=yes +CONFIG_MPEGVIDEO_PARSER=yes +CONFIG_PNG_PARSER=yes +CONFIG_PNM_PARSER=yes +CONFIG_RV30_PARSER=yes +CONFIG_RV40_PARSER=yes +CONFIG_TAK_PARSER=yes +CONFIG_VC1_PARSER=yes +CONFIG_VORBIS_PARSER=yes +CONFIG_VP3_PARSER=yes +CONFIG_VP8_PARSER=yes +!CONFIG_BLURAY_PROTOCOL=yes +CONFIG_CACHE_PROTOCOL=yes +CONFIG_CONCAT_PROTOCOL=yes +CONFIG_CRYPTO_PROTOCOL=yes +CONFIG_DATA_PROTOCOL=yes +!CONFIG_FFRTMPCRYPT_PROTOCOL=yes +CONFIG_FFRTMPHTTP_PROTOCOL=yes +CONFIG_FILE_PROTOCOL=yes +CONFIG_GOPHER_PROTOCOL=yes +CONFIG_HLS_PROTOCOL=yes +CONFIG_HTTP_PROTOCOL=yes +CONFIG_HTTPPROXY_PROTOCOL=yes +!CONFIG_HTTPS_PROTOCOL=yes +CONFIG_MMSH_PROTOCOL=yes +CONFIG_MMST_PROTOCOL=yes +CONFIG_MD5_PROTOCOL=yes +CONFIG_PIPE_PROTOCOL=yes +CONFIG_RTMP_PROTOCOL=yes +!CONFIG_RTMPE_PROTOCOL=yes +!CONFIG_RTMPS_PROTOCOL=yes +CONFIG_RTMPT_PROTOCOL=yes +!CONFIG_RTMPTE_PROTOCOL=yes +!CONFIG_RTMPTS_PROTOCOL=yes +CONFIG_RTP_PROTOCOL=yes +!CONFIG_SCTP_PROTOCOL=yes +CONFIG_SRTP_PROTOCOL=yes +CONFIG_TCP_PROTOCOL=yes +!CONFIG_TLS_PROTOCOL=yes +CONFIG_UDP_PROTOCOL=yes +!CONFIG_LIBRTMP_PROTOCOL=yes +!CONFIG_LIBRTMPE_PROTOCOL=yes +!CONFIG_LIBRTMPS_PROTOCOL=yes +!CONFIG_LIBRTMPT_PROTOCOL=yes +!CONFIG_LIBRTMPTE_PROTOCOL=yes +endif # FFMPEG_CONFIG_MAK diff --git a/ffmpeg/configure b/ffmpeg/configure new file mode 100755 index 0000000..ba83376 --- /dev/null +++ b/ffmpeg/configure @@ -0,0 +1,4667 @@ +#!/bin/sh +# +# FFmpeg configure script +# +# Copyright (c) 2000-2002 Fabrice Bellard +# Copyright (c) 2005-2008 Diego Biurrun +# Copyright (c) 2005-2008 Mans Rullgard +# + +# Prevent locale nonsense from breaking basic text processing. +LC_ALL=C +export LC_ALL + +# make sure we are running under a compatible shell +# try to make this part work with most shells + +try_exec(){ + echo "Trying shell $1" + type "$1" > /dev/null 2>&1 && exec "$@" +} + +unset foo +(: ${foo%%bar}) 2> /dev/null +E1="$?" + +(: ${foo?}) 2> /dev/null +E2="$?" + +if test "$E1" != 0 || test "$E2" = 0; then + echo "Broken shell detected. Trying alternatives." + export FF_CONF_EXEC + if test "0$FF_CONF_EXEC" -lt 1; then + FF_CONF_EXEC=1 + try_exec bash "$0" "$@" + fi + if test "0$FF_CONF_EXEC" -lt 2; then + FF_CONF_EXEC=2 + try_exec ksh "$0" "$@" + fi + if test "0$FF_CONF_EXEC" -lt 3; then + FF_CONF_EXEC=3 + try_exec /usr/xpg4/bin/sh "$0" "$@" + fi + echo "No compatible shell script interpreter found." + echo "This configure script requires a POSIX-compatible shell" + echo "such as bash or ksh." + echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH." + echo "Instead, install a working POSIX-compatible shell." + echo "Disabling this configure test will create a broken FFmpeg." + if test "$BASH_VERSION" = '2.04.0(1)-release'; then + echo "This bash version ($BASH_VERSION) is broken on your platform." + echo "Upgrade to a later version if available." + fi + exit 1 +fi + +test -d /usr/xpg4/bin && PATH=/usr/xpg4/bin:$PATH + +show_help(){ + cat <> $logfile +} + +log_file(){ + log BEGIN $1 + pr -n -t $1 >> $logfile + log END $1 +} + +echolog(){ + log "$@" + echo "$@" +} + +warn(){ + log "WARNING: $*" + WARNINGS="${WARNINGS}WARNING: $*\n" +} + +die(){ + echolog "$@" + cat <>file; + } else if (file ~ /\\.asm\$/) { + printf(\"%%define %s %d\\n\", c, v) >>file; + } else if (file ~ /\\.mak\$/) { + n = -v ? \"\" : \"!\"; + printf(\"%s%s=yes\\n\", n, c) >>file; + } + } + }" +} + +print_enabled(){ + suf=$1 + shift + for v; do + enabled $v && printf "%s\n" ${v%$suf}; + done +} + +append(){ + var=$1 + shift + eval "$var=\"\$$var $*\"" +} + +prepend(){ + var=$1 + shift + eval "$var=\"$* \$$var\"" +} + +add_cppflags(){ + append CPPFLAGS "$@" +} + +add_cflags(){ + append CFLAGS $($cflags_filter "$@") +} + +add_cxxflags(){ + append CXXFLAGS $($cflags_filter "$@") +} + +add_asflags(){ + append ASFLAGS $($asflags_filter "$@") +} + +add_ldflags(){ + append LDFLAGS $($ldflags_filter "$@") +} + +add_extralibs(){ + prepend extralibs $($ldflags_filter "$@") +} + +add_host_cppflags(){ + append host_cppflags "$@" +} + +add_host_cflags(){ + append host_cflags $($host_cflags_filter "$@") +} + +add_host_ldflags(){ + append host_ldflags $($host_ldflags_filter "$@") +} + +add_compat(){ + append compat_objs $1 + shift + map 'add_cppflags -D$v' "$@" +} + +check_cmd(){ + log "$@" + "$@" >> $logfile 2>&1 +} + +cc_o(){ + eval printf '%s\\n' $CC_O +} + +cc_e(){ + eval printf '%s\\n' $CC_E +} + +check_cc(){ + log check_cc "$@" + cat > $TMPC + log_file $TMPC + check_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC +} + +check_cxx(){ + log check_cxx "$@" + cat > $TMPCPP + log_file $TMPCPP + check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP +} + +check_cpp(){ + log check_cpp "$@" + cat > $TMPC + log_file $TMPC + check_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC +} + +as_o(){ + eval printf '%s\\n' $AS_O +} + +check_as(){ + log check_as "$@" + cat > $TMPS + log_file $TMPS + check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS +} + +check_inline_asm(){ + log check_inline_asm "$@" + name="$1" + code="$2" + shift 2 + disable $name + check_cc "$@" < $TMPS + log_file $TMPS + shift 1 + check_cmd $yasmexe $YASMFLAGS -Werror "$@" -o $TMPO $TMPS +} + +ld_o(){ + eval printf '%s\\n' $LD_O +} + +check_ld(){ + log check_ld "$@" + type=$1 + shift 1 + flags=$(filter_out '-l*|*.so' $@) + libs=$(filter '-l*|*.so' $@) + check_$type $($cflags_filter $flags) || return + flags=$($ldflags_filter $flags) + libs=$($ldflags_filter $libs) + check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs +} + +check_code(){ + log check_code "$@" + check=$1 + headers=$2 + code=$3 + shift 3 + { + for hdr in $headers; do + echo "#include <$hdr>" + done + echo "int main(void) { $code; return 0; }" + } | check_$check "$@" +} + +check_cppflags(){ + log check_cppflags "$@" + check_cc "$@" < +int x; +EOF +} + +check_func(){ + log check_func "$@" + func=$1 + shift + disable $func + check_ld "cc" "$@" < +float foo(float f, float g) { return $func($args); } +int main(void){ return (int) foo; } +EOF +} + +check_func_headers(){ + log check_func_headers "$@" + headers=$1 + funcs=$2 + shift 2 + { + for hdr in $headers; do + echo "#include <$hdr>" + done + for func in $funcs; do + echo "long check_$func(void) { return (long) $func; }" + done + echo "int main(void) { return 0; }" + } | check_ld "cc" "$@" && enable $funcs && enable_safe $headers +} + +check_class_headers_cpp(){ + log check_class_headers_cpp "$@" + headers=$1 + classes=$2 + shift 2 + { + for hdr in $headers; do + echo "#include <$hdr>" + done + echo "int main(void) { " + i=1 + for class in $classes; do + echo "$class obj$i;" + i=$(expr $i + 1) + done + echo "return 0; }" + } | check_ld "cxx" "$@" && enable $funcs && enable_safe $headers +} + +check_cpp_condition(){ + log check_cpp_condition "$@" + header=$1 + condition=$2 + shift 2 + check_cpp "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_lib(){ + log check_lib "$@" + header="$1" + func="$2" + shift 2 + check_header $header && check_func $func "$@" && add_extralibs "$@" +} + +check_lib2(){ + log check_lib2 "$@" + headers="$1" + funcs="$2" + shift 2 + check_func_headers "$headers" "$funcs" "$@" && add_extralibs "$@" +} + +check_lib_cpp(){ + log check_lib_cpp "$@" + headers="$1" + classes="$2" + shift 2 + check_class_headers_cpp "$headers" "$classes" "$@" && add_extralibs "$@" +} + +check_pkg_config(){ + log check_pkg_config "$@" + pkg="$1" + headers="$2" + funcs="$3" + shift 3 + $pkg_config --exists $pkg 2>/dev/null || return + pkg_cflags=$($pkg_config --cflags $pkg) + pkg_libs=$($pkg_config --libs $pkg) + check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && + set_safe ${pkg}_cflags $pkg_cflags && + set_safe ${pkg}_libs $pkg_libs +} + +check_exec(){ + check_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; } +} + +check_exec_crash(){ + code=$(cat) + + # exit() is not async signal safe. _Exit (C99) and _exit (POSIX) + # are safe but may not be available everywhere. Thus we use + # raise(SIGTERM) instead. The check is run in a subshell so we + # can redirect the "Terminated" message from the shell. SIGBUS + # is not defined by standard C so it is used conditionally. + + (check_exec "$@") >> $logfile 2>&1 < +static void sighandler(int sig){ + raise(SIGTERM); +} +int func(void){ + $code +} +int (*func_ptr)(void) = func; +int main(void){ + signal(SIGILL, sighandler); + signal(SIGFPE, sighandler); + signal(SIGSEGV, sighandler); +#ifdef SIGBUS + signal(SIGBUS, sighandler); +#endif + return func_ptr(); +} +EOF +} + +check_type(){ + log check_type "$@" + headers=$1 + type=$2 + shift 2 + disable_safe "$type" + check_code cc "$headers" "$type v" "$@" && enable_safe "$type" +} + +check_struct(){ + log check_struct "$@" + headers=$1 + struct=$2 + member=$3 + shift 3 + disable_safe "${struct}_${member}" + check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" && + enable_safe "${struct}_${member}" +} + +check_builtin(){ + log check_builtin "$@" + name=$1 + headers=$2 + builtin=$3 + shift 3 + disable "$name" + check_code ld "$headers" "$builtin" "cc" "$@" && enable "$name" +} + +require(){ + name="$1" + header="$2" + func="$3" + shift 3 + check_lib $header $func "$@" || die "ERROR: $name not found" +} + +require2(){ + name="$1" + headers="$2" + func="$3" + shift 3 + check_lib2 "$headers" $func "$@" || die "ERROR: $name not found" +} + +require_cpp(){ + name="$1" + headers="$2" + classes="$3" + shift 3 + check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found" +} + +require_pkg_config(){ + pkg="$1" + check_pkg_config "$@" || die "ERROR: $pkg not found" + add_cflags $(get_safe ${pkg}_cflags) + add_extralibs $(get_safe ${pkg}_libs) +} + +hostcc_o(){ + eval printf '%s\\n' $HOSTCC_O +} + +check_host_cc(){ + log check_host_cc "$@" + cat > $TMPC + log_file $TMPC + check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC +} + +check_host_cppflags(){ + log check_host_cppflags "$@" + check_host_cc "$@" < "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp" +} + +cp_if_changed(){ + cmp -s "$1" "$2" && echo "$2 is unchanged" && return + mkdir -p "$(dirname $2)" + $cp_f "$1" "$2" +} + +# CONFIG_LIST contains configurable options, while HAVE_LIST is for +# system-dependent things. + +COMPONENT_LIST=" + bsfs + decoders + demuxers + encoders + filters + hwaccels + indevs + muxers + outdevs + parsers + protocols +" + +EXTERNAL_LIBRARY_LIST=" + avisynth + bzlib + crystalhd + fontconfig + frei0r + gnutls + iconv + libaacplus + libass + libbluray + libcaca + libcdio + libcelt + libdc1394 + libfaac + libfdk_aac + libflite + libfreetype + libgsm + libiec61883 + libilbc + libmodplug + libmp3lame + libnut + libopencore_amrnb + libopencore_amrwb + libopencv + libopenjpeg + libopus + libpulse + librtmp + libschroedinger + libsoxr + libspeex + libstagefright_h264 + libtheora + libtwolame + libutvideo + libv4l2 + libvo_aacenc + libvo_amrwbenc + libvorbis + libvpx + libx264 + libxavs + libxvid + openal + openssl + x11grab + zlib +" + +DOCUMENT_LIST=" + doc + htmlpages + manpages + podpages + txtpages +" + +HWACCEL_LIST=" + dxva2 + vaapi + vda + vdpau +" + +LIBRARY_LIST=" + avcodec + avdevice + avfilter + avformat + avresample + avutil + postproc + swresample + swscale +" + +PROGRAM_LIST=" + ffplay + ffprobe + ffserver + ffmpeg +" + +CONFIG_LIST=" + $COMPONENT_LIST + $DOCUMENT_LIST + $EXTERNAL_LIBRARY_LIST + $HWACCEL_LIST + $LIBRARY_LIST + $PROGRAM_LIST + dct + dwt + fast_unaligned + fft + ftrapv + gpl + gray + hardcoded_tables + incompatible_fork_abi + lsp + lzo + mdct + memalign_hack + memory_poisoning + network + nonfree + pic + rdft + runtime_cpudetect + safe_bitstream_reader + shared + small + sram + static + swscale_alpha + thumb + version3 + xmm_clobber_test +" + +THREADS_LIST=' + pthreads + w32threads + os2threads +' + +ARCH_LIST=' + aarch64 + alpha + arm + avr32 + avr32_ap + avr32_uc + bfin + ia64 + m68k + mips + mips64 + parisc + ppc + ppc64 + s390 + sh4 + sparc + sparc64 + tilegx + tilepro + tomi + x86 + x86_32 + x86_64 +' + +ARCH_EXT_LIST_ARM=' + armv5te + armv6 + armv6t2 + neon + vfp + vfpv3 +' + +ARCH_EXT_LIST_X86=' + amd3dnow + amd3dnowext + avx + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 +' + +ARCH_EXT_LIST=" + $ARCH_EXT_LIST_ARM + $ARCH_EXT_LIST_X86 + altivec + ppc4xx + vis + mipsfpu + mips32r2 + mipsdspr1 + mipsdspr2 +" + +HAVE_LIST_CMDLINE=' + inline_asm + symver + yasm +' + +HAVE_LIST_PUB=' + bigendian + fast_unaligned + incompatible_fork_abi +' + +MATH_FUNCS=" + atanf + atan2f + cbrt + cbrtf + cosf + exp2 + exp2f + expf + isinf + isnan + ldexpf + llrint + llrintf + log2 + log2f + log10f + lrint + lrintf + powf + rint + round + roundf + sinf + trunc + truncf +" + +HAVE_LIST=" + $ARCH_EXT_LIST + $(add_suffix _external $ARCH_EXT_LIST) + $(add_suffix _inline $ARCH_EXT_LIST) + $HAVE_LIST_CMDLINE + $HAVE_LIST_PUB + $THREADS_LIST + $MATH_FUNCS + access + aligned_malloc + aligned_stack + alsa_asoundlib_h + altivec_h + arpa_inet_h + asm_mod_q + asm_mod_y + asm_types_h + attribute_may_alias + attribute_packed + cdio_paranoia_h + cdio_paranoia_paranoia_h + clock_gettime + closesocket + cmov + CommandLineToArgvW + cpunop + CryptGenRandom + dcbzl + dev_bktr_ioctl_bt848_h + dev_bktr_ioctl_meteor_h + dev_ic_bt8xx_h + dev_video_bktr_ioctl_bt848_h + dev_video_meteor_ioctl_meteor_h + direct_h + dlfcn_h + dlopen + dos_paths + dxva_h + ebp_available + ebx_available + fast_64bit + fast_clz + fast_cmov + fcntl + fork + getaddrinfo + gethrtime + getopt + GetProcessAffinityMask + GetProcessMemoryInfo + GetProcessTimes + GetSystemTimeAsFileTime + getrusage + getservbyport + gettimeofday + glob + gnu_as + gsm_h + ibm_asm + inet_aton + io_h + isatty + jack_port_get_latency_range + kbhit + ldbrx + libdc1394_1 + libdc1394_2 + local_aligned_16 + local_aligned_8 + localtime_r + loongson + lzo1x_999_compress + machine_ioctl_bt848_h + machine_ioctl_meteor_h + machine_rw_barrier + makeinfo + malloc_h + MapViewOfFile + memalign + MemoryBarrier + mkstemp + mm_empty + mmap + mprotect + msvcrt + nanosleep + openjpeg_1_5_openjpeg_h + PeekNamedPipe + perl + pod2man + poll_h + posix_memalign + pthread_cancel + rdtsc + rsync_contimeout + sched_getaffinity + sdl + SetConsoleTextAttribute + setmode + setrlimit + Sleep + sndio_h + socklen_t + soundcard_h + strerror_r + struct_addrinfo + struct_group_source_req + struct_ip_mreq_source + struct_ipv6_mreq + struct_pollfd + struct_rusage_ru_maxrss + struct_sctp_event_subscribe + struct_sockaddr_in6 + struct_sockaddr_sa_len + struct_sockaddr_storage + struct_v4l2_frmivalenum_discrete + symver_asm_label + symver_gnu_asm + sync_val_compare_and_swap + sysconf + sysctl + sys_mman_h + sys_param_h + sys_resource_h + sys_select_h + sys_soundcard_h + sys_time_h + sys_videoio_h + termios_h + texi2html + threads + unistd_h + usleep + vfp_args + VirtualAlloc + windows_h + winsock2_h + xform_asm + xmm_clobbers +" + +# options emitted with CONFIG_ prefix but not available on the command line +CONFIG_EXTRA=" + aandcttables + ac3dsp + audio_frame_queue + dsputil + error_resilience + frame_thread_encoder + gcrypt + golomb + gplv3 + h264chroma + h264dsp + h264pred + h264qpel + hpeldsp + huffman + lgplv3 + lpc + mpegaudio + mpegaudiodsp + mpegvideo + mpegvideoenc + nettle + rangecoder + rtpdec + rtpenc_chain + sinewin + videodsp + vp3dsp +" + +CMDLINE_SELECT=" + $ARCH_EXT_LIST + $CONFIG_LIST + $HAVE_LIST_CMDLINE + $THREADS_LIST + asm + coverage + cross_compile + debug + extra_warnings + logging + lto + optimizations + stripping +" + +PATHS_LIST=' + bindir + datadir + incdir + libdir + mandir + prefix + shlibdir +' + +CMDLINE_SET=" + $PATHS_LIST + ar + arch + as + assert_level + build_suffix + cc + cpu + cross_prefix + cxx + dep_cc + extra_version + host_cc + host_cflags + host_ld + host_ldflags + host_libs + host_os + install + ld + logfile + malloc_prefix + nm + optflags + pkg_config + progs_suffix + random_seed + samples + strip + sysinclude + sysroot + target_exec + target_os + target_path + toolchain + valgrind + yasmexe +" + +CMDLINE_APPEND=" + extra_cflags + extra_cxxflags + host_cppflags +" + +# code dependency declarations + +# architecture extensions + +armv5te_deps="arm" +armv6_deps="arm" +armv6t2_deps="arm" +neon_deps="arm" +vfp_deps="arm" +vfpv3_deps="vfp" + +map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM + +mipsfpu_deps="mips" +mips32r2_deps="mips" +mipsdspr1_deps="mips" +mipsdspr2_deps="mips" + +altivec_deps="ppc" +ppc4xx_deps="ppc" + +vis_deps="sparc" + +x86_64_suggest="cmov fast_cmov" + +amd3dnow_deps="mmx" +amd3dnowext_deps="amd3dnow" +mmx_deps="x86" +mmxext_deps="mmx" +sse_deps="mmxext" +sse2_deps="sse" +sse3_deps="sse2" +ssse3_deps="sse3" +sse4_deps="ssse3" +sse42_deps="sse4" +avx_deps="sse42" +fma4_deps="avx" + +mmx_external_deps="yasm" +mmx_inline_deps="inline_asm" +mmx_suggest="mmx_external mmx_inline" + +for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do + eval dep=\$${ext}_deps + eval ${ext}_external_deps='"${dep}_external"' + eval ${ext}_inline_deps='"${dep}_inline"' + eval ${ext}_suggest='"${ext}_external ${ext}_inline"' +done + +aligned_stack_if_any="ppc x86" +fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +fast_clz_if_any="alpha avr32 mips ppc x86" +fast_unaligned_if_any="ppc x86" + +inline_asm_deps="!tms470" +need_memalign="altivec neon sse" + +symver_if_any="symver_asm_label symver_gnu_asm" + +log2_deps="!msvcrt" + +# subsystems +dct_select="rdft" +error_resilience_select="dsputil" +frame_thread_encoder_deps="encoders threads" +mdct_select="fft" +rdft_select="fft" +mpegaudio_select="mpegaudiodsp" +mpegaudiodsp_select="dct" +mpegvideo_select="dsputil error_resilience h264chroma hpeldsp videodsp" +mpegvideoenc_select="mpegvideo" + +# decoders / encoders +aac_decoder_select="mdct sinewin" +aac_encoder_select="audio_frame_queue mdct sinewin" +aac_latm_decoder_select="aac_decoder aac_latm_parser" +ac3_decoder_select="mdct ac3dsp ac3_parser dsputil" +ac3_encoder_select="mdct ac3dsp dsputil" +ac3_fixed_encoder_select="mdct ac3dsp dsputil" +alac_encoder_select="lpc" +als_decoder_select="dsputil" +amrnb_decoder_select="lsp" +amrwb_decoder_select="lsp" +amv_encoder_select="aandcttables" +ape_decoder_select="dsputil" +asv_decoder_select="dsputil" +atrac1_decoder_select="mdct sinewin" +atrac3_decoder_select="mdct" +bink_decoder_select="dsputil hpeldsp" +binkaudio_dct_decoder_select="mdct rdft dct sinewin" +binkaudio_rdft_decoder_select="mdct rdft sinewin" +cavs_decoder_select="dsputil golomb h264chroma mpegvideo videodsp" +cllc_decoder_select="dsputil" +comfortnoise_encoder_select="lpc" +cook_decoder_select="dsputil mdct sinewin" +cscd_decoder_select="lzo" +cscd_decoder_suggest="zlib" +dca_decoder_select="mdct" +dirac_decoder_select="dsputil dwt golomb videodsp" +dnxhd_decoder_select="dsputil" +dnxhd_encoder_select="aandcttables dsputil mpegvideoenc" +dv_decoder_select="dsputil" +dxa_decoder_select="zlib" +eac3_decoder_select="ac3_decoder" +eac3_encoder_select="ac3_encoder" +eamad_decoder_select="aandcttables dsputil mpegvideo" +eatgq_decoder_select="aandcttables" +eatqi_decoder_select="aandcttables mpegvideo" +exr_decoder_select="zlib" +ffv1_decoder_select="dsputil golomb rangecoder" +ffv1_encoder_select="rangecoder" +ffvhuff_encoder_select="huffman" +flac_decoder_select="golomb" +flac_encoder_select="dsputil golomb lpc" +flashsv_decoder_select="zlib" +flashsv_encoder_select="zlib" +flashsv2_encoder_select="zlib" +flashsv2_decoder_select="zlib" +flv_decoder_select="h263_decoder" +flv_encoder_select="h263_encoder" +fourxm_decoder_select="dsputil" +fraps_decoder_select="dsputil huffman" +g729_decoder_select="dsputil" +h261_decoder_select="error_resilience mpegvideo" +h261_encoder_select="aandcttables mpegvideoenc" +h263_decoder_select="error_resilience h263_parser mpegvideo" +h263_encoder_select="aandcttables mpegvideoenc" +h263i_decoder_select="h263_decoder" +h263p_encoder_select="h263_encoder" +h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp" +huffyuv_decoder_select="dsputil" +huffyuv_encoder_select="huffman" +iac_decoder_select="fft mdct sinewin" +imc_decoder_select="dsputil fft mdct sinewin" +indeo3_decoder_select="hpeldsp" +interplay_video_decoder_select="hpeldsp" +jpegls_decoder_select="golomb" +jpegls_encoder_select="golomb" +jv_decoder_select="dsputil" +lagarith_decoder_select="dsputil" +ljpeg_encoder_select="aandcttables mpegvideoenc" +loco_decoder_select="golomb" +mdec_decoder_select="dsputil error_resilience mpegvideo" +mimic_decoder_select="dsputil hpeldsp" +mjpeg_decoder_select="dsputil hpeldsp" +mjpeg_encoder_select="aandcttables dsputil mpegvideoenc" +mlp_decoder_select="dsputil mlp_parser" +motionpixels_decoder_select="dsputil" +mp1_decoder_select="mpegaudio" +mp1float_decoder_select="mpegaudio" +mp2_decoder_select="mpegaudio" +mp2float_decoder_select="mpegaudio" +mp3_decoder_select="mpegaudio" +mp3adu_decoder_select="mpegaudio" +mp3adufloat_decoder_select="mpegaudio" +mp3float_decoder_select="mpegaudio" +mp3on4_decoder_select="mpegaudio" +mp3on4float_decoder_select="mpegaudio" +mpc7_decoder_select="dsputil mpegaudiodsp" +mpc8_decoder_select="dsputil mpegaudiodsp" +mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" +mpeg_xvmc_decoder_select="mpegvideo_decoder" +mpeg1video_decoder_select="error_resilience mpegvideo" +mpeg1video_encoder_select="aandcttables mpegvideoenc" +mpeg2video_decoder_select="error_resilience mpegvideo" +mpeg2video_encoder_select="aandcttables mpegvideoenc" +mpeg4_decoder_select="h263_decoder mpeg4video_parser" +mpeg4_encoder_select="h263_encoder" +msmpeg4v1_decoder_select="h263_decoder" +msmpeg4v1_encoder_select="h263_encoder" +msmpeg4v2_decoder_select="h263_decoder" +msmpeg4v2_encoder_select="h263_encoder" +msmpeg4v3_decoder_select="h263_decoder" +msmpeg4v3_encoder_select="h263_encoder" +mss2_decoder_select="error_resilience vc1_decoder" +nellymoser_decoder_select="mdct sinewin" +nellymoser_encoder_select="audio_frame_queue mdct sinewin" +nuv_decoder_select="dsputil lzo" +png_decoder_select="zlib" +png_encoder_select="dsputil zlib" +prores_decoder_select="dsputil" +qcelp_decoder_select="lsp" +qdm2_decoder_select="mdct rdft mpegaudiodsp" +ra_144_encoder_select="audio_frame_queue lpc" +ralf_decoder_select="golomb" +rtjpeg_decoder_select="dsputil" +rv10_decoder_select="error_resilience h263_decoder" +rv10_encoder_select="h263_encoder" +rv20_decoder_select="error_resilience h263_decoder" +rv20_encoder_select="h263_encoder" +rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" +rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" +shorten_decoder_select="golomb" +sipr_decoder_select="lsp" +snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder" +snow_encoder_select="aandcttables dsputil dwt h264qpel hpeldsp error_resilience mpegvideoenc rangecoder" +sonic_decoder_select="golomb" +sonic_encoder_select="golomb" +sonic_ls_encoder_select="golomb" +svq1_decoder_select="hpeldsp" +svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc" +svq3_decoder_select="dsputil error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp" +svq3_decoder_suggest="zlib" +tak_decoder_select="dsputil" +theora_decoder_select="vp3_decoder" +tiff_decoder_suggest="zlib" +tiff_encoder_suggest="zlib" +truehd_decoder_select="mlp_parser" +truemotion2_decoder_select="dsputil" +tscc_decoder_select="zlib" +twinvq_decoder_select="mdct lsp sinewin" +utvideo_decoder_select="dsputil" +utvideo_encoder_select="huffman" +vble_decoder_select="dsputil" +vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel" +vc1image_decoder_select="vc1_decoder" +vorbis_decoder_select="mdct" +vorbis_encoder_select="mdct" +vp3_decoder_select="hpeldsp vp3dsp videodsp" +vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp" +vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp" +vp6a_decoder_select="vp6_decoder" +vp6f_decoder_select="vp6_decoder" +vp8_decoder_select="h264pred videodsp" +wmapro_decoder_select="mdct sinewin" +wmav1_decoder_select="mdct sinewin" +wmav1_encoder_select="mdct sinewin" +wmav2_decoder_select="mdct sinewin" +wmav2_encoder_select="mdct sinewin" +wmavoice_decoder_select="lsp rdft dct mdct sinewin" +wmv1_decoder_select="h263_decoder" +wmv1_encoder_select="h263_encoder" +wmv2_decoder_select="h263_decoder videodsp" +wmv2_encoder_select="h263_encoder" +wmv3_decoder_select="vc1_decoder" +wmv3image_decoder_select="wmv3_decoder" +zerocodec_decoder_select="zlib" +zlib_decoder_select="zlib" +zlib_encoder_select="zlib" +zmbv_decoder_select="zlib" +zmbv_encoder_select="zlib" + +# hardware accelerators +crystalhd_deps="libcrystalhd_libcrystalhd_if_h" +dxva2_deps="dxva2api_h" +vaapi_deps="va_va_h" +vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" +vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore" +vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" + +h263_vaapi_hwaccel_deps="vaapi" +h263_vaapi_hwaccel_select="h263_decoder" +h263_vdpau_hwaccel_deps="vdpau" +h263_vdpau_hwaccel_select="h263_decoder" +h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" +h264_dxva2_hwaccel_deps="dxva2" +h264_dxva2_hwaccel_select="h264_decoder" +h264_vaapi_hwaccel_deps="vaapi" +h264_vaapi_hwaccel_select="h264_decoder" +h264_vda_decoder_deps="vda" +h264_vda_decoder_select="h264_decoder" +h264_vda_hwaccel_deps="vda" +h264_vda_hwaccel_select="h264_decoder" +h264_vdpau_decoder_deps="vdpau" +h264_vdpau_decoder_select="h264_decoder" +h264_vdpau_hwaccel_deps="vdpau" +h264_vdpau_hwaccel_select="h264_decoder" +mpeg_vdpau_decoder_deps="vdpau" +mpeg_vdpau_decoder_select="mpegvideo_decoder" +mpeg1_vdpau_decoder_deps="vdpau" +mpeg1_vdpau_decoder_select="mpeg1video_decoder" +mpeg1_vdpau_hwaccel_deps="vdpau" +mpeg1_vdpau_hwaccel_select="mpeg1video_decoder" +mpeg2_crystalhd_decoder_select="crystalhd" +mpeg2_dxva2_hwaccel_deps="dxva2" +mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" +mpeg2_vaapi_hwaccel_deps="vaapi" +mpeg2_vaapi_hwaccel_select="mpeg2video_decoder" +mpeg2_vdpau_hwaccel_deps="vdpau" +mpeg2_vdpau_hwaccel_select="mpeg2video_decoder" +mpeg4_crystalhd_decoder_select="crystalhd" +mpeg4_vaapi_hwaccel_deps="vaapi" +mpeg4_vaapi_hwaccel_select="mpeg4_decoder" +mpeg4_vdpau_decoder_deps="vdpau" +mpeg4_vdpau_decoder_select="mpeg4_decoder" +mpeg4_vdpau_hwaccel_deps="vdpau" +mpeg4_vdpau_hwaccel_select="mpeg4_decoder" +msmpeg4_crystalhd_decoder_select="crystalhd" +vc1_crystalhd_decoder_select="crystalhd" +vc1_dxva2_hwaccel_deps="dxva2" +vc1_dxva2_hwaccel_select="vc1_decoder" +vc1_vaapi_hwaccel_deps="vaapi" +vc1_vaapi_hwaccel_select="vc1_decoder" +vc1_vdpau_decoder_deps="vdpau" +vc1_vdpau_decoder_select="vc1_decoder" +vc1_vdpau_hwaccel_deps="vdpau" +vc1_vdpau_hwaccel_select="vc1_decoder" +wmv3_crystalhd_decoder_select="crystalhd" +wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" +wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" +wmv3_vdpau_decoder_select="vc1_vdpau_decoder" +wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" + +# parsers +h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp" +mpeg4video_parser_select="error_resilience mpegvideo" +mpegvideo_parser_select="error_resilience mpegvideo" +vc1_parser_select="mpegvideo" + +# external libraries +libaacplus_encoder_deps="libaacplus" +libcelt_decoder_deps="libcelt" +libfaac_encoder_deps="libfaac" +libfaac_encoder_select="audio_frame_queue" +libfdk_aac_encoder_deps="libfdk_aac" +libfdk_aac_encoder_select="audio_frame_queue" +libgsm_decoder_deps="libgsm" +libgsm_encoder_deps="libgsm" +libgsm_ms_decoder_deps="libgsm" +libgsm_ms_encoder_deps="libgsm" +libilbc_decoder_deps="libilbc" +libilbc_encoder_deps="libilbc" +libmodplug_demuxer_deps="libmodplug" +libmp3lame_encoder_deps="libmp3lame" +libmp3lame_encoder_select="audio_frame_queue" +libopencore_amrnb_decoder_deps="libopencore_amrnb" +libopencore_amrnb_encoder_deps="libopencore_amrnb" +libopencore_amrnb_encoder_select="audio_frame_queue" +libopencore_amrwb_decoder_deps="libopencore_amrwb" +libopenjpeg_decoder_deps="libopenjpeg" +libopenjpeg_encoder_deps="libopenjpeg" +libopus_decoder_deps="libopus" +libopus_encoder_deps="libopus" +libopus_encoder_select="audio_frame_queue" +libschroedinger_decoder_deps="libschroedinger" +libschroedinger_encoder_deps="libschroedinger" +libspeex_decoder_deps="libspeex" +libspeex_encoder_deps="libspeex" +libspeex_encoder_select="audio_frame_queue" +libstagefright_h264_decoder_deps="libstagefright_h264" +libtheora_encoder_deps="libtheora" +libtwolame_encoder_deps="libtwolame" +libvo_aacenc_encoder_deps="libvo_aacenc" +libvo_aacenc_encoder_select="audio_frame_queue" +libvo_amrwbenc_encoder_deps="libvo_amrwbenc" +libvorbis_decoder_deps="libvorbis" +libvorbis_encoder_deps="libvorbis" +libvorbis_encoder_select="audio_frame_queue" +libvpx_vp8_decoder_deps="libvpx" +libvpx_vp8_encoder_deps="libvpx" +libvpx_vp9_decoder_deps="libvpx" +libvpx_vp9_encoder_deps="libvpx" +libx264_encoder_deps="libx264" +libx264rgb_encoder_deps="libx264" +libxavs_encoder_deps="libxavs" +libxvid_encoder_deps="libxvid" +libutvideo_decoder_deps="libutvideo" +libutvideo_encoder_deps="libutvideo" + +# demuxers / muxers +ac3_demuxer_select="ac3_parser" +asf_stream_muxer_select="asf_muxer" +avisynth_demuxer_deps="avisynth" +dirac_demuxer_select="dirac_parser" +dts_demuxer_select="dca_parser" +dtshd_demuxer_select="dca_parser" +eac3_demuxer_select="ac3_parser" +f4v_muxer_select="mov_muxer" +flac_demuxer_select="flac_parser" +ipod_muxer_select="mov_muxer" +ismv_muxer_select="mov_muxer" +libnut_demuxer_deps="libnut" +libnut_muxer_deps="libnut" +matroska_audio_muxer_select="matroska_muxer" +matroska_demuxer_suggest="bzlib lzo zlib" +mov_demuxer_suggest="zlib" +mov_muxer_select="rtpenc_chain" +mp3_demuxer_select="mpegaudio_parser" +mp4_muxer_select="mov_muxer" +mpegts_muxer_select="adts_muxer latm_muxer mpegvideo" +mpegtsraw_demuxer_select="mpegts_demuxer" +mxf_d10_muxer_select="mxf_muxer" +ogg_demuxer_select="golomb" +psp_muxer_select="mov_muxer" +rtp_demuxer_select="sdp_demuxer" +rtp_muxer_select="mpegvideo" +rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer" +rtsp_demuxer_select="http_protocol rtpdec" +rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain" +sap_demuxer_select="sdp_demuxer" +sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain" +sdp_demuxer_select="rtpdec" +smoothstreaming_muxer_select="ismv_muxer" +spdif_muxer_select="aac_parser" +tak_demuxer_select="tak_parser" +tg2_muxer_select="mov_muxer" +tgp_muxer_select="mov_muxer" +vobsub_demuxer_select="mpegps_demuxer" +w64_demuxer_deps="wav_demuxer" +w64_muxer_deps="wav_muxer" + +# indevs / outdevs +alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" +alsa_outdev_deps="alsa_asoundlib_h" +bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" +caca_outdev_deps="libcaca" +dshow_indev_deps="IBaseFilter" +dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid" +dv1394_indev_deps="dv1394 dv_demuxer" +fbdev_indev_deps="linux_fb_h" +iec61883_indev_deps="libiec61883" +jack_indev_deps="jack_jack_h sem_timedwait" +lavfi_indev_deps="avfilter" +libcdio_indev_deps="libcdio" +libdc1394_indev_deps="libdc1394" +libv4l2_indev_deps="libv4l2" +openal_indev_deps="openal" +oss_indev_deps_any="soundcard_h sys_soundcard_h" +oss_outdev_deps_any="soundcard_h sys_soundcard_h" +pulse_indev_deps="libpulse" +sdl_outdev_deps="sdl" +sndio_indev_deps="sndio_h" +sndio_outdev_deps="sndio_h" +v4l_indev_deps="linux_videodev_h" +v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" +vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines" +vfwcap_indev_extralibs="-lavicap32" +x11grab_indev_deps="x11grab" + +# protocols +bluray_protocol_deps="libbluray" +ffrtmpcrypt_protocol_deps="!librtmp_protocol" +ffrtmpcrypt_protocol_deps_any="gcrypt nettle openssl" +ffrtmpcrypt_protocol_select="tcp_protocol" +ffrtmphttp_protocol_deps="!librtmp_protocol" +ffrtmphttp_protocol_select="http_protocol" +gopher_protocol_select="network" +httpproxy_protocol_select="tcp_protocol" +http_protocol_select="tcp_protocol" +https_protocol_select="tls_protocol" +librtmp_protocol_deps="librtmp" +librtmpe_protocol_deps="librtmp" +librtmps_protocol_deps="librtmp" +librtmpt_protocol_deps="librtmp" +librtmpte_protocol_deps="librtmp" +mmsh_protocol_select="http_protocol" +mmst_protocol_select="network" +rtmp_protocol_deps="!librtmp_protocol" +rtmp_protocol_select="tcp_protocol" +rtmpe_protocol_select="ffrtmpcrypt_protocol" +rtmps_protocol_deps="!librtmp_protocol" +rtmps_protocol_select="tls_protocol" +rtmpt_protocol_select="ffrtmphttp_protocol" +rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" +rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" +rtp_protocol_select="udp_protocol" +sctp_protocol_deps="struct_sctp_event_subscribe" +sctp_protocol_select="network" +srtp_protocol_select="rtp_protocol" +tcp_protocol_select="network" +tls_protocol_deps_any="openssl gnutls" +tls_protocol_select="tcp_protocol" +udp_protocol_select="network" + +# filters +aconvert_filter_deps="swresample" +amovie_filter_deps="avcodec avformat" +aresample_filter_deps="swresample" +ass_filter_deps="libass" +asyncts_filter_deps="avresample" +atempo_filter_deps="avcodec rdft" +blackframe_filter_deps="gpl" +boxblur_filter_deps="gpl" +colormatrix_filter_deps="gpl" +cropdetect_filter_deps="gpl" +decimate_filter_deps="gpl avcodec" +delogo_filter_deps="gpl" +deshake_filter_deps="avcodec" +drawtext_filter_deps="libfreetype" +ebur128_filter_deps="gpl" +flite_filter_deps="libflite" +frei0r_filter_deps="frei0r dlopen" +frei0r_filter_extralibs='$ldl' +frei0r_src_filter_deps="frei0r dlopen" +frei0r_src_filter_extralibs='$ldl' +geq_filter_deps="gpl" +histeq_filter_deps="gpl" +hqdn3d_filter_deps="gpl" +hue_filter_deps="gpl" +kerndeint_filter_deps="gpl" +movie_filter_deps="avcodec avformat" +mp_filter_deps="gpl avcodec swscale inline_asm" +mptestsrc_filter_deps="gpl" +negate_filter_deps="lut_filter" +noise_filter_deps="gpl" +resample_filter_deps="avresample" +ocv_filter_deps="libopencv" +pan_filter_deps="swresample" +pp_filter_deps="gpl postproc" +removelogo_filter_deps="avcodec avformat swscale" +scale_filter_deps="swscale" +smartblur_filter_deps="gpl swscale" +showspectrum_filter_deps="avcodec rdft" +stereo3d_filter_deps="gpl" +subtitles_filter_deps="avformat avcodec libass" +super2xsai_filter_deps="gpl" +tinterlace_filter_deps="gpl" +yadif_filter_deps="gpl" +pixfmts_super2xsai_test_deps="super2xsai_filter" +tinterlace_merge_test_deps="tinterlace_filter" +tinterlace_pad_test_deps="tinterlace_filter" + +# libraries +avcodec_deps="avutil" +avdevice_deps="avutil avcodec avformat" +avfilter_deps="avutil" +avformat_deps="avutil avcodec" +avresample_deps="avutil" +postproc_deps="avutil gpl" +swscale_deps="avutil" + +# programs +ffmpeg_deps="avcodec avfilter avformat swscale swresample" +ffmpeg_select="format_filter aformat_filter + setpts_filter null_filter anull_filter" +ffplay_deps="avcodec avformat swscale swresample sdl" +ffplay_select="rdft crop_filter" +ffprobe_deps="avcodec avformat" +ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer" +ffserver_extralibs='$ldl' + +# documentation +podpages_deps="perl" +manpages_deps="perl pod2man" +htmlpages_deps="texi2html" +txtpages_deps="makeinfo" +doc_deps_any="manpages htmlpages podpages txtpages" + +# default parameters + +logfile="config.log" + +# installation paths +prefix_default="/usr/local" +bindir_default='${prefix}/bin' +datadir_default='${prefix}/share/ffmpeg' +incdir_default='${prefix}/include' +libdir_default='${prefix}/lib' +mandir_default='${prefix}/share/man' +shlibdir_default="$libdir_default" + +# toolchain +ar_default="ar" +cc_default="gcc" +cxx_default="g++" +host_cc_default="gcc" +cp_f="cp -f" +install="install" +ln_s="ln -s -f" +nm_default="nm -g" +objformat="elf" +pkg_config_default=pkg-config +ranlib="ranlib" +strip_default="strip" +yasmexe_default="yasm" + +nogas=":" + +# machine +arch_default=$(uname -m) +cpu="generic" + +# OS +target_os_default=$(tolower $(uname -s)) +host_os=$target_os_default + +# configurable options +enable $PROGRAM_LIST +enable $DOCUMENT_LIST +enable $(filter_out avresample $LIBRARY_LIST) +enable stripping + +enable asm +enable debug +enable doc +enable optimizations +enable runtime_cpudetect +enable safe_bitstream_reader +enable static +enable swscale_alpha + +# build settings +SHFLAGS='-shared -Wl,-soname,$$(@F)' +FFSERVERLDFLAGS=-Wl,-E +LIBPREF="lib" +LIBSUF=".a" +FULLNAME='$(NAME)$(BUILDSUF)' +LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' +SLIBPREF="lib" +SLIBSUF=".so" +SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' +SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' +SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' +LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' +SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' +SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' + +asflags_filter=echo +cflags_filter=echo +ldflags_filter=echo + +AS_C='-c' +AS_O='-o $@' +CC_C='-c' +CC_E='-E -o $@' +CC_O='-o $@' +CXX_C='-c' +CXX_O='-o $@' +LD_O='-o $@' +LD_LIB='-l%' +LD_PATH='-L' +HOSTCC_C='-c' +HOSTCC_O='-o $@' +HOSTLD_O='-o $@' + +host_cflags='-O3 -g' +host_cppflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600' +host_libs='-lm' +host_cflags_filter=echo +host_ldflags_filter=echo + +target_path='$(CURDIR)' + +# since the object filename is not given with the -MM flag, the compiler +# is only able to print the basename, and we must add the path ourselves +DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)' +DEPFLAGS='-MM' + +# find source path +if test -f configure; then + source_path=. +else + source_path=$(cd $(dirname "$0"); pwd) + echo "$source_path" | grep -q '[[:blank:]]' && + die "Out of tree builds are impossible with whitespace in source path." + test -e "$source_path/config.h" && + die "Out of tree builds are impossible with config.h in source dir." +fi + +for v in "$@"; do + r=${v#*=} + l=${v%"$r"} + r=$(sh_quote "$r") + FFMPEG_CONFIGURATION="${FFMPEG_CONFIGURATION# } ${l}${r}" +done + +find_things(){ + thing=$1 + pattern=$2 + file=$source_path/$3 + sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file" +} + +ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c) +DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c) +HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c) +PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c) +BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c) +MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c) +DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c) +OUTDEV_LIST=$(find_things outdev OUTDEV libavdevice/alldevices.c) +INDEV_LIST=$(find_things indev _IN libavdevice/alldevices.c) +PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c) +FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) + +ALL_COMPONENTS=" + $BSF_LIST + $DECODER_LIST + $DEMUXER_LIST + $ENCODER_LIST + $FILTER_LIST + $HWACCEL_LIST + $INDEV_LIST + $MUXER_LIST + $OUTDEV_LIST + $PARSER_LIST + $PROTOCOL_LIST +" + +for n in $COMPONENT_LIST; do + v=$(toupper ${n%s})_LIST + eval enable \$$v + eval ${n}_if_any="\$$v" +done + +enable $ARCH_EXT_LIST + +die_unknown(){ + echo "Unknown option \"$1\"." + echo "See $0 --help for available options." + exit 1 +} + +print_3_columns() { + cat | tr ' ' '\n' | sort | pr -r -3 -t +} + +show_list() { + suffix=_$1 + shift + echo $* | sed s/$suffix//g | print_3_columns + exit 0 +} + +rand_list(){ + IFS=', ' + set -- $* + unset IFS + for thing; do + comp=${thing%:*} + prob=${thing#$comp} + prob=${prob#:} + is_in ${comp} $COMPONENT_LIST && eval comp=\$$(toupper ${comp%s})_LIST + echo "prob ${prob:-0.5}" + printf '%s\n' $comp + done +} + +do_random(){ + action=$1 + shift + random_seed=$(awk "BEGIN { srand($random_seed); print srand() }") + $action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }") +} + +for opt do + optval="${opt#*=}" + case "$opt" in + --extra-ldflags=*) + add_ldflags $optval + ;; + --extra-libs=*) + add_extralibs $optval + ;; + --disable-devices) + disable $INDEV_LIST $OUTDEV_LIST + ;; + --enable-debug=*) + debuglevel="$optval" + ;; + --disable-programs) + disable $PROGRAM_LIST + ;; + --disable-everything) + map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST + ;; + --disable-all) + map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST + disable $LIBRARY_LIST $PROGRAM_LIST doc + ;; + --enable-random|--disable-random) + action=${opt%%-random} + do_random ${action#--} $COMPONENT_LIST + ;; + --enable-random=*|--disable-random=*) + action=${opt%%-random=*} + do_random ${action#--} $optval + ;; + --enable-*=*|--disable-*=*) + eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/') + is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt" + eval list=\$$(toupper $thing)_LIST + name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing} + list=$(filter "$name" $list) + [ "$list" = "" ] && warn "Option $opt did not match anything" + $action $list + ;; + --enable-?*|--disable-?*) + eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') + if is_in $option $COMPONENT_LIST; then + test $action = disable && action=unset + eval $action \$$(toupper ${option%s})_LIST + elif is_in $option $CMDLINE_SELECT; then + $action $option + else + die_unknown $opt + fi + ;; + --list-*) + NAME="${opt#--list-}" + is_in $NAME $COMPONENT_LIST || die_unknown $opt + NAME=${NAME%s} + eval show_list $NAME \$$(toupper $NAME)_LIST + ;; + --help|-h) show_help + ;; + --fatal-warnings) enable fatal_warnings + ;; + *) + optname="${opt%%=*}" + optname="${optname#--}" + optname=$(echo "$optname" | sed 's/-/_/g') + if is_in $optname $CMDLINE_SET; then + eval $optname='$optval' + elif is_in $optname $CMDLINE_APPEND; then + append $optname "$optval" + else + die_unknown $opt + fi + ;; + esac +done + +disabled logging && logfile=/dev/null + +echo "# $0 $FFMPEG_CONFIGURATION" > $logfile +set >> $logfile + +test -n "$cross_prefix" && enable cross_compile + +if enabled cross_compile; then + test -n "$arch" && test -n "$target_os" || + die "Must specify target arch and OS when cross-compiling" +fi + +ar_default="${cross_prefix}${ar_default}" +cc_default="${cross_prefix}${cc_default}" +cxx_default="${cross_prefix}${cxx_default}" +nm_default="${cross_prefix}${nm_default}" +pkg_config_default="${cross_prefix}${pkg_config_default}" +ranlib="${cross_prefix}${ranlib}" +strip_default="${cross_prefix}${strip_default}" + +sysinclude_default="${sysroot}/usr/include" + +case "$toolchain" in + clang-asan) + cc_default="clang" + add_cflags -faddress-sanitizer + add_ldflags -faddress-sanitizer + ;; + clang-tsan) + cc_default="clang" + add_cflags -fthread-sanitizer + add_ldflags -fthread-sanitizer + ;; + msvc) + cc_default="c99wrap cl" + ld_default="c99wrap link" + nm_default="dumpbin -symbols" + ar_default="lib" + target_os_default="win32" + ;; + ?*) + die "Unknown toolchain $toolchain" + ;; +esac + +set_default arch cc cxx pkg_config strip sysinclude target_os yasmexe +enabled cross_compile || host_cc_default=$cc +set_default host_cc + +if ! $pkg_config --version >/dev/null 2>&1; then + warn "$pkg_config not found, library detection may fail." + pkg_config=false +fi + +exesuf() { + case $1 in + mingw32*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;; + esac +} + +EXESUF=$(exesuf $target_os) +HOSTEXESUF=$(exesuf $host_os) + +# set temporary file name +: ${TMPDIR:=$TEMPDIR} +: ${TMPDIR:=$TMP} +: ${TMPDIR:=/tmp} + +if ! check_cmd mktemp -u XXXXXX; then + # simple replacement for missing mktemp + # NOT SAFE FOR GENERAL USE + mktemp(){ + echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$" + } +fi + +tmpfile(){ + tmp=$(mktemp -u "${TMPDIR}/ffconf.XXXXXXXX")$2 && + (set -C; exec > $tmp) 2>/dev/null || + die "Unable to create temporary file in $TMPDIR." + append TMPFILES $tmp + eval $1=$tmp +} + +trap 'rm -f -- $TMPFILES' EXIT + +tmpfile TMPASM .asm +tmpfile TMPC .c +tmpfile TMPCPP .cpp +tmpfile TMPE $EXESUF +tmpfile TMPH .h +tmpfile TMPO .o +tmpfile TMPS .S +tmpfile TMPSH .sh +tmpfile TMPV .ver + +unset -f mktemp + +chmod +x $TMPE + +# make sure we can execute files in $TMPDIR +cat > $TMPSH 2>> $logfile <> $logfile 2>&1 +if ! $TMPSH >> $logfile 2>&1; then + cat <&1 | grep -q '^gcc.*LLVM'; then + _type=llvm_gcc + gcc_extra_ver=$(expr "$($_cc --version | head -n1)" : '.*\((.*)\)') + _ident="llvm-gcc $($_cc -dumpversion) $gcc_extra_ver" + _depflags='-MMD -MF $(@:.o=.d) -MT $@' + _cflags_speed='-O3' + _cflags_size='-Os' + elif $_cc -v 2>&1 | grep -qi ^gcc; then + _type=gcc + gcc_version=$($_cc --version | head -n1) + gcc_basever=$($_cc -dumpversion) + gcc_pkg_ver=$(expr "$gcc_version" : '[^ ]* \(([^)]*)\)') + gcc_ext_ver=$(expr "$gcc_version" : ".*$gcc_pkg_ver $gcc_basever \\(.*\\)") + _ident=$(cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver") + if ! $_cc -dumpversion | grep -q '^2\.'; then + _depflags='-MMD -MF $(@:.o=.d) -MT $@' + fi + _cflags_speed='-O3' + _cflags_size='-Os' + elif $_cc --version 2>/dev/null | grep -q ^icc; then + _type=icc + _ident=$($_cc --version | head -n1) + _depflags='-MMD' + _cflags_speed='-O3' + _cflags_size='-Os' + _cflags_noopt='-O1' + elif $_cc -v 2>&1 | grep -q xlc; then + _type=xlc + _ident=$($_cc -qversion 2>/dev/null | head -n1) + _cflags_speed='-O5' + _cflags_size='-O5 -qcompact' + elif $_cc -V 2>/dev/null | grep -q Compaq; then + _type=ccc + _ident=$($_cc -V | head -n1 | cut -d' ' -f1-3) + _DEPFLAGS='-M' + _cflags_speed='-fast' + _cflags_size='-O1' + _flags_filter=ccc_flags + elif $_cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then + test -d "$sysroot" || die "No valid sysroot specified." + _type=armcc + _ident=$($_cc --vsn | head -n1) + armcc_conf="$PWD/armcc.conf" + $_cc --arm_linux_configure \ + --arm_linux_config_file="$armcc_conf" \ + --configure_sysroot="$sysroot" \ + --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 || + die "Error creating armcc configuration file." + $_cc --vsn | grep -q RVCT && armcc_opt=rvct || armcc_opt=armcc + _flags="--arm_linux_config_file=$armcc_conf --translate_gcc" + as_default="${cross_prefix}gcc" + _depflags='-MMD' + _cflags_speed='-O3' + _cflags_size='-Os' + elif $_cc -version 2>/dev/null | grep -Eq 'TMS470|TI ARM'; then + _type=tms470 + _ident=$($_cc -version | head -n1 | tr -s ' ') + _flags='--gcc --abi=eabi -me' + _cc_e='-ppl -fe=$@' + _cc_o='-fe=$@' + _depflags='-ppa -ppd=$(@:.o=.d)' + _cflags_speed='-O3 -mf=5' + _cflags_size='-O3 -mf=2' + _flags_filter=tms470_flags + elif $_cc -v 2>&1 | grep -q clang; then + _type=clang + _ident=$($_cc --version | head -n1) + _depflags='-MMD' + _cflags_speed='-O3' + _cflags_size='-Os' + elif $_cc -V 2>&1 | grep -q Sun; then + _type=suncc + _ident=$($_cc -V 2>&1 | head -n1 | cut -d' ' -f 2-) + _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)' + _DEPFLAGS='-xM1 -xc99' + _ldflags='-std=c99' + _cflags_speed='-O5' + _cflags_size='-O5 -xspace' + _flags_filter=suncc_flags + elif $_cc -v 2>&1 | grep -q 'PathScale\|Path64'; then + _type=pathscale + _ident=$($_cc -v 2>&1 | head -n1 | tr -d :) + _depflags='-MMD -MF $(@:.o=.d) -MT $@' + _cflags_speed='-O2' + _cflags_size='-Os' + _flags_filter='filter_out -Wdisabled-optimization' + elif $_cc -v 2>&1 | grep -q Open64; then + _type=open64 + _ident=$($_cc -v 2>&1 | head -n1 | tr -d :) + _depflags='-MMD -MF $(@:.o=.d) -MT $@' + _cflags_speed='-O2' + _cflags_size='-Os' + _flags_filter='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros' + elif $_cc -V 2>&1 | grep -q Portland; then + _type=pgi + _ident="PGI $($_cc -V 2>&1 | awk '/^pgcc/ { print $2; exit }')" + opt_common='-alias=ansi -Mdse -Mlre -Mpre' + _cflags_speed="-O3 -Mautoinline -Munroll=c:4 $opt_common" + _cflags_size="-O2 -Munroll=c:1 $opt_common" + _cflags_noopt="-O1" + _flags_filter=pgi_flags + elif $_cc 2>&1 | grep -q Microsoft; then + _type=msvc + _ident=$($cc 2>&1 | head -n1) + _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)' + _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' + _cflags_speed="-O2" + _cflags_size="-O1" + # Nonstandard output options, to avoid msys path conversion issues, relies on wrapper to remap it + if $_cc 2>&1 | grep -q Linker; then + _ld_o='-out $@' + else + _ld_o='-Fe$@' + fi + _cc_o='-Fo $@' + _cc_e='-P -Fi $@' + _flags_filter=msvc_flags + _ld_lib='lib%.a' + _ld_path='-libpath:' + _flags='-nologo' + _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64' + if [ $pfx = hostcc ]; then + append _cflags -Dsnprintf=_snprintf + fi + disable stripping + fi + + eval ${pfx}_type=\$_type + eval ${pfx}_ident=\$_ident +} + +set_ccvars(){ + eval ${1}_C=\${_cc_c-\${${1}_C}} + eval ${1}_E=\${_cc_e-\${${1}_E}} + eval ${1}_O=\${_cc_o-\${${1}_O}} + + if [ -n "$_depflags" ]; then + eval ${1}_DEPFLAGS=\$_depflags + else + eval ${1}DEP=\${_DEPCMD:-\$DEPCMD} + eval ${1}DEP_FLAGS=\${_DEPFLAGS:-\$DEPFLAGS} + eval DEP${1}FLAGS=\$_flags + fi +} + +probe_cc cc "$cc" +cflags_filter=$_flags_filter +cflags_speed=$_cflags_speed +cflags_size=$_cflags_size +cflags_noopt=$_cflags_noopt +add_cflags $_flags $_cflags +cc_ldflags=$_ldflags +set_ccvars CC + +probe_cc hostcc "$host_cc" +host_cflags_filter=$_flags_filter +add_host_cflags $_flags $_cflags +set_ccvars HOSTCC + +test -n "$cc_type" && enable $cc_type || + warn "Unknown C compiler $cc, unable to select optimal CFLAGS" + +: ${as_default:=$cc} +: ${dep_cc_default:=$cc} +: ${ld_default:=$cc} +: ${host_ld_default:=$host_cc} +set_default ar as dep_cc ld host_ld + +probe_cc as "$as" +asflags_filter=$_flags_filter +add_asflags $_flags $_cflags +set_ccvars AS + +probe_cc ld "$ld" +ldflags_filter=$_flags_filter +add_ldflags $_flags $_ldflags +test "$cc_type" != "$ld_type" && add_ldflags $cc_ldflags +LD_O=${_ld_o-$LD_O} +LD_LIB=${_ld_lib-$LD_LIB} +LD_PATH=${_ld_path-$LD_PATH} + +probe_cc hostld "$host_ld" +host_ldflags_filter=$_flags_filter +add_host_ldflags $_flags $_ldflags +HOSTLD_O=${_ld_o-$HOSTLD_O} + +if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then + probe_cc depcc "$dep_cc" + CCDEP=${_DEPCMD:-$DEPCMD} + CCDEP_FLAGS=${_DEPFLAGS:=$DEPFLAGS} + DEPCCFLAGS=$_flags +fi + +if $ar 2>&1 | grep -q Microsoft; then + arflags="-nologo" + ar_o='-out:$@' +elif $ar 2>&1 | grep -q 'Texas Instruments'; then + arflags="rq" + ar_o='$@' +else + arflags="rc" + ar_o='$@' +fi + +add_cflags $extra_cflags +add_cxxflags $extra_cxxflags +add_asflags $extra_cflags + +if test -n "$sysroot"; then + case "$cc_type" in + gcc|llvm_gcc|clang) + add_cppflags --sysroot="$sysroot" + add_ldflags --sysroot="$sysroot" + ;; + tms470) + add_cppflags -I"$sysinclude" + add_ldflags --sysroot="$sysroot" + ;; + esac +fi + +if test "$cpu" = host; then + enabled cross_compile && die "--cpu=host makes no sense when cross-compiling." + + case "$cc_type" in + gcc|llvm_gcc) + check_native(){ + $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return + sed -n "/cc1.*$1=/{ + s/.*$1=\\([^ ]*\\).*/\\1/ + p + q + }" $TMPE + } + cpu=$(check_native -march || check_native -mcpu) + ;; + esac + + test "${cpu:-host}" = host && die "--cpu=host not supported with compiler $cc" +fi + +# Deal with common $arch aliases +case "$arch" in + aarch64|arm64) + arch="aarch64" + ;; + arm*|iPad*) + arch="arm" + ;; + mips*|IP*) + arch="mips" + ;; + parisc*|hppa*) + arch="parisc" + ;; + "Power Macintosh"|ppc*|powerpc*) + arch="ppc" + ;; + s390|s390x) + arch="s390" + ;; + sh4|sh) + arch="sh4" + ;; + sun4u|sparc*) + arch="sparc" + ;; + tilegx|tile-gx) + arch="tilegx" + ;; + i[3-6]86|i86pc|BePC|x86pc|x86_64|x86_32|amd64) + arch="x86" + ;; +esac + +is_in $arch $ARCH_LIST || warn "unknown architecture $arch" +enable $arch + +# Add processor-specific flags +if enabled aarch64; then + + case $cpu in + armv*) + cpuflags="-march=$cpu" + ;; + *) + cpuflags="-mcpu=$cpu" + ;; + esac + +elif enabled alpha; then + + cpuflags="-mcpu=$cpu" + +elif enabled arm; then + + check_arm_arch() { + check_cpp_condition stddef.h \ + "defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \ + $cpuflags + } + + probe_arm_arch() { + if check_arm_arch 4; then echo armv4; + elif check_arm_arch 4T; then echo armv4t; + elif check_arm_arch 5; then echo armv5; + elif check_arm_arch 5E; then echo armv5e; + elif check_arm_arch 5T; then echo armv5t; + elif check_arm_arch 5TE; then echo armv5te; + elif check_arm_arch 5TEJ; then echo armv5te; + elif check_arm_arch 6; then echo armv6; + elif check_arm_arch 6J; then echo armv6j; + elif check_arm_arch 6K; then echo armv6k; + elif check_arm_arch 6Z; then echo armv6z; + elif check_arm_arch 6ZK; then echo armv6zk; + elif check_arm_arch 6T2; then echo armv6t2; + elif check_arm_arch 7; then echo armv7; + elif check_arm_arch 7A 7_A; then echo armv7-a; + elif check_arm_arch 7R 7_R; then echo armv7-r; + elif check_arm_arch 7M 7_M; then echo armv7-m; + elif check_arm_arch 7EM 7E_M; then echo armv7-m; + elif check_arm_arch 8A 8_A; then echo armv8-a; + fi + } + + [ "$cpu" = generic ] && cpu=$(probe_arm_arch) + + case $cpu in + armv*) + cpuflags="-march=$cpu" + subarch=$(echo $cpu | sed 's/[^a-z0-9]//g') + ;; + *) + cpuflags="-mcpu=$cpu" + case $cpu in + cortex-a*) subarch=armv7a ;; + cortex-r*) subarch=armv7r ;; + cortex-m*) enable thumb; subarch=armv7m ;; + arm11*) subarch=armv6 ;; + arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;; + armv4*|arm7*|arm9[24]*) subarch=armv4 ;; + *) subarch=$(probe_arm_arch) ;; + esac + ;; + esac + + case "$subarch" in + armv5t*) enable fast_clz ;; + armv[6-8]*) enable fast_clz fast_unaligned ;; + esac + +elif enabled avr32; then + + case $cpu in + ap7[02]0[0-2]) + subarch="avr32_ap" + cpuflags="-mpart=$cpu" + ;; + ap) + subarch="avr32_ap" + cpuflags="-march=$cpu" + ;; + uc3[ab]*) + subarch="avr32_uc" + cpuflags="-mcpu=$cpu" + ;; + uc) + subarch="avr32_uc" + cpuflags="-march=$cpu" + ;; + esac + +elif enabled bfin; then + + cpuflags="-mcpu=$cpu" + +elif enabled mips; then + + cpuflags="-march=$cpu" + + case $cpu in + 24kc) + disable mipsfpu + disable mipsdspr1 + disable mipsdspr2 + ;; + 24kf*) + disable mipsdspr1 + disable mipsdspr2 + ;; + 24kec|34kc|1004kc) + disable mipsfpu + disable mipsdspr2 + ;; + 24kef*|34kf*|1004kf*) + disable mipsdspr2 + ;; + 74kc) + disable mipsfpu + ;; + esac + +elif enabled ppc; then + + case $(tolower $cpu) in + 601|ppc601|powerpc601) + cpuflags="-mcpu=601" + disable altivec + ;; + 603*|ppc603*|powerpc603*) + cpuflags="-mcpu=603" + disable altivec + ;; + 604*|ppc604*|powerpc604*) + cpuflags="-mcpu=604" + disable altivec + ;; + g3|75*|ppc75*|powerpc75*) + cpuflags="-mcpu=750" + disable altivec + ;; + g4|745*|ppc745*|powerpc745*) + cpuflags="-mcpu=7450" + ;; + 74*|ppc74*|powerpc74*) + cpuflags="-mcpu=7400" + ;; + g5|970|ppc970|powerpc970) + cpuflags="-mcpu=970" + ;; + power[3-7]*) + cpuflags="-mcpu=$cpu" + ;; + cell) + cpuflags="-mcpu=cell" + enable ldbrx + ;; + e500mc) + cpuflags="-mcpu=e500mc" + disable altivec + ;; + e500v2) + cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double" + disable altivec + ;; + e500) + cpuflags="-mcpu=8540 -mhard-float" + disable altivec + ;; + esac + +elif enabled sparc; then + + case $cpu in + cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789]) + cpuflags="-mcpu=$cpu" + disable vis + ;; + ultrasparc*|niagara[234]) + cpuflags="-mcpu=$cpu" + ;; + esac + +elif enabled x86; then + + case $cpu in + i[345]86|pentium) + cpuflags="-march=$cpu" + disable mmx + ;; + # targets that do NOT support conditional mov (cmov) + pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) + cpuflags="-march=$cpu" + disable cmov + ;; + # targets that do support conditional mov (cmov) + i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*) + cpuflags="-march=$cpu" + enable cmov + enable fast_cmov + ;; + # targets that do support conditional mov but on which it's slow + pentium4|pentium4m|prescott|nocona) + cpuflags="-march=$cpu" + enable cmov + disable fast_cmov + ;; + esac + +fi + +if [ "$cpu" != generic ]; then + add_cflags $cpuflags + add_asflags $cpuflags +fi + +# compiler sanity check +check_exec < +EOF +check_cc -D_LARGEFILE_SOURCE < +EOF + +check_host_cflags -std=c99 +check_host_cflags -Wall + +check_64bit(){ + arch32=$1 + arch64=$2 + expr=$3 + check_code cc "" "int test[2*($expr) - 1]" && + subarch=$arch64 || subarch=$arch32 +} + +case "$arch" in + aarch64|alpha|ia64) + spic=$shared + ;; + mips) + check_64bit mips mips64 '_MIPS_SIM > 1' + spic=$shared + ;; + parisc) + check_64bit parisc parisc64 'sizeof(void *) > 4' + spic=$shared + ;; + ppc) + check_64bit ppc ppc64 'sizeof(void *) > 4' + spic=$shared + ;; + sparc) + check_64bit sparc sparc64 'sizeof(void *) > 4' + spic=$shared + ;; + x86) + check_64bit x86_32 x86_64 'sizeof(void *) > 4' + if test "$subarch" = "x86_64"; then + spic=$shared + fi + ;; + ppc) + check_cc < mapfile && add_ldflags -Wl,-M,mapfile + nm_default='nm -P -g' + ;; + netbsd) + disable symver + oss_indev_extralibs="-lossaudio" + oss_outdev_extralibs="-lossaudio" + enabled gcc || check_ldflags -Wl,-zmuldefs + ;; + openbsd|bitrig) + disable symver + SHFLAGS='-shared' + SLIB_INSTALL_NAME='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)' + SLIB_INSTALL_LINKS= + oss_indev_extralibs="-lossaudio" + oss_outdev_extralibs="-lossaudio" + ;; + dragonfly) + disable symver + ;; + freebsd) + ;; + bsd/os) + add_extralibs -lpoll -lgnugetopt + strip="strip -d" + ;; + darwin) + gas="gas-preprocessor.pl $cc" + enabled ppc && add_asflags -force_cpusubtype_ALL + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress + strip="${strip} -x" + add_ldflags -Wl,-dynamic,-search_paths_first + SLIBSUF=".dylib" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' + FFSERVERLDFLAGS=-Wl,-bind_at_load + objformat="macho" + enabled x86_64 && objformat="macho64" + enabled_any pic shared || + { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; } + ;; + mingw32*) + if test $target_os = "mingw32ce"; then + disable network + else + target_os=mingw32 + fi + LIBTARGET=i386 + if enabled x86_64; then + LIBTARGET="i386:x86-64" + elif enabled arm; then + LIBTARGET=arm-wince + fi + shlibdir_default="$bindir_default" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + dlltool="${cross_prefix}dlltool" + if check_cmd lib.exe -list; then + SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' + if enabled x86_64; then + LIBTARGET=x64 + fi + elif check_cmd $dlltool --version; then + SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' + fi + SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' + SLIB_INSTALL_LINKS= + SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' + SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' + SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.orig.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' + objformat="win32" + ranlib=: + enable dos_paths + ;; + win32|win64) + if enabled shared; then + # Link to the import library instead of the normal static library + # for shared libs. + LD_LIB='%.lib' + # Cannot build shared and static libraries at the same time with + # MSVC. + disable static + fi + shlibdir_default="$bindir_default" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + SLIB_CREATE_DEF_CMD='makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' + SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' + SLIB_INSTALL_LINKS= + SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' + SLIB_INSTALL_EXTRA_LIB='$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' + SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' + objformat="win32" + ranlib=: + enable dos_paths + ;; + cygwin*) + target_os=cygwin + shlibdir_default="$bindir_default" + SLIBPREF="cyg" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' + SLIB_INSTALL_LINKS= + SLIB_INSTALL_EXTRA_LIB='lib$(FULLNAME).dll.a' + SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a' + objformat="win32" + enable dos_paths + ;; + *-dos|freedos|opendos) + network_extralibs="-lsocket" + objformat="coff" + enable dos_paths + add_cppflags -U__STRICT_ANSI__ + ;; + linux) + enable dv1394 + ;; + irix*) + target_os=irix + ranlib="echo ignoring ranlib" + ;; + os/2*) + strip="lxlite -CS" + ln_s="cp -f" + objformat="aout" + add_cppflags -D_GNU_SOURCE + add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap + SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' + FFSERVERLDFLAGS="" + LIBSUF="_s.a" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' + SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \ + echo PROTMODE >> $(SUBDIR)$(NAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \ + echo EXPORTS >> $(SUBDIR)$(NAME).def; \ + emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def' + SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \ + emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' + SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib' + enable dos_paths + enable_weak os2threads + ;; + gnu/kfreebsd) + add_cppflags -D_BSD_SOURCE + ;; + gnu) + ;; + qnx) + add_cppflags -D_QNX_SOURCE + network_extralibs="-lsocket" + ;; + symbian) + SLIBSUF=".dll" + enable dos_paths + add_cflags --include=$sysinclude/gcce/gcce.h -fvisibility=default + add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS + add_ldflags -Wl,--target1-abs,--no-undefined \ + -Wl,-Ttext,0x80000,-Tdata,0x1000000 -shared \ + -Wl,--entry=_E32Startup -Wl,-u,_E32Startup + add_extralibs -l:eexe.lib -l:usrt2_2.lib -l:dfpaeabi.dso \ + -l:drtaeabi.dso -l:scppnwdl.dso -lsupc++ -lgcc \ + -l:libc.dso -l:libm.dso -l:euser.dso -l:libcrt0.lib + ;; + osf1) + add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT + FFSERVERLDFLAGS= + ;; + minix) + ;; + plan9) + add_cppflags -D_C99_SNPRINTF_EXTENSION \ + -D_REENTRANT_SOURCE \ + -D_RESEARCH_SOURCE \ + -DFD_SETSIZE=96 \ + -DHAVE_SOCK_OPTS + add_compat strtod.o strtod=avpriv_strtod + network_extralibs='-lbsd' + exeobjs=compat/plan9/main.o + disable ffserver + cp_f='cp' + ;; + none) + ;; + *) + die "Unknown OS '$target_os'." + ;; +esac + +# determine libc flavour + +# uclibc defines __GLIBC__, so it needs to be checked before glibc. +if check_cpp_condition features.h "defined __UCLIBC__"; then + libc_type=uclibc + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 +elif check_cpp_condition features.h "defined __GLIBC__"; then + libc_type=glibc + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 +# MinGW headers can be installed on Cygwin, so check for newlib first. +elif check_cpp_condition newlib.h "defined _NEWLIB_VERSION"; then + libc_type=newlib + add_cppflags -U__STRICT_ANSI__ +elif check_header _mingw.h; then + libc_type=mingw + check_cpp_condition _mingw.h \ + "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \ + (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || + die "ERROR: MinGW runtime version must be >= 3.15." + add_cppflags -U__STRICT_ANSI__ + if check_cpp_condition _mingw.h "defined(__MINGW64_VERSION_MAJOR) && \ + __MINGW64_VERSION_MAJOR < 3"; then + add_compat msvcrt/snprintf.o + add_cflags "-include $source_path/compat/msvcrt/snprintf.h" + fi +elif check_func_headers stdlib.h _get_doserrno; then + libc_type=msvcrt + add_compat strtod.o strtod=avpriv_strtod + add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ + _snprintf=avpriv_snprintf \ + vsnprintf=avpriv_vsnprintf +elif check_cpp_condition stddef.h "defined __KLIBC__"; then + libc_type=klibc +fi + +test -n "$libc_type" && enable $libc_type + +# hacks for compiler/libc/os combinations + +if enabled_all tms470 glibc; then + CPPFLAGS="-I${source_path}/compat/tms470 ${CPPFLAGS}" + add_cppflags -D__USER_LABEL_PREFIX__= + add_cppflags -D__builtin_memset=memset + add_cppflags -D__gnuc_va_list=va_list -D_VA_LIST_DEFINED + add_cflags -pds=48 # incompatible redefinition of macro +fi + +if enabled_all ccc glibc; then + add_ldflags -Wl,-z,now # calls to libots crash without this +fi + +esc(){ + echo "$*" | sed 's/%/%25/g;s/:/%3a/g' +} + +echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate + +check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic + +set_default $PATHS_LIST +set_default nm + +# we need to build at least one lib type +if ! enabled_any static shared; then + cat <= 2.0.0" aacplus.h aacplusEncOpen -laacplus +enabled libass && require_pkg_config libass ass/ass.h ass_library_init +enabled libbluray && require libbluray libbluray/bluray.h bd_open -lbluray +enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && + { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || + die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } +enabled libcaca && require_pkg_config caca caca.h caca_create_canvas +enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac +enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac +flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" +enabled libflite && require2 libflite "flite/flite.h" flite_init $flite_libs +enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType +enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do + check_lib "${gsm_hdr}" gsm_create -lgsm && break; + done || die "ERROR: libgsm not found"; } +enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc +enabled libmodplug && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug +enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame +enabled libnut && require libnut libnut.h nut_demuxer_init -lnut +enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb +enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb +enabled libopencv && require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader +enabled libopenjpeg && { check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg || + check_lib openjpeg.h opj_version -lopenjpeg || + die "ERROR: libopenjpeg not found"; } +enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create +enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new +enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket +enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init +enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr +enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex +enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h + media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h media/stagefright/MediaDefs.h + media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static +enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg +enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame && + { check_lib twolame.h twolame_encode_buffer_float32_interleaved -ltwolame || + die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } +enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++ +enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl +enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc +enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc +enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg +enabled libvpx && { + enabled libvpx_vp8_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx || + die "ERROR: libvpx decoder version must be >=0.9.1"; } + enabled libvpx_vp8_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VP8E_SET_MAX_INTRA_BITRATE_PCT" -lvpx || + die "ERROR: libvpx encoder version must be >=0.9.7"; } + enabled libvpx_vp9_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx || disable libvpx_vp9_decoder; } + enabled libvpx_vp9_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx" -lvpx || disable libvpx_vp9_encoder; } } +enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 && + { check_cpp_condition x264.h "X264_BUILD >= 118" || + die "ERROR: libx264 must be installed and version must be >= 0.118."; } +enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs +enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore +enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do + check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } || + die "ERROR: openal not found"; } && + { check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" || + die "ERROR: openal must be installed and version must be 1.1 or compatible"; } +enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || + check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 || + check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || + die "ERROR: openssl not found"; } + +if enabled gnutls; then + { check_lib nettle/bignum.h nettle_mpz_get_str_256 -lnettle -lhogweed -lgmp && enable nettle; } || + { check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; } +fi + +# libdc1394 check +if enabled libdc1394; then + { check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 && + enable libdc1394_2; } || + { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 && + enable libdc1394_1; } || + die "ERROR: No version of libdc1394 found " +fi + +SDL_CONFIG="${cross_prefix}sdl-config" +if check_pkg_config sdl SDL_events.h SDL_PollEvent; then + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags && + enable sdl +else + if "${SDL_CONFIG}" --version > /dev/null 2>&1; then + sdl_cflags=$("${SDL_CONFIG}" --cflags) + sdl_libs=$("${SDL_CONFIG}" --libs) + check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs && + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags && + enable sdl + fi +fi +enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs + +texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html +makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo +perl --version > /dev/null 2>&1 && enable perl || disable perl +pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man +rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout + +check_header linux/fb.h +check_header linux/videodev.h +check_header linux/videodev2.h +check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete + +check_header sys/videoio.h + +check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs" +# check that WM_CAP_DRIVER_CONNECT is defined to the proper value +# w32api 3.12 had it defined wrong +check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines + +check_type "dshow.h" IBaseFilter + +# check for ioctl_meteor.h, ioctl_bt848.h and alternatives +{ check_header dev/bktr/ioctl_meteor.h && + check_header dev/bktr/ioctl_bt848.h; } || +{ check_header machine/ioctl_meteor.h && + check_header machine/ioctl_bt848.h; } || +{ check_header dev/video/meteor/ioctl_meteor.h && + check_header dev/video/bktr/ioctl_bt848.h; } || +check_header dev/ic/bt8xx.h + +check_header sndio.h +if check_struct sys/soundcard.h audio_buf_info bytes; then + enable_safe sys/soundcard.h +else + check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE < + audio_buf_info abc; +EOF +fi +check_header soundcard.h + +enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound + +enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait && + check_func jack_port_get_latency_range -ljack + +enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio + +if enabled libcdio; then + check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || check_lib2 "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio +fi + +enabled x11grab && +require X11 X11/Xlib.h XOpenDisplay -lX11 && +require Xext X11/extensions/XShm.h XShmCreateImage -lXext && +require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes + +if ! disabled vaapi; then + check_lib va/va.h vaInitialize -lva && { + check_cpp_condition va/va_version.h "VA_CHECK_VERSION(0,32,0)" || + warn "Please upgrade to VA-API >= 0.32 if you would like full VA-API support."; + } || disable vaapi +fi + +enabled vdpau && + check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || + disable vdpau + +# Funny iconv installations are not unusual, so check it after all flags have been set +disabled iconv || check_func_headers iconv.h iconv || check_lib2 iconv.h iconv -liconv || disable iconv + +enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" +enabled coverage && add_cflags "-fprofile-arcs -ftest-coverage" && add_ldflags "-fprofile-arcs -ftest-coverage" +test -n "$valgrind" && target_exec="$valgrind --error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" + +# add some useful compiler flags if supported +check_cflags -Wdeclaration-after-statement +check_cflags -Wall +check_cflags -Wno-parentheses +check_cflags -Wno-switch +check_cflags -Wno-format-zero-length +check_cflags -Wdisabled-optimization +check_cflags -Wpointer-arith +check_cflags -Wredundant-decls +check_cflags -Wno-pointer-sign +check_cflags -Wwrite-strings +check_cflags -Wtype-limits +check_cflags -Wundef +check_cflags -Wmissing-prototypes +check_cflags -Wno-pointer-to-int-cast +check_cflags -Wstrict-prototypes +enabled extra_warnings && check_cflags -Winline + +# add some linker flags +check_ldflags -Wl,--warn-common +check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic + +enabled xmm_clobber_test && + check_ldflags -Wl,--wrap,avcodec_open2 \ + -Wl,--wrap,avcodec_decode_audio4 \ + -Wl,--wrap,avcodec_decode_video2 \ + -Wl,--wrap,avcodec_decode_subtitle2 \ + -Wl,--wrap,avcodec_encode_audio2 \ + -Wl,--wrap,avcodec_encode_video \ + -Wl,--wrap,avcodec_encode_subtitle \ + -Wl,--wrap,sws_scale || + disable xmm_clobber_test + +echo "X{};" > $TMPV +if test_ldflags -Wl,--version-script,$TMPV; then + append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver' + check_cc < enable ${lib}_deps_${dep} +# -> add $dep to ${lib}_deps only once +add_dep() { + lib=$1 + dep=$2 + enabled "${lib}_deps_${dep}" && return 0 + enable "${lib}_deps_${dep}" + prepend "${lib}_deps" $dep +} + +# merge deps lib components +# merge all ${component}_deps into ${lib}_deps and ${lib}_deps_* +merge_deps() { + lib=$1 + shift + for comp in $*; do + enabled $comp || continue + eval "dep=\"\$${comp}_deps\"" + for d in $dep; do + add_dep $lib $d + done + done +} + +merge_deps libavfilter $FILTER_LIST + +echo "install prefix $prefix" +echo "source path $source_path" +echo "C compiler $cc" +echo "ARCH $arch ($cpu)" +if test "$build_suffix" != ""; then + echo "build suffix $build_suffix" +fi +if test "$progs_suffix" != ""; then + echo "progs suffix $progs_suffix" +fi +if test "$extra_version" != ""; then + echo "version string suffix $extra_version" +fi +echo "big-endian ${bigendian-no}" +echo "runtime cpu detection ${runtime_cpudetect-no}" +if enabled x86; then + echo "${yasmexe} ${yasm-no}" + echo "MMX enabled ${mmx-no}" + echo "MMXEXT enabled ${mmxext-no}" + echo "3DNow! enabled ${amd3dnow-no}" + echo "3DNow! extended enabled ${amd3dnowext-no}" + echo "SSE enabled ${sse-no}" + echo "SSSE3 enabled ${ssse3-no}" + echo "AVX enabled ${avx-no}" + echo "FMA4 enabled ${fma4-no}" + echo "CMOV enabled ${cmov-no}" + echo "CMOV is fast ${fast_cmov-no}" + echo "EBX available ${ebx_available-no}" + echo "EBP available ${ebp_available-no}" +fi +if enabled arm; then + echo "ARMv5TE enabled ${armv5te-no}" + echo "ARMv6 enabled ${armv6-no}" + echo "ARMv6T2 enabled ${armv6t2-no}" + echo "VFP enabled ${vfp-no}" + echo "NEON enabled ${neon-no}" + echo "THUMB enabled ${thumb-no}" +fi +if enabled mips; then + echo "MIPS FPU enabled ${mipsfpu-no}" + echo "MIPS32R2 enabled ${mips32r2-no}" + echo "MIPS DSP R1 enabled ${mipsdspr1-no}" + echo "MIPS DSP R2 enabled ${mipsdspr2-no}" +fi +if enabled ppc; then + echo "AltiVec enabled ${altivec-no}" + echo "PPC 4xx optimizations ${ppc4xx-no}" + echo "dcbzl available ${dcbzl-no}" +fi +if enabled sparc; then + echo "VIS enabled ${vis-no}" +fi +echo "debug symbols ${debug-no}" +echo "strip symbols ${stripping-no}" +echo "optimize for size ${small-no}" +echo "optimizations ${optimizations-no}" +echo "static ${static-no}" +echo "shared ${shared-no}" +echo "postprocessing support ${postproc-no}" +echo "new filter support ${avfilter-no}" +echo "network support ${network-no}" +echo "threading support ${thread_type-no}" +echo "safe bitstream reader ${safe_bitstream_reader-no}" +echo "SDL support ${sdl-no}" +echo "texi2html enabled ${texi2html-no}" +echo "perl enabled ${perl-no}" +echo "pod2man enabled ${pod2man-no}" +echo "makeinfo enabled ${makeinfo-no}" +test -n "$random_seed" && + echo "random seed ${random_seed}" +echo + +echo "External libraries:" +print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns +echo + +for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do + echo "Enabled ${type}s:" + eval list=\$$(toupper $type)_LIST + print_enabled '_*' $list | print_3_columns + echo +done + +license="LGPL version 2.1 or later" +if enabled nonfree; then + license="nonfree and unredistributable" +elif enabled gplv3; then + license="GPL version 3 or later" +elif enabled lgplv3; then + license="LGPL version 3 or later" +elif enabled gpl; then + license="GPL version 2 or later" +fi + +echo "License: $license" + +echo "Creating config.mak and config.h..." + +test -e Makefile || $ln_s "$source_path/Makefile" . + +enabled stripping || strip="echo skipping strip" + +config_files="$TMPH config.mak" + +cat > config.mak <> config.mak + eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak + eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak +} + +map 'get_version $v' $LIBRARY_LIST + +cat > $TMPH <>$TMPH + +test -n "$malloc_prefix" && + echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH + +if enabled yasm; then + append config_files $TMPASM + printf '' >$TMPASM +fi + +print_config ARCH_ "$config_files" $ARCH_LIST +print_config HAVE_ "$config_files" $HAVE_LIST +print_config CONFIG_ "$config_files" $CONFIG_LIST \ + $CONFIG_EXTRA \ + $ALL_COMPONENTS \ + +echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH +echo "endif # FFMPEG_CONFIG_MAK" >> config.mak + +# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. +cp_if_changed $TMPH config.h +touch .config + +enabled yasm && cp_if_changed $TMPASM config.asm + +cat > $TMPH <> $TMPH + +cp_if_changed $TMPH libavutil/avconfig.h + +if test -n "$WARNINGS"; then + printf "\n$WARNINGS" + enabled fatal_warnings && exit 1 +fi + +# build pkg-config files + +pkgconfig_generate(){ + name=$1 + shortname=${name#lib}${build_suffix} + comment=$2 + version=$3 + libs=$4 + requires=$5 + enabled ${name#lib} || return 0 + mkdir -p $name + cat < $name/$name${build_suffix}.pc +prefix=$prefix +exec_prefix=\${prefix} +libdir=$libdir +includedir=$incdir + +Name: $name +Description: $comment +Version: $version +Requires: $(enabled shared || echo $requires) +Requires.private: $(enabled shared && echo $requires) +Conflicts: +Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs) +Libs.private: $(enabled shared && echo $libs) +Cflags: -I\${includedir} +EOF + +mkdir -p doc/examples/pc-uninstalled +includedir=${source_path} +[ "$includedir" = . ] && includedir="\${pcfiledir}/../../.." + cat < doc/examples/pc-uninstalled/$name.pc +prefix= +exec_prefix= +libdir=\${pcfiledir}/../../../$name +includedir=${includedir} + +Name: $name +Description: $comment +Version: $version +Requires: $requires +Conflicts: +Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs) +Cflags: -I\${includedir} +EOF +} + +libavfilter_pc_deps="libavutil${build_suffix} = $LIBAVUTIL_VERSION" +enabled libavfilter_deps_avcodec && prepend libavfilter_pc_deps "libavcodec${build_suffix} = $LIBAVCODEC_VERSION," +enabled libavfilter_deps_avformat && prepend libavfilter_pc_deps "libavformat${build_suffix} = $LIBAVFORMAT_VERSION," +enabled libavfilter_deps_avresample && prepend libavfilter_pc_deps "libavresample${build_suffix} = $LIBAVRESAMPLE_VERSION," +enabled libavfilter_deps_swscale && prepend libavfilter_pc_deps "libswscale${build_suffix} = $LIBSWSCALE_VERSION," +enabled libavfilter_deps_swresample && prepend libavfilter_pc_deps "libswresample${build_suffix} = $LIBSWRESAMPLE_VERSION," +enabled libavfilter_deps_postproc && prepend libavfilter_pc_deps "libpostproc${build_suffix} = $LIBPOSTPROC_VERSION," +libavfilter_pc_deps=${libavfilter_pc_deps%, } + +libavdevice_pc_deps="libavformat${build_suffix} = $LIBAVFORMAT_VERSION" +enabled lavfi_indev && prepend libavdevice_pc_deps "libavfilter${build_suffix} = $LIBAVFILTER_VERSION," + +pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" "$LIBM" +pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" +pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec${build_suffix} = $LIBAVCODEC_VERSION" +pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "$libavdevice_pc_deps" +pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$libavfilter_pc_deps" +pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" +pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" +pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" +pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" + +fix_ffmpeg_remote(){ + git_remote_from=$1 + git_remote_to=$2 + fixme_remote=$(git --git-dir=$source_path/.git --work-tree=$source_path remote -v | grep $git_remote_from | cut -f 1 | sort | uniq) + if [ "$fixme_remote" != "" ]; then + echolog " +Outdated domain in git config, the official domain for ffmpeg git is since +November 2011, source.ffmpeg.org, both the old and the new point to the same +repository and server. To update it enter the following commands: +" + for remote in $fixme_remote; do + echolog "git remote set-url $remote $git_remote_to" + done + fi +} + +if test -f "$source_path/.git/config"; then + remote_from=git.videolan.org + remote_to=source.ffmpeg.org + fix_ffmpeg_remote git@$remote_from:ffmpeg git@$remote_to:ffmpeg + fix_ffmpeg_remote git://$remote_from/ffmpeg git://$remote_to/ffmpeg +fi diff --git a/ffmpeg/description-pak b/ffmpeg/description-pak new file mode 100644 index 0000000..97737e9 --- /dev/null +++ b/ffmpeg/description-pak @@ -0,0 +1 @@ +Package created with checkinstall 1.6.2 diff --git a/ffmpeg/doc/APIchanges b/ffmpeg/doc/APIchanges new file mode 100644 index 0000000..255f914 --- /dev/null +++ b/ffmpeg/doc/APIchanges @@ -0,0 +1,1586 @@ +Never assume the API of libav* to be stable unless at least 1 month has passed +since the last major version increase or the API was added. + +The last version increases were: +libavcodec: 2013-03-xx +libavdevice: 2013-03-xx +libavfilter: 2012-06-22 +libavformat: 2013-03-xx +libavresample: 2012-10-05 +libpostproc: 2011-04-18 +libswresample: 2011-09-19 +libswscale: 2011-06-20 +libavutil: 2012-10-22 + + +API changes, most recent first: + +2013-03-20 - xxxxxxx - lavu 52.22.100 - opt.h + Add AV_OPT_TYPE_DURATION value to AVOptionType enum. + +2013-03-17 - xxxxxx - lavu 52.20.100 - opt.h + Add AV_OPT_TYPE_VIDEO_RATE value to AVOptionType enum. + +2013-03-07 - xxxxxx - lavu 52.18.100 - avstring.h,bprint.h + Add av_escape() and av_bprint_escape() API. + +2013-02-24 - xxxxxx - lavfi 3.41.100 - buffersink.h + Add sample_rates field to AVABufferSinkParams. + +2013-01-17 - a1a707f - lavf 54.61.100 + Add av_codec_get_tag2(). + +2013-01-01 - 2eb2e17 - lavfi 3.34.100 + Add avfilter_get_audio_buffer_ref_from_arrays_channels. + +2012-12-20 - 34de47aa - lavfi 3.29.100 - avfilter.h + Add AVFilterLink.channels, avfilter_link_get_channels() + and avfilter_ref_get_channels(). + +2012-12-15 - 2ada584d - lavc 54.80.100 - avcodec.h + Add pkt_size field to AVFrame. + +2012-11-25 - c70ec631 - lavu 52.9.100 - opt.h + Add the following convenience functions to opt.h: + av_opt_get_image_size + av_opt_get_pixel_fmt + av_opt_get_sample_fmt + av_opt_set_image_size + av_opt_set_pixel_fmt + av_opt_set_sample_fmt + +2012-11-17 - 4cd74c81 - lavu 52.8.100 - bprint.h + Add av_bprint_strftime(). + +2012-11-15 - 92648107 - lavu 52.7.100 - opt.h + Add av_opt_get_key_value(). + +2012-11-13 - 79456652 - lavfi 3.23.100 - avfilter.h + Add channels field to AVFilterBufferRefAudioProps. + +2012-11-03 - 481fdeee - lavu 52.3.100 - opt.h + Add AV_OPT_TYPE_SAMPLE_FMT value to AVOptionType enum. + +2012-10-21 - 6fb2fd8 - lavc 54.68.100 - avcodec.h + lavfi 3.20.100 - avfilter.h + Add AV_PKT_DATA_STRINGS_METADATA side data type, used to transmit key/value + strings between AVPacket and AVFrame, and add metadata field to + AVCodecContext (which shall not be accessed by users; see AVFrame metadata + instead). + +2012-09-27 - a70b493 - lavd 54.3.100 - version.h + Add LIBAVDEVICE_IDENT symbol. + +2012-09-27 - a70b493 - lavfi 3.18.100 - version.h + Add LIBAVFILTER_IDENT symbol. + +2012-09-27 - a70b493 - libswr 0.16.100 - version.h + Add LIBSWRESAMPLE_VERSION, LIBSWRESAMPLE_BUILD + and LIBSWRESAMPLE_IDENT symbols. + +2012-09-06 - 29e972f - lavu 51.72.100 - parseutils.h + Add av_small_strptime() time parsing function. + + Can be used as a stripped-down replacement for strptime(), on + systems which do not support it. + +2012-08-25 - 2626cc4 - lavf 54.28.100 + Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP instead + of AV_CODEC_ID_TEXT. + +2012-08-13 - 5c0d8bc - lavfi 3.8.100 - avfilter.h + Add avfilter_get_class() function, and priv_class field to AVFilter + struct. + +2012-08-12 - a25346e - lavu 51.69.100 - opt.h + Add AV_OPT_FLAG_FILTERING_PARAM symbol in opt.h. + +2012-07-31 - 23fc4dd - lavc 54.46.100 + Add channels field to AVFrame. + +2012-07-30 - f893904 - lavu 51.66.100 + Add av_get_channel_description() + and av_get_standard_channel_layout() functions. + +2012-07-21 - 016a472 - lavc 54.43.100 + Add decode_error_flags field to AVFrame. + +2012-07-20 - b062936 - lavf 54.18.100 + Add avformat_match_stream_specifier() function. + +2012-07-14 - f49ec1b - lavc 54.38.100 - avcodec.h + Add metadata to AVFrame, and the accessor functions + av_frame_get_metadata() and av_frame_set_metadata(). + +2012-07-10 - 0e003d8 - lavc 54.33.100 + Add av_fast_padded_mallocz(). + +2012-07-10 - 21d5609 - lavfi 3.2.0 - avfilter.h + Add init_opaque() callback to AVFilter struct. + +2012-06-26 - e6674e4 - lavu 51.63.100 - imgutils.h + Add functions to libavutil/imgutils.h: + av_image_get_buffer_size() + av_image_fill_arrays() + av_image_copy_to_buffer() + +2012-06-24 - c41899a - lavu 51.62.100 - version.h + version moved from avutil.h to version.h + +2012-04-11 - 359abb1 - lavu 51.58.100 - error.h + Add av_make_error_string() and av_err2str() utilities to + libavutil/error.h. + +2012-06-05 - 62b39d4 - lavc 54.24.100 + Add pkt_duration field to AVFrame. + +2012-05-24 - f2ee065 - lavu 51.54.100 + Move AVPALETTE_SIZE and AVPALETTE_COUNT macros from + libavcodec/avcodec.h to libavutil/pixfmt.h. + +2012-05-14 - 94a9ac1 - lavf 54.5.100 + Add av_guess_sample_aspect_ratio() function. + +2012-04-20 - 65fa7bc - lavfi 2.70.100 + Add avfilter_unref_bufferp() to avfilter.h. + +2012-04-13 - 162e400 - lavfi 2.68.100 + Install libavfilter/asrc_abuffer.h public header. + +2012-03-26 - a67d9cf - lavfi 2.66.100 + Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions. + +2013-xx-xx - lavu 52.9.0 - pixdesc.h + Add av_pix_fmt_count_planes() function for counting planes in a pixel format. + +2013-xx-xx - lavfi 3.6.0 + Add AVFilterGraph.nb_filters, deprecate AVFilterGraph.filter_count. + +2013-03-xx - Reference counted buffers - lavu 52.8.0, lavc 55.0.0, lavf 55.0.0, +lavd 54.0.0, lavfi 3.5.0 + xxxxxxx, xxxxxxx - add a new API for reference counted buffers and buffer + pools (new header libavutil/buffer.h). + xxxxxxx - add AVPacket.buf to allow reference counting for the AVPacket data. + Add av_packet_from_data() function for constructing packets from + av_malloc()ed data. + xxxxxxx - move AVFrame from lavc to lavu (new header libavutil/frame.h), add + AVFrame.buf/extended_buf to allow reference counting for the AVFrame + data. Add new API for working with reference-counted AVFrames. + xxxxxxx - add the refcounted_frames field to AVCodecContext to make audio and + video decoders return reference-counted frames. Add get_buffer2() + callback to AVCodecContext which allocates reference-counted frames. + Add avcodec_default_get_buffer2() as the default get_buffer2() + implementation. + Deprecate AVCodecContext.get_buffer() / release_buffer() / + reget_buffer(), avcodec_default_get_buffer(), + avcodec_default_reget_buffer(), avcodec_default_release_buffer(). + Remove avcodec_default_free_buffers(), which should not have ever + been called from outside of lavc. + Deprecate the following AVFrame fields: + * base -- is now stored in AVBufferRef + * reference, type, buffer_hints -- are unnecessary in the new API + * hwaccel_picture_private, owner, thread_opaque -- should not + have been acessed from outside of lavc + * qscale_table, qstride, qscale_type, mbskip_table, motion_val, + mb_type, dct_coeff, ref_index -- mpegvideo-specific tables, + which are not exported anymore. + xxxxxxx - switch libavfilter to use AVFrame instead of AVFilterBufferRef. Add + av_buffersrc_add_frame(), deprecate av_buffersrc_buffer(). + Add av_buffersink_get_frame() and av_buffersink_get_samples(), + deprecate av_buffersink_read() and av_buffersink_read_samples(). + Deprecate AVFilterBufferRef and all functions for working with it. + +2013-xx-xx - xxxxxxx - lavu 52.8.0 - avstring.h + Add av_isdigit, av_isgraph, av_isspace, av_isxdigit. + +2013-xx-xx - xxxxxxx - lavfi 3.4.0 - avfiltergraph.h + Add resample_lavr_opts to AVFilterGraph for setting libavresample options + for auto-inserted resample filters. + +2013-xx-xx - xxxxxxx - lavu 52.7.0 - dict.h + Add av_dict_parse_string() to set multiple key/value pairs at once from a + string. + +2013-01-xx - xxxxxxx - lavu 52.6.0 - avstring.h + Add av_strnstr() + +2013-01-xx - xxxxxxx - lavu 52.5.0 - hmac.h + Add AVHMAC. + +2013-01-13 - xxxxxxx - lavc 54.87.100 / 54.36.0 - vdpau.h + Add AVVDPAUContext struct for VDPAU hardware-accelerated decoding. + +2013-01-12 - dae382b / 169fb94 - lavu 52.14.100 / 52.4.0 - pixdesc.h + Add AV_PIX_FMT_VDPAU flag. + +2013-01-07 - 249fca3 / 074a00d - lavr 1.1.0 + Add avresample_set_channel_mapping() for input channel reordering, + duplication, and silencing. + +2012-12-29 - 2ce43b3 / d8fd06c - lavu 52.13.100 / 52.3.0 - avstring.h + Add av_basename() and av_dirname(). + +2012-11-11 - 03b0787 / 5980f5d - lavu 52.6.100 / 52.2.0 - audioconvert.h + Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated. + +2012-11-05 - 7d26be6 / dfde8a3 - lavu 52.5.100 / 52.1.0 - intmath.h + Add av_ctz() for trailing zero bit count + +2012-10-21 - e3a91c5 / a893655 - lavu 51.77.100 / 51.45.0 - error.h + Add AVERROR_EXPERIMENTAL + +2012-10-12 - a33ed6b / d2fcb35 - lavu 51.76.100 / 51.44.0 - pixdesc.h + Add functions for accessing pixel format descriptors. + Accessing the av_pix_fmt_descriptors array directly is now + deprecated. + +2012-10-11 - f391e40 / 9a92aea - lavu 51.75.100 / 51.43.0 - aes.h, md5.h, sha.h, tree.h + Add functions for allocating the opaque contexts for the algorithms, + +2012-10-10 - de31814 / b522000 - lavf 54.32.100 / 54.18.0 - avio.h + Add avio_closep to complement avio_close. + +2012-10-08 - ae77266 / 78071a1 - lavu 51.74.100 / 51.42.0 - pixfmt.h + Rename PixelFormat to AVPixelFormat and all PIX_FMT_* to AV_PIX_FMT_*. + To provide backwards compatibility, PixelFormat is now #defined as + AVPixelFormat. + Note that this can break user code that includes pixfmt.h and uses the + 'PixelFormat' identifier. Such code should either #undef PixelFormat + or stop using the PixelFormat name. + +2012-10-05 - 55c49af / e7ba5b1 - lavr 1.0.0 - avresample.h + Data planes parameters to avresample_convert() and + avresample_read() are now uint8_t** instead of void**. + Libavresample is now stable. + +2012-09-24 - 46a3595 / a42aada - lavc 54.59.100 / 54.28.0 - avcodec.h + Add avcodec_free_frame(). This function must now + be used for freeing an AVFrame. + +2012-09-12 - e3e09f2 / 8919fee - lavu 51.73.100 / 51.41.0 - audioconvert.h + Added AV_CH_LOW_FREQUENCY_2 channel mask value. + +2012-09-04 - b21b5b0 / 686a329 - lavu 51.71.100 / 51.40.0 - opt.h + Reordered the fields in default_val in AVOption, changed which + default_val field is used for which AVOptionType. + +2012-08-30 - 98298eb / a231832 - lavc 54.54.101 / 54.26.1 - avcodec.h + Add codec descriptor properties AV_CODEC_PROP_LOSSY and + AV_CODEC_PROP_LOSSLESS. + +2012-08-18 - lavc 54.26 - avcodec.h + Add codec descriptors for accessing codec properties without having + to refer to a specific decoder or encoder. + + f5f3684 / c223d79 - Add an AVCodecDescriptor struct and functions + avcodec_descriptor_get() and avcodec_descriptor_next(). + f5f3684 / 51efed1 - Add AVCodecDescriptor.props and AV_CODEC_PROP_INTRA_ONLY. + 6c180b3 / 91e59fe - Add avcodec_descriptor_get_by_name(). + +2012-08-08 - f5f3684 / 987170c - lavu 51.68.100 / 51.38.0 - dict.h + Add av_dict_count(). + +2012-08-07 - 7a72695 / 104e10f - lavc 54.51.100 / 54.25.0 - avcodec.h + Rename CodecID to AVCodecID and all CODEC_ID_* to AV_CODEC_ID_*. + To provide backwards compatibility, CodecID is now #defined as AVCodecID. + Note that this can break user code that includes avcodec.h and uses the + 'CodecID' identifier. Such code should either #undef CodecID or stop using the + CodecID name. + +2012-08-03 - e776ee8 / 239fdf1 - lavu 51.66.101 / 51.37.1 - cpu.h + lsws 2.1.1 - swscale.h + Rename AV_CPU_FLAG_MMX2 ---> AV_CPU_FLAG_MMXEXT. + Rename SWS_CPU_CAPS_MMX2 ---> SWS_CPU_CAPS_MMXEXT. + +2012-07-29 - 7c26761 / 681ed00 - lavf 54.22.100 / 54.13.0 - avformat.h + Add AVFMT_FLAG_NOBUFFER for low latency use cases. + +2012-07-10 - 5fade8a - lavu 51.37.0 + Add av_malloc_array() and av_mallocz_array() + +2012-06-22 - e847f41 / d3d3a32 - lavu 51.61.100 / 51.34.0 + Add av_usleep() + +2012-06-20 - 4da42eb / ae0a301 - lavu 51.60.100 / 51.33.0 + Move av_gettime() to libavutil, add libavutil/time.h + +2012-06-09 - 82edf67 / 3971be0 - lavr 0.0.3 + Add a parameter to avresample_build_matrix() for Dolby/DPLII downmixing. + +2012-06-12 - c7b9eab / 9baeff9 - lavfi 2.79.100 / 2.23.0 - avfilter.h + Add AVFilterContext.nb_inputs/outputs. Deprecate + AVFilterContext.input/output_count. + +2012-06-12 - c7b9eab / 84b9fbe - lavfi 2.79.100 / 2.22.0 - avfilter.h + Add avfilter_pad_get_type() and avfilter_pad_get_name(). Those + should now be used instead of accessing AVFilterPad members + directly. + +2012-06-12 - 3630a07 / b0f0dfc - lavu 51.57.100 / 51.32.0 - audioconvert.h + Add av_get_channel_layout_channel_index(), av_get_channel_name() + and av_channel_layout_extract_channel(). + +2012-05-25 - 53ce990 / 154486f - lavu 51.55.100 / 51.31.0 - opt.h + Add av_opt_set_bin() + +2012-05-15 - lavfi 2.74.100 / 2.17.0 + Add support for audio filters + 61930bd / ac71230, 1cbf7fb / a2cd9be - add video/audio buffer sink in a new installed + header buffersink.h + 1cbf7fb / 720c6b7 - add av_buffersrc_write_frame(), deprecate + av_vsrc_buffer_add_frame() + 61930bd / ab16504 - add avfilter_copy_buf_props() + 61930bd / 9453c9e - add extended_data to AVFilterBuffer + 61930bd / 1b8c927 - add avfilter_get_audio_buffer_ref_from_arrays() + +2012-05-09 - lavu 51.53.100 / 51.30.0 - samplefmt.h + 61930bd / 142e740 - add av_samples_copy() + 61930bd / 6d7f617 - add av_samples_set_silence() + +2012-05-09 - 61930bd / a5117a2 - lavc 54.21.101 / 54.13.1 + For audio formats with fixed frame size, the last frame + no longer needs to be padded with silence, libavcodec + will handle this internally (effectively all encoders + behave as if they had CODEC_CAP_SMALL_LAST_FRAME set). + +2012-05-07 - 653d117 / 828bd08 - lavc 54.20.100 / 54.13.0 - avcodec.h + Add sample_rate and channel_layout fields to AVFrame. + +2012-05-01 - 2330eb1 / 4010d72 - lavr 0.0.1 + Change AV_MIX_COEFF_TYPE_Q6 to AV_MIX_COEFF_TYPE_Q8. + +2012-04-25 - e890b68 / 3527a73 - lavu 51.48.100 / 51.29.0 - cpu.h + Add av_parse_cpu_flags() + +2012-04-24 - 3ead79e / c8af852 - lavr 0.0.0 + Add libavresample audio conversion library + +2012-04-20 - 3194ab7 / 0c0d1bc - lavu 51.47.100 / 51.28.0 - audio_fifo.h + Add audio FIFO functions: + av_audio_fifo_free() + av_audio_fifo_alloc() + av_audio_fifo_realloc() + av_audio_fifo_write() + av_audio_fifo_read() + av_audio_fifo_drain() + av_audio_fifo_reset() + av_audio_fifo_size() + av_audio_fifo_space() + +2012-04-14 - lavfi 2.70.100 / 2.16.0 - avfiltergraph.h + 7432bcf / d7bcc71 Add avfilter_graph_parse2(). + +2012-04-08 - 6bfb304 / 4d693b0 - lavu 51.46.100 / 51.27.0 - samplefmt.h + Add av_get_packed_sample_fmt() and av_get_planar_sample_fmt() + +2012-03-21 - b75c67d - lavu 51.43.100 + Add bprint.h for bprint API. + +2012-02-21 - 9cbf17e - lavc 54.4.100 + Add av_get_pcm_codec() function. + +2012-02-16 - 560b224 - libswr 0.7.100 + Add swr_set_matrix() function. + +2012-02-09 - c28e7af - lavu 51.39.100 + Add a new installed header libavutil/timestamp.h with timestamp + utilities. + +2012-02-06 - 70ffda3 - lavu 51.38.100 + Add av_parse_ratio() function to parseutils.h. + +2012-02-06 - 70ffda3 - lavu 51.38.100 + Add AV_LOG_MAX_OFFSET macro to log.h. + +2012-02-02 - 0eaa123 - lavu 51.37.100 + Add public timecode helpers. + +2012-01-24 - 0c3577b - lavfi 2.60.100 + Add avfilter_graph_dump. + +2012-03-20 - 0ebd836 / 3c90cc2 - lavfo 54.2.0 + Deprecate av_read_packet(), use av_read_frame() with + AVFMT_FLAG_NOPARSE | AVFMT_FLAG_NOFILLIN in AVFormatContext.flags + +2012-03-05 - lavc 54.10.100 / 54.8.0 + f095391 / 6699d07 Add av_get_exact_bits_per_sample() + f095391 / 9524cf7 Add av_get_audio_frame_duration() + +2012-03-04 - 2af8f2c / 44fe77b - lavc 54.8.100 / 54.7.0 - avcodec.h + Add av_codec_is_encoder/decoder(). + +2012-03-01 - 1eb7f39 / 442c132 - lavc 54.5.100 / 54.3.0 - avcodec.h + Add av_packet_shrink_side_data. + +2012-02-29 - 79ae084 / dd2a4bc - lavf 54.2.100 / 54.2.0 - avformat.h + Add AVStream.attached_pic and AV_DISPOSITION_ATTACHED_PIC, + used for dealing with attached pictures/cover art. + +2012-02-25 - 305e4b3 / c9bca80 - lavu 51.41.100 / 51.24.0 - error.h + Add AVERROR_UNKNOWN + NOTE: this was backported to 0.8 + +2012-02-20 - eadd426 / e9cda85 - lavc 54.2.100 / 54.2.0 + Add duration field to AVCodecParserContext + +2012-02-20 - eadd426 / 0b42a93 - lavu 51.40.100 / 51.23.1 - mathematics.h + Add av_rescale_q_rnd() + +2012-02-08 - f2b20b7 / 38d5533 - lavu 51.38.101 / 51.22.1 - pixdesc.h + Add PIX_FMT_PSEUDOPAL flag. + +2012-02-08 - f2b20b7 / 52f82a1 - lavc 54.2.100 / 54.1.0 + Add avcodec_encode_video2() and deprecate avcodec_encode_video(). + +2012-02-01 - 4c677df / 316fc74 - lavc 54.1.0 + Add av_fast_padded_malloc() as alternative for av_realloc() when aligned + memory is required. The buffer will always have FF_INPUT_BUFFER_PADDING_SIZE + zero-padded bytes at the end. + +2012-01-31 - a369a6b / dd6d3b0 - lavf 54.1.0 + Add avformat_get_riff_video_tags() and avformat_get_riff_audio_tags(). + NOTE: this was backported to 0.8 + +2012-01-31 - a369a6b / af08d9a - lavc 54.1.0 + Add avcodec_is_open() function. + NOTE: this was backported to 0.8 + +2012-01-30 - 151ecc2 / 8b93312 - lavu 51.36.100 / 51.22.0 - intfloat.h + Add a new installed header libavutil/intfloat.h with int/float punning + functions. + NOTE: this was backported to 0.8 + +2012-01-25 - lavf 53.31.100 / 53.22.0 + 3c5fe5b / f1caf01 Allow doing av_write_frame(ctx, NULL) for flushing possible + buffered data within a muxer. Added AVFMT_ALLOW_FLUSH for + muxers supporting it (av_write_frame makes sure it is called + only for muxers with this flag). + +2012-01-15 - lavc 53.56.105 / 53.34.0 + New audio encoding API: + 67f5650 / b2c75b6 Add CODEC_CAP_VARIABLE_FRAME_SIZE capability for use by audio + encoders. + 67f5650 / 5ee5fa0 Add avcodec_fill_audio_frame() as a convenience function. + 67f5650 / b2c75b6 Add avcodec_encode_audio2() and deprecate avcodec_encode_audio(). + Add AVCodec.encode2(). + +2012-01-12 - b18e17e / 3167dc9 - lavfi 2.59.100 / 2.15.0 + Add a new installed header -- libavfilter/version.h -- with version macros. + +2011-12-08 - a502939 - lavfi 2.52.0 + Add av_buffersink_poll_frame() to buffersink.h. + +2011-12-08 - 26c6fec - lavu 51.31.0 + Add av_log_format_line. + +2011-12-03 - 976b095 - lavu 51.30.0 + Add AVERROR_BUG. + +2011-11-24 - 573ffbb - lavu 51.28.1 + Add av_get_alt_sample_fmt() to samplefmt.h. + +2011-11-03 - 96949da - lavu 51.23.0 + Add av_strcasecmp() and av_strncasecmp() to avstring.h. + +2011-10-20 - b35e9e1 - lavu 51.22.0 + Add av_strtok() to avstring.h. + +2012-01-03 - ad1c8dd / b73ec05 - lavu 51.34.100 / 51.21.0 + Add av_popcount64 + +2011-12-18 - 7c29313 / 8400b12 - lavc 53.46.1 / 53.28.1 + Deprecate AVFrame.age. The field is unused. + +2011-12-12 - 8bc7fe4 / 5266045 - lavf 53.25.0 / 53.17.0 + Add avformat_close_input(). + Deprecate av_close_input_file() and av_close_input_stream(). + +2011-12-02 - e4de716 / 0eea212 - lavc 53.40.0 / 53.25.0 + Add nb_samples and extended_data fields to AVFrame. + Deprecate AVCODEC_MAX_AUDIO_FRAME_SIZE. + Deprecate avcodec_decode_audio3() in favor of avcodec_decode_audio4(). + avcodec_decode_audio4() writes output samples to an AVFrame, which allows + audio decoders to use get_buffer(). + +2011-12-04 - e4de716 / 560f773 - lavc 53.40.0 / 53.24.0 + Change AVFrame.data[4]/base[4]/linesize[4]/error[4] to [8] at next major bump. + Change AVPicture.data[4]/linesize[4] to [8] at next major bump. + Change AVCodecContext.error[4] to [8] at next major bump. + Add AV_NUM_DATA_POINTERS to simplify the bump transition. + +2011-11-23 - 8e576d5 / bbb46f3 - lavu 51.27.0 / 51.18.0 + Add av_samples_get_buffer_size(), av_samples_fill_arrays(), and + av_samples_alloc(), to samplefmt.h. + +2011-11-23 - 8e576d5 / 8889cc4 - lavu 51.27.0 / 51.17.0 + Add planar sample formats and av_sample_fmt_is_planar() to samplefmt.h. + +2011-11-19 - dbb38bc / f3a29b7 - lavc 53.36.0 / 53.21.0 + Move some AVCodecContext fields to a new private struct, AVCodecInternal, + which is accessed from a new field, AVCodecContext.internal. + - fields moved: + AVCodecContext.internal_buffer --> AVCodecInternal.buffer + AVCodecContext.internal_buffer_count --> AVCodecInternal.buffer_count + AVCodecContext.is_copy --> AVCodecInternal.is_copy + +2011-11-16 - 8709ba9 / 6270671 - lavu 51.26.0 / 51.16.0 + Add av_timegm() + +2011-11-13 - lavf 53.21.0 / 53.15.0 + New interrupt callback API, allowing per-AVFormatContext/AVIOContext + interrupt callbacks. + 5f268ca / 6aa0b98 Add AVIOInterruptCB struct and the interrupt_callback field to + AVFormatContext. + 5f268ca / 1dee0ac Add avio_open2() with additional parameters. Those are + an interrupt callback and an options AVDictionary. + This will allow passing AVOptions to protocols after lavf + 54.0. + +2011-11-06 - 13b7781 / ba04ecf - lavu 51.24.0 / 51.14.0 + Add av_strcasecmp() and av_strncasecmp() to avstring.h. + +2011-11-06 - 13b7781 / 07b172f - lavu 51.24.0 / 51.13.0 + Add av_toupper()/av_tolower() + +2011-11-05 - d8cab5c / b6d08f4 - lavf 53.19.0 / 53.13.0 + Add avformat_network_init()/avformat_network_deinit() + +2011-10-27 - 6faf0a2 / 512557b - lavc 53.24.0 / 53.15.0 + Remove avcodec_parse_frame. + Deprecate AVCodecContext.parse_only and CODEC_CAP_PARSE_ONLY. + +2011-10-19 - d049257 / 569129a - lavf 53.17.0 / 53.10.0 + Add avformat_new_stream(). Deprecate av_new_stream(). + +2011-10-13 - 91eb1b1 / b631fba - lavf 53.16.0 / 53.9.0 + Add AVFMT_NO_BYTE_SEEK AVInputFormat flag. + +2011-10-12 - lavu 51.21.0 / 51.12.0 + AVOptions API rewrite. + + - f884ef0 / 145f741 FF_OPT_TYPE* renamed to AV_OPT_TYPE_* + - new setting/getting functions with slightly different semantics: + f884ef0 / dac66da av_set_string3 -> av_opt_set + av_set_double -> av_opt_set_double + av_set_q -> av_opt_set_q + av_set_int -> av_opt_set_int + + f884ef0 / 41d9d51 av_get_string -> av_opt_get + av_get_double -> av_opt_get_double + av_get_q -> av_opt_get_q + av_get_int -> av_opt_get_int + + - f884ef0 / 8c5dcaa trivial rename av_next_option -> av_opt_next + - f884ef0 / 641c7af new functions - av_opt_child_next, av_opt_child_class_next + and av_opt_find2() + +2011-09-22 - a70e787 - lavu 51.17.0 + Add av_x_if_null(). + +2011-09-18 - 645cebb - lavc 53.16.0 + Add showall flag2 + +2011-09-16 - ea8de10 - lavfi 2.42.0 + Add avfilter_all_channel_layouts. + +2011-09-16 - 9899037 - lavfi 2.41.0 + Rename avfilter_all_* function names to avfilter_make_all_*. + + In particular, apply the renames: + avfilter_all_formats -> avfilter_make_all_formats + avfilter_all_channel_layouts -> avfilter_make_all_channel_layouts + avfilter_all_packing_formats -> avfilter_make_all_packing_formats + +2011-09-12 - 4381bdd - lavfi 2.40.0 + Change AVFilterBufferRefAudioProps.sample_rate type from uint32_t to int. + +2011-09-12 - 2c03174 - lavfi 2.40.0 + Simplify signature for avfilter_get_audio_buffer(), make it + consistent with avfilter_get_video_buffer(). + +2011-09-06 - 4f7dfe1 - lavfi 2.39.0 + Rename libavfilter/vsink_buffer.h to libavfilter/buffersink.h. + +2011-09-06 - c4415f6 - lavfi 2.38.0 + Unify video and audio sink API. + + In particular, add av_buffersink_get_buffer_ref(), deprecate + av_vsink_buffer_get_video_buffer_ref() and change the value for the + opaque field passed to the abuffersink init function. + +2011-09-04 - 61e2e29 - lavu 51.16.0 + Add av_asprintf(). + +2011-08-22 - dacd827 - lavf 53.10.0 + Add av_find_program_from_stream(). + +2011-08-20 - 69e2c1a - lavu 51.13.0 + Add av_get_media_type_string(). + +2011-09-03 - 1889c67 / fb4ca26 - lavc 53.13.0 + lavf 53.11.0 + lsws 2.1.0 + Add {avcodec,avformat,sws}_get_class(). + +2011-08-03 - 1889c67 / c11fb82 - lavu 51.15.0 + Add AV_OPT_SEARCH_FAKE_OBJ flag for av_opt_find() function. + +2011-08-14 - 323b930 - lavu 51.12.0 + Add av_fifo_peek2(), deprecate av_fifo_peek(). + +2011-08-26 - lavu 51.14.0 / 51.9.0 + - 976a8b2 / add41de..976a8b2 / abc78a5 Do not include intfloat_readwrite.h, + mathematics.h, rational.h, pixfmt.h, or log.h from avutil.h. + +2011-08-16 - 27fbe31 / 48f9e45 - lavf 53.11.0 / 53.8.0 + Add avformat_query_codec(). + +2011-08-16 - 27fbe31 / bca06e7 - lavc 53.11.0 + Add avcodec_get_type(). + +2011-08-06 - 0cb233c / 2f63440 - lavf 53.7.0 + Add error_recognition to AVFormatContext. + +2011-08-02 - 1d186e9 / 9d39cbf - lavc 53.9.1 + Add AV_PKT_FLAG_CORRUPT AVPacket flag. + +2011-07-16 - b57df29 - lavfi 2.27.0 + Add audio packing negotiation fields and helper functions. + + In particular, add AVFilterPacking enum, planar, in_packings and + out_packings fields to AVFilterLink, and the functions: + avfilter_set_common_packing_formats() + avfilter_all_packing_formats() + +2011-07-10 - 3602ad7 / a67c061 - lavf 53.6.0 + Add avformat_find_stream_info(), deprecate av_find_stream_info(). + NOTE: this was backported to 0.7 + +2011-07-10 - 3602ad7 / 0b950fe - lavc 53.8.0 + Add avcodec_open2(), deprecate avcodec_open(). + NOTE: this was backported to 0.7 + + Add avcodec_alloc_context3. Deprecate avcodec_alloc_context() and + avcodec_alloc_context2(). + +2011-07-01 - b442ca6 - lavf 53.5.0 - avformat.h + Add function av_get_output_timestamp(). + +2011-06-28 - 5129336 - lavu 51.11.0 - avutil.h + Define the AV_PICTURE_TYPE_NONE value in AVPictureType enum. + +2011-06-19 - fd2c0a5 - lavfi 2.23.0 - avfilter.h + Add layout negotiation fields and helper functions. + + In particular, add in_chlayouts and out_chlayouts to AVFilterLink, + and the functions: + avfilter_set_common_sample_formats() + avfilter_set_common_channel_layouts() + avfilter_all_channel_layouts() + +2011-06-19 - 527ca39 - lavfi 2.22.0 - AVFilterFormats + Change type of AVFilterFormats.formats from int * to int64_t *, + and update formats handling API accordingly. + + avfilter_make_format_list() still takes a int32_t array and converts + it to int64_t. A new function, avfilter_make_format64_list(), that + takes int64_t arrays has been added. + +2011-06-19 - 44f669e - lavfi 2.21.0 - vsink_buffer.h + Add video sink buffer and vsink_buffer.h public header. + +2011-06-12 - 9fdf772 - lavfi 2.18.0 - avcodec.h + Add avfilter_get_video_buffer_ref_from_frame() function in + libavfilter/avcodec.h. + +2011-06-12 - c535494 - lavfi 2.17.0 - avfiltergraph.h + Add avfilter_inout_alloc() and avfilter_inout_free() functions. + +2011-06-12 - 6119b23 - lavfi 2.16.0 - avfilter_graph_parse() + Change avfilter_graph_parse() signature. + +2011-06-23 - 686959e / 67e9ae1 - lavu 51.10.0 / 51.8.0 - attributes.h + Add av_printf_format(). + +2011-06-16 - 2905e3f / 05e84c9, 2905e3f / 25de595 - lavf 53.4.0 / 53.2.0 - avformat.h + Add avformat_open_input and avformat_write_header(). + Deprecate av_open_input_stream, av_open_input_file, + AVFormatParameters and av_write_header. + +2011-06-16 - 2905e3f / 7e83e1c, 2905e3f / dc59ec5 - lavu 51.9.0 / 51.7.0 - opt.h + Add av_opt_set_dict() and av_opt_find(). + Deprecate av_find_opt(). + Add AV_DICT_APPEND flag. + +2011-06-10 - 45fb647 / cb7c11c - lavu 51.6.0 - opt.h + Add av_opt_flag_is_set(). + +2011-06-10 - c381960 - lavfi 2.15.0 - avfilter_get_audio_buffer_ref_from_arrays + Add avfilter_get_audio_buffer_ref_from_arrays() to avfilter.h. + +2011-06-09 - f9ecb84 / d9f80ea - lavu 51.8.0 - AVMetadata + Move AVMetadata from lavf to lavu and rename it to + AVDictionary -- new installed header dict.h. + All av_metadata_* functions renamed to av_dict_*. + +2011-06-07 - d552f61 / a6703fa - lavu 51.8.0 - av_get_bytes_per_sample() + Add av_get_bytes_per_sample() in libavutil/samplefmt.h. + Deprecate av_get_bits_per_sample_fmt(). + +2011-06-05 - f956924 / b39b062 - lavu 51.8.0 - opt.h + Add av_opt_free convenience function. + +2011-06-06 - 95a0242 - lavfi 2.14.0 - AVFilterBufferRefAudioProps + Remove AVFilterBufferRefAudioProps.size, and use nb_samples in + avfilter_get_audio_buffer() and avfilter_default_get_audio_buffer() in + place of size. + +2011-06-06 - 0bc2cca - lavu 51.6.0 - av_samples_alloc() + Switch nb_channels and nb_samples parameters order in + av_samples_alloc(). + +2011-06-06 - e1c7414 - lavu 51.5.0 - av_samples_* + Change the data layout created by av_samples_fill_arrays() and + av_samples_alloc(). + +2011-06-06 - 27bcf55 - lavfi 2.13.0 - vsrc_buffer.h + Make av_vsrc_buffer_add_video_buffer_ref() accepts an additional + flags parameter in input. + +2011-06-03 - e977ca2 - lavfi 2.12.0 - avfilter_link_free() + Add avfilter_link_free() function. + +2011-06-02 - 5ad38d9 - lavu 51.4.0 - av_force_cpu_flags() + Add av_cpu_flags() in libavutil/cpu.h. + +2011-05-28 - e71f260 - lavu 51.3.0 - pixdesc.h + Add av_get_pix_fmt_name() in libavutil/pixdesc.h, and deprecate + avcodec_get_pix_fmt_name() in libavcodec/avcodec.h in its favor. + +2011-05-25 - 39e4206 / 30315a8 - lavf 53.3.0 - avformat.h + Add fps_probe_size to AVFormatContext. + +2011-05-22 - 5ecdfd0 - lavf 53.2.0 - avformat.h + Introduce avformat_alloc_output_context2() and deprecate + avformat_alloc_output_context(). + +2011-05-22 - 83db719 - lavfi 2.10.0 - vsrc_buffer.h + Make libavfilter/vsrc_buffer.h public. + +2011-05-19 - c000a9f - lavfi 2.8.0 - avcodec.h + Add av_vsrc_buffer_add_frame() to libavfilter/avcodec.h. + +2011-05-14 - 9fdf772 - lavfi 2.6.0 - avcodec.h + Add avfilter_get_video_buffer_ref_from_frame() to libavfilter/avcodec.h. + +2011-05-18 - 75a37b5 / 64150ff - lavc 53.7.0 - AVCodecContext.request_sample_fmt + Add request_sample_fmt field to AVCodecContext. + +2011-05-10 - 59eb12f / 188dea1 - lavc 53.6.0 - avcodec.h + Deprecate AVLPCType and the following fields in + AVCodecContext: lpc_coeff_precision, prediction_order_method, + min_partition_order, max_partition_order, lpc_type, lpc_passes. + Corresponding FLAC encoder options should be used instead. + +2011-05-07 - 9fdf772 - lavfi 2.5.0 - avcodec.h + Add libavfilter/avcodec.h header and avfilter_copy_frame_props() + function. + +2011-05-07 - 18ded93 - lavc 53.5.0 - AVFrame + Add format field to AVFrame. + +2011-05-07 - 22333a6 - lavc 53.4.0 - AVFrame + Add width and height fields to AVFrame. + +2011-05-01 - 35fe66a - lavfi 2.4.0 - avfilter.h + Rename AVFilterBufferRefVideoProps.pixel_aspect to + sample_aspect_ratio. + +2011-05-01 - 77e9dee - lavc 53.3.0 - AVFrame + Add a sample_aspect_ratio field to AVFrame. + +2011-05-01 - 1ba5727 - lavc 53.2.0 - AVFrame + Add a pkt_pos field to AVFrame. + +2011-04-29 - 35ceaa7 - lavu 51.2.0 - mem.h + Add av_dynarray_add function for adding + an element to a dynamic array. + +2011-04-26 - d7e5aeb / bebe72f - lavu 51.1.0 - avutil.h + Add AVPictureType enum and av_get_picture_type_char(), deprecate + FF_*_TYPE defines and av_get_pict_type_char() defined in + libavcodec/avcodec.h. + +2011-04-26 - d7e5aeb / 10d3940 - lavfi 2.3.0 - avfilter.h + Add pict_type and key_frame fields to AVFilterBufferRefVideo. + +2011-04-26 - d7e5aeb / 7a11c82 - lavfi 2.2.0 - vsrc_buffer + Add sample_aspect_ratio fields to vsrc_buffer arguments + +2011-04-21 - 8772156 / 94f7451 - lavc 53.1.0 - avcodec.h + Add CODEC_CAP_SLICE_THREADS for codecs supporting sliced threading. + +2011-04-15 - lavc 52.120.0 - avcodec.h + AVPacket structure got additional members for passing side information: + c407984 / 4de339e introduce side information for AVPacket + c407984 / 2d8591c make containers pass palette change in AVPacket + +2011-04-12 - lavf 52.107.0 - avio.h + Avio cleanup, part II - deprecate the entire URLContext API: + c55780d / 175389c add avio_check as a replacement for url_exist + 9891004 / ff1ec0c add avio_pause and avio_seek_time as replacements + for _av_url_read_fseek/fpause + d4d0932 / cdc6a87 deprecate av_protocol_next(), avio_enum_protocols + should be used instead. + c88caa5 / 80c6e23 rename url_set_interrupt_cb->avio_set_interrupt_cb. + c88caa5 / f87b1b3 rename open flags: URL_* -> AVIO_* + d4d0932 / f8270bb add avio_enum_protocols. + d4d0932 / 5593f03 deprecate URLProtocol. + d4d0932 / c486dad deprecate URLContext. + d4d0932 / 026e175 deprecate the typedef for URLInterruptCB + c88caa5 / 8e76a19 deprecate av_register_protocol2. + 11d7841 / b840484 deprecate URL_PROTOCOL_FLAG_NESTED_SCHEME + 11d7841 / 1305d93 deprecate av_url_read_seek + 11d7841 / fa104e1 deprecate av_url_read_pause + 434f248 / 727c7aa deprecate url_get_filename(). + 434f248 / 5958df3 deprecate url_max_packet_size(). + 434f248 / 1869ea0 deprecate url_get_file_handle(). + 434f248 / 32a97d4 deprecate url_filesize(). + 434f248 / e52a914 deprecate url_close(). + 434f248 / 58a48c6 deprecate url_seek(). + 434f248 / 925e908 deprecate url_write(). + 434f248 / dce3756 deprecate url_read_complete(). + 434f248 / bc371ac deprecate url_read(). + 434f248 / 0589da0 deprecate url_open(). + 434f248 / 62eaaea deprecate url_connect. + 434f248 / 5652bb9 deprecate url_alloc. + 434f248 / 333e894 deprecate url_open_protocol + 434f248 / e230705 deprecate url_poll and URLPollEntry + +2011-04-08 - lavf 52.106.0 - avformat.h + Minor avformat.h cleanup: + d4d0932 / a9bf9d8 deprecate av_guess_image2_codec + d4d0932 / c3675df rename avf_sdp_create->av_sdp_create + +2011-04-03 - lavf 52.105.0 - avio.h + Large-scale renaming/deprecating of AVIOContext-related functions: + 2cae980 / 724f6a0 deprecate url_fdopen + 2cae980 / 403ee83 deprecate url_open_dyn_packet_buf + 2cae980 / 6dc7d80 rename url_close_dyn_buf -> avio_close_dyn_buf + 2cae980 / b92c545 rename url_open_dyn_buf -> avio_open_dyn_buf + 2cae980 / 8978fed introduce an AVIOContext.seekable field as a replacement for + AVIOContext.is_streamed and url_is_streamed() + 1caa412 / b64030f deprecate get_checksum() + 1caa412 / 4c4427a deprecate init_checksum() + 2fd41c9 / 4ec153b deprecate udp_set_remote_url/get_local_port + 4fa0e24 / 933e90a deprecate av_url_read_fseek/fpause + 4fa0e24 / 8d9769a deprecate url_fileno + 0fecf26 / b7f2fdd rename put_flush_packet -> avio_flush + 0fecf26 / 35f1023 deprecate url_close_buf + 0fecf26 / 83fddae deprecate url_open_buf + 0fecf26 / d9d86e0 rename url_fprintf -> avio_printf + 0fecf26 / 59f65d9 deprecate url_setbufsize + 6947b0c / 3e68b3b deprecate url_ferror + e8bb2e2 deprecate url_fget_max_packet_size + 76aa876 rename url_fsize -> avio_size + e519753 deprecate url_fgetc + 655e45e deprecate url_fgets + a2704c9 rename url_ftell -> avio_tell + e16ead0 deprecate get_strz() in favor of avio_get_str + 0300db8,2af07d3 rename url_fskip -> avio_skip + 6b4aa5d rename url_fseek -> avio_seek + 61840b4 deprecate put_tag + 22a3212 rename url_fopen/fclose -> avio_open/close. + 0ac8e2b deprecate put_nbyte + 77eb550 rename put_byte -> avio_w8 + put_[b/l]e -> avio_w[b/l] + put_buffer -> avio_write + b7effd4 rename get_byte -> avio_r8, + get_[b/l]e -> avio_r[b/l] + get_buffer -> avio_read + b3db9ce deprecate get_partial_buffer + 8d9ac96 rename av_alloc_put_byte -> avio_alloc_context + +2011-03-25 - 27ef7b1 / 34b47d7 - lavc 52.115.0 - AVCodecContext.audio_service_type + Add audio_service_type field to AVCodecContext. + +2011-03-17 - e309fdc - lavu 50.40.0 - pixfmt.h + Add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE pixel formats + +2011-03-02 - 863c471 - lavf 52.103.0 - av_pkt_dump2, av_pkt_dump_log2 + Add new functions av_pkt_dump2, av_pkt_dump_log2 that uses the + source stream timebase for outputting timestamps. Deprecate + av_pkt_dump and av_pkt_dump_log. + +2011-02-20 - e731b8d - lavf 52.102.0 - avio.h + * e731b8d - rename init_put_byte() to ffio_init_context(), deprecating the + original, and move it to a private header so it is no longer + part of our public API. Instead, use av_alloc_put_byte(). + * ae628ec - rename ByteIOContext to AVIOContext. + +2011-02-16 - 09d171b - lavf 52.101.0 - avformat.h + lavu 52.39.0 - parseutils.h + * 610219a - Add av_ prefix to dump_format(). + * f6c7375 - Replace parse_date() in lavf with av_parse_time() in lavu. + * ab0287f - Move find_info_tag from lavf to lavu and add av_prefix to it. + +2011-02-15 - lavu 52.38.0 - merge libavcore + libavcore is merged back completely into libavutil + +2011-02-10 - 55bad0c - lavc 52.113.0 - vbv_delay + Add vbv_delay field to AVCodecContext + +2011-02-14 - 24a83bd - lavf 52.100.0 - AV_DISPOSITION_CLEAN_EFFECTS + Add AV_DISPOSITION_CLEAN_EFFECTS disposition flag. + +2011-02-14 - 910b5b8 - lavfi 1.76.0 - AVFilterLink sample_aspect_ratio + Add sample_aspect_ratio field to AVFilterLink. + +2011-02-10 - 12c14cd - lavf 52.99.0 - AVStream.disposition + Add AV_DISPOSITION_HEARING_IMPAIRED and AV_DISPOSITION_VISUAL_IMPAIRED. + +2011-02-09 - c0b102c - lavc 52.112.0 - avcodec_thread_init() + Deprecate avcodec_thread_init()/avcodec_thread_free() use; instead + set thread_count before calling avcodec_open. + +2011-02-09 - 37b00b4 - lavc 52.111.0 - threading API + Add CODEC_CAP_FRAME_THREADS with new restrictions on get_buffer()/ + release_buffer()/draw_horiz_band() callbacks for appropriate codecs. + Add thread_type and active_thread_type fields to AVCodecContext. + +2011-02-08 - 3940caa - lavf 52.98.0 - av_probe_input_buffer + Add av_probe_input_buffer() to avformat.h for probing format from a + ByteIOContext. + +2011-02-06 - fe174fc - lavf 52.97.0 - avio.h + Add flag for non-blocking protocols: URL_FLAG_NONBLOCK + +2011-02-04 - f124b08 - lavf 52.96.0 - avformat_free_context() + Add avformat_free_context() in avformat.h. + +2011-02-03 - f5b82f4 - lavc 52.109.0 - add CODEC_ID_PRORES + Add CODEC_ID_PRORES to avcodec.h. + +2011-02-03 - fe9a3fb - lavc 52.109.0 - H.264 profile defines + Add defines for H.264 * Constrained Baseline and Intra profiles + +2011-02-02 - lavf 52.95.0 + * 50196a9 - add a new installed header version.h. + * 4efd5cf, dccbd97, 93b78d1 - add several variants of public + avio_{put,get}_str* functions. Deprecate corresponding semi-public + {put,get}_str*. + +2011-02-02 - dfd2a00 - lavu 50.37.0 - log.h + Make av_dlog public. + +2011-01-31 - 7b3ea55 - lavfi 1.76.0 - vsrc_buffer + Add sample_aspect_ratio fields to vsrc_buffer arguments + +2011-01-31 - 910b5b8 - lavfi 1.75.0 - AVFilterLink sample_aspect_ratio + Add sample_aspect_ratio field to AVFilterLink. + +2011-01-15 - a242ac3 - lavfi 1.74.0 - AVFilterBufferRefAudioProps + Rename AVFilterBufferRefAudioProps.samples_nb to nb_samples. + +2011-01-14 - 7f88a5b - lavf 52.93.0 - av_metadata_copy() + Add av_metadata_copy() in avformat.h. + +2011-01-07 - 81c623f - lavc 52.107.0 - deprecate reordered_opaque + Deprecate reordered_opaque in favor of pkt_pts/dts. + +2011-01-07 - 1919fea - lavc 52.106.0 - pkt_dts + Add pkt_dts to AVFrame, this will in the future allow multithreading decoders + to not mess up dts. + +2011-01-07 - 393cbb9 - lavc 52.105.0 - pkt_pts + Add pkt_pts to AVFrame. + +2011-01-07 - 060ec0a - lavc 52.104.0 - av_get_profile_name() + Add av_get_profile_name to libavcodec/avcodec.h. + +2010-12-27 - 0ccabee - lavfi 1.71.0 - AV_PERM_NEG_LINESIZES + Add AV_PERM_NEG_LINESIZES in avfilter.h. + +2010-12-27 - 9128ae0 - lavf 52.91.0 - av_find_best_stream() + Add av_find_best_stream to libavformat/avformat.h. + +2010-12-27 - 107a7e3 - lavf 52.90.0 + Add AVFMT_NOSTREAMS flag for formats with no streams, + like e.g. text metadata. + +2010-12-22 - 0328b9e - lavu 50.36.0 - file.h + Add functions av_file_map() and av_file_unmap() in file.h. + +2010-12-19 - 0bc55f5 - lavu 50.35.0 - error.h + Add "not found" error codes: + AVERROR_DEMUXER_NOT_FOUND + AVERROR_MUXER_NOT_FOUND + AVERROR_DECODER_NOT_FOUND + AVERROR_ENCODER_NOT_FOUND + AVERROR_PROTOCOL_NOT_FOUND + AVERROR_FILTER_NOT_FOUND + AVERROR_BSF_NOT_FOUND + AVERROR_STREAM_NOT_FOUND + +2010-12-09 - c61cdd0 - lavcore 0.16.0 - avcore.h + Move AV_NOPTS_VALUE, AV_TIME_BASE, AV_TIME_BASE_Q symbols from + avcodec.h to avcore.h. + +2010-12-04 - 16cfc96 - lavc 52.98.0 - CODEC_CAP_NEG_LINESIZES + Add CODEC_CAP_NEG_LINESIZES codec capability flag in avcodec.h. + +2010-12-04 - bb4afa1 - lavu 50.34.0 - av_get_pix_fmt_string() + Deprecate avcodec_pix_fmt_string() in favor of + pixdesc.h/av_get_pix_fmt_string(). + +2010-12-04 - 4da12e3 - lavcore 0.15.0 - av_image_alloc() + Add av_image_alloc() to libavcore/imgutils.h. + +2010-12-02 - 037be76 - lavfi 1.67.0 - avfilter_graph_create_filter() + Add function avfilter_graph_create_filter() in avfiltergraph.h. + +2010-11-25 - 4723bc2 - lavfi 1.65.0 - avfilter_get_video_buffer_ref_from_arrays() + Add function avfilter_get_video_buffer_ref_from_arrays() in + avfilter.h. + +2010-11-21 - 176a615 - lavcore 0.14.0 - audioconvert.h + Add a public audio channel API in audioconvert.h, and deprecate the + corresponding functions in libavcodec: + avcodec_get_channel_name() + avcodec_get_channel_layout() + avcodec_get_channel_layout_string() + avcodec_channel_layout_num_channels() + and the CH_* macros defined in libavcodec/avcodec.h. + +2010-11-21 - 6bfc268 - lavf 52.85.0 - avformat.h + Add av_append_packet(). + +2010-11-21 - a08d918 - lavc 52.97.0 - avcodec.h + Add av_grow_packet(). + +2010-11-17 - 0985e1a - lavcore 0.13.0 - parseutils.h + Add av_parse_color() declared in libavcore/parseutils.h. + +2010-11-13 - cb2c971 - lavc 52.95.0 - AVCodecContext + Add AVCodecContext.subtitle_header and AVCodecContext.subtitle_header_size + fields. + +2010-11-13 - 5aaea02 - lavfi 1.62.0 - avfiltergraph.h + Make avfiltergraph.h public. + +2010-11-13 - 4fcbb2a - lavfi 1.61.0 - avfiltergraph.h + Remove declarations from avfiltergraph.h for the functions: + avfilter_graph_check_validity() + avfilter_graph_config_links() + avfilter_graph_config_formats() + which are now internal. + Use avfilter_graph_config() instead. + +2010-11-08 - d2af720 - lavu 50.33.0 - eval.h + Deprecate functions: + av_parse_and_eval_expr(), + av_parse_expr(), + av_eval_expr(), + av_free_expr(), + in favor of the functions: + av_expr_parse_and_eval(), + av_expr_parse(), + av_expr_eval(), + av_expr_free(). + +2010-11-08 - 24de0ed - lavfi 1.59.0 - avfilter_free() + Rename avfilter_destroy() to avfilter_free(). + This change breaks libavfilter API/ABI. + +2010-11-07 - 1e80a0e - lavfi 1.58.0 - avfiltergraph.h + Remove graphparser.h header, move AVFilterInOut and + avfilter_graph_parse() declarations to libavfilter/avfiltergraph.h. + +2010-11-07 - 7313132 - lavfi 1.57.0 - AVFilterInOut + Rename field AVFilterInOut.filter to AVFilterInOut.filter_ctx. + This change breaks libavfilter API. + +2010-11-04 - 97dd1e4 - lavfi 1.56.0 - avfilter_graph_free() + Rename avfilter_graph_destroy() to avfilter_graph_free(). + This change breaks libavfilter API/ABI. + +2010-11-04 - e15aeea - lavfi 1.55.0 - avfilter_graph_alloc() + Add avfilter_graph_alloc() to libavfilter/avfiltergraph.h. + +2010-11-02 - 6f84cd1 - lavcore 0.12.0 - av_get_bits_per_sample_fmt() + Add av_get_bits_per_sample_fmt() to libavcore/samplefmt.h and + deprecate av_get_bits_per_sample_format(). + +2010-11-02 - d63e456 - lavcore 0.11.0 - samplefmt.h + Add sample format functions in libavcore/samplefmt.h: + av_get_sample_fmt_name(), + av_get_sample_fmt(), + av_get_sample_fmt_string(), + and deprecate the corresponding libavcodec/audioconvert.h functions: + avcodec_get_sample_fmt_name(), + avcodec_get_sample_fmt(), + avcodec_sample_fmt_string(). + +2010-11-02 - 262d1c5 - lavcore 0.10.0 - samplefmt.h + Define enum AVSampleFormat in libavcore/samplefmt.h, deprecate enum + SampleFormat. + +2010-10-16 - 2a24df9 - lavfi 1.52.0 - avfilter_graph_config() + Add the function avfilter_graph_config() in avfiltergraph.h. + +2010-10-15 - 03700d3 - lavf 52.83.0 - metadata API + Change demuxers to export metadata in generic format and + muxers to accept generic format. Deprecate the public + conversion API. + +2010-10-10 - 867ae7a - lavfi 1.49.0 - AVFilterLink.time_base + Add time_base field to AVFilterLink. + +2010-09-27 - c85eef4 - lavu 50.31.0 - av_set_options_string() + Move av_set_options_string() from libavfilter/parseutils.h to + libavutil/opt.h. + +2010-09-27 - acc0490 - lavfi 1.47.0 - AVFilterLink + Make the AVFilterLink fields srcpad and dstpad store the pointers to + the source and destination pads, rather than their indexes. + +2010-09-27 - 372e288 - lavu 50.30.0 - av_get_token() + Move av_get_token() from libavfilter/parseutils.h to + libavutil/avstring.h. + +2010-09-26 - 635d4ae - lsws 0.12.0 - swscale.h + Add the functions sws_alloc_context() and sws_init_context(). + +2010-09-26 - 6ed0404 - lavu 50.29.0 - opt.h + Move libavcodec/opt.h to libavutil/opt.h. + +2010-09-24 - 1c1c80f - lavu 50.28.0 - av_log_set_flags() + Default of av_log() changed due to many problems to the old no repeat + detection. Read the docs of AV_LOG_SKIP_REPEATED in log.h before + enabling it for your app!. + +2010-09-24 - f66eb58 - lavc 52.90.0 - av_opt_show2() + Deprecate av_opt_show() in favor or av_opt_show2(). + +2010-09-14 - bc6f0af - lavu 50.27.0 - av_popcount() + Add av_popcount() to libavutil/common.h. + +2010-09-08 - c6c98d0 - lavu 50.26.0 - av_get_cpu_flags() + Add av_get_cpu_flags(). + +2010-09-07 - 34017fd - lavcore 0.9.0 - av_image_copy() + Add av_image_copy(). + +2010-09-07 - 9686abb - lavcore 0.8.0 - av_image_copy_plane() + Add av_image_copy_plane(). + +2010-09-07 - 9b7269e - lavcore 0.7.0 - imgutils.h + Adopt hierarchical scheme for the imgutils.h function names, + deprecate the old names. + +2010-09-04 - 7160bb7 - lavu 50.25.0 - AV_CPU_FLAG_* + Deprecate the FF_MM_* flags defined in libavcodec/avcodec.h in favor + of the AV_CPU_FLAG_* flags defined in libavutil/cpu.h. + +2010-08-26 - 5da19b5 - lavc 52.87.0 - avcodec_get_channel_layout() + Add avcodec_get_channel_layout() in audioconvert.h. + +2010-08-20 - e344336 - lavcore 0.6.0 - av_fill_image_max_pixsteps() + Rename av_fill_image_max_pixstep() to av_fill_image_max_pixsteps(). + +2010-08-18 - a6ddf8b - lavcore 0.5.0 - av_fill_image_max_pixstep() + Add av_fill_image_max_pixstep() in imgutils.h. + +2010-08-17 - 4f2d2e4 - lavu 50.24.0 - AV_NE() + Add the AV_NE macro. + +2010-08-17 - ad2c950 - lavfi 1.36.0 - audio framework + Implement AVFilterBufferRefAudioProps struct for audio properties, + get_audio_buffer(), filter_samples() functions and related changes. + +2010-08-12 - 81c1eca - lavcore 0.4.0 - av_get_image_linesize() + Add av_get_image_linesize() in imgutils.h. + +2010-08-11 - c1db7bf - lavfi 1.34.0 - AVFilterBufferRef + Resize data and linesize arrays in AVFilterBufferRef to 8. + + This change breaks libavfilter API/ABI. + +2010-08-11 - 9f08d80 - lavc 52.85.0 - av_picture_data_copy() + Add av_picture_data_copy in avcodec.h. + +2010-08-11 - 84c0386 - lavfi 1.33.0 - avfilter_open() + Change avfilter_open() signature: + AVFilterContext *avfilter_open(AVFilter *filter, const char *inst_name) -> + int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name); + + This change breaks libavfilter API/ABI. + +2010-08-11 - cc80caf - lavfi 1.32.0 - AVFilterBufferRef + Add a type field to AVFilterBufferRef, and move video specific + properties to AVFilterBufferRefVideoProps. + + This change breaks libavfilter API/ABI. + +2010-08-07 - 5d4890d - lavfi 1.31.0 - AVFilterLink + Rename AVFilterLink fields: + AVFilterLink.srcpic -> AVFilterLink.src_buf + AVFilterLink.cur_pic -> AVFilterLink.cur_buf + AVFilterLink.outpic -> AVFilterLink.out_buf + +2010-08-07 - 7fce481 - lavfi 1.30.0 + Rename functions and fields: + avfilter_(un)ref_pic -> avfilter_(un)ref_buffer + avfilter_copy_picref_props -> avfilter_copy_buffer_ref_props + AVFilterBufferRef.pic -> AVFilterBufferRef.buffer + +2010-08-07 - ecc8dad - lavfi 1.29.0 - AVFilterBufferRef + Rename AVFilterPicRef to AVFilterBufferRef. + +2010-08-07 - d54e094 - lavfi 1.28.0 - AVFilterBuffer + Move format field from AVFilterBuffer to AVFilterPicRef. + +2010-08-06 - bf176f5 - lavcore 0.3.0 - av_check_image_size() + Deprecate avcodec_check_dimensions() in favor of the function + av_check_image_size() defined in libavcore/imgutils.h. + +2010-07-30 - 56b5e9d - lavfi 1.27.0 - AVFilterBuffer + Increase size of the arrays AVFilterBuffer.data and + AVFilterBuffer.linesize from 4 to 8. + + This change breaks libavfilter ABI. + +2010-07-29 - e7bd48a - lavcore 0.2.0 - imgutils.h + Add functions av_fill_image_linesizes() and + av_fill_image_pointers(), declared in libavcore/imgutils.h. + +2010-07-27 - 126b638 - lavcore 0.1.0 - parseutils.h + Deprecate av_parse_video_frame_size() and av_parse_video_frame_rate() + defined in libavcodec in favor of the newly added functions + av_parse_video_size() and av_parse_video_rate() declared in + libavcore/parseutils.h. + +2010-07-23 - 4485247 - lavu 50.23.0 - mathematics.h + Add the M_PHI constant definition. + +2010-07-22 - bdab614 - lavfi 1.26.0 - media format generalization + Add a type field to AVFilterLink. + + Change the field types: + enum PixelFormat format -> int format in AVFilterBuffer + enum PixelFormat *formats -> int *formats in AVFilterFormats + enum PixelFormat *format -> int format in AVFilterLink + + Change the function signatures: + AVFilterFormats *avfilter_make_format_list(const enum PixelFormat *pix_fmts); -> + AVFilterFormats *avfilter_make_format_list(const int *fmts); + + int avfilter_add_colorspace(AVFilterFormats **avff, enum PixelFormat pix_fmt); -> + int avfilter_add_format (AVFilterFormats **avff, int fmt); + + AVFilterFormats *avfilter_all_colorspaces(void); -> + AVFilterFormats *avfilter_all_formats (enum AVMediaType type); + + This change breaks libavfilter API/ABI. + +2010-07-21 - aac6ca6 - lavcore 0.0.0 + Add libavcore. + +2010-07-17 - b5c582f - lavfi 1.25.0 - AVFilterBuffer + Remove w and h fields from AVFilterBuffer. + +2010-07-17 - f0d77b2 - lavfi 1.24.0 - AVFilterBuffer + Rename AVFilterPic to AVFilterBuffer. + +2010-07-17 - 57fe80f - lavf 52.74.0 - url_fskip() + Make url_fskip() return an int error code instead of void. + +2010-07-11 - 23940f1 - lavc 52.83.0 + Add AVCodecContext.lpc_type and AVCodecContext.lpc_passes fields. + Add AVLPCType enum. + Deprecate AVCodecContext.use_lpc. + +2010-07-11 - e1d7c88 - lavc 52.82.0 - avsubtitle_free() + Add a function for free the contents of a AVSubtitle generated by + avcodec_decode_subtitle. + +2010-07-11 - b91d08f - lavu 50.22.0 - bswap.h and intreadwrite.h + Make the bswap.h and intreadwrite.h API public. + +2010-07-08 - ce1cd1c - lavu 50.21.0 - pixdesc.h + Rename read/write_line() to av_read/write_image_line(). + +2010-07-07 - 4d508e4 - lavfi 1.21.0 - avfilter_copy_picref_props() + Add avfilter_copy_picref_props(). + +2010-07-03 - 2d525ef - lavc 52.79.0 + Add FF_COMPLIANCE_UNOFFICIAL and change all instances of + FF_COMPLIANCE_INOFFICIAL to use FF_COMPLIANCE_UNOFFICIAL. + +2010-07-02 - 89eec74 - lavu 50.20.0 - lfg.h + Export av_lfg_init(), av_lfg_get(), av_mlfg_get(), and av_bmg_get() through + lfg.h. + +2010-06-28 - a52e2c3 - lavfi 1.20.1 - av_parse_color() + Extend av_parse_color() syntax, make it accept an alpha value specifier and + set the alpha value to 255 by default. + +2010-06-22 - 735cf6b - lavf 52.71.0 - URLProtocol.priv_data_size, priv_data_class + Add priv_data_size and priv_data_class to URLProtocol. + +2010-06-22 - ffbb289 - lavf 52.70.0 - url_alloc(), url_connect() + Add url_alloc() and url_connect(). + +2010-06-22 - 9b07a2d - lavf 52.69.0 - av_register_protocol2() + Add av_register_protocol2(), deprecating av_register_protocol(). + +2010-06-09 - 65db058 - lavu 50.19.0 - av_compare_mod() + Add av_compare_mod() to libavutil/mathematics.h. + +2010-06-05 - 0b99215 - lavu 50.18.0 - eval API + Make the eval API public. + +2010-06-04 - 31878fc - lavu 50.17.0 - AV_BASE64_SIZE + Add AV_BASE64_SIZE() macro. + +2010-06-02 - 7e566bb - lavc 52.73.0 - av_get_codec_tag_string() + Add av_get_codec_tag_string(). + +2010-06-01 - 2b99142 - lsws 0.11.0 - convertPalette API + Add sws_convertPalette8ToPacked32() and sws_convertPalette8ToPacked24(). + +2010-05-26 - 93ebfee - lavc 52.72.0 - CODEC_CAP_EXPERIMENTAL + Add CODEC_CAP_EXPERIMENTAL flag. + NOTE: this was backported to 0.6 + +2010-05-23 - 9977863 - lavu 50.16.0 - av_get_random_seed() + Add av_get_random_seed(). + +2010-05-18 - 796ac23 - lavf 52.63.0 - AVFMT_FLAG_RTP_HINT + Add AVFMT_FLAG_RTP_HINT as possible value for AVFormatContext.flags. + NOTE: this was backported to 0.6 + +2010-05-09 - b6bc205 - lavfi 1.20.0 - AVFilterPicRef + Add interlaced and top_field_first fields to AVFilterPicRef. + +------------------------------8<------------------------------------- + 0.6 branch was cut here +----------------------------->8-------------------------------------- + +2010-05-01 - 8e2ee18 - lavf 52.62.0 - probe function + Add av_probe_input_format2 to API, it allows ignoring probe + results below given score and returns the actual probe score. + +2010-04-01 - 3dd6180 - lavf 52.61.0 - metadata API + Add a flag for av_metadata_set2() to disable overwriting of + existing tags. + +2010-04-01 - 0fb49b5 - lavc 52.66.0 + Add avcodec_get_edge_width(). + +2010-03-31 - d103218 - lavc 52.65.0 + Add avcodec_copy_context(). + +2010-03-31 - 1a70d12 - lavf 52.60.0 - av_match_ext() + Make av_match_ext() public. + +2010-03-31 - 1149150 - lavu 50.14.0 - AVMediaType + Move AVMediaType enum from libavcodec to libavutil. + +2010-03-31 - 72415b2 - lavc 52.64.0 - AVMediaType + Define AVMediaType enum, and use it instead of enum CodecType, which + is deprecated and will be dropped at the next major bump. + +2010-03-25 - 8795823 - lavu 50.13.0 - av_strerror() + Implement av_strerror(). + +2010-03-23 - e1484eb - lavc 52.60.0 - av_dct_init() + Support DCT-I and DST-I. + +2010-03-15 - b8819c8 - lavf 52.56.0 - AVFormatContext.start_time_realtime + Add AVFormatContext.start_time_realtime field. + +2010-03-13 - 5bb5c1d - lavfi 1.18.0 - AVFilterPicRef.pos + Add AVFilterPicRef.pos field. + +2010-03-13 - 60c144f - lavu 50.12.0 - error.h + Move error code definitions from libavcodec/avcodec.h to + the new public header libavutil/error.h. + +2010-03-07 - c709483 - lavc 52.56.0 - avfft.h + Add public FFT interface. + +2010-03-06 - ac6ef86 - lavu 50.11.0 - av_stristr() + Add av_stristr(). + +2010-03-03 - 4b83fc0 - lavu 50.10.0 - av_tree_enumerate() + Add av_tree_enumerate(). + +2010-02-07 - b687c1a - lavu 50.9.0 - av_compare_ts() + Add av_compare_ts(). + +2010-02-05 - 3f3dc76 - lsws 0.10.0 - sws_getCoefficients() + Add sws_getCoefficients(). + +2010-02-01 - ca76a11 - lavf 52.50.0 - metadata API + Add a list of generic tag names, change 'author' -> 'artist', + 'year' -> 'date'. + +2010-01-30 - 80a07f6 - lavu 50.8.0 - av_get_pix_fmt() + Add av_get_pix_fmt(). + +2010-01-21 - 01cc47d - lsws 0.9.0 - sws_scale() + Change constness attributes of sws_scale() parameters. + +2010-01-10 - 3fb8e77 - lavfi 1.15.0 - avfilter_graph_config_links() + Add a log_ctx parameter to avfilter_graph_config_links(). + +2010-01-07 - 8e9767f - lsws 0.8.0 - sws_isSupported{In,Out}put() + Add sws_isSupportedInput() and sws_isSupportedOutput() functions. + +2010-01-06 - c1d662f - lavfi 1.14.0 - avfilter_add_colorspace() + Change the avfilter_add_colorspace() signature, make it accept an + (AVFilterFormats **) rather than an (AVFilterFormats *) as before. + +2010-01-03 - 4fd1f18 - lavfi 1.13.0 - avfilter_add_colorspace() + Add avfilter_add_colorspace(). + +2010-01-02 - 8eb631f - lavf 52.46.0 - av_match_ext() + Add av_match_ext(), it should be used in place of match_ext(). + +2010-01-01 - a1f547b - lavf 52.45.0 - av_guess_format() + Add av_guess_format(), it should be used in place of guess_format(). + +2009-12-13 - a181981 - lavf 52.43.0 - metadata API + Add av_metadata_set2(), AV_METADATA_DONT_STRDUP_KEY and + AV_METADATA_DONT_STRDUP_VAL. + +2009-12-13 - 277c733 - lavu 50.7.0 - avstring.h API + Add av_d2str(). + +2009-12-13 - 02b398e - lavc 52.42.0 - AVStream + Add avg_frame_rate. + +2009-12-12 - 3ba69a1 - lavu 50.6.0 - av_bmg_next() + Introduce the av_bmg_next() function. + +2009-12-05 - a13a543 - lavfi 1.12.0 - avfilter_draw_slice() + Add a slice_dir parameter to avfilter_draw_slice(). + +2009-11-26 - 4cc3f6a - lavfi 1.11.0 - AVFilter + Remove the next field from AVFilter, this is not anymore required. + +2009-11-25 - 1433c4a - lavfi 1.10.0 - avfilter_next() + Introduce the avfilter_next() function. + +2009-11-25 - 86a60fa - lavfi 1.9.0 - avfilter_register() + Change the signature of avfilter_register() to make it return an + int. This is required since now the registration operation may fail. + +2009-11-25 - 74a0059 - lavu 50.5.0 - pixdesc.h API + Make the pixdesc.h API public. + +2009-10-27 - 243110f - lavfi 1.5.0 - AVFilter.next + Add a next field to AVFilter, this is used for simplifying the + registration and management of the registered filters. + +2009-10-23 - cccd292 - lavfi 1.4.1 - AVFilter.description + Add a description field to AVFilter. + +2009-10-19 - 6b5dc05 - lavfi 1.3.0 - avfilter_make_format_list() + Change the interface of avfilter_make_format_list() from + avfilter_make_format_list(int n, ...) to + avfilter_make_format_list(enum PixelFormat *pix_fmts). + +2009-10-18 - 0eb4ff9 - lavfi 1.0.0 - avfilter_get_video_buffer() + Make avfilter_get_video_buffer() recursive and add the w and h + parameters to it. + +2009-10-07 - 46c40e4 - lavfi 0.5.1 - AVFilterPic + Add w and h fields to AVFilterPic. + +2009-06-22 - 92400be - lavf 52.34.1 - AVFormatContext.packet_size + This is now an unsigned int instead of a signed int. + +2009-06-19 - a4276ba - lavc 52.32.0 - AVSubtitle.pts + Add a pts field to AVSubtitle which gives the subtitle packet pts + in AV_TIME_BASE. Some subtitle de-/encoders (e.g. XSUB) will + not work right without this. + +2009-06-03 - 8f3f2e0 - lavc 52.30.2 - AV_PKT_FLAG_KEY + PKT_FLAG_KEY has been deprecated and will be dropped at the next + major version. Use AV_PKT_FLAG_KEY instead. + +2009-06-01 - f988ce6 - lavc 52.30.0 - av_lockmgr_register() + av_lockmgr_register() can be used to register a callback function + that lavc (and in the future, libraries that depend on lavc) can use + to implement mutexes. The application should provide a callback function + that implements the AV_LOCK_* operations described in avcodec.h. + When the lock manager is registered, FFmpeg is guaranteed to behave + correctly in a multi-threaded application. + +2009-04-30 - ce1d9c8 - lavc 52.28.0 - av_free_packet() + av_free_packet() is no longer an inline function. It is now exported. + +2009-04-11 - 80d403f - lavc 52.25.0 - deprecate av_destruct_packet_nofree() + Please use NULL instead. This has been supported since r16506 + (lavf > 52.23.1, lavc > 52.10.0). + +2009-04-07 - 7a00bba - lavc 52.23.0 - avcodec_decode_video/audio/subtitle + The old decoding functions are deprecated, all new code should use the + new functions avcodec_decode_video2(), avcodec_decode_audio3() and + avcodec_decode_subtitle2(). These new functions take an AVPacket *pkt + argument instead of a const uint8_t *buf / int buf_size pair. + +2009-04-03 - 7b09db3 - lavu 50.3.0 - av_fifo_space() + Introduce the av_fifo_space() function. + +2009-04-02 - fabd246 - lavc 52.23.0 - AVPacket + Move AVPacket declaration from libavformat/avformat.h to + libavcodec/avcodec.h. + +2009-03-22 - 6e08ca9 - lavu 50.2.0 - RGB32 pixel formats + Convert the pixel formats PIX_FMT_ARGB, PIX_FMT_RGBA, PIX_FMT_ABGR, + PIX_FMT_BGRA, which were defined as macros, into enum PixelFormat values. + Conversely PIX_FMT_RGB32, PIX_FMT_RGB32_1, PIX_FMT_BGR32 and + PIX_FMT_BGR32_1 are now macros. + avcodec_get_pix_fmt() now recognizes the "rgb32" and "bgr32" aliases. + Re-sort the enum PixelFormat list accordingly. + This change breaks API/ABI backward compatibility. + +2009-03-22 - f82674e - lavu 50.1.0 - PIX_FMT_RGB5X5 endian variants + Add the enum PixelFormat values: + PIX_FMT_RGB565BE, PIX_FMT_RGB565LE, PIX_FMT_RGB555BE, PIX_FMT_RGB555LE, + PIX_FMT_BGR565BE, PIX_FMT_BGR565LE, PIX_FMT_BGR555BE, PIX_FMT_BGR555LE. + +2009-03-21 - ee6624e - lavu 50.0.0 - av_random* + The Mersenne Twister PRNG implemented through the av_random* functions + was removed. Use the lagged Fibonacci PRNG through the av_lfg* functions + instead. + +2009-03-08 - 41dd680 - lavu 50.0.0 - AVFifoBuffer + av_fifo_init, av_fifo_read, av_fifo_write and av_fifo_realloc were dropped + and replaced by av_fifo_alloc, av_fifo_generic_read, av_fifo_generic_write + and av_fifo_realloc2. + In addition, the order of the function arguments of av_fifo_generic_read + was changed to match av_fifo_generic_write. + The AVFifoBuffer/struct AVFifoBuffer may only be used in an opaque way by + applications, they may not use sizeof() or directly access members. + +2009-03-01 - ec26457 - lavf 52.31.0 - Generic metadata API + Introduce a new metadata API (see av_metadata_get() and friends). + The old API is now deprecated and should not be used anymore. This especially + includes the following structure fields: + - AVFormatContext.title + - AVFormatContext.author + - AVFormatContext.copyright + - AVFormatContext.comment + - AVFormatContext.album + - AVFormatContext.year + - AVFormatContext.track + - AVFormatContext.genre + - AVStream.language + - AVStream.filename + - AVProgram.provider_name + - AVProgram.name + - AVChapter.title diff --git a/ffmpeg/doc/Doxyfile b/ffmpeg/doc/Doxyfile new file mode 100644 index 0000000..7e6d0f5 --- /dev/null +++ b/ffmpeg/doc/Doxyfile @@ -0,0 +1,1624 @@ +# Doxyfile 1.7.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = FFmpeg + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will +# copy the logo to the output directory. +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/doxy + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = . + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = *.git \ + *.d + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = doc/examples/ + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = *.c + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 2 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +#HTML_HEADER = doc/doxy/header.html + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +#HTML_FOOTER = doc/doxy/footer.html + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +#HTML_STYLESHEET = doc/doxy/doxy_stylesheet.css + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the stylesheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +#HTML_COLORSTYLE_HUE = 120 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OS X 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = NO + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvances is that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = YES + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = "__attribute__(x)=" \ + "DECLARE_ALIGNED(a,t,n)=t n" \ + "offsetof(x,y)=0x42" \ + av_alloc_size \ + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = declare_idct \ + READ_PAR_DATA \ + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = YES + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/ffmpeg/doc/Makefile b/ffmpeg/doc/Makefile new file mode 100644 index 0000000..a861655 --- /dev/null +++ b/ffmpeg/doc/Makefile @@ -0,0 +1,103 @@ +LIBRARIES-$(CONFIG_AVUTIL) += libavutil +LIBRARIES-$(CONFIG_SWSCALE) += libswscale +LIBRARIES-$(CONFIG_SWRESAMPLE) += libswresample +LIBRARIES-$(CONFIG_AVCODEC) += libavcodec +LIBRARIES-$(CONFIG_AVFORMAT) += libavformat +LIBRARIES-$(CONFIG_AVDEVICE) += libavdevice +LIBRARIES-$(CONFIG_AVFILTER) += libavfilter + +COMPONENTS-yes = $(PROGS-yes) +COMPONENTS-$(CONFIG_AVUTIL) += ffmpeg-utils +COMPONENTS-$(CONFIG_SWSCALE) += ffmpeg-scaler +COMPONENTS-$(CONFIG_SWRESAMPLE) += ffmpeg-resampler +COMPONENTS-$(CONFIG_AVCODEC) += ffmpeg-codecs ffmpeg-bitstream-filters +COMPONENTS-$(CONFIG_AVFORMAT) += ffmpeg-formats ffmpeg-protocols +COMPONENTS-$(CONFIG_AVDEVICE) += ffmpeg-devices +COMPONENTS-$(CONFIG_AVFILTER) += ffmpeg-filters + +MANPAGES = $(COMPONENTS-yes:%=doc/%.1) $(LIBRARIES-yes:%=doc/%.3) +PODPAGES = $(COMPONENTS-yes:%=doc/%.pod) $(LIBRARIES-yes:%=doc/%.pod) +HTMLPAGES = $(COMPONENTS-yes:%=doc/%.html) $(LIBRARIES-yes:%=doc/%.html) \ + doc/developer.html \ + doc/faq.html \ + doc/fate.html \ + doc/general.html \ + doc/git-howto.html \ + doc/nut.html \ + doc/platform.html \ + +TXTPAGES = doc/fate.txt \ + + +DOCS-$(CONFIG_HTMLPAGES) += $(HTMLPAGES) +DOCS-$(CONFIG_PODPAGES) += $(PODPAGES) +DOCS-$(CONFIG_MANPAGES) += $(MANPAGES) +DOCS-$(CONFIG_TXTPAGES) += $(TXTPAGES) +DOCS = $(DOCS-yes) + +all-$(CONFIG_DOC): doc + +doc: documentation + +apidoc: doc/doxy/html +documentation: $(DOCS) + +TEXIDEP = awk '/^@(verbatim)?include/ { printf "$@: $(@D)/%s\n", $$2 }' <$< >$(@:%=%.d) + +doc/%.txt: TAG = TXT +doc/%.txt: doc/%.texi + $(Q)$(TEXIDEP) + $(M)makeinfo --force --no-headers -o $@ $< 2>/dev/null + +GENTEXI = format codec +GENTEXI := $(GENTEXI:%=doc/avoptions_%.texi) + +$(GENTEXI): TAG = GENTEXI +$(GENTEXI): doc/avoptions_%.texi: doc/print_options$(HOSTEXESUF) + $(M)doc/print_options $* > $@ + +doc/%.html: TAG = HTML +doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI) + $(Q)$(TEXIDEP) + $(M)texi2html -I doc -monolithic --init-file $(SRC_PATH)/doc/t2h.init --output $@ $< + +doc/%.pod: TAG = POD +doc/%.pod: doc/%.texi $(SRC_PATH)/doc/texi2pod.pl $(GENTEXI) + $(Q)$(TEXIDEP) + $(M)perl $(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@ + +doc/%.1 doc/%.3: TAG = MAN +doc/%.1: doc/%.pod $(GENTEXI) + $(M)pod2man --section=1 --center=" " --release=" " $< > $@ +doc/%.3: doc/%.pod $(GENTEXI) + $(M)pod2man --section=3 --center=" " --release=" " $< > $@ + +$(DOCS) doc/doxy/html: | doc/ + +doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(INSTHEADERS) + $(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $^ + +install-man: + +ifdef CONFIG_MANPAGES +install-progs-$(CONFIG_DOC): install-man + +install-man: $(MANPAGES) + $(Q)mkdir -p "$(MANDIR)/man1" + $(INSTALL) -m 644 $(MANPAGES) "$(MANDIR)/man1" +endif + +uninstall: uninstall-man + +uninstall-man: + $(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES)) + +clean:: docclean + +docclean: + $(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi + $(RM) -r doc/doxy/html + +-include $(wildcard $(DOCS:%=%.d)) + +.PHONY: apidoc doc documentation diff --git a/ffmpeg/doc/RELEASE_NOTES b/ffmpeg/doc/RELEASE_NOTES new file mode 100644 index 0000000..2faf40d --- /dev/null +++ b/ffmpeg/doc/RELEASE_NOTES @@ -0,0 +1,16 @@ +Release Notes +============= + +* 1.2 "Magic" March, 2013 + + +General notes +------------- +See the Changelog file for a list of significant changes. Note, there +are many more new features and bugfixes than whats listed there. + +Bugreports against FFmpeg git master or the most recent FFmpeg release are +accepted. If you are experiencing issues with any formally released version of +FFmpeg, please try git master to check if the issue still exists. If it does, +make your report against the development code following the usual bug reporting +guidelines. diff --git a/ffmpeg/doc/authors.texi b/ffmpeg/doc/authors.texi new file mode 100644 index 0000000..6c8c1d7 --- /dev/null +++ b/ffmpeg/doc/authors.texi @@ -0,0 +1,11 @@ +@chapter Authors + +The FFmpeg developers. + +For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +@command{git log} in the FFmpeg source directory, or browsing the +online repository at @url{http://source.ffmpeg.org}. + +Maintainers for the specific components are listed in the file +@file{MAINTAINERS} in the source code tree. diff --git a/ffmpeg/doc/avtools-common-opts.texi b/ffmpeg/doc/avtools-common-opts.texi new file mode 100644 index 0000000..d9d0bd0 --- /dev/null +++ b/ffmpeg/doc/avtools-common-opts.texi @@ -0,0 +1,211 @@ +All the numerical options, if not specified otherwise, accept in input +a string representing a number, which may contain one of the +SI unit prefixes, for example 'K', 'M', 'G'. +If 'i' is appended after the prefix, binary prefixes are used, +which are based on powers of 1024 instead of powers of 1000. +The 'B' postfix multiplies the value by 8, and can be +appended after a unit prefix or used alone. This allows using for +example 'KB', 'MiB', 'G' and 'B' as number postfix. + +Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +with "no" the option name, for example using "-nofoo" in the +command line will set to false the boolean option with name "foo". + +@anchor{Stream specifiers} +@section Stream specifiers +Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) does a given option belong to. + +A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. @code{-codec:a:1 ac3} option contains +@code{a:1} stream specifier, which matches the second audio stream. Therefore it +would select the ac3 codec for the second audio stream. + +A stream specifier can match several streams, the option is then applied to all +of them. E.g. the stream specifier in @code{-b:a 128k} matches all audio +streams. + +An empty stream specifier matches all streams, for example @code{-codec copy} +or @code{-codec: copy} would copy all the streams without reencoding. + +Possible forms of stream specifiers are: +@table @option +@item @var{stream_index} +Matches the stream with this index. E.g. @code{-threads:1 4} would set the +thread count for the second stream to 4. +@item @var{stream_type}[:@var{stream_index}] +@var{stream_type} is one of: 'v' for video, 'a' for audio, 's' for subtitle, +'d' for data and 't' for attachments. If @var{stream_index} is given, then +matches stream number @var{stream_index} of this type. Otherwise matches all +streams of this type. +@item p:@var{program_id}[:@var{stream_index}] +If @var{stream_index} is given, then matches stream number @var{stream_index} in +program with id @var{program_id}. Otherwise matches all streams in this program. +@item #@var{stream_id} +Matches the stream by format-specific ID. +@end table + +@section Generic options + +These options are shared amongst the av* tools. + +@table @option + +@item -L +Show license. + +@item -h, -?, -help, --help [@var{arg}] +Show help. An optional parameter may be specified to print help about a specific +item. + +Possible values of @var{arg} are: +@table @option +@item decoder=@var{decoder_name} +Print detailed information about the decoder named @var{decoder_name}. Use the +@option{-decoders} option to get a list of all decoders. + +@item encoder=@var{encoder_name} +Print detailed information about the encoder named @var{encoder_name}. Use the +@option{-encoders} option to get a list of all encoders. + +@item demuxer=@var{demuxer_name} +Print detailed information about the demuxer named @var{demuxer_name}. Use the +@option{-formats} option to get a list of all demuxers and muxers. + +@item muxer=@var{muxer_name} +Print detailed information about the muxer named @var{muxer_name}. Use the +@option{-formats} option to get a list of all muxers and demuxers. + +@end table + +@item -version +Show version. + +@item -formats +Show available formats. + +The fields preceding the format names have the following meanings: +@table @samp +@item D +Decoding available +@item E +Encoding available +@end table + +@item -codecs +Show all codecs known to libavcodec. + +Note that the term 'codec' is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. + +@item -decoders +Show available decoders. + +@item -encoders +Show all available encoders. + +@item -bsfs +Show available bitstream filters. + +@item -protocols +Show available protocols. + +@item -filters +Show available libavfilter filters. + +@item -pix_fmts +Show available pixel formats. + +@item -sample_fmts +Show available sample formats. + +@item -layouts +Show channel names and standard channel layouts. + +@item -loglevel @var{loglevel} | -v @var{loglevel} +Set the logging level used by the library. +@var{loglevel} is a number or a string containing one of the following values: +@table @samp +@item quiet +@item panic +@item fatal +@item error +@item warning +@item info +@item verbose +@item debug +@end table + +By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +@env{AV_LOG_FORCE_NOCOLOR} or @env{NO_COLOR}, or can be forced setting +the environment variable @env{AV_LOG_FORCE_COLOR}. +The use of the environment variable @env{NO_COLOR} is deprecated and +will be dropped in a following FFmpeg version. + +@item -report +Dump full command line and console output to a file named +@code{@var{program}-@var{YYYYMMDD}-@var{HHMMSS}.log} in the current +directory. +This file can be useful for bug reports. +It also implies @code{-loglevel verbose}. + +Setting the environment variable @code{FFREPORT} to any value has the +same effect. If the value is a ':'-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ':' (see the +``Quoting and escaping'' section in the ffmpeg-utils manual). The +following option is recognized: +@table @option +@item file +set the file name to use for the report; @code{%p} is expanded to the name +of the program, @code{%t} is expanded to a timestamp, @code{%%} is expanded +to a plain @code{%} +@end table + +Errors in parsing the environment variable are not fatal, and will not +appear in the report. + +@item -cpuflags flags (@emph{global}) +Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you're doing. +@example +ffmpeg -cpuflags -sse+mmx ... +ffmpeg -cpuflags mmx ... +ffmpeg -cpuflags 0 ... +@end example + +@end table + +@section AVOptions + +These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +@option{-help} option. They are separated into two categories: +@table @option +@item generic +These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +@item private +These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +@end table + +For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the @option{id3v2_version} private option of the MP3 +muxer: +@example +ffmpeg -i input.flac -id3v2_version 3 out.mp3 +@end example + +All codec AVOptions are obviously per-stream, so the chapter on stream +specifiers applies to them + +Note @option{-nooption} syntax cannot be used for boolean AVOptions, +use @option{-option 0}/@option{-option 1}. + +Note2 old undocumented way of specifying per-stream AVOptions by prepending +v/a/s to the options name is now obsolete and will be removed soon. diff --git a/ffmpeg/doc/avutil.txt b/ffmpeg/doc/avutil.txt new file mode 100644 index 0000000..0847683 --- /dev/null +++ b/ffmpeg/doc/avutil.txt @@ -0,0 +1,36 @@ +AVUtil +====== +libavutil is a small lightweight library of generally useful functions. +It is not a library for code needed by both libavcodec and libavformat. + + +Overview: +========= +adler32.c adler32 checksum +aes.c AES encryption and decryption +fifo.c resizeable first in first out buffer +intfloat_readwrite.c portable reading and writing of floating point values +log.c "printf" with context and level +md5.c MD5 Message-Digest Algorithm +rational.c code to perform exact calculations with rational numbers +tree.c generic AVL tree +crc.c generic CRC checksumming code +integer.c 128bit integer math +lls.c +mathematics.c greatest common divisor, integer sqrt, integer log2, ... +mem.c memory allocation routines with guaranteed alignment + +Headers: +bswap.h big/little/native-endian conversion code +x86_cpu.h a few useful macros for unifying x86-64 and x86-32 code +avutil.h +common.h +intreadwrite.h reading and writing of unaligned big/little/native-endian integers + + +Goals: +====== +* Modular (few interdependencies and the possibility of disabling individual parts during ./configure) +* Small (source and object) +* Efficient (low CPU and memory usage) +* Useful (avoid useless features almost no one needs) diff --git a/ffmpeg/doc/bitstream_filters.texi b/ffmpeg/doc/bitstream_filters.texi new file mode 100644 index 0000000..2ee00c1 --- /dev/null +++ b/ffmpeg/doc/bitstream_filters.texi @@ -0,0 +1,91 @@ +@chapter Bitstream Filters +@c man begin BITSTREAM FILTERS + +When you configure your FFmpeg build, all the supported bitstream +filters are enabled by default. You can list all available ones using +the configure option @code{--list-bsfs}. + +You can disable all the bitstream filters using the configure option +@code{--disable-bsfs}, and selectively enable any bitstream filter using +the option @code{--enable-bsf=BSF}, or you can disable a particular +bitstream filter using the option @code{--disable-bsf=BSF}. + +The option @code{-bsfs} of the ff* tools will display the list of +all the supported bitstream filters included in your build. + +Below is a description of the currently available bitstream filters. + +@section aac_adtstoasc + +@section chomp + +@section dump_extradata + +@section h264_mp4toannexb + +Convert an H.264 bitstream from length prefixed mode to start code +prefixed mode (as defined in the Annex B of the ITU-T H.264 +specification). + +This is required by some streaming formats, typically the MPEG-2 +transport stream format ("mpegts"). + +For example to remux an MP4 file containing an H.264 stream to mpegts +format with @command{ffmpeg}, you can use the command: + +@example +ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts +@end example + +@section imx_dump_header + +@section mjpeg2jpeg + +Convert MJPEG/AVI1 packets to full JPEG/JFIF packets. + +MJPEG is a video codec wherein each video frame is essentially a +JPEG image. The individual frames can be extracted without loss, +e.g. by + +@example +ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg +@end example + +Unfortunately, these chunks are incomplete JPEG images, because +they lack the DHT segment required for decoding. Quoting from +@url{http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml}: + +Avery Lee, writing in the rec.video.desktop newsgroup in 2001, +commented that "MJPEG, or at least the MJPEG in AVIs having the +MJPG fourcc, is restricted JPEG with a fixed -- and *omitted* -- +Huffman table. The JPEG must be YCbCr colorspace, it must be 4:2:2, +and it must use basic Huffman encoding, not arithmetic or +progressive. . . . You can indeed extract the MJPEG frames and +decode them with a regular JPEG decoder, but you have to prepend +the DHT segment to them, or else the decoder won't have any idea +how to decompress the data. The exact table necessary is given in +the OpenDML spec." + +This bitstream filter patches the header of frames extracted from an MJPEG +stream (carrying the AVI1 header ID and lacking a DHT segment) to +produce fully qualified JPEG images. + +@example +ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg +exiftran -i -9 frame*.jpg +ffmpeg -i frame_%d.jpg -c:v copy rotated.avi +@end example + +@section mjpega_dump_header + +@section movsub + +@section mp3_header_compress + +@section mp3_header_decompress + +@section noise + +@section remove_extradata + +@c man end BITSTREAM FILTERS diff --git a/ffmpeg/doc/build_system.txt b/ffmpeg/doc/build_system.txt new file mode 100644 index 0000000..36c141e --- /dev/null +++ b/ffmpeg/doc/build_system.txt @@ -0,0 +1,50 @@ +FFmpeg currently uses a custom build system, this text attempts to document +some of its obscure features and options. + +Makefile variables: + +V + Disable the default terse mode, the full command issued by make and its + output will be shown on the screen. + +DESTDIR + Destination directory for the install targets, useful to prepare packages + or install FFmpeg in cross-environments. + +Makefile targets: + +all + Default target, builds all the libraries and the executables. + +fate + Run the fate test suite, note you must have installed it + +fate-list + Will list all fate/regression test targets + +install + Install headers, libraries and programs. + +libavformat/output-example + Build the libavformat basic example. + +libavcodec/api-example + Build the libavcodec basic example. + +libswscale/swscale-test + Build the swscale self-test (useful also as example). + + +Useful standard make commands: +make -t + Touch all files that otherwise would be build, this is useful to reduce + unneeded rebuilding when changing headers, but note you must force rebuilds + of files that actually need it by hand then. + +make -j + rebuild with multiple jobs at the same time. Faster on multi processor systems + +make -k + continue build in case of errors, this is useful for the regression tests + sometimes but note it will still not run all reg tests. + diff --git a/ffmpeg/doc/decoders.texi b/ffmpeg/doc/decoders.texi new file mode 100644 index 0000000..2d812a2 --- /dev/null +++ b/ffmpeg/doc/decoders.texi @@ -0,0 +1,89 @@ +@chapter Decoders +@c man begin DECODERS + +Decoders are configured elements in FFmpeg which allow the decoding of +multimedia streams. + +When you configure your FFmpeg build, all the supported native decoders +are enabled by default. Decoders requiring an external library must be enabled +manually via the corresponding @code{--enable-lib} option. You can list all +available decoders using the configure option @code{--list-decoders}. + +You can disable all the decoders with the configure option +@code{--disable-decoders} and selectively enable / disable single decoders +with the options @code{--enable-decoder=@var{DECODER}} / +@code{--disable-decoder=@var{DECODER}}. + +The option @code{-codecs} of the ff* tools will display the list of +enabled decoders. + +@c man end DECODERS + +@chapter Video Decoders +@c man begin VIDEO DECODERS + +A description of some of the currently available video decoders +follows. + +@section rawvideo + +Raw video decoder. + +This decoder decodes rawvideo streams. + +@subsection Options + +@table @option +@item top @var{top_field_first} +Specify the assumed field type of the input video. +@table @option +@item -1 +the video is assumed to be progressive (default) +@item 0 +bottom-field-first is assumed +@item 1 +top-field-first is assumed +@end table + +@end table + +@c man end VIDEO DECODERS + +@chapter Audio Decoders +@c man begin AUDIO DECODERS + +@section ffwavesynth + +Internal wave synthetizer. + +This decoder generates wave patterns according to predefined sequences. Its +use is purely internal and the format of the data it accepts is not publicly +documented. + +@c man end AUDIO DECODERS + +@chapter Subtitles Decoders +@c man begin SUBTILES DECODERS + +@section dvdsub + +This codec decodes the bitmap subtitles used in DVDs; the same subtitles can +also be found in VobSub file pairs and in some Matroska files. + +@subsection Options + +@table @option +@item palette +Specify the global palette used by the bitmaps. When stored in VobSub, the +palette is normally specified in the index file; in Matroska, the palette is +stored in the codec extra-data in the same format as in VobSub. In DVDs, the +palette is stored in the IFO file, and therefore not available when reading +from dumped VOB files. + +The format for this option is a string containing 16 24-bits hexadecimal +numbers (without 0x prefix) separated by comas, for example @code{0d00ee, +ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, +7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b}. +@end table + +@c man end SUBTILES DECODERS diff --git a/ffmpeg/doc/default.css b/ffmpeg/doc/default.css new file mode 100644 index 0000000..77a3514 --- /dev/null +++ b/ffmpeg/doc/default.css @@ -0,0 +1,149 @@ +a { + color: #2D6198; +} + +a:visited { + color: #884488; +} + +#banner { + background-color: white; + position: relative; + text-align: center; +} + +#banner img { + padding-bottom: 1px; + padding-top: 5px; +} + +#body { + margin-left: 1em; + margin-right: 1em; +} + +body { + background-color: #313131; + margin: 0; + text-align: justify; +} + +.center { + margin-left: auto; + margin-right: auto; + text-align: center; +} + +#container { + background-color: white; + color: #202020; + margin-left: 1em; + margin-right: 1em; +} + +#footer { + text-align: center; +} + +h1, h2, h3 { + padding-left: 0.4em; + border-radius: 4px; + padding-bottom: 0.2em; + padding-top: 0.2em; + border: 1px solid #6A996A; +} + +h1 { + background-color: #7BB37B; + color: #151515; + font-size: 1.2em; + padding-bottom: 0.3em; + padding-top: 0.3em; +} + +h2 { + color: #313131; + font-size: 0.9em; + background-color: #ABE3AB; +} + +h3 { + color: #313131; + font-size: 0.8em; + margin-bottom: -8px; + background-color: #BBF3BB; +} + +img { + border: 0; +} + +#navbar { + background-color: #738073; + border-bottom: 1px solid #5C665C; + border-top: 1px solid #5C665C; + margin-top: 12px; + padding: 0.3em; + position: relative; + text-align: center; +} + +#navbar a, #navbar_secondary a { + color: white; + padding: 0.3em; + text-decoration: none; +} + +#navbar a:hover, #navbar_secondary a:hover { + background-color: #313131; + color: white; + text-decoration: none; +} + +#navbar_secondary { + background-color: #738073; + border-bottom: 1px solid #5C665C; + border-left: 1px solid #5C665C; + border-right: 1px solid #5C665C; + padding: 0.3em; + position: relative; + text-align: center; +} + +p { + margin-left: 1em; + margin-right: 1em; +} + +pre { + margin-left: 3em; + margin-right: 3em; + padding: 0.3em; + border: 1px solid #bbb; + background-color: #f7f7f7; +} + +dl dt { + font-weight: bold; +} + +#proj_desc { + font-size: 1.2em; +} + +#repos { + margin-left: 1em; + margin-right: 1em; + border-collapse: collapse; + border: solid 1px #6A996A; +} + +#repos th { + background-color: #7BB37B; + border: solid 1px #6A996A; +} + +#repos td { + padding: 0.2em; + border: solid 1px #6A996A; +} diff --git a/ffmpeg/doc/demuxers.texi b/ffmpeg/doc/demuxers.texi new file mode 100644 index 0000000..fc50871 --- /dev/null +++ b/ffmpeg/doc/demuxers.texi @@ -0,0 +1,311 @@ +@chapter Demuxers +@c man begin DEMUXERS + +Demuxers are configured elements in FFmpeg which allow to read the +multimedia streams from a particular type of file. + +When you configure your FFmpeg build, all the supported demuxers +are enabled by default. You can list all available ones using the +configure option @code{--list-demuxers}. + +You can disable all the demuxers using the configure option +@code{--disable-demuxers}, and selectively enable a single demuxer with +the option @code{--enable-demuxer=@var{DEMUXER}}, or disable it +with the option @code{--disable-demuxer=@var{DEMUXER}}. + +The option @code{-formats} of the ff* tools will display the list of +enabled demuxers. + +The description of some of the currently available demuxers follows. + +@section applehttp + +Apple HTTP Live Streaming demuxer. + +This demuxer presents all AVStreams from all variant streams. +The id field is set to the bitrate variant index number. By setting +the discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), +the caller can decide which variant streams to actually receive. +The total bitrate of the variant that the stream belongs to is +available in a metadata key named "variant_bitrate". + +@anchor{concat} +@section concat + +Virtual concatenation script demuxer. + +This demuxer reads a list of files and other directives from a text file and +demuxes them one after the other, as if all their packet had been muxed +together. + +The timestamps in the files are adjusted so that the first file starts at 0 +and each next file starts where the previous one finishes. Note that it is +done globally and may cause gaps if all streams do not have exactly the same +length. + +All files must have the same streams (same codecs, same time base, etc.). + +The duration of each file is used to adjust the timestamps of the next file: +if the duration is incorrect (because it was computed using the bit-rate or +because the file is truncated, for example), it can cause artifacts. The +@code{duration} directive can be used to override the duration stored in +each file. + +@subsection Syntax + +The script is a text file in extended-ASCII, with one directive per line. +Empty lines, leading spaces and lines starting with '#' are ignored. The +following directive is recognized: + +@table @option + +@item @code{file @var{path}} +Path to a file to read; special characters and spaces must be escaped with +backslash or single quotes. + +All subsequent directives apply to that file. + +@item @code{ffconcat version 1.0} +Identify the script type and version. It also sets the @option{safe} option +to 1 if it was to its default -1. + +To make FFmpeg recognize the format automatically, this directive must +appears exactly as is (no extra space or byte-order-mark) on the very first +line of the script. + +@item @code{duration @var{dur}} +Duration of the file. This information can be specified from the file; +specifying it here may be more efficient or help if the information from the +file is not available or accurate. + +If the duration is set for all files, then it is possible to seek in the +whole concatenated video. + +@end table + +@subsection Options + +This demuxer accepts the following option: + +@table @option + +@item safe +If set to 1, reject unsafe file paths. A file path is considered safe if it +does not contain a protocol specification and is relative and all components +only contain characters from the portable character set (letters, digits, +period, underscore and hyphen) and have no period at the beginning of a +component. + +If set to 0, any file name is accepted. + +The default is -1, it is equivalent to 1 if the format was automatically +probed and 0 otherwise. + +@end table + +@section image2 + +Image file demuxer. + +This demuxer reads from a list of image files specified by a pattern. +The syntax and meaning of the pattern is specified by the +option @var{pattern_type}. + +The pattern may contain a suffix which is used to automatically +determine the format of the images contained in the files. + +The size, the pixel format, and the format of each image must be the +same for all the files in the sequence. + +This demuxer accepts the following options: +@table @option +@item framerate +Set the framerate for the video stream. It defaults to 25. +@item loop +If set to 1, loop over the input. Default value is 0. +@item pattern_type +Select the pattern type used to interpret the provided filename. + +@var{pattern_type} accepts one of the following values. +@table @option +@item sequence +Select a sequence pattern type, used to specify a sequence of files +indexed by sequential numbers. + +A sequence pattern may contain the string "%d" or "%0@var{N}d", which +specifies the position of the characters representing a sequential +number in each filename matched by the pattern. If the form +"%d0@var{N}d" is used, the string representing the number in each +filename is 0-padded and @var{N} is the total number of 0-padded +digits representing the number. The literal character '%' can be +specified in the pattern with the string "%%". + +If the sequence pattern contains "%d" or "%0@var{N}d", the first filename of +the file list specified by the pattern must contain a number +inclusively contained between @var{start_number} and +@var{start_number}+@var{start_number_range}-1, and all the following +numbers must be sequential. + +For example the pattern "img-%03d.bmp" will match a sequence of +filenames of the form @file{img-001.bmp}, @file{img-002.bmp}, ..., +@file{img-010.bmp}, etc.; the pattern "i%%m%%g-%d.jpg" will match a +sequence of filenames of the form @file{i%m%g-1.jpg}, +@file{i%m%g-2.jpg}, ..., @file{i%m%g-10.jpg}, etc. + +Note that the pattern must not necessarily contain "%d" or +"%0@var{N}d", for example to convert a single image file +@file{img.jpeg} you can employ the command: +@example +ffmpeg -i img.jpeg img.png +@end example + +@item glob +Select a glob wildcard pattern type. + +The pattern is interpreted like a @code{glob()} pattern. This is only +selectable if libavformat was compiled with globbing support. + +@item glob_sequence @emph{(deprecated, will be removed)} +Select a mixed glob wildcard/sequence pattern. + +If your version of libavformat was compiled with globbing support, and +the provided pattern contains at least one glob meta character among +@code{%*?[]@{@}} that is preceded by an unescaped "%", the pattern is +interpreted like a @code{glob()} pattern, otherwise it is interpreted +like a sequence pattern. + +All glob special characters @code{%*?[]@{@}} must be prefixed +with "%". To escape a literal "%" you shall use "%%". + +For example the pattern @code{foo-%*.jpeg} will match all the +filenames prefixed by "foo-" and terminating with ".jpeg", and +@code{foo-%?%?%?.jpeg} will match all the filenames prefixed with +"foo-", followed by a sequence of three characters, and terminating +with ".jpeg". + +This pattern type is deprecated in favor of @var{glob} and +@var{sequence}. +@end table + +Default value is @var{glob_sequence}. +@item pixel_format +Set the pixel format of the images to read. If not specified the pixel +format is guessed from the first image file in the sequence. +@item start_number +Set the index of the file matched by the image file pattern to start +to read from. Default value is 0. +@item start_number_range +Set the index interval range to check when looking for the first image +file in the sequence, starting from @var{start_number}. Default value +is 5. +@item video_size +Set the video size of the images to read. If not specified the video +size is guessed from the first image file in the sequence. +@end table + +@subsection Examples + +@itemize +@item +Use @command{ffmpeg} for creating a video from the images in the file +sequence @file{img-001.jpeg}, @file{img-002.jpeg}, ..., assuming an +input frame rate of 10 frames per second: +@example +ffmpeg -i 'img-%03d.jpeg' -r 10 out.mkv +@end example + +@item +As above, but start by reading from a file with index 100 in the sequence: +@example +ffmpeg -start_number 100 -i 'img-%03d.jpeg' -r 10 out.mkv +@end example + +@item +Read images matching the "*.png" glob pattern , that is all the files +terminating with the ".png" suffix: +@example +ffmpeg -pattern_type glob -i "*.png" -r 10 out.mkv +@end example +@end itemize + +@section rawvideo + +Raw video demuxer. + +This demuxer allows to read raw video data. Since there is no header +specifying the assumed video parameters, the user must specify them +in order to be able to decode the data correctly. + +This demuxer accepts the following options: +@table @option + +@item framerate +Set input video frame rate. Default value is 25. + +@item pixel_format +Set the input video pixel format. Default value is @code{yuv420p}. + +@item video_size +Set the input video size. This value must be specified explicitly. +@end table + +For example to read a rawvideo file @file{input.raw} with +@command{ffplay}, assuming a pixel format of @code{rgb24}, a video +size of @code{320x240}, and a frame rate of 10 images per second, use +the command: +@example +ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw +@end example + +@section sbg + +SBaGen script demuxer. + +This demuxer reads the script language used by SBaGen +@url{http://uazu.net/sbagen/} to generate binaural beats sessions. A SBG +script looks like that: +@example +-SE +a: 300-2.5/3 440+4.5/0 +b: 300-2.5/0 440+4.5/3 +off: - +NOW == a ++0:07:00 == b ++0:14:00 == a ++0:21:00 == b ++0:30:00 off +@end example + +A SBG script can mix absolute and relative timestamps. If the script uses +either only absolute timestamps (including the script start time) or only +relative ones, then its layout is fixed, and the conversion is +straightforward. On the other hand, if the script mixes both kind of +timestamps, then the @var{NOW} reference for relative timestamps will be +taken from the current time of day at the time the script is read, and the +script layout will be frozen according to that reference. That means that if +the script is directly played, the actual times will match the absolute +timestamps up to the sound controller's clock accuracy, but if the user +somehow pauses the playback or seeks, all times will be shifted accordingly. + +@section tedcaptions + +JSON captions used for @url{http://www.ted.com/, TED Talks}. + +TED does not provide links to the captions, but they can be guessed from the +page. The file @file{tools/bookmarklets.html} from the FFmpeg source tree +contains a bookmarklet to expose them. + +This demuxer accepts the following option: +@table @option +@item start_time +Set the start time of the TED talk, in milliseconds. The default is 15000 +(15s). It is used to sync the captions with the downloadable videos, because +they include a 15s intro. +@end table + +Example: convert the captions to a format most players understand: +@example +ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt +@end example + +@c man end DEMUXERS diff --git a/ffmpeg/doc/developer.texi b/ffmpeg/doc/developer.texi new file mode 100644 index 0000000..bd3f7a7 --- /dev/null +++ b/ffmpeg/doc/developer.texi @@ -0,0 +1,668 @@ +\input texinfo @c -*- texinfo -*- + +@settitle Developer Documentation +@titlepage +@center @titlefont{Developer Documentation} +@end titlepage + +@top + +@contents + +@chapter Developers Guide + +@section API +@itemize @bullet +@item libavcodec is the library containing the codecs (both encoding and +decoding). Look at @file{doc/examples/decoding_encoding.c} to see how to use +it. + +@item libavformat is the library containing the file format handling (mux and +demux code for several formats). Look at @file{ffplay.c} to use it in a +player. See @file{doc/examples/muxing.c} to use it to generate audio or video +streams. + +@end itemize + +@section Integrating libavcodec or libavformat in your program + +You can integrate all the source code of the libraries to link them +statically to avoid any version problem. All you need is to provide a +'config.mak' and a 'config.h' in the parent directory. See the defines +generated by ./configure to understand what is needed. + +You can use libavcodec or libavformat in your commercial program, but +@emph{any patch you make must be published}. The best way to proceed is +to send your patches to the FFmpeg mailing list. + +@section Contributing + +There are 3 ways by which code gets into ffmpeg. +@itemize @bullet +@item Submitting Patches to the main developer mailing list + see @ref{Submitting patches} for details. +@item Directly committing changes to the main tree. +@item Committing changes to a git clone, for example on github.com or + gitorious.org. And asking us to merge these changes. +@end itemize + +Whichever way, changes should be reviewed by the maintainer of the code +before they are committed. And they should follow the @ref{Coding Rules}. +The developer making the commit and the author are responsible for their changes +and should try to fix issues their commit causes. + +@anchor{Coding Rules} +@section Coding Rules + +@subsection Code formatting conventions + +There are the following guidelines regarding the indentation in files: +@itemize @bullet +@item +Indent size is 4. +@item +The TAB character is forbidden outside of Makefiles as is any +form of trailing whitespace. Commits containing either will be +rejected by the git repository. +@item +You should try to limit your code lines to 80 characters; however, do so if +and only if this improves readability. +@end itemize +The presentation is one inspired by 'indent -i4 -kr -nut'. + +The main priority in FFmpeg is simplicity and small code size in order to +minimize the bug count. + +@subsection Comments +Use the JavaDoc/Doxygen format (see examples below) so that code documentation +can be generated automatically. All nontrivial functions should have a comment +above them explaining what the function does, even if it is just one sentence. +All structures and their member variables should be documented, too. + +Avoid Qt-style and similar Doxygen syntax with @code{!} in it, i.e. replace +@code{//!} with @code{///} and similar. Also @@ syntax should be employed +for markup commands, i.e. use @code{@@param} and not @code{\param}. + +@example +/** + * @@file + * MPEG codec. + * @@author ... + */ + +/** + * Summary sentence. + * more text ... + * ... + */ +typedef struct Foobar@{ + int var1; /**< var1 description */ + int var2; ///< var2 description + /** var3 description */ + int var3; +@} Foobar; + +/** + * Summary sentence. + * more text ... + * ... + * @@param my_parameter description of my_parameter + * @@return return value description + */ +int myfunc(int my_parameter) +... +@end example + +@subsection C language features + +FFmpeg is programmed in the ISO C90 language with a few additional +features from ISO C99, namely: +@itemize @bullet +@item +the @samp{inline} keyword; +@item +@samp{//} comments; +@item +designated struct initializers (@samp{struct s x = @{ .i = 17 @};}) +@item +compound literals (@samp{x = (struct s) @{ 17, 23 @};}) +@end itemize + +These features are supported by all compilers we care about, so we will not +accept patches to remove their use unless they absolutely do not impair +clarity and performance. + +All code must compile with recent versions of GCC and a number of other +currently supported compilers. To ensure compatibility, please do not use +additional C99 features or GCC extensions. Especially watch out for: +@itemize @bullet +@item +mixing statements and declarations; +@item +@samp{long long} (use @samp{int64_t} instead); +@item +@samp{__attribute__} not protected by @samp{#ifdef __GNUC__} or similar; +@item +GCC statement expressions (@samp{(x = (@{ int y = 4; y; @})}). +@end itemize + +@subsection Naming conventions +All names should be composed with underscores (_), not CamelCase. For example, +@samp{avfilter_get_video_buffer} is an acceptable function name and +@samp{AVFilterGetVideo} is not. The exception from this are type names, like +for example structs and enums; they should always be in the CamelCase + +There are the following conventions for naming variables and functions: +@itemize @bullet +@item +For local variables no prefix is required. +@item +For variables and functions declared as @code{static} no prefix is required. +@item +For variables and functions used internally by a library an @code{ff_} +prefix should be used, e.g. @samp{ff_w64_demuxer}. +@item +For variables and functions used internally across multiple libraries, use +@code{avpriv_}. For example, @samp{avpriv_aac_parse_header}. +@item +Each library has its own prefix for public symbols, in addition to the +commonly used @code{av_} (@code{avformat_} for libavformat, +@code{avcodec_} for libavcodec, @code{swr_} for libswresample, etc). +Check the existing code and choose names accordingly. +Note that some symbols without these prefixes are also exported for +retro-compatibility reasons. These exceptions are declared in the +@code{lib/lib.v} files. +@end itemize + +Furthermore, name space reserved for the system should not be invaded. +Identifiers ending in @code{_t} are reserved by +@url{http://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html#tag_02_02_02, POSIX}. +Also avoid names starting with @code{__} or @code{_} followed by an uppercase +letter as they are reserved by the C standard. Names starting with @code{_} +are reserved at the file level and may not be used for externally visible +symbols. If in doubt, just avoid names starting with @code{_} altogether. + +@subsection Miscellaneous conventions +@itemize @bullet +@item +fprintf and printf are forbidden in libavformat and libavcodec, +please use av_log() instead. +@item +Casts should be used only when necessary. Unneeded parentheses +should also be avoided if they don't make the code easier to understand. +@end itemize + +@subsection Editor configuration +In order to configure Vim to follow FFmpeg formatting conventions, paste +the following snippet into your @file{.vimrc}: +@example +" indentation rules for FFmpeg: 4 spaces, no tabs +set expandtab +set shiftwidth=4 +set softtabstop=4 +set cindent +set cinoptions=(0 +" Allow tabs in Makefiles. +autocmd FileType make,automake set noexpandtab shiftwidth=8 softtabstop=8 +" Trailing whitespace and tabs are forbidden, so highlight them. +highlight ForbiddenWhitespace ctermbg=red guibg=red +match ForbiddenWhitespace /\s\+$\|\t/ +" Do not highlight spaces at the end of line while typing on that line. +autocmd InsertEnter * match ForbiddenWhitespace /\t\|\s\+\%#\@@ 5 lines) chunk of code, + then either do NOT change the indentation of the inner part within (do not + move it to the right)! or do so in a separate commit +@item + Always fill out the commit log message. Describe in a few lines what you + changed and why. You can refer to mailing list postings if you fix a + particular bug. Comments such as "fixed!" or "Changed it." are unacceptable. + Recommended format: + area changed: Short 1 line description + + details describing what and why and giving references. +@item + Make sure the author of the commit is set correctly. (see git commit --author) + If you apply a patch, send an + answer to ffmpeg-devel (or wherever you got the patch from) saying that + you applied the patch. +@item + When applying patches that have been discussed (at length) on the mailing + list, reference the thread in the log message. +@item + Do NOT commit to code actively maintained by others without permission. + Send a patch to ffmpeg-devel instead. If no one answers within a reasonable + timeframe (12h for build failures and security fixes, 3 days small changes, + 1 week for big patches) then commit your patch if you think it is OK. + Also note, the maintainer can simply ask for more time to review! +@item + Subscribe to the ffmpeg-cvslog mailing list. The diffs of all commits + are sent there and reviewed by all the other developers. Bugs and possible + improvements or general questions regarding commits are discussed there. We + expect you to react if problems with your code are uncovered. +@item + Update the documentation if you change behavior or add features. If you are + unsure how best to do this, send a patch to ffmpeg-devel, the documentation + maintainer(s) will review and commit your stuff. +@item + Try to keep important discussions and requests (also) on the public + developer mailing list, so that all developers can benefit from them. +@item + Never write to unallocated memory, never write over the end of arrays, + always check values read from some untrusted source before using them + as array index or other risky things. +@item + Remember to check if you need to bump versions for the specific libav* + parts (libavutil, libavcodec, libavformat) you are changing. You need + to change the version integer. + Incrementing the first component means no backward compatibility to + previous versions (e.g. removal of a function from the public API). + Incrementing the second component means backward compatible change + (e.g. addition of a function to the public API or extension of an + existing data structure). + Incrementing the third component means a noteworthy binary compatible + change (e.g. encoder bug fix that matters for the decoder). The third + component always starts at 100 to distinguish FFmpeg from Libav. +@item + Compiler warnings indicate potential bugs or code with bad style. If a type of + warning always points to correct and clean code, that warning should + be disabled, not the code changed. + Thus the remaining warnings can either be bugs or correct code. + If it is a bug, the bug has to be fixed. If it is not, the code should + be changed to not generate a warning unless that causes a slowdown + or obfuscates the code. +@item + If you add a new file, give it a proper license header. Do not copy and + paste it from a random place, use an existing file as template. +@end enumerate + +We think our rules are not too hard. If you have comments, contact us. + +@anchor{Submitting patches} +@section Submitting patches + +First, read the @ref{Coding Rules} above if you did not yet, in particular +the rules regarding patch submission. + +When you submit your patch, please use @code{git format-patch} or +@code{git send-email}. We cannot read other diffs :-) + +Also please do not submit a patch which contains several unrelated changes. +Split it into separate, self-contained pieces. This does not mean splitting +file by file. Instead, make the patch as small as possible while still +keeping it as a logical unit that contains an individual change, even +if it spans multiple files. This makes reviewing your patches much easier +for us and greatly increases your chances of getting your patch applied. + +Use the patcheck tool of FFmpeg to check your patch. +The tool is located in the tools directory. + +Run the @ref{Regression tests} before submitting a patch in order to verify +it does not cause unexpected problems. + +It also helps quite a bit if you tell us what the patch does (for example +'replaces lrint by lrintf'), and why (for example '*BSD isn't C99 compliant +and has no lrint()') + +Also please if you send several patches, send each patch as a separate mail, +do not attach several unrelated patches to the same mail. + +Patches should be posted to the +@uref{http://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel, ffmpeg-devel} +mailing list. Use @code{git send-email} when possible since it will properly +send patches without requiring extra care. If you cannot, then send patches +as base64-encoded attachments, so your patch is not trashed during +transmission. + +Your patch will be reviewed on the mailing list. You will likely be asked +to make some changes and are expected to send in an improved version that +incorporates the requests from the review. This process may go through +several iterations. Once your patch is deemed good enough, some developer +will pick it up and commit it to the official FFmpeg tree. + +Give us a few days to react. But if some time passes without reaction, +send a reminder by email. Your patch should eventually be dealt with. + + +@section New codecs or formats checklist + +@enumerate +@item + Did you use av_cold for codec initialization and close functions? +@item + Did you add a long_name under NULL_IF_CONFIG_SMALL to the AVCodec or + AVInputFormat/AVOutputFormat struct? +@item + Did you bump the minor version number (and reset the micro version + number) in @file{libavcodec/version.h} or @file{libavformat/version.h}? +@item + Did you register it in @file{allcodecs.c} or @file{allformats.c}? +@item + Did you add the AVCodecID to @file{avcodec.h}? + When adding new codec IDs, also add an entry to the codec descriptor + list in @file{libavcodec/codec_desc.c}. +@item + If it has a FourCC, did you add it to @file{libavformat/riff.c}, + even if it is only a decoder? +@item + Did you add a rule to compile the appropriate files in the Makefile? + Remember to do this even if you're just adding a format to a file that is + already being compiled by some other rule, like a raw demuxer. +@item + Did you add an entry to the table of supported formats or codecs in + @file{doc/general.texi}? +@item + Did you add an entry in the Changelog? +@item + If it depends on a parser or a library, did you add that dependency in + configure? +@item + Did you @code{git add} the appropriate files before committing? +@item + Did you make sure it compiles standalone, i.e. with + @code{configure --disable-everything --enable-decoder=foo} + (or @code{--enable-demuxer} or whatever your component is)? +@end enumerate + + +@section patch submission checklist + +@enumerate +@item + Does @code{make fate} pass with the patch applied? +@item + Was the patch generated with git format-patch or send-email? +@item + Did you sign off your patch? (git commit -s) + See @url{http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/SubmittingPatches} for the meaning + of sign off. +@item + Did you provide a clear git commit log message? +@item + Is the patch against latest FFmpeg git master branch? +@item + Are you subscribed to ffmpeg-devel? + (the list is subscribers only due to spam) +@item + Have you checked that the changes are minimal, so that the same cannot be + achieved with a smaller patch and/or simpler final code? +@item + If the change is to speed critical code, did you benchmark it? +@item + If you did any benchmarks, did you provide them in the mail? +@item + Have you checked that the patch does not introduce buffer overflows or + other security issues? +@item + Did you test your decoder or demuxer against damaged data? If no, see + tools/trasher, the noise bitstream filter, and + @uref{http://caca.zoy.org/wiki/zzuf, zzuf}. Your decoder or demuxer + should not crash, end in a (near) infinite loop, or allocate ridiculous + amounts of memory when fed damaged data. +@item + Does the patch not mix functional and cosmetic changes? +@item + Did you add tabs or trailing whitespace to the code? Both are forbidden. +@item + Is the patch attached to the email you send? +@item + Is the mime type of the patch correct? It should be text/x-diff or + text/x-patch or at least text/plain and not application/octet-stream. +@item + If the patch fixes a bug, did you provide a verbose analysis of the bug? +@item + If the patch fixes a bug, did you provide enough information, including + a sample, so the bug can be reproduced and the fix can be verified? + Note please do not attach samples >100k to mails but rather provide a + URL, you can upload to ftp://upload.ffmpeg.org +@item + Did you provide a verbose summary about what the patch does change? +@item + Did you provide a verbose explanation why it changes things like it does? +@item + Did you provide a verbose summary of the user visible advantages and + disadvantages if the patch is applied? +@item + Did you provide an example so we can verify the new feature added by the + patch easily? +@item + If you added a new file, did you insert a license header? It should be + taken from FFmpeg, not randomly copied and pasted from somewhere else. +@item + You should maintain alphabetical order in alphabetically ordered lists as + long as doing so does not break API/ABI compatibility. +@item + Lines with similar content should be aligned vertically when doing so + improves readability. +@item + Consider to add a regression test for your code. +@item + If you added YASM code please check that things still work with --disable-yasm +@item + Make sure you check the return values of function and return appropriate + error codes. Especially memory allocation functions like @code{av_malloc()} + are notoriously left unchecked, which is a serious problem. +@item + Test your code with valgrind and or Address Sanitizer to ensure it's free + of leaks, out of array accesses, etc. +@end enumerate + +@section Patch review process + +All patches posted to ffmpeg-devel will be reviewed, unless they contain a +clear note that the patch is not for the git master branch. +Reviews and comments will be posted as replies to the patch on the +mailing list. The patch submitter then has to take care of every comment, +that can be by resubmitting a changed patch or by discussion. Resubmitted +patches will themselves be reviewed like any other patch. If at some point +a patch passes review with no comments then it is approved, that can for +simple and small patches happen immediately while large patches will generally +have to be changed and reviewed many times before they are approved. +After a patch is approved it will be committed to the repository. + +We will review all submitted patches, but sometimes we are quite busy so +especially for large patches this can take several weeks. + +If you feel that the review process is too slow and you are willing to try to +take over maintainership of the area of code you change then just clone +git master and maintain the area of code there. We will merge each area from +where its best maintained. + +When resubmitting patches, please do not make any significant changes +not related to the comments received during review. Such patches will +be rejected. Instead, submit significant changes or new features as +separate patches. + +@anchor{Regression tests} +@section Regression tests + +Before submitting a patch (or committing to the repository), you should at least +test that you did not break anything. + +Running 'make fate' accomplishes this, please see @url{fate.html} for details. + +[Of course, some patches may change the results of the regression tests. In +this case, the reference results of the regression tests shall be modified +accordingly]. + +@subsection Adding files to the fate-suite dataset + +When there is no muxer or encoder available to generate test media for a +specific test then the media has to be inlcuded in the fate-suite. +First please make sure that the sample file is as small as possible to test the +respective decoder or demuxer sufficiently. Large files increase network +bandwidth and disk space requirements. +Once you have a working fate test and fate sample, provide in the commit +message or introductionary message for the patch series that you post to +the ffmpeg-devel mailing list, a direct link to download the sample media. + + +@anchor{Release process} +@section Release process + +FFmpeg maintains a set of @strong{release branches}, which are the +recommended deliverable for system integrators and distributors (such as +Linux distributions, etc.). At regular times, a @strong{release +manager} prepares, tests and publishes tarballs on the +@url{http://ffmpeg.org} website. + +There are two kinds of releases: + +@enumerate +@item + @strong{Major releases} always include the latest and greatest + features and functionality. +@item + @strong{Point releases} are cut from @strong{release} branches, + which are named @code{release/X}, with @code{X} being the release + version number. +@end enumerate + +Note that we promise to our users that shared libraries from any FFmpeg +release never break programs that have been @strong{compiled} against +previous versions of @strong{the same release series} in any case! + +However, from time to time, we do make API changes that require adaptations +in applications. Such changes are only allowed in (new) major releases and +require further steps such as bumping library version numbers and/or +adjustments to the symbol versioning file. Please discuss such changes +on the @strong{ffmpeg-devel} mailing list in time to allow forward planning. + +@anchor{Criteria for Point Releases} +@subsection Criteria for Point Releases + +Changes that match the following criteria are valid candidates for +inclusion into a point release: + +@enumerate +@item + Fixes a security issue, preferably identified by a @strong{CVE + number} issued by @url{http://cve.mitre.org/}. +@item + Fixes a documented bug in @url{https://ffmpeg.org/trac/ffmpeg}. +@item + Improves the included documentation. +@item + Retains both source code and binary compatibility with previous + point releases of the same release branch. +@end enumerate + +The order for checking the rules is (1 OR 2 OR 3) AND 4. + + +@subsection Release Checklist + +The release process involves the following steps: + +@enumerate +@item + Ensure that the @file{RELEASE} file contains the version number for + the upcoming release. +@item + Add the release at @url{https://ffmpeg.org/trac/ffmpeg/admin/ticket/versions}. +@item + Announce the intent to do a release to the mailing list. +@item + Make sure all relevant security fixes have been backported. See + @url{https://ffmpeg.org/security.html}. +@item + Ensure that the FATE regression suite still passes in the release + branch on at least @strong{i386} and @strong{amd64} + (cf. @ref{Regression tests}). +@item + Prepare the release tarballs in @code{bz2} and @code{gz} formats, and + supplementing files that contain @code{gpg} signatures +@item + Publish the tarballs at @url{http://ffmpeg.org/releases}. Create and + push an annotated tag in the form @code{nX}, with @code{X} + containing the version number. +@item + Propose and send a patch to the @strong{ffmpeg-devel} mailing list + with a news entry for the website. +@item + Publish the news entry. +@item + Send announcement to the mailing list. +@end enumerate + +@bye diff --git a/ffmpeg/doc/doxy-wrapper.sh b/ffmpeg/doc/doxy-wrapper.sh new file mode 100755 index 0000000..6650e38 --- /dev/null +++ b/ffmpeg/doc/doxy-wrapper.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +SRC_PATH="${1}" +DOXYFILE="${2}" + +shift 2 + +doxygen - < li > a { + display: block; +} +.tablist > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.tablist > .pull-right { + float: right; +} +.tablist-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.tablist li + .tablist-header { + margin-top: 9px; +} +.tablist-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.tablist-list > li > a, +.tablist-list .tablist-header { + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.tablist-list > li > a { + padding: 3px 15px; +} +.tablist-list > .current > a, +.tablist-list > .current > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.tablist-list [class^="icon-"] { + margin-right: 2px; +} +.tablist-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.tablist-tabs, +.tablist { + *zoom: 1; +} +.tablist-tabs:before, +.tablist:before, +.tablist-tabs:after, +.tablist:after { + display: table; + content: ""; + line-height: 0; +} +.tablist-tabs:after, +.tablist:after { + clear: both; +} +.tablist-tabs > li, +.tablist > li { + float: left; +} +.tablist-tabs > li > a, +.tablist > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.tablist-tabs { + border-bottom: 1px solid #ddd; +} +.tablist-tabs > li { + margin-bottom: -1px; +} +.tablist-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tablist-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.tablist-tabs > .current > a, +.tablist-tabs > .current > a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.tablist > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.tablist > .current > a, +.tablist > .current > a:hover { + color: #ffffff; + background-color: #0088cc; +} +.tablist-stacked > li { + float: none; +} +.tablist-stacked > li > a { + margin-right: 0; +} +.tablist-tabs.tablist-stacked { + border-bottom: 0; +} +.tablist-tabs.tablist-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.tablist-tabs.tablist-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; +} +.tablist-tabs.tablist-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.tablist-tabs.tablist-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} +.tablist.tablist-stacked > li > a { + margin-bottom: 3px; +} +.tablist.tablist-stacked > li:last-child > a { + margin-bottom: 1px; +} +.tablist-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} +.tablist .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.tablist .dropdown-toggle .caret { + border-top-color: #0088cc; + border-bottom-color: #0088cc; + margin-top: 6px; +} +.tablist .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} +/* move down carets for tabs */ +.tablist-tabs .dropdown-toggle .caret { + margin-top: 8px; +} +.tablist .current .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.tablist-tabs .current .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.tablist > .dropdown.current > a:hover { + cursor: pointer; +} +.tablist-tabs .open .dropdown-toggle, +.tablist .open .dropdown-toggle, +.tablist > li.dropdown.open.current > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.tablist li.dropdown.open .caret, +.tablist li.dropdown.open.current .caret, +.tablist li.dropdown.open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover { + border-color: #999999; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .current, +.pill-content > .current { + display: block; +} +.tabs-below > .tablist-tabs { + border-top: 1px solid #ddd; +} +.tabs-below > .tablist-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below > .tablist-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below > .tablist-tabs > li > a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below > .tablist-tabs > .current > a, +.tabs-below > .tablist-tabs > .current > a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left > .tablist-tabs > li, +.tabs-right > .tablist-tabs > li { + float: none; +} +.tabs-left > .tablist-tabs > li > a, +.tabs-right > .tablist-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left > .tablist-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left > .tablist-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left > .tablist-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left > .tablist-tabs .current > a, +.tabs-left > .tablist-tabs .current > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right > .tablist-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right > .tablist-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right > .tablist-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right > .tablist-tabs .current > a, +.tabs-right > .tablist-tabs .current > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.tablist > .disabled > a { + color: #999999; +} +.tablist > .disabled > a:hover { + text-decoration: none; + background-color: transparent; + cursor: default; +} +.tablistbar { + overflow: visible; + margin-bottom: 20px; + color: #ffffff; + *position: relative; + *z-index: 2; +} +.tablistbar-inner { + min-height: 40px; + padding-left: 20px; + padding-right: 20px; + background-color: #034c03; + background-image: -moz-linear-gradient(top, #024002, #045f04); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#024002), to(#045f04)); + background-image: -webkit-linear-gradient(top, #024002, #045f04); + background-image: -o-linear-gradient(top, #024002, #045f04); + background-image: linear-gradient(to bottom, #024002, #045f04); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff024002', endColorstr='#ff045f04', GradientType=0); + border: 1px solid #022402; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + *zoom: 1; +} +.tablistbar-inner:before, +.tablistbar-inner:after { + display: table; + content: ""; + line-height: 0; +} +.tablistbar-inner:after { + clear: both; +} +.tablistbar .container { + width: auto; +} +.tablist-collapse.collapse { + height: auto; +} +.tablistbar .brand { + float: left; + display: block; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #ffffff; + text-shadow: 0 1px 0 #024002; +} +.tablistbar .brand:hover { + text-decoration: none; +} +.tablistbar-text { + margin-bottom: 0; + line-height: 40px; +} +.tablistbar-link { + color: #ffffff; +} +.tablistbar-link:hover { + color: #333333; +} +.tablistbar .tablist { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.tablistbar .tablist.pull-right { + float: right; + margin-right: 0; +} +.tablistbar .tablist > li { + float: left; +} +.tablistbar .tablist > li > a { + float: none; + padding: 10px 15px 10px; + color: #ffffff; + text-decoration: none; + text-shadow: 0 1px 0 #024002; +} +.tablistbar .tablist .dropdown-toggle .caret { + margin-top: 8px; +} +.tablistbar .tablist > li > a:focus, +.tablistbar .tablist > li > a:hover { + background-color: transparent; + color: white; + text-decoration: none; +} +.tablistbar .tablist > .current > a, +.tablistbar .tablist > .current > a:hover, +.tablistbar .tablist > .current > a:focus { + color: #555555; + text-decoration: none; + background-color: #034703; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} +.tablistbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #023402; + background-image: -moz-linear-gradient(top, #012701, #034703); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#012701), to(#034703)); + background-image: -webkit-linear-gradient(top, #012701, #034703); + background-image: -o-linear-gradient(top, #012701, #034703); + background-image: linear-gradient(to bottom, #012701, #034703); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff012701', endColorstr='#ff034703', GradientType=0); + border-color: #034703 #034703 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #034703; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} +.tablistbar .tablist > li > .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.tablistbar .tablist > li > .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.tablistbar .tablist li.dropdown.open > .dropdown-toggle, +.tablistbar .tablist li.dropdown.current > .dropdown-toggle, +.tablistbar .tablist li.dropdown.open.current > .dropdown-toggle { + background-color: #034703; + color: #555555; +} +.tablistbar .tablist li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.tablistbar .tablist li.dropdown.open > .dropdown-toggle .caret, +.tablistbar .tablist li.dropdown.current > .dropdown-toggle .caret, +.tablistbar .tablist li.dropdown.open.current > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.tablistbar .pull-right > li > .dropdown-menu, +.tablistbar .tablist > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.tablistbar .pull-right > li > .dropdown-menu:before, +.tablistbar .tablist > li > .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.tablistbar .pull-right > li > .dropdown-menu:after, +.tablistbar .tablist > li > .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.tablistbar .pull-right > li > .dropdown-menu .dropdown-menu, +.tablistbar .tablist > li > .dropdown-menu.pull-right .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.breadcrumb li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #ccc; +} +.breadcrumb .current { + color: #999999; +} +.pagination-right { + text-align: right; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} +.collapse.in { + height: auto; +} +.hidden { + display: none; + visibility: hidden; +} +.visible-phone { + display: none !important; +} +.visible-tablet { + display: none !important; +} +.hidden-desktop { + display: none !important; +} +.visible-desktop { + display: inherit !important; +} +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} +@media (max-width: 767px) { + body { + padding-left: 20px; + padding-right: 20px; + } + .container { + width: auto; + } + .row, + .thumbnails { + margin-left: 0; + } +} +@media (max-width: 480px) { + .tablist-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container { + width: 724px; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container { + width: 1070px; + } +} +@media (max-width: 979px) { + body { + padding-top: 0; + } +} +@media (min-width: 980px) { + .tablist-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} +.tablistbar .brand { + padding: 5px; + margin-left: 0; +} +.tablistbar .brand img { + width: 30px; + vertical-align: middle; +} + +h1 small { + font-size: 18px; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.page-header small { + line-height: 0.8; + font-weight: normal; + color: #999999; + display:block; + vertical-align: middle; +} + +.page-header h1, h1:first-child { + font-size: 40px; + padding-bottom: 5px; +} + +.page-header h1 { + border-bottom: 1px solid #999999; + padding-bottom: 9px; +} + +.page-header img { + height: 80px; + padding-bottom: 5px; +} + +.page-header small { + line-height: 1.1; + font-size: 18px; +} + +h2, +h3, +h4, +div.ah, +.title { + border-color: #D6E9C6; + color: #468847; + border-style: solid; + border-width: 0 0 1px; + padding-left: 0.5em; +} + + +.google { + color: white; +} + +.breadcrumb { + font-size: 11px; + padding-top: 2px; + padding-bottom: 2px; +} + +h1 a, +h2 a, +h3 a, +h4 a { + color: inherit; +} + +.tablistbar-inner a { + font-weight: bold; +} + +.list-2panes:before, +.list-2panes:after { + display: table; + content: ""; + line-height: 0; +} + +.list-2panes:after { + clear:both; +} + +.list-2panes li { + width: 470px; + width: 470px; + float: left; + margin-left: 30px; + min-height: 1px; +} +/* The standard CSS for doxygen */ + +/* @group Heading Levels */ + + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.tablisttab{ + background-color: #EBF6EB; + border: 1px solid #A3D7A3; + text-align: center; +} + +div.qindex, div.tablistpath { + width: 100%; + line-height: 140%; +} + +div.tablisttab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D8C3D; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #46A246; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CD49C; + color: #ffffff; + border: 1px double #86CA86; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #C4E5C4; + background-color: #FBFDFB; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +div.contents { + margin-top: 10px; + margin-left: 8px; + margin-right: 8px; +} + +td.indexkey { + white-space: nowrap; + vertical-align: top; +} + + +tr.memlist { + background-color: #EEF7EE; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +#footer { + margin: -10px 1em 0; + padding-top: 20px; + text-align: center; + font-size: small; +} + +address.footer { + background-color: #ffffff; + text-align: center; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3D7A3; +} + +th.dirtab { + background: #EBF6EB; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4AAA4A; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FCF9; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C4E5C4; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #46A246; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #46A246; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBF6EB; + border: 1px solid #A3D7A3; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8D9A8; + border-left: 1px solid #A8D9A8; + border-right: 1px solid #A8D9A8; + padding: 6px 0px 6px 0px; + color: #255525; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2F2E2; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8D9A8; + border-left: 1px solid #A8D9A8; + border-right: 1px solid #A8D9A8; + padding: 2px 5px; + background-color: #FBFDFB; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7FBF7 95%, #EEF7EE); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7FBF7), to(#EEF7EE)); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #2A612A; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D682D; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #377F37; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A8D9A8; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8D9A8; + border-bottom: 1px solid #A8D9A8; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8D9A8; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2F2E2; + font-size: 90%; + color: #255525; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8D9A8; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.tablistpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8ACC8A; + border:solid 1px #C2E4C2; + overflow:hidden; + margin:0px; + padding:0px; +} + +.tablistpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#367C36; +} + +.tablistpath li.tablistelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.tablistpath li.tablistelem a:hover +{ + color:#68BD68; +} + +.tablistpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#367C36; + font-size: 8pt; +} + + +div.summary +{ + margin-top: 12px; + text-align: center; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #53B453; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90CE90; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#337533; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } + pre.fragment + { + overflow: visible; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + } +} + +#proj_desc { + font-size: 1.2em; +} diff --git a/ffmpeg/doc/doxy/footer.html b/ffmpeg/doc/doxy/footer.html new file mode 100644 index 0000000..101e6fe --- /dev/null +++ b/ffmpeg/doc/doxy/footer.html @@ -0,0 +1,9 @@ + +
+ + Generated on $datetime for $projectname by doxygen $doxygenversion + +
+ + + diff --git a/ffmpeg/doc/doxy/header.html b/ffmpeg/doc/doxy/header.html new file mode 100644 index 0000000..312990c --- /dev/null +++ b/ffmpeg/doc/doxy/header.html @@ -0,0 +1,16 @@ + + + + + +$projectname: $title +$title + + + + + +
+ + +'; + +$SMALL_RULE = ''; +$BODYTEXT = ''; + +$print_page_foot = \&FFmpeg_print_page_foot; +sub FFmpeg_print_page_foot($$) +{ + my $fh = shift; + my $program_string = defined &T2H_DEFAULT_program_string ? + T2H_DEFAULT_program_string() : program_string(); + print $fh '
' . "\n"; + print $fh '' . $program_string; + print $fh "
\n"; +} + +$float = \&FFmpeg_float; + +sub FFmpeg_float($$$$) +{ + my $text = shift; + my $float = shift; + my $caption = shift; + my $shortcaption = shift; + + my $label = ''; + if (exists($float->{'id'})) + { + $label = &$anchor($float->{'id'}); + } + my $class = ''; + my $subject = ''; + + if ($caption =~ /NOTE/) + { + $class = "alert alert-info"; + } + elsif ($caption =~ /IMPORTANT/) + { + $class = "alert alert-warning"; + } + + return '
' . "$label\n" . $text . '
'; +} + +$print_page_head = \&FFmpeg_print_page_head; +sub FFmpeg_print_page_head($$) +{ + my $fh = shift; + my $longtitle = "$Texi2HTML::THISDOC{'fulltitle_no_texi'}"; + $longtitle .= ": $Texi2HTML::NO_TEXI{'This'}" if exists $Texi2HTML::NO_TEXI{'This'}; + my $description = $DOCUMENT_DESCRIPTION; + $description = $longtitle if (!defined($description)); + $description = "" if + ($description ne ''); + $description = $Texi2HTML::THISDOC{'documentdescription'} if (defined($Texi2HTML::THISDOC{'documentdescription'})); + my $encoding = ''; + $encoding = "" if (defined($ENCODING) and ($ENCODING ne '')); + $longtitle =~ s/Documentation.*//g; + $longtitle = "FFmpeg documentation : " . $longtitle; + + print $fh < + +$Texi2HTML::THISDOC{'copying'} + + +$longtitle + +$description + + + + +$encoding +$CSS_LINES +$TEMPLATE_HEADER +EOT +} + +# declare encoding in header +$IN_ENCODING = $ENCODING = "utf-8"; + +# no navigation elements +$SECTION_NAVIGATION = 0; +# the same for texi2html 5.0 +$HEADERS = 0; + +# TOC and Chapter headings link +$TOC_LINKS = 1; + +# print the TOC where @contents is used +$INLINE_CONTENTS = 1; diff --git a/ffmpeg/doc/tablegen.txt b/ffmpeg/doc/tablegen.txt new file mode 100644 index 0000000..4c4f036 --- /dev/null +++ b/ffmpeg/doc/tablegen.txt @@ -0,0 +1,70 @@ +Writing a table generator + +This documentation is preliminary. +Parts of the API are not good and should be changed. + +Basic concepts + +A table generator consists of two files, *_tablegen.c and *_tablegen.h. +The .h file will provide the variable declarations and initialization +code for the tables, the .c calls the initialization code and then prints +the tables as a header file using the tableprint.h helpers. +Both of these files will be compiled for the host system, so to avoid +breakage with cross-compilation neither of them may include, directly +or indirectly, config.h or avconfig.h. +This means that e.g. libavutil/mathematics.h is ok but libavutil/libm.h is not. +Due to this, the .c file or Makefile may have to provide additional defines +or stubs, though if possible this should be avoided. +In particular, CONFIG_HARDCODED_TABLES should always be defined to 0. + +The .c file + +This file should include the *_tablegen.h and tableprint.h files and +anything else it needs as long as it does not depend on config.h or +avconfig.h. +In addition to that it must contain a main() function which initializes +all tables by calling the init functions from the .h file and then prints +them. +The printing code typically looks like this: + write_fileheader(); + printf("static const uint8_t my_array[100] = {\n"); + write_uint8_t_array(my_array, 100); + printf("};\n"); + +This is the more generic form, in case you need to do something special. +Usually you should instead use the short form: + write_fileheader(); + WRITE_ARRAY("static const", uint8_t, my_array); + +write_fileheader() adds some minor things like a "this is a generated file" +comment and some standard includes. +tablegen.h defines some write functions for one- and two-dimensional arrays +for standard types - they print only the "core" parts so they are easier +to reuse for multi-dimensional arrays so the outermost {} must be printed +separately. +If there's no standard function for printing the type you need, the +WRITE_1D_FUNC_ARGV macro is a very quick way to create one. +See libavcodec/dv_tablegen.c for an example. + + +The .h file + +This file should contain: + - one or more initialization functions + - the table variable declarations +If CONFIG_HARDCODED_TABLES is set, the initialization functions should +not do anything, and instead of the variable declarations the +generated *_tables.h file should be included. +Since that will be generated in the build directory, the path must be +included, i.e. +#include "libavcodec/example_tables.h" +not +#include "example_tables.h" + +Makefile changes + +To make the automatic table creation work, you must manually declare the +new dependency. +For this add a line similar to this: +$(SUBDIR)example.o: $(SUBDIR)example_tables.h +under the "ifdef CONFIG_HARDCODED_TABLES" section in the Makefile. diff --git a/ffmpeg/doc/texi2pod.pl b/ffmpeg/doc/texi2pod.pl new file mode 100755 index 0000000..697576c --- /dev/null +++ b/ffmpeg/doc/texi2pod.pl @@ -0,0 +1,453 @@ +#! /usr/bin/perl + +# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. + +# This file is part of GNU CC. + +# GNU CC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# GNU CC 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 General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU CC; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301 USA + +# This does trivial (and I mean _trivial_) conversion of Texinfo +# markup to Perl POD format. It's intended to be used to extract +# something suitable for a manpage from a Texinfo document. + +use warnings; + +$output = 0; +$skipping = 0; +%chapters = (); +@chapters_sequence = (); +$chapter = ""; +@icstack = (); +@endwstack = (); +@skstack = (); +@instack = (); +$shift = ""; +%defs = (); +$fnno = 1; +$inf = ""; +@ibase = (); + +while ($_ = shift) { + if (/^-D(.*)$/) { + if ($1 ne "") { + $flag = $1; + } else { + $flag = shift; + } + $value = ""; + ($flag, $value) = ($flag =~ /^([^=]+)(?:=(.+))?/); + die "no flag specified for -D\n" + unless $flag ne ""; + die "flags may only contain letters, digits, hyphens, dashes and underscores\n" + unless $flag =~ /^[a-zA-Z0-9_-]+$/; + $defs{$flag} = $value; + } elsif (/^-I(.*)$/) { + push @ibase, $1 ne "" ? $1 : shift; + } elsif (/^-/) { + usage(); + } else { + $in = $_, next unless defined $in; + $out = $_, next unless defined $out; + usage(); + } +} + +push @ibase, "."; + +if (defined $in) { + $inf = gensym(); + open($inf, "<$in") or die "opening \"$in\": $!\n"; + push @ibase, $1 if $in =~ m|^(.+)/[^/]+$|; +} else { + $inf = \*STDIN; +} + +if (defined $out) { + open(STDOUT, ">$out") or die "opening \"$out\": $!\n"; +} + +while(defined $inf) { +INF: while(<$inf>) { + # Certain commands are discarded without further processing. + /^\@(?: + [a-z]+index # @*index: useful only in complete manual + |need # @need: useful only in printed manual + |(?:end\s+)?group # @group .. @end group: ditto + |page # @page: ditto + |node # @node: useful only in .info file + |(?:end\s+)?ifnottex # @ifnottex .. @end ifnottex: use contents + )\b/x and next; + + chomp; + + # Look for filename and title markers. + /^\@setfilename\s+([^.]+)/ and $fn = $1, next; + /^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next; + + # Identify a man title but keep only the one we are interested in. + /^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do { + if (exists $defs{$1}) { + $fn = $1; + $tl = postprocess($2); + } + next; + }; + + /^\@include\s+(.+)$/ and do { + push @instack, $inf; + $inf = gensym(); + + for (@ibase) { + open($inf, "<" . $_ . "/" . $1) and next INF; + } + die "cannot open $1: $!\n"; + }; + + /^\@chapter\s+([A-Za-z ]+)/ and do { + # close old chapter + $chapters{$chapter_name} .= postprocess($chapter) if ($chapter_name); + + # start new chapter + $chapter_name = $1, push (@chapters_sequence, $chapter_name); + $chapters{$chapter_name} = "" unless exists $chapters{$chapter_name}; + $chapter = ""; + $output = 1; + next; + }; + + /^\@bye/ and do { + # close old chapter + $chapters{$chapter_name} .= postprocess($chapter) if ($chapter_name); + last INF; + }; + + # handle variables + /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do { + $defs{$1} = $2; + next; + }; + /^\@clear\s+([a-zA-Z0-9_-]+)/ and do { + delete $defs{$1}; + next; + }; + + next unless $output; + + # Discard comments. (Can't do it above, because then we'd never see + # @c man lines.) + /^\@c\b/ and next; + + # End-block handler goes up here because it needs to operate even + # if we are skipping. + /^\@end\s+([a-z]+)/ and do { + # Ignore @end foo, where foo is not an operation which may + # cause us to skip, if we are presently skipping. + my $ended = $1; + next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex|ifhtml|ifnothtml)$/; + + die "\@end $ended without \@$ended at line $.\n" unless defined $endw; + die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw; + + $endw = pop @endwstack; + + if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex|ifhtml|ifnothtml)$/) { + $skipping = pop @skstack; + next; + } elsif ($ended =~ /^(?:example|smallexample|display)$/) { + $shift = ""; + $_ = ""; # need a paragraph break + } elsif ($ended =~ /^(?:itemize|enumerate|(?:multi|[fv])?table)$/) { + $_ = "\n=back\n"; + $ic = pop @icstack; + } else { + die "unknown command \@end $ended at line $.\n"; + } + }; + + # We must handle commands which can cause skipping even while we + # are skipping, otherwise we will not process nested conditionals + # correctly. + /^\@ifset\s+([a-zA-Z0-9_-]+)/ and do { + push @endwstack, $endw; + push @skstack, $skipping; + $endw = "ifset"; + $skipping = 1 unless exists $defs{$1}; + next; + }; + + /^\@ifclear\s+([a-zA-Z0-9_-]+)/ and do { + push @endwstack, $endw; + push @skstack, $skipping; + $endw = "ifclear"; + $skipping = 1 if exists $defs{$1}; + next; + }; + + /^\@(ignore|menu|iftex|ifhtml|ifnothtml)\b/ and do { + push @endwstack, $endw; + push @skstack, $skipping; + $endw = $1; + $skipping = $endw !~ /ifnothtml/; + next; + }; + + next if $skipping; + + # Character entities. First the ones that can be replaced by raw text + # or discarded outright: + s/\@copyright\{\}/(c)/g; + s/\@dots\{\}/.../g; + s/\@enddots\{\}/..../g; + s/\@([.!? ])/$1/g; + s/\@[:-]//g; + s/\@bullet(?:\{\})?/*/g; + s/\@TeX\{\}/TeX/g; + s/\@pounds\{\}/\#/g; + s/\@minus(?:\{\})?/-/g; + + # Now the ones that have to be replaced by special escapes + # (which will be turned back into text by unmunge()) + s/&/&/g; + s/\@\{/{/g; + s/\@\}/}/g; + s/\@\@/&at;/g; + + # Inside a verbatim block, handle @var specially. + if ($shift ne "") { + s/\@var\{([^\}]*)\}/<$1>/g; + } + + # POD doesn't interpret E<> inside a verbatim block. + if ($shift eq "") { + s//>/g; + } else { + s//>/g; + } + + # Single line command handlers. + + /^\@(?:section|unnumbered|unnumberedsec|center|heading)\s+(.+)$/ + and $_ = "\n=head2 $1\n"; + /^\@(?:subsection|subheading)\s+(.+)$/ + and $_ = "\n=head3 $1\n"; + /^\@(?:subsubsection|subsubheading)\s+(.+)$/ + and $_ = "\n=head4 $1\n"; + + # Block command handlers: + /^\@itemize\s*(\@[a-z]+|\*|-)?/ and do { + push @endwstack, $endw; + push @icstack, $ic; + $ic = $1 ? $1 : "*"; + $_ = "\n=over 4\n"; + $endw = "itemize"; + }; + + /^\@enumerate(?:\s+([a-zA-Z0-9]+))?/ and do { + push @endwstack, $endw; + push @icstack, $ic; + if (defined $1) { + $ic = $1 . "."; + } else { + $ic = "1."; + } + $_ = "\n=over 4\n"; + $endw = "enumerate"; + }; + + /^\@((?:multi|[fv])?table)\s+(\@[a-z]+)/ and do { + push @endwstack, $endw; + push @icstack, $ic; + $endw = $1; + $ic = $2; + $ic =~ s/\@(?:samp|strong|key|gcctabopt|option|env|command)/B/; + $ic =~ s/\@(?:code|kbd)/C/; + $ic =~ s/\@(?:dfn|var|emph|cite|i)/I/; + $ic =~ s/\@(?:file)/F/; + $ic =~ s/\@(?:columnfractions)//; + $_ = "\n=over 4\n"; + }; + + /^\@((?:small)?example|display)/ and do { + push @endwstack, $endw; + $endw = $1; + $shift = "\t"; + $_ = ""; # need a paragraph break + }; + + /^\@item\s+(.*\S)\s*$/ and $endw eq "multitable" and do { + my $columns = $1; + $columns =~ s/\@tab/ : /; + + $_ = "\n=item B<". $columns .">\n"; + }; + + /^\@tab\s+(.*\S)\s*$/ and $endw eq "multitable" and do { + my $columns = $1; + $columns =~ s/\@tab/ : /; + + $_ = " : ". $columns; + $chapter =~ s/\n+\s+$//; + }; + + /^\@itemx?\s*(.+)?$/ and do { + if (defined $1) { + # Entity escapes prevent munging by the <> processing below. + $_ = "\n=item $ic\<$1\>\n"; + } else { + $_ = "\n=item $ic\n"; + $ic =~ y/A-Ya-y/B-Zb-z/; + $ic =~ s/(\d+)/$1 + 1/eg; + } + }; + + $chapter .= $shift.$_."\n"; +} +# End of current file. +close($inf); +$inf = pop @instack; +} + +die "No filename or title\n" unless defined $fn && defined $tl; + +$chapters{NAME} = "$fn \- $tl\n"; +$chapters{FOOTNOTES} .= "=back\n" if exists $chapters{FOOTNOTES}; + +unshift @chapters_sequence, "NAME"; +for $chapter (@chapters_sequence) { + if (exists $chapters{$chapter}) { + $head = uc($chapter); + print "=head1 $head\n\n"; + print scalar unmunge ($chapters{$chapter}); + print "\n"; + } +} + +sub usage +{ + die "usage: $0 [-D toggle...] [infile [outfile]]\n"; +} + +sub postprocess +{ + local $_ = $_[0]; + + # @value{foo} is replaced by whatever 'foo' is defined as. + while (m/(\@value\{([a-zA-Z0-9_-]+)\})/g) { + if (! exists $defs{$2}) { + print STDERR "Option $2 not defined\n"; + s/\Q$1\E//; + } else { + $value = $defs{$2}; + s/\Q$1\E/$value/; + } + } + + # Formatting commands. + # Temporary escape for @r. + s/\@r\{([^\}]*)\}/R<$1>/g; + s/\@(?:dfn|var|emph|cite|i)\{([^\}]*)\}/I<$1>/g; + s/\@(?:code|kbd)\{([^\}]*)\}/C<$1>/g; + s/\@(?:gccoptlist|samp|strong|key|option|env|command|b)\{([^\}]*)\}/B<$1>/g; + s/\@sc\{([^\}]*)\}/\U$1/g; + s/\@file\{([^\}]*)\}/F<$1>/g; + s/\@w\{([^\}]*)\}/S<$1>/g; + s/\@(?:dmn|math)\{([^\}]*)\}/$1/g; + + # Cross references are thrown away, as are @noindent and @refill. + # (@noindent is impossible in .pod, and @refill is unnecessary.) + # @* is also impossible in .pod; we discard it and any newline that + # follows it. Similarly, our macro @gol must be discarded. + + s/\@anchor{(?:[^\}]*)\}//g; + s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g; + s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g; + s/;\s+\@pxref\{(?:[^\}]*)\}//g; + s/\@ref\{(?:[^,\}]*,)(?:[^,\}]*,)([^,\}]*).*\}/$1/g; + s/\@ref\{([^\}]*)\}/$1/g; + s/\@noindent\s*//g; + s/\@refill//g; + s/\@gol//g; + s/\@\*\s*\n?//g; + + # @uref can take one, two, or three arguments, with different + # semantics each time. @url and @email are just like @uref with + # one argument, for our purposes. + s/\@(?:uref|url|email)\{([^\},]*),?[^\}]*\}/<B<$1>>/g; + s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g; + s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g; + + # Turn B blah> into B I B to + # match Texinfo semantics of @emph inside @samp. Also handle @r + # inside bold. + s/<//g; + 1 while s/B<((?:[^<>]|I<[^<>]*>)*)R<([^>]*)>/B<$1>${2}B]*)I<([^>]+)>/B<$1>I<$2>B]*)B<([^>]+)>/I<$1>B<$2>I//g; + s/([BI])<(\s+)([^>]+)>/$2$1<$3>/g; + s/([BI])<([^>]+?)(\s+)>/$1<$2>$3/g; + + # Extract footnotes. This has to be done after all other + # processing because otherwise the regexp will choke on formatting + # inside @footnote. + while (/\@footnote/g) { + s/\@footnote\{([^\}]+)\}/[$fnno]/; + add_footnote($1, $fnno); + $fnno++; + } + + return $_; +} + +sub unmunge +{ + # Replace escaped symbols with their equivalents. + local $_ = $_[0]; + + s/</E/g; + s/>/E/g; + s/{/\{/g; + s/}/\}/g; + s/&at;/\@/g; + s/&/&/g; + return $_; +} + +sub add_footnote +{ + unless (exists $chapters{FOOTNOTES}) { + $chapters{FOOTNOTES} = "\n=over 4\n\n"; + } + + $chapters{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++; + $chapters{FOOTNOTES} .= $_[0]; + $chapters{FOOTNOTES} .= "\n\n"; +} + +# stolen from Symbol.pm +{ + my $genseq = 0; + sub gensym + { + my $name = "GEN" . $genseq++; + my $ref = \*{$name}; + delete $::{$name}; + return $ref; + } +} diff --git a/ffmpeg/doc/viterbi.txt b/ffmpeg/doc/viterbi.txt new file mode 100644 index 0000000..9782546 --- /dev/null +++ b/ffmpeg/doc/viterbi.txt @@ -0,0 +1,109 @@ +This is a quick description of the viterbi aka dynamic programing +algorthm. + +Its reason for existence is that wikipedia has become very poor on +describing algorithms in a way that makes it useable for understanding +them or anything else actually. It tends now to describe the very same +algorithm under 50 different names and pages with few understandable +by even people who fully understand the algorithm and the theory behind. + +Problem description: (that is what it can solve) +assume we have a 2d table, or you could call it a graph or matrix if you +prefer + + O O O O O O O + + O O O O O O O + + O O O O O O O + + O O O O O O O + + +That table has edges connecting points from each column to the next column +and each edge has a score like: (only some edge and scores shown to keep it +readable) + + + O--5--O-----O-----O-----O-----O + 2 / 7 / \ / \ / \ / + \ / \ / \ / \ / \ / + O7-/--O--/--O--/--O--/--O--/--O + \/ \/ 1/ \/ \/ \/ \/ \/ \/ \/ + /\ /\ 2\ /\ /\ /\ /\ /\ /\ /\ + O3-/--O--/--O--/--O--/--O--/--O + / \ / \ / \ / \ / \ + 1 \ 9 \ / \ / \ / \ + O--2--O--1--O--5--O--3--O--8--O + + + +Our goal is to find a path from left to right through it which +minimizes the sum of the score of all edges. +(and of course left/right is just a convention here it could be top down too) +Similarly the minimum could be the maximum by just fliping the sign, +Example of a path with scores: + + O O O O O O O + +>---O. O O .O-2-O O O + 5. .7 . + O O-1-O O O 8 O O + . + O O O O O O-1-O---> (sum here is 24) + + +The viterbi algorthm now solves this simply column by column +For the previous column each point has a best path and a associated +score: + + O-----5 O + \ + \ + O \ 1 O + \/ + /\ + O / 2 O + / + / + O-----2 O + + +To move one column forward we just need to find the best path and associated +scores for the next column +here are some edges we could choose from: + + + O-----5--3--O + \ \8 + \ \ + O \ 1--9--O + \/ \3 + /\ \ + O / 2--1--O + / \2 + / \ + O-----2--4--O + +Finding the new best paths and scores for each point of our new column is +trivial given we know the previous column best paths and scores: + + O-----0-----8 + \ + \ + O \ 0----10 + \/ + /\ + O / 0-----3 + / \ + / \ + O 0 4 + + +the viterbi algorthm continues exactly like this column for column until the +end and then just picks the path with the best score (above that would be the +one with score 3) + + +Author: Michael niedermayer +Copyright LGPL diff --git a/ffmpeg/ffmpeg.c b/ffmpeg/ffmpeg.c new file mode 100644 index 0000000..12c7a28 --- /dev/null +++ b/ffmpeg/ffmpeg.c @@ -0,0 +1,3373 @@ +/* + * Copyright (c) 2000-2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * multimedia converter based on the FFmpeg libraries + */ + +#include "config.h" +#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 "libswscale/swscale.h" +#include "libswresample/swresample.h" +#include "libavutil/opt.h" +#include "libavutil/channel_layout.h" +#include "libavutil/parseutils.h" +#include "libavutil/samplefmt.h" +#include "libavutil/colorspace.h" +#include "libavutil/fifo.h" +#include "libavutil/intreadwrite.h" +#include "libavutil/dict.h" +#include "libavutil/mathematics.h" +#include "libavutil/pixdesc.h" +#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/avfiltergraph.h" +# include "libavfilter/buffersrc.h" +# include "libavfilter/buffersink.h" + +#if HAVE_SYS_RESOURCE_H +#include +#include +#include +#elif HAVE_GETPROCESSTIMES +#include +#endif +#if HAVE_GETPROCESSMEMORYINFO +#include +#include +#endif + +#if HAVE_SYS_SELECT_H +#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 "cmdutils.h" + +#include "libavutil/avassert.h" + +const char program_name[] = "ffmpeg"; +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 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" + +InputStream **input_streams = NULL; +int nb_input_streams = 0; +InputFile **input_files = NULL; +int nb_input_files = 0; + +OutputStream **output_streams = NULL; +int nb_output_streams = 0; +OutputFile **output_files = NULL; +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 + + +/* 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) +{ + 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 +} + +static volatile int received_sigterm = 0; +static volatile int received_nb_signals = 0; + +static void +sigterm_handler(int sig) +{ + received_sigterm = sig; + received_nb_signals++; + term_exit(); + if(received_nb_signals > 3) + exit(123); +} + +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; + atexit(term_exit); + + 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 + signal(SIGXCPU, sigterm_handler); +#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; +} + +const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL }; + +static void exit_program(void) +{ + 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++) { + av_freep(&filtergraphs[i]->inputs[j]->name); + av_freep(&filtergraphs[i]->inputs[j]); + } + av_freep(&filtergraphs[i]->inputs); + for (j = 0; j < filtergraphs[i]->nb_outputs; j++) { + av_freep(&filtergraphs[i]->outputs[j]->name); + av_freep(&filtergraphs[i]->outputs[j]); + } + av_freep(&filtergraphs[i]->outputs); + av_freep(&filtergraphs[i]); + } + av_freep(&filtergraphs); + + av_freep(&subtitle_out); + + /* close files */ + for (i = 0; i < nb_output_files; i++) { + AVFormatContext *s = output_files[i]->ctx; + if (!(s->oformat->flags & AVFMT_NOFILE) && s->pb) + avio_close(s->pb); + avformat_free_context(s); + av_dict_free(&output_files[i]->opts); + av_freep(&output_files[i]); + } + for (i = 0; i < nb_output_streams; i++) { + AVBitStreamFilterContext *bsfc = output_streams[i]->bitstream_filters; + while (bsfc) { + AVBitStreamFilterContext *next = bsfc->next; + av_bitstream_filter_close(bsfc); + bsfc = next; + } + output_streams[i]->bitstream_filters = NULL; + avcodec_free_frame(&output_streams[i]->filtered_frame); + + 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]); + } + for (i = 0; i < nb_input_files; i++) { + avformat_close_input(&input_files[i]->ctx); + av_freep(&input_files[i]); + } + for (i = 0; i < nb_input_streams; i++) { + 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]); + } + + if (vstats_file) + fclose(vstats_file); + av_free(vstats_filename); + + av_freep(&input_streams); + av_freep(&input_files); + av_freep(&output_streams); + av_freep(&output_files); + + uninit_opts(); + + avfilter_uninit(); + avformat_network_deinit(); + + if (received_sigterm) { + av_log(NULL, AV_LOG_INFO, "Received signal %d: terminating.\n", + (int) received_sigterm); + } +} + +void assert_avoptions(AVDictionary *m) +{ + AVDictionaryEntry *t; + if ((t = av_dict_get(m, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + av_log(NULL, AV_LOG_FATAL, "Option %s not found.\n", t->key); + exit(1); + } +} + +static void abort_codec_experimental(AVCodec *c, int encoder) +{ + exit(1); +} + +static void update_benchmark(const char *fmt, ...) +{ + if (do_benchmark_all) { + int64_t t = getutime(); + va_list va; + char buf[1024]; + + 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); + } + current_time = t; + } +} + +static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) +{ + AVBitStreamFilterContext *bsfc = ost->bitstream_filters; + 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; + + if ((avctx->codec_type == AVMEDIA_TYPE_AUDIO || avctx->codec_type == AVMEDIA_TYPE_VIDEO) && pkt->dts != AV_NOPTS_VALUE) { + int64_t max = ost->st->cur_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT); + if (ost->st->cur_dts && ost->st->cur_dts != AV_NOPTS_VALUE && max > pkt->dts) { + av_log(s, max - pkt->dts > 2 || avctx->codec_type == AVMEDIA_TYPE_VIDEO ? AV_LOG_WARNING : AV_LOG_DEBUG, + "st:%d PTS: %"PRId64" DTS: %"PRId64" < %"PRId64" invalid, clipping\n", pkt->stream_index, pkt->pts, pkt->dts, max); + if(pkt->pts >= pkt->dts) + pkt->pts = FFMAX(pkt->pts, max); + pkt->dts = max; + } + } + + /* + * Audio encoders may split the packets -- #frames in != #packets out. + * But there is no reordering, so we can limit the number of output packets + * by simply dropping them here. + * Counting encoded video frames needs to be done separately because of + * reordering, see do_video_out() + */ + if (!(avctx->codec_type == AVMEDIA_TYPE_VIDEO && avctx->codec)) { + if (ost->frame_number >= ost->max_frames) { + av_free_packet(pkt); + return; + } + ost->frame_number++; + } + + while (bsfc) { + AVPacket new_pkt = *pkt; + int a = av_bitstream_filter_filter(bsfc, avctx, NULL, + &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, + av_buffer_default_free, NULL, 0); + if (!new_pkt.buf) + exit(1); + } else if (a < 0) { + av_log(NULL, AV_LOG_ERROR, "Failed to open bitstream filter %s for stream %d with codec %s", + bsfc->filter->name, pkt->stream_index, + avctx->codec ? avctx->codec->name : "copy"); + print_error("", a); + if (exit_on_error) + exit(1); + } + *pkt = new_pkt; + + bsfc = bsfc->next; + } + + 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); + exit(1); + } +} + +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]; + + 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); + return 0; + } + return 1; +} + +static void do_audio_out(AVFormatContext *s, OutputStream *ost, + AVFrame *frame) +{ + AVCodecContext *enc = ost->st->codec; + AVPacket pkt; + int got_packet = 0; + + av_init_packet(&pkt); + 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"); + exit(1); + } + update_benchmark("encode_audio %d.%d", ost->file_index, ost->index); + + if (got_packet) { + 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 (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); + } +} + +#if FF_API_DEINTERLACE +static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void **bufp) +{ + AVCodecContext *dec; + AVPicture *picture2; + AVPicture picture_tmp; + uint8_t *buf = 0; + + dec = ist->st->codec; + + /* deinterlace : must be done before any resize */ + if (FF_API_DEINTERLACE && do_deinterlace) { + int size; + + /* create temporary picture */ + size = avpicture_get_size(dec->pix_fmt, dec->width, dec->height); + if (size < 0) + return; + buf = av_malloc(size); + if (!buf) + return; + + picture2 = &picture_tmp; + avpicture_fill(picture2, buf, dec->pix_fmt, dec->width, dec->height); + + if (avpicture_deinterlace(picture2, picture, + dec->pix_fmt, dec->width, dec->height) < 0) { + /* if error, do not deinterlace */ + av_log(NULL, AV_LOG_WARNING, "Deinterlacing failed\n"); + av_free(buf); + buf = NULL; + picture2 = picture; + } + } else { + picture2 = picture; + } + + if (picture != picture2) + *picture = *picture2; + *bufp = buf; +} +#endif + +static void do_subtitle_out(AVFormatContext *s, + OutputStream *ost, + InputStream *ist, + AVSubtitle *sub) +{ + 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) { + av_log(NULL, AV_LOG_ERROR, "Subtitle packets must have a pts\n"); + if (exit_on_error) + exit(1); + return; + } + + enc = ost->st->codec; + + if (!subtitle_out) { + subtitle_out = av_malloc(subtitle_out_max_size); + } + + /* Note: DVB subtitle need one packet to draw them and one other + packet to clear them */ + /* XXX: signal it in the codec context ? */ + if (enc->codec_id == AV_CODEC_ID_DVB_SUBTITLE) + nb = 2; + else + nb = 1; + + /* shift timestamp to honor -ss and make check_recording_time() work with -t */ + pts = sub->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); + if (!check_recording_time(ost)) + return; + + sub->pts = pts; + // 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) { + av_log(NULL, AV_LOG_FATAL, "Subtitle encoding failed\n"); + exit(1); + } + + av_init_packet(&pkt); + 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 */ + if (i == 0) + pkt.pts += 90 * sub->start_display_time; + 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) +{ + 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; + + format_video_sync = video_sync_method; + if (format_video_sync == VSYNC_AUTO) + format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : VSYNC_VFR) : VSYNC_CFR; + + switch (format_video_sync) { + 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) { + 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++) { + av_init_packet(&pkt); + pkt.data = NULL; + pkt.size = 0; + + in_picture->pts = ost->sync_opts; + + if (!check_recording_time(ost)) + return; + + if (s->oformat->flags & AVFMT_RAWPICTURE && + enc->codec->id == AV_CODEC_ID_RAWVIDEO) { + /* raw pictures are written as AVPicture structure to + avoid any copies. We support temporarily the older + 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; + + 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); + } + + 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(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); + + /* if two pass, output log */ + if (ost->logfile && enc->stats_out) { + fprintf(ost->logfile, "%s", enc->stats_out); + } + } + } + ost->sync_opts++; + /* + * For video, number of frames in == number of packets out. + * But there may be reordering, so we can't throw away frames on encoder + * 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) +{ + return -10.0 * log(d) / log(10.0); +} + +static void do_video_stats(OutputStream *ost, int frame_size) +{ + AVCodecContext *enc; + int frame_number; + double ti1, bitrate, avg_bitrate; + + /* this is executed just the first time do_video_stats is called */ + if (!vstats_file) { + vstats_file = fopen(vstats_filename, "w"); + if (!vstats_file) { + perror("fopen"); + exit(1); + } + } + + enc = ost->st->codec; + if (enc->codec_type == AVMEDIA_TYPE_VIDEO) { + frame_number = ost->st->nb_frames; + 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); + if (ti1 < 0.01) + ti1 = 0.01; + + bitrate = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0; + avg_bitrate = (double)(video_size * 8) / ti1 / 1000.0; + fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ", + (double)video_size / 1024, ti1, bitrate, avg_bitrate); + fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(enc->coded_frame->pict_type)); + } +} + +/** + * Get and encode new output from any of the filtergraphs, without causing + * activity. + * + * @return 0 for success, <0 for severe errors + */ +static int reap_filters(void) +{ + AVFrame *filtered_frame = NULL; + int i; + int64_t frame_pts; + + /* 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 = avcodec_alloc_frame())) { + return AVERROR(ENOMEM); + } else + avcodec_get_frame_defaults(ost->filtered_frame); + 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) { + char buf[256]; + av_strerror(ret, buf, sizeof(buf)); + av_log(NULL, AV_LOG_WARNING, + "Error in av_buffersink_get_buffer_ref(): %s\n", buf); + } + break; + } + frame_pts = AV_NOPTS_VALUE; + if (filtered_frame->pts != AV_NOPTS_VALUE) { + 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(of->start_time, + AV_TIME_BASE_Q, + ost->st->codec->time_base); + + if (of->start_time && filtered_frame->pts < 0) { + av_frame_unref(filtered_frame); + continue; + } + } + //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) + 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); + } + } + + return 0; +} + +static void print_report(int is_last_report, int64_t timer_start, int64_t cur_time) +{ + 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; + static int64_t last_time = -1; + static int qp_histogram[52]; + int hours, mins, secs, us; + + if (!print_stats && !is_last_report && !progress_avio) + return; + + if (!is_last_report) { + if (last_time == -1) { + last_time = cur_time; + return; + } + if ((cur_time - last_time) < 500000) + return; + last_time = cur_time; + } + + + oc = output_files[0]->ctx; + + 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); + + buf[0] = '\0'; + vid = 0; + av_bprint_init(&buf_script, 0, 1); + for (i = 0; i < nb_output_streams; i++) { + float q = -1; + ost = output_streams[i]; + enc = ost->st->codec; + if (!ost->stream_copy && enc->coded_frame) + 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; + + 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); + if (is_last_report) + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "L"); + if (qp_hist) { + int j; + int qp = lrintf(q); + if (qp >= 0 && qp < FF_ARRAY_ELEMS(qp_histogram)) + qp_histogram[qp]++; + 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)) { + 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++) { + if (is_last_report) { + error = enc->error[j]; + scale = enc->width * enc->height * 255.0 * 255.0 * frame_number; + } else { + error = enc->coded_frame->error[j]; + scale = enc->width * enc->height * 255.0 * 255.0; + } + if (j) + 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); + } + 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)); + } + + secs = pts / AV_TIME_BASE; + us = pts % AV_TIME_BASE; + mins = secs / 60; + secs %= 60; + hours = mins / 60; + mins %= 60; + + 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); + + 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); + + 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; + 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", + 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"); + } + } +} + +static void flush_encoders(void) +{ + int i, ret; + + for (i = 0; i < nb_output_streams; i++) { + OutputStream *ost = output_streams[i]; + AVCodecContext *enc = ost->st->codec; + AVFormatContext *os = output_files[ost->file_index]->ctx; + int stop_encoding = 0; + + if (!ost->encoding_needed) + continue; + + if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <= 1) + continue; + if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (os->oformat->flags & AVFMT_RAWPICTURE) && enc->codec->id == AV_CODEC_ID_RAWVIDEO) + continue; + + for (;;) { + int (*encode)(AVCodecContext*, AVPacket*, const AVFrame*, int*) = NULL; + const char *desc; + int64_t *size; + + switch (ost->st->codec->codec_type) { + case AVMEDIA_TYPE_AUDIO: + encode = avcodec_encode_audio2; + desc = "Audio"; + size = &audio_size; + break; + case AVMEDIA_TYPE_VIDEO: + encode = avcodec_encode_video2; + desc = "Video"; + size = &video_size; + break; + default: + stop_encoding = 1; + } + + if (encode) { + AVPacket pkt; + int got_packet; + av_init_packet(&pkt); + 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(1); + } + *size += pkt.size; + if (ost->logfile && enc->stats_out) { + fprintf(ost->logfile, "%s", enc->stats_out); + } + if (!got_packet) { + stop_encoding = 1; + break; + } + 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 (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) + break; + } + } +} + +/* + * Check whether a packet from ist should be written into ost at this time + */ +static int check_output_constraints(InputStream *ist, OutputStream *ost) +{ + OutputFile *of = output_files[ost->file_index]; + int ist_index = input_files[ist->file_index]->ist_index + ist->st->index; + + if (ost->source_index != ist_index) + return 0; + + if (of->start_time && ist->pts < of->start_time) + return 0; + + return 1; +} + +static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *pkt) +{ + OutputFile *of = output_files[ost->file_index]; + int64_t ost_tb_start_time = av_rescale_q(of->start_time, AV_TIME_BASE_Q, ost->st->time_base); + AVPicture pict; + AVPacket opkt; + + av_init_packet(&opkt); + + if ((!ost->frame_number && !(pkt->flags & AV_PKT_FLAG_KEY)) && + !ost->copy_initial_nonkeyframes) + return; + + if (!ost->frame_number && ist->pts < of->start_time && + !ost->copy_prior_start) + return; + + if (of->recording_time != INT64_MAX && + ist->pts >= of->recording_time + of->start_time) { + close_output_stream(ost); + return; + } + + /* force the input stream PTS */ + if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO) + audio_size += pkt->size; + 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) + opkt.pts = av_rescale_q(pkt->pts, ist->st->time_base, ost->st->time_base) - ost_tb_start_time; + else + 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); + 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; + + // FIXME remove the following 2 lines they shall be replaced by the bitstream filters + if ( ost->st->codec->codec_id != AV_CODEC_ID_H264 + && ost->st->codec->codec_id != AV_CODEC_ID_MPEG1VIDEO + && ost->st->codec->codec_id != AV_CODEC_ID_MPEG2VIDEO + && ost->st->codec->codec_id != AV_CODEC_ID_VC1 + ) { + if (av_parser_change(ist->st->parser, ost->st->codec, &opkt.data, &opkt.size, pkt->data, pkt->size, pkt->flags & AV_PKT_FLAG_KEY)) { + opkt.buf = av_buffer_create(opkt.data, opkt.size, av_buffer_default_free, NULL, 0); + if (!opkt.buf) + exit(1); + } + } else { + opkt.data = pkt->data; + opkt.size = pkt->size; + } + + 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++; +} + +static void rate_emu_sleep(InputStream *ist) +{ + if (input_files[ist->file_index]->rate_emu) { + int64_t pts = av_rescale(ist->dts, 1000000, AV_TIME_BASE); + int64_t now = av_gettime() - ist->start; + if (pts > now) + av_usleep(pts - now); + } +} + +int guess_input_channel_layout(InputStream *ist) +{ + AVCodecContext *dec = ist->st->codec; + + 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; + av_get_channel_layout_string(layout_name, sizeof(layout_name), + dec->channels, dec->channel_layout); + av_log(NULL, AV_LOG_WARNING, "Guessed Channel Layout for Input Stream " + "#%d.%d : %s\n", ist->file_index, ist->st->index, layout_name); + } + return 1; +} + +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 = avcodec_alloc_frame())) + return AVERROR(ENOMEM); + if (!ist->filter_frame && !(ist->filter_frame = av_frame_alloc())) + 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) { + 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 + + rate_emu_sleep(ist); + + resample_changed = ist->resample_sample_fmt != decoded_frame->format || + ist->resample_channels != avctx->channels || + ist->resample_channel_layout != decoded_frame->channel_layout || + ist->resample_sample_rate != decoded_frame->sample_rate; + if (resample_changed) { + char layout1[64], layout2[64]; + + if (!guess_input_channel_layout(ist)) { + av_log(NULL, AV_LOG_FATAL, "Unable to find default channel " + "layout for Input Stream #%d.%d\n", ist->file_index, + ist->st->index); + exit(1); + } + decoded_frame->channel_layout = avctx->channel_layout; + + av_get_channel_layout_string(layout1, sizeof(layout1), ist->resample_channels, + ist->resample_channel_layout); + av_get_channel_layout_string(layout2, sizeof(layout2), avctx->channels, + decoded_frame->channel_layout); + + av_log(NULL, AV_LOG_INFO, + "Input stream #%d:%d frame changed from rate:%d fmt:%s ch:%d chl:%s to rate:%d fmt:%s ch:%d chl:%s\n", + ist->file_index, ist->st->index, + ist->resample_sample_rate, av_get_sample_fmt_name(ist->resample_sample_fmt), + ist->resample_channels, layout1, + decoded_frame->sample_rate, av_get_sample_fmt_name(decoded_frame->format), + avctx->channels, layout2); + + ist->resample_sample_fmt = decoded_frame->format; + ist->resample_sample_rate = decoded_frame->sample_rate; + ist->resample_channel_layout = decoded_frame->channel_layout; + 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(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 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}); + for (i = 0; i < ist->nb_filters; i++) { + if (i < ist->nb_filters - 1) { + f = ist->filter_frame; + err = av_frame_ref(f, decoded_frame); + if (err < 0) + break; + } else + f = decoded_frame; + err = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, + AV_BUFFERSRC_FLAG_PUSH); + if (err < 0) + break; + } + decoded_frame->pts = AV_NOPTS_VALUE; + + av_frame_unref(ist->filter_frame); + av_frame_unref(decoded_frame); + return err < 0 ? err : ret; +} + +static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) +{ + AVFrame *decoded_frame, *f; + void *buffer_to_free = NULL; + 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) { + 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; + + 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); + } + + pkt->size = 0; +#if FF_API_DEINTERLACE + pre_process_video_frame(ist, (AVPicture *)decoded_frame, &buffer_to_free); +#endif + + rate_emu_sleep(ist); + + if (ist->st->sample_aspect_ratio.num) + decoded_frame->sample_aspect_ratio = ist->st->sample_aspect_ratio; + + resample_changed = ist->resample_width != decoded_frame->width || + ist->resample_height != decoded_frame->height || + ist->resample_pix_fmt != decoded_frame->format; + if (resample_changed) { + av_log(NULL, AV_LOG_INFO, + "Input stream #%d:%d frame changed from size:%dx%d fmt:%s to size:%dx%d fmt:%s\n", + ist->file_index, ist->st->index, + 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)); + + 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 && + configure_filtergraph(filtergraphs[i]) < 0) { + av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); + exit(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); + if (err < 0) + break; + } else + f = decoded_frame; + if(av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, + AV_BUFFERSRC_FLAG_PUSH)<0) { + av_log(NULL, AV_LOG_FATAL, "Failed to inject frame into filter network\n"); + exit(1); + } + + } + + av_frame_unref(ist->filter_frame); + av_frame_unref(decoded_frame); + av_free(buffer_to_free); + return err < 0 ? err : ret; +} + +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 (ret < 0 || !*got_output) { + if (!pkt->size) + sub2video_flush(ist); + return ret; + } + + if (ist->fix_sub_duration) { + if (ist->prev_sub.got_output) { + int 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\n", + ist->prev_sub.subtitle.end_display_time, end); + 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); + } + + sub2video_update(ist, &subtitle); + + if (!*got_output || !subtitle.num_rects) + return ret; + + rate_emu_sleep(ist); + + 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); + } + + avsubtitle_free(&subtitle); + return ret; +} + +/* 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; + + 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; + + if (pkt == NULL) { + /* EOF handling */ + av_init_packet(&avpkt); + avpkt.data = NULL; + avpkt.size = 0; + goto handle_eof; + } else { + 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; + } + + // 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; + handle_eof: + + ist->pts = ist->next_pts; + ist->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, + "Multiple frames in a packet from stream %d\n", pkt->stream_index); + ist->showed_multi_packet_warning = 1; + } + + switch (ist->st->codec->codec_type) { + case AVMEDIA_TYPE_AUDIO: + ret = decode_audio (ist, &avpkt, &got_output); + 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 + break; + case AVMEDIA_TYPE_SUBTITLE: + ret = transcode_subtitles(ist, &avpkt, &got_output); + break; + default: + return -1; + } + + 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; + } + if (!got_output) { + continue; + } + } + + /* handle stream copy */ + if (!ist->decoding_needed) { + rate_emu_sleep(ist); + ist->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 (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; + 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]; + + if (!check_output_constraints(ist, ost) || ost->encoding_needed) + continue; + + do_streamcopy(ist, ost, pkt); + } + + return 0; +} + +static void print_sdp(void) +{ + char sdp[16384]; + int i; + AVFormatContext **avc = av_malloc(sizeof(*avc) * nb_output_files); + + if (!avc) + exit(1); + for (i = 0; i < nb_output_files; i++) + avc[i] = output_files[i]->ctx; + + av_sdp_create(avc, nb_output_files, sdp, sizeof(sdp)); + printf("SDP:\n%s\n", sdp); + fflush(stdout); + av_freep(&avc); +} + +static int init_input_stream(int ist_index, char *error, int error_len) +{ + int 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); + return AVERROR(EINVAL); + } + + av_opt_set_int(ist->st->codec, "refcounted_frames", 1, 0); + + if (!av_dict_get(ist->opts, "threads", NULL, 0)) + av_dict_set(&ist->opts, "threads", "auto", 0); + if ((ret = avcodec_open2(ist->st->codec, codec, &ist->opts)) < 0) { + if (ret == AVERROR_EXPERIMENTAL) + abort_codec_experimental(codec, 0); + snprintf(error, error_len, "Error while opening decoder for input stream #%d:%d", + ist->file_index, ist->st->index); + return ret; + } + assert_avoptions(ist->opts); + } + + ist->next_pts = AV_NOPTS_VALUE; + ist->next_dts = AV_NOPTS_VALUE; + ist->is_start = 1; + + return 0; +} + +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; +} + +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; + + for (p = kf; *p; p++) + if (*p == ',') + n++; + size = n; + pts = av_malloc(sizeof(*pts) * size); + if (!pts) { + av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); + exit(1); + } + + p = kf; + for (i = 0; i < n; i++) { + char *next = strchr(p, ','); + + 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(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); + + } + + 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) +{ + int ret = 0, i, j, k; + AVFormatContext *oc; + AVCodecContext *codec; + OutputStream *ost; + InputStream *ist; + char error[1024]; + int want_sdp = 1; + + /* init framerate emulation */ + for (i = 0; i < nb_input_files; i++) { + InputFile *ifile = input_files[i]; + if (ifile->rate_emu) + for (j = 0; j < ifile->nb_streams; j++) + input_streams[j + ifile->ist_index]->start = av_gettime(); + } + + /* output stream init */ + for (i = 0; i < nb_output_files; i++) { + oc = output_files[i]->ctx; + if (!oc->nb_streams && !(oc->oformat->flags & AVFMT_NOSTREAMS)) { + av_dump_format(oc, i, oc->filename, 1); + av_log(NULL, AV_LOG_ERROR, "Output file #%d does not contain any stream\n", i); + return AVERROR(EINVAL); + } + } + + /* init complex filtergraphs */ + for (i = 0; i < nb_filtergraphs; i++) + if ((ret = avfilter_graph_config(filtergraphs[i]->graph, NULL)) < 0) + return ret; + + /* for each output stream, we compute the right encoding parameters */ + for (i = 0; i < nb_output_streams; i++) { + AVCodecContext *icodec = NULL; + ost = output_streams[i]; + oc = output_files[ost->file_index]->ctx; + ist = get_input_stream(ost); + + if (ost->attachment_filename) + continue; + + codec = ost->st->codec; + + if (ist) { + icodec = ist->st->codec; + + ost->st->disposition = ist->st->disposition; + codec->bits_per_raw_sample = icodec->bits_per_raw_sample; + codec->chroma_sample_location = icodec->chroma_sample_location; + } + + if (ost->stream_copy) { + uint64_t extra_size; + + av_assert0(ist && !ost->filter); + + extra_size = (uint64_t)icodec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE; + + if (extra_size > INT_MAX) { + return AVERROR(EINVAL); + } + + /* if stream_copy is selected, no need to decode or encode */ + codec->codec_id = icodec->codec_id; + 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)) + codec->codec_tag = icodec->codec_tag; + } + + codec->bit_rate = icodec->bit_rate; + codec->rc_max_rate = icodec->rc_max_rate; + codec->rc_buffer_size = icodec->rc_buffer_size; + codec->field_order = icodec->field_order; + codec->extradata = av_mallocz(extra_size); + if (!codec->extradata) { + 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(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); + + switch (codec->codec_type) { + case AVMEDIA_TYPE_AUDIO: + if (audio_volume != 256) { + av_log(NULL, AV_LOG_FATAL, "-acodec copy and -vol are incompatible (frames are not decoded)\n"); + exit(1); + } + codec->channel_layout = icodec->channel_layout; + codec->sample_rate = icodec->sample_rate; + codec->channels = icodec->channels; + codec->frame_size = icodec->frame_size; + codec->audio_service_type = icodec->audio_service_type; + codec->block_align = icodec->block_align; + 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 (!codec->sample_aspect_ratio.num) { + codec->sample_aspect_ratio = + ost->st->sample_aspect_ratio = + ist->st->sample_aspect_ratio.num ? ist->st->sample_aspect_ratio : + ist->st->codec->sample_aspect_ratio.num ? + ist->st->codec->sample_aspect_ratio : (AVRational){0, 1}; + } + ost->st->avg_frame_rate = ist->st->avg_frame_rate; + break; + case AVMEDIA_TYPE_SUBTITLE: + codec->width = icodec->width; + codec->height = icodec->height; + break; + case AVMEDIA_TYPE_DATA: + case AVMEDIA_TYPE_ATTACHMENT: + break; + default: + 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); + ret = AVERROR(EINVAL); + goto dump_format; + } + + if (ist) + ist->decoding_needed++; + ost->encoding_needed = 1; + + if (!ost->filter && + (codec->codec_type == AVMEDIA_TYPE_VIDEO || + codec->codec_type == AVMEDIA_TYPE_AUDIO)) { + FilterGraph *fg; + fg = init_simple_filtergraph(ist, ost); + if (configure_filtergraph(fg)) { + av_log(NULL, AV_LOG_FATAL, "Error opening filters!\n"); + exit(1); + } + } + + 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->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_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->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 ? // 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_INFO, + "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)); + 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 (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); + } + } + 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)) { + char logfilename[1024]; + FILE *f; + + snprintf(logfilename, sizeof(logfilename), "%s-%d.log", + ost->logfile_prefix ? ost->logfile_prefix : + DEFAULT_PASS_LOGFILENAME_PREFIX, + i); + if (!strcmp(ost->enc->name, "libx264")) { + av_dict_set(&ost->opts, "stats", logfilename, AV_DICT_DONT_OVERWRITE); + } else { + if (codec->flags & CODEC_FLAG_PASS2) { + char *logbuffer; + size_t logbuffer_size; + if (cmdutils_read_file(logfilename, &logbuffer, &logbuffer_size) < 0) { + av_log(NULL, AV_LOG_FATAL, "Error reading log file '%s' for pass-2 encoding\n", + logfilename); + exit(1); + } + codec->stats_in = logbuffer; + } + 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(1); + } + ost->logfile = f; + } + } + } + } + } + + /* open each encoder */ + for (i = 0; i < nb_output_streams; i++) { + ost = output_streams[i]; + if (ost->encoding_needed) { + AVCodec *codec = ost->enc; + AVCodecContext *dec = NULL; + + 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); + if (!ost->st->codec->subtitle_header) { + ret = AVERROR(ENOMEM); + goto dump_format; + } + memcpy(ost->st->codec->subtitle_header, dec->subtitle_header, dec->subtitle_header_size); + ost->st->codec->subtitle_header_size = dec->subtitle_header_size; + } + if (!av_dict_get(ost->opts, "threads", NULL, 0)) + av_dict_set(&ost->opts, "threads", "auto", 0); + if ((ret = avcodec_open2(ost->st->codec, codec, &ost->opts)) < 0) { + if (ret == AVERROR_EXPERIMENTAL) + abort_codec_experimental(codec, 1); + snprintf(error, sizeof(error), "Error while opening encoder for output stream #%d:%d - maybe incorrect parameters such as bit_rate, rate, width or height", + 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"); + extra_size += ost->st->codec->extradata_size; + + if (ost->st->codec->me_threshold) + input_streams[ost->source_index]->st->codec->debug |= FF_DEBUG_MV; + } else { + av_opt_set_dict(ost->st->codec, &ost->opts); + } + } + + /* 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); + } + goto dump_format; + } + + /* discard unused programs */ + for (i = 0; i < nb_input_files; i++) { + InputFile *ifile = input_files[i]; + for (j = 0; j < ifile->ctx->nb_programs; j++) { + AVProgram *p = ifile->ctx->programs[j]; + int discard = AVDISCARD_ALL; + + for (k = 0; k < p->nb_stream_indexes; k++) + if (!input_streams[ifile->ist_index + p->stream_index[k]]->discard) { + discard = AVDISCARD_DEFAULT; + break; + } + p->discard = discard; + } + } + + /* open files and write file headers */ + for (i = 0; i < nb_output_files; i++) { + oc = output_files[i]->ctx; + oc->interrupt_callback = int_cb; + if ((ret = avformat_write_header(oc, &output_files[i]->opts)) < 0) { + char errbuf[128]; + const char *errbuf_ptr = errbuf; + if (av_strerror(ret, errbuf, sizeof(errbuf)) < 0) + errbuf_ptr = strerror(AVUNERROR(ret)); + snprintf(error, sizeof(error), "Could not write header for output file #%d (incorrect codec parameters ?): %s", i, errbuf_ptr); + ret = AVERROR(EINVAL); + goto dump_format; + } +// assert_avoptions(output_files[i]->opts); + if (strcmp(oc->oformat->name, "rtp")) { + want_sdp = 0; + } + } + + dump_format: + /* dump the file output parameters - cannot be done before in case + of stream copy */ + for (i = 0; i < nb_output_files; i++) { + av_dump_format(output_files[i]->ctx, i, output_files[i]->ctx->filename, 1); + } + + /* dump the stream mapping */ + av_log(NULL, AV_LOG_INFO, "Stream mapping:\n"); + for (i = 0; i < nb_input_streams; i++) { + ist = input_streams[i]; + + for (j = 0; j < ist->nb_filters; j++) { + if (ist->filters[j]->graph->graph_desc) { + av_log(NULL, AV_LOG_INFO, " Stream #%d:%d (%s) -> %s", + ist->file_index, ist->st->index, ist->dec ? ist->dec->name : "?", + ist->filters[j]->name); + if (nb_filtergraphs > 1) + av_log(NULL, AV_LOG_INFO, " (graph %d)", ist->filters[j]->graph->index); + av_log(NULL, AV_LOG_INFO, "\n"); + } + } + } + + for (i = 0; i < nb_output_streams; i++) { + ost = output_streams[i]; + + if (ost->attachment_filename) { + /* an attached file */ + av_log(NULL, AV_LOG_INFO, " File %s -> Stream #%d:%d\n", + ost->attachment_filename, ost->file_index, ost->index); + continue; + } + + if (ost->filter && ost->filter->graph->graph_desc) { + /* output from a complex graph */ + av_log(NULL, AV_LOG_INFO, " %s", ost->filter->name); + if (nb_filtergraphs > 1) + av_log(NULL, AV_LOG_INFO, " (graph %d)", ost->filter->graph->index); + + av_log(NULL, AV_LOG_INFO, " -> Stream #%d:%d (%s)\n", ost->file_index, + ost->index, ost->enc ? ost->enc->name : "?"); + continue; + } + + av_log(NULL, AV_LOG_INFO, " Stream #%d:%d -> #%d:%d", + input_streams[ost->source_index]->file_index, + input_streams[ost->source_index]->st->index, + ost->file_index, + ost->index); + if (ost->sync_ist != input_streams[ost->source_index]) + av_log(NULL, AV_LOG_INFO, " [sync #%d:%d]", + ost->sync_ist->file_index, + ost->sync_ist->st->index); + if (ost->stream_copy) + av_log(NULL, AV_LOG_INFO, " (copy)"); + else + av_log(NULL, AV_LOG_INFO, " (%s -> %s)", input_streams[ost->source_index]->dec ? + input_streams[ost->source_index]->dec->name : "?", + ost->enc ? ost->enc->name : "?"); + av_log(NULL, AV_LOG_INFO, "\n"); + } + + if (ret) { + av_log(NULL, AV_LOG_ERROR, "%s\n", error); + return ret; + } + + if (want_sdp) { + print_sdp(); + } + + return 0; +} + +/* Return 1 if there remain streams where more output is wanted, 0 otherwise. */ +static int need_output(void) +{ + int i; + + for (i = 0; i < nb_output_streams; i++) { + OutputStream *ost = output_streams[i]; + OutputFile *of = output_files[ost->file_index]; + AVFormatContext *os = output_files[ost->file_index]->ctx; + + if (ost->finished || + (os->pb && avio_tell(os->pb) >= of->limit_filesize)) + continue; + 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]); + continue; + } + + return 1; + } + + return 0; +} + +/** + * Select the output stream to process. + * + * @return selected output stream, or NULL if none available + */ +static OutputStream *choose_output(void) +{ + 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; +} + +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: