From 677e259755951ca402df05b7fea21ec348c511d4 Mon Sep 17 00:00:00 2001 From: mamingshuai Date: Thu, 11 Mar 2021 18:47:28 +0800 Subject: [PATCH] update openharmony 1.0.1 --- .gitignore | 39 - Makefile | 212 +- cfg.mak | 4 + configure_gcc | 7536 +++++++++++++++++ configure_llvm | 7536 +++++++++++++++++ doc/.gitignore | 9 - doc/doxy/.gitignore | 1 - doc/examples/.gitignore | 24 - ffbuild/.gitignore | 5 - .gitattributes => ffmpeg-y/.gitattributes | 0 .travis.yml => ffmpeg-y/.travis.yml | 0 CONTRIBUTING.md => ffmpeg-y/CONTRIBUTING.md | 0 COPYING.GPLv2 => ffmpeg-y/COPYING.GPLv2 | 0 COPYING.GPLv3 => ffmpeg-y/COPYING.GPLv3 | 0 COPYING.LGPLv2.1 => ffmpeg-y/COPYING.LGPLv2.1 | 0 COPYING.LGPLv3 => ffmpeg-y/COPYING.LGPLv3 | 0 CREDITS => ffmpeg-y/CREDITS | 0 Changelog => ffmpeg-y/Changelog | 0 INSTALL.md => ffmpeg-y/INSTALL.md | 0 LICENSE.md => ffmpeg-y/LICENSE.md | 0 MAINTAINERS => ffmpeg-y/MAINTAINERS | 0 ffmpeg-y/Makefile | 181 + README.md => ffmpeg-y/README.md | 0 RELEASE => ffmpeg-y/RELEASE | 0 RELEASE_NOTES => ffmpeg-y/RELEASE_NOTES | 0 VERSION => ffmpeg-y/VERSION | 0 .../adapt_liteos_config.sh | 0 {compat => ffmpeg-y/compat}/aix/math.h | 0 .../compat}/atomics/dummy/stdatomic.h | 0 .../compat}/atomics/gcc/stdatomic.h | 0 .../compat}/atomics/pthread/stdatomic.c | 0 .../compat}/atomics/pthread/stdatomic.h | 0 .../compat}/atomics/suncc/stdatomic.h | 0 .../compat}/atomics/win32/stdatomic.h | 0 .../compat}/avisynth/avisynth_c.h | 0 .../compat}/avisynth/avs/capi.h | 0 .../compat}/avisynth/avs/config.h | 0 .../compat}/avisynth/avs/types.h | 0 .../compat}/avisynth/avxsynth_c.h | 0 .../windowsPorts/basicDataTypeConversions.h | 0 .../avisynth/windowsPorts/windows2linux.h | 0 .../compat}/cuda/cuda_runtime.h | 0 .../compat}/cuda/dynlink_loader.h | 0 {compat => ffmpeg-y/compat}/cuda/ptx2c.sh | 0 .../compat}/dispatch_semaphore/semaphore.h | 0 {compat => ffmpeg-y/compat}/djgpp/math.c | 0 {compat => ffmpeg-y/compat}/djgpp/math.h | 0 {compat => ffmpeg-y/compat}/float/float.h | 0 {compat => ffmpeg-y/compat}/float/limits.h | 0 {compat => ffmpeg-y/compat}/getopt.c | 0 {compat => ffmpeg-y/compat}/msvcrt/snprintf.c | 0 {compat => ffmpeg-y/compat}/msvcrt/snprintf.h | 0 {compat => ffmpeg-y/compat}/os2threads.h | 0 .../compat}/solaris/make_sunver.pl | 0 {compat => ffmpeg-y/compat}/strtod.c | 0 {compat => ffmpeg-y/compat}/va_copy.h | 0 {compat => ffmpeg-y/compat}/w32dlfcn.h | 0 {compat => ffmpeg-y/compat}/w32pthreads.h | 0 {compat => ffmpeg-y/compat}/windows/makedef | 0 {compat => ffmpeg-y/compat}/windows/mslink | 0 configure => ffmpeg-y/configure | 2 +- .../disable_decoder_config.sh | 85 +- {doc => ffmpeg-y/doc}/APIchanges | 0 {doc => ffmpeg-y/doc}/Doxyfile | 0 {doc => ffmpeg-y/doc}/Makefile | 0 {doc => ffmpeg-y/doc}/authors.texi | 0 {doc => ffmpeg-y/doc}/bitstream_filters.texi | 0 {doc => ffmpeg-y/doc}/bootstrap.min.css | 0 {doc => ffmpeg-y/doc}/build_system.txt | 0 {doc => ffmpeg-y/doc}/codecs.texi | 0 {doc => ffmpeg-y/doc}/decoders.texi | 0 {doc => ffmpeg-y/doc}/default.css | 0 {doc => ffmpeg-y/doc}/demuxers.texi | 0 {doc => ffmpeg-y/doc}/developer.texi | 0 {doc => ffmpeg-y/doc}/devices.texi | 0 {doc => ffmpeg-y/doc}/doxy-wrapper.sh | 0 {doc => ffmpeg-y/doc}/encoders.texi | 0 {doc => ffmpeg-y/doc}/errno.txt | 0 {doc => ffmpeg-y/doc}/examples/Makefile | 0 .../doc}/examples/Makefile.example | 0 {doc => ffmpeg-y/doc}/examples/README | 0 {doc => ffmpeg-y/doc}/examples/avio_dir_cmd.c | 0 {doc => ffmpeg-y/doc}/examples/avio_reading.c | 0 {doc => ffmpeg-y/doc}/examples/decode_audio.c | 0 {doc => ffmpeg-y/doc}/examples/decode_video.c | 0 .../doc}/examples/demuxing_decoding.c | 0 {doc => ffmpeg-y/doc}/examples/encode_audio.c | 0 {doc => ffmpeg-y/doc}/examples/encode_video.c | 0 {doc => ffmpeg-y/doc}/examples/extract_mvs.c | 0 {doc => ffmpeg-y/doc}/examples/filter_audio.c | 0 .../doc}/examples/filtering_audio.c | 0 .../doc}/examples/filtering_video.c | 0 .../doc}/examples/http_multiclient.c | 0 {doc => ffmpeg-y/doc}/examples/hw_decode.c | 0 {doc => ffmpeg-y/doc}/examples/metadata.c | 0 {doc => ffmpeg-y/doc}/examples/muxing.c | 0 {doc => ffmpeg-y/doc}/examples/qsvdec.c | 0 {doc => ffmpeg-y/doc}/examples/remuxing.c | 0 .../doc}/examples/resampling_audio.c | 0 .../doc}/examples/scaling_video.c | 0 .../doc}/examples/transcode_aac.c | 0 {doc => ffmpeg-y/doc}/examples/transcoding.c | 0 {doc => ffmpeg-y/doc}/examples/vaapi_encode.c | 0 .../doc}/examples/vaapi_transcode.c | 0 {doc => ffmpeg-y/doc}/faq.texi | 0 {doc => ffmpeg-y/doc}/fate.texi | 0 {doc => ffmpeg-y/doc}/fate_config.sh.template | 0 .../doc}/ffmpeg-bitstream-filters.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-codecs.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-devices.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-filters.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-formats.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-protocols.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-resampler.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-scaler.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg-utils.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg.texi | 0 {doc => ffmpeg-y/doc}/ffmpeg.txt | 0 {doc => ffmpeg-y/doc}/ffplay.texi | 0 {doc => ffmpeg-y/doc}/ffprobe.texi | 0 {doc => ffmpeg-y/doc}/ffprobe.xsd | 0 .../doc}/fftools-common-opts.texi | 0 {doc => ffmpeg-y/doc}/filter_design.txt | 0 {doc => ffmpeg-y/doc}/filters.texi | 0 {doc => ffmpeg-y/doc}/formats.texi | 0 {doc => ffmpeg-y/doc}/general.texi | 0 {doc => ffmpeg-y/doc}/git-howto.texi | 0 {doc => ffmpeg-y/doc}/indevs.texi | 0 {doc => ffmpeg-y/doc}/issue_tracker.txt | 0 {doc => ffmpeg-y/doc}/lexicon | 0 {doc => ffmpeg-y/doc}/libav-merge.txt | 0 {doc => ffmpeg-y/doc}/libavcodec.texi | 0 {doc => ffmpeg-y/doc}/libavdevice.texi | 0 {doc => ffmpeg-y/doc}/libavfilter.texi | 0 {doc => ffmpeg-y/doc}/libavformat.texi | 0 {doc => ffmpeg-y/doc}/libavutil.texi | 0 {doc => ffmpeg-y/doc}/libswresample.texi | 0 {doc => ffmpeg-y/doc}/libswscale.texi | 0 {doc => ffmpeg-y/doc}/mailing-list-faq.texi | 0 {doc => ffmpeg-y/doc}/metadata.texi | 0 {doc => ffmpeg-y/doc}/mips.txt | 0 {doc => ffmpeg-y/doc}/multithreading.txt | 0 {doc => ffmpeg-y/doc}/muxers.texi | 0 {doc => ffmpeg-y/doc}/nut.texi | 0 {doc => ffmpeg-y/doc}/optimization.txt | 0 {doc => ffmpeg-y/doc}/outdevs.texi | 0 {doc => ffmpeg-y/doc}/patchwork | 0 {doc => ffmpeg-y/doc}/platform.texi | 0 {doc => ffmpeg-y/doc}/print_options.c | 0 {doc => ffmpeg-y/doc}/protocols.texi | 0 {doc => ffmpeg-y/doc}/rate_distortion.txt | 0 {doc => ffmpeg-y/doc}/resampler.texi | 0 {doc => ffmpeg-y/doc}/scaler.texi | 0 {doc => ffmpeg-y/doc}/snow.txt | 0 {doc => ffmpeg-y/doc}/style.min.css | 0 {doc => ffmpeg-y/doc}/swresample.txt | 0 {doc => ffmpeg-y/doc}/swscale.txt | 0 {doc => ffmpeg-y/doc}/t2h.init | 0 {doc => ffmpeg-y/doc}/t2h.pm | 0 {doc => ffmpeg-y/doc}/tablegen.txt | 0 {doc => ffmpeg-y/doc}/texi2pod.pl | 0 {doc => ffmpeg-y/doc}/texidep.pl | 0 {doc => ffmpeg-y/doc}/undefined.txt | 0 {doc => ffmpeg-y/doc}/utils.texi | 0 {doc => ffmpeg-y/doc}/writing_filters.txt | 0 ffmpeg-y/enable_decoder_config.sh | 69 + {ffbuild => ffmpeg-y/ffbuild}/arch.mak | 0 {ffbuild => ffmpeg-y/ffbuild}/common.mak | 1 - {ffbuild => ffmpeg-y/ffbuild}/library.mak | 0 {ffbuild => ffmpeg-y/ffbuild}/libversion.sh | 0 .../ffbuild}/pkgconfig_generate.sh | 0 {ffbuild => ffmpeg-y/ffbuild}/version.sh | 0 {fftools => ffmpeg-y/fftools}/Makefile | 0 {fftools => ffmpeg-y/fftools}/cmdutils.c | 0 {fftools => ffmpeg-y/fftools}/cmdutils.h | 0 {fftools => ffmpeg-y/fftools}/ffmpeg.c | 0 {fftools => ffmpeg-y/fftools}/ffmpeg.h | 0 {fftools => ffmpeg-y/fftools}/ffmpeg_cuvid.c | 0 {fftools => ffmpeg-y/fftools}/ffmpeg_filter.c | 0 {fftools => ffmpeg-y/fftools}/ffmpeg_hw.c | 0 {fftools => ffmpeg-y/fftools}/ffmpeg_opt.c | 0 {fftools => ffmpeg-y/fftools}/ffmpeg_qsv.c | 0 .../fftools}/ffmpeg_videotoolbox.c | 0 {fftools => ffmpeg-y/fftools}/ffplay.c | 0 {fftools => ffmpeg-y/fftools}/ffprobe.c | 0 {libavcodec => ffmpeg-y/libavcodec}/012v.c | 0 {libavcodec => ffmpeg-y/libavcodec}/4xm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/8bps.c | 0 {libavcodec => ffmpeg-y/libavcodec}/8svx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/Makefile | 0 .../libavcodec}/a64colors.h | 0 .../libavcodec}/a64multienc.c | 0 .../libavcodec}/a64tables.h | 0 {libavcodec => ffmpeg-y/libavcodec}/aac.h | 0 .../libavcodec}/aac_ac3_parser.c | 0 .../libavcodec}/aac_ac3_parser.h | 0 .../libavcodec}/aac_adtstoasc_bsf.c | 0 .../libavcodec}/aac_defines.h | 0 .../libavcodec}/aac_parser.c | 0 .../libavcodec}/aaccoder.c | 0 .../libavcodec}/aaccoder_trellis.h | 0 .../libavcodec}/aaccoder_twoloop.h | 0 {libavcodec => ffmpeg-y/libavcodec}/aacdec.c | 0 .../libavcodec}/aacdec_fixed.c | 0 .../libavcodec}/aacdec_template.c | 0 .../libavcodec}/aacdectab.h | 0 {libavcodec => ffmpeg-y/libavcodec}/aacenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aacenc.h | 0 .../libavcodec}/aacenc_is.c | 0 .../libavcodec}/aacenc_is.h | 0 .../libavcodec}/aacenc_ltp.c | 0 .../libavcodec}/aacenc_ltp.h | 0 .../libavcodec}/aacenc_pred.c | 0 .../libavcodec}/aacenc_pred.h | 0 .../libavcodec}/aacenc_quantization.h | 0 .../libavcodec}/aacenc_quantization_misc.h | 0 .../libavcodec}/aacenc_tns.c | 0 .../libavcodec}/aacenc_tns.h | 0 .../libavcodec}/aacenc_utils.h | 0 .../libavcodec}/aacenctab.c | 0 .../libavcodec}/aacenctab.h | 0 {libavcodec => ffmpeg-y/libavcodec}/aacps.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aacps.h | 0 .../libavcodec}/aacps_fixed.c | 0 .../libavcodec}/aacps_fixed_tablegen.c | 0 .../libavcodec}/aacps_fixed_tablegen.h | 0 .../libavcodec}/aacps_float.c | 0 .../libavcodec}/aacps_tablegen.c | 0 .../libavcodec}/aacps_tablegen.h | 0 .../libavcodec}/aacps_tablegen_template.c | 0 .../libavcodec}/aacpsdata.c | 0 .../libavcodec}/aacpsdsp.h | 0 .../libavcodec}/aacpsdsp_fixed.c | 0 .../libavcodec}/aacpsdsp_float.c | 0 .../libavcodec}/aacpsdsp_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aacpsy.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aacsbr.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aacsbr.h | 0 .../libavcodec}/aacsbr_fixed.c | 0 .../libavcodec}/aacsbr_fixed_tablegen.h | 0 .../libavcodec}/aacsbr_tablegen.h | 0 .../libavcodec}/aacsbr_tablegen_common.h | 0 .../libavcodec}/aacsbr_template.c | 0 .../libavcodec}/aacsbrdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/aactab.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aactab.h | 0 .../libavcodec}/aandcttab.c | 0 .../libavcodec}/aandcttab.h | 0 .../libavcodec}/aarch64/Makefile | 0 .../aarch64/aacpsdsp_init_aarch64.c | 0 .../libavcodec}/aarch64/aacpsdsp_neon.S | 0 .../libavcodec}/aarch64/asm-offsets.h | 0 .../libavcodec}/aarch64/cabac.h | 0 .../libavcodec}/aarch64/fft_init_aarch64.c | 0 .../libavcodec}/aarch64/fft_neon.S | 0 .../libavcodec}/aarch64/fmtconvert_init.c | 0 .../libavcodec}/aarch64/fmtconvert_neon.S | 0 .../aarch64/h264chroma_init_aarch64.c | 0 .../libavcodec}/aarch64/h264cmc_neon.S | 0 .../aarch64/h264dsp_init_aarch64.c | 0 .../libavcodec}/aarch64/h264dsp_neon.S | 0 .../libavcodec}/aarch64/h264idct_neon.S | 0 .../libavcodec}/aarch64/h264pred_init.c | 0 .../libavcodec}/aarch64/h264pred_neon.S | 0 .../aarch64/h264qpel_init_aarch64.c | 0 .../libavcodec}/aarch64/h264qpel_neon.S | 0 .../aarch64/hpeldsp_init_aarch64.c | 0 .../libavcodec}/aarch64/hpeldsp_neon.S | 0 .../libavcodec}/aarch64/idct.h | 0 .../aarch64/idctdsp_init_aarch64.c | 0 .../libavcodec}/aarch64/mdct_neon.S | 0 .../libavcodec}/aarch64/mpegaudiodsp_init.c | 0 .../libavcodec}/aarch64/mpegaudiodsp_neon.S | 0 .../libavcodec}/aarch64/neon.S | 0 .../libavcodec}/aarch64/neontest.c | 0 .../libavcodec}/aarch64/opusdsp_init.c | 0 .../libavcodec}/aarch64/opusdsp_neon.S | 0 .../aarch64/rv40dsp_init_aarch64.c | 0 .../libavcodec}/aarch64/sbrdsp_init_aarch64.c | 0 .../libavcodec}/aarch64/sbrdsp_neon.S | 0 .../libavcodec}/aarch64/simple_idct_neon.S | 0 .../libavcodec}/aarch64/synth_filter_init.c | 0 .../libavcodec}/aarch64/synth_filter_neon.S | 0 .../libavcodec}/aarch64/vc1dsp_init_aarch64.c | 0 .../libavcodec}/aarch64/videodsp.S | 0 .../libavcodec}/aarch64/videodsp_init.c | 0 .../libavcodec}/aarch64/vorbisdsp_init.c | 0 .../libavcodec}/aarch64/vorbisdsp_neon.S | 0 .../libavcodec}/aarch64/vp8dsp.h | 0 .../libavcodec}/aarch64/vp8dsp_init_aarch64.c | 0 .../libavcodec}/aarch64/vp8dsp_neon.S | 0 .../libavcodec}/aarch64/vp9dsp_init.h | 0 .../aarch64/vp9dsp_init_10bpp_aarch64.c | 0 .../aarch64/vp9dsp_init_12bpp_aarch64.c | 0 .../vp9dsp_init_16bpp_aarch64_template.c | 0 .../libavcodec}/aarch64/vp9dsp_init_aarch64.c | 0 .../libavcodec}/aarch64/vp9itxfm_16bpp_neon.S | 0 .../libavcodec}/aarch64/vp9itxfm_neon.S | 0 .../libavcodec}/aarch64/vp9lpf_16bpp_neon.S | 0 .../libavcodec}/aarch64/vp9lpf_neon.S | 0 .../libavcodec}/aarch64/vp9mc_16bpp_neon.S | 0 .../libavcodec}/aarch64/vp9mc_neon.S | 0 {libavcodec => ffmpeg-y/libavcodec}/aasc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3.h | 0 .../libavcodec}/ac3_parser.c | 0 .../libavcodec}/ac3_parser.h | 0 .../libavcodec}/ac3_parser_internal.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3dec.h | 0 .../libavcodec}/ac3dec_data.c | 0 .../libavcodec}/ac3dec_data.h | 0 .../libavcodec}/ac3dec_fixed.c | 0 .../libavcodec}/ac3dec_float.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3enc.h | 0 .../libavcodec}/ac3enc_fixed.c | 0 .../libavcodec}/ac3enc_float.c | 0 .../libavcodec}/ac3enc_opts_template.c | 0 .../libavcodec}/ac3enc_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3tab.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ac3tab.h | 0 .../libavcodec}/acelp_filters.c | 0 .../libavcodec}/acelp_filters.h | 0 .../libavcodec}/acelp_pitch_delay.c | 0 .../libavcodec}/acelp_pitch_delay.h | 0 .../libavcodec}/acelp_vectors.c | 0 .../libavcodec}/acelp_vectors.h | 0 {libavcodec => ffmpeg-y/libavcodec}/adpcm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/adpcm.h | 0 .../libavcodec}/adpcm_data.c | 0 .../libavcodec}/adpcm_data.h | 0 .../libavcodec}/adpcmenc.c | 0 .../libavcodec}/adts_header.c | 0 .../libavcodec}/adts_header.h | 0 .../libavcodec}/adts_parser.c | 0 .../libavcodec}/adts_parser.h | 0 {libavcodec => ffmpeg-y/libavcodec}/adx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/adx.h | 0 .../libavcodec}/adx_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/adxdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/adxenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/agm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aic.c | 0 {libavcodec => ffmpeg-y/libavcodec}/alac.c | 0 .../libavcodec}/alac_data.c | 0 .../libavcodec}/alac_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/alacdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/alacdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/alacenc.c | 0 .../libavcodec}/aliaspixdec.c | 0 .../libavcodec}/aliaspixenc.c | 0 .../libavcodec}/allcodecs.c | 0 .../libavcodec}/alpha/Makefile | 0 .../libavcodec}/alpha/asm.h | 0 .../libavcodec}/alpha/blockdsp_alpha.c | 0 .../libavcodec}/alpha/hpeldsp_alpha.c | 0 .../libavcodec}/alpha/hpeldsp_alpha.h | 0 .../libavcodec}/alpha/hpeldsp_alpha_asm.S | 0 .../libavcodec}/alpha/idctdsp_alpha.c | 0 .../libavcodec}/alpha/idctdsp_alpha.h | 0 .../libavcodec}/alpha/idctdsp_alpha_asm.S | 0 .../libavcodec}/alpha/me_cmp_alpha.c | 0 .../libavcodec}/alpha/me_cmp_mvi_asm.S | 0 .../libavcodec}/alpha/mpegvideo_alpha.c | 0 .../libavcodec}/alpha/pixblockdsp_alpha.c | 0 .../libavcodec}/alpha/regdef.h | 0 .../libavcodec}/alpha/simple_idct_alpha.c | 0 {libavcodec => ffmpeg-y/libavcodec}/alsdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/amfenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/amfenc.h | 0 .../libavcodec}/amfenc_h264.c | 0 .../libavcodec}/amfenc_hevc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/amr.h | 0 .../libavcodec}/amrnbdata.h | 0 .../libavcodec}/amrnbdec.c | 0 .../libavcodec}/amrwbdata.h | 0 .../libavcodec}/amrwbdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/anm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ansi.c | 0 {libavcodec => ffmpeg-y/libavcodec}/apedec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/apng.h | 0 {libavcodec => ffmpeg-y/libavcodec}/aptx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/arbc.c | 0 .../libavcodec}/arm/Makefile | 0 {libavcodec => ffmpeg-y/libavcodec}/arm/aac.h | 0 .../libavcodec}/arm/aacpsdsp_init_arm.c | 0 .../libavcodec}/arm/aacpsdsp_neon.S | 0 .../libavcodec}/arm/ac3dsp_arm.S | 0 .../libavcodec}/arm/ac3dsp_armv6.S | 0 .../libavcodec}/arm/ac3dsp_init_arm.c | 0 .../libavcodec}/arm/ac3dsp_neon.S | 0 .../libavcodec}/arm/asm-offsets.h | 0 .../libavcodec}/arm/audiodsp_arm.h | 0 .../libavcodec}/arm/audiodsp_init_arm.c | 0 .../libavcodec}/arm/audiodsp_init_neon.c | 0 .../libavcodec}/arm/audiodsp_neon.S | 0 .../libavcodec}/arm/blockdsp_arm.h | 0 .../libavcodec}/arm/blockdsp_init_arm.c | 0 .../libavcodec}/arm/blockdsp_init_neon.c | 0 .../libavcodec}/arm/blockdsp_neon.S | 0 .../libavcodec}/arm/cabac.h | 0 {libavcodec => ffmpeg-y/libavcodec}/arm/dca.h | 0 .../libavcodec}/arm/fft_fixed_init_arm.c | 0 .../libavcodec}/arm/fft_fixed_neon.S | 0 .../libavcodec}/arm/fft_init_arm.c | 0 .../libavcodec}/arm/fft_neon.S | 0 .../libavcodec}/arm/fft_vfp.S | 0 .../libavcodec}/arm/flacdsp_arm.S | 0 .../libavcodec}/arm/flacdsp_init_arm.c | 0 .../libavcodec}/arm/fmtconvert_init_arm.c | 0 .../libavcodec}/arm/fmtconvert_neon.S | 0 .../libavcodec}/arm/fmtconvert_vfp.S | 0 .../libavcodec}/arm/g722dsp_init_arm.c | 0 .../libavcodec}/arm/g722dsp_neon.S | 0 .../libavcodec}/arm/h264chroma_init_arm.c | 0 .../libavcodec}/arm/h264cmc_neon.S | 0 .../libavcodec}/arm/h264dsp_init_arm.c | 0 .../libavcodec}/arm/h264dsp_neon.S | 0 .../libavcodec}/arm/h264idct_neon.S | 0 .../libavcodec}/arm/h264pred_init_arm.c | 0 .../libavcodec}/arm/h264pred_neon.S | 0 .../libavcodec}/arm/h264qpel_init_arm.c | 0 .../libavcodec}/arm/h264qpel_neon.S | 0 .../libavcodec}/arm/hevcdsp_arm.h | 0 .../libavcodec}/arm/hevcdsp_deblock_neon.S | 0 .../libavcodec}/arm/hevcdsp_idct_neon.S | 0 .../libavcodec}/arm/hevcdsp_init_arm.c | 0 .../libavcodec}/arm/hevcdsp_init_neon.c | 0 .../libavcodec}/arm/hevcdsp_qpel_neon.S | 0 .../libavcodec}/arm/hevcdsp_sao_neon.S | 0 .../libavcodec}/arm/hpeldsp_arm.S | 0 .../libavcodec}/arm/hpeldsp_arm.h | 0 .../libavcodec}/arm/hpeldsp_armv6.S | 0 .../libavcodec}/arm/hpeldsp_init_arm.c | 0 .../libavcodec}/arm/hpeldsp_init_armv6.c | 0 .../libavcodec}/arm/hpeldsp_init_neon.c | 0 .../libavcodec}/arm/hpeldsp_neon.S | 0 .../libavcodec}/arm/idct.h | 0 .../libavcodec}/arm/idctdsp_arm.S | 0 .../libavcodec}/arm/idctdsp_arm.h | 0 .../libavcodec}/arm/idctdsp_armv6.S | 0 .../libavcodec}/arm/idctdsp_init_arm.c | 0 .../libavcodec}/arm/idctdsp_init_armv5te.c | 0 .../libavcodec}/arm/idctdsp_init_armv6.c | 0 .../libavcodec}/arm/idctdsp_init_neon.c | 0 .../libavcodec}/arm/idctdsp_neon.S | 0 .../libavcodec}/arm/int_neon.S | 0 .../libavcodec}/arm/jrevdct_arm.S | 0 .../arm/lossless_audiodsp_init_arm.c | 0 .../libavcodec}/arm/lossless_audiodsp_neon.S | 0 .../libavcodec}/arm/mathops.h | 0 .../libavcodec}/arm/mdct_fixed_neon.S | 0 .../libavcodec}/arm/mdct_neon.S | 0 .../libavcodec}/arm/mdct_vfp.S | 0 .../libavcodec}/arm/me_cmp_armv6.S | 0 .../libavcodec}/arm/me_cmp_init_arm.c | 0 .../libavcodec}/arm/mlpdsp_armv5te.S | 0 .../libavcodec}/arm/mlpdsp_armv6.S | 0 .../libavcodec}/arm/mlpdsp_init_arm.c | 0 .../arm/mpegaudiodsp_fixed_armv6.S | 0 .../libavcodec}/arm/mpegaudiodsp_init_arm.c | 0 .../libavcodec}/arm/mpegvideo_arm.c | 0 .../libavcodec}/arm/mpegvideo_arm.h | 0 .../libavcodec}/arm/mpegvideo_armv5te.c | 0 .../libavcodec}/arm/mpegvideo_armv5te_s.S | 0 .../libavcodec}/arm/mpegvideo_neon.S | 0 .../libavcodec}/arm/mpegvideoencdsp_armv6.S | 0 .../arm/mpegvideoencdsp_init_arm.c | 0 .../libavcodec}/arm/neon.S | 0 .../libavcodec}/arm/neontest.c | 0 .../libavcodec}/arm/pixblockdsp_armv6.S | 0 .../libavcodec}/arm/pixblockdsp_init_arm.c | 0 .../libavcodec}/arm/rdft_init_arm.c | 0 .../libavcodec}/arm/rdft_neon.S | 0 .../libavcodec}/arm/rv34dsp_init_arm.c | 0 .../libavcodec}/arm/rv34dsp_neon.S | 0 .../libavcodec}/arm/rv40dsp_init_arm.c | 0 .../libavcodec}/arm/rv40dsp_neon.S | 0 .../libavcodec}/arm/sbcdsp_armv6.S | 0 .../libavcodec}/arm/sbcdsp_init_arm.c | 0 .../libavcodec}/arm/sbcdsp_neon.S | 0 .../libavcodec}/arm/sbrdsp_init_arm.c | 0 .../libavcodec}/arm/sbrdsp_neon.S | 0 .../libavcodec}/arm/simple_idct_arm.S | 0 .../libavcodec}/arm/simple_idct_armv5te.S | 0 .../libavcodec}/arm/simple_idct_armv6.S | 0 .../libavcodec}/arm/simple_idct_neon.S | 0 .../libavcodec}/arm/startcode.h | 0 .../libavcodec}/arm/startcode_armv6.S | 0 .../libavcodec}/arm/synth_filter_init_arm.c | 0 .../libavcodec}/arm/synth_filter_neon.S | 0 .../libavcodec}/arm/synth_filter_vfp.S | 0 .../libavcodec}/arm/vc1dsp.h | 0 .../libavcodec}/arm/vc1dsp_init_arm.c | 0 .../libavcodec}/arm/vc1dsp_init_neon.c | 0 .../libavcodec}/arm/vc1dsp_neon.S | 0 .../libavcodec}/arm/videodsp_arm.h | 0 .../libavcodec}/arm/videodsp_armv5te.S | 0 .../libavcodec}/arm/videodsp_init_arm.c | 0 .../libavcodec}/arm/videodsp_init_armv5te.c | 0 .../libavcodec}/arm/vorbisdsp_init_arm.c | 0 .../libavcodec}/arm/vorbisdsp_neon.S | 0 .../libavcodec}/arm/vp3dsp_init_arm.c | 0 .../libavcodec}/arm/vp3dsp_neon.S | 0 .../libavcodec}/arm/vp56_arith.h | 0 .../libavcodec}/arm/vp6dsp_init_arm.c | 0 .../libavcodec}/arm/vp6dsp_neon.S | 0 {libavcodec => ffmpeg-y/libavcodec}/arm/vp8.h | 0 .../libavcodec}/arm/vp8_armv6.S | 0 .../libavcodec}/arm/vp8dsp.h | 0 .../libavcodec}/arm/vp8dsp_armv6.S | 0 .../libavcodec}/arm/vp8dsp_init_arm.c | 0 .../libavcodec}/arm/vp8dsp_init_armv6.c | 0 .../libavcodec}/arm/vp8dsp_init_neon.c | 0 .../libavcodec}/arm/vp8dsp_neon.S | 0 .../libavcodec}/arm/vp9dsp_init.h | 0 .../libavcodec}/arm/vp9dsp_init_10bpp_arm.c | 0 .../libavcodec}/arm/vp9dsp_init_12bpp_arm.c | 0 .../arm/vp9dsp_init_16bpp_arm_template.c | 0 .../libavcodec}/arm/vp9dsp_init_arm.c | 0 .../libavcodec}/arm/vp9itxfm_16bpp_neon.S | 0 .../libavcodec}/arm/vp9itxfm_neon.S | 0 .../libavcodec}/arm/vp9lpf_16bpp_neon.S | 0 .../libavcodec}/arm/vp9lpf_neon.S | 0 .../libavcodec}/arm/vp9mc_16bpp_neon.S | 0 .../libavcodec}/arm/vp9mc_neon.S | 0 {libavcodec => ffmpeg-y/libavcodec}/ass.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ass.h | 0 .../libavcodec}/ass_split.c | 0 .../libavcodec}/ass_split.h | 0 {libavcodec => ffmpeg-y/libavcodec}/assdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/assenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/asv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/asv.h | 0 {libavcodec => ffmpeg-y/libavcodec}/asvdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/asvenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/atrac.c | 0 {libavcodec => ffmpeg-y/libavcodec}/atrac.h | 0 {libavcodec => ffmpeg-y/libavcodec}/atrac1.c | 0 .../libavcodec}/atrac1data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/atrac3.c | 0 .../libavcodec}/atrac3data.h | 0 .../libavcodec}/atrac3plus.c | 0 .../libavcodec}/atrac3plus.h | 0 .../libavcodec}/atrac3plus_data.h | 0 .../libavcodec}/atrac3plusdec.c | 0 .../libavcodec}/atrac3plusdsp.c | 0 .../libavcodec}/atrac9dec.c | 0 .../libavcodec}/atrac9tab.h | 0 .../libavcodec}/audio_frame_queue.c | 0 .../libavcodec}/audio_frame_queue.h | 0 .../libavcodec}/audiodsp.c | 0 .../libavcodec}/audiodsp.h | 0 .../libavcodec}/audiotoolboxdec.c | 0 .../libavcodec}/audiotoolboxenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/aura.c | 0 {libavcodec => ffmpeg-y/libavcodec}/av1.h | 0 .../libavcodec}/av1_frame_split_bsf.c | 0 .../libavcodec}/av1_metadata_bsf.c | 0 .../libavcodec}/av1_parse.c | 0 .../libavcodec}/av1_parse.h | 0 .../libavcodec}/av1_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/avcodec.h | 0 .../libavcodec}/avcodecres.rc | 0 {libavcodec => ffmpeg-y/libavcodec}/avdct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/avdct.h | 0 {libavcodec => ffmpeg-y/libavcodec}/avfft.c | 0 {libavcodec => ffmpeg-y/libavcodec}/avfft.h | 0 .../libavcodec}/avpacket.c | 0 .../libavcodec}/avpicture.c | 0 .../libavcodec}/avr32/mathops.h | 0 {libavcodec => ffmpeg-y/libavcodec}/avrndec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/avs.c | 0 .../libavcodec}/avs2_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/avuidec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/avuienc.c | 0 .../libavcodec}/bethsoftvideo.c | 0 .../libavcodec}/bethsoftvideo.h | 0 {libavcodec => ffmpeg-y/libavcodec}/bfi.c | 0 .../libavcodec}/bfin/README | 0 {libavcodec => ffmpeg-y/libavcodec}/bgmc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/bgmc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/bink.c | 0 .../libavcodec}/binkaudio.c | 0 .../libavcodec}/binkdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/binkdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/binkdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/bintext.c | 0 {libavcodec => ffmpeg-y/libavcodec}/bintext.h | 0 .../libavcodec}/bit_depth_template.c | 0 .../libavcodec}/bitpacked.c | 0 .../libavcodec}/bitstream.c | 0 .../libavcodec}/bitstream_filter.c | 0 .../libavcodec}/bitstream_filters.c | 0 .../libavcodec}/blockdsp.c | 0 .../libavcodec}/blockdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/bmp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/bmp.h | 0 .../libavcodec}/bmp_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/bmpenc.c | 0 .../libavcodec}/bmvaudio.c | 0 .../libavcodec}/bmvvideo.c | 0 .../libavcodec}/brenderpix.c | 0 {libavcodec => ffmpeg-y/libavcodec}/bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/bsf.h | 0 .../libavcodec}/bswapdsp.c | 0 .../libavcodec}/bswapdsp.h | 0 .../libavcodec}/bytestream.h | 0 {libavcodec => ffmpeg-y/libavcodec}/c93.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cabac.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cabac.h | 0 .../libavcodec}/cabac_functions.h | 0 {libavcodec => ffmpeg-y/libavcodec}/canopus.c | 0 {libavcodec => ffmpeg-y/libavcodec}/canopus.h | 0 {libavcodec => ffmpeg-y/libavcodec}/cavs.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cavs.h | 0 .../libavcodec}/cavs_parser.c | 0 .../libavcodec}/cavsdata.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cavsdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cavsdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cavsdsp.h | 0 .../libavcodec}/cbrt_data.c | 0 .../libavcodec}/cbrt_data.h | 0 .../libavcodec}/cbrt_data_fixed.c | 0 .../libavcodec}/cbrt_fixed_tablegen.c | 0 .../libavcodec}/cbrt_tablegen.c | 0 .../libavcodec}/cbrt_tablegen.h | 0 .../libavcodec}/cbrt_tablegen_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cbs.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cbs.h | 0 {libavcodec => ffmpeg-y/libavcodec}/cbs_av1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cbs_av1.h | 0 .../libavcodec}/cbs_av1_syntax_template.c | 0 .../libavcodec}/cbs_h264.h | 0 .../libavcodec}/cbs_h2645.c | 0 .../libavcodec}/cbs_h2645.h | 0 .../libavcodec}/cbs_h264_syntax_template.c | 0 .../libavcodec}/cbs_h265.h | 0 .../libavcodec}/cbs_h265_syntax_template.c | 0 .../libavcodec}/cbs_internal.h | 0 .../libavcodec}/cbs_jpeg.c | 0 .../libavcodec}/cbs_jpeg.h | 0 .../libavcodec}/cbs_jpeg_syntax_template.c | 0 .../libavcodec}/cbs_mpeg2.c | 0 .../libavcodec}/cbs_mpeg2.h | 0 .../libavcodec}/cbs_mpeg2_syntax_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cbs_vp9.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cbs_vp9.h | 0 .../libavcodec}/cbs_vp9_syntax_template.c | 0 .../libavcodec}/ccaption_dec.c | 0 .../libavcodec}/cdgraphics.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cdxl.c | 0 .../libavcodec}/celp_filters.c | 0 .../libavcodec}/celp_filters.h | 0 .../libavcodec}/celp_math.c | 0 .../libavcodec}/celp_math.h | 0 {libavcodec => ffmpeg-y/libavcodec}/cfhd.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cfhd.h | 0 .../libavcodec}/cfhddata.c | 0 .../libavcodec}/cga_data.c | 0 .../libavcodec}/cga_data.h | 0 .../libavcodec}/chomp_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cinepak.c | 0 .../libavcodec}/cinepakenc.c | 0 .../libavcodec}/clearvideo.c | 0 .../libavcodec}/clearvideodata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/cljrdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cljrenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cllc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cngdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cngenc.c | 0 .../libavcodec}/codec2utils.c | 0 .../libavcodec}/codec2utils.h | 0 .../libavcodec}/codec_desc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cook.c | 0 .../libavcodec}/cook_parser.c | 0 .../libavcodec}/cookdata.h | 0 .../libavcodec}/copy_block.h | 0 .../libavcodec}/cos_tablegen.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cpia.c | 0 .../libavcodec}/crystalhd.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cscd.c | 0 .../libavcodec}/cuviddec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/cyuv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/d3d11va.c | 0 {libavcodec => ffmpeg-y/libavcodec}/d3d11va.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dca.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dca.h | 0 .../libavcodec}/dca_core.c | 0 .../libavcodec}/dca_core.h | 0 .../libavcodec}/dca_core_bsf.c | 0 .../libavcodec}/dca_exss.c | 0 .../libavcodec}/dca_exss.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dca_lbr.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dca_lbr.h | 0 .../libavcodec}/dca_parser.c | 0 .../libavcodec}/dca_syncwords.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dca_xll.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dca_xll.h | 0 .../libavcodec}/dcaadpcm.c | 0 .../libavcodec}/dcaadpcm.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadata.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadct.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dcadsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcaenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dcaenc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcahuff.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dcahuff.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dcamath.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dct.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dct32.h | 0 .../libavcodec}/dct32_fixed.c | 0 .../libavcodec}/dct32_float.c | 0 .../libavcodec}/dct32_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dctref.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dctref.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dds.c | 0 {libavcodec => ffmpeg-y/libavcodec}/decode.c | 0 {libavcodec => ffmpeg-y/libavcodec}/decode.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dfa.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dirac.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dirac.h | 0 .../libavcodec}/dirac_arith.c | 0 .../libavcodec}/dirac_arith.h | 0 .../libavcodec}/dirac_dwt.c | 0 .../libavcodec}/dirac_dwt.h | 0 .../libavcodec}/dirac_dwt_template.c | 0 .../libavcodec}/dirac_parser.c | 0 .../libavcodec}/dirac_vlc.c | 0 .../libavcodec}/dirac_vlc.h | 0 .../libavcodec}/diracdec.c | 0 .../libavcodec}/diracdsp.c | 0 .../libavcodec}/diracdsp.h | 0 .../libavcodec}/diractab.c | 0 .../libavcodec}/diractab.h | 0 .../libavcodec}/dnxhd_parser.c | 0 .../libavcodec}/dnxhddata.c | 0 .../libavcodec}/dnxhddata.h | 0 .../libavcodec}/dnxhddec.c | 0 .../libavcodec}/dnxhdenc.c | 0 .../libavcodec}/dnxhdenc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dolby_e.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dolby_e.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dpcm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dpx.c | 0 .../libavcodec}/dpx_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dpxenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dsd.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dsd.h | 0 .../libavcodec}/dsd_tablegen.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dsddec.c | 0 .../libavcodec}/dsicinaudio.c | 0 .../libavcodec}/dsicinvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dss_sp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dstdec.c | 0 .../libavcodec}/dump_extradata_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dv.h | 0 .../libavcodec}/dv_profile.c | 0 .../libavcodec}/dv_profile.h | 0 .../libavcodec}/dv_profile_internal.h | 0 .../libavcodec}/dv_tablegen.c | 0 .../libavcodec}/dv_tablegen.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dvaudio.h | 0 .../libavcodec}/dvaudio_parser.c | 0 .../libavcodec}/dvaudiodec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dvbsub.c | 0 .../libavcodec}/dvbsub_parser.c | 0 .../libavcodec}/dvbsubdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dvbtxt.h | 0 .../libavcodec}/dvd_nav_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dvdata.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dvdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/dvdec.c | 0 .../libavcodec}/dvdsub_parser.c | 0 .../libavcodec}/dvdsubdec.c | 0 .../libavcodec}/dvdsubenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dvenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dxa.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dxtory.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dxv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dxva2.c | 0 {libavcodec => ffmpeg-y/libavcodec}/dxva2.h | 0 .../libavcodec}/dxva2_h264.c | 0 .../libavcodec}/dxva2_hevc.c | 0 .../libavcodec}/dxva2_internal.h | 0 .../libavcodec}/dxva2_mpeg2.c | 0 .../libavcodec}/dxva2_vc1.c | 0 .../libavcodec}/dxva2_vp9.c | 0 .../libavcodec}/eac3_core_bsf.c | 0 .../libavcodec}/eac3_data.c | 0 .../libavcodec}/eac3_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/eac3dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eac3enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eac3enc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/eacmv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eaidct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eaidct.h | 0 {libavcodec => ffmpeg-y/libavcodec}/eamad.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eatgq.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eatgv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/eatqi.c | 0 {libavcodec => ffmpeg-y/libavcodec}/elbg.c | 0 {libavcodec => ffmpeg-y/libavcodec}/elbg.h | 0 {libavcodec => ffmpeg-y/libavcodec}/elsdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/elsdec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/encode.c | 0 .../libavcodec}/error_resilience.c | 0 .../libavcodec}/error_resilience.h | 0 .../libavcodec}/escape124.c | 0 .../libavcodec}/escape130.c | 0 .../libavcodec}/evrcdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/evrcdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/exif.c | 0 {libavcodec => ffmpeg-y/libavcodec}/exif.h | 0 {libavcodec => ffmpeg-y/libavcodec}/exr.c | 0 {libavcodec => ffmpeg-y/libavcodec}/exrdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/exrdsp.h | 0 .../libavcodec}/extract_extradata_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/faandct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/faandct.h | 0 .../libavcodec}/faanidct.c | 0 .../libavcodec}/faanidct.h | 0 .../libavcodec}/faxcompr.c | 0 .../libavcodec}/faxcompr.h | 0 {libavcodec => ffmpeg-y/libavcodec}/fdctdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/fdctdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ffjni.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ffjni.h | 0 .../libavcodec}/fft-internal.h | 0 {libavcodec => ffmpeg-y/libavcodec}/fft.h | 0 .../libavcodec}/fft_fixed.c | 0 .../libavcodec}/fft_fixed_32.c | 0 .../libavcodec}/fft_float.c | 0 .../libavcodec}/fft_init_table.c | 0 .../libavcodec}/fft_table.h | 0 .../libavcodec}/fft_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ffv1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ffv1.h | 0 .../libavcodec}/ffv1_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ffv1dec.c | 0 .../libavcodec}/ffv1dec_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ffv1enc.c | 0 .../libavcodec}/ffv1enc_template.c | 0 .../libavcodec}/ffwavesynth.c | 0 {libavcodec => ffmpeg-y/libavcodec}/fic.c | 0 .../libavcodec}/file_open.c | 0 .../libavcodec}/filter_units_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/fits.c | 0 {libavcodec => ffmpeg-y/libavcodec}/fits.h | 0 {libavcodec => ffmpeg-y/libavcodec}/fitsdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/fitsenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flac.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flac.h | 0 .../libavcodec}/flac_parser.c | 0 .../libavcodec}/flacdata.c | 0 .../libavcodec}/flacdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/flacdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flacdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flacdsp.h | 0 .../libavcodec}/flacdsp_lpc_template.c | 0 .../libavcodec}/flacdsp_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flacenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flashsv.c | 0 .../libavcodec}/flashsv2enc.c | 0 .../libavcodec}/flashsvenc.c | 0 .../libavcodec}/flicvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flv.h | 0 {libavcodec => ffmpeg-y/libavcodec}/flvdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/flvenc.c | 0 .../libavcodec}/fmtconvert.c | 0 .../libavcodec}/fmtconvert.h | 0 {libavcodec => ffmpeg-y/libavcodec}/fmvc.c | 0 .../libavcodec}/frame_thread_encoder.c | 0 .../libavcodec}/frame_thread_encoder.h | 0 {libavcodec => ffmpeg-y/libavcodec}/fraps.c | 0 {libavcodec => ffmpeg-y/libavcodec}/frwu.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g2meet.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g722.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g722.h | 0 {libavcodec => ffmpeg-y/libavcodec}/g722dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g722dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g722dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/g722enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g723_1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g723_1.h | 0 .../libavcodec}/g723_1_parser.c | 0 .../libavcodec}/g723_1dec.c | 0 .../libavcodec}/g723_1enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g726.c | 0 {libavcodec => ffmpeg-y/libavcodec}/g729.h | 0 .../libavcodec}/g729_parser.c | 0 .../libavcodec}/g729data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/g729dec.c | 0 .../libavcodec}/g729postfilter.c | 0 .../libavcodec}/g729postfilter.h | 0 {libavcodec => ffmpeg-y/libavcodec}/gdv.c | 0 .../libavcodec}/get_bits.h | 0 {libavcodec => ffmpeg-y/libavcodec}/gif.c | 0 {libavcodec => ffmpeg-y/libavcodec}/gif.h | 0 .../libavcodec}/gif_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/gifdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/golomb.c | 0 {libavcodec => ffmpeg-y/libavcodec}/golomb.h | 0 {libavcodec => ffmpeg-y/libavcodec}/gsm.h | 0 .../libavcodec}/gsm_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/gsmdec.c | 0 .../libavcodec}/gsmdec_data.c | 0 .../libavcodec}/gsmdec_data.h | 0 .../libavcodec}/gsmdec_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h261.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h261.h | 0 .../libavcodec}/h261_parser.c | 0 .../libavcodec}/h261data.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h261dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h261enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h263.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h263.h | 0 .../libavcodec}/h263_parser.c | 0 .../libavcodec}/h263_parser.h | 0 .../libavcodec}/h263data.c | 0 .../libavcodec}/h263data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/h263dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h263dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h263dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/h264.h | 0 .../libavcodec}/h2645_parse.c | 0 .../libavcodec}/h2645_parse.h | 0 .../libavcodec}/h264_cabac.c | 0 .../libavcodec}/h264_cavlc.c | 0 .../libavcodec}/h264_direct.c | 0 .../libavcodec}/h264_levels.c | 0 .../libavcodec}/h264_levels.h | 0 .../libavcodec}/h264_loopfilter.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h264_mb.c | 0 .../libavcodec}/h264_mb_template.c | 0 .../libavcodec}/h264_mc_template.c | 0 .../libavcodec}/h264_metadata_bsf.c | 0 .../libavcodec}/h264_mp4toannexb_bsf.c | 0 .../libavcodec}/h264_mvpred.h | 0 .../libavcodec}/h264_parse.c | 0 .../libavcodec}/h264_parse.h | 0 .../libavcodec}/h264_parser.c | 0 .../libavcodec}/h264_picture.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h264_ps.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h264_ps.h | 0 .../libavcodec}/h264_redundant_pps_bsf.c | 0 .../libavcodec}/h264_refs.c | 0 .../libavcodec}/h264_sei.c | 0 .../libavcodec}/h264_sei.h | 0 .../libavcodec}/h264_slice.c | 0 .../libavcodec}/h264addpx_template.c | 0 .../libavcodec}/h264chroma.c | 0 .../libavcodec}/h264chroma.h | 0 .../libavcodec}/h264chroma_template.c | 0 .../libavcodec}/h264data.c | 0 .../libavcodec}/h264data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/h264dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h264dec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/h264dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/h264dsp.h | 0 .../libavcodec}/h264dsp_template.c | 0 .../libavcodec}/h264idct.c | 0 .../libavcodec}/h264idct.h | 0 .../libavcodec}/h264idct_template.c | 0 .../libavcodec}/h264pred.c | 0 .../libavcodec}/h264pred.h | 0 .../libavcodec}/h264pred_template.c | 0 .../libavcodec}/h264qpel.c | 0 .../libavcodec}/h264qpel.h | 0 .../libavcodec}/h264qpel_template.c | 0 .../libavcodec}/h265_metadata_bsf.c | 0 .../libavcodec}/h265_profile_level.c | 0 .../libavcodec}/h265_profile_level.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hap.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hap.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hapdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hapenc.c | 0 .../libavcodec}/hapqa_extract_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hcom.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hevc.h | 0 .../libavcodec}/hevc_cabac.c | 0 .../libavcodec}/hevc_data.c | 0 .../libavcodec}/hevc_data.h | 0 .../libavcodec}/hevc_filter.c | 0 .../libavcodec}/hevc_mp4toannexb_bsf.c | 0 .../libavcodec}/hevc_mvs.c | 0 .../libavcodec}/hevc_parse.c | 0 .../libavcodec}/hevc_parse.h | 0 .../libavcodec}/hevc_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hevc_ps.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hevc_ps.h | 0 .../libavcodec}/hevc_ps_enc.c | 0 .../libavcodec}/hevc_refs.c | 0 .../libavcodec}/hevc_sei.c | 0 .../libavcodec}/hevc_sei.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hevcdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hevcdec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hevcdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hevcdsp.h | 0 .../libavcodec}/hevcdsp_template.c | 0 .../libavcodec}/hevcpred.c | 0 .../libavcodec}/hevcpred.h | 0 .../libavcodec}/hevcpred_template.c | 0 .../libavcodec}/hnm4video.c | 0 .../libavcodec}/hpel_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hpeldsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hpeldsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hq_hqa.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hq_hqa.h | 0 .../libavcodec}/hq_hqadata.c | 0 .../libavcodec}/hq_hqadsp.c | 0 .../libavcodec}/hq_hqadsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hqx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hqx.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hqxdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/hqxdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hqxvlc.c | 0 .../libavcodec}/htmlsubtitles.c | 0 .../libavcodec}/htmlsubtitles.h | 0 {libavcodec => ffmpeg-y/libavcodec}/huffman.c | 0 {libavcodec => ffmpeg-y/libavcodec}/huffman.h | 0 {libavcodec => ffmpeg-y/libavcodec}/huffyuv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/huffyuv.h | 0 .../libavcodec}/huffyuvdec.c | 0 .../libavcodec}/huffyuvdsp.c | 0 .../libavcodec}/huffyuvdsp.h | 0 .../libavcodec}/huffyuvenc.c | 0 .../libavcodec}/huffyuvencdsp.c | 0 .../libavcodec}/huffyuvencdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/hwaccel.h | 0 .../libavcodec}/hwaccels.h | 0 .../libavcodec}/idcinvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/idctdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/idctdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/iff.c | 0 .../libavcodec}/iirfilter.c | 0 .../libavcodec}/iirfilter.h | 0 .../libavcodec}/ilbcdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ilbcdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/imc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/imcdata.h | 0 .../libavcodec}/imgconvert.c | 0 {libavcodec => ffmpeg-y/libavcodec}/imm4.c | 0 .../libavcodec}/imx_dump_header_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/indeo2.c | 0 .../libavcodec}/indeo2data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/indeo3.c | 0 .../libavcodec}/indeo3data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/indeo4.c | 0 .../libavcodec}/indeo4data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/indeo5.c | 0 .../libavcodec}/indeo5data.h | 0 .../libavcodec}/intelh263dec.c | 0 .../libavcodec}/internal.h | 0 .../libavcodec}/interplayacm.c | 0 .../libavcodec}/interplayvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/intrax8.c | 0 {libavcodec => ffmpeg-y/libavcodec}/intrax8.h | 0 .../libavcodec}/intrax8dsp.c | 0 .../libavcodec}/intrax8dsp.h | 0 .../libavcodec}/intrax8huf.h | 0 .../libavcodec}/ituh263dec.c | 0 .../libavcodec}/ituh263enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ivi.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ivi.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ivi_dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ivi_dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/j2kenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/jacosub.h | 0 .../libavcodec}/jacosubdec.c | 0 .../libavcodec}/jfdctfst.c | 0 .../libavcodec}/jfdctint.c | 0 .../libavcodec}/jfdctint_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/jni.c | 0 {libavcodec => ffmpeg-y/libavcodec}/jni.h | 0 .../libavcodec}/jpeg2000.c | 0 .../libavcodec}/jpeg2000.h | 0 .../libavcodec}/jpeg2000dec.c | 0 .../libavcodec}/jpeg2000dsp.c | 0 .../libavcodec}/jpeg2000dsp.h | 0 .../libavcodec}/jpeg2000dwt.c | 0 .../libavcodec}/jpeg2000dwt.h | 0 {libavcodec => ffmpeg-y/libavcodec}/jpegls.c | 0 {libavcodec => ffmpeg-y/libavcodec}/jpegls.h | 0 .../libavcodec}/jpeglsdec.c | 0 .../libavcodec}/jpeglsdec.h | 0 .../libavcodec}/jpeglsenc.c | 0 .../libavcodec}/jpegtables.c | 0 .../libavcodec}/jpegtables.h | 0 {libavcodec => ffmpeg-y/libavcodec}/jrevdct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/jvdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/kbdwin.c | 0 {libavcodec => ffmpeg-y/libavcodec}/kbdwin.h | 0 {libavcodec => ffmpeg-y/libavcodec}/kgv1dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/kmvc.c | 0 .../libavcodec}/lagarith.c | 0 .../libavcodec}/lagarithrac.c | 0 .../libavcodec}/lagarithrac.h | 0 .../libavcodec}/latm_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/lcl.h | 0 {libavcodec => ffmpeg-y/libavcodec}/lcldec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/lclenc.c | 0 .../libavcodec}/libaomdec.c | 0 .../libavcodec}/libaomenc.c | 0 .../libavcodec}/libaribb24.c | 0 .../libavcodec}/libavcodec.v | 0 .../libavcodec}/libcelt_dec.c | 0 .../libavcodec}/libcodec2.c | 0 .../libavcodec}/libdav1d.c | 0 .../libavcodec}/libdavs2.c | 0 .../libavcodec}/libfdk-aacdec.c | 0 .../libavcodec}/libfdk-aacenc.c | 0 .../libavcodec}/libgsmdec.c | 0 .../libavcodec}/libgsmenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libilbc.c | 0 .../libavcodec}/libkvazaar.c | 0 .../libavcodec}/libmp3lame.c | 0 .../libavcodec}/libopencore-amr.c | 0 .../libavcodec}/libopenh264.c | 0 .../libavcodec}/libopenh264.h | 0 .../libavcodec}/libopenh264dec.c | 0 .../libavcodec}/libopenh264enc.c | 0 .../libavcodec}/libopenjpegdec.c | 0 .../libavcodec}/libopenjpegenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libopus.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libopus.h | 0 .../libavcodec}/libopusdec.c | 0 .../libavcodec}/libopusenc.c | 0 .../libavcodec}/librsvgdec.c | 0 .../libavcodec}/libshine.c | 0 .../libavcodec}/libspeexdec.c | 0 .../libavcodec}/libspeexenc.c | 0 .../libavcodec}/libtheoraenc.c | 0 .../libavcodec}/libtwolame.c | 0 .../libavcodec}/libvo-amrwbenc.c | 0 .../libavcodec}/libvorbisdec.c | 0 .../libavcodec}/libvorbisenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libvpx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libvpx.h | 0 .../libavcodec}/libvpxdec.c | 0 .../libavcodec}/libvpxenc.c | 0 .../libavcodec}/libwavpackenc.c | 0 .../libavcodec}/libwebpenc.c | 0 .../libavcodec}/libwebpenc_animencoder.c | 0 .../libavcodec}/libwebpenc_common.c | 0 .../libavcodec}/libwebpenc_common.h | 0 {libavcodec => ffmpeg-y/libavcodec}/libx264.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libx265.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libxavs.c | 0 .../libavcodec}/libxavs2.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libxvid.c | 0 {libavcodec => ffmpeg-y/libavcodec}/libxvid.h | 0 .../libavcodec}/libzvbi-teletextdec.c | 0 .../libavcodec}/ljpegenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/loco.c | 0 .../libavcodec}/log2_tab.c | 0 .../libavcodec}/lossless_audiodsp.c | 0 .../libavcodec}/lossless_audiodsp.h | 0 .../libavcodec}/lossless_videodsp.c | 0 .../libavcodec}/lossless_videodsp.h | 0 .../libavcodec}/lossless_videoencdsp.c | 0 .../libavcodec}/lossless_videoencdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/lpc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/lpc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/lsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/lsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/lzf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/lzf.h | 0 {libavcodec => ffmpeg-y/libavcodec}/lzw.c | 0 {libavcodec => ffmpeg-y/libavcodec}/lzw.h | 0 {libavcodec => ffmpeg-y/libavcodec}/lzwenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/m101.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mace.c | 0 .../libavcodec}/magicyuv.c | 0 .../libavcodec}/magicyuvenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mathops.h | 0 .../libavcodec}/mathtables.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mdct15.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mdct15.h | 0 .../libavcodec}/mdct_fixed.c | 0 .../libavcodec}/mdct_fixed_32.c | 0 .../libavcodec}/mdct_float.c | 0 .../libavcodec}/mdct_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/me_cmp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/me_cmp.h | 0 .../libavcodec}/mediacodec.c | 0 .../libavcodec}/mediacodec.h | 0 .../libavcodec}/mediacodec_surface.c | 0 .../libavcodec}/mediacodec_surface.h | 0 .../libavcodec}/mediacodec_sw_buffer.c | 0 .../libavcodec}/mediacodec_sw_buffer.h | 0 .../libavcodec}/mediacodec_wrapper.c | 0 .../libavcodec}/mediacodec_wrapper.h | 0 .../libavcodec}/mediacodecdec.c | 0 .../libavcodec}/mediacodecdec_common.c | 0 .../libavcodec}/mediacodecdec_common.h | 0 .../libavcodec}/metasound.c | 0 .../libavcodec}/metasound_data.c | 0 .../libavcodec}/metasound_data.h | 0 .../libavcodec}/microdvddec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mimic.c | 0 .../libavcodec}/mips/Makefile | 0 .../libavcodec}/mips/aaccoder_mips.c | 0 .../libavcodec}/mips/aacdec_mips.c | 0 .../libavcodec}/mips/aacdec_mips.h | 0 .../libavcodec}/mips/aacpsdsp_mips.c | 0 .../libavcodec}/mips/aacpsy_mips.h | 0 .../libavcodec}/mips/aacsbr_mips.c | 0 .../libavcodec}/mips/aacsbr_mips.h | 0 .../libavcodec}/mips/ac3dsp_mips.c | 0 .../libavcodec}/mips/acelp_filters_mips.c | 0 .../libavcodec}/mips/acelp_vectors_mips.c | 0 .../libavcodec}/mips/amrwbdec_mips.c | 0 .../libavcodec}/mips/amrwbdec_mips.h | 0 .../libavcodec}/mips/blockdsp_init_mips.c | 0 .../libavcodec}/mips/blockdsp_mips.h | 0 .../libavcodec}/mips/blockdsp_mmi.c | 0 .../libavcodec}/mips/blockdsp_msa.c | 0 .../libavcodec}/mips/cabac.h | 0 .../libavcodec}/mips/celp_filters_mips.c | 0 .../libavcodec}/mips/celp_math_mips.c | 0 .../mips/compute_antialias_fixed.h | 0 .../mips/compute_antialias_float.h | 0 .../libavcodec}/mips/constants.c | 0 .../libavcodec}/mips/constants.h | 0 .../libavcodec}/mips/fft_mips.c | 0 .../libavcodec}/mips/fmtconvert_mips.c | 0 .../libavcodec}/mips/h263dsp_init_mips.c | 0 .../libavcodec}/mips/h263dsp_mips.h | 0 .../libavcodec}/mips/h263dsp_msa.c | 0 .../libavcodec}/mips/h264chroma_init_mips.c | 0 .../libavcodec}/mips/h264chroma_mips.h | 0 .../libavcodec}/mips/h264chroma_mmi.c | 0 .../libavcodec}/mips/h264chroma_msa.c | 0 .../libavcodec}/mips/h264dsp_init_mips.c | 0 .../libavcodec}/mips/h264dsp_mips.h | 0 .../libavcodec}/mips/h264dsp_mmi.c | 0 .../libavcodec}/mips/h264dsp_msa.c | 0 .../libavcodec}/mips/h264idct_msa.c | 0 .../libavcodec}/mips/h264pred_init_mips.c | 0 .../libavcodec}/mips/h264pred_mips.h | 0 .../libavcodec}/mips/h264pred_mmi.c | 0 .../libavcodec}/mips/h264pred_msa.c | 0 .../libavcodec}/mips/h264qpel_init_mips.c | 0 .../libavcodec}/mips/h264qpel_mmi.c | 0 .../libavcodec}/mips/h264qpel_msa.c | 0 .../libavcodec}/mips/hevc_idct_msa.c | 0 .../libavcodec}/mips/hevc_lpf_sao_msa.c | 0 .../libavcodec}/mips/hevc_macros_msa.h | 0 .../libavcodec}/mips/hevc_mc_bi_msa.c | 0 .../libavcodec}/mips/hevc_mc_biw_msa.c | 0 .../libavcodec}/mips/hevc_mc_uni_msa.c | 0 .../libavcodec}/mips/hevc_mc_uniw_msa.c | 0 .../libavcodec}/mips/hevcdsp_init_mips.c | 0 .../libavcodec}/mips/hevcdsp_mips.h | 0 .../libavcodec}/mips/hevcdsp_mmi.c | 0 .../libavcodec}/mips/hevcdsp_msa.c | 0 .../libavcodec}/mips/hevcpred_init_mips.c | 0 .../libavcodec}/mips/hevcpred_mips.h | 0 .../libavcodec}/mips/hevcpred_msa.c | 0 .../libavcodec}/mips/hpeldsp_init_mips.c | 0 .../libavcodec}/mips/hpeldsp_mips.h | 0 .../libavcodec}/mips/hpeldsp_mmi.c | 0 .../libavcodec}/mips/hpeldsp_msa.c | 0 .../libavcodec}/mips/idctdsp_init_mips.c | 0 .../libavcodec}/mips/idctdsp_mips.h | 0 .../libavcodec}/mips/idctdsp_mmi.c | 0 .../libavcodec}/mips/idctdsp_msa.c | 0 .../libavcodec}/mips/iirfilter_mips.c | 0 .../libavcodec}/mips/lsp_mips.h | 0 .../libavcodec}/mips/mathops.h | 0 .../libavcodec}/mips/me_cmp_init_mips.c | 0 .../libavcodec}/mips/me_cmp_mips.h | 0 .../libavcodec}/mips/me_cmp_msa.c | 0 .../mips/mpegaudiodsp_mips_fixed.c | 0 .../mips/mpegaudiodsp_mips_float.c | 0 .../libavcodec}/mips/mpegvideo_init_mips.c | 0 .../libavcodec}/mips/mpegvideo_mips.h | 0 .../libavcodec}/mips/mpegvideo_mmi.c | 0 .../libavcodec}/mips/mpegvideo_msa.c | 0 .../mips/mpegvideoencdsp_init_mips.c | 0 .../libavcodec}/mips/mpegvideoencdsp_msa.c | 0 .../libavcodec}/mips/pixblockdsp_init_mips.c | 0 .../libavcodec}/mips/pixblockdsp_mips.h | 0 .../libavcodec}/mips/pixblockdsp_mmi.c | 0 .../libavcodec}/mips/pixblockdsp_msa.c | 0 .../libavcodec}/mips/qpeldsp_init_mips.c | 0 .../libavcodec}/mips/qpeldsp_mips.h | 0 .../libavcodec}/mips/qpeldsp_msa.c | 0 .../libavcodec}/mips/sbrdsp_mips.c | 0 .../libavcodec}/mips/simple_idct_mmi.c | 0 .../libavcodec}/mips/simple_idct_msa.c | 0 .../libavcodec}/mips/vc1dsp_init_mips.c | 0 .../libavcodec}/mips/vc1dsp_mips.h | 0 .../libavcodec}/mips/vc1dsp_mmi.c | 0 .../libavcodec}/mips/videodsp_init.c | 0 .../libavcodec}/mips/vp3dsp_idct_mmi.c | 0 .../libavcodec}/mips/vp3dsp_idct_msa.c | 0 .../libavcodec}/mips/vp3dsp_init_mips.c | 0 .../libavcodec}/mips/vp3dsp_mips.h | 0 .../libavcodec}/mips/vp8_idct_msa.c | 0 .../libavcodec}/mips/vp8_lpf_msa.c | 0 .../libavcodec}/mips/vp8_mc_msa.c | 0 .../libavcodec}/mips/vp8dsp_init_mips.c | 0 .../libavcodec}/mips/vp8dsp_mips.h | 0 .../libavcodec}/mips/vp8dsp_mmi.c | 0 .../libavcodec}/mips/vp9_idct_msa.c | 0 .../libavcodec}/mips/vp9_intra_msa.c | 0 .../libavcodec}/mips/vp9_lpf_msa.c | 0 .../libavcodec}/mips/vp9_mc_mmi.c | 0 .../libavcodec}/mips/vp9_mc_msa.c | 0 .../libavcodec}/mips/vp9dsp_init_mips.c | 0 .../libavcodec}/mips/vp9dsp_mips.h | 0 .../libavcodec}/mips/wmv2dsp_init_mips.c | 0 .../libavcodec}/mips/wmv2dsp_mips.h | 0 .../libavcodec}/mips/wmv2dsp_mmi.c | 0 .../libavcodec}/mips/xvid_idct_mmi.c | 0 .../libavcodec}/mips/xvididct_init_mips.c | 0 .../libavcodec}/mips/xvididct_mips.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mjpeg.h | 0 .../libavcodec}/mjpeg2jpeg_bsf.c | 0 .../libavcodec}/mjpeg_parser.c | 0 .../libavcodec}/mjpega_dump_header_bsf.c | 0 .../libavcodec}/mjpegbdec.c | 0 .../libavcodec}/mjpegdec.c | 0 .../libavcodec}/mjpegdec.h | 0 .../libavcodec}/mjpegenc.c | 0 .../libavcodec}/mjpegenc.h | 0 .../libavcodec}/mjpegenc_common.c | 0 .../libavcodec}/mjpegenc_common.h | 0 .../libavcodec}/mjpegenc_huffman.c | 0 .../libavcodec}/mjpegenc_huffman.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mlp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mlp.h | 0 .../libavcodec}/mlp_parse.c | 0 .../libavcodec}/mlp_parse.h | 0 .../libavcodec}/mlp_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mlpdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mlpdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mlpdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mlpenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mlz.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mlz.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mmaldec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mmvideo.c | 0 .../libavcodec}/motion_est.c | 0 .../libavcodec}/motion_est.h | 0 .../libavcodec}/motion_est_template.c | 0 .../libavcodec}/motionpixels.c | 0 .../libavcodec}/motionpixels_tablegen.c | 0 .../libavcodec}/motionpixels_tablegen.h | 0 .../libavcodec}/movsub_bsf.c | 0 .../libavcodec}/movtextdec.c | 0 .../libavcodec}/movtextenc.c | 0 .../libavcodec}/mp3_header_decompress_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mpc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mpc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mpc7.c | 0 .../libavcodec}/mpc7data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mpc8.c | 0 .../libavcodec}/mpc8data.h | 0 .../libavcodec}/mpc8huff.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mpcdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mpeg12.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mpeg12.h | 0 .../libavcodec}/mpeg12data.c | 0 .../libavcodec}/mpeg12data.h | 0 .../libavcodec}/mpeg12dec.c | 0 .../libavcodec}/mpeg12enc.c | 0 .../libavcodec}/mpeg12framerate.c | 0 .../libavcodec}/mpeg12vlc.h | 0 .../libavcodec}/mpeg2_metadata_bsf.c | 0 .../libavcodec}/mpeg4_unpack_bframes_bsf.c | 0 .../libavcodec}/mpeg4audio.c | 0 .../libavcodec}/mpeg4audio.h | 0 .../libavcodec}/mpeg4data.h | 0 .../libavcodec}/mpeg4video.c | 0 .../libavcodec}/mpeg4video.h | 0 .../libavcodec}/mpeg4video_parser.c | 0 .../libavcodec}/mpeg4video_parser.h | 0 .../libavcodec}/mpeg4videodec.c | 0 .../libavcodec}/mpeg4videoenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mpeg_er.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mpeg_er.h | 0 .../libavcodec}/mpegaudio.c | 0 .../libavcodec}/mpegaudio.h | 0 .../libavcodec}/mpegaudio_parser.c | 0 .../libavcodec}/mpegaudio_tablegen.c | 0 .../libavcodec}/mpegaudio_tablegen.h | 0 .../libavcodec}/mpegaudiodata.c | 0 .../libavcodec}/mpegaudiodata.h | 0 .../libavcodec}/mpegaudiodec_fixed.c | 0 .../libavcodec}/mpegaudiodec_float.c | 0 .../libavcodec}/mpegaudiodec_template.c | 0 .../libavcodec}/mpegaudiodecheader.c | 0 .../libavcodec}/mpegaudiodecheader.h | 0 .../libavcodec}/mpegaudiodectab.h | 0 .../libavcodec}/mpegaudiodsp.c | 0 .../libavcodec}/mpegaudiodsp.h | 0 .../libavcodec}/mpegaudiodsp_data.c | 0 .../libavcodec}/mpegaudiodsp_fixed.c | 0 .../libavcodec}/mpegaudiodsp_float.c | 0 .../libavcodec}/mpegaudiodsp_template.c | 0 .../libavcodec}/mpegaudioenc_fixed.c | 0 .../libavcodec}/mpegaudioenc_float.c | 0 .../libavcodec}/mpegaudioenc_template.c | 0 .../libavcodec}/mpegaudiotab.h | 0 .../libavcodec}/mpegpicture.c | 0 .../libavcodec}/mpegpicture.h | 0 .../libavcodec}/mpegutils.c | 0 .../libavcodec}/mpegutils.h | 0 .../libavcodec}/mpegvideo.c | 0 .../libavcodec}/mpegvideo.h | 0 .../libavcodec}/mpegvideo_enc.c | 0 .../libavcodec}/mpegvideo_motion.c | 0 .../libavcodec}/mpegvideo_parser.c | 0 .../libavcodec}/mpegvideo_xvmc.c | 0 .../libavcodec}/mpegvideodata.c | 0 .../libavcodec}/mpegvideodata.h | 0 .../libavcodec}/mpegvideodsp.c | 0 .../libavcodec}/mpegvideodsp.h | 0 .../libavcodec}/mpegvideoencdsp.c | 0 .../libavcodec}/mpegvideoencdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mpl2dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mqc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mqc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mqcdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mqcenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mscc.c | 0 .../libavcodec}/msgsmdec.c | 0 .../libavcodec}/msgsmdec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/msmpeg4.c | 0 {libavcodec => ffmpeg-y/libavcodec}/msmpeg4.h | 0 .../libavcodec}/msmpeg4data.c | 0 .../libavcodec}/msmpeg4data.h | 0 .../libavcodec}/msmpeg4dec.c | 0 .../libavcodec}/msmpeg4enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/msrle.c | 0 .../libavcodec}/msrledec.c | 0 .../libavcodec}/msrledec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mss1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mss12.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mss12.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mss2.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mss2dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mss2dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mss3.c | 0 .../libavcodec}/mss34dsp.c | 0 .../libavcodec}/mss34dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/mss4.c | 0 .../libavcodec}/msvideo1.c | 0 .../libavcodec}/msvideo1enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mvcdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/mwsc.c | 0 .../libavcodec}/mxpegdec.c | 0 .../libavcodec}/nellymoser.c | 0 .../libavcodec}/nellymoser.h | 0 .../libavcodec}/nellymoserdec.c | 0 .../libavcodec}/nellymoserenc.c | 0 .../libavcodec}/neon/Makefile | 0 .../libavcodec}/neon/mpegvideo.c | 0 .../libavcodec}/noise_bsf.c | 0 .../libavcodec}/null_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/nuv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/nvdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/nvdec.h | 0 .../libavcodec}/nvdec_h264.c | 0 .../libavcodec}/nvdec_hevc.c | 0 .../libavcodec}/nvdec_mjpeg.c | 0 .../libavcodec}/nvdec_mpeg12.c | 0 .../libavcodec}/nvdec_mpeg4.c | 0 .../libavcodec}/nvdec_vc1.c | 0 .../libavcodec}/nvdec_vp8.c | 0 .../libavcodec}/nvdec_vp9.c | 0 {libavcodec => ffmpeg-y/libavcodec}/nvenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/nvenc.h | 0 .../libavcodec}/nvenc_h264.c | 0 .../libavcodec}/nvenc_hevc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/omx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/on2avc.c | 0 .../libavcodec}/on2avcdata.c | 0 .../libavcodec}/on2avcdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/options.c | 0 .../libavcodec}/options_table.h | 0 {libavcodec => ffmpeg-y/libavcodec}/opus.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opus.h | 0 .../libavcodec}/opus_celt.c | 0 .../libavcodec}/opus_celt.h | 0 .../libavcodec}/opus_parser.c | 0 .../libavcodec}/opus_pvq.c | 0 .../libavcodec}/opus_pvq.h | 0 {libavcodec => ffmpeg-y/libavcodec}/opus_rc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opus_rc.h | 0 .../libavcodec}/opus_silk.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opusdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opusdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opusdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/opusenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opusenc.h | 0 .../libavcodec}/opusenc_psy.c | 0 .../libavcodec}/opusenc_psy.h | 0 .../libavcodec}/opusenc_utils.h | 0 {libavcodec => ffmpeg-y/libavcodec}/opustab.c | 0 {libavcodec => ffmpeg-y/libavcodec}/opustab.h | 0 {libavcodec => ffmpeg-y/libavcodec}/paf.h | 0 .../libavcodec}/pafaudio.c | 0 .../libavcodec}/pafvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pamenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/parser.h | 0 {libavcodec => ffmpeg-y/libavcodec}/parsers.c | 0 .../libavcodec}/pcm-bluray.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pcm-dvd.c | 0 .../libavcodec}/pcm-dvdenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pcm.c | 0 .../libavcodec}/pcm_tablegen.c | 0 .../libavcodec}/pcm_tablegen.h | 0 {libavcodec => ffmpeg-y/libavcodec}/pcx.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pcxenc.c | 0 .../libavcodec}/pel_template.c | 0 .../libavcodec}/pgssubdec.c | 0 .../libavcodec}/pictordec.c | 0 .../libavcodec}/pixblockdsp.c | 0 .../libavcodec}/pixblockdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/pixels.h | 0 {libavcodec => ffmpeg-y/libavcodec}/pixlet.c | 0 {libavcodec => ffmpeg-y/libavcodec}/png.c | 0 {libavcodec => ffmpeg-y/libavcodec}/png.h | 0 .../libavcodec}/png_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pngdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pngdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pngdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/pngenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pnm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pnm.h | 0 .../libavcodec}/pnm_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pnmdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/pnmenc.c | 0 .../libavcodec}/ppc/Makefile | 0 {libavcodec => ffmpeg-y/libavcodec}/ppc/asm.S | 0 .../libavcodec}/ppc/audiodsp.c | 0 .../libavcodec}/ppc/blockdsp.c | 0 .../libavcodec}/ppc/fdct.h | 0 .../libavcodec}/ppc/fdctdsp.c | 0 .../libavcodec}/ppc/fft_altivec.S | 0 .../libavcodec}/ppc/fft_init.c | 0 .../libavcodec}/ppc/fft_vsx.c | 0 .../libavcodec}/ppc/fft_vsx.h | 0 .../libavcodec}/ppc/fmtconvert_altivec.c | 0 .../libavcodec}/ppc/h264chroma_init.c | 0 .../libavcodec}/ppc/h264chroma_template.c | 0 .../libavcodec}/ppc/h264dsp.c | 0 .../libavcodec}/ppc/h264qpel.c | 0 .../libavcodec}/ppc/h264qpel_template.c | 0 .../libavcodec}/ppc/hevcdsp.c | 0 .../libavcodec}/ppc/hevcdsp_template.c | 0 .../libavcodec}/ppc/hpeldsp_altivec.c | 0 .../libavcodec}/ppc/hpeldsp_altivec.h | 0 .../libavcodec}/ppc/idctdsp.c | 0 .../ppc/lossless_audiodsp_altivec.c | 0 .../ppc/lossless_videodsp_altivec.c | 0 .../libavcodec}/ppc/mathops.h | 0 .../libavcodec}/ppc/me_cmp.c | 0 .../libavcodec}/ppc/mpegaudiodsp_altivec.c | 0 .../libavcodec}/ppc/mpegvideo_altivec.c | 0 .../libavcodec}/ppc/mpegvideodsp.c | 0 .../libavcodec}/ppc/mpegvideoencdsp.c | 0 .../libavcodec}/ppc/pixblockdsp.c | 0 .../libavcodec}/ppc/svq1enc_altivec.c | 0 .../libavcodec}/ppc/vc1dsp_altivec.c | 0 .../libavcodec}/ppc/videodsp.c | 0 .../libavcodec}/ppc/vorbisdsp_altivec.c | 0 .../libavcodec}/ppc/vp3dsp_altivec.c | 0 .../libavcodec}/ppc/vp8dsp_altivec.c | 0 .../libavcodec}/profiles.c | 0 .../libavcodec}/profiles.h | 0 .../libavcodec}/prores_metadata_bsf.c | 0 .../libavcodec}/proresdata.c | 0 .../libavcodec}/proresdata.h | 0 .../libavcodec}/proresdec.h | 0 .../libavcodec}/proresdec2.c | 0 .../libavcodec}/proresdsp.c | 0 .../libavcodec}/proresdsp.h | 0 .../libavcodec}/proresenc_anatoliy.c | 0 .../libavcodec}/proresenc_kostya.c | 0 .../libavcodec}/prosumer.c | 0 {libavcodec => ffmpeg-y/libavcodec}/psd.c | 0 .../libavcodec}/psymodel.c | 0 .../libavcodec}/psymodel.h | 0 {libavcodec => ffmpeg-y/libavcodec}/pthread.c | 0 .../libavcodec}/pthread_frame.c | 0 .../libavcodec}/pthread_internal.h | 0 .../libavcodec}/pthread_slice.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ptx.c | 0 .../libavcodec}/put_bits.h | 0 .../libavcodec}/qcelpdata.h | 0 .../libavcodec}/qcelpdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qdm2.c | 0 .../libavcodec}/qdm2_tablegen.c | 0 .../libavcodec}/qdm2_tablegen.h | 0 .../libavcodec}/qdm2data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/qdmc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qdrw.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qpeg.c | 0 .../libavcodec}/qpel_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qpeldsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qpeldsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/qsv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qsv.h | 0 {libavcodec => ffmpeg-y/libavcodec}/qsv_api.c | 0 .../libavcodec}/qsv_internal.h | 0 {libavcodec => ffmpeg-y/libavcodec}/qsvdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qsvdec.h | 0 .../libavcodec}/qsvdec_h2645.c | 0 .../libavcodec}/qsvdec_other.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qsvenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qsvenc.h | 0 .../libavcodec}/qsvenc_h264.c | 0 .../libavcodec}/qsvenc_hevc.c | 0 .../libavcodec}/qsvenc_jpeg.c | 0 .../libavcodec}/qsvenc_mpeg2.c | 0 {libavcodec => ffmpeg-y/libavcodec}/qtrle.c | 0 .../libavcodec}/qtrleenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/r210dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/r210enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ra144.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ra144.h | 0 .../libavcodec}/ra144dec.c | 0 .../libavcodec}/ra144enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ra288.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ra288.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ralf.c | 0 .../libavcodec}/ralfdata.h | 0 .../libavcodec}/rangecoder.c | 0 .../libavcodec}/rangecoder.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rasc.c | 0 .../libavcodec}/ratecontrol.c | 0 .../libavcodec}/ratecontrol.h | 0 {libavcodec => ffmpeg-y/libavcodec}/raw.c | 0 {libavcodec => ffmpeg-y/libavcodec}/raw.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rawdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rawenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rdft.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rdft.h | 0 .../libavcodec}/realtextdec.c | 0 .../libavcodec}/rectangle.h | 0 .../libavcodec}/remove_extradata_bsf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/reverse.c | 0 .../libavcodec}/rkmppdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rl.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rl.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rl2.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rle.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rle.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rnd_avg.h | 0 .../libavcodec}/roqaudioenc.c | 0 .../libavcodec}/roqvideo.c | 0 .../libavcodec}/roqvideo.h | 0 .../libavcodec}/roqvideodec.c | 0 .../libavcodec}/roqvideoenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rpza.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rscc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rtjpeg.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rtjpeg.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv10.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rv10.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv10enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rv20enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rv30.c | 0 .../libavcodec}/rv30data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv30dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rv34.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rv34.h | 0 .../libavcodec}/rv34_parser.c | 0 .../libavcodec}/rv34data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv34dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/rv34dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv34vlc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv40.c | 0 .../libavcodec}/rv40data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/rv40dsp.c | 0 .../libavcodec}/rv40vlc2.h | 0 {libavcodec => ffmpeg-y/libavcodec}/s302m.c | 0 .../libavcodec}/s302menc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/samidec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sanm.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sbc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sbc.h | 0 .../libavcodec}/sbc_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sbcdec.c | 0 .../libavcodec}/sbcdec_data.c | 0 .../libavcodec}/sbcdec_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/sbcdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sbcdsp.h | 0 .../libavcodec}/sbcdsp_data.c | 0 .../libavcodec}/sbcdsp_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/sbcenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sbr.h | 0 {libavcodec => ffmpeg-y/libavcodec}/sbrdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sbrdsp.h | 0 .../libavcodec}/sbrdsp_fixed.c | 0 .../libavcodec}/sbrdsp_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/scpr.c | 0 {libavcodec => ffmpeg-y/libavcodec}/scpr.h | 0 {libavcodec => ffmpeg-y/libavcodec}/scpr3.c | 0 {libavcodec => ffmpeg-y/libavcodec}/scpr3.h | 0 .../libavcodec}/screenpresso.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sgi.h | 0 {libavcodec => ffmpeg-y/libavcodec}/sgidec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sgienc.c | 0 .../libavcodec}/sgirledec.c | 0 .../libavcodec}/sh4/README | 0 .../libavcodec}/sheervideo.c | 0 .../libavcodec}/sheervideodata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/shorten.c | 0 .../libavcodec}/simple_idct.c | 0 .../libavcodec}/simple_idct.h | 0 .../libavcodec}/simple_idct_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sinewin.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sinewin.h | 0 .../libavcodec}/sinewin_fixed.c | 0 .../libavcodec}/sinewin_fixed_tablegen.c | 0 .../libavcodec}/sinewin_tablegen.c | 0 .../libavcodec}/sinewin_tablegen.h | 0 .../libavcodec}/sinewin_tablegen_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sipr.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sipr.h | 0 {libavcodec => ffmpeg-y/libavcodec}/sipr16k.c | 0 .../libavcodec}/sipr16kdata.h | 0 .../libavcodec}/sipr_parser.c | 0 .../libavcodec}/siprdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/smacker.c | 0 {libavcodec => ffmpeg-y/libavcodec}/smc.c | 0 .../libavcodec}/smvjpegdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/snappy.c | 0 {libavcodec => ffmpeg-y/libavcodec}/snappy.h | 0 {libavcodec => ffmpeg-y/libavcodec}/snow.c | 0 {libavcodec => ffmpeg-y/libavcodec}/snow.h | 0 .../libavcodec}/snow_dwt.c | 0 .../libavcodec}/snow_dwt.h | 0 .../libavcodec}/snowdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/snowdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/snowenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sonic.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sp5x.h | 0 {libavcodec => ffmpeg-y/libavcodec}/sp5xdec.c | 0 .../libavcodec}/sparc/README | 0 {libavcodec => ffmpeg-y/libavcodec}/speedhq.c | 0 {libavcodec => ffmpeg-y/libavcodec}/srtdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/srtenc.c | 0 .../libavcodec}/startcode.c | 0 .../libavcodec}/startcode.h | 0 .../libavcodec}/subviewerdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sunrast.c | 0 {libavcodec => ffmpeg-y/libavcodec}/sunrast.h | 0 .../libavcodec}/sunrastenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/svq1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/svq1.h | 0 {libavcodec => ffmpeg-y/libavcodec}/svq13.c | 0 {libavcodec => ffmpeg-y/libavcodec}/svq1_cb.h | 0 .../libavcodec}/svq1_vlc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/svq1dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/svq1enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/svq1enc.h | 0 .../libavcodec}/svq1enc_cb.h | 0 {libavcodec => ffmpeg-y/libavcodec}/svq3.c | 0 .../libavcodec}/synth_filter.c | 0 .../libavcodec}/synth_filter.h | 0 .../libavcodec}/tableprint.h | 0 .../libavcodec}/tableprint_vlc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/tak.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tak.h | 0 .../libavcodec}/tak_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/takdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/takdsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/takdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/targa.c | 0 {libavcodec => ffmpeg-y/libavcodec}/targa.h | 0 .../libavcodec}/targa_y216dec.c | 0 .../libavcodec}/targaenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tdsc.c | 0 .../libavcodec}/tests/aarch64/dct.c | 0 .../libavcodec}/tests/arm/dct.c | 0 .../libavcodec}/tests/avfft.c | 0 .../libavcodec}/tests/avpacket.c | 0 .../libavcodec}/tests/cabac.c | 0 .../libavcodec}/tests/celp_math.c | 0 .../libavcodec}/tests/codec_desc.c | 0 .../libavcodec}/tests/dct.c | 0 .../libavcodec}/tests/fft-fixed.c | 0 .../libavcodec}/tests/fft-fixed32.c | 0 .../libavcodec}/tests/fft.c | 0 .../libavcodec}/tests/golomb.c | 0 .../libavcodec}/tests/h264_levels.c | 0 .../libavcodec}/tests/h265_levels.c | 0 .../libavcodec}/tests/htmlsubtitles.c | 0 .../libavcodec}/tests/iirfilter.c | 0 .../libavcodec}/tests/imgconvert.c | 0 .../libavcodec}/tests/jpeg2000dwt.c | 0 .../libavcodec}/tests/mathops.c | 0 .../libavcodec}/tests/mjpegenc_huffman.c | 0 .../libavcodec}/tests/motion.c | 0 .../libavcodec}/tests/mpeg12framerate.c | 0 .../libavcodec}/tests/options.c | 0 .../libavcodec}/tests/ppc/dct.c | 0 .../libavcodec}/tests/rangecoder.c | 0 .../libavcodec}/tests/snowenc.c | 0 .../libavcodec}/tests/utils.c | 0 .../libavcodec}/tests/x86/dct.c | 0 {libavcodec => ffmpeg-y/libavcodec}/textdec.c | 0 .../libavcodec}/texturedsp.c | 0 .../libavcodec}/texturedsp.h | 0 .../libavcodec}/texturedspenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/thread.h | 0 .../libavcodec}/tiertexseqv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tiff.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tiff.h | 0 .../libavcodec}/tiff_common.c | 0 .../libavcodec}/tiff_common.h | 0 .../libavcodec}/tiff_data.c | 0 .../libavcodec}/tiff_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/tiffenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tmv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tpeldsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tpeldsp.h | 0 .../libavcodec}/trace_headers_bsf.c | 0 .../libavcodec}/truehd_core_bsf.c | 0 .../libavcodec}/truemotion1.c | 0 .../libavcodec}/truemotion1data.h | 0 .../libavcodec}/truemotion2.c | 0 .../libavcodec}/truemotion2rt.c | 0 .../libavcodec}/truespeech.c | 0 .../libavcodec}/truespeech_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/tscc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/tscc2.c | 0 .../libavcodec}/tscc2data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/tta.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ttadata.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ttadata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ttadsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ttadsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/ttaenc.c | 0 .../libavcodec}/ttaencdsp.c | 0 .../libavcodec}/ttaencdsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/twinvq.c | 0 {libavcodec => ffmpeg-y/libavcodec}/twinvq.h | 0 .../libavcodec}/twinvq_data.h | 0 .../libavcodec}/twinvqdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/txd.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ulti.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ulti_cb.h | 0 {libavcodec => ffmpeg-y/libavcodec}/unary.h | 0 {libavcodec => ffmpeg-y/libavcodec}/utils.c | 0 {libavcodec => ffmpeg-y/libavcodec}/utvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/utvideo.h | 0 .../libavcodec}/utvideodec.c | 0 .../libavcodec}/utvideodsp.c | 0 .../libavcodec}/utvideodsp.h | 0 .../libavcodec}/utvideoenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v210dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v210dec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/v210enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v210enc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/v210x.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v308dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v308enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v408dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v408enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v410dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/v410enc.c | 0 .../libavcodec}/v4l2_buffers.c | 0 .../libavcodec}/v4l2_buffers.h | 0 .../libavcodec}/v4l2_context.c | 0 .../libavcodec}/v4l2_context.h | 0 .../libavcodec}/v4l2_fmt.c | 0 .../libavcodec}/v4l2_fmt.h | 0 .../libavcodec}/v4l2_m2m.c | 0 .../libavcodec}/v4l2_m2m.h | 0 .../libavcodec}/v4l2_m2m_dec.c | 0 .../libavcodec}/v4l2_m2m_enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vaapi.h | 0 .../libavcodec}/vaapi_decode.c | 0 .../libavcodec}/vaapi_decode.h | 0 .../libavcodec}/vaapi_encode.c | 0 .../libavcodec}/vaapi_encode.h | 0 .../libavcodec}/vaapi_encode_h264.c | 0 .../libavcodec}/vaapi_encode_h265.c | 0 .../libavcodec}/vaapi_encode_mjpeg.c | 0 .../libavcodec}/vaapi_encode_mpeg2.c | 0 .../libavcodec}/vaapi_encode_vp8.c | 0 .../libavcodec}/vaapi_encode_vp9.c | 0 .../libavcodec}/vaapi_h264.c | 0 .../libavcodec}/vaapi_hevc.c | 0 .../libavcodec}/vaapi_mjpeg.c | 0 .../libavcodec}/vaapi_mpeg2.c | 0 .../libavcodec}/vaapi_mpeg4.c | 0 .../libavcodec}/vaapi_vc1.c | 0 .../libavcodec}/vaapi_vp8.c | 0 .../libavcodec}/vaapi_vp9.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vb.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vble.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1.h | 0 .../libavcodec}/vc1_block.c | 0 .../libavcodec}/vc1_common.h | 0 .../libavcodec}/vc1_loopfilter.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1_mc.c | 0 .../libavcodec}/vc1_parser.c | 0 .../libavcodec}/vc1_pred.c | 0 .../libavcodec}/vc1_pred.h | 0 .../libavcodec}/vc1acdata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1data.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vc1dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vc2enc.c | 0 .../libavcodec}/vc2enc_dwt.c | 0 .../libavcodec}/vc2enc_dwt.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vcr1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vdpau.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vdpau.h | 0 .../libavcodec}/vdpau_h264.c | 0 .../libavcodec}/vdpau_hevc.c | 0 .../libavcodec}/vdpau_internal.h | 0 .../libavcodec}/vdpau_mpeg12.c | 0 .../libavcodec}/vdpau_mpeg4.c | 0 .../libavcodec}/vdpau_vc1.c | 0 {libavcodec => ffmpeg-y/libavcodec}/version.h | 0 .../libavcodec}/videodsp.c | 0 .../libavcodec}/videodsp.h | 0 .../libavcodec}/videodsp_template.c | 0 .../libavcodec}/videotoolbox.c | 0 .../libavcodec}/videotoolbox.h | 0 .../libavcodec}/videotoolboxenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vima.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vlc.h | 0 .../libavcodec}/vmdaudio.c | 0 .../libavcodec}/vmdvideo.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vmnc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vorbis.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vorbis.h | 0 .../libavcodec}/vorbis_data.c | 0 .../libavcodec}/vorbis_enc_data.h | 0 .../libavcodec}/vorbis_parser.c | 0 .../libavcodec}/vorbis_parser.h | 0 .../libavcodec}/vorbis_parser_internal.h | 0 .../libavcodec}/vorbisdec.c | 0 .../libavcodec}/vorbisdsp.c | 0 .../libavcodec}/vorbisdsp.h | 0 .../libavcodec}/vorbisenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp3.c | 0 .../libavcodec}/vp3_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp3data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp3dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp3dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp4data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp5.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp56.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp56.h | 0 .../libavcodec}/vp56data.c | 0 .../libavcodec}/vp56data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp56dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp56dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp56rac.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp5data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp6.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp6data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp6dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp8.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp8.h | 0 .../libavcodec}/vp8_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp8data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp8dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp8dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9.h | 0 .../libavcodec}/vp9_mc_template.c | 0 .../libavcodec}/vp9_metadata_bsf.c | 0 .../libavcodec}/vp9_parser.c | 0 .../libavcodec}/vp9_raw_reorder_bsf.c | 0 .../libavcodec}/vp9_superframe_bsf.c | 0 .../libavcodec}/vp9_superframe_split_bsf.c | 0 .../libavcodec}/vp9block.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9data.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9dec.h | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9dsp.h | 0 .../libavcodec}/vp9dsp_10bpp.c | 0 .../libavcodec}/vp9dsp_12bpp.c | 0 .../libavcodec}/vp9dsp_8bpp.c | 0 .../libavcodec}/vp9dsp_template.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9lpf.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9mvs.c | 0 {libavcodec => ffmpeg-y/libavcodec}/vp9prob.c | 0 .../libavcodec}/vp9recon.c | 0 .../libavcodec}/vp9shared.h | 0 .../libavcodec}/vqavideo.c | 0 .../libavcodec}/vt_internal.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wavpack.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wavpack.h | 0 .../libavcodec}/wavpackenc.c | 0 .../libavcodec}/wavpackenc.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wcmv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/webp.c | 0 .../libavcodec}/webvttdec.c | 0 .../libavcodec}/webvttenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wma.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wma.h | 0 .../libavcodec}/wma_common.c | 0 .../libavcodec}/wma_common.h | 0 .../libavcodec}/wma_freqs.c | 0 .../libavcodec}/wma_freqs.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wmadata.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wmadec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wmaenc.c | 0 .../libavcodec}/wmalosslessdec.c | 0 .../libavcodec}/wmaprodata.h | 0 .../libavcodec}/wmaprodec.c | 0 .../libavcodec}/wmavoice.c | 0 .../libavcodec}/wmavoice_data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wmv2.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wmv2.h | 0 .../libavcodec}/wmv2data.c | 0 .../libavcodec}/wmv2data.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wmv2dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wmv2dsp.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wmv2dsp.h | 0 {libavcodec => ffmpeg-y/libavcodec}/wmv2enc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/wnv1.c | 0 .../libavcodec}/wrapped_avframe.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ws-snd1.c | 0 .../libavcodec}/x86/Makefile | 0 .../libavcodec}/x86/aacencdsp_init.c | 0 .../libavcodec}/x86/aacpsdsp_init.c | 0 .../libavcodec}/x86/ac3dsp_init.c | 0 .../libavcodec}/x86/alacdsp_init.c | 0 .../libavcodec}/x86/audiodsp_init.c | 0 .../libavcodec}/x86/blockdsp_init.c | 0 .../libavcodec}/x86/bswapdsp_init.c | 0 .../libavcodec}/x86/cabac.h | 0 .../libavcodec}/x86/cavsdsp.c | 0 .../libavcodec}/x86/celt_pvq_init.c | 0 .../libavcodec}/x86/constants.c | 0 .../libavcodec}/x86/constants.h | 0 .../libavcodec}/x86/dcadsp_init.c | 0 .../libavcodec}/x86/dct_init.c | 0 .../libavcodec}/x86/dirac_dwt_init.c | 0 .../libavcodec}/x86/diracdsp_init.c | 0 .../libavcodec}/x86/dnxhdenc_init.c | 0 .../libavcodec}/x86/exrdsp_init.c | 0 .../libavcodec}/x86/fdct.c | 0 .../libavcodec}/x86/fdct.h | 0 .../libavcodec}/x86/fdctdsp_init.c | 0 {libavcodec => ffmpeg-y/libavcodec}/x86/fft.h | 0 .../libavcodec}/x86/fft_init.c | 0 .../libavcodec}/x86/flacdsp_init.c | 0 .../libavcodec}/x86/fmtconvert_init.c | 0 .../libavcodec}/x86/fpel.h | 0 .../libavcodec}/x86/g722dsp_init.c | 0 .../libavcodec}/x86/h263dsp_init.c | 0 .../libavcodec}/x86/h264_cabac.c | 0 .../libavcodec}/x86/h264_intrapred_init.c | 0 .../libavcodec}/x86/h264_qpel.c | 0 .../libavcodec}/x86/h264chroma_init.c | 0 .../libavcodec}/x86/h264dsp_init.c | 0 .../libavcodec}/x86/hevcdsp.h | 0 .../libavcodec}/x86/hevcdsp_init.c | 0 .../libavcodec}/x86/hpeldsp.h | 0 .../libavcodec}/x86/hpeldsp_init.c | 0 .../libavcodec}/x86/hpeldsp_rnd_template.c | 0 .../libavcodec}/x86/hpeldsp_vp3_init.c | 0 .../libavcodec}/x86/huffyuvdsp_init.c | 0 .../libavcodec}/x86/huffyuvencdsp_init.c | 0 .../libavcodec}/x86/idctdsp.h | 0 .../libavcodec}/x86/idctdsp_init.c | 0 .../libavcodec}/x86/inline_asm.h | 0 .../libavcodec}/x86/jpeg2000dsp_init.c | 0 .../libavcodec}/x86/lossless_audiodsp_init.c | 0 .../libavcodec}/x86/lossless_videodsp_init.c | 0 .../x86/lossless_videoencdsp_init.c | 0 {libavcodec => ffmpeg-y/libavcodec}/x86/lpc.c | 0 .../libavcodec}/x86/mathops.h | 0 .../libavcodec}/x86/mdct15_init.c | 0 .../libavcodec}/x86/me_cmp_init.c | 0 .../libavcodec}/x86/mlpdsp_init.c | 0 .../libavcodec}/x86/mpegaudiodsp.c | 0 .../libavcodec}/x86/mpegvideo.c | 0 .../libavcodec}/x86/mpegvideodsp.c | 0 .../libavcodec}/x86/mpegvideoenc.c | 0 .../x86/mpegvideoenc_qns_template.c | 0 .../libavcodec}/x86/mpegvideoenc_template.c | 0 .../libavcodec}/x86/mpegvideoencdsp_init.c | 0 .../libavcodec}/x86/opusdsp_init.c | 0 .../libavcodec}/x86/pixblockdsp_init.c | 0 .../libavcodec}/x86/pngdsp_init.c | 0 .../libavcodec}/x86/proresdsp_init.c | 0 .../libavcodec}/x86/qpeldsp_init.c | 0 .../libavcodec}/x86/rnd_template.c | 0 .../libavcodec}/x86/rv34dsp_init.c | 0 .../libavcodec}/x86/rv40dsp_init.c | 0 .../libavcodec}/x86/sbcdsp_init.c | 0 .../libavcodec}/x86/sbrdsp_init.c | 0 .../libavcodec}/x86/simple_idct.h | 0 .../libavcodec}/x86/snowdsp.c | 0 .../libavcodec}/x86/svq1enc_init.c | 0 .../libavcodec}/x86/synth_filter_init.c | 0 .../libavcodec}/x86/takdsp_init.c | 0 .../libavcodec}/x86/ttadsp_init.c | 0 .../libavcodec}/x86/ttaencdsp_init.c | 0 .../libavcodec}/x86/utvideodsp_init.c | 0 .../libavcodec}/x86/v210-init.c | 0 .../libavcodec}/x86/v210enc_init.c | 0 .../libavcodec}/x86/vc1dsp.h | 0 .../libavcodec}/x86/vc1dsp_init.c | 0 .../libavcodec}/x86/vc1dsp_mmx.c | 0 .../libavcodec}/x86/videodsp_init.c | 0 .../libavcodec}/x86/vorbisdsp_init.c | 0 .../libavcodec}/x86/vp3dsp_init.c | 0 .../libavcodec}/x86/vp56_arith.h | 0 .../libavcodec}/x86/vp6dsp_init.c | 0 .../libavcodec}/x86/vp8dsp_init.c | 0 .../libavcodec}/x86/vp9dsp_init.c | 0 .../libavcodec}/x86/vp9dsp_init.h | 0 .../libavcodec}/x86/vp9dsp_init_10bpp.c | 0 .../libavcodec}/x86/vp9dsp_init_12bpp.c | 0 .../libavcodec}/x86/vp9dsp_init_16bpp.c | 0 .../x86/vp9dsp_init_16bpp_template.c | 0 .../libavcodec}/x86/w64xmmtest.c | 0 .../libavcodec}/x86/xvididct.h | 0 .../libavcodec}/x86/xvididct_init.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xan.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xbmdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xbmenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xface.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xface.h | 0 .../libavcodec}/xfacedec.c | 0 .../libavcodec}/xfaceenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xiph.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xiph.h | 0 {libavcodec => ffmpeg-y/libavcodec}/xl.c | 0 .../libavcodec}/xma_parser.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xpmdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xsubdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xsubenc.c | 0 .../libavcodec}/xvididct.c | 0 .../libavcodec}/xvididct.h | 0 {libavcodec => ffmpeg-y/libavcodec}/xvmc.h | 0 .../libavcodec}/xvmc_internal.h | 0 {libavcodec => ffmpeg-y/libavcodec}/xwd.h | 0 {libavcodec => ffmpeg-y/libavcodec}/xwddec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xwdenc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/xxan.c | 0 {libavcodec => ffmpeg-y/libavcodec}/y41pdec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/y41penc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/ylc.c | 0 {libavcodec => ffmpeg-y/libavcodec}/yop.c | 0 {libavcodec => ffmpeg-y/libavcodec}/yuv4dec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/yuv4enc.c | 0 .../libavcodec}/zerocodec.c | 0 {libavcodec => ffmpeg-y/libavcodec}/zmbv.c | 0 {libavcodec => ffmpeg-y/libavcodec}/zmbvenc.c | 3 +- .../libavdevice}/Makefile | 0 .../libavdevice}/alldevices.c | 0 {libavdevice => ffmpeg-y/libavdevice}/alsa.c | 0 {libavdevice => ffmpeg-y/libavdevice}/alsa.h | 0 .../libavdevice}/alsa_dec.c | 0 .../libavdevice}/alsa_enc.c | 0 .../libavdevice}/android_camera.c | 0 .../libavdevice}/avdevice.c | 0 .../libavdevice}/avdevice.h | 0 .../libavdevice}/avdeviceres.rc | 0 .../libavdevice}/avfoundation.m | 0 {libavdevice => ffmpeg-y/libavdevice}/bktr.c | 0 {libavdevice => ffmpeg-y/libavdevice}/caca.c | 0 .../libavdevice}/decklink_common.cpp | 0 .../libavdevice}/decklink_common.h | 0 .../libavdevice}/decklink_common_c.h | 0 .../libavdevice}/decklink_dec.cpp | 0 .../libavdevice}/decklink_dec.h | 0 .../libavdevice}/decklink_dec_c.c | 0 .../libavdevice}/decklink_enc.cpp | 0 .../libavdevice}/decklink_enc.h | 0 .../libavdevice}/decklink_enc_c.c | 0 {libavdevice => ffmpeg-y/libavdevice}/dshow.c | 0 .../libavdevice}/dshow_capture.h | 0 .../libavdevice}/dshow_common.c | 0 .../libavdevice}/dshow_crossbar.c | 0 .../libavdevice}/dshow_enummediatypes.c | 0 .../libavdevice}/dshow_enumpins.c | 0 .../libavdevice}/dshow_filter.c | 0 .../libavdevice}/dshow_pin.c | 0 .../libavdevice}/fbdev_common.c | 0 .../libavdevice}/fbdev_common.h | 0 .../libavdevice}/fbdev_dec.c | 0 .../libavdevice}/fbdev_enc.c | 0 .../libavdevice}/file_open.c | 0 .../libavdevice}/gdigrab.c | 0 .../libavdevice}/iec61883.c | 0 .../libavdevice}/internal.h | 0 {libavdevice => ffmpeg-y/libavdevice}/jack.c | 0 .../libavdevice}/kmsgrab.c | 0 {libavdevice => ffmpeg-y/libavdevice}/lavfi.c | 0 .../libavdevice}/libavdevice.v | 0 .../libavdevice}/libcdio.c | 0 .../libavdevice}/libdc1394.c | 0 .../libavdevice}/openal-dec.c | 0 .../libavdevice}/opengl_enc.c | 0 .../libavdevice}/opengl_enc_shaders.h | 0 {libavdevice => ffmpeg-y/libavdevice}/oss.c | 0 {libavdevice => ffmpeg-y/libavdevice}/oss.h | 0 .../libavdevice}/oss_dec.c | 0 .../libavdevice}/oss_enc.c | 0 .../libavdevice}/pulse_audio_common.c | 0 .../libavdevice}/pulse_audio_common.h | 0 .../libavdevice}/pulse_audio_dec.c | 0 .../libavdevice}/pulse_audio_enc.c | 0 .../libavdevice}/reverse.c | 0 {libavdevice => ffmpeg-y/libavdevice}/sdl2.c | 0 {libavdevice => ffmpeg-y/libavdevice}/sndio.c | 0 {libavdevice => ffmpeg-y/libavdevice}/sndio.h | 0 .../libavdevice}/sndio_dec.c | 0 .../libavdevice}/sndio_enc.c | 0 .../libavdevice}/tests/timefilter.c | 0 .../libavdevice}/timefilter.c | 0 .../libavdevice}/timefilter.h | 0 {libavdevice => ffmpeg-y/libavdevice}/utils.c | 0 .../libavdevice}/v4l2-common.c | 0 .../libavdevice}/v4l2-common.h | 0 {libavdevice => ffmpeg-y/libavdevice}/v4l2.c | 0 .../libavdevice}/v4l2enc.c | 0 .../libavdevice}/version.h | 0 .../libavdevice}/vfwcap.c | 0 .../libavdevice}/xcbgrab.c | 0 {libavdevice => ffmpeg-y/libavdevice}/xv.c | 0 .../libavfilter}/Makefile | 0 .../libavfilter}/aarch64/Makefile | 0 .../libavfilter}/aarch64/vf_nlmeans_init.c | 0 .../libavfilter}/aarch64/vf_nlmeans_neon.S | 0 {libavfilter => ffmpeg-y/libavfilter}/aeval.c | 0 .../libavfilter}/af_acontrast.c | 0 .../libavfilter}/af_acopy.c | 0 .../libavfilter}/af_acrossover.c | 0 .../libavfilter}/af_acrusher.c | 0 .../libavfilter}/af_adeclick.c | 0 .../libavfilter}/af_adelay.c | 0 .../libavfilter}/af_aderivative.c | 0 .../libavfilter}/af_aecho.c | 0 .../libavfilter}/af_aemphasis.c | 0 .../libavfilter}/af_afade.c | 0 .../libavfilter}/af_afftdn.c | 0 .../libavfilter}/af_afftfilt.c | 0 .../libavfilter}/af_afir.c | 0 .../libavfilter}/af_afir.h | 0 .../libavfilter}/af_aformat.c | 0 .../libavfilter}/af_agate.c | 0 .../libavfilter}/af_aiir.c | 0 .../libavfilter}/af_alimiter.c | 0 .../libavfilter}/af_amerge.c | 0 .../libavfilter}/af_amix.c | 0 .../libavfilter}/af_amultiply.c | 0 .../libavfilter}/af_anequalizer.c | 0 .../libavfilter}/af_anlmdn.c | 0 .../libavfilter}/af_anlmdndsp.h | 0 .../libavfilter}/af_anull.c | 0 .../libavfilter}/af_apad.c | 0 .../libavfilter}/af_aphaser.c | 0 .../libavfilter}/af_apulsator.c | 0 .../libavfilter}/af_aresample.c | 0 .../libavfilter}/af_asetnsamples.c | 0 .../libavfilter}/af_asetrate.c | 0 .../libavfilter}/af_ashowinfo.c | 0 .../libavfilter}/af_asoftclip.c | 0 .../libavfilter}/af_asr.c | 0 .../libavfilter}/af_astats.c | 0 .../libavfilter}/af_atempo.c | 0 .../libavfilter}/af_biquads.c | 0 .../libavfilter}/af_bs2b.c | 0 .../libavfilter}/af_channelmap.c | 0 .../libavfilter}/af_channelsplit.c | 0 .../libavfilter}/af_chorus.c | 0 .../libavfilter}/af_compand.c | 0 .../libavfilter}/af_compensationdelay.c | 0 .../libavfilter}/af_crossfeed.c | 0 .../libavfilter}/af_crystalizer.c | 0 .../libavfilter}/af_dcshift.c | 0 .../libavfilter}/af_deesser.c | 0 .../libavfilter}/af_drmeter.c | 0 .../libavfilter}/af_dynaudnorm.c | 0 .../libavfilter}/af_earwax.c | 0 .../libavfilter}/af_extrastereo.c | 0 .../libavfilter}/af_firequalizer.c | 0 .../libavfilter}/af_flanger.c | 0 .../libavfilter}/af_haas.c | 0 .../libavfilter}/af_hdcd.c | 0 .../libavfilter}/af_headphone.c | 0 .../libavfilter}/af_join.c | 0 .../libavfilter}/af_ladspa.c | 0 .../libavfilter}/af_loudnorm.c | 0 .../libavfilter}/af_lv2.c | 0 .../libavfilter}/af_mcompand.c | 0 .../libavfilter}/af_pan.c | 0 .../libavfilter}/af_replaygain.c | 0 .../libavfilter}/af_resample.c | 0 .../libavfilter}/af_rubberband.c | 0 .../libavfilter}/af_sidechaincompress.c | 0 .../libavfilter}/af_silencedetect.c | 0 .../libavfilter}/af_silenceremove.c | 0 .../libavfilter}/af_sofalizer.c | 0 .../libavfilter}/af_stereotools.c | 0 .../libavfilter}/af_stereowiden.c | 0 .../libavfilter}/af_superequalizer.c | 0 .../libavfilter}/af_surround.c | 0 .../libavfilter}/af_tremolo.c | 0 .../libavfilter}/af_vibrato.c | 0 .../libavfilter}/af_volume.c | 0 .../libavfilter}/af_volume.h | 0 .../libavfilter}/af_volumedetect.c | 0 .../libavfilter}/all_channel_layouts.inc | 0 .../libavfilter}/allfilters.c | 0 .../libavfilter}/asink_anullsink.c | 0 .../libavfilter}/asrc_anoisesrc.c | 0 .../libavfilter}/asrc_anullsrc.c | 0 .../libavfilter}/asrc_flite.c | 0 .../libavfilter}/asrc_hilbert.c | 0 .../libavfilter}/asrc_sinc.c | 0 .../libavfilter}/asrc_sine.c | 0 {libavfilter => ffmpeg-y/libavfilter}/audio.c | 0 {libavfilter => ffmpeg-y/libavfilter}/audio.h | 0 .../libavfilter}/avf_abitscope.c | 0 .../libavfilter}/avf_ahistogram.c | 0 .../libavfilter}/avf_aphasemeter.c | 0 .../libavfilter}/avf_avectorscope.c | 0 .../libavfilter}/avf_concat.c | 0 .../libavfilter}/avf_showcqt.c | 0 .../libavfilter}/avf_showcqt.h | 0 .../libavfilter}/avf_showfreqs.c | 0 .../libavfilter}/avf_showspatial.c | 0 .../libavfilter}/avf_showspectrum.c | 0 .../libavfilter}/avf_showvolume.c | 0 .../libavfilter}/avf_showwaves.c | 0 .../libavfilter}/avfilter.c | 0 .../libavfilter}/avfilter.h | 0 .../libavfilter}/avfiltergraph.c | 0 .../libavfilter}/avfilterres.rc | 0 {libavfilter => ffmpeg-y/libavfilter}/bbox.c | 0 {libavfilter => ffmpeg-y/libavfilter}/bbox.h | 0 {libavfilter => ffmpeg-y/libavfilter}/blend.h | 0 .../libavfilter}/boxblur.c | 0 .../libavfilter}/boxblur.h | 0 .../libavfilter}/bufferqueue.h | 0 .../libavfilter}/buffersink.c | 0 .../libavfilter}/buffersink.h | 0 .../libavfilter}/buffersrc.c | 0 .../libavfilter}/buffersrc.h | 0 {libavfilter => ffmpeg-y/libavfilter}/bwdif.h | 0 .../libavfilter}/colorspace.c | 0 .../libavfilter}/colorspace.h | 0 .../libavfilter}/colorspacedsp.c | 0 .../libavfilter}/colorspacedsp.h | 0 .../libavfilter}/colorspacedsp_template.c | 0 .../colorspacedsp_yuv2yuv_template.c | 0 .../libavfilter}/deshake.h | 0 .../libavfilter}/dnn_backend_native.c | 0 .../libavfilter}/dnn_backend_native.h | 0 .../libavfilter}/dnn_backend_tf.c | 0 .../libavfilter}/dnn_backend_tf.h | 0 .../libavfilter}/dnn_interface.c | 0 .../libavfilter}/dnn_interface.h | 0 .../libavfilter}/drawutils.c | 0 .../libavfilter}/drawutils.h | 0 .../libavfilter}/ebur128.c | 0 .../libavfilter}/ebur128.h | 0 .../libavfilter}/f_bench.c | 0 {libavfilter => ffmpeg-y/libavfilter}/f_cue.c | 0 .../libavfilter}/f_drawgraph.c | 0 .../libavfilter}/f_ebur128.c | 0 .../libavfilter}/f_graphmonitor.c | 0 .../libavfilter}/f_interleave.c | 0 .../libavfilter}/f_loop.c | 0 .../libavfilter}/f_metadata.c | 0 .../libavfilter}/f_perms.c | 0 .../libavfilter}/f_realtime.c | 0 .../libavfilter}/f_reverse.c | 0 .../libavfilter}/f_select.c | 0 .../libavfilter}/f_sendcmd.c | 0 .../libavfilter}/f_sidedata.c | 0 .../libavfilter}/f_streamselect.c | 0 {libavfilter => ffmpeg-y/libavfilter}/f_zmq.c | 0 {libavfilter => ffmpeg-y/libavfilter}/fifo.c | 0 .../libavfilter}/filters.h | 0 .../libavfilter}/formats.c | 0 .../libavfilter}/formats.h | 0 .../libavfilter}/framepool.c | 0 .../libavfilter}/framepool.h | 0 .../libavfilter}/framequeue.c | 0 .../libavfilter}/framequeue.h | 0 .../libavfilter}/framerate.h | 0 .../libavfilter}/framesync.c | 0 .../libavfilter}/framesync.h | 0 {libavfilter => ffmpeg-y/libavfilter}/gblur.h | 0 .../libavfilter}/generate_wave_table.c | 0 .../libavfilter}/generate_wave_table.h | 0 .../libavfilter}/gradfun.h | 0 .../libavfilter}/graphdump.c | 0 .../libavfilter}/graphparser.c | 0 .../libavfilter}/hermite.h | 0 {libavfilter => ffmpeg-y/libavfilter}/hflip.h | 0 .../libavfilter}/internal.h | 0 .../libavfilter}/lavfutils.c | 0 .../libavfilter}/lavfutils.h | 0 .../libavfilter}/libavfilter.v | 0 .../libavfilter}/limiter.h | 0 .../libavfilter}/log2_tab.c | 0 .../libavfilter}/lswsutils.c | 0 .../libavfilter}/lswsutils.h | 0 .../libavfilter}/maskedmerge.h | 0 .../libavfilter}/motion_estimation.c | 0 .../libavfilter}/motion_estimation.h | 0 .../libavfilter}/opencl.c | 0 .../libavfilter}/opencl.h | 0 .../libavfilter}/opencl/avgblur.cl | 0 .../libavfilter}/opencl/colorkey.cl | 0 .../libavfilter}/opencl/colorspace_common.cl | 0 .../libavfilter}/opencl/convolution.cl | 0 .../libavfilter}/opencl/neighbor.cl | 0 .../libavfilter}/opencl/nlmeans.cl | 0 .../libavfilter}/opencl/overlay.cl | 0 .../libavfilter}/opencl/tonemap.cl | 0 .../libavfilter}/opencl/transpose.cl | 0 .../libavfilter}/opencl/unsharp.cl | 0 .../libavfilter}/opencl_source.h | 0 {libavfilter => ffmpeg-y/libavfilter}/psnr.h | 0 .../libavfilter}/pthread.c | 0 .../libavfilter}/qsvvpp.c | 0 .../libavfilter}/qsvvpp.h | 0 .../libavfilter}/removegrain.h | 0 {libavfilter => ffmpeg-y/libavfilter}/scale.c | 0 {libavfilter => ffmpeg-y/libavfilter}/scale.h | 0 .../libavfilter}/scene_sad.c | 0 .../libavfilter}/scene_sad.h | 0 .../libavfilter}/setpts.c | 0 {libavfilter => ffmpeg-y/libavfilter}/settb.c | 0 .../libavfilter}/signature.h | 0 .../libavfilter}/signature_lookup.c | 0 {libavfilter => ffmpeg-y/libavfilter}/split.c | 0 .../libavfilter}/src_movie.c | 0 {libavfilter => ffmpeg-y/libavfilter}/ssim.h | 0 .../libavfilter}/stereo3d.h | 0 .../libavfilter}/tests/drawutils.c | 0 .../libavfilter}/tests/filtfmts.c | 0 .../libavfilter}/tests/formats.c | 0 .../libavfilter}/tests/integral.c | 0 .../libavfilter}/thread.h | 0 .../libavfilter}/threshold.h | 0 .../libavfilter}/tinterlace.h | 0 .../libavfilter}/transform.c | 0 .../libavfilter}/transform.h | 0 .../libavfilter}/transpose.h | 0 {libavfilter => ffmpeg-y/libavfilter}/trim.c | 0 .../libavfilter}/unsharp.h | 0 .../libavfilter}/vaapi_vpp.c | 0 .../libavfilter}/vaapi_vpp.h | 0 .../libavfilter}/vaf_spectrumsynth.c | 0 .../libavfilter}/version.h | 0 .../libavfilter}/vf_alphamerge.c | 0 .../libavfilter}/vf_amplify.c | 0 .../libavfilter}/vf_aspect.c | 0 .../libavfilter}/vf_atadenoise.c | 0 .../libavfilter}/vf_avgblur.c | 0 .../libavfilter}/vf_avgblur_opencl.c | 0 .../libavfilter}/vf_bbox.c | 0 .../libavfilter}/vf_bitplanenoise.c | 0 .../libavfilter}/vf_blackdetect.c | 0 .../libavfilter}/vf_blackframe.c | 0 .../libavfilter}/vf_blend.c | 0 .../libavfilter}/vf_bm3d.c | 0 .../libavfilter}/vf_boxblur.c | 0 .../libavfilter}/vf_bwdif.c | 0 .../libavfilter}/vf_chromakey.c | 0 .../libavfilter}/vf_chromashift.c | 0 .../libavfilter}/vf_ciescope.c | 0 .../libavfilter}/vf_codecview.c | 0 .../libavfilter}/vf_colorbalance.c | 0 .../libavfilter}/vf_colorchannelmixer.c | 0 .../libavfilter}/vf_colorconstancy.c | 0 .../libavfilter}/vf_colorkey.c | 0 .../libavfilter}/vf_colorkey_opencl.c | 0 .../libavfilter}/vf_colorlevels.c | 0 .../libavfilter}/vf_colormatrix.c | 0 .../libavfilter}/vf_colorspace.c | 0 .../libavfilter}/vf_convolution.c | 0 .../libavfilter}/vf_convolution_opencl.c | 0 .../libavfilter}/vf_convolve.c | 0 .../libavfilter}/vf_copy.c | 0 .../libavfilter}/vf_coreimage.m | 0 .../libavfilter}/vf_cover_rect.c | 0 .../libavfilter}/vf_crop.c | 0 .../libavfilter}/vf_cropdetect.c | 0 .../libavfilter}/vf_curves.c | 0 .../libavfilter}/vf_datascope.c | 0 .../libavfilter}/vf_dctdnoiz.c | 0 .../libavfilter}/vf_deband.c | 0 .../libavfilter}/vf_deblock.c | 0 .../libavfilter}/vf_decimate.c | 0 .../libavfilter}/vf_dedot.c | 0 .../libavfilter}/vf_deflicker.c | 0 .../libavfilter}/vf_deinterlace_qsv.c | 0 .../libavfilter}/vf_deinterlace_vaapi.c | 0 .../libavfilter}/vf_dejudder.c | 0 .../libavfilter}/vf_delogo.c | 0 .../libavfilter}/vf_derain.c | 0 .../libavfilter}/vf_deshake.c | 0 .../libavfilter}/vf_despill.c | 0 .../libavfilter}/vf_detelecine.c | 0 .../libavfilter}/vf_displace.c | 0 .../libavfilter}/vf_drawbox.c | 0 .../libavfilter}/vf_drawtext.c | 0 .../libavfilter}/vf_edgedetect.c | 0 .../libavfilter}/vf_elbg.c | 0 .../libavfilter}/vf_entropy.c | 0 {libavfilter => ffmpeg-y/libavfilter}/vf_eq.c | 0 {libavfilter => ffmpeg-y/libavfilter}/vf_eq.h | 0 .../libavfilter}/vf_extractplanes.c | 0 .../libavfilter}/vf_fade.c | 0 .../libavfilter}/vf_fftdnoiz.c | 0 .../libavfilter}/vf_fftfilt.c | 0 .../libavfilter}/vf_field.c | 0 .../libavfilter}/vf_fieldhint.c | 0 .../libavfilter}/vf_fieldmatch.c | 0 .../libavfilter}/vf_fieldorder.c | 0 .../libavfilter}/vf_fillborders.c | 0 .../libavfilter}/vf_find_rect.c | 0 .../libavfilter}/vf_floodfill.c | 0 .../libavfilter}/vf_format.c | 0 .../libavfilter}/vf_fps.c | 0 .../libavfilter}/vf_framepack.c | 0 .../libavfilter}/vf_framerate.c | 0 .../libavfilter}/vf_framestep.c | 0 .../libavfilter}/vf_freezedetect.c | 0 .../libavfilter}/vf_frei0r.c | 0 .../libavfilter}/vf_fspp.c | 0 .../libavfilter}/vf_fspp.h | 0 .../libavfilter}/vf_gblur.c | 0 .../libavfilter}/vf_geq.c | 0 .../libavfilter}/vf_gradfun.c | 0 .../libavfilter}/vf_hflip.c | 0 .../libavfilter}/vf_histeq.c | 0 .../libavfilter}/vf_histogram.c | 0 .../libavfilter}/vf_hqdn3d.c | 0 .../libavfilter}/vf_hqdn3d.h | 0 .../libavfilter}/vf_hqx.c | 0 .../libavfilter}/vf_hue.c | 0 .../libavfilter}/vf_hwdownload.c | 0 .../libavfilter}/vf_hwmap.c | 0 .../libavfilter}/vf_hwupload.c | 0 .../libavfilter}/vf_hwupload_cuda.c | 0 .../libavfilter}/vf_hysteresis.c | 0 .../libavfilter}/vf_idet.c | 0 .../libavfilter}/vf_idet.h | 0 {libavfilter => ffmpeg-y/libavfilter}/vf_il.c | 0 .../libavfilter}/vf_kerndeint.c | 0 .../libavfilter}/vf_lagfun.c | 0 .../libavfilter}/vf_lenscorrection.c | 0 .../libavfilter}/vf_lensfun.c | 0 .../libavfilter}/vf_libopencv.c | 0 .../libavfilter}/vf_libvmaf.c | 0 .../libavfilter}/vf_limiter.c | 0 .../libavfilter}/vf_lumakey.c | 0 .../libavfilter}/vf_lut.c | 0 .../libavfilter}/vf_lut2.c | 0 .../libavfilter}/vf_lut3d.c | 0 .../libavfilter}/vf_maskedclamp.c | 0 .../libavfilter}/vf_maskedmerge.c | 0 .../libavfilter}/vf_maskfun.c | 0 .../libavfilter}/vf_mcdeint.c | 0 .../libavfilter}/vf_mergeplanes.c | 0 .../libavfilter}/vf_mestimate.c | 0 .../libavfilter}/vf_midequalizer.c | 0 .../libavfilter}/vf_minterpolate.c | 0 .../libavfilter}/vf_misc_vaapi.c | 0 .../libavfilter}/vf_mix.c | 0 .../libavfilter}/vf_mpdecimate.c | 0 .../libavfilter}/vf_neighbor.c | 0 .../libavfilter}/vf_neighbor_opencl.c | 0 .../libavfilter}/vf_nlmeans.c | 0 .../libavfilter}/vf_nlmeans.h | 0 .../libavfilter}/vf_nlmeans_opencl.c | 0 .../libavfilter}/vf_nnedi.c | 0 .../libavfilter}/vf_noise.c | 0 .../libavfilter}/vf_noise.h | 0 .../libavfilter}/vf_normalize.c | 0 .../libavfilter}/vf_null.c | 0 .../libavfilter}/vf_ocr.c | 0 .../libavfilter}/vf_overlay.c | 0 .../libavfilter}/vf_overlay.h | 0 .../libavfilter}/vf_overlay_opencl.c | 0 .../libavfilter}/vf_overlay_qsv.c | 0 .../libavfilter}/vf_owdenoise.c | 0 .../libavfilter}/vf_pad.c | 0 .../libavfilter}/vf_palettegen.c | 0 .../libavfilter}/vf_paletteuse.c | 0 .../libavfilter}/vf_perspective.c | 0 .../libavfilter}/vf_phase.c | 0 .../libavfilter}/vf_pixdesctest.c | 0 {libavfilter => ffmpeg-y/libavfilter}/vf_pp.c | 0 .../libavfilter}/vf_pp7.c | 0 .../libavfilter}/vf_pp7.h | 0 .../libavfilter}/vf_premultiply.c | 0 .../libavfilter}/vf_procamp_vaapi.c | 0 .../libavfilter}/vf_program_opencl.c | 0 .../libavfilter}/vf_pseudocolor.c | 0 .../libavfilter}/vf_psnr.c | 0 .../libavfilter}/vf_pullup.c | 0 .../libavfilter}/vf_pullup.h | 0 {libavfilter => ffmpeg-y/libavfilter}/vf_qp.c | 0 .../libavfilter}/vf_random.c | 0 .../libavfilter}/vf_readeia608.c | 0 .../libavfilter}/vf_readvitc.c | 0 .../libavfilter}/vf_remap.c | 0 .../libavfilter}/vf_removegrain.c | 0 .../libavfilter}/vf_removelogo.c | 0 .../libavfilter}/vf_repeatfields.c | 0 .../libavfilter}/vf_rotate.c | 0 .../libavfilter}/vf_sab.c | 0 .../libavfilter}/vf_scale.c | 0 .../libavfilter}/vf_scale_cuda.c | 0 .../libavfilter}/vf_scale_cuda.cu | 0 .../libavfilter}/vf_scale_npp.c | 0 .../libavfilter}/vf_scale_qsv.c | 0 .../libavfilter}/vf_scale_vaapi.c | 0 .../libavfilter}/vf_selectivecolor.c | 0 .../libavfilter}/vf_separatefields.c | 0 .../libavfilter}/vf_setparams.c | 0 .../libavfilter}/vf_showinfo.c | 0 .../libavfilter}/vf_showpalette.c | 0 .../libavfilter}/vf_shuffleframes.c | 0 .../libavfilter}/vf_shuffleplanes.c | 0 .../libavfilter}/vf_signalstats.c | 0 .../libavfilter}/vf_signature.c | 0 .../libavfilter}/vf_smartblur.c | 0 .../libavfilter}/vf_spp.c | 0 .../libavfilter}/vf_spp.h | 0 {libavfilter => ffmpeg-y/libavfilter}/vf_sr.c | 0 .../libavfilter}/vf_ssim.c | 0 .../libavfilter}/vf_stack.c | 0 .../libavfilter}/vf_stereo3d.c | 0 .../libavfilter}/vf_subtitles.c | 0 .../libavfilter}/vf_super2xsai.c | 0 .../libavfilter}/vf_swaprect.c | 0 .../libavfilter}/vf_swapuv.c | 0 .../libavfilter}/vf_telecine.c | 0 .../libavfilter}/vf_threshold.c | 0 .../libavfilter}/vf_thumbnail.c | 0 .../libavfilter}/vf_thumbnail_cuda.c | 0 .../libavfilter}/vf_thumbnail_cuda.cu | 0 .../libavfilter}/vf_tile.c | 0 .../libavfilter}/vf_tinterlace.c | 0 .../libavfilter}/vf_tonemap.c | 0 .../libavfilter}/vf_tonemap_opencl.c | 0 .../libavfilter}/vf_tpad.c | 0 .../libavfilter}/vf_transpose.c | 0 .../libavfilter}/vf_transpose_npp.c | 0 .../libavfilter}/vf_transpose_opencl.c | 0 .../libavfilter}/vf_transpose_vaapi.c | 0 .../libavfilter}/vf_unsharp.c | 0 .../libavfilter}/vf_unsharp_opencl.c | 0 .../libavfilter}/vf_uspp.c | 0 .../libavfilter}/vf_vaguedenoiser.c | 0 .../libavfilter}/vf_vectorscope.c | 0 .../libavfilter}/vf_vflip.c | 0 .../libavfilter}/vf_vfrdet.c | 0 .../libavfilter}/vf_vibrance.c | 0 .../libavfilter}/vf_vidstabdetect.c | 0 .../libavfilter}/vf_vidstabtransform.c | 0 .../libavfilter}/vf_vignette.c | 0 .../libavfilter}/vf_vmafmotion.c | 0 .../libavfilter}/vf_vpp_qsv.c | 0 .../libavfilter}/vf_w3fdif.c | 0 .../libavfilter}/vf_waveform.c | 0 .../libavfilter}/vf_weave.c | 0 .../libavfilter}/vf_xbr.c | 0 .../libavfilter}/vf_xmedian.c | 0 .../libavfilter}/vf_yadif.c | 0 .../libavfilter}/vf_yadif_cuda.c | 0 .../libavfilter}/vf_yadif_cuda.cu | 0 .../libavfilter}/vf_zoompan.c | 0 .../libavfilter}/vf_zscale.c | 0 {libavfilter => ffmpeg-y/libavfilter}/video.c | 0 {libavfilter => ffmpeg-y/libavfilter}/video.h | 0 .../libavfilter}/vidstabutils.c | 0 .../libavfilter}/vidstabutils.h | 0 .../libavfilter}/vmaf_motion.h | 0 .../libavfilter}/vsink_nullsink.c | 0 .../libavfilter}/vsrc_cellauto.c | 0 .../libavfilter}/vsrc_life.c | 0 .../libavfilter}/vsrc_mandelbrot.c | 0 .../libavfilter}/vsrc_mptestsrc.c | 0 .../libavfilter}/vsrc_testsrc.c | 0 .../libavfilter}/w3fdif.h | 0 .../libavfilter}/window_func.h | 0 .../libavfilter}/x86/Makefile | 0 .../libavfilter}/x86/af_afir_init.c | 0 .../libavfilter}/x86/af_anlmdn_init.c | 0 .../libavfilter}/x86/af_volume_init.c | 0 .../libavfilter}/x86/avf_showcqt_init.c | 0 .../libavfilter}/x86/colorspacedsp_init.c | 0 .../libavfilter}/x86/scene_sad_init.c | 0 .../libavfilter}/x86/vf_blend_init.c | 0 .../libavfilter}/x86/vf_bwdif_init.c | 0 .../libavfilter}/x86/vf_eq.c | 0 .../libavfilter}/x86/vf_framerate_init.c | 0 .../libavfilter}/x86/vf_fspp_init.c | 0 .../libavfilter}/x86/vf_gblur_init.c | 0 .../libavfilter}/x86/vf_gradfun_init.c | 0 .../libavfilter}/x86/vf_hflip_init.c | 0 .../libavfilter}/x86/vf_hqdn3d_init.c | 0 .../libavfilter}/x86/vf_idet_init.c | 0 .../libavfilter}/x86/vf_limiter_init.c | 0 .../libavfilter}/x86/vf_maskedmerge_init.c | 0 .../libavfilter}/x86/vf_noise.c | 0 .../libavfilter}/x86/vf_overlay_init.c | 0 .../libavfilter}/x86/vf_pp7_init.c | 0 .../libavfilter}/x86/vf_psnr_init.c | 0 .../libavfilter}/x86/vf_pullup_init.c | 0 .../libavfilter}/x86/vf_removegrain_init.c | 0 .../libavfilter}/x86/vf_spp.c | 0 .../libavfilter}/x86/vf_ssim_init.c | 0 .../libavfilter}/x86/vf_stereo3d_init.c | 0 .../libavfilter}/x86/vf_threshold_init.c | 0 .../libavfilter}/x86/vf_tinterlace_init.c | 0 .../libavfilter}/x86/vf_w3fdif_init.c | 0 .../libavfilter}/x86/vf_yadif_init.c | 0 {libavfilter => ffmpeg-y/libavfilter}/yadif.h | 0 .../libavfilter}/yadif_common.c | 0 .../libavformat}/3dostr.c | 0 {libavformat => ffmpeg-y/libavformat}/4xm.c | 0 .../libavformat}/Makefile | 0 {libavformat => ffmpeg-y/libavformat}/a64.c | 0 .../libavformat}/aacdec.c | 0 {libavformat => ffmpeg-y/libavformat}/aadec.c | 0 .../libavformat}/ac3dec.c | 0 {libavformat => ffmpeg-y/libavformat}/acm.c | 0 {libavformat => ffmpeg-y/libavformat}/act.c | 0 {libavformat => ffmpeg-y/libavformat}/adp.c | 0 {libavformat => ffmpeg-y/libavformat}/ads.c | 0 .../libavformat}/adtsenc.c | 0 .../libavformat}/adxdec.c | 0 {libavformat => ffmpeg-y/libavformat}/aea.c | 0 {libavformat => ffmpeg-y/libavformat}/afc.c | 0 {libavformat => ffmpeg-y/libavformat}/aiff.h | 0 .../libavformat}/aiffdec.c | 0 .../libavformat}/aiffenc.c | 0 .../libavformat}/aixdec.c | 0 .../libavformat}/allformats.c | 0 {libavformat => ffmpeg-y/libavformat}/amr.c | 0 {libavformat => ffmpeg-y/libavformat}/anm.c | 0 {libavformat => ffmpeg-y/libavformat}/apc.c | 0 {libavformat => ffmpeg-y/libavformat}/ape.c | 0 .../libavformat}/apetag.c | 0 .../libavformat}/apetag.h | 0 .../libavformat}/apngdec.c | 0 .../libavformat}/apngenc.c | 0 .../libavformat}/aptxdec.c | 0 .../libavformat}/aqtitledec.c | 0 {libavformat => ffmpeg-y/libavformat}/asf.c | 0 {libavformat => ffmpeg-y/libavformat}/asf.h | 0 .../libavformat}/asfcrypt.c | 0 .../libavformat}/asfcrypt.h | 0 .../libavformat}/asfdec_f.c | 0 .../libavformat}/asfdec_o.c | 0 .../libavformat}/asfenc.c | 0 .../libavformat}/assdec.c | 0 .../libavformat}/assenc.c | 0 {libavformat => ffmpeg-y/libavformat}/ast.c | 0 {libavformat => ffmpeg-y/libavformat}/ast.h | 0 .../libavformat}/astdec.c | 0 .../libavformat}/astenc.c | 0 {libavformat => ffmpeg-y/libavformat}/async.c | 0 {libavformat => ffmpeg-y/libavformat}/au.c | 0 .../libavformat}/audiointerleave.c | 0 .../libavformat}/audiointerleave.h | 0 {libavformat => ffmpeg-y/libavformat}/av1.c | 0 {libavformat => ffmpeg-y/libavformat}/av1.h | 0 {libavformat => ffmpeg-y/libavformat}/avc.c | 0 {libavformat => ffmpeg-y/libavformat}/avc.h | 0 .../libavformat}/avformat.h | 0 .../libavformat}/avformatres.rc | 0 {libavformat => ffmpeg-y/libavformat}/avi.h | 0 .../libavformat}/avidec.c | 0 .../libavformat}/avienc.c | 0 {libavformat => ffmpeg-y/libavformat}/avio.c | 0 {libavformat => ffmpeg-y/libavformat}/avio.h | 0 .../libavformat}/avio_internal.h | 0 .../libavformat}/aviobuf.c | 0 .../libavformat}/avisynth.c | 0 .../libavformat}/avlanguage.c | 0 .../libavformat}/avlanguage.h | 0 {libavformat => ffmpeg-y/libavformat}/avr.c | 0 {libavformat => ffmpeg-y/libavformat}/avs.c | 0 .../libavformat}/bethsoftvid.c | 0 {libavformat => ffmpeg-y/libavformat}/bfi.c | 0 {libavformat => ffmpeg-y/libavformat}/bink.c | 0 .../libavformat}/bintext.c | 0 {libavformat => ffmpeg-y/libavformat}/bit.c | 0 .../libavformat}/bluray.c | 0 {libavformat => ffmpeg-y/libavformat}/bmv.c | 0 .../libavformat}/boadec.c | 0 {libavformat => ffmpeg-y/libavformat}/brstm.c | 0 {libavformat => ffmpeg-y/libavformat}/c93.c | 0 {libavformat => ffmpeg-y/libavformat}/cache.c | 0 {libavformat => ffmpeg-y/libavformat}/caf.c | 0 {libavformat => ffmpeg-y/libavformat}/caf.h | 0 .../libavformat}/cafdec.c | 0 .../libavformat}/cafenc.c | 0 .../libavformat}/cavsvideodec.c | 0 {libavformat => ffmpeg-y/libavformat}/cdg.c | 0 {libavformat => ffmpeg-y/libavformat}/cdxl.c | 0 .../libavformat}/chromaprint.c | 0 .../libavformat}/cinedec.c | 0 .../libavformat}/codec2.c | 0 .../libavformat}/concat.c | 0 .../libavformat}/concatdec.c | 0 .../libavformat}/crcenc.c | 0 .../libavformat}/crypto.c | 0 .../libavformat}/cutils.c | 0 {libavformat => ffmpeg-y/libavformat}/dash.c | 0 {libavformat => ffmpeg-y/libavformat}/dash.h | 0 .../libavformat}/dashdec.c | 0 .../libavformat}/dashenc.c | 0 .../libavformat}/data_uri.c | 0 .../libavformat}/dauddec.c | 0 .../libavformat}/daudenc.c | 0 {libavformat => ffmpeg-y/libavformat}/davs2.c | 0 {libavformat => ffmpeg-y/libavformat}/dcstr.c | 0 {libavformat => ffmpeg-y/libavformat}/dfa.c | 0 {libavformat => ffmpeg-y/libavformat}/dhav.c | 0 .../libavformat}/diracdec.c | 0 .../libavformat}/dnxhddec.c | 0 .../libavformat}/dsfdec.c | 0 .../libavformat}/dsicin.c | 0 {libavformat => ffmpeg-y/libavformat}/dss.c | 0 .../libavformat}/dtsdec.c | 0 .../libavformat}/dtshddec.c | 0 {libavformat => ffmpeg-y/libavformat}/dump.c | 0 {libavformat => ffmpeg-y/libavformat}/dv.c | 0 {libavformat => ffmpeg-y/libavformat}/dv.h | 0 .../libavformat}/dvbsub.c | 0 .../libavformat}/dvbtxt.c | 0 {libavformat => ffmpeg-y/libavformat}/dvenc.c | 0 {libavformat => ffmpeg-y/libavformat}/dxa.c | 0 .../libavformat}/eacdata.c | 0 .../libavformat}/electronicarts.c | 0 .../libavformat}/epafdec.c | 0 .../libavformat}/ffmeta.h | 0 .../libavformat}/ffmetadec.c | 0 .../libavformat}/ffmetaenc.c | 0 {libavformat => ffmpeg-y/libavformat}/fifo.c | 0 .../libavformat}/fifo_test.c | 0 {libavformat => ffmpeg-y/libavformat}/file.c | 0 .../libavformat}/file_open.c | 0 .../libavformat}/filmstripdec.c | 0 .../libavformat}/filmstripenc.c | 0 .../libavformat}/fitsdec.c | 0 .../libavformat}/fitsenc.c | 0 .../libavformat}/flac_picture.c | 0 .../libavformat}/flac_picture.h | 0 .../libavformat}/flacdec.c | 0 .../libavformat}/flacenc.c | 0 .../libavformat}/flacenc.h | 0 .../libavformat}/flacenc_header.c | 0 {libavformat => ffmpeg-y/libavformat}/flic.c | 0 {libavformat => ffmpeg-y/libavformat}/flv.h | 0 .../libavformat}/flvdec.c | 0 .../libavformat}/flvenc.c | 0 .../libavformat}/format.c | 0 .../libavformat}/framecrcenc.c | 0 .../libavformat}/framehash.c | 0 .../libavformat}/frmdec.c | 0 {libavformat => ffmpeg-y/libavformat}/fsb.c | 0 {libavformat => ffmpeg-y/libavformat}/ftp.c | 0 {libavformat => ffmpeg-y/libavformat}/g722.c | 0 .../libavformat}/g723_1.c | 0 {libavformat => ffmpeg-y/libavformat}/g726.c | 0 .../libavformat}/g729dec.c | 0 {libavformat => ffmpeg-y/libavformat}/gdv.c | 0 {libavformat => ffmpeg-y/libavformat}/genh.c | 0 {libavformat => ffmpeg-y/libavformat}/gif.c | 0 .../libavformat}/gifdec.c | 0 .../libavformat}/golomb_tab.c | 0 .../libavformat}/gopher.c | 0 .../libavformat}/gsmdec.c | 0 {libavformat => ffmpeg-y/libavformat}/gxf.c | 0 {libavformat => ffmpeg-y/libavformat}/gxf.h | 0 .../libavformat}/gxfenc.c | 0 .../libavformat}/h261dec.c | 0 .../libavformat}/h263dec.c | 0 .../libavformat}/h264dec.c | 0 .../libavformat}/hashenc.c | 0 {libavformat => ffmpeg-y/libavformat}/hcom.c | 0 .../libavformat}/hdsenc.c | 0 {libavformat => ffmpeg-y/libavformat}/hevc.c | 0 {libavformat => ffmpeg-y/libavformat}/hevc.h | 0 .../libavformat}/hevcdec.c | 0 {libavformat => ffmpeg-y/libavformat}/hls.c | 6 + .../libavformat}/hlsenc.c | 0 .../libavformat}/hlsplaylist.c | 0 .../libavformat}/hlsplaylist.h | 0 .../libavformat}/hlsproto.c | 0 {libavformat => ffmpeg-y/libavformat}/hnm.c | 0 {libavformat => ffmpeg-y/libavformat}/http.c | 0 {libavformat => ffmpeg-y/libavformat}/http.h | 0 .../libavformat}/httpauth.c | 0 .../libavformat}/httpauth.h | 0 .../libavformat}/icecast.c | 0 .../libavformat}/icodec.c | 0 .../libavformat}/icoenc.c | 0 {libavformat => ffmpeg-y/libavformat}/id3v1.c | 0 {libavformat => ffmpeg-y/libavformat}/id3v1.h | 0 {libavformat => ffmpeg-y/libavformat}/id3v2.c | 0 {libavformat => ffmpeg-y/libavformat}/id3v2.h | 0 .../libavformat}/id3v2enc.c | 0 {libavformat => ffmpeg-y/libavformat}/idcin.c | 0 .../libavformat}/idroqdec.c | 0 .../libavformat}/idroqenc.c | 0 {libavformat => ffmpeg-y/libavformat}/iff.c | 0 {libavformat => ffmpeg-y/libavformat}/ifv.c | 0 {libavformat => ffmpeg-y/libavformat}/ilbc.c | 0 {libavformat => ffmpeg-y/libavformat}/img2.c | 0 {libavformat => ffmpeg-y/libavformat}/img2.h | 0 .../libavformat}/img2_alias_pix.c | 0 .../libavformat}/img2_brender_pix.c | 0 .../libavformat}/img2dec.c | 0 .../libavformat}/img2enc.c | 0 .../libavformat}/ingenientdec.c | 0 .../libavformat}/internal.h | 0 {libavformat => ffmpeg-y/libavformat}/ip.c | 0 {libavformat => ffmpeg-y/libavformat}/ip.h | 0 .../libavformat}/ipmovie.c | 0 {libavformat => ffmpeg-y/libavformat}/ircam.c | 0 {libavformat => ffmpeg-y/libavformat}/ircam.h | 0 .../libavformat}/ircamdec.c | 0 .../libavformat}/ircamenc.c | 0 {libavformat => ffmpeg-y/libavformat}/isom.c | 0 {libavformat => ffmpeg-y/libavformat}/isom.h | 0 {libavformat => ffmpeg-y/libavformat}/iss.c | 0 {libavformat => ffmpeg-y/libavformat}/iv8.c | 0 .../libavformat}/ivfdec.c | 0 .../libavformat}/ivfenc.c | 0 .../libavformat}/jacosubdec.c | 0 .../libavformat}/jacosubenc.c | 0 {libavformat => ffmpeg-y/libavformat}/jvdec.c | 0 .../libavformat}/latmenc.c | 0 .../libavformat}/libavformat.v | 0 .../libavformat}/libgme.c | 0 .../libavformat}/libmodplug.c | 0 .../libavformat}/libopenmpt.c | 0 .../libavformat}/librtmp.c | 0 .../libavformat}/libsmbclient.c | 0 .../libavformat}/libsrt.c | 0 .../libavformat}/libssh.c | 0 {libavformat => ffmpeg-y/libavformat}/lmlm4.c | 0 .../libavformat}/loasdec.c | 0 .../libavformat}/log2_tab.c | 0 {libavformat => ffmpeg-y/libavformat}/lrc.c | 0 {libavformat => ffmpeg-y/libavformat}/lrc.h | 0 .../libavformat}/lrcdec.c | 0 .../libavformat}/lrcenc.c | 0 .../libavformat}/lvfdec.c | 0 .../libavformat}/lxfdec.c | 0 .../libavformat}/m4vdec.c | 0 .../libavformat}/matroska.c | 0 .../libavformat}/matroska.h | 0 .../libavformat}/matroskadec.c | 0 .../libavformat}/matroskaenc.c | 0 .../libavformat}/md5proto.c | 0 .../libavformat}/metadata.c | 0 .../libavformat}/metadata.h | 0 {libavformat => ffmpeg-y/libavformat}/mgsts.c | 0 .../libavformat}/microdvddec.c | 0 .../libavformat}/microdvdenc.c | 0 .../libavformat}/mj2kdec.c | 0 .../libavformat}/mkvtimestamp_v2.c | 0 .../libavformat}/mlpdec.c | 0 .../libavformat}/mlvdec.c | 0 {libavformat => ffmpeg-y/libavformat}/mm.c | 0 {libavformat => ffmpeg-y/libavformat}/mmf.c | 0 {libavformat => ffmpeg-y/libavformat}/mms.c | 0 {libavformat => ffmpeg-y/libavformat}/mms.h | 0 {libavformat => ffmpeg-y/libavformat}/mmsh.c | 0 {libavformat => ffmpeg-y/libavformat}/mmst.c | 0 {libavformat => ffmpeg-y/libavformat}/mov.c | 0 .../libavformat}/mov_chan.c | 0 .../libavformat}/mov_chan.h | 0 .../libavformat}/mov_esds.c | 0 .../libavformat}/movenc.c | 0 .../libavformat}/movenc.h | 0 .../libavformat}/movenccenc.c | 0 .../libavformat}/movenccenc.h | 0 .../libavformat}/movenchint.c | 0 .../libavformat}/mp3dec.c | 0 .../libavformat}/mp3enc.c | 0 {libavformat => ffmpeg-y/libavformat}/mpc.c | 0 {libavformat => ffmpeg-y/libavformat}/mpc8.c | 0 {libavformat => ffmpeg-y/libavformat}/mpeg.c | 0 {libavformat => ffmpeg-y/libavformat}/mpeg.h | 0 .../libavformat}/mpegenc.c | 0 .../libavformat}/mpegts.c | 0 .../libavformat}/mpegts.h | 0 .../libavformat}/mpegtsenc.c | 0 .../libavformat}/mpegvideodec.c | 0 .../libavformat}/mpjpeg.c | 0 .../libavformat}/mpjpegdec.c | 0 .../libavformat}/mpl2dec.c | 0 .../libavformat}/mpsubdec.c | 0 {libavformat => ffmpeg-y/libavformat}/msf.c | 0 .../libavformat}/msnwc_tcp.c | 0 {libavformat => ffmpeg-y/libavformat}/mtaf.c | 0 {libavformat => ffmpeg-y/libavformat}/mtv.c | 0 {libavformat => ffmpeg-y/libavformat}/musx.c | 0 {libavformat => ffmpeg-y/libavformat}/mux.c | 0 {libavformat => ffmpeg-y/libavformat}/mvdec.c | 0 {libavformat => ffmpeg-y/libavformat}/mvi.c | 0 {libavformat => ffmpeg-y/libavformat}/mxf.c | 0 {libavformat => ffmpeg-y/libavformat}/mxf.h | 0 .../libavformat}/mxfdec.c | 0 .../libavformat}/mxfenc.c | 0 {libavformat => ffmpeg-y/libavformat}/mxg.c | 0 {libavformat => ffmpeg-y/libavformat}/ncdec.c | 0 .../libavformat}/network.c | 0 .../libavformat}/network.h | 0 .../libavformat}/nistspheredec.c | 0 .../libavformat}/nspdec.c | 0 .../libavformat}/nsvdec.c | 0 .../libavformat}/nullenc.c | 0 {libavformat => ffmpeg-y/libavformat}/nut.c | 0 {libavformat => ffmpeg-y/libavformat}/nut.h | 0 .../libavformat}/nutdec.c | 0 .../libavformat}/nutenc.c | 0 {libavformat => ffmpeg-y/libavformat}/nuv.c | 0 .../libavformat}/oggdec.c | 0 .../libavformat}/oggdec.h | 0 .../libavformat}/oggenc.c | 0 .../libavformat}/oggparsecelt.c | 0 .../libavformat}/oggparsedaala.c | 0 .../libavformat}/oggparsedirac.c | 0 .../libavformat}/oggparseflac.c | 0 .../libavformat}/oggparseogm.c | 0 .../libavformat}/oggparseopus.c | 0 .../libavformat}/oggparseskeleton.c | 0 .../libavformat}/oggparsespeex.c | 0 .../libavformat}/oggparsetheora.c | 0 .../libavformat}/oggparsevorbis.c | 0 .../libavformat}/oggparsevp8.c | 0 {libavformat => ffmpeg-y/libavformat}/oma.c | 0 {libavformat => ffmpeg-y/libavformat}/oma.h | 0 .../libavformat}/omadec.c | 0 .../libavformat}/omaenc.c | 0 .../libavformat}/options.c | 0 .../libavformat}/options_table.h | 0 .../libavformat}/os_support.c | 0 .../libavformat}/os_support.h | 0 {libavformat => ffmpeg-y/libavformat}/paf.c | 0 {libavformat => ffmpeg-y/libavformat}/pcm.c | 0 {libavformat => ffmpeg-y/libavformat}/pcm.h | 0 .../libavformat}/pcmdec.c | 0 .../libavformat}/pcmenc.c | 0 .../libavformat}/pjsdec.c | 0 .../libavformat}/pmpdec.c | 0 .../libavformat}/prompeg.c | 0 .../libavformat}/protocols.c | 0 .../libavformat}/psxstr.c | 0 {libavformat => ffmpeg-y/libavformat}/pva.c | 0 .../libavformat}/pvfdec.c | 0 {libavformat => ffmpeg-y/libavformat}/qcp.c | 0 .../libavformat}/qtpalette.c | 0 .../libavformat}/qtpalette.h | 0 {libavformat => ffmpeg-y/libavformat}/r3d.c | 0 .../libavformat}/rawdec.c | 0 .../libavformat}/rawdec.h | 0 .../libavformat}/rawenc.c | 0 .../libavformat}/rawenc.h | 0 .../libavformat}/rawutils.c | 0 .../libavformat}/rawvideodec.c | 0 {libavformat => ffmpeg-y/libavformat}/rdt.c | 0 {libavformat => ffmpeg-y/libavformat}/rdt.h | 0 .../libavformat}/realtextdec.c | 0 .../libavformat}/redspark.c | 0 .../libavformat}/replaygain.c | 0 .../libavformat}/replaygain.h | 0 {libavformat => ffmpeg-y/libavformat}/riff.c | 0 {libavformat => ffmpeg-y/libavformat}/riff.h | 0 .../libavformat}/riffdec.c | 0 .../libavformat}/riffenc.c | 0 {libavformat => ffmpeg-y/libavformat}/rl2.c | 0 {libavformat => ffmpeg-y/libavformat}/rm.c | 0 {libavformat => ffmpeg-y/libavformat}/rm.h | 0 {libavformat => ffmpeg-y/libavformat}/rmdec.c | 0 {libavformat => ffmpeg-y/libavformat}/rmenc.c | 0 .../libavformat}/rmsipr.c | 0 .../libavformat}/rmsipr.h | 0 {libavformat => ffmpeg-y/libavformat}/rpl.c | 0 {libavformat => ffmpeg-y/libavformat}/rsd.c | 0 {libavformat => ffmpeg-y/libavformat}/rso.c | 0 {libavformat => ffmpeg-y/libavformat}/rso.h | 0 .../libavformat}/rsodec.c | 0 .../libavformat}/rsoenc.c | 0 {libavformat => ffmpeg-y/libavformat}/rtmp.h | 0 .../libavformat}/rtmpcrypt.c | 0 .../libavformat}/rtmpcrypt.h | 0 .../libavformat}/rtmpdh.c | 0 .../libavformat}/rtmpdh.h | 0 .../libavformat}/rtmpdigest.c | 0 .../libavformat}/rtmphttp.c | 0 .../libavformat}/rtmppkt.c | 0 .../libavformat}/rtmppkt.h | 0 .../libavformat}/rtmpproto.c | 0 {libavformat => ffmpeg-y/libavformat}/rtp.c | 0 {libavformat => ffmpeg-y/libavformat}/rtp.h | 0 .../libavformat}/rtpdec.c | 0 .../libavformat}/rtpdec.h | 0 .../libavformat}/rtpdec_ac3.c | 0 .../libavformat}/rtpdec_amr.c | 0 .../libavformat}/rtpdec_asf.c | 0 .../libavformat}/rtpdec_dv.c | 0 .../libavformat}/rtpdec_formats.h | 0 .../libavformat}/rtpdec_g726.c | 0 .../libavformat}/rtpdec_h261.c | 0 .../libavformat}/rtpdec_h263.c | 0 .../libavformat}/rtpdec_h263_rfc2190.c | 0 .../libavformat}/rtpdec_h264.c | 0 .../libavformat}/rtpdec_hevc.c | 0 .../libavformat}/rtpdec_ilbc.c | 0 .../libavformat}/rtpdec_jpeg.c | 0 .../libavformat}/rtpdec_latm.c | 0 .../libavformat}/rtpdec_mpa_robust.c | 0 .../libavformat}/rtpdec_mpeg12.c | 0 .../libavformat}/rtpdec_mpeg4.c | 0 .../libavformat}/rtpdec_mpegts.c | 0 .../libavformat}/rtpdec_qcelp.c | 0 .../libavformat}/rtpdec_qdm2.c | 0 .../libavformat}/rtpdec_qt.c | 0 .../libavformat}/rtpdec_rfc4175.c | 0 .../libavformat}/rtpdec_svq3.c | 0 .../libavformat}/rtpdec_vc2hq.c | 0 .../libavformat}/rtpdec_vp8.c | 0 .../libavformat}/rtpdec_vp9.c | 0 .../libavformat}/rtpdec_xiph.c | 0 .../libavformat}/rtpenc.c | 0 .../libavformat}/rtpenc.h | 0 .../libavformat}/rtpenc_aac.c | 0 .../libavformat}/rtpenc_amr.c | 0 .../libavformat}/rtpenc_chain.c | 0 .../libavformat}/rtpenc_chain.h | 0 .../libavformat}/rtpenc_h261.c | 0 .../libavformat}/rtpenc_h263.c | 0 .../libavformat}/rtpenc_h263_rfc2190.c | 0 .../libavformat}/rtpenc_h264_hevc.c | 0 .../libavformat}/rtpenc_jpeg.c | 0 .../libavformat}/rtpenc_latm.c | 0 .../libavformat}/rtpenc_mpegts.c | 0 .../libavformat}/rtpenc_mpv.c | 0 .../libavformat}/rtpenc_vc2hq.c | 0 .../libavformat}/rtpenc_vp8.c | 0 .../libavformat}/rtpenc_vp9.c | 0 .../libavformat}/rtpenc_xiph.c | 0 .../libavformat}/rtpproto.c | 0 .../libavformat}/rtpproto.h | 0 {libavformat => ffmpeg-y/libavformat}/rtsp.c | 0 {libavformat => ffmpeg-y/libavformat}/rtsp.h | 0 .../libavformat}/rtspcodes.h | 0 .../libavformat}/rtspdec.c | 0 .../libavformat}/rtspenc.c | 0 {libavformat => ffmpeg-y/libavformat}/s337m.c | 0 .../libavformat}/samidec.c | 0 .../libavformat}/sapdec.c | 0 .../libavformat}/sapenc.c | 0 {libavformat => ffmpeg-y/libavformat}/sauce.c | 0 {libavformat => ffmpeg-y/libavformat}/sauce.h | 0 .../libavformat}/sbcdec.c | 0 .../libavformat}/sbgdec.c | 0 .../libavformat}/sccdec.c | 0 .../libavformat}/sccenc.c | 0 {libavformat => ffmpeg-y/libavformat}/sctp.c | 0 {libavformat => ffmpeg-y/libavformat}/sdp.c | 0 {libavformat => ffmpeg-y/libavformat}/sdr2.c | 0 .../libavformat}/sdsdec.c | 0 .../libavformat}/sdxdec.c | 0 .../libavformat}/segafilm.c | 0 .../libavformat}/segafilmenc.c | 0 .../libavformat}/segment.c | 0 .../libavformat}/serdec.c | 0 .../libavformat}/shortendec.c | 0 .../libavformat}/sierravmd.c | 0 {libavformat => ffmpeg-y/libavformat}/siff.c | 0 .../libavformat}/smacker.c | 0 .../libavformat}/smjpeg.c | 0 .../libavformat}/smjpeg.h | 0 .../libavformat}/smjpegdec.c | 0 .../libavformat}/smjpegenc.c | 0 .../libavformat}/smoothstreamingenc.c | 0 {libavformat => ffmpeg-y/libavformat}/smush.c | 0 {libavformat => ffmpeg-y/libavformat}/sol.c | 0 {libavformat => ffmpeg-y/libavformat}/sox.h | 0 .../libavformat}/soxdec.c | 0 .../libavformat}/soxenc.c | 0 {libavformat => ffmpeg-y/libavformat}/spdif.c | 0 {libavformat => ffmpeg-y/libavformat}/spdif.h | 0 .../libavformat}/spdifdec.c | 0 .../libavformat}/spdifenc.c | 0 .../libavformat}/srtdec.c | 0 .../libavformat}/srtenc.c | 0 {libavformat => ffmpeg-y/libavformat}/srtp.c | 0 {libavformat => ffmpeg-y/libavformat}/srtp.h | 0 .../libavformat}/srtpproto.c | 0 .../libavformat}/stldec.c | 0 .../libavformat}/subfile.c | 0 .../libavformat}/subtitles.c | 0 .../libavformat}/subtitles.h | 0 .../libavformat}/subviewer1dec.c | 0 .../libavformat}/subviewerdec.c | 0 .../libavformat}/supdec.c | 0 .../libavformat}/supenc.c | 0 {libavformat => ffmpeg-y/libavformat}/svag.c | 0 {libavformat => ffmpeg-y/libavformat}/swf.c | 0 {libavformat => ffmpeg-y/libavformat}/swf.h | 0 .../libavformat}/swfdec.c | 0 .../libavformat}/swfenc.c | 0 .../libavformat}/takdec.c | 0 {libavformat => ffmpeg-y/libavformat}/tcp.c | 0 .../libavformat}/tedcaptionsdec.c | 0 {libavformat => ffmpeg-y/libavformat}/tee.c | 0 .../libavformat}/tee_common.c | 0 .../libavformat}/tee_common.h | 0 .../libavformat}/teeproto.c | 0 .../libavformat}/tests/fifo_muxer.c | 0 .../libavformat}/tests/movenc.c | 0 .../libavformat}/tests/noproxy.c | 0 .../libavformat}/tests/rtmpdh.c | 0 .../libavformat}/tests/seek.c | 0 .../libavformat}/tests/srtp.c | 0 .../libavformat}/tests/url.c | 0 {libavformat => ffmpeg-y/libavformat}/thp.c | 0 .../libavformat}/tiertexseq.c | 0 {libavformat => ffmpeg-y/libavformat}/tls.c | 0 {libavformat => ffmpeg-y/libavformat}/tls.h | 0 .../libavformat}/tls_gnutls.c | 0 .../libavformat}/tls_libtls.c | 0 .../libavformat}/tls_mbedtls.c | 0 .../libavformat}/tls_openssl.c | 0 .../libavformat}/tls_schannel.c | 0 .../libavformat}/tls_securetransport.c | 0 {libavformat => ffmpeg-y/libavformat}/tmv.c | 0 {libavformat => ffmpeg-y/libavformat}/tta.c | 0 .../libavformat}/ttaenc.c | 0 {libavformat => ffmpeg-y/libavformat}/tty.c | 0 {libavformat => ffmpeg-y/libavformat}/txd.c | 0 {libavformat => ffmpeg-y/libavformat}/ty.c | 0 {libavformat => ffmpeg-y/libavformat}/udp.c | 0 .../libavformat}/uncodedframecrcenc.c | 0 {libavformat => ffmpeg-y/libavformat}/unix.c | 0 {libavformat => ffmpeg-y/libavformat}/url.c | 0 {libavformat => ffmpeg-y/libavformat}/url.h | 0 .../libavformat}/urldecode.c | 0 .../libavformat}/urldecode.h | 0 {libavformat => ffmpeg-y/libavformat}/utils.c | 0 {libavformat => ffmpeg-y/libavformat}/v210.c | 0 {libavformat => ffmpeg-y/libavformat}/vag.c | 0 .../libavformat}/vapoursynth.c | 0 .../libavformat}/vc1dec.c | 0 .../libavformat}/vc1test.c | 0 .../libavformat}/vc1testenc.c | 0 .../libavformat}/version.h | 0 .../libavformat}/vividas.c | 0 {libavformat => ffmpeg-y/libavformat}/vivo.c | 0 {libavformat => ffmpeg-y/libavformat}/voc.c | 0 {libavformat => ffmpeg-y/libavformat}/voc.h | 0 .../libavformat}/voc_packet.c | 0 .../libavformat}/vocdec.c | 0 .../libavformat}/vocenc.c | 0 .../libavformat}/vorbiscomment.c | 0 .../libavformat}/vorbiscomment.h | 0 {libavformat => ffmpeg-y/libavformat}/vpcc.c | 0 {libavformat => ffmpeg-y/libavformat}/vpcc.h | 0 {libavformat => ffmpeg-y/libavformat}/vpk.c | 0 .../libavformat}/vplayerdec.c | 0 {libavformat => ffmpeg-y/libavformat}/vqf.c | 0 {libavformat => ffmpeg-y/libavformat}/w64.c | 0 {libavformat => ffmpeg-y/libavformat}/w64.h | 0 .../libavformat}/wavdec.c | 0 .../libavformat}/wavenc.c | 0 .../libavformat}/wc3movie.c | 0 .../libavformat}/webm_chunk.c | 0 .../libavformat}/webmdashenc.c | 0 .../libavformat}/webpenc.c | 0 .../libavformat}/webvttdec.c | 0 .../libavformat}/webvttenc.c | 0 .../libavformat}/westwood_aud.c | 0 .../libavformat}/westwood_vqa.c | 0 .../libavformat}/wsddec.c | 0 {libavformat => ffmpeg-y/libavformat}/wtv.h | 0 .../libavformat}/wtv_common.c | 0 .../libavformat}/wtvdec.c | 0 .../libavformat}/wtvenc.c | 0 {libavformat => ffmpeg-y/libavformat}/wv.c | 0 {libavformat => ffmpeg-y/libavformat}/wv.h | 0 {libavformat => ffmpeg-y/libavformat}/wvdec.c | 0 .../libavformat}/wvedec.c | 0 {libavformat => ffmpeg-y/libavformat}/wvenc.c | 0 {libavformat => ffmpeg-y/libavformat}/xa.c | 0 {libavformat => ffmpeg-y/libavformat}/xmv.c | 0 {libavformat => ffmpeg-y/libavformat}/xvag.c | 0 {libavformat => ffmpeg-y/libavformat}/xwma.c | 0 {libavformat => ffmpeg-y/libavformat}/yop.c | 0 .../libavformat}/yuv4mpeg.h | 0 .../libavformat}/yuv4mpegdec.c | 0 .../libavformat}/yuv4mpegenc.c | 0 .../libavresample}/Makefile | 0 .../libavresample}/aarch64/Makefile | 0 .../libavresample}/aarch64/asm-offsets.h | 0 .../aarch64/audio_convert_init.c | 0 .../aarch64/audio_convert_neon.S | 0 .../libavresample}/aarch64/neontest.c | 0 .../libavresample}/aarch64/resample_init.c | 0 .../libavresample}/aarch64/resample_neon.S | 0 .../libavresample}/arm/Makefile | 0 .../libavresample}/arm/asm-offsets.h | 0 .../libavresample}/arm/audio_convert_init.c | 0 .../libavresample}/arm/audio_convert_neon.S | 0 .../libavresample}/arm/neontest.c | 0 .../libavresample}/arm/resample_init.c | 0 .../libavresample}/arm/resample_neon.S | 0 .../libavresample}/audio_convert.c | 0 .../libavresample}/audio_convert.h | 0 .../libavresample}/audio_data.c | 0 .../libavresample}/audio_data.h | 0 .../libavresample}/audio_mix.c | 0 .../libavresample}/audio_mix.h | 0 .../libavresample}/audio_mix_matrix.c | 0 .../libavresample}/avresample.h | 0 .../libavresample}/avresampleres.rc | 0 .../libavresample}/dither.c | 0 .../libavresample}/dither.h | 0 .../libavresample}/internal.h | 0 .../libavresample}/libavresample.v | 0 .../libavresample}/options.c | 0 .../libavresample}/resample.c | 0 .../libavresample}/resample.h | 0 .../libavresample}/resample_template.c | 0 .../libavresample}/tests/avresample.c | 0 .../libavresample}/utils.c | 0 .../libavresample}/version.h | 0 .../libavresample}/x86/Makefile | 0 .../libavresample}/x86/audio_convert_init.c | 0 .../libavresample}/x86/audio_mix_init.c | 0 .../libavresample}/x86/dither_init.c | 0 .../libavresample}/x86/w64xmmtest.c | 0 {libavutil => ffmpeg-y/libavutil}/Makefile | 0 .../libavutil}/aarch64/Makefile | 0 .../libavutil}/aarch64/asm.S | 0 .../libavutil}/aarch64/bswap.h | 0 .../libavutil}/aarch64/cpu.c | 0 .../libavutil}/aarch64/cpu.h | 0 .../libavutil}/aarch64/float_dsp_init.c | 0 .../libavutil}/aarch64/float_dsp_neon.S | 0 .../libavutil}/aarch64/neontest.h | 0 .../libavutil}/aarch64/timer.h | 0 {libavutil => ffmpeg-y/libavutil}/adler32.c | 0 {libavutil => ffmpeg-y/libavutil}/adler32.h | 0 {libavutil => ffmpeg-y/libavutil}/aes.c | 0 {libavutil => ffmpeg-y/libavutil}/aes.h | 0 {libavutil => ffmpeg-y/libavutil}/aes_ctr.c | 0 {libavutil => ffmpeg-y/libavutil}/aes_ctr.h | 0 .../libavutil}/aes_internal.h | 0 .../libavutil}/arm/Makefile | 0 {libavutil => ffmpeg-y/libavutil}/arm/asm.S | 0 {libavutil => ffmpeg-y/libavutil}/arm/bswap.h | 0 {libavutil => ffmpeg-y/libavutil}/arm/cpu.c | 0 {libavutil => ffmpeg-y/libavutil}/arm/cpu.h | 0 .../libavutil}/arm/float_dsp_arm.h | 0 .../libavutil}/arm/float_dsp_init_arm.c | 0 .../libavutil}/arm/float_dsp_init_neon.c | 0 .../libavutil}/arm/float_dsp_init_vfp.c | 0 .../libavutil}/arm/float_dsp_neon.S | 0 .../libavutil}/arm/float_dsp_vfp.S | 0 .../libavutil}/arm/intmath.h | 0 .../libavutil}/arm/intreadwrite.h | 0 .../libavutil}/arm/neontest.h | 0 {libavutil => ffmpeg-y/libavutil}/arm/timer.h | 0 .../libavutil}/attributes.h | 0 .../libavutil}/audio_fifo.c | 0 .../libavutil}/audio_fifo.h | 0 {libavutil => ffmpeg-y/libavutil}/avassert.h | 0 .../libavutil}/avr32/bswap.h | 0 .../libavutil}/avr32/intreadwrite.h | 0 {libavutil => ffmpeg-y/libavutil}/avsscanf.c | 0 {libavutil => ffmpeg-y/libavutil}/avstring.c | 0 {libavutil => ffmpeg-y/libavutil}/avstring.h | 0 {libavutil => ffmpeg-y/libavutil}/avutil.h | 0 .../libavutil}/avutilres.rc | 0 {libavutil => ffmpeg-y/libavutil}/base64.c | 0 {libavutil => ffmpeg-y/libavutil}/base64.h | 0 .../libavutil}/bfin/bswap.h | 0 .../libavutil}/bfin/timer.h | 0 {libavutil => ffmpeg-y/libavutil}/blowfish.c | 0 {libavutil => ffmpeg-y/libavutil}/blowfish.h | 0 {libavutil => ffmpeg-y/libavutil}/bprint.c | 0 {libavutil => ffmpeg-y/libavutil}/bprint.h | 0 {libavutil => ffmpeg-y/libavutil}/bswap.h | 0 {libavutil => ffmpeg-y/libavutil}/buffer.c | 0 {libavutil => ffmpeg-y/libavutil}/buffer.h | 0 .../libavutil}/buffer_internal.h | 0 {libavutil => ffmpeg-y/libavutil}/camellia.c | 0 {libavutil => ffmpeg-y/libavutil}/camellia.h | 0 {libavutil => ffmpeg-y/libavutil}/cast5.c | 0 {libavutil => ffmpeg-y/libavutil}/cast5.h | 0 .../libavutil}/channel_layout.c | 0 .../libavutil}/channel_layout.h | 0 .../libavutil}/color_utils.c | 0 .../libavutil}/color_utils.h | 0 .../libavutil}/colorspace.h | 0 {libavutil => ffmpeg-y/libavutil}/common.h | 0 {libavutil => ffmpeg-y/libavutil}/cpu.c | 0 {libavutil => ffmpeg-y/libavutil}/cpu.h | 0 .../libavutil}/cpu_internal.h | 0 {libavutil => ffmpeg-y/libavutil}/crc.c | 0 {libavutil => ffmpeg-y/libavutil}/crc.h | 0 .../libavutil}/cuda_check.h | 0 {libavutil => ffmpeg-y/libavutil}/des.c | 0 {libavutil => ffmpeg-y/libavutil}/des.h | 0 {libavutil => ffmpeg-y/libavutil}/dict.c | 0 {libavutil => ffmpeg-y/libavutil}/dict.h | 0 {libavutil => ffmpeg-y/libavutil}/display.c | 0 {libavutil => ffmpeg-y/libavutil}/display.h | 0 .../libavutil}/downmix_info.c | 0 .../libavutil}/downmix_info.h | 0 {libavutil => ffmpeg-y/libavutil}/dynarray.h | 0 .../libavutil}/encryption_info.c | 0 .../libavutil}/encryption_info.h | 0 {libavutil => ffmpeg-y/libavutil}/error.c | 0 {libavutil => ffmpeg-y/libavutil}/error.h | 0 {libavutil => ffmpeg-y/libavutil}/eval.c | 0 {libavutil => ffmpeg-y/libavutil}/eval.h | 0 {libavutil => ffmpeg-y/libavutil}/ffmath.h | 0 {libavutil => ffmpeg-y/libavutil}/fifo.c | 0 {libavutil => ffmpeg-y/libavutil}/fifo.h | 0 {libavutil => ffmpeg-y/libavutil}/file.c | 0 {libavutil => ffmpeg-y/libavutil}/file.h | 0 {libavutil => ffmpeg-y/libavutil}/file_open.c | 0 {libavutil => ffmpeg-y/libavutil}/fixed_dsp.c | 0 {libavutil => ffmpeg-y/libavutil}/fixed_dsp.h | 0 {libavutil => ffmpeg-y/libavutil}/float_dsp.c | 0 {libavutil => ffmpeg-y/libavutil}/float_dsp.h | 0 {libavutil => ffmpeg-y/libavutil}/frame.c | 0 {libavutil => ffmpeg-y/libavutil}/frame.h | 0 {libavutil => ffmpeg-y/libavutil}/hash.c | 0 {libavutil => ffmpeg-y/libavutil}/hash.h | 0 .../libavutil}/hdr_dynamic_metadata.c | 0 .../libavutil}/hdr_dynamic_metadata.h | 0 {libavutil => ffmpeg-y/libavutil}/hmac.c | 0 {libavutil => ffmpeg-y/libavutil}/hmac.h | 0 {libavutil => ffmpeg-y/libavutil}/hwcontext.c | 0 {libavutil => ffmpeg-y/libavutil}/hwcontext.h | 0 .../libavutil}/hwcontext_cuda.c | 0 .../libavutil}/hwcontext_cuda.h | 0 .../libavutil}/hwcontext_cuda_internal.h | 0 .../libavutil}/hwcontext_d3d11va.c | 0 .../libavutil}/hwcontext_d3d11va.h | 0 .../libavutil}/hwcontext_drm.c | 0 .../libavutil}/hwcontext_drm.h | 0 .../libavutil}/hwcontext_dxva2.c | 0 .../libavutil}/hwcontext_dxva2.h | 0 .../libavutil}/hwcontext_internal.h | 0 .../libavutil}/hwcontext_mediacodec.c | 0 .../libavutil}/hwcontext_mediacodec.h | 0 .../libavutil}/hwcontext_opencl.c | 0 .../libavutil}/hwcontext_opencl.h | 0 .../libavutil}/hwcontext_qsv.c | 0 .../libavutil}/hwcontext_qsv.h | 0 .../libavutil}/hwcontext_vaapi.c | 0 .../libavutil}/hwcontext_vaapi.h | 0 .../libavutil}/hwcontext_vdpau.c | 0 .../libavutil}/hwcontext_vdpau.h | 0 .../libavutil}/hwcontext_videotoolbox.c | 0 .../libavutil}/hwcontext_videotoolbox.h | 0 {libavutil => ffmpeg-y/libavutil}/imgutils.c | 0 {libavutil => ffmpeg-y/libavutil}/imgutils.h | 0 .../libavutil}/imgutils_internal.h | 0 {libavutil => ffmpeg-y/libavutil}/integer.c | 0 {libavutil => ffmpeg-y/libavutil}/integer.h | 0 {libavutil => ffmpeg-y/libavutil}/internal.h | 0 {libavutil => ffmpeg-y/libavutil}/intfloat.h | 0 {libavutil => ffmpeg-y/libavutil}/intmath.c | 0 {libavutil => ffmpeg-y/libavutil}/intmath.h | 0 .../libavutil}/intreadwrite.h | 0 {libavutil => ffmpeg-y/libavutil}/lfg.c | 0 {libavutil => ffmpeg-y/libavutil}/lfg.h | 0 {libavutil => ffmpeg-y/libavutil}/libavutil.v | 0 {libavutil => ffmpeg-y/libavutil}/libm.h | 0 {libavutil => ffmpeg-y/libavutil}/lls.c | 0 {libavutil => ffmpeg-y/libavutil}/lls.h | 0 {libavutil => ffmpeg-y/libavutil}/log.c | 0 {libavutil => ffmpeg-y/libavutil}/log.h | 0 {libavutil => ffmpeg-y/libavutil}/log2_tab.c | 0 {libavutil => ffmpeg-y/libavutil}/lzo.c | 0 {libavutil => ffmpeg-y/libavutil}/lzo.h | 0 {libavutil => ffmpeg-y/libavutil}/macros.h | 0 .../libavutil}/mastering_display_metadata.c | 0 .../libavutil}/mastering_display_metadata.h | 0 .../libavutil}/mathematics.c | 0 .../libavutil}/mathematics.h | 0 {libavutil => ffmpeg-y/libavutil}/md5.c | 0 {libavutil => ffmpeg-y/libavutil}/md5.h | 0 {libavutil => ffmpeg-y/libavutil}/mem.c | 0 {libavutil => ffmpeg-y/libavutil}/mem.h | 0 .../libavutil}/mem_internal.h | 0 .../libavutil}/mips/Makefile | 0 .../libavutil}/mips/asmdefs.h | 0 .../libavutil}/mips/float_dsp_mips.c | 0 .../libavutil}/mips/generic_macros_msa.h | 0 .../libavutil}/mips/intreadwrite.h | 0 .../libavutil}/mips/libm_mips.h | 0 .../libavutil}/mips/mmiutils.h | 0 .../libavutil}/motion_vector.h | 0 {libavutil => ffmpeg-y/libavutil}/murmur3.c | 0 {libavutil => ffmpeg-y/libavutil}/murmur3.h | 0 {libavutil => ffmpeg-y/libavutil}/opt.c | 0 {libavutil => ffmpeg-y/libavutil}/opt.h | 0 .../libavutil}/parseutils.c | 0 .../libavutil}/parseutils.h | 0 {libavutil => ffmpeg-y/libavutil}/pca.c | 0 {libavutil => ffmpeg-y/libavutil}/pca.h | 0 {libavutil => ffmpeg-y/libavutil}/pixdesc.c | 0 {libavutil => ffmpeg-y/libavutil}/pixdesc.h | 0 .../libavutil}/pixelutils.c | 0 .../libavutil}/pixelutils.h | 0 {libavutil => ffmpeg-y/libavutil}/pixfmt.h | 0 .../libavutil}/ppc/Makefile | 0 {libavutil => ffmpeg-y/libavutil}/ppc/cpu.c | 0 {libavutil => ffmpeg-y/libavutil}/ppc/cpu.h | 0 .../libavutil}/ppc/float_dsp_altivec.c | 0 .../libavutil}/ppc/float_dsp_altivec.h | 0 .../libavutil}/ppc/float_dsp_init.c | 0 .../libavutil}/ppc/float_dsp_vsx.c | 0 .../libavutil}/ppc/float_dsp_vsx.h | 0 .../libavutil}/ppc/intreadwrite.h | 0 {libavutil => ffmpeg-y/libavutil}/ppc/timer.h | 0 .../libavutil}/ppc/util_altivec.h | 0 {libavutil => ffmpeg-y/libavutil}/qsort.h | 0 .../libavutil}/random_seed.c | 0 .../libavutil}/random_seed.h | 0 {libavutil => ffmpeg-y/libavutil}/rational.c | 0 {libavutil => ffmpeg-y/libavutil}/rational.h | 0 {libavutil => ffmpeg-y/libavutil}/rc4.c | 0 {libavutil => ffmpeg-y/libavutil}/rc4.h | 0 .../libavutil}/replaygain.h | 0 {libavutil => ffmpeg-y/libavutil}/reverse.c | 0 {libavutil => ffmpeg-y/libavutil}/reverse.h | 0 {libavutil => ffmpeg-y/libavutil}/ripemd.c | 0 {libavutil => ffmpeg-y/libavutil}/ripemd.h | 0 {libavutil => ffmpeg-y/libavutil}/samplefmt.c | 0 {libavutil => ffmpeg-y/libavutil}/samplefmt.h | 0 {libavutil => ffmpeg-y/libavutil}/sh4/bswap.h | 0 {libavutil => ffmpeg-y/libavutil}/sha.c | 0 {libavutil => ffmpeg-y/libavutil}/sha.h | 0 {libavutil => ffmpeg-y/libavutil}/sha512.c | 0 {libavutil => ffmpeg-y/libavutil}/sha512.h | 0 .../libavutil}/slicethread.c | 0 .../libavutil}/slicethread.h | 0 {libavutil => ffmpeg-y/libavutil}/softfloat.h | 0 .../libavutil}/softfloat_ieee754.h | 0 .../libavutil}/softfloat_tables.h | 0 {libavutil => ffmpeg-y/libavutil}/spherical.c | 0 {libavutil => ffmpeg-y/libavutil}/spherical.h | 0 {libavutil => ffmpeg-y/libavutil}/stereo3d.c | 0 {libavutil => ffmpeg-y/libavutil}/stereo3d.h | 0 {libavutil => ffmpeg-y/libavutil}/tablegen.h | 0 {libavutil => ffmpeg-y/libavutil}/tea.c | 0 {libavutil => ffmpeg-y/libavutil}/tea.h | 0 .../libavutil}/tests/adler32.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/aes.c | 0 .../libavutil}/tests/aes_ctr.c | 0 .../libavutil}/tests/audio_fifo.c | 0 .../libavutil}/tests/avstring.c | 0 .../libavutil}/tests/base64.c | 0 .../libavutil}/tests/blowfish.c | 0 .../libavutil}/tests/bprint.c | 0 .../libavutil}/tests/camellia.c | 0 .../libavutil}/tests/cast5.c | 0 .../libavutil}/tests/color_utils.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/cpu.c | 0 .../libavutil}/tests/cpu_init.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/crc.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/des.c | 0 .../libavutil}/tests/dict.c | 0 .../libavutil}/tests/display.c | 0 .../libavutil}/tests/encryption_info.c | 0 .../libavutil}/tests/error.c | 0 .../libavutil}/tests/eval.c | 0 .../libavutil}/tests/fifo.c | 0 .../libavutil}/tests/file.c | 0 .../libavutil}/tests/hash.c | 0 .../libavutil}/tests/hmac.c | 0 .../libavutil}/tests/hwdevice.c | 0 .../libavutil}/tests/imgutils.c | 0 .../libavutil}/tests/integer.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/lfg.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/lls.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/log.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/lzo.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/md5.c | 0 .../libavutil}/tests/murmur3.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/opt.c | 0 .../libavutil}/tests/parseutils.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/pca.c | 0 .../libavutil}/tests/pixdesc.c | 0 .../libavutil}/tests/pixelutils.c | 0 .../libavutil}/tests/pixfmt_best.c | 0 .../libavutil}/tests/random_seed.c | 0 .../libavutil}/tests/rational.c | 0 .../libavutil}/tests/ripemd.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/sha.c | 0 .../libavutil}/tests/sha512.c | 0 .../libavutil}/tests/softfloat.c | 0 {libavutil => ffmpeg-y/libavutil}/tests/tea.c | 0 .../libavutil}/tests/tree.c | 0 .../libavutil}/tests/twofish.c | 0 .../libavutil}/tests/utf8.c | 0 .../libavutil}/tests/xtea.c | 0 {libavutil => ffmpeg-y/libavutil}/thread.h | 0 .../libavutil}/threadmessage.c | 0 .../libavutil}/threadmessage.h | 0 {libavutil => ffmpeg-y/libavutil}/time.c | 0 {libavutil => ffmpeg-y/libavutil}/time.h | 0 .../libavutil}/time_internal.h | 0 {libavutil => ffmpeg-y/libavutil}/timecode.c | 0 {libavutil => ffmpeg-y/libavutil}/timecode.h | 0 {libavutil => ffmpeg-y/libavutil}/timer.h | 0 {libavutil => ffmpeg-y/libavutil}/timestamp.h | 0 .../libavutil}/tomi/intreadwrite.h | 0 {libavutil => ffmpeg-y/libavutil}/tree.c | 0 {libavutil => ffmpeg-y/libavutil}/tree.h | 0 {libavutil => ffmpeg-y/libavutil}/twofish.c | 0 {libavutil => ffmpeg-y/libavutil}/twofish.h | 0 {libavutil => ffmpeg-y/libavutil}/tx.c | 0 {libavutil => ffmpeg-y/libavutil}/tx.h | 0 {libavutil => ffmpeg-y/libavutil}/utils.c | 0 {libavutil => ffmpeg-y/libavutil}/version.h | 0 .../libavutil}/wchar_filename.h | 0 .../libavutil}/x86/Makefile | 0 {libavutil => ffmpeg-y/libavutil}/x86/asm.h | 0 {libavutil => ffmpeg-y/libavutil}/x86/bswap.h | 0 {libavutil => ffmpeg-y/libavutil}/x86/cpu.c | 0 {libavutil => ffmpeg-y/libavutil}/x86/cpu.h | 0 {libavutil => ffmpeg-y/libavutil}/x86/emms.h | 0 .../libavutil}/x86/fixed_dsp_init.c | 0 .../libavutil}/x86/float_dsp_init.c | 0 .../libavutil}/x86/imgutils_init.c | 0 .../libavutil}/x86/intmath.h | 0 .../libavutil}/x86/intreadwrite.h | 0 .../libavutil}/x86/lls_init.c | 0 .../libavutil}/x86/pixelutils.h | 0 .../libavutil}/x86/pixelutils_init.c | 0 {libavutil => ffmpeg-y/libavutil}/x86/timer.h | 0 .../libavutil}/x86/w64xmmtest.h | 0 .../libavutil}/xga_font_data.c | 0 .../libavutil}/xga_font_data.h | 0 {libavutil => ffmpeg-y/libavutil}/xtea.c | 0 {libavutil => ffmpeg-y/libavutil}/xtea.h | 0 .../libpostproc}/Makefile | 0 .../libpostproc}/libpostproc.v | 0 .../libpostproc}/postprocess.c | 0 .../libpostproc}/postprocess.h | 0 .../postprocess_altivec_template.c | 0 .../libpostproc}/postprocess_internal.h | 0 .../libpostproc}/postprocess_template.c | 0 .../libpostproc}/postprocres.rc | 0 .../libpostproc}/version.h | 0 .../libswresample}/Makefile | 0 .../libswresample}/aarch64/Makefile | 0 .../aarch64/audio_convert_init.c | 0 .../aarch64/audio_convert_neon.S | 0 .../libswresample}/aarch64/neontest.c | 0 .../libswresample}/aarch64/resample.S | 0 .../libswresample}/aarch64/resample_init.c | 0 .../libswresample}/arm/Makefile | 0 .../libswresample}/arm/audio_convert_init.c | 0 .../libswresample}/arm/audio_convert_neon.S | 0 .../libswresample}/arm/neontest.c | 0 .../libswresample}/arm/resample.S | 0 .../libswresample}/arm/resample_init.c | 0 .../libswresample}/audioconvert.c | 0 .../libswresample}/audioconvert.h | 0 .../libswresample}/dither.c | 0 .../libswresample}/dither_template.c | 0 .../libswresample}/libswresample.v | 0 .../libswresample}/log2_tab.c | 0 .../libswresample}/noise_shaping_data.c | 0 .../libswresample}/options.c | 0 .../libswresample}/rematrix.c | 0 .../libswresample}/rematrix_template.c | 0 .../libswresample}/resample.c | 0 .../libswresample}/resample.h | 0 .../libswresample}/resample_dsp.c | 0 .../libswresample}/resample_template.c | 0 .../libswresample}/soxr_resample.c | 0 .../libswresample}/swresample.c | 0 .../libswresample}/swresample.h | 0 .../libswresample}/swresample_frame.c | 0 .../libswresample}/swresample_internal.h | 0 .../libswresample}/swresampleres.rc | 0 .../libswresample}/tests/swresample.c | 0 .../libswresample}/version.h | 0 .../libswresample}/x86/Makefile | 0 .../libswresample}/x86/audio_convert_init.c | 0 .../libswresample}/x86/rematrix_init.c | 0 .../libswresample}/x86/resample_init.c | 0 .../libswresample}/x86/w64xmmtest.c | 0 {libswscale => ffmpeg-y/libswscale}/Makefile | 0 .../libswscale}/aarch64/Makefile | 0 .../libswscale}/aarch64/hscale.S | 0 .../libswscale}/aarch64/output.S | 0 .../libswscale}/aarch64/swscale.c | 0 .../libswscale}/aarch64/swscale_unscaled.c | 0 .../libswscale}/aarch64/yuv2rgb_neon.S | 0 .../libswscale}/alphablend.c | 0 .../libswscale}/arm/Makefile | 0 .../libswscale}/arm/hscale.S | 0 .../libswscale}/arm/output.S | 0 .../libswscale}/arm/rgb2yuv_neon_16.S | 0 .../libswscale}/arm/rgb2yuv_neon_32.S | 0 .../libswscale}/arm/rgb2yuv_neon_common.S | 0 .../libswscale}/arm/swscale.c | 0 .../libswscale}/arm/swscale_unscaled.c | 0 .../libswscale}/arm/yuv2rgb_neon.S | 0 .../libswscale}/bayer_template.c | 0 {libswscale => ffmpeg-y/libswscale}/gamma.c | 0 {libswscale => ffmpeg-y/libswscale}/hscale.c | 0 .../libswscale}/hscale_fast_bilinear.c | 0 {libswscale => ffmpeg-y/libswscale}/input.c | 0 .../libswscale}/libswscale.v | 0 .../libswscale}/log2_tab.c | 0 {libswscale => ffmpeg-y/libswscale}/options.c | 0 {libswscale => ffmpeg-y/libswscale}/output.c | 0 .../libswscale}/ppc/Makefile | 0 .../libswscale}/ppc/swscale_altivec.c | 0 .../libswscale}/ppc/swscale_ppc_template.c | 0 .../libswscale}/ppc/swscale_vsx.c | 0 .../libswscale}/ppc/yuv2rgb_altivec.c | 0 .../libswscale}/ppc/yuv2rgb_altivec.h | 0 .../libswscale}/ppc/yuv2yuv_altivec.c | 0 {libswscale => ffmpeg-y/libswscale}/rgb2rgb.c | 0 {libswscale => ffmpeg-y/libswscale}/rgb2rgb.h | 0 .../libswscale}/rgb2rgb_template.c | 0 {libswscale => ffmpeg-y/libswscale}/slice.c | 0 {libswscale => ffmpeg-y/libswscale}/swscale.c | 0 {libswscale => ffmpeg-y/libswscale}/swscale.h | 0 .../libswscale}/swscale_internal.h | 0 .../libswscale}/swscale_unscaled.c | 0 .../libswscale}/swscaleres.rc | 0 .../libswscale}/tests/colorspace.c | 0 .../libswscale}/tests/pixdesc_query.c | 0 .../libswscale}/tests/swscale.c | 0 {libswscale => ffmpeg-y/libswscale}/utils.c | 0 {libswscale => ffmpeg-y/libswscale}/version.h | 0 {libswscale => ffmpeg-y/libswscale}/vscale.c | 0 .../libswscale}/x86/Makefile | 0 .../x86/hscale_fast_bilinear_simd.c | 0 .../libswscale}/x86/rgb2rgb.c | 0 .../libswscale}/x86/rgb2rgb_template.c | 0 .../libswscale}/x86/swscale.c | 0 .../libswscale}/x86/swscale_template.c | 0 .../libswscale}/x86/w64xmmtest.c | 0 .../libswscale}/x86/yuv2rgb.c | 0 .../libswscale}/x86/yuv2rgb_template.c | 0 {libswscale => ffmpeg-y/libswscale}/yuv2rgb.c | 0 .../presets}/libvpx-1080p.ffpreset | 0 .../presets}/libvpx-1080p50_60.ffpreset | 0 .../presets}/libvpx-360p.ffpreset | 0 .../presets}/libvpx-720p.ffpreset | 0 .../presets}/libvpx-720p50_60.ffpreset | 0 {tests => ffmpeg-y/tests}/Makefile | 0 {tests => ffmpeg-y/tests}/api/Makefile | 0 {tests => ffmpeg-y/tests}/api/api-band-test.c | 0 .../tests}/api/api-codec-param-test.c | 0 {tests => ffmpeg-y/tests}/api/api-flac-test.c | 0 .../tests}/api/api-h264-slice-test.c | 0 {tests => ffmpeg-y/tests}/api/api-h264-test.c | 0 {tests => ffmpeg-y/tests}/api/api-seek-test.c | 0 .../tests}/api/api-threadmessage-test.c | 0 {tests => ffmpeg-y/tests}/audiogen.c | 0 {tests => ffmpeg-y/tests}/audiomatch.c | 0 {tests => ffmpeg-y/tests}/base64.c | 0 {tests => ffmpeg-y/tests}/checkasm/Makefile | 0 {tests => ffmpeg-y/tests}/checkasm/aacpsdsp.c | 0 .../tests}/checkasm/aarch64/checkasm.S | 0 {tests => ffmpeg-y/tests}/checkasm/af_afir.c | 0 {tests => ffmpeg-y/tests}/checkasm/alacdsp.c | 0 .../tests}/checkasm/arm/checkasm.S | 0 {tests => ffmpeg-y/tests}/checkasm/audiodsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/blockdsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/bswapdsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/checkasm.c | 0 {tests => ffmpeg-y/tests}/checkasm/checkasm.h | 0 {tests => ffmpeg-y/tests}/checkasm/exrdsp.c | 0 .../tests}/checkasm/fixed_dsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/flacdsp.c | 0 .../tests}/checkasm/float_dsp.c | 0 .../tests}/checkasm/fmtconvert.c | 0 {tests => ffmpeg-y/tests}/checkasm/g722dsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/h264dsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/h264pred.c | 0 {tests => ffmpeg-y/tests}/checkasm/h264qpel.c | 0 .../tests}/checkasm/hevc_add_res.c | 0 .../tests}/checkasm/hevc_idct.c | 0 {tests => ffmpeg-y/tests}/checkasm/hevc_sao.c | 0 .../tests}/checkasm/huffyuvdsp.c | 0 .../tests}/checkasm/jpeg2000dsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/llviddsp.c | 0 .../tests}/checkasm/llviddspenc.c | 0 .../tests}/checkasm/pixblockdsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/sbrdsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/sw_rgb.c | 0 .../tests}/checkasm/synth_filter.c | 0 .../tests}/checkasm/utvideodsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/v210dec.c | 0 {tests => ffmpeg-y/tests}/checkasm/v210enc.c | 0 {tests => ffmpeg-y/tests}/checkasm/vf_blend.c | 0 .../tests}/checkasm/vf_colorspace.c | 0 {tests => ffmpeg-y/tests}/checkasm/vf_gblur.c | 0 {tests => ffmpeg-y/tests}/checkasm/vf_hflip.c | 0 .../tests}/checkasm/vf_nlmeans.c | 0 .../tests}/checkasm/vf_threshold.c | 0 {tests => ffmpeg-y/tests}/checkasm/videodsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/vp8dsp.c | 0 {tests => ffmpeg-y/tests}/checkasm/vp9dsp.c | 0 {tests => ffmpeg-y/tests}/copycooker.sh | 0 {tests => ffmpeg-y/tests}/extended.ffconcat | 0 {tests => ffmpeg-y/tests}/fate-run.sh | 0 {tests => ffmpeg-y/tests}/fate-valgrind.supp | 0 {tests => ffmpeg-y/tests}/fate.sh | 0 {tests => ffmpeg-y/tests}/fate/aac.mak | 0 {tests => ffmpeg-y/tests}/fate/ac3.mak | 0 {tests => ffmpeg-y/tests}/fate/acodec.mak | 0 {tests => ffmpeg-y/tests}/fate/adpcm.mak | 0 {tests => ffmpeg-y/tests}/fate/alac.mak | 0 {tests => ffmpeg-y/tests}/fate/als.mak | 0 {tests => ffmpeg-y/tests}/fate/amrnb.mak | 0 {tests => ffmpeg-y/tests}/fate/amrwb.mak | 0 {tests => ffmpeg-y/tests}/fate/api.mak | 0 {tests => ffmpeg-y/tests}/fate/apng.mak | 0 {tests => ffmpeg-y/tests}/fate/atrac.mak | 0 {tests => ffmpeg-y/tests}/fate/audio.mak | 0 {tests => ffmpeg-y/tests}/fate/bmp.mak | 0 {tests => ffmpeg-y/tests}/fate/build.mak | 0 {tests => ffmpeg-y/tests}/fate/canopus.mak | 0 {tests => ffmpeg-y/tests}/fate/cbs.mak | 0 {tests => ffmpeg-y/tests}/fate/cdxl.mak | 0 {tests => ffmpeg-y/tests}/fate/checkasm.mak | 0 {tests => ffmpeg-y/tests}/fate/concatdec.mak | 0 {tests => ffmpeg-y/tests}/fate/cover-art.mak | 0 {tests => ffmpeg-y/tests}/fate/dca.mak | 0 {tests => ffmpeg-y/tests}/fate/demux.mak | 0 {tests => ffmpeg-y/tests}/fate/dfa.mak | 0 {tests => ffmpeg-y/tests}/fate/dnxhd.mak | 0 {tests => ffmpeg-y/tests}/fate/dpcm.mak | 0 {tests => ffmpeg-y/tests}/fate/ea.mak | 0 {tests => ffmpeg-y/tests}/fate/exif.mak | 0 {tests => ffmpeg-y/tests}/fate/ffmpeg.mak | 0 {tests => ffmpeg-y/tests}/fate/ffprobe.mak | 0 {tests => ffmpeg-y/tests}/fate/fft.mak | 0 {tests => ffmpeg-y/tests}/fate/fifo-muxer.mak | 0 .../tests}/fate/filter-audio.mak | 0 .../tests}/fate/filter-video.mak | 0 {tests => ffmpeg-y/tests}/fate/fits.mak | 0 {tests => ffmpeg-y/tests}/fate/flac.mak | 0 {tests => ffmpeg-y/tests}/fate/flvenc.mak | 0 {tests => ffmpeg-y/tests}/fate/gapless.mak | 0 {tests => ffmpeg-y/tests}/fate/gif.mak | 0 {tests => ffmpeg-y/tests}/fate/h264.mak | 0 {tests => ffmpeg-y/tests}/fate/hap.mak | 0 {tests => ffmpeg-y/tests}/fate/hevc.mak | 0 {tests => ffmpeg-y/tests}/fate/hlsenc.mak | 0 {tests => ffmpeg-y/tests}/fate/hw.mak | 0 {tests => ffmpeg-y/tests}/fate/id3v2.mak | 0 {tests => ffmpeg-y/tests}/fate/image.mak | 0 {tests => ffmpeg-y/tests}/fate/indeo.mak | 0 {tests => ffmpeg-y/tests}/fate/lavf-audio.mak | 0 .../tests}/fate/lavf-container.mak | 0 {tests => ffmpeg-y/tests}/fate/lavf-image.mak | 0 .../tests}/fate/lavf-image2pipe.mak | 0 {tests => ffmpeg-y/tests}/fate/lavf-video.mak | 0 {tests => ffmpeg-y/tests}/fate/libavcodec.mak | 0 .../tests}/fate/libavdevice.mak | 0 .../tests}/fate/libavformat.mak | 0 .../tests}/fate/libavresample.mak | 0 {tests => ffmpeg-y/tests}/fate/libavutil.mak | 0 .../tests}/fate/libswresample.mak | 0 {tests => ffmpeg-y/tests}/fate/libswscale.mak | 0 .../tests}/fate/lossless-audio.mak | 0 .../tests}/fate/lossless-video.mak | 0 {tests => ffmpeg-y/tests}/fate/matroska.mak | 0 {tests => ffmpeg-y/tests}/fate/microsoft.mak | 0 .../tests}/fate/monkeysaudio.mak | 0 {tests => ffmpeg-y/tests}/fate/mov.mak | 0 {tests => ffmpeg-y/tests}/fate/mp3.mak | 0 {tests => ffmpeg-y/tests}/fate/mpc.mak | 0 {tests => ffmpeg-y/tests}/fate/mpeg4.mak | 0 {tests => ffmpeg-y/tests}/fate/mpegps.mak | 0 {tests => ffmpeg-y/tests}/fate/mpegts.mak | 0 {tests => ffmpeg-y/tests}/fate/mxf.mak | 0 {tests => ffmpeg-y/tests}/fate/opus.mak | 0 {tests => ffmpeg-y/tests}/fate/pcm.mak | 0 {tests => ffmpeg-y/tests}/fate/pixfmt.mak | 0 {tests => ffmpeg-y/tests}/fate/pixlet.mak | 0 {tests => ffmpeg-y/tests}/fate/probe.mak | 0 {tests => ffmpeg-y/tests}/fate/prores.mak | 0 {tests => ffmpeg-y/tests}/fate/qt.mak | 0 {tests => ffmpeg-y/tests}/fate/qtrle.mak | 0 {tests => ffmpeg-y/tests}/fate/real.mak | 0 {tests => ffmpeg-y/tests}/fate/screen.mak | 0 {tests => ffmpeg-y/tests}/fate/seek.mak | 0 {tests => ffmpeg-y/tests}/fate/segment.mak | 0 .../tests}/fate/source-check.sh | 0 {tests => ffmpeg-y/tests}/fate/source.mak | 0 {tests => ffmpeg-y/tests}/fate/speedhq.mak | 0 {tests => ffmpeg-y/tests}/fate/subtitles.mak | 0 {tests => ffmpeg-y/tests}/fate/utvideo.mak | 0 {tests => ffmpeg-y/tests}/fate/vcodec.mak | 0 {tests => ffmpeg-y/tests}/fate/video.mak | 0 {tests => ffmpeg-y/tests}/fate/voice.mak | 0 {tests => ffmpeg-y/tests}/fate/vorbis.mak | 0 {tests => ffmpeg-y/tests}/fate/vpx.mak | 0 {tests => ffmpeg-y/tests}/fate/vqf.mak | 0 {tests => ffmpeg-y/tests}/fate/wavpack.mak | 0 {tests => ffmpeg-y/tests}/fate/wma.mak | 0 {tests => ffmpeg-y/tests}/fate/xvid.mak | 0 .../filtergraphs/alphamerge_alphaextract_rgb | 0 .../filtergraphs/alphamerge_alphaextract_yuv | 0 .../tests}/filtergraphs/anequalizer | 0 .../tests}/filtergraphs/channelmap_one_int | 0 .../tests}/filtergraphs/channelmap_one_str | 0 .../tests}/filtergraphs/colorkey | 0 .../tests}/filtergraphs/compand | 0 {tests => ffmpeg-y/tests}/filtergraphs/concat | 0 .../tests}/filtergraphs/firequalizer | 0 .../tests}/filtergraphs/gradfun | 0 {tests => ffmpeg-y/tests}/filtergraphs/hqdn3d | 0 {tests => ffmpeg-y/tests}/filtergraphs/hstack | 0 .../tests}/filtergraphs/lavr_mix_output_zero | 0 .../tests}/filtergraphs/mergeplanes | 0 .../tests}/filtergraphs/overlay | 0 .../tests}/filtergraphs/overlay-dvdsub-2397 | 0 .../tests}/filtergraphs/overlay_nv12 | 0 .../tests}/filtergraphs/overlay_nv21 | 0 .../tests}/filtergraphs/overlay_rgb | 0 .../tests}/filtergraphs/overlay_yuv420 | 0 .../tests}/filtergraphs/overlay_yuv422 | 0 .../tests}/filtergraphs/overlay_yuv444 | 0 .../tests}/filtergraphs/scale2ref_keep_aspect | 0 .../tests}/filtergraphs/scalenorm | 0 .../tests}/filtergraphs/select-alternate | 0 {tests => ffmpeg-y/tests}/filtergraphs/setpts | 0 {tests => ffmpeg-y/tests}/filtergraphs/vstack | 0 {tests => ffmpeg-y/tests}/md5.sh | 0 .../tests}/ref/acodec/adpcm-adx | 0 .../tests}/ref/acodec/adpcm-adx-trellis | 0 .../tests}/ref/acodec/adpcm-ima_qt | 0 .../tests}/ref/acodec/adpcm-ima_qt-trellis | 0 .../tests}/ref/acodec/adpcm-ima_wav | 0 .../tests}/ref/acodec/adpcm-ima_wav-trellis | 0 {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ms | 0 .../tests}/ref/acodec/adpcm-ms-trellis | 0 .../tests}/ref/acodec/adpcm-swf | 0 .../tests}/ref/acodec/adpcm-swf-trellis | 0 .../tests}/ref/acodec/adpcm-yamaha | 0 .../tests}/ref/acodec/adpcm-yamaha-trellis | 0 .../tests}/ref/acodec/adpcm_ima_qt | 0 {tests => ffmpeg-y/tests}/ref/acodec/alac | 0 {tests => ffmpeg-y/tests}/ref/acodec/flac | 0 .../tests}/ref/acodec/flac-exact-rice | 0 {tests => ffmpeg-y/tests}/ref/acodec/g723_1 | 0 {tests => ffmpeg-y/tests}/ref/acodec/mp2 | 0 {tests => ffmpeg-y/tests}/ref/acodec/mp2fixed | 0 {tests => ffmpeg-y/tests}/ref/acodec/pcm-alaw | 0 .../tests}/ref/acodec/pcm-f32be | 0 .../tests}/ref/acodec/pcm-f32le | 0 .../tests}/ref/acodec/pcm-f64be | 0 .../tests}/ref/acodec/pcm-f64le | 0 .../tests}/ref/acodec/pcm-mulaw | 0 .../tests}/ref/acodec/pcm-s16be | 0 .../tests}/ref/acodec/pcm-s16be_planar | 0 .../tests}/ref/acodec/pcm-s16le | 0 .../tests}/ref/acodec/pcm-s16le_planar | 0 .../tests}/ref/acodec/pcm-s24be | 0 .../tests}/ref/acodec/pcm-s24le | 0 .../tests}/ref/acodec/pcm-s24le_planar | 0 .../tests}/ref/acodec/pcm-s32be | 0 .../tests}/ref/acodec/pcm-s32le | 0 .../tests}/ref/acodec/pcm-s32le_planar | 0 {tests => ffmpeg-y/tests}/ref/acodec/pcm-s8 | 0 .../tests}/ref/acodec/pcm-s8_planar | 0 .../tests}/ref/acodec/pcm-u16be | 0 .../tests}/ref/acodec/pcm-u16le | 0 .../tests}/ref/acodec/pcm-u24be | 0 .../tests}/ref/acodec/pcm-u24le | 0 .../tests}/ref/acodec/pcm-u32be | 0 .../tests}/ref/acodec/pcm-u32le | 0 {tests => ffmpeg-y/tests}/ref/acodec/pcm-u8 | 0 {tests => ffmpeg-y/tests}/ref/acodec/roqaudio | 0 {tests => ffmpeg-y/tests}/ref/acodec/s302m | 0 {tests => ffmpeg-y/tests}/ref/acodec/tta | 0 {tests => ffmpeg-y/tests}/ref/acodec/wavpack | 0 {tests => ffmpeg-y/tests}/ref/fate/012v | 0 {tests => ffmpeg-y/tests}/ref/fate/4xm-1 | 0 {tests => ffmpeg-y/tests}/ref/fate/4xm-2 | 0 {tests => ffmpeg-y/tests}/ref/fate/8bps | 0 .../tests}/ref/fate/aac-autobsf-adtstoasc | 0 {tests => ffmpeg-y/tests}/ref/fate/aasc | 0 .../tests}/ref/fate/acodec-aref | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-4xm | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-afc | 0 .../tests}/ref/fate/adpcm-creative | 0 .../tests}/ref/fate/adpcm-creative-8-2.6bit | 0 .../tests}/ref/fate/adpcm-creative-8-2bit | 0 .../tests}/ref/fate/adpcm-creative-8-4bit | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-dtk | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-1 | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-2 | 0 .../tests}/ref/fate/adpcm-ea-maxis-xa | 0 .../tests}/ref/fate/adpcm-ea-r1 | 0 .../tests}/ref/fate/adpcm-ea-r2 | 0 .../tests}/ref/fate/adpcm-ea-r3 | 0 .../tests}/ref/fate/adpcm-ima-amv | 0 .../tests}/ref/fate/adpcm-ima-apc | 0 .../tests}/ref/fate/adpcm-ima-dk3 | 0 .../tests}/ref/fate/adpcm-ima-dk4 | 0 .../tests}/ref/fate/adpcm-ima-ea-eacs | 0 .../tests}/ref/fate/adpcm-ima-ea-sead | 0 .../tests}/ref/fate/adpcm-ima-iss | 0 .../tests}/ref/fate/adpcm-ima-oki | 0 .../tests}/ref/fate/adpcm-ima-rad | 0 .../tests}/ref/fate/adpcm-ima-smjpeg | 0 .../tests}/ref/fate/adpcm-ima-ws | 0 .../tests}/ref/fate/adpcm-ima_wav-stereo | 0 .../tests}/ref/fate/adpcm-ms-mono | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-thp | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-vima | 0 {tests => ffmpeg-y/tests}/ref/fate/adpcm-xa | 0 .../tests}/ref/fate/adpcm_ms-stereo | 0 {tests => ffmpeg-y/tests}/ref/fate/adts-demux | 0 .../tests}/ref/fate/adts-id3v1-demux | 0 .../tests}/ref/fate/adts-id3v2-demux | 0 .../tests}/ref/fate/adts-id3v2-two-tags-demux | 0 .../tests}/ref/fate/adtstoasc_ticket3715 | 0 {tests => ffmpeg-y/tests}/ref/fate/aea-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/aic | 0 .../tests}/ref/fate/aic-oddsize | 0 {tests => ffmpeg-y/tests}/ref/fate/alg-mm | 0 .../tests}/ref/fate/aliaspix-bgr | 0 .../tests}/ref/fate/aliaspix-gray | 0 {tests => ffmpeg-y/tests}/ref/fate/amv | 0 {tests => ffmpeg-y/tests}/ref/fate/ansi | 0 {tests => ffmpeg-y/tests}/ref/fate/ansi256 | 0 {tests => ffmpeg-y/tests}/ref/fate/api-h264 | 0 .../tests}/ref/fate/api-h264-slice | 0 .../tests}/ref/fate/api-mjpeg-codec-param | 0 .../tests}/ref/fate/api-png-codec-param | 0 {tests => ffmpeg-y/tests}/ref/fate/apng-clock | 0 .../tests}/ref/fate/apng-osample | 0 .../tests}/ref/fate/armovie-escape124 | 0 .../tests}/ref/fate/armovie-escape130 | 0 .../tests}/ref/fate/asf-repldata | 0 {tests => ffmpeg-y/tests}/ref/fate/ast | 0 {tests => ffmpeg-y/tests}/ref/fate/async | 0 {tests => ffmpeg-y/tests}/ref/fate/audio_fifo | 0 .../audiomatch-afconvert-16000-mono-he-adts | 0 .../audiomatch-afconvert-16000-mono-he-m4a | 0 .../audiomatch-afconvert-16000-mono-lc-adts | 0 .../audiomatch-afconvert-16000-mono-lc-m4a | 0 .../audiomatch-afconvert-16000-stereo-he-adts | 0 .../audiomatch-afconvert-16000-stereo-he-m4a | 0 ...audiomatch-afconvert-16000-stereo-he2-adts | 0 .../audiomatch-afconvert-16000-stereo-he2-m4a | 0 .../audiomatch-afconvert-16000-stereo-lc-adts | 0 .../audiomatch-afconvert-16000-stereo-lc-m4a | 0 .../audiomatch-afconvert-44100-mono-he-adts | 0 .../audiomatch-afconvert-44100-mono-he-m4a | 0 .../audiomatch-afconvert-44100-mono-lc-adts | 0 .../audiomatch-afconvert-44100-mono-lc-m4a | 0 .../audiomatch-afconvert-44100-stereo-he-adts | 0 .../audiomatch-afconvert-44100-stereo-he-m4a | 0 ...audiomatch-afconvert-44100-stereo-he2-adts | 0 .../audiomatch-afconvert-44100-stereo-he2-m4a | 0 .../audiomatch-afconvert-44100-stereo-lc-adts | 0 .../audiomatch-afconvert-44100-stereo-lc-m4a | 0 .../fate/audiomatch-dolby-44100-mono-he-mp4 | 0 .../fate/audiomatch-dolby-44100-mono-lc-mp4 | 0 .../fate/audiomatch-dolby-44100-stereo-he-mp4 | 0 .../audiomatch-dolby-44100-stereo-he2-mp4 | 0 .../fate/audiomatch-dolby-44100-stereo-lc-mp4 | 0 .../fate/audiomatch-faac-16000-mono-lc-adts | 0 .../fate/audiomatch-faac-16000-mono-lc-m4a | 0 .../fate/audiomatch-faac-16000-stereo-lc-adts | 0 .../fate/audiomatch-faac-16000-stereo-lc-m4a | 0 .../fate/audiomatch-faac-44100-mono-lc-adts | 0 .../fate/audiomatch-faac-44100-mono-lc-m4a | 0 .../fate/audiomatch-faac-44100-stereo-lc-adts | 0 .../fate/audiomatch-faac-44100-stereo-lc-m4a | 0 .../fate/audiomatch-nero-16000-mono-he-m4a | 0 .../fate/audiomatch-nero-16000-mono-lc-m4a | 0 .../fate/audiomatch-nero-16000-stereo-he-m4a | 0 .../fate/audiomatch-nero-16000-stereo-he2-m4a | 0 .../fate/audiomatch-nero-16000-stereo-lc-m4a | 0 .../fate/audiomatch-nero-44100-mono-he-m4a | 0 .../fate/audiomatch-nero-44100-mono-lc-m4a | 0 .../fate/audiomatch-nero-44100-stereo-he-m4a | 0 .../fate/audiomatch-nero-44100-stereo-he2-m4a | 0 .../fate/audiomatch-nero-44100-stereo-lc-m4a | 0 .../audiomatch-quicktime7-44100-stereo-lc-mp4 | 0 .../audiomatch-quicktimeX-44100-stereo-lc-m4a | 0 .../tests}/ref/fate/audiomatch-square-aac | 0 .../tests}/ref/fate/audiomatch-square-mp3 | 0 .../tests}/ref/fate/auravision-v1 | 0 .../tests}/ref/fate/auravision-v2 | 0 .../tests}/ref/fate/avio-direct | 0 {tests => ffmpeg-y/tests}/ref/fate/avstring | 0 {tests => ffmpeg-y/tests}/ref/fate/base64 | 0 {tests => ffmpeg-y/tests}/ref/fate/bcstm | 0 .../tests}/ref/fate/bethsoft-vid | 0 {tests => ffmpeg-y/tests}/ref/fate/bfi | 0 {tests => ffmpeg-y/tests}/ref/fate/bfstm | 0 {tests => ffmpeg-y/tests}/ref/fate/bink-demux | 0 .../tests}/ref/fate/bink-video-b | 0 .../tests}/ref/fate/bink-video-f | 0 .../tests}/ref/fate/bink-video-i | 0 .../tests}/ref/fate/binsub-mksenc | 0 .../tests}/ref/fate/binsub-movtextenc | 0 {tests => ffmpeg-y/tests}/ref/fate/blowfish | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-15bit | 0 .../tests}/ref/fate/bmp-15bit-mask | 0 .../tests}/ref/fate/bmp-16bit-mask | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-1bit | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-24bit | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-32bit | 0 .../tests}/ref/fate/bmp-32bit-mask | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-4bit | 0 .../tests}/ref/fate/bmp-4bit-os2 | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-8bit | 0 .../tests}/ref/fate/bmp-8bit-os2 | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-rle4 | 0 {tests => ffmpeg-y/tests}/ref/fate/bmp-rle8 | 0 {tests => ffmpeg-y/tests}/ref/fate/bmpparser | 0 {tests => ffmpeg-y/tests}/ref/fate/bmv-audio | 0 {tests => ffmpeg-y/tests}/ref/fate/bmv-video | 0 {tests => ffmpeg-y/tests}/ref/fate/bprint | 0 .../tests}/ref/fate/brenderpix-24 | 0 .../tests}/ref/fate/brenderpix-565 | 0 .../tests}/ref/fate/brenderpix-defpal | 0 .../tests}/ref/fate/brenderpix-intpal | 0 .../tests}/ref/fate/brenderpix-y400a | 0 {tests => ffmpeg-y/tests}/ref/fate/brstm | 0 {tests => ffmpeg-y/tests}/ref/fate/caf | 0 .../tests}/ref/fate/canopus-cllc-argb | 0 .../tests}/ref/fate/canopus-cllc-rgb | 0 .../tests}/ref/fate/canopus-cllc-yuy2-noblock | 0 .../tests}/ref/fate/canopus-hq_hqa-hq | 0 .../tests}/ref/fate/canopus-hq_hqa-hqa | 0 .../tests}/ref/fate/canopus-hq_hqa-inter | 0 .../tests}/ref/fate/canopus-hqx422 | 0 .../tests}/ref/fate/canopus-hqx422a | 0 {tests => ffmpeg-y/tests}/ref/fate/cavs | 0 .../tests}/ref/fate/cbs-h264-AUD_MW_E | 0 .../tests}/ref/fate/cbs-h264-BASQP1_Sony_C | 0 .../tests}/ref/fate/cbs-h264-CABACI3_Sony_B | 0 .../tests}/ref/fate/cbs-h264-CVBS3_Sony_C | 0 .../tests}/ref/fate/cbs-h264-CVFC1_Sony_C | 0 .../ref/fate/cbs-h264-CVMANL1_TOSHIBA_B | 0 .../tests}/ref/fate/cbs-h264-CVNLFI1_Sony_C | 0 .../tests}/ref/fate/cbs-h264-CVSE2_Sony_B | 0 .../tests}/ref/fate/cbs-h264-CVWP1_TOSHIBA_E | 0 .../tests}/ref/fate/cbs-h264-FM1_BT_B | 0 .../tests}/ref/fate/cbs-h264-MR1_BT_A | 0 .../tests}/ref/fate/cbs-h264-SVA_Base_B | 0 .../ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 | 0 .../tests}/ref/fate/cbs-h264-sei-1 | 0 .../tests}/ref/fate/cbs-h264-sp1_bt_a | 0 .../tests}/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 | 0 .../tests}/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 | 0 .../tests}/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 | 0 .../tests}/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 | 0 .../ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 | 0 .../tests}/ref/fate/cbs-hevc-NUT_A_ericsson_5 | 0 .../ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 | 0 .../ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 | 0 .../ref/fate/cbs-hevc-RPLM_A_qualcomm_4 | 0 .../tests}/ref/fate/cbs-hevc-RPS_A_docomo_4 | 0 .../tests}/ref/fate/cbs-hevc-RPS_E_qualcomm_5 | 0 .../tests}/ref/fate/cbs-hevc-SLIST_A_Sony_4 | 0 .../tests}/ref/fate/cbs-hevc-SLIST_D_Sony_9 | 0 .../tests}/ref/fate/cbs-hevc-SLPPLP_A_VIDYO_2 | 0 .../ref/fate/cbs-hevc-STRUCT_A_Samsung_5 | 0 .../tests}/ref/fate/cbs-hevc-TILES_B_Cisco_1 | 0 .../ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 | 0 .../ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 | 0 .../tests}/ref/fate/cbs-hevc-WP_A_Toshiba_3 | 0 .../tests}/ref/fate/cbs-hevc-ipcm_E_NEC_2 | 0 .../ref/fate/cbs-mpeg2-hhi_burst_422_short | 0 .../tests}/ref/fate/cbs-mpeg2-sony-ct3 | 0 .../tests}/ref/fate/cbs-mpeg2-tcela-6 | 0 .../tests}/ref/fate/cbs-vp9-vp90-2-03-deltaq | 0 .../tests}/ref/fate/cbs-vp9-vp90-2-05-resize | 0 .../ref/fate/cbs-vp9-vp90-2-06-bilinear | 0 .../ref/fate/cbs-vp9-vp90-2-09-lf_deltas | 0 .../cbs-vp9-vp90-2-10-show-existing-frame | 0 .../cbs-vp9-vp90-2-10-show-existing-frame2 | 0 .../fate/cbs-vp9-vp90-2-segmentation-aq-akiyo | 0 .../fate/cbs-vp9-vp90-2-segmentation-sf-akiyo | 0 .../ref/fate/cbs-vp9-vp90-2-tiling-pedestrian | 0 .../tests}/ref/fate/cbs-vp9-vp91-2-04-yuv440 | 0 .../tests}/ref/fate/cbs-vp9-vp91-2-04-yuv444 | 0 .../ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 | 0 .../ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 | 0 .../ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 | 0 {tests => ffmpeg-y/tests}/ref/fate/cdgraphics | 0 .../tests}/ref/fate/cdxl-bitline-ham6 | 0 {tests => ffmpeg-y/tests}/ref/fate/cdxl-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/cdxl-ham6 | 0 {tests => ffmpeg-y/tests}/ref/fate/cdxl-ham8 | 0 {tests => ffmpeg-y/tests}/ref/fate/cdxl-pal8 | 0 .../tests}/ref/fate/cdxl-pal8-small | 0 {tests => ffmpeg-y/tests}/ref/fate/cfhd-1 | 0 {tests => ffmpeg-y/tests}/ref/fate/cfhd-2 | 0 {tests => ffmpeg-y/tests}/ref/fate/cfhd-3 | 0 {tests => ffmpeg-y/tests}/ref/fate/cine-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/cljr | 0 .../tests}/ref/fate/color_utils | 0 .../ref/fate/concat-demuxer-extended-lavf-mxf | 0 .../fate/concat-demuxer-extended-lavf-mxf_d10 | 0 .../ref/fate/concat-demuxer-simple1-lavf-mxf | 0 .../fate/concat-demuxer-simple1-lavf-mxf_d10 | 0 .../ref/fate/concat-demuxer-simple2-lavf-ts | 0 {tests => ffmpeg-y/tests}/ref/fate/copy-apng | 0 {tests => ffmpeg-y/tests}/ref/fate/copy-psp | 0 .../tests}/ref/fate/copy-trac2211-avi | 0 .../tests}/ref/fate/copy-trac236 | 0 .../tests}/ref/fate/copy-trac3074 | 0 .../tests}/ref/fate/copy-trac4914 | 0 .../tests}/ref/fate/copy-trac4914-avi | 0 {tests => ffmpeg-y/tests}/ref/fate/corepng | 0 {tests => ffmpeg-y/tests}/ref/fate/crc | 0 .../tests}/ref/fate/creatureshock-avs | 0 {tests => ffmpeg-y/tests}/ref/fate/cscd | 0 .../tests}/ref/fate/cvid-grayscale | 0 .../tests}/ref/fate/cvid-palette | 0 .../tests}/ref/fate/cvid-partial | 0 .../tests}/ref/fate/cyberia-c93 | 0 {tests => ffmpeg-y/tests}/ref/fate/cyuv | 0 .../tests}/ref/fate/d-cinema-demux | 0 .../tests}/ref/fate/d-eavp6-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/dca-xll | 0 .../tests}/ref/fate/dca-xll_51_16_192_768_0 | 0 .../ref/fate/dca-xll_51_16_192_768_0-dmix_2 | 0 .../ref/fate/dca-xll_51_16_192_768_0-dmix_6 | 0 .../tests}/ref/fate/dca-xll_51_16_192_768_1 | 0 .../ref/fate/dca-xll_51_16_192_768_1-dmix_2 | 0 .../ref/fate/dca-xll_51_16_192_768_1-dmix_6 | 0 .../tests}/ref/fate/dca-xll_51_24_48_768 | 0 .../ref/fate/dca-xll_51_24_48_768-dmix_2 | 0 .../ref/fate/dca-xll_51_24_48_768-dmix_6 | 0 .../tests}/ref/fate/dca-xll_51_24_48_none | 0 .../ref/fate/dca-xll_51_24_48_none-dmix_2 | 0 .../ref/fate/dca-xll_51_24_48_none-dmix_6 | 0 .../tests}/ref/fate/dca-xll_71_24_48_768_0 | 0 .../ref/fate/dca-xll_71_24_48_768_0-dmix_2 | 0 .../ref/fate/dca-xll_71_24_48_768_0-dmix_6 | 0 .../tests}/ref/fate/dca-xll_71_24_48_768_1 | 0 .../ref/fate/dca-xll_71_24_48_768_1-dmix_2 | 0 .../ref/fate/dca-xll_71_24_48_768_1-dmix_6 | 0 .../tests}/ref/fate/dca-xll_71_24_96_768 | 0 .../ref/fate/dca-xll_71_24_96_768-dmix_2 | 0 .../ref/fate/dca-xll_71_24_96_768-dmix_6 | 0 .../tests}/ref/fate/dca-xll_x96_51_24_96_1509 | 0 .../ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 | 0 .../ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 | 0 .../tests}/ref/fate/dca-xll_xch_61_24_48_768 | 0 .../ref/fate/dca-xll_xch_61_24_48_768-dmix_2 | 0 .../ref/fate/dca-xll_xch_61_24_48_768-dmix_6 | 0 .../tests}/ref/fate/dcinema-encode | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-alpha8 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-argb | 0 .../tests}/ref/fate/dds-argb-aexp | 0 .../tests}/ref/fate/dds-dx10-bc1 | 0 .../tests}/ref/fate/dds-dx10-bc1a | 0 .../tests}/ref/fate/dds-dx10-bc2 | 0 .../tests}/ref/fate/dds-dx10-bc3 | 0 .../tests}/ref/fate/dds-dx10-bc4 | 0 .../tests}/ref/fate/dds-dx10-bc5 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-dxt1 | 0 .../tests}/ref/fate/dds-dxt1-normalmap | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-dxt1a | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-dxt2 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-dxt3 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-dxt4 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5 | 0 .../tests}/ref/fate/dds-dxt5-aexp | 0 .../tests}/ref/fate/dds-dxt5-normalmap | 0 .../tests}/ref/fate/dds-dxt5-normalmap-ati | 0 .../tests}/ref/fate/dds-dxt5-rbxg | 0 .../tests}/ref/fate/dds-dxt5-rgxb | 0 .../tests}/ref/fate/dds-dxt5-rxbg | 0 .../tests}/ref/fate/dds-dxt5-rxgb | 0 .../tests}/ref/fate/dds-dxt5-xgbr | 0 .../tests}/ref/fate/dds-dxt5-xgxr | 0 .../tests}/ref/fate/dds-dxt5-xrbg | 0 .../tests}/ref/fate/dds-dxt5-ycocg | 0 .../tests}/ref/fate/dds-dxt5-ycocg-scaled | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-monob | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-pal | 0 .../tests}/ref/fate/dds-pal-ati | 0 .../tests}/ref/fate/dds-rgb1555 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgb16 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgb24 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgb555 | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgba | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc1s | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc1u | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc2s | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc2u | 0 .../tests}/ref/fate/dds-rgtc2u-xy | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-uyvy | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-xbgr | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-xrgb | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-y | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-ya | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-ycocg | 0 {tests => ffmpeg-y/tests}/ref/fate/dds-yuyv | 0 .../tests}/ref/fate/delphine-cin-audio | 0 .../tests}/ref/fate/delphine-cin-video | 0 .../tests}/ref/fate/deluxepaint-anm | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa1 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa10 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa11 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa2 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa3 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa4 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa5 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa6 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa7 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa8 | 0 {tests => ffmpeg-y/tests}/ref/fate/dfa9 | 0 {tests => ffmpeg-y/tests}/ref/fate/dict | 0 {tests => ffmpeg-y/tests}/ref/fate/dirac | 0 .../tests}/ref/fate/dirac-low-delay | 0 {tests => ffmpeg-y/tests}/ref/fate/display | 0 .../tests}/ref/fate/dnxhd-mbaff | 0 .../tests}/ref/fate/dnxhr-12bit | 0 {tests => ffmpeg-y/tests}/ref/fate/dnxhr-444 | 0 .../tests}/ref/fate/dnxhr-parse | 0 .../tests}/ref/fate/dnxhr-prefix1 | 0 .../tests}/ref/fate/dnxhr-prefix2 | 0 .../tests}/ref/fate/dnxhr-prefix3 | 0 .../tests}/ref/fate/dnxhr-prefix4 | 0 .../tests}/ref/fate/dnxhr-prefix5 | 0 {tests => ffmpeg-y/tests}/ref/fate/dpcm-idroq | 0 .../tests}/ref/fate/dpcm-interplay | 0 .../tests}/ref/fate/dpcm-sierra | 0 {tests => ffmpeg-y/tests}/ref/fate/dpcm-xan | 0 {tests => ffmpeg-y/tests}/ref/fate/dpx | 0 {tests => ffmpeg-y/tests}/ref/fate/dpxparser | 0 {tests => ffmpeg-y/tests}/ref/fate/dss-lp | 0 {tests => ffmpeg-y/tests}/ref/fate/dss-sp | 0 {tests => ffmpeg-y/tests}/ref/fate/dxa-feeble | 0 .../tests}/ref/fate/dxa-scummvm | 0 {tests => ffmpeg-y/tests}/ref/fate/dxtory | 0 {tests => ffmpeg-y/tests}/ref/fate/dxv-dxt1 | 0 {tests => ffmpeg-y/tests}/ref/fate/dxv-dxt5 | 0 {tests => ffmpeg-y/tests}/ref/fate/dxv3-dxt1 | 0 {tests => ffmpeg-y/tests}/ref/fate/dxv3-dxt5 | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-cdata | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-cmv | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-mad | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-tgq | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-tgv-1 | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-tgv-2 | 0 {tests => ffmpeg-y/tests}/ref/fate/ea-tqi | 0 {tests => ffmpeg-y/tests}/ref/fate/eval | 0 .../tests}/ref/fate/exif-image-embedded | 0 .../tests}/ref/fate/exif-image-jpg | 0 .../tests}/ref/fate/exif-image-tiff | 0 .../tests}/ref/fate/exif-image-webp | 0 .../ref/fate/exr-rgb-b44a-half-negative-4x4 | 0 .../exr-rgb-scanline-b44-half-float-12x8-l1 | 0 .../exr-rgb-scanline-b44-half-float-12x8-l2 | 0 .../ref/fate/exr-rgb-scanline-b44-uint32 | 0 .../ref/fate/exr-rgb-scanline-float-b44 | 0 .../ref/fate/exr-rgb-scanline-float-piz-48x32 | 0 .../ref/fate/exr-rgb-scanline-half-b44-12x8 | 0 .../ref/fate/exr-rgb-scanline-half-b44-13x9 | 0 .../ref/fate/exr-rgb-scanline-half-piz-bw | 0 .../ref/fate/exr-rgb-scanline-half-piz-color | 0 .../ref/fate/exr-rgb-scanline-half-piz-dw-t01 | 0 .../ref/fate/exr-rgb-scanline-half-piz-dw-t08 | 0 .../fate/exr-rgb-scanline-none-negative-red | 0 .../fate/exr-rgb-scanline-pxr24-float-12x8 | 0 .../fate/exr-rgb-scanline-pxr24-float-half-l1 | 0 .../fate/exr-rgb-scanline-pxr24-float-half-l2 | 0 .../fate/exr-rgb-scanline-pxr24-half-float-l1 | 0 .../fate/exr-rgb-scanline-pxr24-half-float-l2 | 0 .../exr-rgb-scanline-pxr24-half-uint32-13x9 | 0 .../ref/fate/exr-rgb-scanline-pxr24-uint32 | 0 .../fate/exr-rgb-scanline-raw-half-float-l1 | 0 .../fate/exr-rgb-scanline-raw-half-float-l2 | 0 .../fate/exr-rgb-scanline-rle-half-float-l1 | 0 .../fate/exr-rgb-scanline-rle-half-float-l2 | 0 .../fate/exr-rgb-scanline-zip-half-float-l1 | 0 .../fate/exr-rgb-scanline-zip-half-float-l2 | 0 .../fate/exr-rgb-scanline-zip1-half-float-l1 | 0 ...b-scanline-zip1-half-float-l1-zero-offsets | 0 .../fate/exr-rgb-scanline-zip1-half-float-l2 | 0 .../ref/fate/exr-rgb-tile-float-raw-12x8 | 0 .../ref/fate/exr-rgb-tile-float-raw-150x130 | 0 .../fate/exr-rgb-tile-half-float-b44-12x8-l1 | 0 .../fate/exr-rgb-tile-half-float-b44-12x8-l2 | 0 .../ref/fate/exr-rgb-tile-half-raw-12x8 | 0 .../ref/fate/exr-rgb-tile-pxr24-float-half-l1 | 0 .../ref/fate/exr-rgb-tile-pxr24-float-half-l2 | 0 .../ref/fate/exr-rgb-tile-pxr24-half-float-l1 | 0 .../ref/fate/exr-rgb-tile-pxr24-half-float-l2 | 0 .../ref/fate/exr-rgb-tile-raw-half-float-l1 | 0 .../ref/fate/exr-rgb-tile-raw-half-float-l2 | 0 .../ref/fate/exr-rgb-tile-rle-half-float-l1 | 0 .../ref/fate/exr-rgb-tile-rle-half-float-l2 | 0 .../ref/fate/exr-rgb-tile-zip-half-float-l1 | 0 .../ref/fate/exr-rgb-tile-zip-half-float-l2 | 0 .../ref/fate/exr-rgb-tile-zip1-half-float-l1 | 0 .../ref/fate/exr-rgb-tile-zip1-half-float-l2 | 0 .../ref/fate/exr-rgba-multiscanline-half-b44 | 0 .../exr-rgba-scanline-float-half-b44-12x8-l1 | 0 .../exr-rgba-scanline-float-half-b44-12x8-l2 | 0 .../exr-rgba-scanline-float-half-b44-13x9-l1 | 0 .../exr-rgba-scanline-float-half-b44-13x9-l2 | 0 .../exr-rgba-scanline-float-half-b44a-12x8-l1 | 0 .../exr-rgba-scanline-float-half-b44a-12x8-l2 | 0 .../exr-rgba-scanline-float-half-b44a-13x9-l1 | 0 .../exr-rgba-scanline-float-half-b44a-13x9-l2 | 0 .../ref/fate/exr-rgba-zip16-16x32-flag4 | 0 .../tests}/ref/fate/exr-slice-pxr24 | 0 .../tests}/ref/fate/exr-slice-raw | 0 .../tests}/ref/fate/exr-slice-rle | 0 .../tests}/ref/fate/exr-slice-zip1 | 0 .../tests}/ref/fate/exr-slice-zip16 | 0 .../ref/fate/exr-y-scanline-zip-half-12x8 | 0 .../tests}/ref/fate/exr-y-tile-zip-half-12x8 | 0 .../tests}/ref/fate/ffmpeg-attached_pics | 0 .../tests}/ref/fate/ffmpeg-bsf-remove-e | 0 .../tests}/ref/fate/ffmpeg-bsf-remove-k | 0 .../tests}/ref/fate/ffmpeg-bsf-remove-r | 0 .../tests}/ref/fate/ffmpeg-filter_colorkey | 0 .../tests}/ref/fate/ffmpeg-filter_complex | 0 .../ref/fate/ffmpeg-filter_complex_audio | 0 .../tests}/ref/fate/ffmpeg-lavfi | 0 .../tests}/ref/fate/ffprobe_compact | 0 .../tests}/ref/fate/ffprobe_csv | 0 .../tests}/ref/fate/ffprobe_default | 0 .../tests}/ref/fate/ffprobe_flat | 0 .../tests}/ref/fate/ffprobe_ini | 0 .../tests}/ref/fate/ffprobe_json | 0 .../tests}/ref/fate/ffprobe_xml | 0 {tests => ffmpeg-y/tests}/ref/fate/fic-avi | 0 {tests => ffmpeg-y/tests}/ref/fate/fifo | 0 .../tests}/ref/fate/fifo-muxer-tst | 0 {tests => ffmpeg-y/tests}/ref/fate/film-cvid | 0 .../tests}/ref/fate/filter-2xbr | 0 .../tests}/ref/fate/filter-3xbr | 0 .../tests}/ref/fate/filter-4xbr | 0 .../tests}/ref/fate/filter-acrossfade | 0 .../tests}/ref/fate/filter-adelay | 0 .../tests}/ref/fate/filter-aecho | 0 .../tests}/ref/fate/filter-aemphasis | 0 .../tests}/ref/fate/filter-aemphasis-50fm | 0 .../tests}/ref/fate/filter-aemphasis-75kf | 0 .../tests}/ref/fate/filter-afade-esin | 0 .../tests}/ref/fate/filter-afade-exp | 0 .../tests}/ref/fate/filter-afade-hsin | 0 .../tests}/ref/fate/filter-afade-iqsin | 0 .../tests}/ref/fate/filter-afade-log | 0 .../tests}/ref/fate/filter-afade-qsin | 0 .../tests}/ref/fate/filter-agate | 0 .../tests}/ref/fate/filter-alimiter | 0 .../tests}/ref/fate/filter-allrgb | 0 .../tests}/ref/fate/filter-allyuv | 0 .../fate/filter-alphaextract_alphamerge_rgb | 0 .../fate/filter-alphaextract_alphamerge_yuv | 0 .../tests}/ref/fate/filter-amerge | 0 .../tests}/ref/fate/filter-anequalizer | 0 .../tests}/ref/fate/filter-apad | 0 .../tests}/ref/fate/filter-asetnsamples-nopad | 0 .../tests}/ref/fate/filter-asetnsamples-pad | 0 .../tests}/ref/fate/filter-asetrate | 0 .../tests}/ref/fate/filter-atrim-duration | 0 .../tests}/ref/fate/filter-atrim-mixed | 0 .../tests}/ref/fate/filter-atrim-samples | 0 .../tests}/ref/fate/filter-atrim-time | 0 .../tests}/ref/fate/filter-boxblur | 0 .../tests}/ref/fate/filter-chorus | 0 .../tests}/ref/fate/filter-codecview-mvs | 0 .../tests}/ref/fate/filter-colorchannelmixer | 0 .../tests}/ref/fate/filter-colormatrix1 | 0 .../tests}/ref/fate/filter-colormatrix2 | 0 .../tests}/ref/fate/filter-compand | 0 .../tests}/ref/fate/filter-concat | 0 .../tests}/ref/fate/filter-crop | 0 .../tests}/ref/fate/filter-crop_scale | 0 .../tests}/ref/fate/filter-crop_scale_vflip | 0 .../tests}/ref/fate/filter-crop_vflip | 0 .../tests}/ref/fate/filter-curves | 0 .../tests}/ref/fate/filter-dcshift | 0 .../tests}/ref/fate/filter-delogo | 0 .../tests}/ref/fate/filter-drawbox | 0 .../tests}/ref/fate/filter-earwax | 0 .../tests}/ref/fate/filter-edgedetect | 0 .../ref/fate/filter-edgedetect-colormix | 0 .../tests}/ref/fate/filter-extrastereo | 0 .../tests}/ref/fate/filter-fade | 0 .../tests}/ref/fate/filter-fieldorder | 0 .../tests}/ref/fate/filter-formats | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-fps | 0 .../tests}/ref/fate/filter-fps-cfr | 0 .../tests}/ref/fate/filter-fps-down | 0 .../tests}/ref/fate/filter-fps-down-eof-pass | 0 .../ref/fate/filter-fps-down-round-down | 0 .../tests}/ref/fate/filter-fps-down-round-up | 0 .../tests}/ref/fate/filter-fps-r | 0 .../tests}/ref/fate/filter-fps-start-drop | 0 .../tests}/ref/fate/filter-fps-start-fill | 0 .../tests}/ref/fate/filter-fps-up | 0 .../tests}/ref/fate/filter-fps-up-round-down | 0 .../tests}/ref/fate/filter-fps-up-round-up | 0 .../tests}/ref/fate/filter-framepack-columns | 0 .../tests}/ref/fate/filter-framepack-frameseq | 0 .../tests}/ref/fate/filter-framepack-lines | 0 .../tests}/ref/fate/filter-framepack-sbs | 0 .../tests}/ref/fate/filter-framepack-tab | 0 .../ref/fate/filter-framerate-12bit-down | 0 .../tests}/ref/fate/filter-framerate-12bit-up | 0 .../tests}/ref/fate/filter-framerate-down | 0 .../tests}/ref/fate/filter-framerate-up | 0 .../tests}/ref/fate/filter-gradfun | 0 .../tests}/ref/fate/filter-gradfun-sample | 0 .../tests}/ref/fate/filter-histogram-levels | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-hls | 0 .../tests}/ref/fate/filter-hls-append | 0 .../tests}/ref/fate/filter-hq2x | 0 .../tests}/ref/fate/filter-hq3x | 0 .../tests}/ref/fate/filter-hq4x | 0 .../tests}/ref/fate/filter-hqdn3d | 0 .../tests}/ref/fate/filter-hqdn3d-sample | 0 .../tests}/ref/fate/filter-hstack | 0 .../tests}/ref/fate/filter-hue1 | 0 .../tests}/ref/fate/filter-hue2 | 0 .../tests}/ref/fate/filter-hue3 | 0 .../tests}/ref/fate/filter-hue4 | 0 .../tests}/ref/fate/filter-idet | 0 .../tests}/ref/fate/filter-interlace | 0 .../tests}/ref/fate/filter-interlace-complex | 0 .../tests}/ref/fate/filter-lavd-life | 0 .../tests}/ref/fate/filter-lavd-scalenorm | 0 .../tests}/ref/fate/filter-lavd-testsrc | 0 .../tests}/ref/fate/filter-mcdeint-fast | 0 .../tests}/ref/fate/filter-mcdeint-medium | 0 .../tests}/ref/fate/filter-mergeplanes | 0 .../tests}/ref/fate/filter-meta-4560-rotate0 | 0 .../filter-metadata-avf-aphase-meter-mono | 0 ...ter-metadata-avf-aphase-meter-out-of-phase | 0 .../ref/fate/filter-metadata-cropdetect | 0 .../tests}/ref/fate/filter-metadata-ebur128 | 0 .../ref/fate/filter-metadata-readvitc-def | 0 .../ref/fate/filter-metadata-readvitc-thr | 0 .../ref/fate/filter-metadata-scenedetect | 0 .../ref/fate/filter-metadata-silencedetect | 0 .../tests}/ref/fate/filter-mpdecimate | 0 .../tests}/ref/fate/filter-negate | 0 .../tests}/ref/fate/filter-null | 0 .../tests}/ref/fate/filter-overlay | 0 .../ref/fate/filter-overlay-dvdsub-2397 | 0 .../ref/fate/filter-overlay_gbrap_gbrap | 0 .../tests}/ref/fate/filter-overlay_gbrp_gbrap | 0 .../tests}/ref/fate/filter-overlay_rgb | 0 .../tests}/ref/fate/filter-overlay_rgb_rgba | 0 .../tests}/ref/fate/filter-overlay_rgba_rgba | 0 .../tests}/ref/fate/filter-overlay_yuv420 | 0 .../ref/fate/filter-overlay_yuv420_yuva420 | 0 .../tests}/ref/fate/filter-overlay_yuv422 | 0 .../ref/fate/filter-overlay_yuv422_yuva422 | 0 .../tests}/ref/fate/filter-overlay_yuv444 | 0 .../ref/fate/filter-overlay_yuv444_yuva444 | 0 .../ref/fate/filter-overlay_yuva420_yuva420 | 0 .../ref/fate/filter-overlay_yuva422_yuva422 | 0 .../ref/fate/filter-overlay_yuva444_yuva444 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pad | 0 .../tests}/ref/fate/filter-pal100bars | 0 .../tests}/ref/fate/filter-pal75bars | 0 .../tests}/ref/fate/filter-palettegen-1 | 0 .../tests}/ref/fate/filter-palettegen-2 | 0 .../tests}/ref/fate/filter-paletteuse-bayer | 0 .../ref/fate/filter-paletteuse-nodither | 0 .../ref/fate/filter-paletteuse-sierra2_4a | 0 .../tests}/ref/fate/filter-pan-downmix1 | 0 .../tests}/ref/fate/filter-pan-downmix2 | 0 .../tests}/ref/fate/filter-pan-mono1 | 0 .../tests}/ref/fate/filter-pan-mono2 | 0 .../tests}/ref/fate/filter-pan-stereo1 | 0 .../tests}/ref/fate/filter-pan-stereo2 | 0 .../tests}/ref/fate/filter-pan-stereo3 | 0 .../tests}/ref/fate/filter-pan-stereo4 | 0 .../tests}/ref/fate/filter-pan-upmix1 | 0 .../tests}/ref/fate/filter-pan-upmix2 | 0 .../tests}/ref/fate/filter-phase | 0 .../tests}/ref/fate/filter-pixdesc-0bgr | 0 .../tests}/ref/fate/filter-pixdesc-0rgb | 0 .../tests}/ref/fate/filter-pixdesc-abgr | 0 .../tests}/ref/fate/filter-pixdesc-argb | 0 .../tests}/ref/fate/filter-pixdesc-ayuv64le | 0 .../tests}/ref/fate/filter-pixdesc-bgr0 | 0 .../tests}/ref/fate/filter-pixdesc-bgr24 | 0 .../tests}/ref/fate/filter-pixdesc-bgr444be | 0 .../tests}/ref/fate/filter-pixdesc-bgr444le | 0 .../tests}/ref/fate/filter-pixdesc-bgr48be | 0 .../tests}/ref/fate/filter-pixdesc-bgr48le | 0 .../tests}/ref/fate/filter-pixdesc-bgr4_byte | 0 .../tests}/ref/fate/filter-pixdesc-bgr555be | 0 .../tests}/ref/fate/filter-pixdesc-bgr555le | 0 .../tests}/ref/fate/filter-pixdesc-bgr565be | 0 .../tests}/ref/fate/filter-pixdesc-bgr565le | 0 .../tests}/ref/fate/filter-pixdesc-bgr8 | 0 .../tests}/ref/fate/filter-pixdesc-bgra | 0 .../tests}/ref/fate/filter-pixdesc-bgra64be | 0 .../tests}/ref/fate/filter-pixdesc-bgra64le | 0 .../tests}/ref/fate/filter-pixdesc-gbrap | 0 .../tests}/ref/fate/filter-pixdesc-gbrap10be | 0 .../tests}/ref/fate/filter-pixdesc-gbrap10le | 0 .../tests}/ref/fate/filter-pixdesc-gbrap12be | 0 .../tests}/ref/fate/filter-pixdesc-gbrap12le | 0 .../tests}/ref/fate/filter-pixdesc-gbrap16be | 0 .../tests}/ref/fate/filter-pixdesc-gbrap16le | 0 .../tests}/ref/fate/filter-pixdesc-gbrp | 0 .../tests}/ref/fate/filter-pixdesc-gbrp10be | 0 .../tests}/ref/fate/filter-pixdesc-gbrp10le | 0 .../tests}/ref/fate/filter-pixdesc-gbrp12be | 0 .../tests}/ref/fate/filter-pixdesc-gbrp12le | 0 .../tests}/ref/fate/filter-pixdesc-gbrp14be | 0 .../tests}/ref/fate/filter-pixdesc-gbrp14le | 0 .../tests}/ref/fate/filter-pixdesc-gbrp16be | 0 .../tests}/ref/fate/filter-pixdesc-gbrp16le | 0 .../tests}/ref/fate/filter-pixdesc-gbrp9be | 0 .../tests}/ref/fate/filter-pixdesc-gbrp9le | 0 .../tests}/ref/fate/filter-pixdesc-gray | 0 .../tests}/ref/fate/filter-pixdesc-gray10be | 0 .../tests}/ref/fate/filter-pixdesc-gray10le | 0 .../tests}/ref/fate/filter-pixdesc-gray12be | 0 .../tests}/ref/fate/filter-pixdesc-gray12le | 0 .../tests}/ref/fate/filter-pixdesc-gray14be | 0 .../tests}/ref/fate/filter-pixdesc-gray14le | 0 .../tests}/ref/fate/filter-pixdesc-gray16be | 0 .../tests}/ref/fate/filter-pixdesc-gray16le | 0 .../tests}/ref/fate/filter-pixdesc-gray9be | 0 .../tests}/ref/fate/filter-pixdesc-gray9le | 0 .../tests}/ref/fate/filter-pixdesc-grayf32be | 0 .../tests}/ref/fate/filter-pixdesc-grayf32le | 0 .../tests}/ref/fate/filter-pixdesc-monob | 0 .../tests}/ref/fate/filter-pixdesc-monow | 0 .../tests}/ref/fate/filter-pixdesc-nv12 | 0 .../tests}/ref/fate/filter-pixdesc-nv21 | 0 .../tests}/ref/fate/filter-pixdesc-nv24 | 0 .../tests}/ref/fate/filter-pixdesc-nv42 | 0 .../tests}/ref/fate/filter-pixdesc-p010be | 0 .../tests}/ref/fate/filter-pixdesc-p010le | 0 .../tests}/ref/fate/filter-pixdesc-p016be | 0 .../tests}/ref/fate/filter-pixdesc-p016le | 0 .../tests}/ref/fate/filter-pixdesc-rgb0 | 0 .../tests}/ref/fate/filter-pixdesc-rgb24 | 0 .../tests}/ref/fate/filter-pixdesc-rgb444be | 0 .../tests}/ref/fate/filter-pixdesc-rgb444le | 0 .../tests}/ref/fate/filter-pixdesc-rgb48be | 0 .../tests}/ref/fate/filter-pixdesc-rgb48le | 0 .../tests}/ref/fate/filter-pixdesc-rgb4_byte | 0 .../tests}/ref/fate/filter-pixdesc-rgb555be | 0 .../tests}/ref/fate/filter-pixdesc-rgb555le | 0 .../tests}/ref/fate/filter-pixdesc-rgb565be | 0 .../tests}/ref/fate/filter-pixdesc-rgb565le | 0 .../tests}/ref/fate/filter-pixdesc-rgb8 | 0 .../tests}/ref/fate/filter-pixdesc-rgba | 0 .../tests}/ref/fate/filter-pixdesc-rgba64be | 0 .../tests}/ref/fate/filter-pixdesc-rgba64le | 0 .../tests}/ref/fate/filter-pixdesc-uyvy422 | 0 .../tests}/ref/fate/filter-pixdesc-xyz12be | 0 .../tests}/ref/fate/filter-pixdesc-xyz12le | 0 .../tests}/ref/fate/filter-pixdesc-ya16be | 0 .../tests}/ref/fate/filter-pixdesc-ya16le | 0 .../tests}/ref/fate/filter-pixdesc-ya8 | 0 .../tests}/ref/fate/filter-pixdesc-yuv410p | 0 .../tests}/ref/fate/filter-pixdesc-yuv411p | 0 .../tests}/ref/fate/filter-pixdesc-yuv420p | 0 .../ref/fate/filter-pixdesc-yuv420p10be | 0 .../ref/fate/filter-pixdesc-yuv420p10le | 0 .../ref/fate/filter-pixdesc-yuv420p12be | 0 .../ref/fate/filter-pixdesc-yuv420p12le | 0 .../ref/fate/filter-pixdesc-yuv420p14be | 0 .../ref/fate/filter-pixdesc-yuv420p14le | 0 .../ref/fate/filter-pixdesc-yuv420p16be | 0 .../ref/fate/filter-pixdesc-yuv420p16le | 0 .../tests}/ref/fate/filter-pixdesc-yuv420p9be | 0 .../tests}/ref/fate/filter-pixdesc-yuv420p9le | 0 .../tests}/ref/fate/filter-pixdesc-yuv422p | 0 .../ref/fate/filter-pixdesc-yuv422p10be | 0 .../ref/fate/filter-pixdesc-yuv422p10le | 0 .../ref/fate/filter-pixdesc-yuv422p12be | 0 .../ref/fate/filter-pixdesc-yuv422p12le | 0 .../ref/fate/filter-pixdesc-yuv422p14be | 0 .../ref/fate/filter-pixdesc-yuv422p14le | 0 .../ref/fate/filter-pixdesc-yuv422p16be | 0 .../ref/fate/filter-pixdesc-yuv422p16le | 0 .../tests}/ref/fate/filter-pixdesc-yuv422p9be | 0 .../tests}/ref/fate/filter-pixdesc-yuv422p9le | 0 .../tests}/ref/fate/filter-pixdesc-yuv440p | 0 .../ref/fate/filter-pixdesc-yuv440p10be | 0 .../ref/fate/filter-pixdesc-yuv440p10le | 0 .../ref/fate/filter-pixdesc-yuv440p12be | 0 .../ref/fate/filter-pixdesc-yuv440p12le | 0 .../tests}/ref/fate/filter-pixdesc-yuv444p | 0 .../ref/fate/filter-pixdesc-yuv444p10be | 0 .../ref/fate/filter-pixdesc-yuv444p10le | 0 .../ref/fate/filter-pixdesc-yuv444p12be | 0 .../ref/fate/filter-pixdesc-yuv444p12le | 0 .../ref/fate/filter-pixdesc-yuv444p14be | 0 .../ref/fate/filter-pixdesc-yuv444p14le | 0 .../ref/fate/filter-pixdesc-yuv444p16be | 0 .../ref/fate/filter-pixdesc-yuv444p16le | 0 .../tests}/ref/fate/filter-pixdesc-yuv444p9be | 0 .../tests}/ref/fate/filter-pixdesc-yuv444p9le | 0 .../tests}/ref/fate/filter-pixdesc-yuva420p | 0 .../ref/fate/filter-pixdesc-yuva420p10be | 0 .../ref/fate/filter-pixdesc-yuva420p10le | 0 .../ref/fate/filter-pixdesc-yuva420p16be | 0 .../ref/fate/filter-pixdesc-yuva420p16le | 0 .../ref/fate/filter-pixdesc-yuva420p9be | 0 .../ref/fate/filter-pixdesc-yuva420p9le | 0 .../tests}/ref/fate/filter-pixdesc-yuva422p | 0 .../ref/fate/filter-pixdesc-yuva422p10be | 0 .../ref/fate/filter-pixdesc-yuva422p10le | 0 .../ref/fate/filter-pixdesc-yuva422p12be | 0 .../ref/fate/filter-pixdesc-yuva422p12le | 0 .../ref/fate/filter-pixdesc-yuva422p16be | 0 .../ref/fate/filter-pixdesc-yuva422p16le | 0 .../ref/fate/filter-pixdesc-yuva422p9be | 0 .../ref/fate/filter-pixdesc-yuva422p9le | 0 .../tests}/ref/fate/filter-pixdesc-yuva444p | 0 .../ref/fate/filter-pixdesc-yuva444p10be | 0 .../ref/fate/filter-pixdesc-yuva444p10le | 0 .../ref/fate/filter-pixdesc-yuva444p12be | 0 .../ref/fate/filter-pixdesc-yuva444p12le | 0 .../ref/fate/filter-pixdesc-yuva444p16be | 0 .../ref/fate/filter-pixdesc-yuva444p16le | 0 .../ref/fate/filter-pixdesc-yuva444p9be | 0 .../ref/fate/filter-pixdesc-yuva444p9le | 0 .../tests}/ref/fate/filter-pixdesc-yuvj411p | 0 .../tests}/ref/fate/filter-pixdesc-yuvj420p | 0 .../tests}/ref/fate/filter-pixdesc-yuvj422p | 0 .../tests}/ref/fate/filter-pixdesc-yuvj440p | 0 .../tests}/ref/fate/filter-pixdesc-yuvj444p | 0 .../tests}/ref/fate/filter-pixdesc-yuyv422 | 0 .../tests}/ref/fate/filter-pixdesc-yvyu422 | 0 .../tests}/ref/fate/filter-pixfmts-copy | 0 .../tests}/ref/fate/filter-pixfmts-crop | 0 .../tests}/ref/fate/filter-pixfmts-field | 0 .../tests}/ref/fate/filter-pixfmts-fieldmatch | 0 .../tests}/ref/fate/filter-pixfmts-fieldorder | 0 .../tests}/ref/fate/filter-pixfmts-hflip | 0 .../tests}/ref/fate/filter-pixfmts-histeq | 0 .../tests}/ref/fate/filter-pixfmts-il | 0 .../tests}/ref/fate/filter-pixfmts-kerndeint | 0 .../tests}/ref/fate/filter-pixfmts-lut | 0 .../tests}/ref/fate/filter-pixfmts-null | 0 .../tests}/ref/fate/filter-pixfmts-pad | 0 .../tests}/ref/fate/filter-pixfmts-pullup | 0 .../tests}/ref/fate/filter-pixfmts-rotate | 0 .../tests}/ref/fate/filter-pixfmts-scale | 0 .../tests}/ref/fate/filter-pixfmts-super2xsai | 0 .../tests}/ref/fate/filter-pixfmts-swapuv | 0 .../ref/fate/filter-pixfmts-tinterlace_cvlpf | 0 .../ref/fate/filter-pixfmts-tinterlace_merge | 0 .../ref/fate/filter-pixfmts-tinterlace_pad | 0 .../ref/fate/filter-pixfmts-tinterlace_vlpf | 0 .../tests}/ref/fate/filter-pixfmts-transpose | 0 .../tests}/ref/fate/filter-pixfmts-vflip | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp1 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp2 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp3 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp4 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp5 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-pp6 | 0 {tests => ffmpeg-y/tests}/ref/fate/filter-qp | 0 .../tests}/ref/fate/filter-refcmp-psnr-rgb | 0 .../tests}/ref/fate/filter-refcmp-psnr-yuv | 0 .../tests}/ref/fate/filter-refcmp-ssim-rgb | 0 .../tests}/ref/fate/filter-refcmp-ssim-yuv | 0 .../ref/fate/filter-removegrain-mode-00 | 0 .../ref/fate/filter-removegrain-mode-01 | 0 .../ref/fate/filter-removegrain-mode-02 | 0 .../ref/fate/filter-removegrain-mode-03 | 0 .../ref/fate/filter-removegrain-mode-04 | 0 .../ref/fate/filter-removegrain-mode-05 | 0 .../ref/fate/filter-removegrain-mode-06 | 0 .../ref/fate/filter-removegrain-mode-07 | 0 .../ref/fate/filter-removegrain-mode-08 | 0 .../ref/fate/filter-removegrain-mode-09 | 0 .../ref/fate/filter-removegrain-mode-10 | 0 .../ref/fate/filter-removegrain-mode-11 | 0 .../ref/fate/filter-removegrain-mode-12 | 0 .../ref/fate/filter-removegrain-mode-13 | 0 .../ref/fate/filter-removegrain-mode-14 | 0 .../ref/fate/filter-removegrain-mode-15 | 0 .../ref/fate/filter-removegrain-mode-16 | 0 .../ref/fate/filter-removegrain-mode-17 | 0 .../ref/fate/filter-removegrain-mode-18 | 0 .../ref/fate/filter-removegrain-mode-19 | 0 .../ref/fate/filter-removegrain-mode-20 | 0 .../ref/fate/filter-removegrain-mode-21 | 0 .../ref/fate/filter-removegrain-mode-22 | 0 .../ref/fate/filter-removegrain-mode-23 | 0 .../ref/fate/filter-removegrain-mode-24 | 0 .../tests}/ref/fate/filter-rgbtestsrc | 0 .../tests}/ref/fate/filter-scale200 | 0 .../ref/fate/filter-scale2ref_keep_aspect | 0 .../tests}/ref/fate/filter-scale500 | 0 .../tests}/ref/fate/filter-scalechroma | 0 .../tests}/ref/fate/filter-select | 0 .../tests}/ref/fate/filter-select-alternate | 0 .../tests}/ref/fate/filter-separatefields | 0 .../tests}/ref/fate/filter-setdar | 0 .../tests}/ref/fate/filter-setpts | 0 .../tests}/ref/fate/filter-setsar | 0 .../tests}/ref/fate/filter-showpalette | 0 .../tests}/ref/fate/filter-shuffleframes | 0 .../ref/fate/filter-shuffleplanes-dup-luma | 0 .../ref/fate/filter-shuffleplanes-swapuv | 0 .../tests}/ref/fate/filter-silenceremove | 0 .../tests}/ref/fate/filter-smptebars | 0 .../tests}/ref/fate/filter-smptehdbars | 0 .../tests}/ref/fate/filter-stereo3d-abr-ml | 0 .../tests}/ref/fate/filter-stereo3d-abr-mr | 0 .../tests}/ref/fate/filter-stereo3d-al-sbsl | 0 .../tests}/ref/fate/filter-stereo3d-ar-abl | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-abl | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-abr | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-agmc | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-agmd | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-agmg | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-agmh | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-al | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-arbg | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-arcc | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-arcd | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-arcg | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-arch | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-argg | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-aybc | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-aybd | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-aybg | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-aybh | 0 .../tests}/ref/fate/filter-stereo3d-sbsl-sbsr | 0 .../tests}/ref/fate/filter-stereotools | 0 .../tests}/ref/fate/filter-swaprect | 0 .../tests}/ref/fate/filter-tblend | 0 .../tests}/ref/fate/filter-telecine | 0 .../tests}/ref/fate/filter-testsrc2-rgb24 | 0 .../tests}/ref/fate/filter-testsrc2-rgba | 0 .../tests}/ref/fate/filter-testsrc2-yuv420p | 0 .../tests}/ref/fate/filter-testsrc2-yuv444p | 0 .../tests}/ref/fate/filter-thumbnail | 0 .../tests}/ref/fate/filter-tile | 0 .../tests}/ref/fate/filter-transpose | 0 .../tests}/ref/fate/filter-tremolo | 0 .../tests}/ref/fate/filter-trim-duration | 0 .../tests}/ref/fate/filter-trim-frame | 0 .../tests}/ref/fate/filter-trim-mixed | 0 .../tests}/ref/fate/filter-trim-time | 0 .../tests}/ref/fate/filter-unsharp | 0 .../tests}/ref/fate/filter-vectorscope_color | 0 .../tests}/ref/fate/filter-vectorscope_color2 | 0 .../tests}/ref/fate/filter-vectorscope_color3 | 0 .../tests}/ref/fate/filter-vectorscope_color4 | 0 .../tests}/ref/fate/filter-vectorscope_gray | 0 .../tests}/ref/fate/filter-vectorscope_xy | 0 .../tests}/ref/fate/filter-vflip | 0 .../tests}/ref/fate/filter-vflip_crop | 0 .../tests}/ref/fate/filter-vflip_vflip | 0 .../tests}/ref/fate/filter-vstack | 0 .../tests}/ref/fate/filter-w3fdif-complex | 0 .../tests}/ref/fate/filter-w3fdif-simple | 0 .../tests}/ref/fate/filter-waveform_column | 0 .../tests}/ref/fate/filter-waveform_envelope | 0 .../tests}/ref/fate/filter-waveform_row | 0 .../tests}/ref/fate/filter-waveform_uv | 0 .../tests}/ref/fate/filter-weave | 0 .../tests}/ref/fate/filter-yadif-mode0 | 0 .../tests}/ref/fate/filter-yadif-mode1 | 0 .../tests}/ref/fate/filter-yadif10 | 0 .../tests}/ref/fate/filter-yadif16 | 0 .../tests}/ref/fate/filter-yuvtestsrc-yuv444p | 0 .../ref/fate/filter-yuvtestsrc-yuv444p12 | 0 {tests => ffmpeg-y/tests}/ref/fate/fits-demux | 0 .../tests}/ref/fate/fitsdec-bitpix-32 | 0 .../tests}/ref/fate/fitsdec-bitpix-64 | 0 .../tests}/ref/fate/fitsdec-blank_bitpix32 | 0 .../tests}/ref/fate/fitsdec-ext_data_min_max | 0 .../tests}/ref/fate/fitsdec-gbrap16le | 0 .../tests}/ref/fate/fitsdec-gbrp | 0 .../tests}/ref/fate/fitsdec-gbrp16 | 0 .../tests}/ref/fate/fitsdec-gray | 0 .../tests}/ref/fate/fitsdec-multi | 0 .../tests}/ref/fate/fitsenc-gbrap | 0 .../tests}/ref/fate/fitsenc-gbrap16be | 0 .../tests}/ref/fate/fitsenc-gbrp | 0 .../tests}/ref/fate/fitsenc-gbrp16be | 0 .../tests}/ref/fate/fitsenc-gray | 0 .../tests}/ref/fate/fitsenc-gray16be | 0 {tests => ffmpeg-y/tests}/ref/fate/flcl1905 | 0 .../tests}/ref/fate/flic-af11-palette-change | 0 {tests => ffmpeg-y/tests}/ref/fate/flic-af12 | 0 .../tests}/ref/fate/flic-magiccarpet | 0 .../tests}/ref/fate/flv-add_keyframe_index | 0 {tests => ffmpeg-y/tests}/ref/fate/flv-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/fmvc-type1 | 0 {tests => ffmpeg-y/tests}/ref/fate/fmvc-type2 | 0 .../tests}/ref/fate/force_key_frames | 0 {tests => ffmpeg-y/tests}/ref/fate/fraps-v0 | 0 {tests => ffmpeg-y/tests}/ref/fate/fraps-v1 | 0 {tests => ffmpeg-y/tests}/ref/fate/fraps-v2 | 0 {tests => ffmpeg-y/tests}/ref/fate/fraps-v3 | 0 {tests => ffmpeg-y/tests}/ref/fate/fraps-v4 | 0 {tests => ffmpeg-y/tests}/ref/fate/fraps-v5 | 0 {tests => ffmpeg-y/tests}/ref/fate/frwu | 0 {tests => ffmpeg-y/tests}/ref/fate/g2m2 | 0 {tests => ffmpeg-y/tests}/ref/fate/g2m3 | 0 {tests => ffmpeg-y/tests}/ref/fate/g2m4 | 0 .../tests}/ref/fate/g722-encode | 0 {tests => ffmpeg-y/tests}/ref/fate/g722dec-1 | 0 .../tests}/ref/fate/g723_1-dec-1 | 0 .../tests}/ref/fate/g723_1-dec-2 | 0 .../tests}/ref/fate/g723_1-dec-3 | 0 .../tests}/ref/fate/g723_1-dec-4 | 0 .../tests}/ref/fate/g723_1-dec-5 | 0 .../tests}/ref/fate/g723_1-dec-6 | 0 .../tests}/ref/fate/g723_1-dec-7 | 0 .../tests}/ref/fate/g723_1-dec-8 | 0 .../tests}/ref/fate/g726-encode-2bit | 0 .../tests}/ref/fate/g726-encode-3bit | 0 .../tests}/ref/fate/g726-encode-4bit | 0 .../tests}/ref/fate/g726-encode-5bit | 0 {tests => ffmpeg-y/tests}/ref/fate/g729-0 | 0 {tests => ffmpeg-y/tests}/ref/fate/g729-1 | 0 .../tests}/ref/fate/gapless-mp3 | 0 .../ref/fate/gaplessenc-itunes-to-ipod-aac | 0 .../tests}/ref/fate/gaplessenc-pcm-to-mov-aac | 0 .../tests}/ref/fate/gaplessinfo-itunes1 | 0 .../tests}/ref/fate/gaplessinfo-itunes2 | 0 {tests => ffmpeg-y/tests}/ref/fate/gif-color | 0 {tests => ffmpeg-y/tests}/ref/fate/gif-deal | 0 {tests => ffmpeg-y/tests}/ref/fate/gif-demux | 0 .../tests}/ref/fate/gif-disposal-background | 0 .../tests}/ref/fate/gif-disposal-restore | 0 {tests => ffmpeg-y/tests}/ref/fate/gif-gray | 0 .../tests}/ref/fate/gifenc-bgr4_byte | 0 .../tests}/ref/fate/gifenc-bgr8 | 0 .../tests}/ref/fate/gifenc-gray | 0 .../tests}/ref/fate/gifenc-pal8 | 0 .../tests}/ref/fate/gifenc-rgb4_byte | 0 .../tests}/ref/fate/gifenc-rgb8 | 0 {tests => ffmpeg-y/tests}/ref/fate/gsm-ms | 0 {tests => ffmpeg-y/tests}/ref/fate/gsm-toast | 0 {tests => ffmpeg-y/tests}/ref/fate/h264-3386 | 0 .../tests}/ref/fate/h264-attachment-631 | 0 .../tests}/ref/fate/h264-brokensps-2580 | 0 .../tests}/ref/fate/h264-bsf-mp4toannexb | 0 .../tests}/ref/fate/h264-conformance-aud_mw_e | 0 .../tests}/ref/fate/h264-conformance-ba1_ft_c | 0 .../ref/fate/h264-conformance-ba1_sony_d | 0 .../ref/fate/h264-conformance-ba2_sony_f | 0 .../ref/fate/h264-conformance-ba3_sva_c | 0 .../tests}/ref/fate/h264-conformance-ba_mw_d | 0 .../ref/fate/h264-conformance-bamq1_jvc_c | 0 .../ref/fate/h264-conformance-bamq2_jvc_c | 0 .../ref/fate/h264-conformance-banm_mw_d | 0 .../ref/fate/h264-conformance-basqp1_sony_c | 0 .../ref/fate/h264-conformance-caba1_sony_d | 0 .../ref/fate/h264-conformance-caba1_sva_b | 0 .../ref/fate/h264-conformance-caba2_sony_e | 0 .../ref/fate/h264-conformance-caba2_sva_b | 0 .../ref/fate/h264-conformance-caba3_sony_c | 0 .../ref/fate/h264-conformance-caba3_sva_b | 0 .../ref/fate/h264-conformance-caba3_toshiba_e | 0 .../fate/h264-conformance-cabac_mot_fld0_full | 0 .../fate/h264-conformance-cabac_mot_frm0_full | 0 .../h264-conformance-cabac_mot_mbaff0_full | 0 .../h264-conformance-cabac_mot_picaff0_full | 0 .../ref/fate/h264-conformance-cabaci3_sony_b | 0 .../ref/fate/h264-conformance-cabast3_sony_e | 0 .../fate/h264-conformance-cabastbr3_sony_b | 0 .../ref/fate/h264-conformance-cabref3_sand_d | 0 .../ref/fate/h264-conformance-cacqp3_sony_d | 0 .../ref/fate/h264-conformance-cafi1_sva_c | 0 .../ref/fate/h264-conformance-cama1_sony_c | 0 .../ref/fate/h264-conformance-cama1_toshiba_b | 0 .../ref/fate/h264-conformance-cama1_vtc_c | 0 .../ref/fate/h264-conformance-cama2_vtc_b | 0 .../ref/fate/h264-conformance-cama3_sand_e | 0 .../ref/fate/h264-conformance-cama3_vtc_b | 0 .../ref/fate/h264-conformance-camaci3_sony_c | 0 .../fate/h264-conformance-camanl1_toshiba_b | 0 .../fate/h264-conformance-camanl2_toshiba_b | 0 .../ref/fate/h264-conformance-camanl3_sand_e | 0 .../ref/fate/h264-conformance-camasl3_sony_b | 0 .../fate/h264-conformance-camp_mot_mbaff_l30 | 0 .../fate/h264-conformance-camp_mot_mbaff_l31 | 0 .../ref/fate/h264-conformance-canl1_sony_e | 0 .../ref/fate/h264-conformance-canl1_sva_b | 0 .../ref/fate/h264-conformance-canl1_toshiba_g | 0 .../ref/fate/h264-conformance-canl2_sony_e | 0 .../ref/fate/h264-conformance-canl2_sva_b | 0 .../ref/fate/h264-conformance-canl3_sony_c | 0 .../ref/fate/h264-conformance-canl3_sva_b | 0 .../ref/fate/h264-conformance-canl4_sva_b | 0 .../ref/fate/h264-conformance-canlma2_sony_c | 0 .../ref/fate/h264-conformance-canlma3_sony_c | 0 .../ref/fate/h264-conformance-capa1_toshiba_b | 0 .../ref/fate/h264-conformance-capama3_sand_f | 0 .../ref/fate/h264-conformance-capcm1_sand_e | 0 .../ref/fate/h264-conformance-capcmnl1_sand_e | 0 .../ref/fate/h264-conformance-capm3_sony_d | 0 .../ref/fate/h264-conformance-caqp1_sony_b | 0 .../h264-conformance-cavlc_mot_fld0_full_b | 0 .../h264-conformance-cavlc_mot_frm0_full_b | 0 .../h264-conformance-cavlc_mot_mbaff0_full_b | 0 .../h264-conformance-cavlc_mot_picaff0_full_b | 0 .../ref/fate/h264-conformance-cawp1_toshiba_e | 0 .../ref/fate/h264-conformance-cawp5_toshiba_e | 0 .../tests}/ref/fate/h264-conformance-ci1_ft_b | 0 .../tests}/ref/fate/h264-conformance-ci_mw_d | 0 .../ref/fate/h264-conformance-cvbs3_sony_c | 0 .../fate/h264-conformance-cvcanlma2_sony_c | 0 .../ref/fate/h264-conformance-cvfc1_sony_c | 0 .../ref/fate/h264-conformance-cvfi1_sony_d | 0 .../ref/fate/h264-conformance-cvfi1_sva_c | 0 .../ref/fate/h264-conformance-cvfi2_sony_h | 0 .../ref/fate/h264-conformance-cvfi2_sva_c | 0 .../ref/fate/h264-conformance-cvma1_sony_d | 0 .../ref/fate/h264-conformance-cvma1_toshiba_b | 0 .../fate/h264-conformance-cvmanl1_toshiba_b | 0 .../fate/h264-conformance-cvmanl2_toshiba_b | 0 .../fate/h264-conformance-cvmapaqp3_sony_e | 0 .../ref/fate/h264-conformance-cvmaqp2_sony_g | 0 .../ref/fate/h264-conformance-cvmaqp3_sony_d | 0 .../fate/h264-conformance-cvmp_mot_fld_l30_b | 0 .../fate/h264-conformance-cvmp_mot_frm_l31_b | 0 .../ref/fate/h264-conformance-cvnlfi1_sony_c | 0 .../ref/fate/h264-conformance-cvnlfi2_sony_h | 0 .../ref/fate/h264-conformance-cvpa1_toshiba_b | 0 .../ref/fate/h264-conformance-cvpcmnl1_sva_c | 0 .../ref/fate/h264-conformance-cvpcmnl2_sva_c | 0 .../ref/fate/h264-conformance-cvwp1_toshiba_e | 0 .../ref/fate/h264-conformance-cvwp2_toshiba_e | 0 .../ref/fate/h264-conformance-cvwp3_toshiba_e | 0 .../ref/fate/h264-conformance-cvwp5_toshiba_e | 0 .../ref/fate/h264-conformance-fi1_sony_e | 0 .../h264-conformance-frext-alphaconformanceg | 0 .../fate/h264-conformance-frext-bcrm_freh10 | 0 .../fate/h264-conformance-frext-brcm_freh11 | 0 .../fate/h264-conformance-frext-brcm_freh3 | 0 .../fate/h264-conformance-frext-brcm_freh4 | 0 .../fate/h264-conformance-frext-brcm_freh5 | 0 .../fate/h264-conformance-frext-brcm_freh8 | 0 .../fate/h264-conformance-frext-brcm_freh9 | 0 .../ref/fate/h264-conformance-frext-freh12_b | 0 .../ref/fate/h264-conformance-frext-freh1_b | 0 .../ref/fate/h264-conformance-frext-freh2_b | 0 .../ref/fate/h264-conformance-frext-freh6 | 0 .../ref/fate/h264-conformance-frext-freh7_b | 0 .../fate/h264-conformance-frext-frext01_jvc_d | 0 .../fate/h264-conformance-frext-frext02_jvc_c | 0 .../h264-conformance-frext-frext1_panasonic_c | 0 .../h264-conformance-frext-frext2_panasonic_b | 0 .../h264-conformance-frext-frext3_panasonic_d | 0 .../h264-conformance-frext-frext4_panasonic_a | 0 .../h264-conformance-frext-frext_mmco4_sony_b | 0 .../fate/h264-conformance-frext-hcaff1_hhi_b | 0 .../fate/h264-conformance-frext-hcafr1_hhi_c | 0 .../fate/h264-conformance-frext-hcafr2_hhi_a | 0 .../fate/h264-conformance-frext-hcafr3_hhi_a | 0 .../fate/h264-conformance-frext-hcafr4_hhi_a | 0 .../fate/h264-conformance-frext-hcamff1_hhi_b | 0 .../h264-conformance-frext-hi422fr10_sony_b | 0 .../h264-conformance-frext-hi422fr13_sony_b | 0 .../h264-conformance-frext-hi422fr1_sony_a | 0 .../h264-conformance-frext-hi422fr6_sony_a | 0 .../fate/h264-conformance-frext-hpca_brcm_c | 0 .../fate/h264-conformance-frext-hpcadq_brcm_b | 0 .../fate/h264-conformance-frext-hpcafl_bcrm_c | 0 .../h264-conformance-frext-hpcaflnl_bcrm_c | 0 .../fate/h264-conformance-frext-hpcalq_brcm_b | 0 .../h264-conformance-frext-hpcamapalq_bcrm_b | 0 .../h264-conformance-frext-hpcamolq_brcm_b | 0 .../fate/h264-conformance-frext-hpcanl_brcm_c | 0 .../h264-conformance-frext-hpcaq2lq_brcm_b | 0 .../fate/h264-conformance-frext-hpcv_brcm_a | 0 .../fate/h264-conformance-frext-hpcvfl_bcrm_a | 0 .../h264-conformance-frext-hpcvflnl_bcrm_a | 0 .../h264-conformance-frext-hpcvmolq_brcm_b | 0 .../fate/h264-conformance-frext-hpcvnl_brcm_a | 0 ...h264-conformance-frext-pph10i1_panasonic_a | 0 ...h264-conformance-frext-pph10i2_panasonic_a | 0 ...h264-conformance-frext-pph10i3_panasonic_a | 0 ...h264-conformance-frext-pph10i4_panasonic_a | 0 ...h264-conformance-frext-pph10i5_panasonic_a | 0 ...h264-conformance-frext-pph10i6_panasonic_a | 0 ...h264-conformance-frext-pph10i7_panasonic_a | 0 ...264-conformance-frext-pph422i1_panasonic_a | 0 ...264-conformance-frext-pph422i2_panasonic_a | 0 ...264-conformance-frext-pph422i3_panasonic_a | 0 ...264-conformance-frext-pph422i4_panasonic_a | 0 ...264-conformance-frext-pph422i5_panasonic_a | 0 ...264-conformance-frext-pph422i6_panasonic_a | 0 ...264-conformance-frext-pph422i7_panasonic_a | 0 .../ref/fate/h264-conformance-hcbp2_hhi_a | 0 .../ref/fate/h264-conformance-hcmp1_hhi_a | 0 .../tests}/ref/fate/h264-conformance-ls_sva_d | 0 .../ref/fate/h264-conformance-midr_mw_d | 0 .../tests}/ref/fate/h264-conformance-mps_mw_a | 0 .../tests}/ref/fate/h264-conformance-mr1_bt_a | 0 .../tests}/ref/fate/h264-conformance-mr1_mw_a | 0 .../tests}/ref/fate/h264-conformance-mr2_mw_a | 0 .../ref/fate/h264-conformance-mr2_tandberg_e | 0 .../ref/fate/h264-conformance-mr3_tandberg_b | 0 .../ref/fate/h264-conformance-mr4_tandberg_c | 0 .../ref/fate/h264-conformance-mr5_tandberg_c | 0 .../tests}/ref/fate/h264-conformance-mr6_bt_b | 0 .../tests}/ref/fate/h264-conformance-mr7_bt_b | 0 .../tests}/ref/fate/h264-conformance-mr8_bt_b | 0 .../tests}/ref/fate/h264-conformance-mr9_bt_b | 0 .../ref/fate/h264-conformance-mv1_brcm_d | 0 .../ref/fate/h264-conformance-nl1_sony_d | 0 .../ref/fate/h264-conformance-nl2_sony_h | 0 .../ref/fate/h264-conformance-nl3_sva_e | 0 .../ref/fate/h264-conformance-nlmq1_jvc_c | 0 .../ref/fate/h264-conformance-nlmq2_jvc_c | 0 .../tests}/ref/fate/h264-conformance-nrf_mw_e | 0 .../fate/h264-conformance-sharp_mp_field_1_b | 0 .../fate/h264-conformance-sharp_mp_field_2_b | 0 .../fate/h264-conformance-sharp_mp_field_3_b | 0 .../fate/h264-conformance-sharp_mp_paff_1r2 | 0 .../fate/h264-conformance-sharp_mp_paff_2r | 0 .../ref/fate/h264-conformance-sl1_sva_b | 0 .../ref/fate/h264-conformance-sva_ba1_b | 0 .../ref/fate/h264-conformance-sva_ba2_d | 0 .../ref/fate/h264-conformance-sva_base_b | 0 .../ref/fate/h264-conformance-sva_cl1_e | 0 .../ref/fate/h264-conformance-sva_fm1_e | 0 .../ref/fate/h264-conformance-sva_nl1_b | 0 .../ref/fate/h264-conformance-sva_nl2_e | 0 .../tests}/ref/fate/h264-crop-to-container | 0 .../tests}/ref/fate/h264-direct-bff | 0 .../tests}/ref/fate/h264-dts_5frames | 0 .../tests}/ref/fate/h264-extradata-reload | 0 .../tests}/ref/fate/h264-extreme-plane-pred | 0 .../tests}/ref/fate/h264-interlace-crop | 0 .../ref/fate/h264-intra-refresh-recovery | 0 .../tests}/ref/fate/h264-invalid-ref-mod | 0 .../tests}/ref/fate/h264-lossless | 0 .../tests}/ref/fate/h264-missing-frame | 0 .../tests}/ref/fate/h264-mixed-nal-coding | 0 .../tests}/ref/fate/h264-ref-pic-mod-overflow | 0 .../h264-reinit-large_420_8-to-small_420_8 | 0 .../h264-reinit-small_420_8-to-large_444_10 | 0 .../h264-reinit-small_420_9-to-small_420_8 | 0 .../h264-reinit-small_422_9-to-small_420_9 | 0 .../tests}/ref/fate/h264-skip-nointra | 0 .../tests}/ref/fate/h264-skip-nokey | 0 .../tests}/ref/fate/h264-timecode | 0 .../tests}/ref/fate/h264-twofields-packet | 0 .../tests}/ref/fate/h264-unescaped-extradata | 0 .../tests}/ref/fate/h264-xavc-4389 | 0 .../ref/fate/h264_mp4toannexb_ticket2991 | 0 .../ref/fate/h264_mp4toannexb_ticket5927 | 0 .../ref/fate/h264_mp4toannexb_ticket5927_2 | 0 .../ref/fate/hap-alpha-only-nosnappy-128x72 | 0 .../ref/fate/hap-alpha-only-snappy-127x71 | 0 {tests => ffmpeg-y/tests}/ref/fate/hap-chunk | 0 {tests => ffmpeg-y/tests}/ref/fate/hap1 | 0 {tests => ffmpeg-y/tests}/ref/fate/hap5 | 0 .../tests}/ref/fate/hapenc-hap-none | 0 .../tests}/ref/fate/hapenc-hapa-none | 0 .../tests}/ref/fate/hapenc-hapq-none | 0 ...hapqa-extract-nosnappy-to-hapalphaonly-mov | 0 .../fate/hapqa-extract-nosnappy-to-hapq-mov | 0 .../hapqa-extract-snappy1-to-hapalphaonly | 0 .../ref/fate/hapqa-extract-snappy1-to-hapq | 0 .../hapqa-extract-snappy16-to-hapalphaonly | 0 .../ref/fate/hapqa-extract-snappy16-to-hapq | 0 .../tests}/ref/fate/hapqa-nosnappy-127x71 | 0 .../tests}/ref/fate/hapqa-snappy1-127x71 | 0 .../tests}/ref/fate/hapqa-snappy16-127x71 | 0 {tests => ffmpeg-y/tests}/ref/fate/hapy | 0 {tests => ffmpeg-y/tests}/ref/fate/hash | 0 ...nce-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 | 0 .../ref/fate/hevc-conformance-AMP_A_Samsung_4 | 0 .../ref/fate/hevc-conformance-AMP_A_Samsung_6 | 0 .../ref/fate/hevc-conformance-AMP_B_Samsung_4 | 0 .../ref/fate/hevc-conformance-AMP_B_Samsung_6 | 0 .../ref/fate/hevc-conformance-AMP_D_Hisilicon | 0 .../ref/fate/hevc-conformance-AMP_E_Hisilicon | 0 .../fate/hevc-conformance-AMP_F_Hisilicon_3 | 0 .../ref/fate/hevc-conformance-AMVP_A_MTK_4 | 0 .../ref/fate/hevc-conformance-AMVP_B_MTK_4 | 0 .../fate/hevc-conformance-AMVP_C_Samsung_4 | 0 .../fate/hevc-conformance-AMVP_C_Samsung_6 | 0 .../hevc-conformance-BUMPING_A_ericsson_1 | 0 .../fate/hevc-conformance-CAINIT_A_SHARP_4 | 0 .../fate/hevc-conformance-CAINIT_B_SHARP_4 | 0 .../fate/hevc-conformance-CAINIT_C_SHARP_3 | 0 .../fate/hevc-conformance-CAINIT_D_SHARP_3 | 0 .../fate/hevc-conformance-CAINIT_E_SHARP_3 | 0 .../fate/hevc-conformance-CAINIT_F_SHARP_3 | 0 .../fate/hevc-conformance-CAINIT_G_SHARP_3 | 0 .../fate/hevc-conformance-CAINIT_H_SHARP_3 | 0 .../fate/hevc-conformance-CIP_A_Panasonic_3 | 0 .../fate/hevc-conformance-CIP_C_Panasonic_2 | 0 .../fate/hevc-conformance-CONFWIN_A_Sony_1 | 0 .../hevc-conformance-DBLK_A_MAIN10_VIXS_3 | 0 .../ref/fate/hevc-conformance-DBLK_A_SONY_3 | 0 .../ref/fate/hevc-conformance-DBLK_B_SONY_3 | 0 .../ref/fate/hevc-conformance-DBLK_C_SONY_3 | 0 .../ref/fate/hevc-conformance-DBLK_D_VIXS_2 | 0 .../ref/fate/hevc-conformance-DBLK_E_VIXS_2 | 0 .../ref/fate/hevc-conformance-DBLK_F_VIXS_2 | 0 .../ref/fate/hevc-conformance-DBLK_G_VIXS_2 | 0 .../fate/hevc-conformance-DELTAQP_A_BRCM_4 | 0 .../fate/hevc-conformance-DELTAQP_B_SONY_3 | 0 .../fate/hevc-conformance-DELTAQP_C_SONY_3 | 0 .../ref/fate/hevc-conformance-DSLICE_A_HHI_5 | 0 .../ref/fate/hevc-conformance-DSLICE_B_HHI_5 | 0 .../ref/fate/hevc-conformance-DSLICE_C_HHI_5 | 0 .../fate/hevc-conformance-ENTP_A_Qualcomm_1 | 0 .../fate/hevc-conformance-ENTP_B_Qualcomm_1 | 0 .../fate/hevc-conformance-ENTP_C_Qualcomm_1 | 0 .../fate/hevc-conformance-EXT_A_ericsson_4 | 0 .../ref/fate/hevc-conformance-FILLER_A_Sony_1 | 0 .../ref/fate/hevc-conformance-HRD_A_Fujitsu_2 | 0 .../ref/fate/hevc-conformance-HRD_A_Fujitsu_3 | 0 .../ref/fate/hevc-conformance-INITQP_A_Sony_1 | 0 .../ref/fate/hevc-conformance-INITQP_B_Sony_1 | 0 .../ref/fate/hevc-conformance-IPCM_A_RExt_NEC | 0 .../ref/fate/hevc-conformance-IPCM_B_RExt_NEC | 0 .../fate/hevc-conformance-IPRED_A_docomo_2 | 0 .../ref/fate/hevc-conformance-IPRED_B_Nokia_3 | 0 .../hevc-conformance-IPRED_C_Mitsubishi_3 | 0 .../ref/fate/hevc-conformance-LS_A_Orange_2 | 0 .../ref/fate/hevc-conformance-LS_B_ORANGE_4 | 0 .../hevc-conformance-LTRPSPS_A_Qualcomm_1 | 0 .../ref/fate/hevc-conformance-MAXBINS_A_TI_4 | 0 .../ref/fate/hevc-conformance-MAXBINS_B_TI_4 | 0 .../ref/fate/hevc-conformance-MAXBINS_C_TI_4 | 0 .../ref/fate/hevc-conformance-MERGE_A_TI_3 | 0 .../ref/fate/hevc-conformance-MERGE_B_TI_3 | 0 .../ref/fate/hevc-conformance-MERGE_C_TI_3 | 0 .../ref/fate/hevc-conformance-MERGE_D_TI_3 | 0 .../ref/fate/hevc-conformance-MERGE_E_TI_3 | 0 .../ref/fate/hevc-conformance-MERGE_F_MTK_4 | 0 .../ref/fate/hevc-conformance-MERGE_G_HHI_4 | 0 .../fate/hevc-conformance-MVCLIP_A_qualcomm_3 | 0 .../hevc-conformance-MVDL1ZERO_A_docomo_3 | 0 .../fate/hevc-conformance-MVEDGE_A_qualcomm_3 | 0 ...hevc-conformance-Main_422_10_A_RExt_Sony_1 | 0 ...hevc-conformance-Main_422_10_B_RExt_Sony_1 | 0 .../fate/hevc-conformance-NUT_A_ericsson_5 | 0 .../hevc-conformance-NoOutPrior_A_Qualcomm_1 | 0 .../hevc-conformance-NoOutPrior_B_Qualcomm_1 | 0 .../fate/hevc-conformance-OPFLAG_A_Qualcomm_1 | 0 .../fate/hevc-conformance-OPFLAG_B_Qualcomm_1 | 0 .../fate/hevc-conformance-OPFLAG_C_Qualcomm_1 | 0 ...c-conformance-PERSIST_RPARAM_A_RExt_Sony_1 | 0 ...c-conformance-PERSIST_RPARAM_A_RExt_Sony_3 | 0 .../fate/hevc-conformance-PICSIZE_A_Bossen_1 | 0 .../fate/hevc-conformance-PICSIZE_B_Bossen_1 | 0 .../fate/hevc-conformance-PICSIZE_C_Bossen_1 | 0 .../fate/hevc-conformance-PICSIZE_D_Bossen_1 | 0 .../ref/fate/hevc-conformance-PMERGE_A_TI_3 | 0 .../ref/fate/hevc-conformance-PMERGE_B_TI_3 | 0 .../ref/fate/hevc-conformance-PMERGE_C_TI_3 | 0 .../ref/fate/hevc-conformance-PMERGE_D_TI_3 | 0 .../ref/fate/hevc-conformance-PMERGE_E_TI_3 | 0 .../ref/fate/hevc-conformance-POC_A_Bossen_3 | 0 .../fate/hevc-conformance-PPS_A_qualcomm_7 | 0 .../ref/fate/hevc-conformance-PS_A_VIDYO_3 | 0 .../ref/fate/hevc-conformance-PS_B_VIDYO_3 | 0 .../hevc-conformance-QMATRIX_A_RExt_Sony_1 | 0 .../ref/fate/hevc-conformance-RAP_A_docomo_4 | 0 .../ref/fate/hevc-conformance-RAP_B_Bossen_1 | 0 .../fate/hevc-conformance-RPLM_A_qualcomm_4 | 0 .../fate/hevc-conformance-RPLM_B_qualcomm_4 | 0 .../ref/fate/hevc-conformance-RPS_A_docomo_4 | 0 .../fate/hevc-conformance-RPS_B_qualcomm_5 | 0 .../fate/hevc-conformance-RPS_C_ericsson_5 | 0 .../fate/hevc-conformance-RPS_D_ericsson_6 | 0 .../fate/hevc-conformance-RPS_E_qualcomm_5 | 0 .../ref/fate/hevc-conformance-RPS_F_docomo_1 | 0 .../ref/fate/hevc-conformance-RQT_A_HHI_4 | 0 .../ref/fate/hevc-conformance-RQT_B_HHI_4 | 0 .../ref/fate/hevc-conformance-RQT_C_HHI_4 | 0 .../ref/fate/hevc-conformance-RQT_D_HHI_4 | 0 .../ref/fate/hevc-conformance-RQT_E_HHI_4 | 0 .../ref/fate/hevc-conformance-RQT_F_HHI_4 | 0 .../ref/fate/hevc-conformance-RQT_G_HHI_4 | 0 .../fate/hevc-conformance-SAO_A_MediaTek_4 | 0 .../hevc-conformance-SAO_A_RExt_MediaTek_1 | 0 .../fate/hevc-conformance-SAO_B_MediaTek_5 | 0 .../ref/fate/hevc-conformance-SAO_C_Samsung_4 | 0 .../ref/fate/hevc-conformance-SAO_C_Samsung_5 | 0 .../ref/fate/hevc-conformance-SAO_D_Samsung_4 | 0 .../ref/fate/hevc-conformance-SAO_D_Samsung_5 | 0 .../ref/fate/hevc-conformance-SAO_E_Canon_4 | 0 .../ref/fate/hevc-conformance-SAO_F_Canon_3 | 0 .../ref/fate/hevc-conformance-SAO_G_Canon_3 | 0 .../ref/fate/hevc-conformance-SDH_A_Orange_3 | 0 .../ref/fate/hevc-conformance-SLICES_A_Rovi_3 | 0 .../ref/fate/hevc-conformance-SLIST_A_Sony_4 | 0 .../ref/fate/hevc-conformance-SLIST_B_Sony_8 | 0 .../ref/fate/hevc-conformance-SLIST_C_Sony_3 | 0 .../ref/fate/hevc-conformance-SLIST_D_Sony_9 | 0 .../fate/hevc-conformance-SLPPLP_A_VIDYO_1 | 0 .../fate/hevc-conformance-SLPPLP_A_VIDYO_2 | 0 .../fate/hevc-conformance-STRUCT_A_Samsung_5 | 0 .../fate/hevc-conformance-STRUCT_B_Samsung_4 | 0 .../fate/hevc-conformance-STRUCT_B_Samsung_6 | 0 .../ref/fate/hevc-conformance-TILES_A_Cisco_2 | 0 .../ref/fate/hevc-conformance-TILES_B_Cisco_1 | 0 .../ref/fate/hevc-conformance-TMVP_A_MS_3 | 0 .../ref/fate/hevc-conformance-TSCL_A_VIDYO_5 | 0 .../ref/fate/hevc-conformance-TSCL_B_VIDYO_4 | 0 .../ref/fate/hevc-conformance-TSKIP_A_MS_3 | 0 .../fate/hevc-conformance-TUSIZE_A_Samsung_1 | 0 .../ref/fate/hevc-conformance-VPSID_A_VIDYO_1 | 0 .../ref/fate/hevc-conformance-VPSID_A_VIDYO_2 | 0 .../hevc-conformance-WPP_A_ericsson_MAIN10_2 | 0 .../hevc-conformance-WPP_A_ericsson_MAIN_2 | 0 .../hevc-conformance-WPP_B_ericsson_MAIN10_2 | 0 .../hevc-conformance-WPP_B_ericsson_MAIN_2 | 0 .../hevc-conformance-WPP_C_ericsson_MAIN10_2 | 0 .../hevc-conformance-WPP_C_ericsson_MAIN_2 | 0 .../hevc-conformance-WPP_D_ericsson_MAIN10_2 | 0 .../hevc-conformance-WPP_D_ericsson_MAIN_2 | 0 .../hevc-conformance-WPP_E_ericsson_MAIN10_2 | 0 .../hevc-conformance-WPP_E_ericsson_MAIN_2 | 0 .../hevc-conformance-WPP_F_ericsson_MAIN10_2 | 0 .../hevc-conformance-WPP_F_ericsson_MAIN_2 | 0 .../hevc-conformance-WP_A_MAIN10_Toshiba_3 | 0 .../ref/fate/hevc-conformance-WP_A_Toshiba_3 | 0 .../ref/fate/hevc-conformance-WP_B_Toshiba_3 | 0 .../hevc-conformance-WP_MAIN10_B_Toshiba_3 | 0 .../ref/fate/hevc-conformance-cip_B_NEC_3 | 0 .../ref/fate/hevc-conformance-ipcm_A_NEC_3 | 0 .../ref/fate/hevc-conformance-ipcm_B_NEC_3 | 0 .../ref/fate/hevc-conformance-ipcm_C_NEC_3 | 0 .../ref/fate/hevc-conformance-ipcm_D_NEC_3 | 0 .../ref/fate/hevc-conformance-ipcm_E_NEC_2 | 0 .../tests}/ref/fate/hevc-extradata-reload | 0 .../tests}/ref/fate/hevc-monochrome-crop | 0 .../tests}/ref/fate/hevc-paired-fields | 0 .../fate/hevc-paramchange-yuv420p-yuv420p10 | 0 .../tests}/ref/fate/hevc-skiploopfilter | 0 .../tests}/ref/fate/hevc-two-first-slice | 0 {tests => ffmpeg-y/tests}/ref/fate/hls-fmp4 | 0 .../tests}/ref/fate/hls-init-time | 0 .../tests}/ref/fate/hls-list-size | 0 .../tests}/ref/fate/hls-segment-size | 0 {tests => ffmpeg-y/tests}/ref/fate/hmac | 0 .../tests}/ref/fate/id-cin-video | 0 {tests => ffmpeg-y/tests}/ref/fate/id3v2-priv | 0 .../tests}/ref/fate/idroq-video-encode | 0 .../tests}/ref/fate/iff-byterun1 | 0 .../tests}/ref/fate/iff-fibonacci | 0 {tests => ffmpeg-y/tests}/ref/fate/iff-ilbm | 0 {tests => ffmpeg-y/tests}/ref/fate/iff-pcm | 0 {tests => ffmpeg-y/tests}/ref/fate/iirfilter | 0 {tests => ffmpeg-y/tests}/ref/fate/imgutils | 0 .../tests}/ref/fate/indeo2-delta | 0 .../tests}/ref/fate/indeo2-intra | 0 {tests => ffmpeg-y/tests}/ref/fate/indeo3-1 | 0 {tests => ffmpeg-y/tests}/ref/fate/indeo3-2 | 0 {tests => ffmpeg-y/tests}/ref/fate/indeo4 | 0 {tests => ffmpeg-y/tests}/ref/fate/indeo5 | 0 .../tests}/ref/fate/interplay-mve-16bit | 0 .../tests}/ref/fate/interplay-mve-8bit | 0 {tests => ffmpeg-y/tests}/ref/fate/iscc | 0 {tests => ffmpeg-y/tests}/ref/fate/iv8-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/j2k-dwt | 0 .../tests}/ref/fate/jpeg2000-dcinema | 0 {tests => ffmpeg-y/tests}/ref/fate/jpg-12bpp | 0 {tests => ffmpeg-y/tests}/ref/fate/jpg-jfif | 0 {tests => ffmpeg-y/tests}/ref/fate/jv | 0 {tests => ffmpeg-y/tests}/ref/fate/jv-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/kgv1 | 0 {tests => ffmpeg-y/tests}/ref/fate/kmvc | 0 .../tests}/ref/fate/lagarith-red | 0 .../tests}/ref/fate/lagarith-rgb24 | 0 .../tests}/ref/fate/lagarith-rgb32 | 0 .../tests}/ref/fate/lagarith-ticket4119 | 0 .../tests}/ref/fate/lagarith-ticket4119-cfr | 0 .../tests}/ref/fate/lagarith-ticket4119-drop | 0 .../tests}/ref/fate/lagarith-ticket4119-pass | 0 .../tests}/ref/fate/lagarith-ticket4119-vfr | 0 .../tests}/ref/fate/lagarith-yuy2 | 0 .../tests}/ref/fate/lagarith-yv12 | 0 {tests => ffmpeg-y/tests}/ref/fate/lfg | 0 .../tests}/ref/fate/libavcodec-htmlsubtitles | 0 .../tests}/ref/fate/libavcodec-options | 0 .../tests}/ref/fate/limited_input_seek | 0 .../tests}/ref/fate/limited_input_seek-copyts | 0 .../tests}/ref/fate/lmlm4-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/loco-rgb | 0 {tests => ffmpeg-y/tests}/ref/fate/loco-yuy2 | 0 .../tests}/ref/fate/lossless-alac | 0 .../tests}/ref/fate/lossless-meridianaudio | 0 .../tests}/ref/fate/lossless-monkeysaudio-399 | 0 .../tests}/ref/fate/lossless-shorten | 0 .../tests}/ref/fate/lossless-tak | 0 .../tests}/ref/fate/lossless-truehd-5.1 | 0 .../ref/fate/lossless-truehd-5.1-downmix-2.0 | 0 .../tests}/ref/fate/lossless-tta | 0 .../tests}/ref/fate/lossless-tta-encrypted | 0 .../tests}/ref/fate/lossless-wma | 0 .../tests}/ref/fate/lossless-wma24-1 | 0 .../tests}/ref/fate/lossless-wma24-2 | 0 .../tests}/ref/fate/lossless-wma24-rawtile | 0 {tests => ffmpeg-y/tests}/ref/fate/m4v | 0 {tests => ffmpeg-y/tests}/ref/fate/m4v-cfr | 0 .../tests}/ref/fate/magicyuv-rgb | 0 .../tests}/ref/fate/magicyuv-rgba | 0 .../tests}/ref/fate/magicyuv-y400i | 0 .../tests}/ref/fate/magicyuv-y420 | 0 .../tests}/ref/fate/magicyuv-y422i | 0 .../tests}/ref/fate/magicyuv-y444 | 0 .../tests}/ref/fate/magicyuv-y4444i | 0 .../fate/mapchan-2ch-extract-ch0-ch2-trailing | 0 .../fate/mapchan-3ch-extract-ch0-ch2-trailing | 0 .../tests}/ref/fate/mapchan-6ch-extract-2 | 0 .../fate/mapchan-6ch-extract-2-downmix-mono | 0 .../tests}/ref/fate/mapchan-silent-mono | 0 .../tests}/ref/fate/matroska-spherical-mono | 0 {tests => ffmpeg-y/tests}/ref/fate/maxis-xa | 0 {tests => ffmpeg-y/tests}/ref/fate/md5 | 0 {tests => ffmpeg-y/tests}/ref/fate/mdec | 0 {tests => ffmpeg-y/tests}/ref/fate/mdec-v3 | 0 {tests => ffmpeg-y/tests}/ref/fate/mimic | 0 {tests => ffmpeg-y/tests}/ref/fate/mjpegb | 0 {tests => ffmpeg-y/tests}/ref/fate/mkv | 0 {tests => ffmpeg-y/tests}/ref/fate/mkv-1242 | 0 {tests => ffmpeg-y/tests}/ref/fate/mlv-demux | 0 .../tests}/ref/fate/motionpixels | 0 .../tests}/ref/fate/mov-1elist-1ctts | 0 .../ref/fate/mov-1elist-ends-last-bframe | 0 .../tests}/ref/fate/mov-1elist-noctts | 0 .../ref/fate/mov-2elist-elist1-ends-bframe | 0 {tests => ffmpeg-y/tests}/ref/fate/mov-3elist | 0 .../tests}/ref/fate/mov-3elist-1ctts | 0 .../tests}/ref/fate/mov-3elist-encrypted | 0 .../tests}/ref/fate/mov-440hz-10ms | 0 .../tests}/ref/fate/mov-aac-2048-priming | 0 .../tests}/ref/fate/mov-bbi-elst-starts-b | 0 .../tests}/ref/fate/mov-displaymatrix | 0 .../ref/fate/mov-elist-starts-ctts-2ndsample | 0 .../ref/fate/mov-elst-ends-betn-b-and-i | 0 .../tests}/ref/fate/mov-frag-encrypted | 0 .../tests}/ref/fate/mov-frag-overlap | 0 .../tests}/ref/fate/mov-guess-delay-1 | 0 .../tests}/ref/fate/mov-guess-delay-2 | 0 .../tests}/ref/fate/mov-guess-delay-3 | 0 .../tests}/ref/fate/mov-ibi-elst-starts-b | 0 .../tests}/ref/fate/mov-init-nonkeyframe | 0 .../ref/fate/mov-invalid-elst-entry-count | 0 .../tests}/ref/fate/mov-mp3-demux | 0 .../tests}/ref/fate/mov-mp4-with-mov-in24-ver | 0 .../tests}/ref/fate/mov-neg-firstpts-discard | 0 .../ref/fate/mov-neg-firstpts-discard-frames | 0 .../ref/fate/mov-neg-firstpts-discard-vorbis | 0 .../tests}/ref/fate/mov-spherical-mono | 0 .../ref/fate/mov-stream-shorter-than-movie | 0 .../tests}/ref/fate/mov-tenc-only-encrypted | 0 {tests => ffmpeg-y/tests}/ref/fate/mov-zombie | 0 {tests => ffmpeg-y/tests}/ref/fate/movenc | 0 {tests => ffmpeg-y/tests}/ref/fate/mpc7-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/mpc8-demux | 0 .../tests}/ref/fate/mpeg2-field-enc | 0 .../tests}/ref/fate/mpeg2-ticket186 | 0 .../tests}/ref/fate/mpeg2-ticket6024 | 0 .../tests}/ref/fate/mpeg2-ticket6677 | 0 .../tests}/ref/fate/mpeg4-als-conformance-00 | 0 .../tests}/ref/fate/mpeg4-als-conformance-01 | 0 .../tests}/ref/fate/mpeg4-als-conformance-02 | 0 .../tests}/ref/fate/mpeg4-als-conformance-03 | 0 .../tests}/ref/fate/mpeg4-als-conformance-04 | 0 .../tests}/ref/fate/mpeg4-als-conformance-05 | 0 .../tests}/ref/fate/mpeg4-bsf-unpack-bframes | 0 .../tests}/ref/fate/mpeg4-packed | 0 .../fate/mpeg4-resolution-change-down-down | 0 .../ref/fate/mpeg4-resolution-change-down-up | 0 .../ref/fate/mpeg4-resolution-change-up-down | 0 .../ref/fate/mpeg4-resolution-change-up-up | 0 .../tests}/ref/fate/mpegps-remuxed-pcm-demux | 0 .../tests}/ref/fate/mpegts-probe-latm | 0 .../tests}/ref/fate/mpegts-probe-pmt-merge | 0 .../tests}/ref/fate/mpegts-probe-program | 0 {tests => ffmpeg-y/tests}/ref/fate/msmpeg4v1 | 0 {tests => ffmpeg-y/tests}/ref/fate/msrle-8bit | 0 {tests => ffmpeg-y/tests}/ref/fate/mss1-pal | 0 {tests => ffmpeg-y/tests}/ref/fate/mss2-pal | 0 {tests => ffmpeg-y/tests}/ref/fate/mss2-pals | 0 .../tests}/ref/fate/mss2-rgb555 | 0 .../tests}/ref/fate/mss2-rgb555s | 0 {tests => ffmpeg-y/tests}/ref/fate/mss2-wmv | 0 .../tests}/ref/fate/msvideo1-16bit | 0 .../tests}/ref/fate/msvideo1-8bit | 0 {tests => ffmpeg-y/tests}/ref/fate/mszh | 0 {tests => ffmpeg-y/tests}/ref/fate/mts2 | 0 {tests => ffmpeg-y/tests}/ref/fate/mts2-xesc | 0 {tests => ffmpeg-y/tests}/ref/fate/mtv | 0 {tests => ffmpeg-y/tests}/ref/fate/murmur3 | 0 {tests => ffmpeg-y/tests}/ref/fate/mv-mvc1 | 0 {tests => ffmpeg-y/tests}/ref/fate/mv-mvc2 | 0 {tests => ffmpeg-y/tests}/ref/fate/mv-sgirle | 0 .../tests}/ref/fate/mxf-d10-user-comments | 0 {tests => ffmpeg-y/tests}/ref/fate/mxf-demux | 0 .../tests}/ref/fate/mxf-essencegroup-demux | 0 .../tests}/ref/fate/mxf-metadata-source-ref1 | 0 .../tests}/ref/fate/mxf-metadata-source-ref2 | 0 .../tests}/ref/fate/mxf-missing-index-demux | 0 .../ref/fate/mxf-multiple-components-demux | 0 .../tests}/ref/fate/mxf-opatom-user-comments | 0 .../tests}/ref/fate/mxf-probe-d10 | 0 .../tests}/ref/fate/mxf-probe-dnxhd | 0 .../tests}/ref/fate/mxf-probe-dv25 | 0 .../tests}/ref/fate/mxf-reel_name | 0 .../tests}/ref/fate/mxf-user-comments | 0 {tests => ffmpeg-y/tests}/ref/fate/mxpeg | 0 {tests => ffmpeg-y/tests}/ref/fate/nc-demux | 0 .../tests}/ref/fate/nistsphere-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/noproxy | 0 {tests => ffmpeg-y/tests}/ref/fate/nsv-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/nuv-rtjpeg | 0 .../tests}/ref/fate/nuv-rtjpeg-fh | 0 .../tests}/ref/fate/oggopus-demux | 0 .../tests}/ref/fate/oggvp8-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/oma-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/on2avc | 0 {tests => ffmpeg-y/tests}/ref/fate/opt | 0 {tests => ffmpeg-y/tests}/ref/fate/paf-audio | 0 {tests => ffmpeg-y/tests}/ref/fate/paf-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/paf-video | 0 {tests => ffmpeg-y/tests}/ref/fate/parseutils | 0 {tests => ffmpeg-y/tests}/ref/fate/pcm-planar | 0 {tests => ffmpeg-y/tests}/ref/fate/pcm_dvd | 0 .../tests}/ref/fate/pcm_s16be-stereo | 0 .../tests}/ref/fate/pcm_s16le-stereo | 0 .../tests}/ref/fate/pcm_u8-mono | 0 .../tests}/ref/fate/pcm_u8-stereo | 0 {tests => ffmpeg-y/tests}/ref/fate/pict | 0 {tests => ffmpeg-y/tests}/ref/fate/pictor | 0 {tests => ffmpeg-y/tests}/ref/fate/pixelutils | 0 .../tests}/ref/fate/pixfmt_best | 0 {tests => ffmpeg-y/tests}/ref/fate/pixlet-rgb | 0 {tests => ffmpeg-y/tests}/ref/fate/pmp-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/png-gray16 | 0 {tests => ffmpeg-y/tests}/ref/fate/png-gray8 | 0 .../tests}/ref/fate/png-int-rgb24 | 0 {tests => ffmpeg-y/tests}/ref/fate/png-rgb24 | 0 {tests => ffmpeg-y/tests}/ref/fate/png-rgb48 | 0 {tests => ffmpeg-y/tests}/ref/fate/png-rgba | 0 {tests => ffmpeg-y/tests}/ref/fate/png-rgba64 | 0 {tests => ffmpeg-y/tests}/ref/fate/png-ya16 | 0 {tests => ffmpeg-y/tests}/ref/fate/png-ya8 | 0 {tests => ffmpeg-y/tests}/ref/fate/pngparser | 0 {tests => ffmpeg-y/tests}/ref/fate/prores-422 | 0 .../tests}/ref/fate/prores-422_hq | 0 .../tests}/ref/fate/prores-422_lt | 0 .../tests}/ref/fate/prores-422_proxy | 0 .../tests}/ref/fate/prores-alpha | 0 .../tests}/ref/fate/prores-alpha_skip | 0 .../tests}/ref/fate/prores-gray | 0 .../tests}/ref/fate/prores-metadata | 0 .../tests}/ref/fate/prores-transparency | 0 .../tests}/ref/fate/prores-transparency_skip | 0 .../tests}/ref/fate/psd-duo-tone-color | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-gray16 | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-gray8 | 0 .../tests}/ref/fate/psd-lena-127x127-rgb24 | 0 .../tests}/ref/fate/psd-lena-256c | 0 .../tests}/ref/fate/psd-lena-bitmap | 0 .../ref/fate/psd-lena-rgb-rle-127x127-16b | 0 .../ref/fate/psd-lena-rgb-rle-127x127-8b | 0 .../ref/fate/psd-lena-rgba-rle-128x128-8b | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-rgb24 | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-rgb48 | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-rgba | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-rgba64 | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-ya16 | 0 {tests => ffmpeg-y/tests}/ref/fate/psd-ya8 | 0 .../tests}/ref/fate/psx-str-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/ptx | 0 {tests => ffmpeg-y/tests}/ref/fate/pva-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/qcp-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/qpeg | 0 .../tests}/ref/fate/qt-alaw-mono | 0 .../tests}/ref/fate/qt-alaw-stereo | 0 .../tests}/ref/fate/qt-ima4-mono | 0 .../tests}/ref/fate/qt-ima4-stereo | 0 .../tests}/ref/fate/qt-mac3-mono | 0 .../tests}/ref/fate/qt-mac3-stereo | 0 .../tests}/ref/fate/qt-mac6-mono | 0 .../tests}/ref/fate/qt-mac6-stereo | 0 .../tests}/ref/fate/qt-ulaw-mono | 0 .../tests}/ref/fate/qt-ulaw-stereo | 0 .../tests}/ref/fate/qtrle-16bit | 0 {tests => ffmpeg-y/tests}/ref/fate/qtrle-1bit | 0 .../tests}/ref/fate/qtrle-24bit | 0 {tests => ffmpeg-y/tests}/ref/fate/qtrle-2bit | 0 .../tests}/ref/fate/qtrle-32bit | 0 {tests => ffmpeg-y/tests}/ref/fate/qtrle-4bit | 0 {tests => ffmpeg-y/tests}/ref/fate/qtrle-8bit | 0 {tests => ffmpeg-y/tests}/ref/fate/quickdraw | 0 {tests => ffmpeg-y/tests}/ref/fate/r210 | 0 {tests => ffmpeg-y/tests}/ref/fate/ra-144 | 0 {tests => ffmpeg-y/tests}/ref/fate/ra3-144 | 0 {tests => ffmpeg-y/tests}/ref/fate/ralf | 0 .../tests}/ref/fate/random_seed | 0 .../tests}/ref/fate/redcode-demux | 0 .../tests}/ref/fate/redspark-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/rgb24-mkv | 0 .../tests}/ref/fate/rgbapng-4816 | 0 {tests => ffmpeg-y/tests}/ref/fate/ripemd | 0 {tests => ffmpeg-y/tests}/ref/fate/rl2 | 0 {tests => ffmpeg-y/tests}/ref/fate/roqvideo | 0 {tests => ffmpeg-y/tests}/ref/fate/rpza | 0 {tests => ffmpeg-y/tests}/ref/fate/rscc-16bit | 0 {tests => ffmpeg-y/tests}/ref/fate/rscc-24bit | 0 {tests => ffmpeg-y/tests}/ref/fate/rscc-32bit | 0 {tests => ffmpeg-y/tests}/ref/fate/rscc-8bit | 0 {tests => ffmpeg-y/tests}/ref/fate/rsd-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/rtmpdh | 0 {tests => ffmpeg-y/tests}/ref/fate/rv20-1239 | 0 {tests => ffmpeg-y/tests}/ref/fate/rv30 | 0 {tests => ffmpeg-y/tests}/ref/fate/rv40 | 0 {tests => ffmpeg-y/tests}/ref/fate/sanm | 0 .../tests}/ref/fate/screenpresso-16bit | 0 .../tests}/ref/fate/screenpresso-24bit | 0 .../tests}/ref/fate/screenpresso-32bit | 0 .../ref/fate/segment-adts-to-mkv-header-000 | 0 .../ref/fate/segment-adts-to-mkv-header-001 | 0 .../ref/fate/segment-adts-to-mkv-header-002 | 0 .../ref/fate/segment-adts-to-mkv-header-all | 0 .../tests}/ref/fate/segment-mp4-to-ts | 0 {tests => ffmpeg-y/tests}/ref/fate/sgi-gray16 | 0 .../tests}/ref/fate/sgi-gray16-rle | 0 {tests => ffmpeg-y/tests}/ref/fate/sgi-gray8 | 0 .../tests}/ref/fate/sgi-gray8-rle | 0 {tests => ffmpeg-y/tests}/ref/fate/sgi-rgb24 | 0 .../tests}/ref/fate/sgi-rgb24-rle | 0 {tests => ffmpeg-y/tests}/ref/fate/sgi-rgb48 | 0 .../tests}/ref/fate/sgi-rgb48-rle | 0 {tests => ffmpeg-y/tests}/ref/fate/sgi-rgba | 0 .../tests}/ref/fate/sgi-rgba-rle | 0 {tests => ffmpeg-y/tests}/ref/fate/sgi-rgba64 | 0 .../tests}/ref/fate/sgi-rgba64-rle | 0 {tests => ffmpeg-y/tests}/ref/fate/sha | 0 {tests => ffmpeg-y/tests}/ref/fate/sha512 | 0 .../tests}/ref/fate/sierra-vmd-audio | 0 .../tests}/ref/fate/sierra-vmd-video | 0 {tests => ffmpeg-y/tests}/ref/fate/siff-demux | 0 .../tests}/ref/fate/smacker-audio | 0 .../tests}/ref/fate/smacker-video | 0 {tests => ffmpeg-y/tests}/ref/fate/smc | 0 {tests => ffmpeg-y/tests}/ref/fate/smjpeg | 0 .../tests}/ref/fate/smjpeg-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/smvjpeg | 0 {tests => ffmpeg-y/tests}/ref/fate/source | 0 {tests => ffmpeg-y/tests}/ref/fate/sp5x | 0 .../tests}/ref/fate/speedhq-422 | 0 .../tests}/ref/fate/speedhq-422-singlefield | 0 {tests => ffmpeg-y/tests}/ref/fate/srtp | 0 .../tests}/ref/fate/sub-aqtitle | 0 .../tests}/ref/fate/sub-ass-to-ass-transcode | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-cc | 0 .../tests}/ref/fate/sub-cc-realtime | 0 .../tests}/ref/fate/sub-cc-scte20 | 0 .../tests}/ref/fate/sub-charenc | 0 .../tests}/ref/fate/sub-jacosub | 0 .../tests}/ref/fate/sub-microdvd | 0 .../tests}/ref/fate/sub-microdvd-remux | Bin .../tests}/ref/fate/sub-movtext | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-mpl2 | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-mpsub | 0 .../tests}/ref/fate/sub-mpsub-frames | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-pjs | 0 .../tests}/ref/fate/sub-realtext | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-sami | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-sami2 | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-scc | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-srt | 0 .../tests}/ref/fate/sub-srt-badsyntax | 0 .../tests}/ref/fate/sub-srt-empty-events | 0 .../tests}/ref/fate/sub-srt-madness-timeshift | 0 .../tests}/ref/fate/sub-srt-rrn-remux | 0 .../tests}/ref/fate/sub-ssa-to-ass-remux | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-stl | 0 .../tests}/ref/fate/sub-subripenc | 0 .../tests}/ref/fate/sub-subviewer | 0 .../tests}/ref/fate/sub-subviewer1 | 0 .../tests}/ref/fate/sub-textenc | 0 .../tests}/ref/fate/sub-vplayer | 0 {tests => ffmpeg-y/tests}/ref/fate/sub-webvtt | 0 .../tests}/ref/fate/sub-webvtt2 | 0 .../tests}/ref/fate/sub-webvttenc | 0 {tests => ffmpeg-y/tests}/ref/fate/sub2video | 0 .../tests}/ref/fate/sunraster-1bit-raw | 0 .../tests}/ref/fate/sunraster-1bit-rle | 0 .../tests}/ref/fate/sunraster-24bit-raw | 0 .../tests}/ref/fate/sunraster-24bit-rle | 0 .../tests}/ref/fate/sunraster-8bit-raw | 0 .../tests}/ref/fate/sunraster-8bit-rle | 0 .../tests}/ref/fate/sunraster-8bit_gray-raw | 0 {tests => ffmpeg-y/tests}/ref/fate/svq1 | 0 .../tests}/ref/fate/svq1-headerswap | 0 {tests => ffmpeg-y/tests}/ref/fate/svq3-1 | 0 {tests => ffmpeg-y/tests}/ref/fate/svq3-2 | 0 .../tests}/ref/fate/svq3-watermark | 0 .../tests}/ref/fate/sws-pixdesc-query | 0 .../tests}/ref/fate/targa-conformance-CBW8 | 0 .../tests}/ref/fate/targa-conformance-CCM8 | 0 .../tests}/ref/fate/targa-conformance-CTC16 | 0 .../tests}/ref/fate/targa-conformance-CTC24 | 0 .../tests}/ref/fate/targa-conformance-CTC32 | 0 .../tests}/ref/fate/targa-conformance-UBW8 | 0 .../tests}/ref/fate/targa-conformance-UCM8 | 0 .../tests}/ref/fate/targa-conformance-UTC16 | 0 .../tests}/ref/fate/targa-conformance-UTC24 | 0 .../tests}/ref/fate/targa-conformance-UTC32 | 0 .../tests}/ref/fate/targa-top-to-bottom | 0 {tests => ffmpeg-y/tests}/ref/fate/tdsc | 0 {tests => ffmpeg-y/tests}/ref/fate/tea | 0 .../tests}/ref/fate/theora-coeff-level64 | 0 .../tests}/ref/fate/theora-offset | 0 {tests => ffmpeg-y/tests}/ref/fate/thp | 0 .../tests}/ref/fate/tiertex-seq | 0 .../tests}/ref/fate/tiff-fax-g3 | 0 .../tests}/ref/fate/tiff-fax-g3s | 0 {tests => ffmpeg-y/tests}/ref/fate/time_base | 0 {tests => ffmpeg-y/tests}/ref/fate/timefilter | 0 {tests => ffmpeg-y/tests}/ref/fate/tmv | 0 .../tests}/ref/fate/truemotion1-15 | 0 .../tests}/ref/fate/truemotion1-24 | 0 .../tests}/ref/fate/truemotion2 | 0 .../tests}/ref/fate/truemotion2rt-high | 0 .../tests}/ref/fate/truemotion2rt-low | 0 .../tests}/ref/fate/truemotion2rt-mid | 0 {tests => ffmpeg-y/tests}/ref/fate/ts-demux | 0 .../tests}/ref/fate/ts-opus-demux | 0 .../tests}/ref/fate/ts-small-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/tscc-15bit | 0 {tests => ffmpeg-y/tests}/ref/fate/tscc-32bit | 0 {tests => ffmpeg-y/tests}/ref/fate/tscc2-avi | 0 {tests => ffmpeg-y/tests}/ref/fate/tscc2-mov | 0 {tests => ffmpeg-y/tests}/ref/fate/txd-16bpp | 0 {tests => ffmpeg-y/tests}/ref/fate/txd-odd | 0 {tests => ffmpeg-y/tests}/ref/fate/txd-pal8 | 0 {tests => ffmpeg-y/tests}/ref/fate/ulti | 0 .../tests}/ref/fate/unknown_layout-ac3 | 0 .../tests}/ref/fate/unknown_layout-pcm | 0 {tests => ffmpeg-y/tests}/ref/fate/url | 0 .../tests}/ref/fate/utvideo_rgb_int_gradient | 0 .../tests}/ref/fate/utvideo_rgb_int_median | 0 .../tests}/ref/fate/utvideo_rgb_left | 0 .../tests}/ref/fate/utvideo_rgb_median | 0 .../tests}/ref/fate/utvideo_rgba_gradient | 0 .../tests}/ref/fate/utvideo_rgba_left | 0 .../tests}/ref/fate/utvideo_rgba_median | 0 .../ref/fate/utvideo_rgba_single_symbol | 0 .../tests}/ref/fate/utvideo_yuv420_gradient | 0 .../ref/fate/utvideo_yuv420_int_gradient | 0 .../tests}/ref/fate/utvideo_yuv420_int_median | 0 .../tests}/ref/fate/utvideo_yuv420_left | 0 .../tests}/ref/fate/utvideo_yuv420_median | 0 .../tests}/ref/fate/utvideo_yuv422_gradient | 0 .../ref/fate/utvideo_yuv422_int_gradient | 0 .../tests}/ref/fate/utvideo_yuv422_int_median | 0 .../tests}/ref/fate/utvideo_yuv422_left | 0 .../tests}/ref/fate/utvideo_yuv422_median | 0 .../ref/fate/utvideo_yuv444_709_gradient | 0 .../ref/fate/utvideo_yuv444_709_int_gradient | 0 .../ref/fate/utvideo_yuv444_709_int_median | 0 .../tests}/ref/fate/utvideo_yuv444_709_median | 0 .../tests}/ref/fate/utvideoenc_rgb_left | 0 .../tests}/ref/fate/utvideoenc_rgb_median | 0 .../tests}/ref/fate/utvideoenc_rgb_none | 0 .../tests}/ref/fate/utvideoenc_rgba_left | 0 .../tests}/ref/fate/utvideoenc_rgba_median | 0 .../tests}/ref/fate/utvideoenc_rgba_none | 0 .../tests}/ref/fate/utvideoenc_yuv420_left | 0 .../tests}/ref/fate/utvideoenc_yuv420_median | 0 .../tests}/ref/fate/utvideoenc_yuv420_none | 0 .../tests}/ref/fate/utvideoenc_yuv422_left | 0 .../tests}/ref/fate/utvideoenc_yuv422_median | 0 .../tests}/ref/fate/utvideoenc_yuv422_none | 0 .../tests}/ref/fate/utvideoenc_yuv444_left | 0 .../tests}/ref/fate/utvideoenc_yuv444_median | 0 .../tests}/ref/fate/utvideoenc_yuv444_none | 0 {tests => ffmpeg-y/tests}/ref/fate/v210 | 0 {tests => ffmpeg-y/tests}/ref/fate/v410dec | 0 {tests => ffmpeg-y/tests}/ref/fate/v410enc | 0 {tests => ffmpeg-y/tests}/ref/fate/vb | 0 {tests => ffmpeg-y/tests}/ref/fate/vble | 0 {tests => ffmpeg-y/tests}/ref/fate/vc1-ism | 0 .../tests}/ref/fate/vc1_ilaced_twomv | 0 .../tests}/ref/fate/vc1_sa00040 | 0 .../tests}/ref/fate/vc1_sa00050 | 0 .../tests}/ref/fate/vc1_sa10091 | 0 .../tests}/ref/fate/vc1_sa10143 | 0 .../tests}/ref/fate/vc1_sa20021 | 0 .../tests}/ref/fate/vc1test_smm0005 | 0 .../tests}/ref/fate/vc1test_smm0015 | 0 {tests => ffmpeg-y/tests}/ref/fate/vcr1 | 0 {tests => ffmpeg-y/tests}/ref/fate/vcr2 | 0 {tests => ffmpeg-y/tests}/ref/fate/videoxl | 0 {tests => ffmpeg-y/tests}/ref/fate/vmnc-16bit | 0 {tests => ffmpeg-y/tests}/ref/fate/vmnc-32bit | 0 .../tests}/ref/fate/vorbis-1833-chapters | 0 {tests => ffmpeg-y/tests}/ref/fate/vp31 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp4 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp5 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp60 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp61 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp6a | 0 .../tests}/ref/fate/vp6a-skip_alpha | 0 {tests => ffmpeg-y/tests}/ref/fate/vp6f | 0 {tests => ffmpeg-y/tests}/ref/fate/vp7 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp8-2451 | 0 {tests => ffmpeg-y/tests}/ref/fate/vp8-alpha | 0 .../tests}/ref/fate/vp8-sign-bias | 0 .../tests}/ref/fate/vp8-size-change | 0 .../tests}/ref/fate/vp8-test-vector-001 | 0 .../tests}/ref/fate/vp8-test-vector-002 | 0 .../tests}/ref/fate/vp8-test-vector-003 | 0 .../tests}/ref/fate/vp8-test-vector-004 | 0 .../tests}/ref/fate/vp8-test-vector-005 | 0 .../tests}/ref/fate/vp8-test-vector-006 | 0 .../tests}/ref/fate/vp8-test-vector-007 | 0 .../tests}/ref/fate/vp8-test-vector-008 | 0 .../tests}/ref/fate/vp8-test-vector-009 | 0 .../tests}/ref/fate/vp8-test-vector-010 | 0 .../tests}/ref/fate/vp8-test-vector-011 | 0 .../tests}/ref/fate/vp8-test-vector-012 | 0 .../tests}/ref/fate/vp8-test-vector-013 | 0 .../tests}/ref/fate/vp8-test-vector-014 | 0 .../tests}/ref/fate/vp8-test-vector-015 | 0 .../tests}/ref/fate/vp8-test-vector-016 | 0 .../tests}/ref/fate/vp8-test-vector-017 | 0 .../tests}/ref/fate/vp9-00-quantizer-00 | 0 .../tests}/ref/fate/vp9-00-quantizer-01 | 0 .../tests}/ref/fate/vp9-00-quantizer-02 | 0 .../tests}/ref/fate/vp9-00-quantizer-03 | 0 .../tests}/ref/fate/vp9-00-quantizer-04 | 0 .../tests}/ref/fate/vp9-00-quantizer-05 | 0 .../tests}/ref/fate/vp9-00-quantizer-06 | 0 .../tests}/ref/fate/vp9-00-quantizer-07 | 0 .../tests}/ref/fate/vp9-00-quantizer-08 | 0 .../tests}/ref/fate/vp9-00-quantizer-09 | 0 .../tests}/ref/fate/vp9-00-quantizer-10 | 0 .../tests}/ref/fate/vp9-00-quantizer-11 | 0 .../tests}/ref/fate/vp9-00-quantizer-12 | 0 .../tests}/ref/fate/vp9-00-quantizer-13 | 0 .../tests}/ref/fate/vp9-00-quantizer-14 | 0 .../tests}/ref/fate/vp9-00-quantizer-15 | 0 .../tests}/ref/fate/vp9-00-quantizer-16 | 0 .../tests}/ref/fate/vp9-00-quantizer-17 | 0 .../tests}/ref/fate/vp9-00-quantizer-18 | 0 .../tests}/ref/fate/vp9-00-quantizer-19 | 0 .../tests}/ref/fate/vp9-00-quantizer-20 | 0 .../tests}/ref/fate/vp9-00-quantizer-21 | 0 .../tests}/ref/fate/vp9-00-quantizer-22 | 0 .../tests}/ref/fate/vp9-00-quantizer-23 | 0 .../tests}/ref/fate/vp9-00-quantizer-24 | 0 .../tests}/ref/fate/vp9-00-quantizer-25 | 0 .../tests}/ref/fate/vp9-00-quantizer-26 | 0 .../tests}/ref/fate/vp9-00-quantizer-27 | 0 .../tests}/ref/fate/vp9-00-quantizer-28 | 0 .../tests}/ref/fate/vp9-00-quantizer-29 | 0 .../tests}/ref/fate/vp9-00-quantizer-30 | 0 .../tests}/ref/fate/vp9-00-quantizer-31 | 0 .../tests}/ref/fate/vp9-00-quantizer-32 | 0 .../tests}/ref/fate/vp9-00-quantizer-33 | 0 .../tests}/ref/fate/vp9-00-quantizer-34 | 0 .../tests}/ref/fate/vp9-00-quantizer-35 | 0 .../tests}/ref/fate/vp9-00-quantizer-36 | 0 .../tests}/ref/fate/vp9-00-quantizer-37 | 0 .../tests}/ref/fate/vp9-00-quantizer-38 | 0 .../tests}/ref/fate/vp9-00-quantizer-39 | 0 .../tests}/ref/fate/vp9-00-quantizer-40 | 0 .../tests}/ref/fate/vp9-00-quantizer-41 | 0 .../tests}/ref/fate/vp9-00-quantizer-42 | 0 .../tests}/ref/fate/vp9-00-quantizer-43 | 0 .../tests}/ref/fate/vp9-00-quantizer-44 | 0 .../tests}/ref/fate/vp9-00-quantizer-45 | 0 .../tests}/ref/fate/vp9-00-quantizer-46 | 0 .../tests}/ref/fate/vp9-00-quantizer-47 | 0 .../tests}/ref/fate/vp9-00-quantizer-48 | 0 .../tests}/ref/fate/vp9-00-quantizer-49 | 0 .../tests}/ref/fate/vp9-00-quantizer-50 | 0 .../tests}/ref/fate/vp9-00-quantizer-51 | 0 .../tests}/ref/fate/vp9-00-quantizer-52 | 0 .../tests}/ref/fate/vp9-00-quantizer-53 | 0 .../tests}/ref/fate/vp9-00-quantizer-54 | 0 .../tests}/ref/fate/vp9-00-quantizer-55 | 0 .../tests}/ref/fate/vp9-00-quantizer-56 | 0 .../tests}/ref/fate/vp9-00-quantizer-57 | 0 .../tests}/ref/fate/vp9-00-quantizer-58 | 0 .../tests}/ref/fate/vp9-00-quantizer-59 | 0 .../tests}/ref/fate/vp9-00-quantizer-60 | 0 .../tests}/ref/fate/vp9-00-quantizer-61 | 0 .../tests}/ref/fate/vp9-00-quantizer-62 | 0 .../tests}/ref/fate/vp9-00-quantizer-63 | 0 .../tests}/ref/fate/vp9-01-sharpness-1 | 0 .../tests}/ref/fate/vp9-01-sharpness-2 | 0 .../tests}/ref/fate/vp9-01-sharpness-3 | 0 .../tests}/ref/fate/vp9-01-sharpness-4 | 0 .../tests}/ref/fate/vp9-01-sharpness-5 | 0 .../tests}/ref/fate/vp9-01-sharpness-6 | 0 .../tests}/ref/fate/vp9-01-sharpness-7 | 0 .../tests}/ref/fate/vp9-02-size-08x08 | 0 .../tests}/ref/fate/vp9-02-size-08x10 | 0 .../tests}/ref/fate/vp9-02-size-08x16 | 0 .../tests}/ref/fate/vp9-02-size-08x18 | 0 .../tests}/ref/fate/vp9-02-size-08x32 | 0 .../tests}/ref/fate/vp9-02-size-08x34 | 0 .../tests}/ref/fate/vp9-02-size-08x64 | 0 .../tests}/ref/fate/vp9-02-size-08x66 | 0 .../tests}/ref/fate/vp9-02-size-10x08 | 0 .../tests}/ref/fate/vp9-02-size-10x10 | 0 .../tests}/ref/fate/vp9-02-size-10x16 | 0 .../tests}/ref/fate/vp9-02-size-10x18 | 0 .../tests}/ref/fate/vp9-02-size-10x32 | 0 .../tests}/ref/fate/vp9-02-size-10x34 | 0 .../tests}/ref/fate/vp9-02-size-10x64 | 0 .../tests}/ref/fate/vp9-02-size-10x66 | 0 .../tests}/ref/fate/vp9-02-size-16x08 | 0 .../tests}/ref/fate/vp9-02-size-16x10 | 0 .../tests}/ref/fate/vp9-02-size-16x16 | 0 .../tests}/ref/fate/vp9-02-size-16x18 | 0 .../tests}/ref/fate/vp9-02-size-16x32 | 0 .../tests}/ref/fate/vp9-02-size-16x34 | 0 .../tests}/ref/fate/vp9-02-size-16x64 | 0 .../tests}/ref/fate/vp9-02-size-16x66 | 0 .../tests}/ref/fate/vp9-02-size-18x08 | 0 .../tests}/ref/fate/vp9-02-size-18x10 | 0 .../tests}/ref/fate/vp9-02-size-18x16 | 0 .../tests}/ref/fate/vp9-02-size-18x18 | 0 .../tests}/ref/fate/vp9-02-size-18x32 | 0 .../tests}/ref/fate/vp9-02-size-18x34 | 0 .../tests}/ref/fate/vp9-02-size-18x64 | 0 .../tests}/ref/fate/vp9-02-size-18x66 | 0 .../tests}/ref/fate/vp9-02-size-32x08 | 0 .../tests}/ref/fate/vp9-02-size-32x10 | 0 .../tests}/ref/fate/vp9-02-size-32x16 | 0 .../tests}/ref/fate/vp9-02-size-32x18 | 0 .../tests}/ref/fate/vp9-02-size-32x32 | 0 .../tests}/ref/fate/vp9-02-size-32x34 | 0 .../tests}/ref/fate/vp9-02-size-32x64 | 0 .../tests}/ref/fate/vp9-02-size-32x66 | 0 .../tests}/ref/fate/vp9-02-size-34x08 | 0 .../tests}/ref/fate/vp9-02-size-34x10 | 0 .../tests}/ref/fate/vp9-02-size-34x16 | 0 .../tests}/ref/fate/vp9-02-size-34x18 | 0 .../tests}/ref/fate/vp9-02-size-34x32 | 0 .../tests}/ref/fate/vp9-02-size-34x34 | 0 .../tests}/ref/fate/vp9-02-size-34x64 | 0 .../tests}/ref/fate/vp9-02-size-34x66 | 0 .../tests}/ref/fate/vp9-02-size-64x08 | 0 .../tests}/ref/fate/vp9-02-size-64x10 | 0 .../tests}/ref/fate/vp9-02-size-64x16 | 0 .../tests}/ref/fate/vp9-02-size-64x18 | 0 .../tests}/ref/fate/vp9-02-size-64x32 | 0 .../tests}/ref/fate/vp9-02-size-64x34 | 0 .../tests}/ref/fate/vp9-02-size-64x64 | 0 .../tests}/ref/fate/vp9-02-size-64x66 | 0 .../tests}/ref/fate/vp9-02-size-66x08 | 0 .../tests}/ref/fate/vp9-02-size-66x10 | 0 .../tests}/ref/fate/vp9-02-size-66x16 | 0 .../tests}/ref/fate/vp9-02-size-66x18 | 0 .../tests}/ref/fate/vp9-02-size-66x32 | 0 .../tests}/ref/fate/vp9-02-size-66x34 | 0 .../tests}/ref/fate/vp9-02-size-66x64 | 0 .../tests}/ref/fate/vp9-02-size-66x66 | 0 .../tests}/ref/fate/vp9-03-deltaq | 0 .../tests}/ref/fate/vp9-03-size-196x196 | 0 .../tests}/ref/fate/vp9-03-size-196x198 | 0 .../tests}/ref/fate/vp9-03-size-196x200 | 0 .../tests}/ref/fate/vp9-03-size-196x202 | 0 .../tests}/ref/fate/vp9-03-size-196x208 | 0 .../tests}/ref/fate/vp9-03-size-196x210 | 0 .../tests}/ref/fate/vp9-03-size-196x224 | 0 .../tests}/ref/fate/vp9-03-size-196x226 | 0 .../tests}/ref/fate/vp9-03-size-198x196 | 0 .../tests}/ref/fate/vp9-03-size-198x198 | 0 .../tests}/ref/fate/vp9-03-size-198x200 | 0 .../tests}/ref/fate/vp9-03-size-198x202 | 0 .../tests}/ref/fate/vp9-03-size-198x208 | 0 .../tests}/ref/fate/vp9-03-size-198x210 | 0 .../tests}/ref/fate/vp9-03-size-198x224 | 0 .../tests}/ref/fate/vp9-03-size-198x226 | 0 .../tests}/ref/fate/vp9-03-size-200x196 | 0 .../tests}/ref/fate/vp9-03-size-200x198 | 0 .../tests}/ref/fate/vp9-03-size-200x200 | 0 .../tests}/ref/fate/vp9-03-size-200x202 | 0 .../tests}/ref/fate/vp9-03-size-200x208 | 0 .../tests}/ref/fate/vp9-03-size-200x210 | 0 .../tests}/ref/fate/vp9-03-size-200x224 | 0 .../tests}/ref/fate/vp9-03-size-200x226 | 0 .../tests}/ref/fate/vp9-03-size-202x196 | 0 .../tests}/ref/fate/vp9-03-size-202x198 | 0 .../tests}/ref/fate/vp9-03-size-202x200 | 0 .../tests}/ref/fate/vp9-03-size-202x202 | 0 .../tests}/ref/fate/vp9-03-size-202x208 | 0 .../tests}/ref/fate/vp9-03-size-202x210 | 0 .../tests}/ref/fate/vp9-03-size-202x224 | 0 .../tests}/ref/fate/vp9-03-size-202x226 | 0 .../tests}/ref/fate/vp9-03-size-208x196 | 0 .../tests}/ref/fate/vp9-03-size-208x198 | 0 .../tests}/ref/fate/vp9-03-size-208x200 | 0 .../tests}/ref/fate/vp9-03-size-208x202 | 0 .../tests}/ref/fate/vp9-03-size-208x208 | 0 .../tests}/ref/fate/vp9-03-size-208x210 | 0 .../tests}/ref/fate/vp9-03-size-208x224 | 0 .../tests}/ref/fate/vp9-03-size-208x226 | 0 .../tests}/ref/fate/vp9-03-size-210x196 | 0 .../tests}/ref/fate/vp9-03-size-210x198 | 0 .../tests}/ref/fate/vp9-03-size-210x200 | 0 .../tests}/ref/fate/vp9-03-size-210x202 | 0 .../tests}/ref/fate/vp9-03-size-210x208 | 0 .../tests}/ref/fate/vp9-03-size-210x210 | 0 .../tests}/ref/fate/vp9-03-size-210x224 | 0 .../tests}/ref/fate/vp9-03-size-210x226 | 0 .../tests}/ref/fate/vp9-03-size-224x196 | 0 .../tests}/ref/fate/vp9-03-size-224x198 | 0 .../tests}/ref/fate/vp9-03-size-224x200 | 0 .../tests}/ref/fate/vp9-03-size-224x202 | 0 .../tests}/ref/fate/vp9-03-size-224x208 | 0 .../tests}/ref/fate/vp9-03-size-224x210 | 0 .../tests}/ref/fate/vp9-03-size-224x224 | 0 .../tests}/ref/fate/vp9-03-size-224x226 | 0 .../tests}/ref/fate/vp9-03-size-226x196 | 0 .../tests}/ref/fate/vp9-03-size-226x198 | 0 .../tests}/ref/fate/vp9-03-size-226x200 | 0 .../tests}/ref/fate/vp9-03-size-226x202 | 0 .../tests}/ref/fate/vp9-03-size-226x208 | 0 .../tests}/ref/fate/vp9-03-size-226x210 | 0 .../tests}/ref/fate/vp9-03-size-226x224 | 0 .../tests}/ref/fate/vp9-03-size-226x226 | 0 .../tests}/ref/fate/vp9-05-resize | 0 .../tests}/ref/fate/vp9-06-bilinear | 0 .../tests}/ref/fate/vp9-09-lf_deltas | 0 .../ref/fate/vp9-10-show-existing-frame | 0 .../ref/fate/vp9-10-show-existing-frame2 | 0 .../tests}/ref/fate/vp9-15-segkey_adpq | 0 .../tests}/ref/fate/vp9-16-intra-only | 0 .../tests}/ref/fate/vp9-2pass-akiyo | 0 .../tests}/ref/fate/vp9-parallelmode-akiyo | 0 .../tests}/ref/fate/vp9-segmentation-aq-akiyo | 0 .../tests}/ref/fate/vp9-segmentation-sf-akiyo | 0 .../tests}/ref/fate/vp9-tiling-pedestrian | 0 .../tests}/ref/fate/vp9-trac3849 | 0 .../tests}/ref/fate/vp9-trac4359 | 0 .../tests}/ref/fate/vp9p1-04-yuv422 | 0 .../tests}/ref/fate/vp9p1-04-yuv440 | 0 .../tests}/ref/fate/vp9p1-04-yuv444 | 0 .../tests}/ref/fate/vp9p2-20-10bit-yuv420 | 0 .../tests}/ref/fate/vp9p2-20-12bit-yuv420 | 0 .../tests}/ref/fate/vp9p3-20-10bit-yuv422 | 0 .../tests}/ref/fate/vp9p3-20-10bit-yuv440 | 0 .../tests}/ref/fate/vp9p3-20-10bit-yuv444 | 0 .../tests}/ref/fate/vp9p3-20-12bit-yuv422 | 0 .../tests}/ref/fate/vp9p3-20-12bit-yuv440 | 0 .../tests}/ref/fate/vp9p3-20-12bit-yuv444 | 0 {tests => ffmpeg-y/tests}/ref/fate/vqa-cc | 0 {tests => ffmpeg-y/tests}/ref/fate/vqf-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/w64 | 0 {tests => ffmpeg-y/tests}/ref/fate/wav-ac3 | 0 .../tests}/ref/fate/wavpack-channels-4.0 | 0 .../tests}/ref/fate/wavpack-channels-5.1 | 0 .../tests}/ref/fate/wavpack-channels-6.1 | 0 .../tests}/ref/fate/wavpack-channels-7.1 | 0 .../ref/fate/wavpack-channels-monofloat | 0 .../tests}/ref/fate/wavpack-channels-monoint | 0 .../tests}/ref/fate/wavpack-clipping | 0 .../tests}/ref/fate/wavpack-cuesheet | 0 .../tests}/ref/fate/wavpack-falsestereo | 0 .../tests}/ref/fate/wavpack-lossless-12bit | 0 .../tests}/ref/fate/wavpack-lossless-16bit | 0 .../tests}/ref/fate/wavpack-lossless-24bit | 0 .../tests}/ref/fate/wavpack-lossless-32bit | 0 .../tests}/ref/fate/wavpack-lossless-8bit | 0 .../tests}/ref/fate/wavpack-lossless-float | 0 .../tests}/ref/fate/wavpack-lossy-16bit | 0 .../tests}/ref/fate/wavpack-lossy-24bit | 0 .../tests}/ref/fate/wavpack-lossy-32bit | 0 .../tests}/ref/fate/wavpack-lossy-8bit | 0 .../tests}/ref/fate/wavpack-lossy-float | 0 .../tests}/ref/fate/wavpack-matroskamode | 0 .../tests}/ref/fate/wavpack-speed-default | 0 .../tests}/ref/fate/wavpack-speed-fast | 0 .../tests}/ref/fate/wavpack-speed-high | 0 .../tests}/ref/fate/wavpack-speed-vhigh | 0 .../tests}/ref/fate/wavpack-zerolsbs | 0 .../tests}/ref/fate/wc3movie-xan | 0 .../tests}/ref/fate/webm-dash-manifest | 0 .../tests}/ref/fate/webm-dash-manifest-live | 0 .../fate/webm-dash-manifest-live-bandwidth | 0 .../fate/webm-dash-manifest-representations | 0 ...webm-dash-manifest-unaligned-audio-streams | 0 ...webm-dash-manifest-unaligned-video-streams | 0 .../tests}/ref/fate/webp-rgb-lena-lossless | 0 .../ref/fate/webp-rgb-lena-lossless-rgb24 | 0 .../tests}/ref/fate/webp-rgb-lossless | 0 .../tests}/ref/fate/webp-rgb-lossy-q80 | 0 .../tests}/ref/fate/webp-rgba-lossless | 0 .../tests}/ref/fate/webp-rgba-lossy-q80 | 0 .../tests}/ref/fate/westwood-aud | 0 .../tests}/ref/fate/wmv3-drm-dec | 0 .../tests}/ref/fate/wmv3-drm-nodec | 0 .../tests}/ref/fate/wmv8-x8intra | 0 {tests => ffmpeg-y/tests}/ref/fate/wnv1 | 0 {tests => ffmpeg-y/tests}/ref/fate/ws_snd | 0 {tests => ffmpeg-y/tests}/ref/fate/wtv-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/xbm10 | 0 {tests => ffmpeg-y/tests}/ref/fate/xbm11 | 0 {tests => ffmpeg-y/tests}/ref/fate/xface | 0 {tests => ffmpeg-y/tests}/ref/fate/xmv-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/xtea | 0 .../tests}/ref/fate/xvid-custom-matrix | 0 {tests => ffmpeg-y/tests}/ref/fate/xvid-idct | 0 {tests => ffmpeg-y/tests}/ref/fate/xwma-demux | 0 {tests => ffmpeg-y/tests}/ref/fate/xxan-wc4 | 0 {tests => ffmpeg-y/tests}/ref/fate/yop | 0 {tests => ffmpeg-y/tests}/ref/fate/zerocodec | 0 {tests => ffmpeg-y/tests}/ref/fate/zlib | 0 {tests => ffmpeg-y/tests}/ref/fate/zmbv-15bit | 0 {tests => ffmpeg-y/tests}/ref/fate/zmbv-16bit | 0 {tests => ffmpeg-y/tests}/ref/fate/zmbv-32bit | 0 {tests => ffmpeg-y/tests}/ref/fate/zmbv-8bit | 0 .../tests}/ref/lavf-fate/cram.avi | 0 {tests => ffmpeg-y/tests}/ref/lavf-fate/latm | 0 {tests => ffmpeg-y/tests}/ref/lavf-fate/mp3 | 0 .../tests}/ref/lavf-fate/qtrle_mace6.mov | 0 .../tests}/ref/lavf-fate/vp3.ogg | 0 .../tests}/ref/lavf-fate/vp8.ogg | 0 {tests => ffmpeg-y/tests}/ref/lavf/aiff | 0 {tests => ffmpeg-y/tests}/ref/lavf/al | 0 {tests => ffmpeg-y/tests}/ref/lavf/apng | 0 {tests => ffmpeg-y/tests}/ref/lavf/apng.png | 0 {tests => ffmpeg-y/tests}/ref/lavf/asf | 0 {tests => ffmpeg-y/tests}/ref/lavf/ast | 0 {tests => ffmpeg-y/tests}/ref/lavf/au | 0 {tests => ffmpeg-y/tests}/ref/lavf/avi | 0 {tests => ffmpeg-y/tests}/ref/lavf/bmp | 0 {tests => ffmpeg-y/tests}/ref/lavf/caf | 0 {tests => ffmpeg-y/tests}/ref/lavf/dpx | 0 {tests => ffmpeg-y/tests}/ref/lavf/dv | 0 {tests => ffmpeg-y/tests}/ref/lavf/dv_ntsc | 0 {tests => ffmpeg-y/tests}/ref/lavf/dv_pal | 0 {tests => ffmpeg-y/tests}/ref/lavf/fits | 0 {tests => ffmpeg-y/tests}/ref/lavf/flm | 0 {tests => ffmpeg-y/tests}/ref/lavf/flv | 0 {tests => ffmpeg-y/tests}/ref/lavf/gbrap.fits | 0 .../tests}/ref/lavf/gbrap16be.fits | 0 {tests => ffmpeg-y/tests}/ref/lavf/gbrp.fits | 0 .../tests}/ref/lavf/gbrp10le.dpx | 0 .../tests}/ref/lavf/gbrp12le.dpx | 0 .../tests}/ref/lavf/gbrp16be.fits | 0 {tests => ffmpeg-y/tests}/ref/lavf/gif | 0 {tests => ffmpeg-y/tests}/ref/lavf/gray.fits | 0 {tests => ffmpeg-y/tests}/ref/lavf/gray.pam | 0 {tests => ffmpeg-y/tests}/ref/lavf/gray.xwd | 0 .../tests}/ref/lavf/gray16be.fits | 0 .../tests}/ref/lavf/gray16be.pam | 0 .../tests}/ref/lavf/gray16be.png | 0 {tests => ffmpeg-y/tests}/ref/lavf/gxf | 0 {tests => ffmpeg-y/tests}/ref/lavf/gxf_ntsc | 0 {tests => ffmpeg-y/tests}/ref/lavf/gxf_pal | 0 {tests => ffmpeg-y/tests}/ref/lavf/ircam | 0 {tests => ffmpeg-y/tests}/ref/lavf/ismv | 0 {tests => ffmpeg-y/tests}/ref/lavf/jpg | 0 {tests => ffmpeg-y/tests}/ref/lavf/mka | 0 {tests => ffmpeg-y/tests}/ref/lavf/mkv | 0 .../tests}/ref/lavf/mkv_attachment | 0 {tests => ffmpeg-y/tests}/ref/lavf/mmf | 0 {tests => ffmpeg-y/tests}/ref/lavf/monob.pam | 0 {tests => ffmpeg-y/tests}/ref/lavf/monow.xwd | 0 {tests => ffmpeg-y/tests}/ref/lavf/mov | 0 .../tests}/ref/lavf/mov_rtphint | 0 {tests => ffmpeg-y/tests}/ref/lavf/mp4 | 0 {tests => ffmpeg-y/tests}/ref/lavf/mpg | 0 {tests => ffmpeg-y/tests}/ref/lavf/mxf | 0 {tests => ffmpeg-y/tests}/ref/lavf/mxf_d10 | 0 {tests => ffmpeg-y/tests}/ref/lavf/mxf_dv25 | 0 .../tests}/ref/lavf/mxf_dvcpro50 | 0 {tests => ffmpeg-y/tests}/ref/lavf/mxf_opatom | 0 .../tests}/ref/lavf/mxf_opatom_audio | 0 {tests => ffmpeg-y/tests}/ref/lavf/nut | 0 {tests => ffmpeg-y/tests}/ref/lavf/ogg | 0 {tests => ffmpeg-y/tests}/ref/lavf/pam | 0 {tests => ffmpeg-y/tests}/ref/lavf/pbmpipe | 0 {tests => ffmpeg-y/tests}/ref/lavf/pcx | 0 {tests => ffmpeg-y/tests}/ref/lavf/peak.wav | 0 .../tests}/ref/lavf/peak_only.wav | 0 {tests => ffmpeg-y/tests}/ref/lavf/pgm | 0 {tests => ffmpeg-y/tests}/ref/lavf/pgmpipe | 0 {tests => ffmpeg-y/tests}/ref/lavf/png | 0 {tests => ffmpeg-y/tests}/ref/lavf/ppm | 0 {tests => ffmpeg-y/tests}/ref/lavf/ppmpipe | 0 .../tests}/ref/lavf/rgb48be.pam | 0 .../tests}/ref/lavf/rgb48be.png | 0 .../tests}/ref/lavf/rgb48le.dpx | 0 .../tests}/ref/lavf/rgb48le_10.dpx | 0 .../tests}/ref/lavf/rgb4_byte.xwd | 0 .../tests}/ref/lavf/rgb555be.xwd | 0 .../tests}/ref/lavf/rgb565be.xwd | 0 {tests => ffmpeg-y/tests}/ref/lavf/rgb8.xwd | 0 {tests => ffmpeg-y/tests}/ref/lavf/rgba.pam | 0 {tests => ffmpeg-y/tests}/ref/lavf/rgba.xwd | 0 .../tests}/ref/lavf/rgba64le.dpx | 0 {tests => ffmpeg-y/tests}/ref/lavf/rm | 0 {tests => ffmpeg-y/tests}/ref/lavf/rso | 0 {tests => ffmpeg-y/tests}/ref/lavf/s16.voc | 0 {tests => ffmpeg-y/tests}/ref/lavf/sgi | 0 {tests => ffmpeg-y/tests}/ref/lavf/smjpeg | 0 {tests => ffmpeg-y/tests}/ref/lavf/sox | 0 {tests => ffmpeg-y/tests}/ref/lavf/sun | 0 {tests => ffmpeg-y/tests}/ref/lavf/swf | 0 {tests => ffmpeg-y/tests}/ref/lavf/tga | 0 {tests => ffmpeg-y/tests}/ref/lavf/tiff | 0 {tests => ffmpeg-y/tests}/ref/lavf/ts | 0 {tests => ffmpeg-y/tests}/ref/lavf/tta | 0 {tests => ffmpeg-y/tests}/ref/lavf/ul | 0 {tests => ffmpeg-y/tests}/ref/lavf/voc | 0 {tests => ffmpeg-y/tests}/ref/lavf/w64 | 0 {tests => ffmpeg-y/tests}/ref/lavf/wav | 0 {tests => ffmpeg-y/tests}/ref/lavf/wtv | 0 {tests => ffmpeg-y/tests}/ref/lavf/wv | 0 {tests => ffmpeg-y/tests}/ref/lavf/xbm | 0 {tests => ffmpeg-y/tests}/ref/lavf/xwd | 0 {tests => ffmpeg-y/tests}/ref/lavf/y4m | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/bgr24 | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/gray | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/monob | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/monow | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/rgb24 | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/rgb32 | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/rgb555 | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/rgb565 | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuv410p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuv411p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuv420p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuv422p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuv440p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuv444p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj420p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj422p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj440p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj444p | 0 {tests => ffmpeg-y/tests}/ref/pixfmt/yuyv422 | 0 .../tests}/ref/seek/acodec-adpcm-ima_qt | 0 .../ref/seek/acodec-adpcm-ima_qt-trellis | 0 .../tests}/ref/seek/acodec-adpcm-ima_wav | 0 .../ref/seek/acodec-adpcm-ima_wav-trellis | 0 .../tests}/ref/seek/acodec-adpcm-ms | 0 .../tests}/ref/seek/acodec-adpcm-ms-trellis | 0 .../tests}/ref/seek/acodec-adpcm-swf | 0 .../tests}/ref/seek/acodec-adpcm-swf-trellis | 0 .../tests}/ref/seek/acodec-adpcm-yamaha | 0 .../ref/seek/acodec-adpcm-yamaha-trellis | 0 .../tests}/ref/seek/acodec-alac | 0 .../tests}/ref/seek/acodec-flac | 0 {tests => ffmpeg-y/tests}/ref/seek/acodec-mp2 | 0 .../tests}/ref/seek/acodec-pcm-alaw | 0 .../tests}/ref/seek/acodec-pcm-f32be | 0 .../tests}/ref/seek/acodec-pcm-f32le | 0 .../tests}/ref/seek/acodec-pcm-f64be | 0 .../tests}/ref/seek/acodec-pcm-f64le | 0 .../tests}/ref/seek/acodec-pcm-mulaw | 0 .../tests}/ref/seek/acodec-pcm-s16be | 0 .../tests}/ref/seek/acodec-pcm-s16le | 0 .../tests}/ref/seek/acodec-pcm-s24be | 0 .../tests}/ref/seek/acodec-pcm-s24le | 0 .../tests}/ref/seek/acodec-pcm-s32be | 0 .../tests}/ref/seek/acodec-pcm-s32le | 0 .../tests}/ref/seek/acodec-pcm-s8 | 0 .../tests}/ref/seek/acodec-pcm-u8 | 0 {tests => ffmpeg-y/tests}/ref/seek/cache-pipe | 0 .../tests}/ref/seek/empty-edit-mp4 | 0 {tests => ffmpeg-y/tests}/ref/seek/extra-mp3 | 0 {tests => ffmpeg-y/tests}/ref/seek/extra-mp4 | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-aiff | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-al | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-asf | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-au | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-avi | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-bmp | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-dv | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-flv | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-gif | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-gxf | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-jpg | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-mkv | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-mmf | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-mov | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-mpg | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf | 0 .../tests}/ref/seek/lavf-mxf_d10 | 0 .../tests}/ref/seek/lavf-mxf_dv25 | 0 .../tests}/ref/seek/lavf-mxf_dvcpro50 | 0 .../tests}/ref/seek/lavf-mxf_opatom | 0 .../tests}/ref/seek/lavf-mxf_opatom_audio | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-nut | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-ogg | 0 .../tests}/ref/seek/lavf-pbmpipe | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-pcx | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-pgm | 0 .../tests}/ref/seek/lavf-pgmpipe | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-ppm | 0 .../tests}/ref/seek/lavf-ppmpipe | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-rm | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-sgi | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-swf | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-tga | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-tiff | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-ts | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-ul | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-voc | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-wav | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-wtv | 0 {tests => ffmpeg-y/tests}/ref/seek/lavf-y4m | 0 .../tests}/ref/seek/mkv-codec-delay | 0 .../tests}/ref/seek/test-iibbibb-mp4 | 0 .../tests}/ref/seek/test-iibbibb-neg-ctts-mp4 | 0 .../tests}/ref/seek/vsynth_lena-asv1 | 0 .../tests}/ref/seek/vsynth_lena-asv2 | 0 .../tests}/ref/seek/vsynth_lena-dnxhd-1080i | 0 .../ref/seek/vsynth_lena-dnxhd-4k-hr-lb | 0 .../tests}/ref/seek/vsynth_lena-dnxhd-720p | 0 .../tests}/ref/seek/vsynth_lena-dnxhd-720p-rd | 0 .../tests}/ref/seek/vsynth_lena-dv | 0 .../tests}/ref/seek/vsynth_lena-dv-411 | 0 .../tests}/ref/seek/vsynth_lena-dv-50 | 0 .../tests}/ref/seek/vsynth_lena-ffv1 | 0 .../tests}/ref/seek/vsynth_lena-flashsv | 0 .../tests}/ref/seek/vsynth_lena-flv | 0 .../tests}/ref/seek/vsynth_lena-h261 | 0 .../tests}/ref/seek/vsynth_lena-h263 | 0 .../tests}/ref/seek/vsynth_lena-h263p | 0 .../tests}/ref/seek/vsynth_lena-huffyuv | 0 .../tests}/ref/seek/vsynth_lena-jpegls | 0 .../tests}/ref/seek/vsynth_lena-ljpeg | 0 .../tests}/ref/seek/vsynth_lena-mjpeg | 0 .../tests}/ref/seek/vsynth_lena-mpeg1 | 0 .../tests}/ref/seek/vsynth_lena-mpeg1b | 0 .../tests}/ref/seek/vsynth_lena-mpeg2-422 | 0 .../ref/seek/vsynth_lena-mpeg2-idct-int | 0 .../tests}/ref/seek/vsynth_lena-mpeg2-ilace | 0 .../ref/seek/vsynth_lena-mpeg2-ivlc-qprd | 0 .../tests}/ref/seek/vsynth_lena-mpeg2-thread | 0 .../ref/seek/vsynth_lena-mpeg2-thread-ivlc | 0 .../tests}/ref/seek/vsynth_lena-mpeg4 | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-adap | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-adv | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-error | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-nr | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-nsse | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-qpel | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-qprd | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-rc | 0 .../tests}/ref/seek/vsynth_lena-mpeg4-thread | 0 .../tests}/ref/seek/vsynth_lena-msmpeg4 | 0 .../tests}/ref/seek/vsynth_lena-msmpeg4v2 | 0 .../tests}/ref/seek/vsynth_lena-rgb | 0 .../tests}/ref/seek/vsynth_lena-roqvideo | 0 .../tests}/ref/seek/vsynth_lena-rv10 | 0 .../tests}/ref/seek/vsynth_lena-rv20 | 0 .../tests}/ref/seek/vsynth_lena-snow | 0 .../tests}/ref/seek/vsynth_lena-snow-ll | 0 .../tests}/ref/seek/vsynth_lena-svq1 | 0 .../tests}/ref/seek/vsynth_lena-wmv1 | 0 .../tests}/ref/seek/vsynth_lena-wmv2 | 0 .../tests}/ref/seek/vsynth_lena-yuv | 0 .../tests}/ref/vsynth/vsynth1-amv | 0 .../tests}/ref/vsynth/vsynth1-asv1 | 0 .../tests}/ref/vsynth/vsynth1-asv2 | 0 .../tests}/ref/vsynth/vsynth1-avui | 0 .../tests}/ref/vsynth/vsynth1-bpp1 | 0 .../tests}/ref/vsynth/vsynth1-bpp15 | 0 .../tests}/ref/vsynth/vsynth1-cinepak | 0 .../tests}/ref/vsynth/vsynth1-cljr | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-1080i | 0 .../ref/vsynth/vsynth1-dnxhd-1080i-10bit | 0 .../ref/vsynth/vsynth1-dnxhd-1080i-colr | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-2k-hr-hq | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-4k-hr-lb | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-720p | 0 .../ref/vsynth/vsynth1-dnxhd-720p-10bit | 0 .../ref/vsynth/vsynth1-dnxhd-720p-hr-lb | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-720p-rd | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-edge1-hr | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-edge2-hr | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-edge3-hr | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-hr-hq-mov | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-hr-lb-mov | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-hr-sq-mov | 0 .../tests}/ref/vsynth/vsynth1-dnxhd-uhd-hr-sq | 0 .../tests}/ref/vsynth/vsynth1-dnxhd_1080i | 0 .../tests}/ref/vsynth/vsynth1-dv | 0 .../tests}/ref/vsynth/vsynth1-dv-411 | 0 .../tests}/ref/vsynth/vsynth1-dv-50 | 0 .../tests}/ref/vsynth/vsynth1-dv_411 | 0 .../tests}/ref/vsynth/vsynth1-ffv1 | 0 .../tests}/ref/vsynth/vsynth1-ffv1-v0 | 0 .../tests}/ref/vsynth/vsynth1-ffv1-v3-bgr0 | 0 .../tests}/ref/vsynth/vsynth1-ffv1-v3-rgb48 | 0 .../tests}/ref/vsynth/vsynth1-ffv1-v3-yuv420p | 0 .../ref/vsynth/vsynth1-ffv1-v3-yuv422p10 | 0 .../ref/vsynth/vsynth1-ffv1-v3-yuv444p16 | 0 .../tests}/ref/vsynth/vsynth1-ffvhuff | 0 .../tests}/ref/vsynth/vsynth1-ffvhuff420p12 | 0 .../ref/vsynth/vsynth1-ffvhuff422p10left | 0 .../tests}/ref/vsynth/vsynth1-ffvhuff444 | 0 .../tests}/ref/vsynth/vsynth1-ffvhuff444p16 | 0 .../tests}/ref/vsynth/vsynth1-flashsv | 0 .../tests}/ref/vsynth/vsynth1-flashsv2 | 0 .../tests}/ref/vsynth/vsynth1-flv | 0 .../tests}/ref/vsynth/vsynth1-h261 | 0 .../tests}/ref/vsynth/vsynth1-h261-trellis | 0 .../tests}/ref/vsynth/vsynth1-h263 | 0 .../tests}/ref/vsynth/vsynth1-h263-obmc | 0 .../tests}/ref/vsynth/vsynth1-h263p | 0 .../tests}/ref/vsynth/vsynth1-huffyuv | 0 .../tests}/ref/vsynth/vsynth1-huffyuvbgr24 | 0 .../tests}/ref/vsynth/vsynth1-huffyuvbgra | 0 .../tests}/ref/vsynth/vsynth1-jpeg2000 | 0 .../tests}/ref/vsynth/vsynth1-jpeg2000-97 | 0 .../tests}/ref/vsynth/vsynth1-jpegls | 0 .../tests}/ref/vsynth/vsynth1-ljpeg | 0 .../tests}/ref/vsynth/vsynth1-mjpeg | 0 .../tests}/ref/vsynth/vsynth1-mjpeg-422 | 0 .../tests}/ref/vsynth/vsynth1-mjpeg-444 | 0 .../tests}/ref/vsynth/vsynth1-mjpeg-huffman | 0 .../tests}/ref/vsynth/vsynth1-mjpeg-trell | 0 .../ref/vsynth/vsynth1-mjpeg-trell-huffman | 0 .../tests}/ref/vsynth/vsynth1-mov-bgr24 | 0 .../tests}/ref/vsynth/vsynth1-mov-bpp15 | 0 .../tests}/ref/vsynth/vsynth1-mov-bpp16 | 0 .../tests}/ref/vsynth/vsynth1-mpeg1 | 0 .../tests}/ref/vsynth/vsynth1-mpeg1b | 0 .../tests}/ref/vsynth/vsynth1-mpeg2 | 0 .../tests}/ref/vsynth/vsynth1-mpeg2-422 | 0 .../tests}/ref/vsynth/vsynth1-mpeg2-idct-int | 0 .../tests}/ref/vsynth/vsynth1-mpeg2-ilace | 0 .../tests}/ref/vsynth/vsynth1-mpeg2-ivlc-qprd | 0 .../tests}/ref/vsynth/vsynth1-mpeg2-thread | 0 .../ref/vsynth/vsynth1-mpeg2-thread-ivlc | 0 .../tests}/ref/vsynth/vsynth1-mpeg4 | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-adap | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-adv | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-error | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-nr | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-nsse | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-qpel | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-qprd | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-rc | 0 .../tests}/ref/vsynth/vsynth1-mpeg4-thread | 0 .../tests}/ref/vsynth/vsynth1-mpng | 0 .../tests}/ref/vsynth/vsynth1-msmpeg4 | 0 .../tests}/ref/vsynth/vsynth1-msmpeg4v2 | 0 .../tests}/ref/vsynth/vsynth1-msvideo1 | 0 .../tests}/ref/vsynth/vsynth1-prores | 0 .../tests}/ref/vsynth/vsynth1-prores_444 | 0 .../tests}/ref/vsynth/vsynth1-prores_444_int | 0 .../tests}/ref/vsynth/vsynth1-prores_int | 0 .../tests}/ref/vsynth/vsynth1-prores_ks | 0 .../tests}/ref/vsynth/vsynth1-qtrle | 0 .../tests}/ref/vsynth/vsynth1-qtrlegray | 0 .../tests}/ref/vsynth/vsynth1-r210 | 0 .../tests}/ref/vsynth/vsynth1-rgb | 0 .../tests}/ref/vsynth/vsynth1-roqvideo | 0 .../tests}/ref/vsynth/vsynth1-rv10 | 0 .../tests}/ref/vsynth/vsynth1-rv20 | 0 .../tests}/ref/vsynth/vsynth1-snow | 0 .../tests}/ref/vsynth/vsynth1-snow-hpel | 0 .../tests}/ref/vsynth/vsynth1-snow-ll | 0 .../tests}/ref/vsynth/vsynth1-svq1 | 0 .../tests}/ref/vsynth/vsynth1-v210 | 0 .../tests}/ref/vsynth/vsynth1-v210-10 | 0 .../tests}/ref/vsynth/vsynth1-v308 | 0 .../tests}/ref/vsynth/vsynth1-v408 | 0 .../tests}/ref/vsynth/vsynth1-vc2-420p | 0 .../tests}/ref/vsynth/vsynth1-vc2-420p10 | 0 .../tests}/ref/vsynth/vsynth1-vc2-420p12 | 0 .../tests}/ref/vsynth/vsynth1-vc2-422p | 0 .../tests}/ref/vsynth/vsynth1-vc2-422p10 | 0 .../tests}/ref/vsynth/vsynth1-vc2-422p12 | 0 .../tests}/ref/vsynth/vsynth1-vc2-444p | 0 .../tests}/ref/vsynth/vsynth1-vc2-444p10 | 0 .../tests}/ref/vsynth/vsynth1-vc2-444p12 | 0 .../tests}/ref/vsynth/vsynth1-vc2-t5_3 | 0 .../tests}/ref/vsynth/vsynth1-vc2-thaar | 0 .../tests}/ref/vsynth/vsynth1-wmv1 | 0 .../tests}/ref/vsynth/vsynth1-wmv2 | 0 .../tests}/ref/vsynth/vsynth1-xface | 0 .../tests}/ref/vsynth/vsynth1-y41p | 0 .../tests}/ref/vsynth/vsynth1-yuv | 0 .../tests}/ref/vsynth/vsynth1-yuv4 | 0 .../tests}/ref/vsynth/vsynth1-zlib | 0 .../tests}/ref/vsynth/vsynth1-zmbv | 0 .../tests}/ref/vsynth/vsynth2-amv | 0 .../tests}/ref/vsynth/vsynth2-asv1 | 0 .../tests}/ref/vsynth/vsynth2-asv2 | 0 .../tests}/ref/vsynth/vsynth2-avui | 0 .../tests}/ref/vsynth/vsynth2-bpp1 | 0 .../tests}/ref/vsynth/vsynth2-bpp15 | 0 .../tests}/ref/vsynth/vsynth2-cinepak | 0 .../tests}/ref/vsynth/vsynth2-cljr | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-1080i | 0 .../ref/vsynth/vsynth2-dnxhd-1080i-10bit | 0 .../ref/vsynth/vsynth2-dnxhd-1080i-colr | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-2k-hr-hq | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-4k-hr-lb | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-720p | 0 .../ref/vsynth/vsynth2-dnxhd-720p-10bit | 0 .../ref/vsynth/vsynth2-dnxhd-720p-hr-lb | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-720p-rd | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-edge1-hr | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-edge2-hr | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-edge3-hr | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-hr-hq-mov | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-hr-lb-mov | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-hr-sq-mov | 0 .../tests}/ref/vsynth/vsynth2-dnxhd-uhd-hr-sq | 0 .../tests}/ref/vsynth/vsynth2-dv | 0 .../tests}/ref/vsynth/vsynth2-dv-411 | 0 .../tests}/ref/vsynth/vsynth2-dv-50 | 0 .../tests}/ref/vsynth/vsynth2-ffv1 | 0 .../tests}/ref/vsynth/vsynth2-ffv1-v0 | 0 .../tests}/ref/vsynth/vsynth2-ffv1-v3-bgr0 | 0 .../tests}/ref/vsynth/vsynth2-ffv1-v3-rgb48 | 0 .../tests}/ref/vsynth/vsynth2-ffv1-v3-yuv420p | 0 .../ref/vsynth/vsynth2-ffv1-v3-yuv422p10 | 0 .../ref/vsynth/vsynth2-ffv1-v3-yuv444p16 | 0 .../tests}/ref/vsynth/vsynth2-ffvhuff | 0 .../tests}/ref/vsynth/vsynth2-ffvhuff420p12 | 0 .../ref/vsynth/vsynth2-ffvhuff422p10left | 0 .../tests}/ref/vsynth/vsynth2-ffvhuff444 | 0 .../tests}/ref/vsynth/vsynth2-ffvhuff444p16 | 0 .../tests}/ref/vsynth/vsynth2-flashsv | 0 .../tests}/ref/vsynth/vsynth2-flashsv2 | 0 .../tests}/ref/vsynth/vsynth2-flv | 0 .../tests}/ref/vsynth/vsynth2-h261 | 0 .../tests}/ref/vsynth/vsynth2-h261-trellis | 0 .../tests}/ref/vsynth/vsynth2-h263 | 0 .../tests}/ref/vsynth/vsynth2-h263-obmc | 0 .../tests}/ref/vsynth/vsynth2-h263p | 0 .../tests}/ref/vsynth/vsynth2-huffyuv | 0 .../tests}/ref/vsynth/vsynth2-huffyuvbgr24 | 0 .../tests}/ref/vsynth/vsynth2-huffyuvbgra | 0 .../tests}/ref/vsynth/vsynth2-jpeg2000 | 0 .../tests}/ref/vsynth/vsynth2-jpeg2000-97 | 0 .../tests}/ref/vsynth/vsynth2-jpegls | 0 .../tests}/ref/vsynth/vsynth2-ljpeg | 0 .../tests}/ref/vsynth/vsynth2-mjpeg | 0 .../tests}/ref/vsynth/vsynth2-mjpeg-422 | 0 .../tests}/ref/vsynth/vsynth2-mjpeg-444 | 0 .../tests}/ref/vsynth/vsynth2-mjpeg-huffman | 0 .../tests}/ref/vsynth/vsynth2-mjpeg-trell | 0 .../ref/vsynth/vsynth2-mjpeg-trell-huffman | 0 .../tests}/ref/vsynth/vsynth2-mov-bgr24 | 0 .../tests}/ref/vsynth/vsynth2-mov-bpp15 | 0 .../tests}/ref/vsynth/vsynth2-mov-bpp16 | 0 .../tests}/ref/vsynth/vsynth2-mpeg1 | 0 .../tests}/ref/vsynth/vsynth2-mpeg1b | 0 .../tests}/ref/vsynth/vsynth2-mpeg2 | 0 .../tests}/ref/vsynth/vsynth2-mpeg2-422 | 0 .../tests}/ref/vsynth/vsynth2-mpeg2-idct-int | 0 .../tests}/ref/vsynth/vsynth2-mpeg2-ilace | 0 .../tests}/ref/vsynth/vsynth2-mpeg2-ivlc-qprd | 0 .../tests}/ref/vsynth/vsynth2-mpeg2-thread | 0 .../ref/vsynth/vsynth2-mpeg2-thread-ivlc | 0 .../tests}/ref/vsynth/vsynth2-mpeg4 | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-adap | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-adv | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-error | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-nr | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-nsse | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-qpel | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-qprd | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-rc | 0 .../tests}/ref/vsynth/vsynth2-mpeg4-thread | 0 .../tests}/ref/vsynth/vsynth2-mpng | 0 .../tests}/ref/vsynth/vsynth2-msmpeg4 | 0 .../tests}/ref/vsynth/vsynth2-msmpeg4v2 | 0 .../tests}/ref/vsynth/vsynth2-msvideo1 | 0 .../tests}/ref/vsynth/vsynth2-prores | 0 .../tests}/ref/vsynth/vsynth2-prores_444 | 0 .../tests}/ref/vsynth/vsynth2-prores_444_int | 0 .../tests}/ref/vsynth/vsynth2-prores_int | 0 .../tests}/ref/vsynth/vsynth2-prores_ks | 0 .../tests}/ref/vsynth/vsynth2-qtrle | 0 .../tests}/ref/vsynth/vsynth2-qtrlegray | 0 .../tests}/ref/vsynth/vsynth2-r210 | 0 .../tests}/ref/vsynth/vsynth2-rgb | 0 .../tests}/ref/vsynth/vsynth2-roqvideo | 0 .../tests}/ref/vsynth/vsynth2-rv10 | 0 .../tests}/ref/vsynth/vsynth2-rv20 | 0 .../tests}/ref/vsynth/vsynth2-snow | 0 .../tests}/ref/vsynth/vsynth2-snow-hpel | 0 .../tests}/ref/vsynth/vsynth2-snow-ll | 0 .../tests}/ref/vsynth/vsynth2-svq1 | 0 .../tests}/ref/vsynth/vsynth2-v210 | 0 .../tests}/ref/vsynth/vsynth2-v210-10 | 0 .../tests}/ref/vsynth/vsynth2-v308 | 0 .../tests}/ref/vsynth/vsynth2-v408 | 0 .../tests}/ref/vsynth/vsynth2-vc2-420p | 0 .../tests}/ref/vsynth/vsynth2-vc2-420p10 | 0 .../tests}/ref/vsynth/vsynth2-vc2-420p12 | 0 .../tests}/ref/vsynth/vsynth2-vc2-422p | 0 .../tests}/ref/vsynth/vsynth2-vc2-422p10 | 0 .../tests}/ref/vsynth/vsynth2-vc2-422p12 | 0 .../tests}/ref/vsynth/vsynth2-vc2-444p | 0 .../tests}/ref/vsynth/vsynth2-vc2-444p10 | 0 .../tests}/ref/vsynth/vsynth2-vc2-444p12 | 0 .../tests}/ref/vsynth/vsynth2-vc2-t5_3 | 0 .../tests}/ref/vsynth/vsynth2-vc2-thaar | 0 .../tests}/ref/vsynth/vsynth2-wmv1 | 0 .../tests}/ref/vsynth/vsynth2-wmv2 | 0 .../tests}/ref/vsynth/vsynth2-xface | 0 .../tests}/ref/vsynth/vsynth2-y41p | 0 .../tests}/ref/vsynth/vsynth2-yuv | 0 .../tests}/ref/vsynth/vsynth2-yuv4 | 0 .../tests}/ref/vsynth/vsynth2-zlib | 0 .../tests}/ref/vsynth/vsynth3-amv | 0 .../tests}/ref/vsynth/vsynth3-asv1 | 0 .../tests}/ref/vsynth/vsynth3-asv2 | 0 .../tests}/ref/vsynth/vsynth3-bpp1 | 0 .../tests}/ref/vsynth/vsynth3-bpp15 | 0 .../tests}/ref/vsynth/vsynth3-cljr | 0 .../ref/vsynth/vsynth3-dnxhd-1080i-10bit | 0 .../ref/vsynth/vsynth3-dnxhd-1080i-colr | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-2k-hr-hq | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-4k-hr-lb | 0 .../ref/vsynth/vsynth3-dnxhd-720p-hr-lb | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-edge1-hr | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-edge2-hr | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-edge3-hr | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-hr-hq-mov | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-hr-lb-mov | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-hr-sq-mov | 0 .../tests}/ref/vsynth/vsynth3-dnxhd-uhd-hr-sq | 0 .../tests}/ref/vsynth/vsynth3-ffv1 | 0 .../tests}/ref/vsynth/vsynth3-ffv1-v0 | 0 .../tests}/ref/vsynth/vsynth3-ffv1-v3-bgr0 | 0 .../tests}/ref/vsynth/vsynth3-ffv1-v3-rgb48 | 0 .../tests}/ref/vsynth/vsynth3-ffv1-v3-yuv420p | 0 .../ref/vsynth/vsynth3-ffv1-v3-yuv422p10 | 0 .../ref/vsynth/vsynth3-ffv1-v3-yuv444p16 | 0 .../tests}/ref/vsynth/vsynth3-ffvhuff | 0 .../tests}/ref/vsynth/vsynth3-ffvhuff420p12 | 0 .../ref/vsynth/vsynth3-ffvhuff422p10left | 0 .../tests}/ref/vsynth/vsynth3-ffvhuff444 | 0 .../tests}/ref/vsynth/vsynth3-ffvhuff444p16 | 0 .../tests}/ref/vsynth/vsynth3-flashsv | 0 .../tests}/ref/vsynth/vsynth3-flashsv2 | 0 .../tests}/ref/vsynth/vsynth3-flv | 0 .../tests}/ref/vsynth/vsynth3-huffyuv | 0 .../tests}/ref/vsynth/vsynth3-huffyuvbgr24 | 0 .../tests}/ref/vsynth/vsynth3-huffyuvbgra | 0 .../tests}/ref/vsynth/vsynth3-jpeg2000 | 0 .../tests}/ref/vsynth/vsynth3-jpeg2000-97 | 0 .../tests}/ref/vsynth/vsynth3-jpegls | 0 .../tests}/ref/vsynth/vsynth3-ljpeg | 0 .../tests}/ref/vsynth/vsynth3-mjpeg | 0 .../tests}/ref/vsynth/vsynth3-mjpeg-422 | 0 .../tests}/ref/vsynth/vsynth3-mjpeg-444 | 0 .../tests}/ref/vsynth/vsynth3-mjpeg-huffman | 0 .../tests}/ref/vsynth/vsynth3-mjpeg-trell | 0 .../ref/vsynth/vsynth3-mjpeg-trell-huffman | 0 .../tests}/ref/vsynth/vsynth3-mov-bgr24 | 0 .../tests}/ref/vsynth/vsynth3-mov-bpp15 | 0 .../tests}/ref/vsynth/vsynth3-mov-bpp16 | 0 .../tests}/ref/vsynth/vsynth3-mpeg1 | 0 .../tests}/ref/vsynth/vsynth3-mpeg1b | 0 .../tests}/ref/vsynth/vsynth3-mpeg2 | 0 .../tests}/ref/vsynth/vsynth3-mpeg2-422 | 0 .../tests}/ref/vsynth/vsynth3-mpeg2-idct-int | 0 .../tests}/ref/vsynth/vsynth3-mpeg2-ilace | 0 .../tests}/ref/vsynth/vsynth3-mpeg2-ivlc-qprd | 0 .../tests}/ref/vsynth/vsynth3-mpeg2-thread | 0 .../ref/vsynth/vsynth3-mpeg2-thread-ivlc | 0 .../tests}/ref/vsynth/vsynth3-mpeg4 | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-adap | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-adv | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-error | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-nr | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-nsse | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-qpel | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-qprd | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-rc | 0 .../tests}/ref/vsynth/vsynth3-mpeg4-thread | 0 .../tests}/ref/vsynth/vsynth3-mpng | 0 .../tests}/ref/vsynth/vsynth3-msmpeg4 | 0 .../tests}/ref/vsynth/vsynth3-msmpeg4v2 | 0 .../tests}/ref/vsynth/vsynth3-prores | 0 .../tests}/ref/vsynth/vsynth3-prores_444 | 0 .../tests}/ref/vsynth/vsynth3-prores_444_int | 0 .../tests}/ref/vsynth/vsynth3-prores_int | 0 .../tests}/ref/vsynth/vsynth3-prores_ks | 0 .../tests}/ref/vsynth/vsynth3-qtrle | 0 .../tests}/ref/vsynth/vsynth3-r210 | 0 .../tests}/ref/vsynth/vsynth3-rgb | 0 .../tests}/ref/vsynth/vsynth3-svq1 | 0 .../tests}/ref/vsynth/vsynth3-v210 | 0 .../tests}/ref/vsynth/vsynth3-v210-10 | 0 .../tests}/ref/vsynth/vsynth3-v308 | 0 .../tests}/ref/vsynth/vsynth3-v408 | 0 .../tests}/ref/vsynth/vsynth3-wmv1 | 0 .../tests}/ref/vsynth/vsynth3-wmv2 | 0 .../tests}/ref/vsynth/vsynth3-xface | 0 .../tests}/ref/vsynth/vsynth3-yuv | 0 .../tests}/ref/vsynth/vsynth3-yuv4 | 0 .../tests}/ref/vsynth/vsynth3-zlib | 0 .../tests}/ref/vsynth/vsynth_lena-amv | 0 .../tests}/ref/vsynth/vsynth_lena-asv1 | 0 .../tests}/ref/vsynth/vsynth_lena-asv2 | 0 .../tests}/ref/vsynth/vsynth_lena-avui | 0 .../tests}/ref/vsynth/vsynth_lena-bpp1 | 0 .../tests}/ref/vsynth/vsynth_lena-bpp15 | 0 .../tests}/ref/vsynth/vsynth_lena-cinepak | 0 .../tests}/ref/vsynth/vsynth_lena-cljr | 0 .../tests}/ref/vsynth/vsynth_lena-dnxhd-1080i | 0 .../ref/vsynth/vsynth_lena-dnxhd-1080i-10bit | 0 .../ref/vsynth/vsynth_lena-dnxhd-1080i-colr | 0 .../ref/vsynth/vsynth_lena-dnxhd-2k-hr-hq | 0 .../ref/vsynth/vsynth_lena-dnxhd-4k-hr-lb | 0 .../tests}/ref/vsynth/vsynth_lena-dnxhd-720p | 0 .../ref/vsynth/vsynth_lena-dnxhd-720p-10bit | 0 .../ref/vsynth/vsynth_lena-dnxhd-720p-hr-lb | 0 .../ref/vsynth/vsynth_lena-dnxhd-720p-rd | 0 .../ref/vsynth/vsynth_lena-dnxhd-edge1-hr | 0 .../ref/vsynth/vsynth_lena-dnxhd-edge2-hr | 0 .../ref/vsynth/vsynth_lena-dnxhd-edge3-hr | 0 .../ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov | 0 .../ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov | 0 .../ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov | 0 .../ref/vsynth/vsynth_lena-dnxhd-uhd-hr-sq | 0 .../tests}/ref/vsynth/vsynth_lena-dnxhd_1080i | 0 .../tests}/ref/vsynth/vsynth_lena-dv | 0 .../tests}/ref/vsynth/vsynth_lena-dv-411 | 0 .../tests}/ref/vsynth/vsynth_lena-dv-50 | 0 .../tests}/ref/vsynth/vsynth_lena-dv_411 | 0 .../tests}/ref/vsynth/vsynth_lena-ffv1 | 0 .../tests}/ref/vsynth/vsynth_lena-ffv1-v0 | 0 .../ref/vsynth/vsynth_lena-ffv1-v3-bgr0 | 0 .../ref/vsynth/vsynth_lena-ffv1-v3-rgb48 | 0 .../ref/vsynth/vsynth_lena-ffv1-v3-yuv420p | 0 .../ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 | 0 .../ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 | 0 .../tests}/ref/vsynth/vsynth_lena-ffvhuff | 0 .../ref/vsynth/vsynth_lena-ffvhuff420p12 | 0 .../ref/vsynth/vsynth_lena-ffvhuff422p10left | 0 .../tests}/ref/vsynth/vsynth_lena-ffvhuff444 | 0 .../ref/vsynth/vsynth_lena-ffvhuff444p16 | 0 .../tests}/ref/vsynth/vsynth_lena-flashsv | 0 .../tests}/ref/vsynth/vsynth_lena-flashsv2 | 0 .../tests}/ref/vsynth/vsynth_lena-flv | 0 .../tests}/ref/vsynth/vsynth_lena-h261 | 0 .../ref/vsynth/vsynth_lena-h261-trellis | 0 .../tests}/ref/vsynth/vsynth_lena-h263 | 0 .../tests}/ref/vsynth/vsynth_lena-h263-obmc | 0 .../tests}/ref/vsynth/vsynth_lena-h263p | 0 .../tests}/ref/vsynth/vsynth_lena-huffyuv | 0 .../ref/vsynth/vsynth_lena-huffyuvbgr24 | 0 .../tests}/ref/vsynth/vsynth_lena-huffyuvbgra | 0 .../tests}/ref/vsynth/vsynth_lena-jpeg2000 | 0 .../tests}/ref/vsynth/vsynth_lena-jpeg2000-97 | 0 .../tests}/ref/vsynth/vsynth_lena-jpegls | 0 .../tests}/ref/vsynth/vsynth_lena-ljpeg | 0 .../tests}/ref/vsynth/vsynth_lena-mjpeg | 0 .../tests}/ref/vsynth/vsynth_lena-mjpeg-422 | 0 .../tests}/ref/vsynth/vsynth_lena-mjpeg-444 | 0 .../ref/vsynth/vsynth_lena-mjpeg-huffman | 0 .../tests}/ref/vsynth/vsynth_lena-mjpeg-trell | 0 .../vsynth/vsynth_lena-mjpeg-trell-huffman | 0 .../tests}/ref/vsynth/vsynth_lena-mov-bgr24 | 0 .../tests}/ref/vsynth/vsynth_lena-mov-bpp15 | 0 .../tests}/ref/vsynth/vsynth_lena-mov-bpp16 | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg1 | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg1b | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg2 | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg2-422 | 0 .../ref/vsynth/vsynth_lena-mpeg2-idct-int | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg2-ilace | 0 .../ref/vsynth/vsynth_lena-mpeg2-ivlc-qprd | 0 .../ref/vsynth/vsynth_lena-mpeg2-thread | 0 .../ref/vsynth/vsynth_lena-mpeg2-thread-ivlc | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4 | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-adap | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-adv | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-error | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-nr | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-nsse | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-qpel | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-qprd | 0 .../tests}/ref/vsynth/vsynth_lena-mpeg4-rc | 0 .../ref/vsynth/vsynth_lena-mpeg4-thread | 0 .../tests}/ref/vsynth/vsynth_lena-mpng | 0 .../tests}/ref/vsynth/vsynth_lena-msmpeg4 | 0 .../tests}/ref/vsynth/vsynth_lena-msmpeg4v2 | 0 .../tests}/ref/vsynth/vsynth_lena-msvideo1 | 0 .../tests}/ref/vsynth/vsynth_lena-prores | 0 .../tests}/ref/vsynth/vsynth_lena-prores_444 | 0 .../ref/vsynth/vsynth_lena-prores_444_int | 0 .../tests}/ref/vsynth/vsynth_lena-prores_int | 0 .../tests}/ref/vsynth/vsynth_lena-prores_ks | 0 .../tests}/ref/vsynth/vsynth_lena-qtrle | 0 .../tests}/ref/vsynth/vsynth_lena-qtrlegray | 0 .../tests}/ref/vsynth/vsynth_lena-r210 | 0 .../tests}/ref/vsynth/vsynth_lena-rgb | 0 .../tests}/ref/vsynth/vsynth_lena-roqvideo | 0 .../tests}/ref/vsynth/vsynth_lena-rv10 | 0 .../tests}/ref/vsynth/vsynth_lena-rv20 | 0 .../tests}/ref/vsynth/vsynth_lena-snow | 0 .../tests}/ref/vsynth/vsynth_lena-snow-hpel | 0 .../tests}/ref/vsynth/vsynth_lena-snow-ll | 0 .../tests}/ref/vsynth/vsynth_lena-svq1 | 0 .../tests}/ref/vsynth/vsynth_lena-v210 | 0 .../tests}/ref/vsynth/vsynth_lena-v210-10 | 0 .../tests}/ref/vsynth/vsynth_lena-v308 | 0 .../tests}/ref/vsynth/vsynth_lena-v408 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-420p | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-420p10 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-420p12 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-422p | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-422p10 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-422p12 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-444p | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-444p10 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-444p12 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-t5_3 | 0 .../tests}/ref/vsynth/vsynth_lena-vc2-thaar | 0 .../tests}/ref/vsynth/vsynth_lena-wmv1 | 0 .../tests}/ref/vsynth/vsynth_lena-wmv2 | 0 .../tests}/ref/vsynth/vsynth_lena-xface | 0 .../tests}/ref/vsynth/vsynth_lena-y41p | 0 .../tests}/ref/vsynth/vsynth_lena-yuv | 0 .../tests}/ref/vsynth/vsynth_lena-yuv4 | 0 .../tests}/ref/vsynth/vsynth_lena-zlib | 0 .../tests}/ref/vsynth/vsynth_lena-zmbv | 0 {tests => ffmpeg-y/tests}/ref/vsynth1/cljr | 0 {tests => ffmpeg-y/tests}/ref/vsynth1/yuv | 0 .../tests}/ref/vsynth_lena/cljr | 0 .../tests}/ref/vsynth_lena/huffyuv | 0 {tests => ffmpeg-y/tests}/ref/vsynth_lena/yuv | 0 {tests => ffmpeg-y/tests}/refcmp-metadata.awk | 0 {tests => ffmpeg-y/tests}/reference.pnm | 0 {tests => ffmpeg-y/tests}/rotozoom.c | 0 {tests => ffmpeg-y/tests}/simple1.ffconcat | 0 {tests => ffmpeg-y/tests}/simple2.ffconcat | 0 {tests => ffmpeg-y/tests}/test.ffmeta | 0 {tests => ffmpeg-y/tests}/tiny_psnr.c | 0 {tests => ffmpeg-y/tests}/tiny_ssim.c | 0 {tests => ffmpeg-y/tests}/utils.c | 0 {tests => ffmpeg-y/tests}/videogen.c | 0 {tools => ffmpeg-y/tools}/Makefile | 0 {tools => ffmpeg-y/tools}/aviocat.c | 0 {tools => ffmpeg-y/tools}/bisect-create | 0 {tools => ffmpeg-y/tools}/bookmarklets.html | 0 {tools => ffmpeg-y/tools}/cl2c | 0 {tools => ffmpeg-y/tools}/clean-diff | 0 {tools => ffmpeg-y/tools}/coverity.c | 0 {tools => ffmpeg-y/tools}/crypto_bench.c | 0 {tools => ffmpeg-y/tools}/cws2fws.c | 0 {tools => ffmpeg-y/tools}/dvd2concat | 0 {tools => ffmpeg-y/tools}/enum_options.c | 0 {tools => ffmpeg-y/tools}/ffescape.c | 0 {tools => ffmpeg-y/tools}/ffeval.c | 0 {tools => ffmpeg-y/tools}/ffhash.c | 0 {tools => ffmpeg-y/tools}/fourcc2pixfmt.c | 0 {tools => ffmpeg-y/tools}/gen-rc | 0 {tools => ffmpeg-y/tools}/graph2dot.c | 0 {tools => ffmpeg-y/tools}/ismindex.c | 0 .../tools}/libav-merge-next-commit | 0 {tools => ffmpeg-y/tools}/loudnorm.rb | 0 {tools => ffmpeg-y/tools}/make_chlayout_test | 0 {tools => ffmpeg-y/tools}/missing_codec_desc | 0 {tools => ffmpeg-y/tools}/murge | 0 {tools => ffmpeg-y/tools}/normalize.py | 0 {tools => ffmpeg-y/tools}/patcheck | 0 {tools => ffmpeg-y/tools}/pktdumper.c | 0 {tools => ffmpeg-y/tools}/plotframes | 0 {tools => ffmpeg-y/tools}/probetest.c | 0 {tools => ffmpeg-y/tools}/python/convert.py | 0 .../tools}/python/convert_from_tensorflow.py | 0 {tools => ffmpeg-y/tools}/qt-faststart.c | 0 {tools => ffmpeg-y/tools}/seek_print.c | 0 {tools => ffmpeg-y/tools}/sidxindex.c | 0 {tools => ffmpeg-y/tools}/sofa2wavs.c | 0 .../tools}/target_dec_fate.list | 0 {tools => ffmpeg-y/tools}/target_dec_fate.sh | 0 {tools => ffmpeg-y/tools}/target_dec_fuzzer.c | 0 {tools => ffmpeg-y/tools}/target_dem_fuzzer.c | 0 {tools => ffmpeg-y/tools}/trasher.c | 0 {tools => ffmpeg-y/tools}/uncoded_frame.c | 0 {tools => ffmpeg-y/tools}/unwrap-diff | 0 {tools => ffmpeg-y/tools}/yuvcmp.c | 0 {tools => ffmpeg-y/tools}/zmqsend.c | 0 {tools => ffmpeg-y/tools}/zmqshell.py | 0 libavcodec/.gitignore | 6 - libavcodec/tests/.gitignore | 23 - libavcodec/x86/aacencdsp.asm | 86 - libavcodec/x86/aacpsdsp.asm | 487 -- libavcodec/x86/ac3dsp.asm | 552 -- libavcodec/x86/ac3dsp_downmix.asm | 187 - libavcodec/x86/alacdsp.asm | 133 - libavcodec/x86/audiodsp.asm | 174 - libavcodec/x86/blockdsp.asm | 88 - libavcodec/x86/bswapdsp.asm | 159 - libavcodec/x86/cavsidct.asm | 211 - libavcodec/x86/celt_pvq_search.asm | 385 - libavcodec/x86/dcadsp.asm | 301 - libavcodec/x86/dct32.asm | 491 -- libavcodec/x86/dirac_dwt.asm | 307 - libavcodec/x86/diracdsp.asm | 347 - libavcodec/x86/dnxhdenc.asm | 49 - libavcodec/x86/exrdsp.asm | 118 - libavcodec/x86/fft.asm | 1085 --- libavcodec/x86/flac_dsp_gpl.asm | 101 - libavcodec/x86/flacdsp.asm | 313 - libavcodec/x86/fmtconvert.asm | 124 - libavcodec/x86/fpel.asm | 106 - libavcodec/x86/g722dsp.asm | 54 - libavcodec/x86/h263_loopfilter.asm | 189 - libavcodec/x86/h264_chromamc.asm | 663 -- libavcodec/x86/h264_chromamc_10bit.asm | 269 - libavcodec/x86/h264_deblock.asm | 1420 ---- libavcodec/x86/h264_deblock_10bit.asm | 1080 --- libavcodec/x86/h264_idct.asm | 1199 --- libavcodec/x86/h264_idct_10bit.asm | 657 -- libavcodec/x86/h264_intrapred.asm | 2757 ------ libavcodec/x86/h264_intrapred_10bit.asm | 1199 --- libavcodec/x86/h264_qpel_10bit.asm | 884 -- libavcodec/x86/h264_qpel_8bit.asm | 862 -- libavcodec/x86/h264_weight.asm | 320 - libavcodec/x86/h264_weight_10bit.asm | 284 - libavcodec/x86/hevc_add_res.asm | 369 - libavcodec/x86/hevc_deblock.asm | 871 -- libavcodec/x86/hevc_idct.asm | 853 -- libavcodec/x86/hevc_mc.asm | 1672 ---- libavcodec/x86/hevc_sao.asm | 340 - libavcodec/x86/hevc_sao_10bit.asm | 370 - libavcodec/x86/hpeldsp.asm | 591 -- libavcodec/x86/hpeldsp_vp3.asm | 111 - libavcodec/x86/huffyuvdsp.asm | 164 - libavcodec/x86/huffyuvdsp_template.asm | 76 - libavcodec/x86/huffyuvencdsp.asm | 105 - libavcodec/x86/idctdsp.asm | 183 - libavcodec/x86/imdct36.asm | 741 -- libavcodec/x86/jpeg2000dsp.asm | 164 - libavcodec/x86/lossless_audiodsp.asm | 190 - libavcodec/x86/lossless_videodsp.asm | 406 - libavcodec/x86/lossless_videoencdsp.asm | 194 - libavcodec/x86/mdct15.asm | 221 - libavcodec/x86/me_cmp.asm | 934 -- libavcodec/x86/mlpdsp.asm | 196 - libavcodec/x86/mpegvideoencdsp.asm | 154 - libavcodec/x86/opusdsp.asm | 110 - libavcodec/x86/pixblockdsp.asm | 128 - libavcodec/x86/pngdsp.asm | 173 - libavcodec/x86/proresdsp.asm | 68 - libavcodec/x86/qpel.asm | 179 - libavcodec/x86/qpeldsp.asm | 560 -- libavcodec/x86/rv34dsp.asm | 213 - libavcodec/x86/rv40dsp.asm | 500 -- libavcodec/x86/sbcdsp.asm | 168 - libavcodec/x86/sbrdsp.asm | 548 -- libavcodec/x86/simple_idct.asm | 889 -- libavcodec/x86/simple_idct10.asm | 205 - libavcodec/x86/simple_idct10_template.asm | 369 - libavcodec/x86/svq1enc.asm | 61 - libavcodec/x86/synth_filter.asm | 246 - libavcodec/x86/takdsp.asm | 116 - libavcodec/x86/ttadsp.asm | 119 - libavcodec/x86/ttaencdsp.asm | 119 - libavcodec/x86/utvideodsp.asm | 137 - libavcodec/x86/v210.asm | 129 - libavcodec/x86/v210enc.asm | 184 - libavcodec/x86/vc1dsp_loopfilter.asm | 317 - libavcodec/x86/vc1dsp_mc.asm | 292 - libavcodec/x86/videodsp.asm | 468 - libavcodec/x86/vorbisdsp.asm | 86 - libavcodec/x86/vp3dsp.asm | 742 -- libavcodec/x86/vp6dsp.asm | 167 - libavcodec/x86/vp8dsp.asm | 1231 --- libavcodec/x86/vp8dsp_loopfilter.asm | 1584 ---- libavcodec/x86/vp9intrapred.asm | 2044 ----- libavcodec/x86/vp9intrapred_16bpp.asm | 2392 ------ libavcodec/x86/vp9itxfm.asm | 3197 ------- libavcodec/x86/vp9itxfm_16bpp.asm | 2044 ----- libavcodec/x86/vp9itxfm_template.asm | 142 - libavcodec/x86/vp9lpf.asm | 1211 --- libavcodec/x86/vp9lpf_16bpp.asm | 823 -- libavcodec/x86/vp9mc.asm | 675 -- libavcodec/x86/vp9mc_16bpp.asm | 431 - libavcodec/x86/xvididct.asm | 983 --- libavdevice/.gitignore | 2 - libavdevice/tests/.gitignore | 1 - libavfilter/.gitignore | 1 - libavfilter/opencl/.gitignore | 1 - libavfilter/tests/.gitignore | 4 - libavfilter/x86/af_afir.asm | 69 - libavfilter/x86/af_anlmdn.asm | 80 - libavfilter/x86/af_volume.asm | 140 - libavfilter/x86/avf_showcqt.asm | 192 - libavfilter/x86/colorspacedsp.asm | 1097 --- libavfilter/x86/scene_sad.asm | 74 - libavfilter/x86/vf_blend.asm | 498 -- libavfilter/x86/vf_bwdif.asm | 270 - libavfilter/x86/vf_framerate.asm | 134 - libavfilter/x86/vf_fspp.asm | 727 -- libavfilter/x86/vf_gblur.asm | 185 - libavfilter/x86/vf_gradfun.asm | 110 - libavfilter/x86/vf_hflip.asm | 90 - libavfilter/x86/vf_hqdn3d.asm | 106 - libavfilter/x86/vf_idet.asm | 170 - libavfilter/x86/vf_interlace.asm | 226 - libavfilter/x86/vf_limiter.asm | 80 - libavfilter/x86/vf_maskedmerge.asm | 81 - libavfilter/x86/vf_overlay.asm | 144 - libavfilter/x86/vf_pp7.asm | 57 - libavfilter/x86/vf_psnr.asm | 140 - libavfilter/x86/vf_pullup.asm | 178 - libavfilter/x86/vf_removegrain.asm | 1218 --- libavfilter/x86/vf_ssim.asm | 247 - libavfilter/x86/vf_stereo3d.asm | 216 - libavfilter/x86/vf_threshold.asm | 92 - libavfilter/x86/vf_w3fdif.asm | 259 - libavfilter/x86/vf_yadif.asm | 243 - libavfilter/x86/yadif-10.asm | 255 - libavfilter/x86/yadif-16.asm | 293 - libavformat/.gitignore | 3 - libavformat/tests/.gitignore | 7 - libavresample/tests/.gitignore | 1 - libavresample/x86/audio_convert.asm | 1261 --- libavresample/x86/audio_mix.asm | 511 -- libavresample/x86/dither.asm | 117 - libavresample/x86/util.asm | 41 - libavutil/.gitignore | 2 - libavutil/tests/.gitignore | 51 - libavutil/x86/cpuid.asm | 91 - libavutil/x86/emms.asm | 30 - libavutil/x86/fixed_dsp.asm | 48 - libavutil/x86/float_dsp.asm | 484 -- libavutil/x86/imgutils.asm | 53 - libavutil/x86/lls.asm | 290 - libavutil/x86/pixelutils.asm | 386 - libavutil/x86/x86inc.asm | 1701 ---- libavutil/x86/x86util.asm | 1028 --- libswresample/tests/.gitignore | 1 - libswresample/x86/audio_convert.asm | 739 -- libswresample/x86/rematrix.asm | 250 - libswresample/x86/resample.asm | 619 -- libswscale/tests/.gitignore | 3 - libswscale/x86/input.asm | 740 -- libswscale/x86/output.asm | 425 - libswscale/x86/rgb_2_rgb.asm | 300 - libswscale/x86/scale.asm | 423 - tests/.gitignore | 11 - tests/api/.gitignore | 1 - tests/checkasm/.gitignore | 1 - tests/checkasm/x86/checkasm.asm | 244 - tools/.gitignore | 19 - 7113 files changed, 15398 insertions(+), 68501 deletions(-) delete mode 100644 .gitignore mode change 100644 => 100755 Makefile create mode 100755 cfg.mak create mode 100755 configure_gcc create mode 100755 configure_llvm delete mode 100644 doc/.gitignore delete mode 100644 doc/doxy/.gitignore delete mode 100644 doc/examples/.gitignore delete mode 100644 ffbuild/.gitignore rename .gitattributes => ffmpeg-y/.gitattributes (100%) mode change 100644 => 100755 rename .travis.yml => ffmpeg-y/.travis.yml (100%) mode change 100644 => 100755 rename CONTRIBUTING.md => ffmpeg-y/CONTRIBUTING.md (100%) mode change 100644 => 100755 rename COPYING.GPLv2 => ffmpeg-y/COPYING.GPLv2 (100%) mode change 100644 => 100755 rename COPYING.GPLv3 => ffmpeg-y/COPYING.GPLv3 (100%) mode change 100644 => 100755 rename COPYING.LGPLv2.1 => ffmpeg-y/COPYING.LGPLv2.1 (100%) mode change 100644 => 100755 rename COPYING.LGPLv3 => ffmpeg-y/COPYING.LGPLv3 (100%) mode change 100644 => 100755 rename CREDITS => ffmpeg-y/CREDITS (100%) mode change 100644 => 100755 rename Changelog => ffmpeg-y/Changelog (100%) mode change 100644 => 100755 rename INSTALL.md => ffmpeg-y/INSTALL.md (100%) mode change 100644 => 100755 rename LICENSE.md => ffmpeg-y/LICENSE.md (100%) mode change 100644 => 100755 rename MAINTAINERS => ffmpeg-y/MAINTAINERS (100%) mode change 100644 => 100755 create mode 100755 ffmpeg-y/Makefile rename README.md => ffmpeg-y/README.md (100%) mode change 100644 => 100755 rename RELEASE => ffmpeg-y/RELEASE (100%) mode change 100644 => 100755 rename RELEASE_NOTES => ffmpeg-y/RELEASE_NOTES (100%) mode change 100644 => 100755 rename VERSION => ffmpeg-y/VERSION (100%) rename adapt_liteos_config.sh => ffmpeg-y/adapt_liteos_config.sh (100%) rename {compat => ffmpeg-y/compat}/aix/math.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/atomics/dummy/stdatomic.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/atomics/gcc/stdatomic.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/atomics/pthread/stdatomic.c (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/atomics/pthread/stdatomic.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/atomics/suncc/stdatomic.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/atomics/win32/stdatomic.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/avisynth_c.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/avs/capi.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/avs/config.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/avs/types.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/avxsynth_c.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/windowsPorts/basicDataTypeConversions.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/avisynth/windowsPorts/windows2linux.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/cuda/cuda_runtime.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/cuda/dynlink_loader.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/cuda/ptx2c.sh (100%) rename {compat => ffmpeg-y/compat}/dispatch_semaphore/semaphore.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/djgpp/math.c (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/djgpp/math.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/float/float.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/float/limits.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/getopt.c (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/msvcrt/snprintf.c (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/msvcrt/snprintf.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/os2threads.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/solaris/make_sunver.pl (100%) rename {compat => ffmpeg-y/compat}/strtod.c (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/va_copy.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/w32dlfcn.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/w32pthreads.h (100%) mode change 100644 => 100755 rename {compat => ffmpeg-y/compat}/windows/makedef (100%) rename {compat => ffmpeg-y/compat}/windows/mslink (100%) rename configure => ffmpeg-y/configure (99%) rename disable_decoder_config.sh => ffmpeg-y/disable_decoder_config.sh (51%) rename {doc => ffmpeg-y/doc}/APIchanges (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/Doxyfile (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/Makefile (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/authors.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/bitstream_filters.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/bootstrap.min.css (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/build_system.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/codecs.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/decoders.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/default.css (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/demuxers.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/developer.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/devices.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/doxy-wrapper.sh (100%) rename {doc => ffmpeg-y/doc}/encoders.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/errno.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/Makefile (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/Makefile.example (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/README (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/avio_dir_cmd.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/avio_reading.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/decode_audio.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/decode_video.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/demuxing_decoding.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/encode_audio.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/encode_video.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/extract_mvs.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/filter_audio.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/filtering_audio.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/filtering_video.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/http_multiclient.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/hw_decode.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/metadata.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/muxing.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/qsvdec.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/remuxing.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/resampling_audio.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/scaling_video.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/transcode_aac.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/transcoding.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/vaapi_encode.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/examples/vaapi_transcode.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/faq.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/fate.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/fate_config.sh.template (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-bitstream-filters.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-codecs.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-devices.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-filters.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-formats.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-protocols.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-resampler.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-scaler.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg-utils.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffmpeg.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffplay.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffprobe.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/ffprobe.xsd (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/fftools-common-opts.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/filter_design.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/filters.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/formats.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/general.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/git-howto.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/indevs.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/issue_tracker.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/lexicon (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libav-merge.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libavcodec.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libavdevice.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libavfilter.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libavformat.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libavutil.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libswresample.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/libswscale.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/mailing-list-faq.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/metadata.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/mips.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/multithreading.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/muxers.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/nut.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/optimization.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/outdevs.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/patchwork (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/platform.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/print_options.c (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/protocols.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/rate_distortion.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/resampler.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/scaler.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/snow.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/style.min.css (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/swresample.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/swscale.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/t2h.init (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/t2h.pm (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/tablegen.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/texi2pod.pl (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/texidep.pl (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/undefined.txt (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/utils.texi (100%) mode change 100644 => 100755 rename {doc => ffmpeg-y/doc}/writing_filters.txt (100%) mode change 100644 => 100755 create mode 100755 ffmpeg-y/enable_decoder_config.sh rename {ffbuild => ffmpeg-y/ffbuild}/arch.mak (100%) mode change 100644 => 100755 rename {ffbuild => ffmpeg-y/ffbuild}/common.mak (98%) mode change 100644 => 100755 rename {ffbuild => ffmpeg-y/ffbuild}/library.mak (100%) mode change 100644 => 100755 rename {ffbuild => ffmpeg-y/ffbuild}/libversion.sh (100%) rename {ffbuild => ffmpeg-y/ffbuild}/pkgconfig_generate.sh (100%) rename {ffbuild => ffmpeg-y/ffbuild}/version.sh (100%) rename {fftools => ffmpeg-y/fftools}/Makefile (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/cmdutils.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/cmdutils.h (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg.h (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg_cuvid.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg_filter.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg_hw.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg_opt.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg_qsv.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffmpeg_videotoolbox.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffplay.c (100%) mode change 100644 => 100755 rename {fftools => ffmpeg-y/fftools}/ffprobe.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/012v.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/4xm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/8bps.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/8svx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/a64colors.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/a64multienc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/a64tables.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aac_ac3_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aac_ac3_parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aac_adtstoasc_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aac_defines.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aac_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aaccoder.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aaccoder_trellis.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aaccoder_twoloop.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacdec_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacdec_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacdectab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_is.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_is.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_ltp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_ltp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_pred.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_pred.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_quantization.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_quantization_misc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_tns.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_tns.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenc_utils.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenctab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacenctab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_fixed_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_fixed_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacps_tablegen_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacpsdata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacpsdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacpsdsp_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacpsdsp_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacpsdsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacpsy.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr_fixed_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr_tablegen_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbr_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aacsbrdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aactab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aactab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aandcttab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aandcttab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/aacpsdsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/aacpsdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/asm-offsets.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/cabac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/fft_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/fft_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/fmtconvert_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/fmtconvert_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264chroma_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264cmc_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264dsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264idct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264pred_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264pred_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264qpel_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/h264qpel_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/hpeldsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/hpeldsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/idct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/idctdsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/mdct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/mpegaudiodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/mpegaudiodsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/neontest.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/opusdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/opusdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/rv40dsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/sbrdsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/sbrdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/simple_idct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/synth_filter_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/synth_filter_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vc1dsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/videodsp.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/videodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vorbisdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vorbisdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp8dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp8dsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp8dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9dsp_init.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9dsp_init_10bpp_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9dsp_init_12bpp_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9dsp_init_16bpp_aarch64_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9dsp_init_aarch64.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9itxfm_16bpp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9itxfm_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9lpf_16bpp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9lpf_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9mc_16bpp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aarch64/vp9mc_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aasc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3_parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3_parser_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dec_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dec_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dec_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dec_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3enc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3enc_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3enc_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3enc_opts_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3enc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3tab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ac3tab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/acelp_filters.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/acelp_filters.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/acelp_pitch_delay.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/acelp_pitch_delay.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/acelp_vectors.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/acelp_vectors.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adpcm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adpcm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adpcm_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adpcm_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adpcmenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adts_header.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adts_header.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adts_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adts_parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adx.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adx_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adxdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/adxenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/agm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aic.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alac_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alac_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alacdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alacdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alacenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aliaspixdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aliaspixenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/allcodecs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/asm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/blockdsp_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/hpeldsp_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/hpeldsp_alpha.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/hpeldsp_alpha_asm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/idctdsp_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/idctdsp_alpha.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/idctdsp_alpha_asm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/me_cmp_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/me_cmp_mvi_asm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/mpegvideo_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/pixblockdsp_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/regdef.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alpha/simple_idct_alpha.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/alsdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amfenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amfenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amfenc_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amfenc_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amrnbdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amrnbdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amrwbdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/amrwbdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/anm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ansi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/apedec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/apng.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aptx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arbc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/aac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/aacpsdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/aacpsdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/ac3dsp_arm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/ac3dsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/ac3dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/ac3dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/asm-offsets.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/audiodsp_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/audiodsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/audiodsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/audiodsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/blockdsp_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/blockdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/blockdsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/blockdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/cabac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/dca.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fft_fixed_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fft_fixed_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fft_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fft_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fft_vfp.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/flacdsp_arm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/flacdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fmtconvert_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fmtconvert_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/fmtconvert_vfp.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/g722dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/g722dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264chroma_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264cmc_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264idct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264pred_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264pred_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264qpel_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/h264qpel_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_deblock_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_idct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_qpel_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hevcdsp_sao_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_arm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_init_armv6.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/hpeldsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_arm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_init_armv5te.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_init_armv6.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/idctdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/int_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/jrevdct_arm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/lossless_audiodsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/lossless_audiodsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mathops.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mdct_fixed_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mdct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mdct_vfp.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/me_cmp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/me_cmp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mlpdsp_armv5te.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mlpdsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mlpdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegaudiodsp_fixed_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegaudiodsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideo_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideo_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideo_armv5te.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideo_armv5te_s.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideo_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideoencdsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/mpegvideoencdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/neontest.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/pixblockdsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/pixblockdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/rdft_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/rdft_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/rv34dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/rv34dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/rv40dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/rv40dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/sbcdsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/sbcdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/sbcdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/sbrdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/sbrdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/simple_idct_arm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/simple_idct_armv5te.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/simple_idct_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/simple_idct_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/startcode.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/startcode_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/synth_filter_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/synth_filter_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/synth_filter_vfp.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vc1dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vc1dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vc1dsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vc1dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/videodsp_arm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/videodsp_armv5te.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/videodsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/videodsp_init_armv5te.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vorbisdsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vorbisdsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp3dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp3dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp56_arith.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp6dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp6dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8dsp_armv6.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8dsp_init_armv6.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8dsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp8dsp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9dsp_init.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9dsp_init_10bpp_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9dsp_init_12bpp_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9dsp_init_16bpp_arm_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9itxfm_16bpp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9itxfm_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9lpf_16bpp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9lpf_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9mc_16bpp_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/arm/vp9mc_neon.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ass.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ass.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ass_split.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ass_split.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/assdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/assenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/asv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/asv.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/asvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/asvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac1data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3plus.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3plus.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3plus_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3plusdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac3plusdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac9dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/atrac9tab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/audio_frame_queue.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/audio_frame_queue.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/audiodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/audiodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/audiotoolboxdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/audiotoolboxenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/aura.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/av1.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/av1_frame_split_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/av1_metadata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/av1_parse.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/av1_parse.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/av1_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avcodec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avcodecres.rc (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avdct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avdct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avfft.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avfft.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avpacket.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avpicture.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avr32/mathops.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avrndec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avs2_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avuidec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/avuienc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bethsoftvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bethsoftvideo.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bfi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bfin/README (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bgmc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bgmc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bink.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/binkaudio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/binkdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/binkdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/binkdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bintext.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bintext.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bit_depth_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bitpacked.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bitstream.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bitstream_filter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bitstream_filters.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/blockdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/blockdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bmp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bmp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bmp_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bmpenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bmvaudio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bmvvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/brenderpix.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bsf.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bswapdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bswapdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/bytestream.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/c93.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cabac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cabac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cabac_functions.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/canopus.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/canopus.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavs.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavs_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavsdata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavsdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavsdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cavsdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_data_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_fixed_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbrt_tablegen_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_av1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_av1.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_av1_syntax_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_h264.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_h2645.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_h2645.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_h264_syntax_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_h265.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_h265_syntax_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_jpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_jpeg.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_jpeg_syntax_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_mpeg2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_mpeg2.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_mpeg2_syntax_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_vp9.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_vp9.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cbs_vp9_syntax_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ccaption_dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cdgraphics.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cdxl.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/celp_filters.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/celp_filters.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/celp_math.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/celp_math.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cfhd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cfhd.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cfhddata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cga_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cga_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/chomp_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cinepak.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cinepakenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/clearvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/clearvideodata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cljrdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cljrenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cllc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cngdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cngenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/codec2utils.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/codec2utils.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/codec_desc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cook.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cook_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cookdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/copy_block.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cos_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cpia.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/crystalhd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cscd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cuviddec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/cyuv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/d3d11va.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/d3d11va.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_core.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_core.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_core_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_exss.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_exss.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_lbr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_lbr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_syncwords.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_xll.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dca_xll.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcaadpcm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcaadpcm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcadsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcaenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcaenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcahuff.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcahuff.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dcamath.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dct32.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dct32_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dct32_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dct32_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dctref.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dctref.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dds.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/decode.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/decode.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dfa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_arith.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_arith.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_dwt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_dwt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_dwt_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_vlc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dirac_vlc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/diracdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/diracdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/diracdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/diractab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/diractab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dnxhd_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dnxhddata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dnxhddata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dnxhddec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dnxhdenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dnxhdenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dolby_e.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dolby_e.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dpcm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dpx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dpx_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dpxenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dsd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dsd.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dsd_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dsddec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dsicinaudio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dsicinvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dss_sp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dstdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dump_extradata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv_profile.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv_profile.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv_profile_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dv_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvaudio.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvaudio_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvaudiodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvbsub.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvbsub_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvbsubdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvbtxt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvd_nav_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvdata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvdsub_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvdsubdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvdsubenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxtory.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2_mpeg2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2_vc1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/dxva2_vp9.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eac3_core_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eac3_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eac3_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eac3dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eac3enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eac3enc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eacmv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eaidct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eaidct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eamad.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eatgq.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eatgv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/eatqi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/elbg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/elbg.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/elsdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/elsdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/encode.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/error_resilience.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/error_resilience.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/escape124.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/escape130.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/evrcdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/evrcdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/exif.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/exif.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/exr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/exrdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/exrdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/extract_extradata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/faandct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/faandct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/faanidct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/faanidct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/faxcompr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/faxcompr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fdctdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fdctdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffjni.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffjni.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft-internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft_fixed_32.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft_init_table.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft_table.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fft_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1dec_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffv1enc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ffwavesynth.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fic.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/file_open.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/filter_units_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fits.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fits.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fitsdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fitsenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flac_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdsp_lpc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacdsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flacenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flashsv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flashsv2enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flashsvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flicvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flv.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/flvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fmtconvert.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fmtconvert.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fmvc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/frame_thread_encoder.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/frame_thread_encoder.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/fraps.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/frwu.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g2meet.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g722.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g722.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g722dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g722dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g722dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g722enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g723_1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g723_1.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g723_1_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g723_1dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g723_1enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g726.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g729.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g729_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g729data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g729dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g729postfilter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/g729postfilter.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gdv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/get_bits.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gif.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gif.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gif_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gifdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/golomb.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/golomb.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gsm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gsm_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gsmdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gsmdec_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gsmdec_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/gsmdec_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h261.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h261.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h261_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h261data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h261dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h261enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263_parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h263dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h2645_parse.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h2645_parse.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_cabac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_cavlc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_direct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_levels.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_levels.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_loopfilter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_mb.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_mb_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_mc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_metadata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_mp4toannexb_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_mvpred.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_parse.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_parse.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_picture.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_ps.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_ps.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_redundant_pps_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_refs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_sei.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_sei.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264_slice.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264addpx_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264chroma.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264chroma.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264chroma_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264dec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264dsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264idct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264idct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264idct_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264pred.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264pred.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264pred_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264qpel.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264qpel.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h264qpel_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h265_metadata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h265_profile_level.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/h265_profile_level.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hap.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hap.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hapdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hapenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hapqa_extract_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hcom.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_cabac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_filter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_mp4toannexb_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_mvs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_parse.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_parse.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_ps.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_ps.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_ps_enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_refs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_sei.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevc_sei.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcdsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcpred.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcpred.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hevcpred_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hnm4video.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hpel_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hpeldsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hpeldsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hq_hqa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hq_hqa.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hq_hqadata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hq_hqadsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hq_hqadsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hqx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hqx.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hqxdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hqxdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hqxvlc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/htmlsubtitles.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/htmlsubtitles.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffman.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffman.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuv.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuvdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuvdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuvencdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/huffyuvencdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hwaccel.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/hwaccels.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/idcinvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/idctdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/idctdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/iff.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/iirfilter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/iirfilter.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ilbcdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ilbcdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/imc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/imcdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/imgconvert.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/imm4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/imx_dump_header_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo2data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo3data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo4data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo5.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/indeo5data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/intelh263dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/interplayacm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/interplayvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/intrax8.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/intrax8.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/intrax8dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/intrax8dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/intrax8huf.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ituh263dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ituh263enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ivi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ivi.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ivi_dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ivi_dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/j2kenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jacosub.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jacosubdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jfdctfst.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jfdctint.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jfdctint_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jni.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jni.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000dwt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeg2000dwt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpegls.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpegls.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeglsdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeglsdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpeglsenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpegtables.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jpegtables.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jrevdct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/jvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/kbdwin.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/kbdwin.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/kgv1dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/kmvc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lagarith.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lagarithrac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lagarithrac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/latm_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lcl.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lcldec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lclenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libaomdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libaomenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libaribb24.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libavcodec.v (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libcelt_dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libcodec2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libdav1d.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libdavs2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libfdk-aacdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libfdk-aacenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libgsmdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libgsmenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libilbc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libkvazaar.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libmp3lame.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopencore-amr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopenh264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopenh264.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopenh264dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopenh264enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopenjpegdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopenjpegenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopus.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopus.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopusdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libopusenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/librsvgdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libshine.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libspeexdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libspeexenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libtheoraenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libtwolame.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvo-amrwbenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvorbisdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvorbisenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvpx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvpx.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvpxdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libvpxenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libwavpackenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libwebpenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libwebpenc_animencoder.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libwebpenc_common.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libwebpenc_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libx264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libx265.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libxavs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libxavs2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libxvid.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libxvid.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/libzvbi-teletextdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ljpegenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/loco.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/log2_tab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lossless_audiodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lossless_audiodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lossless_videodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lossless_videodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lossless_videoencdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lossless_videoencdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lpc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lpc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lzf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lzf.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lzw.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lzw.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/lzwenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/m101.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mace.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/magicyuv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/magicyuvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mathops.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mathtables.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdct15.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdct15.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdct_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdct_fixed_32.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdct_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdct_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/me_cmp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/me_cmp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec_surface.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec_surface.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec_sw_buffer.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec_sw_buffer.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec_wrapper.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodec_wrapper.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodecdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodecdec_common.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mediacodecdec_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/metasound.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/metasound_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/metasound_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/microdvddec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mimic.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aaccoder_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aacdec_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aacdec_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aacpsdsp_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aacpsy_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aacsbr_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/aacsbr_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/ac3dsp_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/acelp_filters_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/acelp_vectors_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/amrwbdec_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/amrwbdec_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/blockdsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/blockdsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/blockdsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/blockdsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/cabac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/celp_filters_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/celp_math_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/compute_antialias_fixed.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/compute_antialias_float.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/constants.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/constants.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/fft_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/fmtconvert_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h263dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h263dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h263dsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264chroma_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264chroma_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264chroma_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264chroma_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264dsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264dsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264idct_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264pred_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264pred_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264pred_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264pred_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264qpel_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264qpel_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/h264qpel_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_idct_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_lpf_sao_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_macros_msa.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_mc_bi_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_mc_biw_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_mc_uni_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevc_mc_uniw_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcdsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcdsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcdsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcdsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcpred_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcpred_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hevcpred_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hpeldsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hpeldsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hpeldsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/hpeldsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/idctdsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/idctdsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/idctdsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/idctdsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/iirfilter_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/lsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mathops.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/me_cmp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/me_cmp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/me_cmp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegaudiodsp_mips_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegaudiodsp_mips_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegvideo_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegvideo_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegvideo_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegvideo_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegvideoencdsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/mpegvideoencdsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/pixblockdsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/pixblockdsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/pixblockdsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/pixblockdsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/qpeldsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/qpeldsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/qpeldsp_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/sbrdsp_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/simple_idct_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/simple_idct_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vc1dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vc1dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vc1dsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/videodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp3dsp_idct_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp3dsp_idct_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp3dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp3dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp8_idct_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp8_lpf_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp8_mc_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp8dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp8dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp8dsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9_idct_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9_intra_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9_lpf_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9_mc_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9_mc_msa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/vp9dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/wmv2dsp_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/wmv2dsp_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/wmv2dsp_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/xvid_idct_mmi.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/xvididct_init_mips.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mips/xvididct_mips.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpeg.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpeg2jpeg_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpeg_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpega_dump_header_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegbdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegenc_common.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegenc_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegenc_huffman.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mjpegenc_huffman.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlp_parse.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlp_parse.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlp_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlpdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlpdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlpdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlpenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlz.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mlz.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mmaldec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mmvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/motion_est.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/motion_est.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/motion_est_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/motionpixels.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/motionpixels_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/motionpixels_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/movsub_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/movtextdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/movtextenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mp3_header_decompress_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc7.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc7data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc8.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc8data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpc8huff.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpcdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12framerate.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg12vlc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg2_metadata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4_unpack_bframes_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4audio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4audio.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4video.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4video.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4video_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4video_parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4videodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg4videoenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg_er.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpeg_er.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudio.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudio_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudio_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudio_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodec_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodec_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodec_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodecheader.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodecheader.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodectab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodsp_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodsp_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodsp_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiodsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudioenc_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudioenc_float.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudioenc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegaudiotab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegpicture.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegpicture.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegutils.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegutils.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideo.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideo_enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideo_motion.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideo_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideo_xvmc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideodata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideodata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideoencdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpegvideoencdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mpl2dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mqc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mqc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mqcdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mqcenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mscc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msgsmdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msgsmdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msmpeg4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msmpeg4.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msmpeg4data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msmpeg4data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msmpeg4dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msmpeg4enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msrle.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msrledec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msrledec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss12.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss12.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss2dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss2dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss34dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss34dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mss4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msvideo1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/msvideo1enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mvcdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mwsc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/mxpegdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nellymoser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nellymoser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nellymoserdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nellymoserenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/neon/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/neon/mpegvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/noise_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/null_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nuv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_mjpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_mpeg12.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_mpeg4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_vc1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_vp8.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvdec_vp9.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvenc_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/nvenc_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/omx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/on2avc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/on2avcdata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/on2avcdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/options.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/options_table.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_celt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_celt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_pvq.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_pvq.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_rc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_rc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opus_silk.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusenc_psy.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusenc_psy.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opusenc_utils.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opustab.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/opustab.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/paf.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pafaudio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pafvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pamenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/parsers.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcm-bluray.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcm-dvd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcm-dvdenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcm_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcm_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pcxenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pel_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pgssubdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pictordec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pixblockdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pixblockdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pixels.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pixlet.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/png.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/png.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/png_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pngdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pngdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pngdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pngenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pnm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pnm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pnm_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pnmdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pnmenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/asm.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/audiodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/blockdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fdct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fdctdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fft_altivec.S (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fft_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fft_vsx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fft_vsx.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/fmtconvert_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/h264chroma_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/h264chroma_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/h264dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/h264qpel.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/h264qpel_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/hevcdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/hevcdsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/hpeldsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/hpeldsp_altivec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/idctdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/lossless_audiodsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/lossless_videodsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/mathops.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/me_cmp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/mpegaudiodsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/mpegvideo_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/mpegvideodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/mpegvideoencdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/pixblockdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/svq1enc_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/vc1dsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/videodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/vorbisdsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/vp3dsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ppc/vp8dsp_altivec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/profiles.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/profiles.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/prores_metadata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresdata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresdec2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresenc_anatoliy.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/proresenc_kostya.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/prosumer.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/psd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/psymodel.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/psymodel.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pthread.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pthread_frame.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pthread_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/pthread_slice.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ptx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/put_bits.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qcelpdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qcelpdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qdm2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qdm2_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qdm2_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qdm2data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qdmc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qdrw.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qpel_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qpeldsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qpeldsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsv.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsv_api.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsv_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvdec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvdec_h2645.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvdec_other.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvenc_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvenc_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvenc_jpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qsvenc_mpeg2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qtrle.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/qtrleenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/r210dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/r210enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ra144.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ra144.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ra144dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ra144enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ra288.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ra288.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ralf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ralfdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rangecoder.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rangecoder.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rasc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ratecontrol.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ratecontrol.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/raw.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/raw.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rawdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rawenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rdft.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rdft.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/realtextdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rectangle.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/remove_extradata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/reverse.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rkmppdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rl.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rl.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rl2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rle.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rle.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rnd_avg.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/roqaudioenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/roqvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/roqvideo.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/roqvideodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/roqvideoenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rpza.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rscc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rtjpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rtjpeg.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv10.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv10.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv10enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv20enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv30.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv30data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv30dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv34vlc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv40.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv40data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv40dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/rv40vlc2.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/s302m.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/s302menc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/samidec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sanm.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbc_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdec_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdec_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdsp_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcdsp_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbcenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbrdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbrdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbrdsp_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sbrdsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/scpr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/scpr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/scpr3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/scpr3.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/screenpresso.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sgi.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sgidec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sgienc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sgirledec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sh4/README (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sheervideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sheervideodata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/shorten.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/simple_idct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/simple_idct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/simple_idct_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin_fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin_fixed_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin_tablegen.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin_tablegen.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sinewin_tablegen_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sipr.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sipr.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sipr16k.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sipr16kdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sipr_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/siprdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/smacker.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/smc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/smvjpegdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snappy.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snappy.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snow.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snow.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snow_dwt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snow_dwt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snowdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snowdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/snowenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sonic.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sp5x.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sp5xdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sparc/README (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/speedhq.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/srtdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/srtenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/startcode.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/startcode.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/subviewerdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sunrast.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sunrast.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/sunrastenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq13.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1_cb.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1_vlc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1enc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq1enc_cb.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/svq3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/synth_filter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/synth_filter.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tableprint.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tableprint_vlc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tak.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tak.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tak_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/takdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/takdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/takdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/targa.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/targa.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/targa_y216dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/targaenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tdsc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/aarch64/dct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/arm/dct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/avfft.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/avpacket.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/cabac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/celp_math.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/codec_desc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/dct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/fft-fixed.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/fft-fixed32.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/fft.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/golomb.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/h264_levels.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/h265_levels.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/htmlsubtitles.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/iirfilter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/imgconvert.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/jpeg2000dwt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/mathops.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/mjpegenc_huffman.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/motion.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/mpeg12framerate.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/options.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/ppc/dct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/rangecoder.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/snowenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/utils.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tests/x86/dct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/textdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/texturedsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/texturedsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/texturedspenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/thread.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiertexseqv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiff.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiff.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiff_common.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiff_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiff_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiff_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tiffenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tmv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tpeldsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tpeldsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/trace_headers_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truehd_core_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truemotion1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truemotion1data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truemotion2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truemotion2rt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truespeech.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/truespeech_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tscc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tscc2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tscc2data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/tta.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttadata.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttadata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttadsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttadsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttaenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttaencdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ttaencdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/twinvq.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/twinvq.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/twinvq_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/twinvqdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/txd.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ulti.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ulti_cb.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/unary.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utils.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utvideo.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utvideodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utvideodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utvideodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/utvideoenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v210dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v210dec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v210enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v210enc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v210x.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v308dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v308enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v408dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v408enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v410dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v410enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_buffers.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_buffers.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_context.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_context.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_fmt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_fmt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_m2m.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_m2m.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_m2m_dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/v4l2_m2m_enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_decode.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_decode.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode_h265.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode_mjpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode_mpeg2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode_vp8.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_encode_vp9.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_mjpeg.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_mpeg2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_mpeg4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_vc1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_vp8.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vaapi_vp9.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vb.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vble.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_block.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_loopfilter.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_mc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_pred.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1_pred.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1acdata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc1dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc2enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc2enc_dwt.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vc2enc_dwt.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vcr1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau_h264.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau_hevc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau_mpeg12.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau_mpeg4.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vdpau_vc1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/version.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/videodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/videodsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/videodsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/videotoolbox.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/videotoolbox.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/videotoolboxenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vima.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vlc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vmdaudio.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vmdvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vmnc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis_data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis_enc_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis_parser.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbis_parser_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbisdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbisdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbisdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vorbisenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp3.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp3_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp3data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp3dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp3dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp4data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp5.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp56rac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp5data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp6.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp6data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp6dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp8.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp8.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp8_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp8data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp8dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp8dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9_mc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9_metadata_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9_raw_reorder_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9_superframe_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9_superframe_split_bsf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9block.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dec.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dsp_10bpp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dsp_12bpp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dsp_8bpp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9dsp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9lpf.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9mvs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9prob.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9recon.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vp9shared.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vqavideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/vt_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wavpack.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wavpack.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wavpackenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wavpackenc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wcmv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/webp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/webvttdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/webvttenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wma.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wma.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wma_common.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wma_common.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wma_freqs.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wma_freqs.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmadata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmadec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmaenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmalosslessdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmaprodata.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmaprodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmavoice.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmavoice_data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2data.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2data.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2dsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wmv2enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wnv1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/wrapped_avframe.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ws-snd1.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/Makefile (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/aacencdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/aacpsdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/ac3dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/alacdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/audiodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/blockdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/bswapdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/cabac.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/cavsdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/celt_pvq_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/constants.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/constants.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/dcadsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/dct_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/dirac_dwt_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/diracdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/dnxhdenc_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/exrdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fdct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fdct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fdctdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fft.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fft_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/flacdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fmtconvert_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/fpel.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/g722dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/h263dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/h264_cabac.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/h264_intrapred_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/h264_qpel.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/h264chroma_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/h264dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/hevcdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/hevcdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/hpeldsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/hpeldsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/hpeldsp_rnd_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/hpeldsp_vp3_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/huffyuvdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/huffyuvencdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/idctdsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/idctdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/inline_asm.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/jpeg2000dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/lossless_audiodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/lossless_videodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/lossless_videoencdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/lpc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mathops.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mdct15_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/me_cmp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mlpdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegaudiodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegvideo.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegvideodsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegvideoenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegvideoenc_qns_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegvideoenc_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/mpegvideoencdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/opusdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/pixblockdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/pngdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/proresdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/qpeldsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/rnd_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/rv34dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/rv40dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/sbcdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/sbrdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/simple_idct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/snowdsp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/svq1enc_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/synth_filter_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/takdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/ttadsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/ttaencdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/utvideodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/v210-init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/v210enc_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vc1dsp.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vc1dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vc1dsp_mmx.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/videodsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vorbisdsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp3dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp56_arith.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp6dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp8dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp9dsp_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp9dsp_init.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp9dsp_init_10bpp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp9dsp_init_12bpp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp9dsp_init_16bpp.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/vp9dsp_init_16bpp_template.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/w64xmmtest.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/xvididct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/x86/xvididct_init.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xan.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xbmdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xbmenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xface.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xface.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xfacedec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xfaceenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xiph.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xiph.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xl.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xma_parser.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xpmdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xsubdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xsubenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xvididct.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xvididct.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xvmc.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xvmc_internal.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xwd.h (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xwddec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xwdenc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/xxan.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/y41pdec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/y41penc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/ylc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/yop.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/yuv4dec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/yuv4enc.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/zerocodec.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/zmbv.c (100%) mode change 100644 => 100755 rename {libavcodec => ffmpeg-y/libavcodec}/zmbvenc.c (99%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/Makefile (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/alldevices.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/alsa.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/alsa.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/alsa_dec.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/alsa_enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/android_camera.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/avdevice.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/avdevice.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/avdeviceres.rc (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/avfoundation.m (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/bktr.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/caca.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_common.cpp (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_common.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_common_c.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_dec.cpp (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_dec.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_dec_c.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_enc.cpp (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_enc.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/decklink_enc_c.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_capture.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_common.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_crossbar.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_enummediatypes.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_enumpins.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_filter.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/dshow_pin.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/fbdev_common.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/fbdev_common.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/fbdev_dec.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/fbdev_enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/file_open.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/gdigrab.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/iec61883.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/internal.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/jack.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/kmsgrab.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/lavfi.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/libavdevice.v (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/libcdio.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/libdc1394.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/openal-dec.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/opengl_enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/opengl_enc_shaders.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/oss.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/oss.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/oss_dec.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/oss_enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/pulse_audio_common.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/pulse_audio_common.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/pulse_audio_dec.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/pulse_audio_enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/reverse.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/sdl2.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/sndio.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/sndio.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/sndio_dec.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/sndio_enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/tests/timefilter.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/timefilter.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/timefilter.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/utils.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/v4l2-common.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/v4l2-common.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/v4l2.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/v4l2enc.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/version.h (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/vfwcap.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/xcbgrab.c (100%) mode change 100644 => 100755 rename {libavdevice => ffmpeg-y/libavdevice}/xv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/Makefile (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/aarch64/Makefile (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/aarch64/vf_nlmeans_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/aarch64/vf_nlmeans_neon.S (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/aeval.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_acontrast.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_acopy.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_acrossover.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_acrusher.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_adeclick.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_adelay.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aderivative.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aecho.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aemphasis.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_afade.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_afftdn.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_afftfilt.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_afir.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_afir.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aformat.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_agate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aiir.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_alimiter.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_amerge.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_amix.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_amultiply.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_anequalizer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_anlmdn.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_anlmdndsp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_anull.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_apad.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aphaser.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_apulsator.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_aresample.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_asetnsamples.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_asetrate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_ashowinfo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_asoftclip.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_asr.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_astats.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_atempo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_biquads.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_bs2b.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_channelmap.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_channelsplit.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_chorus.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_compand.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_compensationdelay.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_crossfeed.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_crystalizer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_dcshift.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_deesser.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_drmeter.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_dynaudnorm.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_earwax.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_extrastereo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_firequalizer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_flanger.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_haas.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_hdcd.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_headphone.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_join.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_ladspa.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_loudnorm.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_lv2.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_mcompand.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_pan.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_replaygain.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_resample.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_rubberband.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_sidechaincompress.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_silencedetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_silenceremove.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_sofalizer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_stereotools.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_stereowiden.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_superequalizer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_surround.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_tremolo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_vibrato.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_volume.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_volume.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/af_volumedetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/all_channel_layouts.inc (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/allfilters.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asink_anullsink.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asrc_anoisesrc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asrc_anullsrc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asrc_flite.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asrc_hilbert.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asrc_sinc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/asrc_sine.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/audio.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/audio.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_abitscope.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_ahistogram.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_aphasemeter.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_avectorscope.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_concat.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showcqt.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showcqt.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showfreqs.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showspatial.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showspectrum.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showvolume.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avf_showwaves.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avfilter.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avfilter.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avfiltergraph.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/avfilterres.rc (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/bbox.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/bbox.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/blend.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/boxblur.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/boxblur.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/bufferqueue.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/buffersink.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/buffersink.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/buffersrc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/buffersrc.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/bwdif.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/colorspace.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/colorspace.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/colorspacedsp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/colorspacedsp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/colorspacedsp_template.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/colorspacedsp_yuv2yuv_template.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/deshake.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/dnn_backend_native.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/dnn_backend_native.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/dnn_backend_tf.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/dnn_backend_tf.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/dnn_interface.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/dnn_interface.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/drawutils.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/drawutils.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/ebur128.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/ebur128.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_bench.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_cue.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_drawgraph.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_ebur128.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_graphmonitor.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_interleave.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_loop.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_metadata.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_perms.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_realtime.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_reverse.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_select.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_sendcmd.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_sidedata.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_streamselect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/f_zmq.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/fifo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/filters.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/formats.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/formats.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framepool.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framepool.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framequeue.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framequeue.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framerate.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framesync.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/framesync.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/gblur.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/generate_wave_table.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/generate_wave_table.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/gradfun.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/graphdump.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/graphparser.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/hermite.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/hflip.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/internal.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/lavfutils.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/lavfutils.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/libavfilter.v (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/limiter.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/log2_tab.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/lswsutils.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/lswsutils.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/maskedmerge.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/motion_estimation.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/motion_estimation.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/avgblur.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/colorkey.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/colorspace_common.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/convolution.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/neighbor.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/nlmeans.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/overlay.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/tonemap.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/transpose.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl/unsharp.cl (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/opencl_source.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/psnr.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/pthread.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/qsvvpp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/qsvvpp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/removegrain.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/scale.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/scale.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/scene_sad.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/scene_sad.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/setpts.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/settb.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/signature.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/signature_lookup.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/split.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/src_movie.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/ssim.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/stereo3d.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/tests/drawutils.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/tests/filtfmts.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/tests/formats.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/tests/integral.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/thread.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/threshold.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/tinterlace.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/transform.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/transform.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/transpose.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/trim.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/unsharp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vaapi_vpp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vaapi_vpp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vaf_spectrumsynth.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/version.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_alphamerge.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_amplify.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_aspect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_atadenoise.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_avgblur.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_avgblur_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_bbox.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_bitplanenoise.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_blackdetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_blackframe.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_blend.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_bm3d.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_boxblur.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_bwdif.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_chromakey.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_chromashift.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_ciescope.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_codecview.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorbalance.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorchannelmixer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorconstancy.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorkey.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorkey_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorlevels.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colormatrix.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_colorspace.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_convolution.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_convolution_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_convolve.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_copy.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_coreimage.m (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_cover_rect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_crop.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_cropdetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_curves.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_datascope.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_dctdnoiz.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_deband.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_deblock.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_decimate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_dedot.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_deflicker.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_deinterlace_qsv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_deinterlace_vaapi.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_dejudder.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_delogo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_derain.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_deshake.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_despill.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_detelecine.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_displace.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_drawbox.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_drawtext.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_edgedetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_elbg.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_entropy.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_eq.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_eq.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_extractplanes.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fade.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fftdnoiz.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fftfilt.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_field.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fieldhint.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fieldmatch.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fieldorder.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fillborders.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_find_rect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_floodfill.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_format.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fps.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_framepack.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_framerate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_framestep.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_freezedetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_frei0r.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fspp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_fspp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_gblur.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_geq.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_gradfun.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hflip.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_histeq.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_histogram.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hqdn3d.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hqdn3d.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hqx.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hue.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hwdownload.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hwmap.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hwupload.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hwupload_cuda.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_hysteresis.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_idet.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_idet.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_il.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_kerndeint.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lagfun.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lenscorrection.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lensfun.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_libopencv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_libvmaf.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_limiter.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lumakey.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lut.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lut2.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_lut3d.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_maskedclamp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_maskedmerge.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_maskfun.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_mcdeint.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_mergeplanes.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_mestimate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_midequalizer.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_minterpolate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_misc_vaapi.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_mix.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_mpdecimate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_neighbor.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_neighbor_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_nlmeans.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_nlmeans.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_nlmeans_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_nnedi.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_noise.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_noise.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_normalize.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_null.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_ocr.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_overlay.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_overlay.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_overlay_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_overlay_qsv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_owdenoise.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pad.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_palettegen.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_paletteuse.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_perspective.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_phase.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pixdesctest.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pp7.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pp7.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_premultiply.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_procamp_vaapi.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_program_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pseudocolor.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_psnr.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pullup.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_pullup.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_qp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_random.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_readeia608.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_readvitc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_remap.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_removegrain.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_removelogo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_repeatfields.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_rotate.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_sab.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_scale.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_scale_cuda.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_scale_cuda.cu (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_scale_npp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_scale_qsv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_scale_vaapi.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_selectivecolor.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_separatefields.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_setparams.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_showinfo.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_showpalette.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_shuffleframes.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_shuffleplanes.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_signalstats.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_signature.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_smartblur.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_spp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_spp.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_sr.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_ssim.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_stack.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_stereo3d.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_subtitles.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_super2xsai.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_swaprect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_swapuv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_telecine.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_threshold.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_thumbnail.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_thumbnail_cuda.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_thumbnail_cuda.cu (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_tile.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_tinterlace.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_tonemap.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_tonemap_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_tpad.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_transpose.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_transpose_npp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_transpose_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_transpose_vaapi.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_unsharp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_unsharp_opencl.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_uspp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vaguedenoiser.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vectorscope.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vflip.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vfrdet.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vibrance.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vidstabdetect.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vidstabtransform.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vignette.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vmafmotion.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_vpp_qsv.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_w3fdif.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_waveform.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_weave.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_xbr.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_xmedian.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_yadif.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_yadif_cuda.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_yadif_cuda.cu (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_zoompan.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vf_zscale.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/video.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/video.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vidstabutils.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vidstabutils.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vmaf_motion.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vsink_nullsink.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vsrc_cellauto.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vsrc_life.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vsrc_mandelbrot.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vsrc_mptestsrc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/vsrc_testsrc.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/w3fdif.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/window_func.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/Makefile (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/af_afir_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/af_anlmdn_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/af_volume_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/avf_showcqt_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/colorspacedsp_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/scene_sad_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_blend_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_bwdif_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_eq.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_framerate_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_fspp_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_gblur_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_gradfun_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_hflip_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_hqdn3d_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_idet_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_limiter_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_maskedmerge_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_noise.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_overlay_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_pp7_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_psnr_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_pullup_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_removegrain_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_spp.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_ssim_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_stereo3d_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_threshold_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_tinterlace_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_w3fdif_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/x86/vf_yadif_init.c (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/yadif.h (100%) mode change 100644 => 100755 rename {libavfilter => ffmpeg-y/libavfilter}/yadif_common.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/3dostr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/4xm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/Makefile (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/a64.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aacdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aadec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ac3dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/acm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/act.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/adp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ads.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/adtsenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/adxdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aea.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/afc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aiff.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aiffdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aiffenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aixdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/allformats.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/amr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/anm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/apc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ape.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/apetag.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/apetag.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/apngdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/apngenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aptxdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aqtitledec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asf.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asfcrypt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asfcrypt.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asfdec_f.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asfdec_o.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/asfenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/assdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/assenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ast.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ast.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/astdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/astenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/async.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/au.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/audiointerleave.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/audiointerleave.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/av1.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/av1.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avformat.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avformatres.rc (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avi.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avidec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avienc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avio.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avio.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avio_internal.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/aviobuf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avisynth.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avlanguage.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avlanguage.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/avs.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bethsoftvid.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bfi.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bink.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bintext.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bit.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bluray.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/bmv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/boadec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/brstm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/c93.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cache.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/caf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/caf.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cafdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cafenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cavsvideodec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cdg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cdxl.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/chromaprint.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cinedec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/codec2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/concat.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/concatdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/crcenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/crypto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/cutils.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dash.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dash.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dashdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dashenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/data_uri.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dauddec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/daudenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/davs2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dcstr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dfa.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dhav.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/diracdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dnxhddec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dsfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dsicin.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dss.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dtsdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dtshddec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dump.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dv.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dvbsub.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dvbtxt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dvenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/dxa.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/eacdata.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/electronicarts.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/epafdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ffmeta.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ffmetadec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ffmetaenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/fifo.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/fifo_test.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/file.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/file_open.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/filmstripdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/filmstripenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/fitsdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/fitsenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flac_picture.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flac_picture.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flacdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flacenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flacenc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flacenc_header.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flic.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flv.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/flvenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/format.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/framecrcenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/framehash.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/frmdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/fsb.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ftp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/g722.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/g723_1.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/g726.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/g729dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gdv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/genh.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gif.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gifdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/golomb_tab.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gopher.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gsmdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gxf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gxf.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/gxfenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/h261dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/h263dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/h264dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hashenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hcom.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hdsenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hevc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hevc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hevcdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hls.c (99%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hlsenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hlsplaylist.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hlsplaylist.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hlsproto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/hnm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/http.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/http.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/httpauth.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/httpauth.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/icecast.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/icodec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/icoenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/id3v1.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/id3v1.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/id3v2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/id3v2.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/id3v2enc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/idcin.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/idroqdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/idroqenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/iff.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ifv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ilbc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/img2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/img2.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/img2_alias_pix.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/img2_brender_pix.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/img2dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/img2enc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ingenientdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/internal.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ip.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ip.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ipmovie.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ircam.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ircam.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ircamdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ircamenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/isom.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/isom.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/iss.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/iv8.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ivfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ivfenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/jacosubdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/jacosubenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/jvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/latmenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libavformat.v (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libgme.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libmodplug.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libopenmpt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/librtmp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libsmbclient.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libsrt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/libssh.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lmlm4.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/loasdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/log2_tab.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lrc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lrc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lrcdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lrcenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lvfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/lxfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/m4vdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/matroska.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/matroska.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/matroskadec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/matroskaenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/md5proto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/metadata.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/metadata.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mgsts.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/microdvddec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/microdvdenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mj2kdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mkvtimestamp_v2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mlpdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mlvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mmf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mms.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mms.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mmsh.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mmst.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mov.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mov_chan.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mov_chan.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mov_esds.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/movenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/movenc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/movenccenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/movenccenc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/movenchint.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mp3dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mp3enc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpc8.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpeg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpeg.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpegenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpegts.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpegts.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpegtsenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpegvideodec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpjpeg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpjpegdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpl2dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mpsubdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/msf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/msnwc_tcp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mtaf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mtv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/musx.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mux.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mvi.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mxf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mxf.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mxfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mxfenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/mxg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ncdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/network.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/network.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nistspheredec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nspdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nsvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nullenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nut.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nut.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nutdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nutenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/nuv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggdec.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsecelt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsedaala.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsedirac.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparseflac.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparseogm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparseopus.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparseskeleton.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsespeex.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsetheora.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsevorbis.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oggparsevp8.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oma.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/oma.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/omadec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/omaenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/options.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/options_table.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/os_support.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/os_support.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/paf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pcm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pcm.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pcmdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pcmenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pjsdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pmpdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/prompeg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/protocols.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/psxstr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pva.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/pvfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/qcp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/qtpalette.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/qtpalette.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/r3d.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rawdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rawdec.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rawenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rawenc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rawutils.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rawvideodec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rdt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rdt.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/realtextdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/redspark.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/replaygain.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/replaygain.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/riff.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/riff.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/riffdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/riffenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rl2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rm.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rmdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rmenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rmsipr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rmsipr.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rpl.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rsd.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rso.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rso.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rsodec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rsoenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmp.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmpcrypt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmpcrypt.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmpdh.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmpdh.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmpdigest.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmphttp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmppkt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmppkt.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtmpproto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtp.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_ac3.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_amr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_asf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_dv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_formats.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_g726.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_h261.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_h263.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_h263_rfc2190.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_h264.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_hevc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_ilbc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_jpeg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_latm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_mpa_robust.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_mpeg12.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_mpeg4.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_mpegts.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_qcelp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_qdm2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_qt.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_rfc4175.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_svq3.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_vc2hq.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_vp8.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_vp9.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpdec_xiph.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_aac.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_amr.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_chain.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_chain.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_h261.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_h263.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_h263_rfc2190.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_h264_hevc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_jpeg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_latm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_mpegts.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_mpv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_vc2hq.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_vp8.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_vp9.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpenc_xiph.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpproto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtpproto.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtsp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtsp.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtspcodes.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtspdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/rtspenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/s337m.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/samidec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sapdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sapenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sauce.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sauce.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sbcdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sbgdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sccdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sccenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sctp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sdp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sdr2.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sdsdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sdxdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/segafilm.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/segafilmenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/segment.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/serdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/shortendec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sierravmd.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/siff.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smacker.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smjpeg.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smjpeg.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smjpegdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smjpegenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smoothstreamingenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/smush.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sol.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/sox.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/soxdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/soxenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/spdif.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/spdif.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/spdifdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/spdifenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/srtdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/srtenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/srtp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/srtp.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/srtpproto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/stldec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/subfile.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/subtitles.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/subtitles.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/subviewer1dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/subviewerdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/supdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/supenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/svag.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/swf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/swf.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/swfdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/swfenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/takdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tcp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tedcaptionsdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tee.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tee_common.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tee_common.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/teeproto.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/fifo_muxer.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/movenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/noproxy.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/rtmpdh.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/seek.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/srtp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tests/url.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/thp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tiertexseq.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls_gnutls.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls_libtls.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls_mbedtls.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls_openssl.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls_schannel.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tls_securetransport.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tmv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tta.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ttaenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/tty.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/txd.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/ty.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/udp.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/uncodedframecrcenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/unix.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/url.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/url.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/urldecode.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/urldecode.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/utils.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/v210.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vag.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vapoursynth.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vc1dec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vc1test.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vc1testenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/version.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vividas.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vivo.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/voc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/voc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/voc_packet.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vocdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vocenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vorbiscomment.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vorbiscomment.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vpcc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vpcc.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vpk.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vplayerdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/vqf.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/w64.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/w64.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wavdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wavenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wc3movie.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/webm_chunk.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/webmdashenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/webpenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/webvttdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/webvttenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/westwood_aud.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/westwood_vqa.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wsddec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wtv.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wtv_common.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wtvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wtvenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wv.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wvdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wvedec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/wvenc.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/xa.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/xmv.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/xvag.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/xwma.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/yop.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/yuv4mpeg.h (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/yuv4mpegdec.c (100%) mode change 100644 => 100755 rename {libavformat => ffmpeg-y/libavformat}/yuv4mpegenc.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/Makefile (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/Makefile (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/asm-offsets.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/audio_convert_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/audio_convert_neon.S (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/neontest.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/resample_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/aarch64/resample_neon.S (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/Makefile (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/asm-offsets.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/audio_convert_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/audio_convert_neon.S (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/neontest.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/resample_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/arm/resample_neon.S (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_convert.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_convert.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_data.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_data.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_mix.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_mix.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/audio_mix_matrix.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/avresample.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/avresampleres.rc (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/dither.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/dither.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/internal.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/libavresample.v (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/options.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/resample.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/resample.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/resample_template.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/tests/avresample.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/utils.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/version.h (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/x86/Makefile (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/x86/audio_convert_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/x86/audio_mix_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/x86/dither_init.c (100%) mode change 100644 => 100755 rename {libavresample => ffmpeg-y/libavresample}/x86/w64xmmtest.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/Makefile (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/Makefile (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/asm.S (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/cpu.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/cpu.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/float_dsp_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/float_dsp_neon.S (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/neontest.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aarch64/timer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/adler32.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/adler32.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aes.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aes.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aes_ctr.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aes_ctr.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/aes_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/Makefile (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/asm.S (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/cpu.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/cpu.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/float_dsp_arm.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/float_dsp_init_arm.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/float_dsp_init_neon.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/float_dsp_init_vfp.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/float_dsp_neon.S (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/float_dsp_vfp.S (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/intmath.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/neontest.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/arm/timer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/attributes.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/audio_fifo.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/audio_fifo.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avassert.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avr32/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avr32/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avsscanf.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avstring.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avstring.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avutil.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/avutilres.rc (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/base64.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/base64.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/bfin/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/bfin/timer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/blowfish.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/blowfish.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/bprint.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/bprint.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/buffer.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/buffer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/buffer_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/camellia.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/camellia.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/cast5.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/cast5.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/channel_layout.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/channel_layout.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/color_utils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/color_utils.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/colorspace.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/common.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/cpu.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/cpu.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/cpu_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/crc.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/crc.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/cuda_check.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/des.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/des.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/dict.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/dict.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/display.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/display.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/downmix_info.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/downmix_info.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/dynarray.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/encryption_info.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/encryption_info.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/error.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/error.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/eval.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/eval.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ffmath.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/fifo.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/fifo.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/file.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/file.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/file_open.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/fixed_dsp.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/fixed_dsp.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/float_dsp.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/float_dsp.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/frame.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/frame.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hash.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hash.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hdr_dynamic_metadata.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hdr_dynamic_metadata.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hmac.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hmac.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_cuda.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_cuda.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_cuda_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_d3d11va.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_d3d11va.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_drm.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_drm.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_dxva2.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_dxva2.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_mediacodec.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_mediacodec.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_opencl.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_opencl.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_qsv.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_qsv.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_vaapi.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_vaapi.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_vdpau.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_vdpau.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_videotoolbox.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/hwcontext_videotoolbox.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/imgutils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/imgutils.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/imgutils_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/integer.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/integer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/intfloat.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/intmath.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/intmath.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/lfg.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/lfg.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/libavutil.v (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/libm.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/lls.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/lls.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/log.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/log.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/log2_tab.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/lzo.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/lzo.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/macros.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mastering_display_metadata.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mastering_display_metadata.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mathematics.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mathematics.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/md5.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/md5.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mem.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mem.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mem_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/Makefile (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/asmdefs.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/float_dsp_mips.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/generic_macros_msa.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/libm_mips.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/mips/mmiutils.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/motion_vector.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/murmur3.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/murmur3.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/opt.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/opt.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/parseutils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/parseutils.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pca.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pca.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pixdesc.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pixdesc.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pixelutils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pixelutils.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/pixfmt.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/Makefile (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/cpu.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/cpu.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/float_dsp_altivec.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/float_dsp_altivec.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/float_dsp_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/float_dsp_vsx.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/float_dsp_vsx.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/timer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ppc/util_altivec.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/qsort.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/random_seed.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/random_seed.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/rational.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/rational.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/rc4.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/rc4.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/replaygain.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/reverse.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/reverse.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ripemd.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/ripemd.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/samplefmt.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/samplefmt.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/sh4/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/sha.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/sha.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/sha512.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/sha512.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/slicethread.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/slicethread.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/softfloat.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/softfloat_ieee754.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/softfloat_tables.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/spherical.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/spherical.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/stereo3d.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/stereo3d.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tablegen.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tea.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tea.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/adler32.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/aes.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/aes_ctr.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/audio_fifo.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/avstring.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/base64.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/blowfish.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/bprint.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/camellia.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/cast5.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/color_utils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/cpu.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/cpu_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/crc.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/des.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/dict.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/display.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/encryption_info.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/error.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/eval.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/fifo.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/file.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/hash.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/hmac.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/hwdevice.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/imgutils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/integer.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/lfg.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/lls.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/log.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/lzo.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/md5.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/murmur3.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/opt.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/parseutils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/pca.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/pixdesc.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/pixelutils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/pixfmt_best.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/random_seed.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/rational.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/ripemd.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/sha.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/sha512.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/softfloat.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/tea.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/tree.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/twofish.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/utf8.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tests/xtea.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/thread.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/threadmessage.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/threadmessage.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/time.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/time.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/time_internal.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/timecode.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/timecode.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/timer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/timestamp.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tomi/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tree.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tree.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/twofish.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/twofish.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tx.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/tx.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/utils.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/version.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/wchar_filename.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/Makefile (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/asm.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/bswap.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/cpu.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/cpu.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/emms.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/fixed_dsp_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/float_dsp_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/imgutils_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/intmath.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/intreadwrite.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/lls_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/pixelutils.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/pixelutils_init.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/timer.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/x86/w64xmmtest.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/xga_font_data.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/xga_font_data.h (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/xtea.c (100%) mode change 100644 => 100755 rename {libavutil => ffmpeg-y/libavutil}/xtea.h (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/Makefile (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/libpostproc.v (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/postprocess.c (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/postprocess.h (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/postprocess_altivec_template.c (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/postprocess_internal.h (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/postprocess_template.c (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/postprocres.rc (100%) mode change 100644 => 100755 rename {libpostproc => ffmpeg-y/libpostproc}/version.h (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/Makefile (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/aarch64/Makefile (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/aarch64/audio_convert_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/aarch64/audio_convert_neon.S (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/aarch64/neontest.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/aarch64/resample.S (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/aarch64/resample_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/arm/Makefile (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/arm/audio_convert_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/arm/audio_convert_neon.S (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/arm/neontest.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/arm/resample.S (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/arm/resample_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/audioconvert.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/audioconvert.h (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/dither.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/dither_template.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/libswresample.v (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/log2_tab.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/noise_shaping_data.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/options.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/rematrix.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/rematrix_template.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/resample.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/resample.h (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/resample_dsp.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/resample_template.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/soxr_resample.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/swresample.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/swresample.h (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/swresample_frame.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/swresample_internal.h (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/swresampleres.rc (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/tests/swresample.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/version.h (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/x86/Makefile (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/x86/audio_convert_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/x86/rematrix_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/x86/resample_init.c (100%) mode change 100644 => 100755 rename {libswresample => ffmpeg-y/libswresample}/x86/w64xmmtest.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/Makefile (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/aarch64/Makefile (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/aarch64/hscale.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/aarch64/output.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/aarch64/swscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/aarch64/swscale_unscaled.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/aarch64/yuv2rgb_neon.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/alphablend.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/Makefile (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/hscale.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/output.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/rgb2yuv_neon_16.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/rgb2yuv_neon_32.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/rgb2yuv_neon_common.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/swscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/swscale_unscaled.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/arm/yuv2rgb_neon.S (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/bayer_template.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/gamma.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/hscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/hscale_fast_bilinear.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/input.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/libswscale.v (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/log2_tab.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/options.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/output.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/Makefile (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/swscale_altivec.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/swscale_ppc_template.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/swscale_vsx.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/yuv2rgb_altivec.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/yuv2rgb_altivec.h (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/ppc/yuv2yuv_altivec.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/rgb2rgb.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/rgb2rgb.h (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/rgb2rgb_template.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/slice.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/swscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/swscale.h (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/swscale_internal.h (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/swscale_unscaled.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/swscaleres.rc (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/tests/colorspace.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/tests/pixdesc_query.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/tests/swscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/utils.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/version.h (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/vscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/Makefile (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/hscale_fast_bilinear_simd.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/rgb2rgb.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/rgb2rgb_template.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/swscale.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/swscale_template.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/w64xmmtest.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/yuv2rgb.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/x86/yuv2rgb_template.c (100%) mode change 100644 => 100755 rename {libswscale => ffmpeg-y/libswscale}/yuv2rgb.c (100%) mode change 100644 => 100755 rename {presets => ffmpeg-y/presets}/libvpx-1080p.ffpreset (100%) mode change 100644 => 100755 rename {presets => ffmpeg-y/presets}/libvpx-1080p50_60.ffpreset (100%) mode change 100644 => 100755 rename {presets => ffmpeg-y/presets}/libvpx-360p.ffpreset (100%) mode change 100644 => 100755 rename {presets => ffmpeg-y/presets}/libvpx-720p.ffpreset (100%) mode change 100644 => 100755 rename {presets => ffmpeg-y/presets}/libvpx-720p50_60.ffpreset (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/Makefile (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/Makefile (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-band-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-codec-param-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-flac-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-h264-slice-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-h264-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-seek-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/api/api-threadmessage-test.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/audiogen.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/audiomatch.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/base64.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/Makefile (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/aacpsdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/aarch64/checkasm.S (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/af_afir.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/alacdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/arm/checkasm.S (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/audiodsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/blockdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/bswapdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/checkasm.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/checkasm.h (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/exrdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/fixed_dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/flacdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/float_dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/fmtconvert.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/g722dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/h264dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/h264pred.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/h264qpel.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/hevc_add_res.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/hevc_idct.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/hevc_sao.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/huffyuvdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/jpeg2000dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/llviddsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/llviddspenc.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/pixblockdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/sbrdsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/sw_rgb.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/synth_filter.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/utvideodsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/v210dec.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/v210enc.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vf_blend.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vf_colorspace.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vf_gblur.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vf_hflip.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vf_nlmeans.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vf_threshold.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/videodsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vp8dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/checkasm/vp9dsp.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/copycooker.sh (100%) rename {tests => ffmpeg-y/tests}/extended.ffconcat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate-run.sh (100%) rename {tests => ffmpeg-y/tests}/fate-valgrind.supp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate.sh (100%) rename {tests => ffmpeg-y/tests}/fate/aac.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/ac3.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/acodec.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/adpcm.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/alac.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/als.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/amrnb.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/amrwb.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/api.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/apng.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/atrac.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/audio.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/bmp.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/build.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/canopus.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/cbs.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/cdxl.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/checkasm.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/concatdec.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/cover-art.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/dca.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/demux.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/dfa.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/dnxhd.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/dpcm.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/ea.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/exif.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/ffmpeg.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/ffprobe.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/fft.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/fifo-muxer.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/filter-audio.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/filter-video.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/fits.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/flac.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/flvenc.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/gapless.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/gif.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/h264.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/hap.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/hevc.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/hlsenc.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/hw.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/id3v2.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/image.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/indeo.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lavf-audio.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lavf-container.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lavf-image.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lavf-image2pipe.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lavf-video.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libavcodec.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libavdevice.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libavformat.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libavresample.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libavutil.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libswresample.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/libswscale.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lossless-audio.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/lossless-video.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/matroska.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/microsoft.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/monkeysaudio.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mov.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mp3.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mpc.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mpeg4.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mpegps.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mpegts.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/mxf.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/opus.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/pcm.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/pixfmt.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/pixlet.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/probe.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/prores.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/qt.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/qtrle.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/real.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/screen.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/seek.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/segment.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/source-check.sh (100%) rename {tests => ffmpeg-y/tests}/fate/source.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/speedhq.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/subtitles.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/utvideo.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/vcodec.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/video.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/voice.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/vorbis.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/vpx.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/vqf.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/wavpack.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/wma.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/fate/xvid.mak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/alphamerge_alphaextract_rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/alphamerge_alphaextract_yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/anequalizer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/channelmap_one_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/channelmap_one_str (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/colorkey (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/compand (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/concat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/firequalizer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/gradfun (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/hqdn3d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/hstack (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/lavr_mix_output_zero (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/mergeplanes (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay-dvdsub-2397 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay_nv12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay_nv21 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay_rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay_yuv420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay_yuv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/overlay_yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/scale2ref_keep_aspect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/scalenorm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/select-alternate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/setpts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/filtergraphs/vstack (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/md5.sh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-adx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-adx-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ima_qt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ima_qt-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ima_wav (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ima_wav-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ms (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-ms-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-swf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-swf-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-yamaha (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm-yamaha-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/adpcm_ima_qt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/alac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/flac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/flac-exact-rice (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/g723_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/mp2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/mp2fixed (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-alaw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-f32be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-f32le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-f64be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-f64le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-mulaw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s16be_planar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s16le_planar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s24be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s24le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s24le_planar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s32be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s32le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s32le_planar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-s8_planar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u24be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u24le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u32be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u32le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/pcm-u8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/roqaudio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/s302m (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/tta (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/acodec/wavpack (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/012v (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/4xm-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/4xm-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/8bps (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aac-autobsf-adtstoasc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aasc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/acodec-aref (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-4xm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-afc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-creative (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-creative-8-2.6bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-creative-8-2bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-creative-8-4bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-dtk (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-maxis-xa (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-r1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-r2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ea-r3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-amv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-apc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-dk3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-dk4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-ea-eacs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-ea-sead (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-iss (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-oki (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-rad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-smjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima-ws (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ima_wav-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-ms-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-thp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-vima (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm-xa (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adpcm_ms-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adts-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adts-id3v1-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adts-id3v2-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adts-id3v2-two-tags-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/adtstoasc_ticket3715 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aea-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aic (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aic-oddsize (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/alg-mm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aliaspix-bgr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/aliaspix-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/amv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ansi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ansi256 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/api-h264 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/api-h264-slice (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/api-mjpeg-codec-param (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/api-png-codec-param (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/apng-clock (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/apng-osample (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/armovie-escape124 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/armovie-escape130 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/asf-repldata (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ast (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/async (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audio_fifo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-mono-he-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-mono-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-mono-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-mono-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-stereo-he-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-stereo-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-stereo-he2-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-stereo-he2-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-stereo-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-16000-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-mono-he-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-mono-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-mono-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-mono-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-stereo-he-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-stereo-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-stereo-he2-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-stereo-he2-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-stereo-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-afconvert-44100-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-dolby-44100-mono-he-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-dolby-44100-mono-lc-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-dolby-44100-stereo-he-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-dolby-44100-stereo-he2-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-dolby-44100-stereo-lc-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-16000-mono-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-16000-mono-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-16000-stereo-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-16000-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-44100-mono-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-44100-mono-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-44100-stereo-lc-adts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-faac-44100-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-16000-mono-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-16000-mono-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-16000-stereo-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-16000-stereo-he2-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-16000-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-44100-mono-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-44100-mono-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-44100-stereo-he-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-44100-stereo-he2-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-nero-44100-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-quicktime7-44100-stereo-lc-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-quicktimeX-44100-stereo-lc-m4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-square-aac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/audiomatch-square-mp3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/auravision-v1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/auravision-v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/avio-direct (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/avstring (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/base64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bcstm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bethsoft-vid (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bfi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bfstm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bink-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bink-video-b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bink-video-f (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bink-video-i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/binsub-mksenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/binsub-movtextenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/blowfish (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-15bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-15bit-mask (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-16bit-mask (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-1bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-24bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-32bit-mask (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-4bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-4bit-os2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-8bit-os2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-rle4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmp-rle8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmpparser (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmv-audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bmv-video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/bprint (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/brenderpix-24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/brenderpix-565 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/brenderpix-defpal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/brenderpix-intpal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/brenderpix-y400a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/brstm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/caf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-cllc-argb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-cllc-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-cllc-yuy2-noblock (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-hq_hqa-hq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-hq_hqa-hqa (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-hq_hqa-inter (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-hqx422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/canopus-hqx422a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cavs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-AUD_MW_E (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-BASQP1_Sony_C (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CABACI3_Sony_B (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CVBS3_Sony_C (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CVFC1_Sony_C (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CVNLFI1_Sony_C (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CVSE2_Sony_B (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-CVWP1_TOSHIBA_E (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-FM1_BT_B (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-MR1_BT_A (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-SVA_Base_B (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-sei-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-h264-sp1_bt_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-NUT_A_ericsson_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-RPLM_A_qualcomm_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-RPS_A_docomo_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-RPS_E_qualcomm_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-SLIST_A_Sony_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-SLIST_D_Sony_9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-SLPPLP_A_VIDYO_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-STRUCT_A_Samsung_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-TILES_B_Cisco_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-WP_A_Toshiba_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-hevc-ipcm_E_NEC_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-mpeg2-hhi_burst_422_short (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-mpeg2-sony-ct3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-mpeg2-tcela-6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-03-deltaq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-05-resize (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-06-bilinear (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-09-lf_deltas (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp91-2-04-yuv440 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp91-2-04-yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdgraphics (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdxl-bitline-ham6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdxl-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdxl-ham6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdxl-ham8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdxl-pal8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cdxl-pal8-small (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cfhd-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cfhd-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cfhd-3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cine-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/color_utils (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/concat-demuxer-extended-lavf-mxf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/concat-demuxer-extended-lavf-mxf_d10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/concat-demuxer-simple1-lavf-mxf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/concat-demuxer-simple1-lavf-mxf_d10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/concat-demuxer-simple2-lavf-ts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-apng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-psp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-trac2211-avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-trac236 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-trac3074 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-trac4914 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/copy-trac4914-avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/corepng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/crc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/creatureshock-avs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cscd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cvid-grayscale (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cvid-palette (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cvid-partial (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cyberia-c93 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/cyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/d-cinema-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/d-eavp6-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_16_192_768_0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_16_192_768_0-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_16_192_768_0-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_16_192_768_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_16_192_768_1-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_16_192_768_1-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_24_48_768 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_24_48_768-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_24_48_768-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_24_48_none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_24_48_none-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_51_24_48_none-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_48_768_0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_48_768_0-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_48_768_0-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_48_768_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_48_768_1-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_48_768_1-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_96_768 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_96_768-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_71_24_96_768-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_x96_51_24_96_1509 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_xch_61_24_48_768 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dcinema-encode (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-alpha8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-argb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-argb-aexp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dx10-bc1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dx10-bc1a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dx10-bc2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dx10-bc3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dx10-bc4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dx10-bc5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt1-normalmap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt1a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-aexp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-normalmap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-normalmap-ati (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-rbxg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-rgxb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-rxbg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-rxgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-xgbr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-xgxr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-xrbg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-ycocg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-dxt5-ycocg-scaled (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-monob (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-pal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-pal-ati (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgb1555 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgb16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgb555 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc1s (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc1u (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc2s (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc2u (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-rgtc2u-xy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-uyvy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-xbgr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-xrgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-y (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-ya (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-ycocg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dds-yuyv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/delphine-cin-audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/delphine-cin-video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/deluxepaint-anm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa11 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa7 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dfa9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dict (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dirac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dirac-low-delay (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/display (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhd-mbaff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-12bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-parse (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-prefix1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-prefix2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-prefix3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-prefix4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dnxhr-prefix5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dpcm-idroq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dpcm-interplay (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dpcm-sierra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dpcm-xan (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dpxparser (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dss-lp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dss-sp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxa-feeble (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxa-scummvm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxtory (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxv-dxt1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxv-dxt5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxv3-dxt1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/dxv3-dxt5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-cdata (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-cmv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-mad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-tgq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-tgv-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-tgv-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ea-tqi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/eval (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exif-image-embedded (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exif-image-jpg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exif-image-tiff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exif-image-webp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-b44a-half-negative-4x4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-b44-uint32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-float-b44 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-float-piz-48x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-half-b44-12x8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-half-b44-13x9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-half-piz-bw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-half-piz-color (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-half-piz-dw-t01 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-half-piz-dw-t08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-none-negative-red (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-float-12x8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-float-half-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-float-half-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-half-uint32-13x9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-pxr24-uint32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-raw-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-raw-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-rle-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-rle-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-zip-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-zip-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-zip1-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-scanline-zip1-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-float-raw-12x8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-float-raw-150x130 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-half-float-b44-12x8-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-half-raw-12x8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-pxr24-float-half-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-pxr24-float-half-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-pxr24-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-pxr24-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-raw-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-raw-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-rle-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-rle-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-zip-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-zip-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-zip1-half-float-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgb-tile-zip1-half-float-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-multiscanline-half-b44 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-rgba-zip16-16x32-flag4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-slice-pxr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-slice-raw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-slice-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-slice-zip1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-slice-zip16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-y-scanline-zip-half-12x8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/exr-y-tile-zip-half-12x8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-attached_pics (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-bsf-remove-e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-bsf-remove-k (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-bsf-remove-r (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-filter_colorkey (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-filter_complex (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-filter_complex_audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffmpeg-lavfi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_compact (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_csv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_default (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_flat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_ini (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_json (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ffprobe_xml (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fic-avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fifo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fifo-muxer-tst (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/film-cvid (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-2xbr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-3xbr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-4xbr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-acrossfade (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-adelay (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-aecho (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-aemphasis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-aemphasis-50fm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-aemphasis-75kf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-afade-esin (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-afade-exp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-afade-hsin (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-afade-iqsin (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-afade-log (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-afade-qsin (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-agate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-alimiter (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-allrgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-allyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-alphaextract_alphamerge_rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-alphaextract_alphamerge_yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-amerge (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-anequalizer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-apad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-asetnsamples-nopad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-asetnsamples-pad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-asetrate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-atrim-duration (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-atrim-mixed (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-atrim-samples (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-atrim-time (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-boxblur (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-chorus (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-codecview-mvs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-colorchannelmixer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-colormatrix1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-colormatrix2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-compand (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-concat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-crop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-crop_scale (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-crop_scale_vflip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-crop_vflip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-curves (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-dcshift (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-delogo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-drawbox (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-earwax (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-edgedetect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-edgedetect-colormix (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-extrastereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fade (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fieldorder (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-formats (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-cfr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-down-eof-pass (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-down-round-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-down-round-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-r (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-start-drop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-start-fill (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-up-round-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-fps-up-round-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framepack-columns (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framepack-frameseq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framepack-lines (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framepack-sbs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framepack-tab (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framerate-12bit-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framerate-12bit-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framerate-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-framerate-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-gradfun (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-gradfun-sample (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-histogram-levels (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hls (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hls-append (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hq2x (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hq3x (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hq4x (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hqdn3d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hqdn3d-sample (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hstack (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hue1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hue2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hue3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-hue4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-idet (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-interlace (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-interlace-complex (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-lavd-life (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-lavd-scalenorm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-lavd-testsrc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-mcdeint-fast (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-mcdeint-medium (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-mergeplanes (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-meta-4560-rotate0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-avf-aphase-meter-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-avf-aphase-meter-out-of-phase (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-cropdetect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-ebur128 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-readvitc-def (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-readvitc-thr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-scenedetect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-metadata-silencedetect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-mpdecimate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-negate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-null (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay-dvdsub-2397 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_gbrap_gbrap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_gbrp_gbrap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_rgb_rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_rgba_rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuv420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuv420_yuva420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuv422_yuva422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuv444_yuva444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuva420_yuva420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuva422_yuva422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-overlay_yuva444_yuva444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pal100bars (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pal75bars (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-palettegen-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-palettegen-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-paletteuse-bayer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-paletteuse-nodither (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-paletteuse-sierra2_4a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-downmix1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-downmix2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-mono1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-mono2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-stereo1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-stereo2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-stereo3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-stereo4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-upmix1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pan-upmix2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-phase (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-0bgr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-0rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-abgr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-argb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-ayuv64le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr444be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr444le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr48be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr48le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr4_byte (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr555be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr555le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr565be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr565le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgr8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgra64be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-bgra64le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrap16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp14be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp14le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gbrp9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray14be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray14le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-gray9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-grayf32be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-grayf32le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-monob (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-monow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-nv12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-nv21 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-nv24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-nv42 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-p010be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-p010le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-p016be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-p016le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb444be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb444le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb48be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb48le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb4_byte (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb555be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb555le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb565be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb565le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgb8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgba64be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-rgba64le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-uyvy422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-xyz12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-xyz12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-ya16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-ya16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-ya8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv410p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv411p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p14be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p14le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv420p9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p14be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p14le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv422p9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv440p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv440p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv440p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv440p12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv440p12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p14be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p14le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuv444p9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva420p9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva422p9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p10be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p10le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p12be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p12le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p9be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuva444p9le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuvj411p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuvj420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuvj422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuvj440p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuvj444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yuyv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixdesc-yvyu422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-copy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-crop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-field (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-fieldmatch (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-fieldorder (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-hflip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-histeq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-il (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-kerndeint (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-lut (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-null (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-pad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-pullup (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-rotate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-scale (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-super2xsai (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-swapuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-tinterlace_cvlpf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-tinterlace_merge (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-tinterlace_pad (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-tinterlace_vlpf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-transpose (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pixfmts-vflip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-pp6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-qp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-refcmp-psnr-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-refcmp-psnr-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-refcmp-ssim-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-refcmp-ssim-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-00 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-01 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-02 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-03 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-04 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-05 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-06 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-07 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-09 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-11 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-13 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-14 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-17 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-19 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-21 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-22 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-23 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-removegrain-mode-24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-rgbtestsrc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-scale200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-scale2ref_keep_aspect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-scale500 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-scalechroma (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-select (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-select-alternate (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-separatefields (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-setdar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-setpts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-setsar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-showpalette (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-shuffleframes (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-shuffleplanes-dup-luma (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-shuffleplanes-swapuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-silenceremove (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-smptebars (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-smptehdbars (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-abr-ml (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-abr-mr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-al-sbsl (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-ar-abl (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-abl (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-abr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-agmc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-agmd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-agmg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-agmh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-al (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-arbg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-arcc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-arcd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-arcg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-arch (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-argg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-aybc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-aybd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-aybg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-aybh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereo3d-sbsl-sbsr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-stereotools (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-swaprect (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-tblend (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-telecine (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-testsrc2-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-testsrc2-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-testsrc2-yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-testsrc2-yuv444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-thumbnail (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-tile (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-transpose (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-tremolo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-trim-duration (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-trim-frame (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-trim-mixed (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-trim-time (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-unsharp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vectorscope_color (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vectorscope_color2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vectorscope_color3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vectorscope_color4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vectorscope_gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vectorscope_xy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vflip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vflip_crop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vflip_vflip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-vstack (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-w3fdif-complex (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-w3fdif-simple (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-waveform_column (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-waveform_envelope (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-waveform_row (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-waveform_uv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-weave (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-yadif-mode0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-yadif-mode1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-yadif10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-yadif16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-yuvtestsrc-yuv444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/filter-yuvtestsrc-yuv444p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fits-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-bitpix-32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-bitpix-64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-blank_bitpix32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-ext_data_min_max (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-gbrap16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-gbrp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-gbrp16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsdec-multi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsenc-gbrap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsenc-gbrap16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsenc-gbrp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsenc-gbrp16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsenc-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fitsenc-gray16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/flcl1905 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/flic-af11-palette-change (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/flic-af12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/flic-magiccarpet (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/flv-add_keyframe_index (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/flv-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fmvc-type1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fmvc-type2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/force_key_frames (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fraps-v0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fraps-v1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fraps-v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fraps-v3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fraps-v4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/fraps-v5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/frwu (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g2m2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g2m3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g2m4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g722-encode (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g722dec-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-7 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g723_1-dec-8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g726-encode-2bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g726-encode-3bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g726-encode-4bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g726-encode-5bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g729-0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/g729-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gapless-mp3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gaplessenc-itunes-to-ipod-aac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gaplessenc-pcm-to-mov-aac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gaplessinfo-itunes1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gaplessinfo-itunes2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gif-color (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gif-deal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gif-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gif-disposal-background (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gif-disposal-restore (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gif-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gifenc-bgr4_byte (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gifenc-bgr8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gifenc-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gifenc-pal8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gifenc-rgb4_byte (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gifenc-rgb8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gsm-ms (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/gsm-toast (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-3386 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-attachment-631 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-brokensps-2580 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-bsf-mp4toannexb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-aud_mw_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ba1_ft_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ba1_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ba2_sony_f (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ba3_sva_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ba_mw_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-bamq1_jvc_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-bamq2_jvc_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-banm_mw_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-basqp1_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba1_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba1_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba2_sony_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba2_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba3_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba3_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caba3_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabac_mot_fld0_full (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabac_mot_frm0_full (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabac_mot_mbaff0_full (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabac_mot_picaff0_full (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabaci3_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabast3_sony_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabastbr3_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cabref3_sand_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cacqp3_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cafi1_sva_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cama1_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cama1_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cama1_vtc_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cama2_vtc_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cama3_sand_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cama3_vtc_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camaci3_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camanl1_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camanl2_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camanl3_sand_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camasl3_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camp_mot_mbaff_l30 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-camp_mot_mbaff_l31 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl1_sony_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl1_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl1_toshiba_g (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl2_sony_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl2_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl3_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl3_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canl4_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canlma2_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-canlma3_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-capa1_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-capama3_sand_f (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-capcm1_sand_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-capcmnl1_sand_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-capm3_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-caqp1_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cavlc_mot_fld0_full_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cavlc_mot_frm0_full_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cavlc_mot_mbaff0_full_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cavlc_mot_picaff0_full_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cawp1_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cawp5_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ci1_ft_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ci_mw_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvbs3_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvcanlma2_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvfc1_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvfi1_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvfi1_sva_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvfi2_sony_h (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvfi2_sva_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvma1_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvma1_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmanl1_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmanl2_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmapaqp3_sony_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmaqp2_sony_g (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmaqp3_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmp_mot_fld_l30_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvmp_mot_frm_l31_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvnlfi1_sony_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvnlfi2_sony_h (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvpa1_toshiba_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvpcmnl1_sva_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvpcmnl2_sva_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvwp1_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvwp2_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvwp3_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-cvwp5_toshiba_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-fi1_sony_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-alphaconformanceg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-bcrm_freh10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-brcm_freh11 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-brcm_freh3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-brcm_freh4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-brcm_freh5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-brcm_freh8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-brcm_freh9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-freh12_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-freh1_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-freh2_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-freh6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-freh7_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext01_jvc_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext02_jvc_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext1_panasonic_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext2_panasonic_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext3_panasonic_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext4_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-frext_mmco4_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hcaff1_hhi_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hcafr1_hhi_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hcafr2_hhi_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hcafr3_hhi_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hcafr4_hhi_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hcamff1_hhi_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hi422fr10_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hi422fr13_sony_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hi422fr1_sony_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hi422fr6_sony_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpca_brcm_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcadq_brcm_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcafl_bcrm_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcaflnl_bcrm_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcalq_brcm_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcamapalq_bcrm_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcamolq_brcm_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcanl_brcm_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcaq2lq_brcm_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcv_brcm_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcvfl_bcrm_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcvflnl_bcrm_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcvmolq_brcm_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-hpcvnl_brcm_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i1_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i2_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i3_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i4_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i5_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i6_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph10i7_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i1_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i2_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i3_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i4_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i5_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i6_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-frext-pph422i7_panasonic_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-hcbp2_hhi_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-hcmp1_hhi_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-ls_sva_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-midr_mw_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mps_mw_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr1_bt_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr1_mw_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr2_mw_a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr2_tandberg_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr3_tandberg_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr4_tandberg_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr5_tandberg_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr6_bt_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr7_bt_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr8_bt_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mr9_bt_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-mv1_brcm_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-nl1_sony_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-nl2_sony_h (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-nl3_sva_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-nlmq1_jvc_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-nlmq2_jvc_c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-nrf_mw_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sharp_mp_field_1_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sharp_mp_field_2_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sharp_mp_field_3_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sharp_mp_paff_1r2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sharp_mp_paff_2r (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sl1_sva_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_ba1_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_ba2_d (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_base_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_cl1_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_fm1_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_nl1_b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-conformance-sva_nl2_e (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-crop-to-container (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-direct-bff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-dts_5frames (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-extradata-reload (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-extreme-plane-pred (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-interlace-crop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-intra-refresh-recovery (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-invalid-ref-mod (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-lossless (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-missing-frame (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-mixed-nal-coding (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-ref-pic-mod-overflow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-reinit-large_420_8-to-small_420_8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-reinit-small_420_8-to-large_444_10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-reinit-small_420_9-to-small_420_8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-reinit-small_422_9-to-small_420_9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-skip-nointra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-skip-nokey (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-timecode (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-twofields-packet (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-unescaped-extradata (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264-xavc-4389 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264_mp4toannexb_ticket2991 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264_mp4toannexb_ticket5927 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/h264_mp4toannexb_ticket5927_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hap-alpha-only-nosnappy-128x72 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hap-alpha-only-snappy-127x71 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hap-chunk (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hap1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hap5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapenc-hap-none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapenc-hapa-none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapenc-hapq-none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-extract-nosnappy-to-hapq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-extract-snappy1-to-hapalphaonly (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-extract-snappy1-to-hapq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-extract-snappy16-to-hapalphaonly (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-extract-snappy16-to-hapq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-nosnappy-127x71 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-snappy1-127x71 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapqa-snappy16-127x71 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hapy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hash (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_A_Samsung_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_A_Samsung_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_B_Samsung_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_B_Samsung_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_D_Hisilicon (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_E_Hisilicon (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMP_F_Hisilicon_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMVP_A_MTK_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMVP_B_MTK_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMVP_C_Samsung_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-AMVP_C_Samsung_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-BUMPING_A_ericsson_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_A_SHARP_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_B_SHARP_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_C_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_D_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_E_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_F_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_G_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CAINIT_H_SHARP_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CIP_A_Panasonic_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CIP_C_Panasonic_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-CONFWIN_A_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_A_MAIN10_VIXS_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_A_SONY_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_B_SONY_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_C_SONY_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_D_VIXS_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_E_VIXS_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_F_VIXS_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DBLK_G_VIXS_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DELTAQP_A_BRCM_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DELTAQP_B_SONY_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DELTAQP_C_SONY_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DSLICE_A_HHI_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DSLICE_B_HHI_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-DSLICE_C_HHI_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ENTP_A_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ENTP_B_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ENTP_C_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-EXT_A_ericsson_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-FILLER_A_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-HRD_A_Fujitsu_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-HRD_A_Fujitsu_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-INITQP_A_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-INITQP_B_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-IPCM_A_RExt_NEC (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-IPCM_B_RExt_NEC (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-IPRED_A_docomo_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-IPRED_B_Nokia_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-IPRED_C_Mitsubishi_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-LS_A_Orange_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-LS_B_ORANGE_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-LTRPSPS_A_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MAXBINS_A_TI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MAXBINS_B_TI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MAXBINS_C_TI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_A_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_B_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_C_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_D_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_E_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_F_MTK_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MERGE_G_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MVCLIP_A_qualcomm_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MVDL1ZERO_A_docomo_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-MVEDGE_A_qualcomm_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-Main_422_10_A_RExt_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-Main_422_10_B_RExt_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-NUT_A_ericsson_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-NoOutPrior_A_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-NoOutPrior_B_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-OPFLAG_A_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-OPFLAG_B_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-OPFLAG_C_Qualcomm_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PICSIZE_A_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PICSIZE_B_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PICSIZE_C_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PICSIZE_D_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PMERGE_A_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PMERGE_B_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PMERGE_C_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PMERGE_D_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PMERGE_E_TI_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-POC_A_Bossen_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PPS_A_qualcomm_7 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PS_A_VIDYO_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-PS_B_VIDYO_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-QMATRIX_A_RExt_Sony_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RAP_A_docomo_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RAP_B_Bossen_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPLM_A_qualcomm_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPLM_B_qualcomm_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPS_A_docomo_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPS_B_qualcomm_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPS_C_ericsson_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPS_D_ericsson_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPS_E_qualcomm_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RPS_F_docomo_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_A_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_B_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_C_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_D_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_E_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_F_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-RQT_G_HHI_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_A_MediaTek_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_A_RExt_MediaTek_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_B_MediaTek_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_C_Samsung_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_C_Samsung_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_D_Samsung_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_D_Samsung_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_E_Canon_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_F_Canon_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SAO_G_Canon_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SDH_A_Orange_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLICES_A_Rovi_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLIST_A_Sony_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLIST_B_Sony_8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLIST_C_Sony_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLIST_D_Sony_9 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-STRUCT_A_Samsung_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-STRUCT_B_Samsung_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-STRUCT_B_Samsung_6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TILES_A_Cisco_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TILES_B_Cisco_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TMVP_A_MS_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TSCL_A_VIDYO_5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TSCL_B_VIDYO_4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TSKIP_A_MS_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-TUSIZE_A_Samsung_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-VPSID_A_VIDYO_1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-VPSID_A_VIDYO_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN10_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN10_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN10_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN10_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN10_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN10_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WP_A_MAIN10_Toshiba_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WP_A_Toshiba_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WP_B_Toshiba_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-WP_MAIN10_B_Toshiba_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-cip_B_NEC_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ipcm_A_NEC_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ipcm_B_NEC_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ipcm_C_NEC_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ipcm_D_NEC_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-conformance-ipcm_E_NEC_2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-extradata-reload (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-monochrome-crop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-paired-fields (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-paramchange-yuv420p-yuv420p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-skiploopfilter (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hevc-two-first-slice (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hls-fmp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hls-init-time (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hls-list-size (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hls-segment-size (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/hmac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/id-cin-video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/id3v2-priv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/idroq-video-encode (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iff-byterun1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iff-fibonacci (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iff-ilbm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iff-pcm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iirfilter (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/imgutils (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/indeo2-delta (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/indeo2-intra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/indeo3-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/indeo3-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/indeo4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/indeo5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/interplay-mve-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/interplay-mve-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iscc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/iv8-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/j2k-dwt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/jpeg2000-dcinema (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/jpg-12bpp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/jpg-jfif (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/jv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/jv-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/kgv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/kmvc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-red (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-rgb32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-ticket4119 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-ticket4119-cfr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-ticket4119-drop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-ticket4119-pass (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-ticket4119-vfr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-yuy2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lagarith-yv12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lfg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/libavcodec-htmlsubtitles (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/libavcodec-options (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/limited_input_seek (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/limited_input_seek-copyts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lmlm4-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/loco-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/loco-yuy2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-alac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-meridianaudio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-monkeysaudio-399 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-shorten (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-tak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-truehd-5.1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-truehd-5.1-downmix-2.0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-tta (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-tta-encrypted (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-wma (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-wma24-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-wma24-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/lossless-wma24-rawtile (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/m4v (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/m4v-cfr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-y400i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-y420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-y422i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-y444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/magicyuv-y4444i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mapchan-2ch-extract-ch0-ch2-trailing (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mapchan-3ch-extract-ch0-ch2-trailing (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mapchan-6ch-extract-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mapchan-6ch-extract-2-downmix-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mapchan-silent-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/matroska-spherical-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/maxis-xa (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/md5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mdec (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mdec-v3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mimic (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mjpegb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mkv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mkv-1242 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mlv-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/motionpixels (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-1elist-1ctts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-1elist-ends-last-bframe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-1elist-noctts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-2elist-elist1-ends-bframe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-3elist (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-3elist-1ctts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-3elist-encrypted (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-440hz-10ms (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-aac-2048-priming (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-bbi-elst-starts-b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-displaymatrix (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-elist-starts-ctts-2ndsample (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-elst-ends-betn-b-and-i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-frag-encrypted (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-frag-overlap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-guess-delay-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-guess-delay-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-guess-delay-3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-ibi-elst-starts-b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-init-nonkeyframe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-invalid-elst-entry-count (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-mp3-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-mp4-with-mov-in24-ver (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-neg-firstpts-discard (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-neg-firstpts-discard-frames (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-neg-firstpts-discard-vorbis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-spherical-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-stream-shorter-than-movie (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-tenc-only-encrypted (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mov-zombie (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/movenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpc7-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpc8-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg2-field-enc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg2-ticket186 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg2-ticket6024 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg2-ticket6677 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-als-conformance-00 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-als-conformance-01 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-als-conformance-02 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-als-conformance-03 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-als-conformance-04 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-als-conformance-05 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-bsf-unpack-bframes (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-packed (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-resolution-change-down-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-resolution-change-down-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-resolution-change-up-down (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpeg4-resolution-change-up-up (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpegps-remuxed-pcm-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpegts-probe-latm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpegts-probe-pmt-merge (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mpegts-probe-program (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/msmpeg4v1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/msrle-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mss1-pal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mss2-pal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mss2-pals (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mss2-rgb555 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mss2-rgb555s (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mss2-wmv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/msvideo1-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/msvideo1-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mszh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mts2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mts2-xesc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mtv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/murmur3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mv-mvc1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mv-mvc2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mv-sgirle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-d10-user-comments (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-essencegroup-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-metadata-source-ref1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-metadata-source-ref2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-missing-index-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-multiple-components-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-opatom-user-comments (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-probe-d10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-probe-dnxhd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-probe-dv25 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-reel_name (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxf-user-comments (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/mxpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/nc-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/nistsphere-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/noproxy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/nsv-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/nuv-rtjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/nuv-rtjpeg-fh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/oggopus-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/oggvp8-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/oma-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/on2avc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/opt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/paf-audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/paf-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/paf-video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/parseutils (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pcm-planar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pcm_dvd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pcm_s16be-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pcm_s16le-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pcm_u8-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pcm_u8-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pict (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pictor (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pixelutils (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pixfmt_best (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pixlet-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pmp-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-gray16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-gray8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-int-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-rgba64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-ya16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/png-ya8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pngparser (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-422_hq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-422_lt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-422_proxy (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-alpha (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-alpha_skip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-metadata (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-transparency (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/prores-transparency_skip (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-duo-tone-color (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-gray16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-gray8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-lena-127x127-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-lena-256c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-lena-bitmap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-lena-rgb-rle-127x127-16b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-lena-rgb-rle-127x127-8b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-lena-rgba-rle-128x128-8b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-rgba64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-ya16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psd-ya8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/psx-str-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ptx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/pva-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qcp-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-alaw-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-alaw-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-ima4-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-ima4-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-mac3-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-mac3-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-mac6-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-mac6-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-ulaw-mono (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qt-ulaw-stereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-1bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-24bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-2bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-4bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/qtrle-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/quickdraw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/r210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ra-144 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ra3-144 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ralf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/random_seed (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/redcode-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/redspark-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rgb24-mkv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rgbapng-4816 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ripemd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rl2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/roqvideo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rpza (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rscc-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rscc-24bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rscc-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rscc-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rsd-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rtmpdh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rv20-1239 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rv30 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/rv40 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sanm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/screenpresso-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/screenpresso-24bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/screenpresso-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/segment-adts-to-mkv-header-000 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/segment-adts-to-mkv-header-001 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/segment-adts-to-mkv-header-002 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/segment-adts-to-mkv-header-all (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/segment-mp4-to-ts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-gray16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-gray16-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-gray8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-gray8-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgb24-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgb48-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgba (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgba-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgba64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sgi-rgba64-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sha (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sha512 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sierra-vmd-audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sierra-vmd-video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/siff-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/smacker-audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/smacker-video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/smc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/smjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/smjpeg-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/smvjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/source (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sp5x (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/speedhq-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/speedhq-422-singlefield (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/srtp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-aqtitle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-ass-to-ass-transcode (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-cc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-cc-realtime (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-cc-scte20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-charenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-jacosub (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-microdvd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-microdvd-remux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-movtext (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-mpl2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-mpsub (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-mpsub-frames (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-pjs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-realtext (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-sami (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-sami2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-scc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-srt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-srt-badsyntax (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-srt-empty-events (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-srt-madness-timeshift (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-srt-rrn-remux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-ssa-to-ass-remux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-stl (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-subripenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-subviewer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-subviewer1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-textenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-vplayer (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-webvtt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-webvtt2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub-webvttenc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sub2video (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-1bit-raw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-1bit-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-24bit-raw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-24bit-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-8bit-raw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-8bit-rle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sunraster-8bit_gray-raw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/svq1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/svq1-headerswap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/svq3-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/svq3-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/svq3-watermark (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/sws-pixdesc-query (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-CBW8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-CCM8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-CTC16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-CTC24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-CTC32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-UBW8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-UCM8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-UTC16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-UTC24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-conformance-UTC32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/targa-top-to-bottom (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tdsc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tea (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/theora-coeff-level64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/theora-offset (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/thp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tiertex-seq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tiff-fax-g3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tiff-fax-g3s (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/time_base (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/timefilter (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tmv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/truemotion1-15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/truemotion1-24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/truemotion2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/truemotion2rt-high (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/truemotion2rt-low (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/truemotion2rt-mid (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ts-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ts-opus-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ts-small-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tscc-15bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tscc-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tscc2-avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/tscc2-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/txd-16bpp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/txd-odd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/txd-pal8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ulti (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/unknown_layout-ac3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/unknown_layout-pcm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/url (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgb_int_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgb_int_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgb_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgb_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgba_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgba_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgba_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_rgba_single_symbol (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv420_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv420_int_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv420_int_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv420_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv420_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv422_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv422_int_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv422_int_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv422_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv422_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv444_709_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv444_709_int_gradient (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv444_709_int_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideo_yuv444_709_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_rgb_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_rgb_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_rgb_none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_rgba_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_rgba_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_rgba_none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv420_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv420_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv420_none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv422_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv422_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv422_none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv444_left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv444_median (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/utvideoenc_yuv444_none (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/v210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/v410dec (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/v410enc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vble (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1-ism (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1_ilaced_twomv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1_sa00040 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1_sa00050 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1_sa10091 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1_sa10143 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1_sa20021 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1test_smm0005 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vc1test_smm0015 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vcr1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vcr2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/videoxl (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vmnc-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vmnc-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vorbis-1833-chapters (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp31 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp60 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp61 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp6a (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp6a-skip_alpha (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp6f (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp7 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-2451 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-alpha (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-sign-bias (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-size-change (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-001 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-002 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-003 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-004 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-005 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-006 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-007 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-008 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-009 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-010 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-011 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-012 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-013 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-014 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-015 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-016 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp8-test-vector-017 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-00 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-01 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-02 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-03 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-04 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-05 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-06 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-07 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-09 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-11 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-13 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-14 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-17 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-19 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-21 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-22 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-23 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-25 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-26 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-27 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-28 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-29 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-30 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-31 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-33 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-35 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-36 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-37 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-38 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-39 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-40 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-41 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-42 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-43 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-44 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-45 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-46 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-47 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-49 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-51 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-52 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-53 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-54 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-55 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-56 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-57 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-58 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-59 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-60 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-61 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-62 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-00-quantizer-63 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-5 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-6 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-01-sharpness-7 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-08x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-10x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-16x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-18x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-32x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-34x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-64x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x08 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x18 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x34 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-02-size-66x66 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-deltaq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-196x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-198x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-200x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-202x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-208x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-210x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-224x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x196 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x198 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x200 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x202 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x208 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x224 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-03-size-226x226 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-05-resize (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-06-bilinear (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-09-lf_deltas (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-10-show-existing-frame (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-10-show-existing-frame2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-15-segkey_adpq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-16-intra-only (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-2pass-akiyo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-parallelmode-akiyo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-segmentation-aq-akiyo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-segmentation-sf-akiyo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-tiling-pedestrian (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-trac3849 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9-trac4359 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p1-04-yuv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p1-04-yuv440 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p1-04-yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p2-20-10bit-yuv420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p2-20-12bit-yuv420 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p3-20-10bit-yuv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p3-20-10bit-yuv440 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p3-20-10bit-yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p3-20-12bit-yuv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p3-20-12bit-yuv440 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vp9p3-20-12bit-yuv444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vqa-cc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/vqf-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/w64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wav-ac3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-channels-4.0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-channels-5.1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-channels-6.1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-channels-7.1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-channels-monofloat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-channels-monoint (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-clipping (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-cuesheet (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-falsestereo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossless-12bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossless-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossless-24bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossless-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossless-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossless-float (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossy-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossy-24bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossy-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossy-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-lossy-float (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-matroskamode (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-speed-default (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-speed-fast (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-speed-high (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-speed-vhigh (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wavpack-zerolsbs (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wc3movie-xan (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webm-dash-manifest (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webm-dash-manifest-live (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webm-dash-manifest-live-bandwidth (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webm-dash-manifest-representations (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webm-dash-manifest-unaligned-audio-streams (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webm-dash-manifest-unaligned-video-streams (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webp-rgb-lena-lossless (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webp-rgb-lena-lossless-rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webp-rgb-lossless (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webp-rgb-lossy-q80 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webp-rgba-lossless (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/webp-rgba-lossy-q80 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/westwood-aud (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wmv3-drm-dec (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wmv3-drm-nodec (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wmv8-x8intra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wnv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/ws_snd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/wtv-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xbm10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xbm11 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xface (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xmv-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xtea (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xvid-custom-matrix (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xvid-idct (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xwma-demux (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/xxan-wc4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/yop (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/zerocodec (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/zlib (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/zmbv-15bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/zmbv-16bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/zmbv-32bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/fate/zmbv-8bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf-fate/cram.avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf-fate/latm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf-fate/mp3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf-fate/qtrle_mace6.mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf-fate/vp3.ogg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf-fate/vp8.ogg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/aiff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/al (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/apng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/apng.png (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/asf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ast (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/au (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/bmp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/caf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/dv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/dv_ntsc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/dv_pal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/flm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gbrap.fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gbrap16be.fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gbrp.fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gbrp10le.dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gbrp12le.dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gbrp16be.fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gif (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gray.fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gray.pam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gray.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gray16be.fits (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gray16be.pam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gray16be.png (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gxf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gxf_ntsc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/gxf_pal (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ircam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ismv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/jpg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mka (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mkv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mkv_attachment (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mmf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/monob.pam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/monow.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mov_rtphint (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mpg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mxf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mxf_d10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mxf_dv25 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mxf_dvcpro50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mxf_opatom (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/mxf_opatom_audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/nut (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ogg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/pam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/pbmpipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/pcx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/peak.wav (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/peak_only.wav (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/pgm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/pgmpipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/png (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ppm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ppmpipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb48be.pam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb48be.png (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb48le.dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb48le_10.dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb4_byte.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb555be.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb565be.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgb8.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgba.pam (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgba.xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rgba64le.dpx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/rso (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/s16.voc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/sgi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/smjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/sox (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/sun (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/swf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/tga (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/tiff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/tta (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/ul (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/voc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/w64 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/wav (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/wtv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/wv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/xbm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/xwd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/lavf/y4m (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/bgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/gray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/monob (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/monow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/rgb24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/rgb32 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/rgb555 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/rgb565 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuv410p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuv411p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuv422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuv440p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuv444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj440p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuvj444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/pixfmt/yuyv422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-ima_qt (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-ima_qt-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-ima_wav (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-ima_wav-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-ms (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-ms-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-swf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-swf-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-yamaha (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-adpcm-yamaha-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-alac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-flac (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-mp2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-alaw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-f32be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-f32le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-f64be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-f64le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-mulaw (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s16be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s16le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s24be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s24le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s32be (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s32le (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-s8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/acodec-pcm-u8 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/cache-pipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/empty-edit-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/extra-mp3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/extra-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-aiff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-al (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-asf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-au (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-avi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-bmp (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-dv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-gif (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-gxf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-jpg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mkv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mmf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mpg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf_d10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf_dv25 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf_dvcpro50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf_opatom (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-mxf_opatom_audio (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-nut (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-ogg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-pbmpipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-pcx (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-pgm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-pgmpipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-ppm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-ppmpipe (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-rm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-sgi (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-swf (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-tga (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-tiff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-ts (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-ul (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-voc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-wav (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-wtv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/lavf-y4m (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/mkv-codec-delay (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/test-iibbibb-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/test-iibbibb-neg-ctts-mp4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-asv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-asv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dnxhd-1080i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dnxhd-4k-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dnxhd-720p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dnxhd-720p-rd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dv-411 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-dv-50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-ffv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-flashsv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-h261 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-h263 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-h263p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-huffyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-jpegls (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-ljpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg1b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg2-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg2-idct-int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg2-ilace (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg2-ivlc-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg2-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg2-thread-ivlc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-adap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-adv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-error (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-nr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-nsse (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-qpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-rc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-mpeg4-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-msmpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-msmpeg4v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-roqvideo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-rv10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-rv20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-snow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-snow-ll (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-svq1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-wmv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-wmv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/seek/vsynth_lena-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-amv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-asv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-asv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-avui (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-bpp1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-cinepak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-1080i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-1080i-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-1080i-colr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-2k-hr-hq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-4k-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-720p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-720p-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-720p-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-720p-rd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-edge1-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-edge2-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-edge3-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-hr-hq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-hr-lb-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-hr-sq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd-uhd-hr-sq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dnxhd_1080i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dv-411 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dv-50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-dv_411 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1-v0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1-v3-bgr0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1-v3-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1-v3-yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1-v3-yuv422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffv1-v3-yuv444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffvhuff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffvhuff420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffvhuff422p10left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffvhuff444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ffvhuff444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-flashsv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-flashsv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-h261 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-h261-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-h263 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-h263-obmc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-h263p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-huffyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-huffyuvbgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-huffyuvbgra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-jpeg2000 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-jpeg2000-97 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-jpegls (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-ljpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mjpeg-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mjpeg-444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mjpeg-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mjpeg-trell (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mjpeg-trell-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mov-bgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mov-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mov-bpp16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg1b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2-idct-int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2-ilace (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2-ivlc-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg2-thread-ivlc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-adap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-adv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-error (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-nr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-nsse (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-qpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-rc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpeg4-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-mpng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-msmpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-msmpeg4v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-msvideo1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-prores (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-prores_444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-prores_444_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-prores_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-prores_ks (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-qtrle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-qtrlegray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-r210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-roqvideo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-rv10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-rv20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-snow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-snow-hpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-snow-ll (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-svq1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-v210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-v210-10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-v308 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-v408 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-420p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-422p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-444p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-444p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-t5_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-vc2-thaar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-wmv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-wmv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-xface (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-y41p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-yuv4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-zlib (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth1-zmbv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-amv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-asv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-asv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-avui (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-bpp1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-cinepak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-1080i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-1080i-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-1080i-colr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-2k-hr-hq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-4k-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-720p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-720p-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-720p-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-720p-rd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-edge1-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-edge2-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-edge3-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-hr-hq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-hr-lb-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-hr-sq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dnxhd-uhd-hr-sq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dv-411 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-dv-50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1-v0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1-v3-bgr0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1-v3-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1-v3-yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1-v3-yuv422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffv1-v3-yuv444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffvhuff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffvhuff420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffvhuff422p10left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffvhuff444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ffvhuff444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-flashsv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-flashsv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-h261 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-h261-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-h263 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-h263-obmc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-h263p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-huffyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-huffyuvbgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-huffyuvbgra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-jpeg2000 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-jpeg2000-97 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-jpegls (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-ljpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mjpeg-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mjpeg-444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mjpeg-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mjpeg-trell (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mjpeg-trell-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mov-bgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mov-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mov-bpp16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg1b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2-idct-int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2-ilace (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2-ivlc-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg2-thread-ivlc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-adap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-adv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-error (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-nr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-nsse (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-qpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-rc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpeg4-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-mpng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-msmpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-msmpeg4v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-msvideo1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-prores (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-prores_444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-prores_444_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-prores_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-prores_ks (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-qtrle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-qtrlegray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-r210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-roqvideo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-rv10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-rv20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-snow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-snow-hpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-snow-ll (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-svq1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-v210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-v210-10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-v308 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-v408 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-420p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-422p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-444p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-444p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-t5_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-vc2-thaar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-wmv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-wmv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-xface (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-y41p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-yuv4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth2-zlib (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-amv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-asv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-asv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-bpp1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-1080i-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-1080i-colr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-2k-hr-hq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-4k-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-720p-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-edge1-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-edge2-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-edge3-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-hr-hq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-hr-lb-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-hr-sq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-dnxhd-uhd-hr-sq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1-v0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1-v3-bgr0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1-v3-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1-v3-yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1-v3-yuv422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffv1-v3-yuv444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffvhuff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffvhuff420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffvhuff422p10left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffvhuff444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ffvhuff444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-flashsv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-flashsv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-huffyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-huffyuvbgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-huffyuvbgra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-jpeg2000 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-jpeg2000-97 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-jpegls (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-ljpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mjpeg-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mjpeg-444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mjpeg-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mjpeg-trell (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mjpeg-trell-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mov-bgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mov-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mov-bpp16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg1b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2-idct-int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2-ilace (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2-ivlc-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg2-thread-ivlc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-adap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-adv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-error (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-nr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-nsse (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-qpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-rc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpeg4-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-mpng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-msmpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-msmpeg4v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-prores (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-prores_444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-prores_444_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-prores_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-prores_ks (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-qtrle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-r210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-svq1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-v210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-v210-10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-v308 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-v408 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-wmv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-wmv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-xface (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-yuv4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth3-zlib (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-amv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-asv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-asv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-avui (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-bpp1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-cinepak (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-1080i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-1080i-colr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-2k-hr-hq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-4k-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-720p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-720p-10bit (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-720p-hr-lb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-720p-rd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-edge1-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-edge2-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-edge3-hr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd-uhd-hr-sq (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dnxhd_1080i (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dv-411 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dv-50 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-dv_411 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1-v0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1-v3-bgr0 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1-v3-rgb48 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1-v3-yuv420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffvhuff (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffvhuff420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffvhuff422p10left (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffvhuff444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ffvhuff444p16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-flashsv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-flashsv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-flv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-h261 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-h261-trellis (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-h263 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-h263-obmc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-h263p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-huffyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-huffyuvbgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-huffyuvbgra (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-jpeg2000 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-jpeg2000-97 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-jpegls (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-ljpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mjpeg (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mjpeg-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mjpeg-444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mjpeg-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mjpeg-trell (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mjpeg-trell-huffman (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mov-bgr24 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mov-bpp15 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mov-bpp16 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg1b (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2-422 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2-idct-int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2-ilace (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2-ivlc-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg2-thread-ivlc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-adap (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-adv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-error (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-nr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-nsse (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-qpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-qprd (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-rc (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpeg4-thread (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-mpng (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-msmpeg4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-msmpeg4v2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-msvideo1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-prores (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-prores_444 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-prores_444_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-prores_int (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-prores_ks (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-qtrle (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-qtrlegray (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-r210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-rgb (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-roqvideo (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-rv10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-rv20 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-snow (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-snow-hpel (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-snow-ll (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-svq1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-v210 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-v210-10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-v308 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-v408 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-420p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-420p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-420p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-422p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-422p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-422p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-444p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-444p10 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-444p12 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-t5_3 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-vc2-thaar (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-wmv1 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-wmv2 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-xface (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-y41p (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-yuv4 (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-zlib (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth/vsynth_lena-zmbv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth1/cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth1/yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth_lena/cljr (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth_lena/huffyuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/ref/vsynth_lena/yuv (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/refcmp-metadata.awk (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/reference.pnm (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/rotozoom.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/simple1.ffconcat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/simple2.ffconcat (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/test.ffmeta (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/tiny_psnr.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/tiny_ssim.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/utils.c (100%) mode change 100644 => 100755 rename {tests => ffmpeg-y/tests}/videogen.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/Makefile (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/aviocat.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/bisect-create (100%) rename {tools => ffmpeg-y/tools}/bookmarklets.html (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/cl2c (100%) rename {tools => ffmpeg-y/tools}/clean-diff (100%) rename {tools => ffmpeg-y/tools}/coverity.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/crypto_bench.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/cws2fws.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/dvd2concat (100%) rename {tools => ffmpeg-y/tools}/enum_options.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/ffescape.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/ffeval.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/ffhash.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/fourcc2pixfmt.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/gen-rc (100%) rename {tools => ffmpeg-y/tools}/graph2dot.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/ismindex.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/libav-merge-next-commit (100%) rename {tools => ffmpeg-y/tools}/loudnorm.rb (100%) rename {tools => ffmpeg-y/tools}/make_chlayout_test (100%) rename {tools => ffmpeg-y/tools}/missing_codec_desc (100%) rename {tools => ffmpeg-y/tools}/murge (100%) rename {tools => ffmpeg-y/tools}/normalize.py (100%) rename {tools => ffmpeg-y/tools}/patcheck (100%) rename {tools => ffmpeg-y/tools}/pktdumper.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/plotframes (100%) rename {tools => ffmpeg-y/tools}/probetest.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/python/convert.py (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/python/convert_from_tensorflow.py (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/qt-faststart.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/seek_print.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/sidxindex.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/sofa2wavs.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/target_dec_fate.list (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/target_dec_fate.sh (100%) rename {tools => ffmpeg-y/tools}/target_dec_fuzzer.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/target_dem_fuzzer.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/trasher.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/uncoded_frame.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/unwrap-diff (100%) rename {tools => ffmpeg-y/tools}/yuvcmp.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/zmqsend.c (100%) mode change 100644 => 100755 rename {tools => ffmpeg-y/tools}/zmqshell.py (100%) delete mode 100644 libavcodec/.gitignore delete mode 100644 libavcodec/tests/.gitignore delete mode 100644 libavcodec/x86/aacencdsp.asm delete mode 100644 libavcodec/x86/aacpsdsp.asm delete mode 100644 libavcodec/x86/ac3dsp.asm delete mode 100644 libavcodec/x86/ac3dsp_downmix.asm delete mode 100644 libavcodec/x86/alacdsp.asm delete mode 100644 libavcodec/x86/audiodsp.asm delete mode 100644 libavcodec/x86/blockdsp.asm delete mode 100644 libavcodec/x86/bswapdsp.asm delete mode 100644 libavcodec/x86/cavsidct.asm delete mode 100644 libavcodec/x86/celt_pvq_search.asm delete mode 100644 libavcodec/x86/dcadsp.asm delete mode 100644 libavcodec/x86/dct32.asm delete mode 100644 libavcodec/x86/dirac_dwt.asm delete mode 100644 libavcodec/x86/diracdsp.asm delete mode 100644 libavcodec/x86/dnxhdenc.asm delete mode 100644 libavcodec/x86/exrdsp.asm delete mode 100644 libavcodec/x86/fft.asm delete mode 100644 libavcodec/x86/flac_dsp_gpl.asm delete mode 100644 libavcodec/x86/flacdsp.asm delete mode 100644 libavcodec/x86/fmtconvert.asm delete mode 100644 libavcodec/x86/fpel.asm delete mode 100644 libavcodec/x86/g722dsp.asm delete mode 100644 libavcodec/x86/h263_loopfilter.asm delete mode 100644 libavcodec/x86/h264_chromamc.asm delete mode 100644 libavcodec/x86/h264_chromamc_10bit.asm delete mode 100644 libavcodec/x86/h264_deblock.asm delete mode 100644 libavcodec/x86/h264_deblock_10bit.asm delete mode 100644 libavcodec/x86/h264_idct.asm delete mode 100644 libavcodec/x86/h264_idct_10bit.asm delete mode 100644 libavcodec/x86/h264_intrapred.asm delete mode 100644 libavcodec/x86/h264_intrapred_10bit.asm delete mode 100644 libavcodec/x86/h264_qpel_10bit.asm delete mode 100644 libavcodec/x86/h264_qpel_8bit.asm delete mode 100644 libavcodec/x86/h264_weight.asm delete mode 100644 libavcodec/x86/h264_weight_10bit.asm delete mode 100644 libavcodec/x86/hevc_add_res.asm delete mode 100644 libavcodec/x86/hevc_deblock.asm delete mode 100644 libavcodec/x86/hevc_idct.asm delete mode 100644 libavcodec/x86/hevc_mc.asm delete mode 100644 libavcodec/x86/hevc_sao.asm delete mode 100644 libavcodec/x86/hevc_sao_10bit.asm delete mode 100644 libavcodec/x86/hpeldsp.asm delete mode 100644 libavcodec/x86/hpeldsp_vp3.asm delete mode 100644 libavcodec/x86/huffyuvdsp.asm delete mode 100644 libavcodec/x86/huffyuvdsp_template.asm delete mode 100644 libavcodec/x86/huffyuvencdsp.asm delete mode 100644 libavcodec/x86/idctdsp.asm delete mode 100644 libavcodec/x86/imdct36.asm delete mode 100644 libavcodec/x86/jpeg2000dsp.asm delete mode 100644 libavcodec/x86/lossless_audiodsp.asm delete mode 100644 libavcodec/x86/lossless_videodsp.asm delete mode 100644 libavcodec/x86/lossless_videoencdsp.asm delete mode 100644 libavcodec/x86/mdct15.asm delete mode 100644 libavcodec/x86/me_cmp.asm delete mode 100644 libavcodec/x86/mlpdsp.asm delete mode 100644 libavcodec/x86/mpegvideoencdsp.asm delete mode 100644 libavcodec/x86/opusdsp.asm delete mode 100644 libavcodec/x86/pixblockdsp.asm delete mode 100644 libavcodec/x86/pngdsp.asm delete mode 100644 libavcodec/x86/proresdsp.asm delete mode 100644 libavcodec/x86/qpel.asm delete mode 100644 libavcodec/x86/qpeldsp.asm delete mode 100644 libavcodec/x86/rv34dsp.asm delete mode 100644 libavcodec/x86/rv40dsp.asm delete mode 100644 libavcodec/x86/sbcdsp.asm delete mode 100644 libavcodec/x86/sbrdsp.asm delete mode 100644 libavcodec/x86/simple_idct.asm delete mode 100644 libavcodec/x86/simple_idct10.asm delete mode 100644 libavcodec/x86/simple_idct10_template.asm delete mode 100644 libavcodec/x86/svq1enc.asm delete mode 100644 libavcodec/x86/synth_filter.asm delete mode 100644 libavcodec/x86/takdsp.asm delete mode 100644 libavcodec/x86/ttadsp.asm delete mode 100644 libavcodec/x86/ttaencdsp.asm delete mode 100644 libavcodec/x86/utvideodsp.asm delete mode 100644 libavcodec/x86/v210.asm delete mode 100644 libavcodec/x86/v210enc.asm delete mode 100644 libavcodec/x86/vc1dsp_loopfilter.asm delete mode 100644 libavcodec/x86/vc1dsp_mc.asm delete mode 100644 libavcodec/x86/videodsp.asm delete mode 100644 libavcodec/x86/vorbisdsp.asm delete mode 100644 libavcodec/x86/vp3dsp.asm delete mode 100644 libavcodec/x86/vp6dsp.asm delete mode 100644 libavcodec/x86/vp8dsp.asm delete mode 100644 libavcodec/x86/vp8dsp_loopfilter.asm delete mode 100644 libavcodec/x86/vp9intrapred.asm delete mode 100644 libavcodec/x86/vp9intrapred_16bpp.asm delete mode 100644 libavcodec/x86/vp9itxfm.asm delete mode 100644 libavcodec/x86/vp9itxfm_16bpp.asm delete mode 100644 libavcodec/x86/vp9itxfm_template.asm delete mode 100644 libavcodec/x86/vp9lpf.asm delete mode 100644 libavcodec/x86/vp9lpf_16bpp.asm delete mode 100644 libavcodec/x86/vp9mc.asm delete mode 100644 libavcodec/x86/vp9mc_16bpp.asm delete mode 100644 libavcodec/x86/xvididct.asm delete mode 100644 libavdevice/.gitignore delete mode 100644 libavdevice/tests/.gitignore delete mode 100644 libavfilter/.gitignore delete mode 100644 libavfilter/opencl/.gitignore delete mode 100644 libavfilter/tests/.gitignore delete mode 100644 libavfilter/x86/af_afir.asm delete mode 100644 libavfilter/x86/af_anlmdn.asm delete mode 100644 libavfilter/x86/af_volume.asm delete mode 100644 libavfilter/x86/avf_showcqt.asm delete mode 100644 libavfilter/x86/colorspacedsp.asm delete mode 100644 libavfilter/x86/scene_sad.asm delete mode 100644 libavfilter/x86/vf_blend.asm delete mode 100644 libavfilter/x86/vf_bwdif.asm delete mode 100644 libavfilter/x86/vf_framerate.asm delete mode 100644 libavfilter/x86/vf_fspp.asm delete mode 100644 libavfilter/x86/vf_gblur.asm delete mode 100644 libavfilter/x86/vf_gradfun.asm delete mode 100644 libavfilter/x86/vf_hflip.asm delete mode 100644 libavfilter/x86/vf_hqdn3d.asm delete mode 100644 libavfilter/x86/vf_idet.asm delete mode 100644 libavfilter/x86/vf_interlace.asm delete mode 100644 libavfilter/x86/vf_limiter.asm delete mode 100644 libavfilter/x86/vf_maskedmerge.asm delete mode 100644 libavfilter/x86/vf_overlay.asm delete mode 100644 libavfilter/x86/vf_pp7.asm delete mode 100644 libavfilter/x86/vf_psnr.asm delete mode 100644 libavfilter/x86/vf_pullup.asm delete mode 100644 libavfilter/x86/vf_removegrain.asm delete mode 100644 libavfilter/x86/vf_ssim.asm delete mode 100644 libavfilter/x86/vf_stereo3d.asm delete mode 100644 libavfilter/x86/vf_threshold.asm delete mode 100644 libavfilter/x86/vf_w3fdif.asm delete mode 100644 libavfilter/x86/vf_yadif.asm delete mode 100644 libavfilter/x86/yadif-10.asm delete mode 100644 libavfilter/x86/yadif-16.asm delete mode 100644 libavformat/.gitignore delete mode 100644 libavformat/tests/.gitignore delete mode 100644 libavresample/tests/.gitignore delete mode 100644 libavresample/x86/audio_convert.asm delete mode 100644 libavresample/x86/audio_mix.asm delete mode 100644 libavresample/x86/dither.asm delete mode 100644 libavresample/x86/util.asm delete mode 100644 libavutil/.gitignore delete mode 100644 libavutil/tests/.gitignore delete mode 100644 libavutil/x86/cpuid.asm delete mode 100644 libavutil/x86/emms.asm delete mode 100644 libavutil/x86/fixed_dsp.asm delete mode 100644 libavutil/x86/float_dsp.asm delete mode 100644 libavutil/x86/imgutils.asm delete mode 100644 libavutil/x86/lls.asm delete mode 100644 libavutil/x86/pixelutils.asm delete mode 100644 libavutil/x86/x86inc.asm delete mode 100644 libavutil/x86/x86util.asm delete mode 100644 libswresample/tests/.gitignore delete mode 100644 libswresample/x86/audio_convert.asm delete mode 100644 libswresample/x86/rematrix.asm delete mode 100644 libswresample/x86/resample.asm delete mode 100644 libswscale/tests/.gitignore delete mode 100644 libswscale/x86/input.asm delete mode 100644 libswscale/x86/output.asm delete mode 100644 libswscale/x86/rgb_2_rgb.asm delete mode 100644 libswscale/x86/scale.asm delete mode 100644 tests/.gitignore delete mode 100644 tests/api/.gitignore delete mode 100644 tests/checkasm/.gitignore delete mode 100644 tests/checkasm/x86/checkasm.asm delete mode 100644 tools/.gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 2450ee8fc5..0000000000 --- a/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -*.a -*.o -*.o.* -*.d -*.def -*.dll -*.dylib -*.exe -*.exp -*.gcda -*.gcno -*.h.c -*.ilk -*.lib -*.pc -*.pdb -*.so -*.so.* -*.swp -*.ver -*.version -*.ptx -*.ptx.c -*_g -\#* -.\#* -/.config -/.version -/ffmpeg -/ffplay -/ffprobe -/config.asm -/config.h -/coverage.info -/avversion.h -/lcov/ -/src -/mapfile -/tools/python/__pycache__/ diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 index 18784adfc0..5fdfd76b93 --- a/Makefile +++ b/Makefile @@ -1,182 +1,58 @@ -MAIN_MAKEFILE=1 -include ffbuild/config.mak +LOCAL_DIR := $(shell pwd) +MIDDLEWARE_DIR := $(LOCAL_DIR) +include $(MIDDLEWARE_DIR)/cfg.mak -vpath %.c $(SRC_PATH) -vpath %.cpp $(SRC_PATH) -vpath %.h $(SRC_PATH) -vpath %.inc $(SRC_PATH) -vpath %.m $(SRC_PATH) -vpath %.S $(SRC_PATH) -vpath %.asm $(SRC_PATH) -vpath %.rc $(SRC_PATH) -vpath %.v $(SRC_PATH) -vpath %.texi $(SRC_PATH) -vpath %.cu $(SRC_PATH) -vpath %.ptx $(SRC_PATH) -vpath %/fate_config.sh.template $(SRC_PATH) +GREEN="\e[32;1m" +DONE="\e[39m" +RED="\e[31m" -TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch -HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options - -# $(FFLIBS-yes) needs to be in linking order -FFLIBS-$(CONFIG_AVDEVICE) += avdevice -FFLIBS-$(CONFIG_AVFILTER) += avfilter -FFLIBS-$(CONFIG_AVFORMAT) += avformat -FFLIBS-$(CONFIG_AVCODEC) += avcodec -FFLIBS-$(CONFIG_AVRESAMPLE) += avresample -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 - -SKIPHEADERS = compat/w32pthreads.h - -# first so "all" becomes default target -all: all-yes - -include $(SRC_PATH)/tools/Makefile -include $(SRC_PATH)/ffbuild/common.mak -CFLAGS += --target=arm-liteos --sysroot=../../../../../../../../prebuilts/lite/sysroot -CFLAGS += -Wno-deprecated-declarations -Wno-incompatible-pointer-types-discards-qualifiers \ - -Wno-string-plus-int -Wno-absolute-value -Wno-format -Wno-invalid-source-encoding \ - -Wno-missing-prototypes - -FF_EXTRALIBS := $(FFEXTRALIBS) -FF_DEP_LIBS := $(DEP_LIBS) -FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS) - -$(TOOLS): %$(EXESUF): %.o - $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(EXTRALIBS-$(*F)) $(EXTRALIBS) $(ELIBS) - -target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS) - $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) - -tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS) - $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) - -tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS) -tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS) -tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS) -tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) - -CONFIGURABLE_COMPONENTS = \ - $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \ - $(SRC_PATH)/libavcodec/bitstream_filters.c \ - $(SRC_PATH)/libavcodec/parsers.c \ - $(SRC_PATH)/libavformat/protocols.c \ - -config.h: ffbuild/.config -ffbuild/.config: $(CONFIGURABLE_COMPONENTS) - @-tput bold 2>/dev/null - @-printf '\nWARNING: $(?) newer than config.h, rerun configure\n\n' - @-tput sgr0 2>/dev/null - -SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \ - HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ - ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \ - ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS \ - MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \ - MMI-OBJS OBJS SLIBOBJS 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)/$(1)/$(INTRINSICS)/Makefile -include $(SRC_PATH)/ffbuild/library.mak -endef - -$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) - -include $(SRC_PATH)/fftools/Makefile -include $(SRC_PATH)/doc/Makefile -include $(SRC_PATH)/doc/examples/Makefile - -libavcodec/utils.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h - -$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) -ifeq ($(STRIPTYPE),direct) - $(STRIP) -o $@ $< +COMPILE_ROOT := $(LOCAL_DIR) +FFMPEG_VER := ffmpeg-y +ifeq ($(CFG_CHIP_TYPE), hi3516cv300) +FF_CONFIG_SH := enable_decoder_config.sh +#else ifeq ($(CFG_CHIP_TYPE), hi3518ev300) +#FF_CONFIG_SH := enable_decoder_config.sh else - $(CP) $< $@ - $(STRIP) $@ +FF_CONFIG_SH := disable_decoder_config.sh endif -%$(PROGSSUF)_g$(EXESUF): $(FF_DEP_LIBS) - $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) +export LITEOS_MACRO +export LITEOS_OSDRV_INCLUDE +export LITEOS_USR_INCLUDE +export LITEOS_CMACRO +export LITEOS_INCLUDE +export LITEOSTOPDIR -VERSION_SH = $(SRC_PATH)/ffbuild/version.sh -GIT_LOG = $(SRC_PATH)/.git/logs/HEAD - -.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak -.version: M=@ - -libavutil/ffversion.h .version: - $(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION) - $(Q)touch .version - -# force version.sh to run whenever version might have changed --include .version - -install: install-libs install-headers - -install-libs: install-libs-yes - -install-data: $(DATA_FILES) - $(Q)mkdir -p "$(DATADIR)" - $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" - -uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig - -uninstall-data: - $(RM) -r "$(DATADIR)" - -clean:: - $(RM) $(CLEANSUFFIXES) - $(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) $(addprefix compat/*/*/,$(CLEANSUFFIXES)) - $(RM) -r coverage-html - $(RM) -rf coverage.info coverage.info.in lcov - -distclean:: clean - $(RM) .version avversion.h config.asm config.h mapfile \ - ffbuild/.config ffbuild/config.* libavutil/avconfig.h \ - version.h libavutil/ffversion.h libavcodec/codec_names.h \ - libavcodec/bsf_list.c libavformat/protocol_list.c \ - libavcodec/codec_list.c libavcodec/parser_list.c \ - libavformat/muxer_list.c libavformat/demuxer_list.c \ - libavdevice/indev_list.c libavdevice/outdev_list.c libavfilter/filter_list.c -ifeq ($(SRC_LINK),src) - $(RM) src +#override CFLAGS to avoid ffmpeg configure use +CFLAGS:= +FF_ADAPT_LITEOS=y +#export LLVM_COMPILER=y +ifeq ($(CFG_OS_TYPE), linux) +export LLVM_COMPILER=n +CONFIGURE_FILE := configure_gcc +else +export LLVM_COMPILER=y +CONFIGURE_FILE := configure_llvm endif - $(RM) -rf doc/examples/pc-uninstalled -config: - $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) +ORG_FFMPEG := $(FFMPEG_VER) -build: all alltools examples testprogs -check: all alltools examples testprogs fate +MODNAME := $(FFMPEG_VER) -include $(SRC_PATH)/tests/Makefile +all: $(ORG_FFMPEG) -$(sort $(OUTDIRS)): - $(Q)mkdir -p $@ +.PHONY: $(ORG_FFMPEG) clean -# Dummy rule to stop make trying to rebuild removed or renamed headers -%.h: - @: +install:$(ORG_FFMPEG) -# Disable suffix rules. Most of the builtin rules are suffix rules, -# so this saves some time on slow systems. -.SUFFIXES: +clean: + @if [ -d $(ORG_FFMPEG)/install ]; then \ + cd $(COMPILE_ROOT)/$(ORG_FFMPEG);$(MAKE) $(MFLAGS) distclean;$(MAKE) $(MFLAGS) uninstall;rm -rf $(COMPILE_ROOT)/$(ORG_FFMPEG)/install; \ + fi -.PHONY: all all-yes alltools build check config testprogs -.PHONY: *clean install* uninstall* +$(ORG_FFMPEG): + cp $(CONFIGURE_FILE) $(FFMPEG_VER)/configure + @if [ -d $(FFMPEG_VER) ]; then cd $@; chmod 777 ./* -R; ./$(FF_CONFIG_SH) $(CFG_CHIP_TYPE) $(CFG_OS_TYPE) $(CFG_LINUX_COMPILER_VER) $(CFG_OHOS_BUILD_PATH); cd -; fi + @if [ $(FF_ADAPT_LITEOS) = 'y' ]; then cd $@; ./adapt_liteos_config.sh; cd -; fi + $(MAKE) $(MFLAGS) -j16 -C $(COMPILE_ROOT)/$@ + $(MAKE) $(MFLAGS) -C $(@) install diff --git a/cfg.mak b/cfg.mak new file mode 100755 index 0000000000..843d68c3de --- /dev/null +++ b/cfg.mak @@ -0,0 +1,4 @@ +CFG_CHIP_TYPE=hi3518ev300 +CFG_OS_TYPE=ohos +CFG_LINUX_COMPILER_VER=himix100 +CFG_OHOS_BUILD_PATH= diff --git a/configure_gcc b/configure_gcc new file mode 100755 index 0000000000..703da16cc7 --- /dev/null +++ b/configure_gcc @@ -0,0 +1,7536 @@ +#!/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 </dev/null 2>&1; then + ncolors=$(tput colors) + if test -n "$ncolors" && test $ncolors -ge 8; then + bold_color=$(tput bold) + warn_color=$(tput setaf 3) + error_color=$(tput setaf 1) + reset_color=$(tput sgr0) + fi + # 72 used instead of 80 since that's the default of pr + ncols=$(tput cols) +fi +: ${ncols:=72} + +log(){ + echo "$@" >> $logfile +} + +log_file(){ + log BEGIN "$1" + log_file_i=1 + while IFS= read -r log_file_line; do + printf '%5d\t%s\n' "$log_file_i" "$log_file_line" + log_file_i=$(($log_file_i+1)) + done < "$1" >> "$logfile" + log END "$1" +} + +warn(){ + log "WARNING: $*" + WARNINGS="${WARNINGS}WARNING: $*\n" +} + +die(){ + log "$@" + echo "$error_color$bold_color$@$reset_color" + 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; + } else if (file ~ /\\.texi\$/) { + pre = -v ? \"\" : \"@c \"; + yesno = \$2; + c2 = tolower(c); + gsub(/_/, \"-\", c2); + printf(\"%s@set %s %s\\n\", pre, c2, yesno) >>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\"" +} + +reverse () { + eval ' + reverse_out= + for v in $'$1'; do + reverse_out="$v $reverse_out" + done + '$1'=$reverse_out + ' +} + +# keeps the last occurence of each non-unique item +unique(){ + unique_out= + eval unique_in=\$$1 + reverse unique_in + for v in $unique_in; do + # " $unique_out" +space such that every item is surrounded with spaces + case " $unique_out" in *" $v "*) continue; esac # already in list + unique_out="$unique_out$v " + done + reverse unique_out + eval $1=\$unique_out +} + +resolve(){ + resolve_out= + eval resolve_in=\$$1 + for v in $resolve_in; do + eval 'resolve_out="$resolve_out$'$v' "' + done + eval $1=\$resolve_out +} + +add_cppflags(){ + append CPPFLAGS "$@" +} + +add_cflags(){ + append CFLAGS $($cflags_filter "$@") +} + +add_cflags_headers(){ + append CFLAGS_HEADERS $($cflags_filter "$@") +} + +add_cxxflags(){ + append CXXFLAGS $($cflags_filter "$@") +} + +add_objcflags(){ + append OBJCFLAGS $($objcflags_filter "$@") +} + +add_asflags(){ + append ASFLAGS $($asflags_filter "$@") +} + +add_ldflags(){ + append LDFLAGS $($ldflags_filter "$@") +} + +add_ldexeflags(){ + append LDEXEFLAGS $($ldflags_filter "$@") +} + +add_ldsoflags(){ + append LDSOFLAGS $($ldflags_filter "$@") +} + +add_extralibs(){ + prepend extralibs $($ldflags_filter "$@") +} + +add_stripflags(){ + append ASMSTRIPFLAGS "$@" +} + +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' "$@" +} + +test_cmd(){ + log "$@" + "$@" >> $logfile 2>&1 +} + +test_stat(){ + log test_stat "$@" + stat "$1" >> $logfile 2>&1 +} + +cc_e(){ + eval printf '%s\\n' $CC_E +} + +cc_o(){ + eval printf '%s\\n' $CC_O +} + +as_o(){ + eval printf '%s\\n' $AS_O +} + +x86asm_o(){ + eval printf '%s\\n' $X86ASM_O +} + +ld_o(){ + eval printf '%s\\n' $LD_O +} + +hostcc_e(){ + eval printf '%s\\n' $HOSTCC_E +} + +hostcc_o(){ + eval printf '%s\\n' $HOSTCC_O +} + +nvcc_o(){ + eval printf '%s\\n' $NVCC_O +} + +test_cc(){ + log test_cc "$@" + cat > $TMPC + log_file $TMPC + test_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC +} + +test_cxx(){ + log test_cxx "$@" + cat > $TMPCPP + log_file $TMPCPP + test_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP +} + +test_objcc(){ + log test_objcc "$@" + cat > $TMPM + log_file $TMPM + test_cmd $objcc -Werror=missing-prototypes $CPPFLAGS $CFLAGS $OBJCFLAGS "$@" $OBJCC_C $(cc_o $TMPO) $TMPM +} + +test_nvcc(){ + log test_nvcc "$@" + cat > $TMPCU + log_file $TMPCU + tmpcu_=$TMPCU + tmpo_=$TMPO + [ -x "$(command -v cygpath)" ] && tmpcu_=$(cygpath -m $tmpcu_) && tmpo_=$(cygpath -m $tmpo_) + test_cmd $nvcc $nvccflags "$@" $NVCC_C $(nvcc_o $tmpo_) $tmpcu_ +} + +check_nvcc() { + log check_nvcc "$@" + name=$1 + shift 1 + disabled $name && return + disable $name + test_nvcc "$@" < $TMPC + log_file $TMPC + test_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC +} + +test_as(){ + log test_as "$@" + cat > $TMPS + log_file $TMPS + test_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS +} + +test_x86asm(){ + log test_x86asm "$@" + echo "$1" > $TMPASM + log_file $TMPASM + shift + test_cmd $x86asmexe $X86ASMFLAGS -Werror "$@" $(x86asm_o $TMPO) $TMPASM +} + +check_cmd(){ + log check_cmd "$@" + cmd=$1 + disabled $cmd && return + disable $cmd + test_cmd $@ && enable $cmd +} + +check_as(){ + log check_as "$@" + name=$1 + code=$2 + shift 2 + disable $name + test_as $@ < $TMPC <" +} + +test_code(){ + log test_code "$@" + check=$1 + headers=$2 + code=$3 + shift 3 + { + for hdr in $headers; do + print_include $hdr + done + echo "int main(void) { $code; return 0; }" + } | test_$check "$@" +} + +check_cppflags(){ + log check_cppflags "$@" + test_cpp "$@" < +EOF +} + +test_cflags(){ + log test_cflags "$@" + set -- $($cflags_filter "$@") + test_cc "$@" <" + echo "int main(void) { return 0; }" + } | test_objcc && test_stat "$TMPO" && enable_sanitized $header +} + +check_apple_framework(){ + log check_apple_framework "$@" + framework="$1" + name="$(tolower $framework)" + header="${framework}/${framework}.h" + disable $name + check_header_objcc $header && + enable $name && eval ${name}_extralibs='"-framework $framework"' +} + +check_func(){ + log check_func "$@" + func=$1 + shift + disable $func + test_ld "cc" "$@" < +#include +float foo(complex float f, complex float g) { return $func($args); } +int main(void){ return (int) foo; } +EOF +} + +check_mathfunc(){ + log check_mathfunc "$@" + func=$1 + narg=$2 + shift 2 + test $narg = 2 && args="f, g" || args="f" + disable $func + test_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 + print_include $hdr + done + echo "#include " + for func in $funcs; do + echo "long check_$func(void) { return (long) $func; }" + done + echo "int main(void) { int ret = 0;" + # LTO could optimize out the test functions without this + for func in $funcs; do + echo " ret |= ((intptr_t)check_$func) & 0xFFFF;" + done + echo "return ret; }" + } | test_ld "cc" "$@" && enable $funcs && enable_sanitized $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; }" + } | test_ld "cxx" "$@" && enable $funcs && enable_sanitized $headers +} + +test_cpp_condition(){ + log test_cpp_condition "$@" + header=$1 + condition=$2 + shift 2 + test_cpp "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_cpp_condition(){ + log check_cpp_condition "$@" + name=$1 + shift 1 + disable $name + test_cpp_condition "$@" && enable $name +} + +test_cflags_cc(){ + log test_cflags_cc "$@" + flags=$1 + header=$2 + condition=$3 + shift 3 + set -- $($cflags_filter "$flags") + test_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_lib(){ + log check_lib "$@" + name="$1" + headers="$2" + funcs="$3" + shift 3 + disable $name + check_func_headers "$headers" "$funcs" "$@" && + enable $name && eval ${name}_extralibs="\$@" +} + +check_lib_cpp(){ + log check_lib_cpp "$@" + name="$1" + headers="$2" + classes="$3" + shift 3 + disable $name + check_class_headers_cpp "$headers" "$classes" "$@" && + enable $name && eval ${name}_extralibs="\$@" +} + +test_pkg_config(){ + log test_pkg_config "$@" + name="$1" + pkg_version="$2" + pkg="${2%% *}" + headers="$3" + funcs="$4" + shift 4 + disable $name + test_cmd $pkg_config --exists --print-errors $pkg_version || return + pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) + pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) + check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && + enable $name && + set_sanitized "${name}_cflags" $pkg_cflags && + set_sanitized "${name}_extralibs" $pkg_libs +} + +check_pkg_config(){ + log check_pkg_config "$@" + name="$1" + test_pkg_config "$@" && + eval add_cflags \$${name}_cflags +} + +test_exec(){ + test_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; } +} + +check_exec_crash(){ + log 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. + + (test_exec "$@") >> $logfile 2>&1 < +static void sighandler(int sig){ + raise(SIGTERM); +} +int foo(void){ + $code +} +int (*func_ptr)(void) = foo; +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_sanitized "$type" + test_code cc "$headers" "$type v" "$@" && enable_sanitized "$type" +} + +check_struct(){ + log check_struct "$@" + headers=$1 + struct=$2 + member=$3 + shift 3 + disable_sanitized "${struct}_${member}" + test_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" && + enable_sanitized "${struct}_${member}" +} + +check_builtin(){ + log check_builtin "$@" + name=$1 + headers=$2 + builtin=$3 + shift 3 + disable "$name" + test_code ld "$headers" "$builtin" "cc" "$@" && enable "$name" +} + +check_compile_assert(){ + log check_compile_assert "$@" + name=$1 + headers=$2 + condition=$3 + shift 3 + disable "$name" + test_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name" +} + +check_cc(){ + log check_cc "$@" + name=$1 + shift + disable "$name" + test_code cc "$@" && enable "$name" +} + +require(){ + log require "$@" + name_version="$1" + name="${1%% *}" + shift + check_lib $name "$@" || die "ERROR: $name_version not found" +} + +require_cc(){ + log require_cc "$@" + name="$1" + check_cc "$@" || die "ERROR: $name failed" +} + +require_cpp(){ + name="$1" + headers="$2" + classes="$3" + shift 3 + check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found" +} + +require_headers(){ + log require_headers "$@" + headers="$1" + check_headers "$@" || die "ERROR: $headers not found" +} + +require_cpp_condition(){ + log require_cpp_condition "$@" + condition="$3" + check_cpp_condition "$@" || die "ERROR: $condition not satisfied" +} + +require_pkg_config(){ + log require_pkg_config "$@" + pkg_version="$2" + check_pkg_config "$@" || die "ERROR: $pkg_version not found using pkg-config$pkg_config_fail_message" +} + +test_host_cc(){ + log test_host_cc "$@" + cat > $TMPC + log_file $TMPC + test_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC +} + +test_host_cpp(){ + log test_host_cpp "$@" + cat > $TMPC + log_file $TMPC + test_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC +} + +check_host_cppflags(){ + log check_host_cppflags "$@" + test_host_cpp "$@" < +EOF +} + +check_host_cflags(){ + log check_host_cflags "$@" + set -- $($host_cflags_filter "$@") + test_host_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_host_cpp_condition(){ + log check_host_cpp_condition "$@" + name=$1 + shift 1 + disable $name + test_host_cpp_condition "$@" && enable $name +} + +cp_if_changed(){ + cmp -s "$1" "$2" && { test "$quiet" != "yes" && 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. + +AVCODEC_COMPONENTS=" + bsfs + decoders + encoders + hwaccels + parsers +" + +AVDEVICE_COMPONENTS=" + indevs + outdevs +" + +AVFILTER_COMPONENTS=" + filters +" + +AVFORMAT_COMPONENTS=" + demuxers + muxers + protocols +" + +COMPONENT_LIST=" + $AVCODEC_COMPONENTS + $AVDEVICE_COMPONENTS + $AVFILTER_COMPONENTS + $AVFORMAT_COMPONENTS +" + +EXAMPLE_LIST=" + avio_dir_cmd_example + avio_reading_example + decode_audio_example + decode_video_example + demuxing_decoding_example + encode_audio_example + encode_video_example + extract_mvs_example + filter_audio_example + filtering_audio_example + filtering_video_example + http_multiclient_example + hw_decode_example + metadata_example + muxing_example + qsvdec_example + remuxing_example + resampling_audio_example + scaling_video_example + transcode_aac_example + transcoding_example + vaapi_encode_example + vaapi_transcode_example +" + +EXTERNAL_AUTODETECT_LIBRARY_LIST=" + alsa + appkit + avfoundation + bzlib + coreimage + iconv + libxcb + libxcb_shm + libxcb_shape + libxcb_xfixes + lzma + schannel + sdl2 + securetransport + sndio + xlib + zlib +" + +EXTERNAL_LIBRARY_GPL_LIST=" + avisynth + frei0r + libcdio + libdavs2 + librubberband + libvidstab + libx264 + libx265 + libxavs + libxavs2 + libxvid +" + +EXTERNAL_LIBRARY_NONFREE_LIST=" + decklink + libfdk_aac + openssl + libtls +" + +EXTERNAL_LIBRARY_VERSION3_LIST=" + gmp + libaribb24 + liblensfun + libopencore_amrnb + libopencore_amrwb + libvmaf + libvo_amrwbenc + mbedtls + rkmpp +" + +EXTERNAL_LIBRARY_GPLV3_LIST=" + libsmbclient +" + +EXTERNAL_LIBRARY_LIST=" + $EXTERNAL_LIBRARY_GPL_LIST + $EXTERNAL_LIBRARY_NONFREE_LIST + $EXTERNAL_LIBRARY_VERSION3_LIST + $EXTERNAL_LIBRARY_GPLV3_LIST + chromaprint + gcrypt + gnutls + jni + ladspa + libaom + libass + libbluray + libbs2b + libcaca + libcelt + libcodec2 + libdav1d + libdc1394 + libdrm + libflite + libfontconfig + libfreetype + libfribidi + libgme + libgsm + libiec61883 + libilbc + libjack + libklvanc + libkvazaar + libmodplug + libmp3lame + libmysofa + libopencv + libopenh264 + libopenjpeg + libopenmpt + libopus + libpulse + librsvg + librtmp + libshine + libsmbclient + libsnappy + libsoxr + libspeex + libsrt + libssh + libtensorflow + libtesseract + libtheora + libtwolame + libv4l2 + libvorbis + libvpx + libwavpack + libwebp + libxml2 + libzimg + libzmq + libzvbi + lv2 + mediacodec + openal + opengl + pocketsphinx + vapoursynth +" + +HWACCEL_AUTODETECT_LIBRARY_LIST=" + amf + audiotoolbox + crystalhd + cuda + cuda_llvm + cuvid + d3d11va + dxva2 + ffnvcodec + nvdec + nvenc + vaapi + vdpau + videotoolbox + v4l2_m2m + xvmc +" + +# catchall list of things that require external libs to link +EXTRALIBS_LIST=" + cpu_init + cws2fws +" + +HWACCEL_LIBRARY_NONFREE_LIST=" + cuda_nvcc + cuda_sdk + libnpp +" + +HWACCEL_LIBRARY_LIST=" + $HWACCEL_LIBRARY_NONFREE_LIST + libmfx + mmal + omx + opencl +" + +DOCUMENT_LIST=" + doc + htmlpages + manpages + podpages + txtpages +" + +FEATURE_LIST=" + ftrapv + gray + hardcoded_tables + omx_rpi + runtime_cpudetect + safe_bitstream_reader + shared + small + static + swscale_alpha +" + +# this list should be kept in linking order +LIBRARY_LIST=" + avdevice + avfilter + swscale + postproc + avformat + avcodec + swresample + avresample + avutil +" + +LICENSE_LIST=" + gpl + nonfree + version3 +" + +PROGRAM_LIST=" + ffplay + ffprobe + ffmpeg +" + +SUBSYSTEM_LIST=" + dct + dwt + error_resilience + faan + fast_unaligned + fft + lsp + lzo + mdct + pixelutils + network + rdft +" + +# COMPONENT_LIST needs to come last to ensure correct dependency checking +CONFIG_LIST=" + $DOCUMENT_LIST + $EXAMPLE_LIST + $EXTERNAL_LIBRARY_LIST + $EXTERNAL_AUTODETECT_LIBRARY_LIST + $HWACCEL_LIBRARY_LIST + $HWACCEL_AUTODETECT_LIBRARY_LIST + $FEATURE_LIST + $LICENSE_LIST + $LIBRARY_LIST + $PROGRAM_LIST + $SUBSYSTEM_LIST + autodetect + fontconfig + linux_perf + memory_poisoning + neon_clobber_test + ossfuzz + pic + thumb + valgrind_backtrace + xmm_clobber_test + $COMPONENT_LIST +" + +THREADS_LIST=" + pthreads + os2threads + w32threads +" + +ATOMICS_LIST=" + atomics_gcc + atomics_suncc + atomics_win32 +" + +AUTODETECT_LIBS=" + $EXTERNAL_AUTODETECT_LIBRARY_LIST + $HWACCEL_AUTODETECT_LIBRARY_LIST + $THREADS_LIST +" + +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 + armv8 + neon + vfp + vfpv3 + setend +" + +ARCH_EXT_LIST_MIPS=" + mipsfpu + mips32r2 + mips32r5 + mips64r2 + mips32r6 + mips64r6 + mipsdsp + mipsdspr2 + msa + msa2 +" + +ARCH_EXT_LIST_LOONGSON=" + loongson2 + loongson3 + mmi +" + +ARCH_EXT_LIST_X86_SIMD=" + aesni + amd3dnow + amd3dnowext + avx + avx2 + avx512 + fma3 + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 + xop +" + +ARCH_EXT_LIST_PPC=" + altivec + dcbzl + ldbrx + power8 + ppc4xx + vsx +" + +ARCH_EXT_LIST_X86=" + $ARCH_EXT_LIST_X86_SIMD + cpunop + i686 +" + +ARCH_EXT_LIST=" + $ARCH_EXT_LIST_ARM + $ARCH_EXT_LIST_PPC + $ARCH_EXT_LIST_X86 + $ARCH_EXT_LIST_MIPS + $ARCH_EXT_LIST_LOONGSON +" + +ARCH_FEATURES=" + aligned_stack + fast_64bit + fast_clz + fast_cmov + local_aligned + simd_align_16 + simd_align_32 + simd_align_64 +" + +BUILTIN_LIST=" + atomic_cas_ptr + machine_rw_barrier + MemoryBarrier + mm_empty + rdtsc + sem_timedwait + sync_val_compare_and_swap +" +HAVE_LIST_CMDLINE=" + inline_asm + symver + x86asm +" + +HAVE_LIST_PUB=" + bigendian + fast_unaligned +" + +HEADERS_LIST=" + arpa_inet_h + asm_types_h + cdio_paranoia_h + cdio_paranoia_paranoia_h + cuda_h + dispatch_dispatch_h + 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 + dirent_h + dxgidebug_h + dxva_h + ES2_gl_h + gsm_h + io_h + linux_perf_event_h + machine_ioctl_bt848_h + machine_ioctl_meteor_h + malloc_h + opencv2_core_core_c_h + OpenGL_gl3_h + poll_h + sys_param_h + sys_resource_h + sys_select_h + sys_soundcard_h + sys_time_h + sys_un_h + sys_videoio_h + termios_h + udplite_h + unistd_h + valgrind_valgrind_h + windows_h + winsock2_h +" + +INTRINSICS_LIST=" + intrinsics_neon +" + +COMPLEX_FUNCS=" + cabs + cexp +" + +MATH_FUNCS=" + atanf + atan2f + cbrt + cbrtf + copysign + cosf + erf + exp2 + exp2f + expf + hypot + isfinite + isinf + isnan + ldexpf + llrint + llrintf + log2 + log2f + log10f + lrint + lrintf + powf + rint + round + roundf + sinf + trunc + truncf +" + +SYSTEM_FEATURES=" + dos_paths + libc_msvcrt + MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS + section_data_rel_ro + threads + uwp + winrt +" + +SYSTEM_FUNCS=" + access + aligned_malloc + arc4random + clock_gettime + closesocket + CommandLineToArgvW + fcntl + getaddrinfo + gethrtime + getopt + GetProcessAffinityMask + GetProcessMemoryInfo + GetProcessTimes + getrusage + GetSystemTimeAsFileTime + gettimeofday + glob + glXGetProcAddress + gmtime_r + inet_aton + isatty + kbhit + localtime_r + lstat + lzo1x_999_compress + mach_absolute_time + MapViewOfFile + memalign + mkstemp + mmap + mprotect + nanosleep + PeekNamedPipe + posix_memalign + pthread_cancel + sched_getaffinity + SecItemImport + SetConsoleTextAttribute + SetConsoleCtrlHandler + setmode + setrlimit + Sleep + strerror_r + sysconf + sysctl + usleep + UTGetOSTypeFromString + VirtualAlloc + wglGetProcAddress +" + +SYSTEM_LIBRARIES=" + bcrypt + vaapi_drm + vaapi_x11 + vdpau_x11 +" + +TOOLCHAIN_FEATURES=" + as_arch_directive + as_dn_directive + as_fpu_directive + as_func + as_object_arch + asm_mod_q + blocks_extension + ebp_available + ebx_available + gnu_as + gnu_windres + ibm_asm + inline_asm_direct_symbol_refs + inline_asm_labels + inline_asm_nonlocal_labels + pragma_deprecated + rsync_contimeout + symver_asm_label + symver_gnu_asm + vfp_args + xform_asm + xmm_clobbers +" + +TYPES_LIST=" + kCMVideoCodecType_HEVC + kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange + socklen_t + struct_addrinfo + struct_group_source_req + struct_ip_mreq_source + struct_ipv6_mreq + struct_msghdr_msg_flags + struct_pollfd + struct_rusage_ru_maxrss + struct_sctp_event_subscribe + struct_sockaddr_in6 + struct_sockaddr_sa_len + struct_sockaddr_storage + struct_stat_st_mtim_tv_nsec + struct_v4l2_frmivalenum_discrete +" + +HAVE_LIST=" + $ARCH_EXT_LIST + $(add_suffix _external $ARCH_EXT_LIST) + $(add_suffix _inline $ARCH_EXT_LIST) + $ARCH_FEATURES + $BUILTIN_LIST + $COMPLEX_FUNCS + $HAVE_LIST_CMDLINE + $HAVE_LIST_PUB + $HEADERS_LIST + $INTRINSICS_LIST + $MATH_FUNCS + $SYSTEM_FEATURES + $SYSTEM_FUNCS + $SYSTEM_LIBRARIES + $THREADS_LIST + $TOOLCHAIN_FEATURES + $TYPES_LIST + makeinfo + makeinfo_html + opencl_d3d11 + opencl_drm_arm + opencl_drm_beignet + opencl_dxva2 + opencl_vaapi_beignet + opencl_vaapi_intel_media + perl + pod2man + texi2html +" + +# options emitted with CONFIG_ prefix but not available on the command line +CONFIG_EXTRA=" + aandcttables + ac3dsp + adts_header + audio_frame_queue + audiodsp + blockdsp + bswapdsp + cabac + cbs + cbs_av1 + cbs_h264 + cbs_h265 + cbs_jpeg + cbs_mpeg2 + cbs_vp9 + dirac_parse + dnn + dvprofile + exif + faandct + faanidct + fdctdsp + flacdsp + fmtconvert + frame_thread_encoder + g722dsp + golomb + gplv3 + h263dsp + h264chroma + h264dsp + h264parse + h264pred + h264qpel + hevcparse + hpeldsp + huffman + huffyuvdsp + huffyuvencdsp + idctdsp + iirfilter + mdct15 + intrax8 + iso_media + ividsp + jpegtables + lgplv3 + libx262 + llauddsp + llviddsp + llvidencdsp + lpc + lzf + me_cmp + mpeg_er + mpegaudio + mpegaudiodsp + mpegaudioheader + mpegvideo + mpegvideoenc + mss34dsp + pixblockdsp + qpeldsp + qsv + qsvdec + qsvenc + qsvvpp + rangecoder + riffdec + riffenc + rtpdec + rtpenc_chain + rv34dsp + scene_sad + sinewin + snappy + srtp + startcode + texturedsp + texturedspenc + tpeldsp + vaapi_1 + vaapi_encode + vc1dsp + videodsp + vp3dsp + vp56dsp + vp8dsp + wma_freqs + wmv2dsp +" + +CMDLINE_SELECT=" + $ARCH_EXT_LIST + $CONFIG_LIST + $HAVE_LIST_CMDLINE + $THREADS_LIST + asm + cross_compile + debug + extra_warnings + logging + lto + optimizations + rpath + stripping +" + +PATHS_LIST=" + bindir + datadir + docdir + incdir + libdir + mandir + pkgconfigdir + prefix + shlibdir + install_name_dir +" + +CMDLINE_SET=" + $PATHS_LIST + ar + arch + as + assert_level + build_suffix + cc + objcc + cpu + cross_prefix + custom_allocator + cxx + dep_cc + doxygen + env + extra_version + gas + host_cc + host_cflags + host_extralibs + host_ld + host_ldflags + host_os + ignore_tests + install + ld + ln_s + logfile + malloc_prefix + nm + optflags + nvcc + nvccflags + pkg_config + pkg_config_flags + progs_suffix + random_seed + ranlib + samples + strip + sws_max_filter_size + sysinclude + sysroot + target_exec + target_os + target_path + target_samples + tempprefix + toolchain + valgrind + windres + x86asmexe +" + +CMDLINE_APPEND=" + extra_cflags + extra_cxxflags + extra_objcflags + host_cppflags +" + +# code dependency declarations + +# architecture extensions + +armv5te_deps="arm" +armv6_deps="arm" +armv6t2_deps="arm" +armv8_deps="aarch64" +neon_deps_any="aarch64 arm" +intrinsics_neon_deps="neon" +vfp_deps_any="aarch64 arm" +vfpv3_deps="vfp" +setend_deps="arm" + +map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM + +altivec_deps="ppc" +dcbzl_deps="ppc" +ldbrx_deps="ppc" +ppc4xx_deps="ppc" +vsx_deps="altivec" +power8_deps="vsx" + +loongson2_deps="mips" +loongson3_deps="mips" +mips32r2_deps="mips" +mips32r5_deps="mips" +mips32r6_deps="mips" +mips64r2_deps="mips" +mips64r6_deps="mips" +mipsfpu_deps="mips" +mipsdsp_deps="mips" +mipsdspr2_deps="mips" +mmi_deps="mips" +msa_deps="mipsfpu" +msa2_deps="msa" + +cpunop_deps="i686" +x86_64_select="i686" +x86_64_suggest="fast_cmov" + +amd3dnow_deps="mmx" +amd3dnowext_deps="amd3dnow" +i686_deps="x86" +mmx_deps="x86" +mmxext_deps="mmx" +sse_deps="mmxext" +sse2_deps="sse" +sse3_deps="sse2" +ssse3_deps="sse3" +sse4_deps="ssse3" +sse42_deps="sse4" +aesni_deps="sse42" +avx_deps="sse42" +xop_deps="avx" +fma3_deps="avx" +fma4_deps="avx" +avx2_deps="avx" +avx512_deps="avx2" + +mmx_external_deps="x86asm" +mmx_inline_deps="inline_asm x86" +mmx_suggest="mmx_external mmx_inline" + +for ext in $(filter_out mmx $ARCH_EXT_LIST_X86_SIMD); 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="aarch64 ppc x86" +fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" +fast_unaligned_if_any="aarch64 ppc x86" +simd_align_16_if_any="altivec neon sse" +simd_align_32_if_any="avx" +simd_align_64_if_any="avx512" + +# system capabilities +linux_perf_deps="linux_perf_event_h" +symver_if_any="symver_asm_label symver_gnu_asm" +valgrind_backtrace_conflict="optimizations" +valgrind_backtrace_deps="valgrind_valgrind_h" + +# threading support +atomics_gcc_if="sync_val_compare_and_swap" +atomics_suncc_if="atomic_cas_ptr machine_rw_barrier" +atomics_win32_if="MemoryBarrier" +atomics_native_if_any="$ATOMICS_LIST" +w32threads_deps="atomics_native" +threads_if_any="$THREADS_LIST" + +# subsystems +cbs_av1_select="cbs" +cbs_h264_select="cbs" +cbs_h265_select="cbs" +cbs_jpeg_select="cbs" +cbs_mpeg2_select="cbs" +cbs_vp9_select="cbs" +dct_select="rdft" +dirac_parse_select="golomb" +dnn_suggest="libtensorflow" +error_resilience_select="me_cmp" +faandct_deps="faan" +faandct_select="fdctdsp" +faanidct_deps="faan" +faanidct_select="idctdsp" +h264dsp_select="startcode" +hevcparse_select="golomb" +frame_thread_encoder_deps="encoders threads" +intrax8_select="blockdsp idctdsp" +mdct_select="fft" +mdct15_select="fft" +me_cmp_select="fdctdsp idctdsp pixblockdsp" +mpeg_er_select="error_resilience" +mpegaudio_select="mpegaudiodsp mpegaudioheader" +mpegaudiodsp_select="dct" +mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp me_cmp mpeg_er videodsp" +mpegvideoenc_select="aandcttables me_cmp mpegvideo pixblockdsp qpeldsp" +vc1dsp_select="h264chroma qpeldsp startcode" +rdft_select="fft" + +# decoders / encoders +aac_decoder_select="adts_header mdct15 mdct sinewin" +aac_fixed_decoder_select="adts_header mdct sinewin" +aac_encoder_select="audio_frame_queue iirfilter lpc mdct sinewin" +aac_latm_decoder_select="aac_decoder aac_latm_parser" +ac3_decoder_select="ac3_parser ac3dsp bswapdsp fmtconvert mdct" +ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct" +ac3_encoder_select="ac3dsp audiodsp mdct me_cmp" +ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp" +adpcm_g722_decoder_select="g722dsp" +adpcm_g722_encoder_select="g722dsp" +aic_decoder_select="golomb idctdsp" +alac_encoder_select="lpc" +als_decoder_select="bswapdsp" +amrnb_decoder_select="lsp" +amrwb_decoder_select="lsp" +amv_decoder_select="sp5x_decoder exif" +amv_encoder_select="jpegtables mpegvideoenc" +ape_decoder_select="bswapdsp llauddsp" +apng_decoder_deps="zlib" +apng_encoder_deps="zlib" +apng_encoder_select="llvidencdsp" +aptx_decoder_select="audio_frame_queue" +aptx_encoder_select="audio_frame_queue" +aptx_hd_decoder_select="audio_frame_queue" +aptx_hd_encoder_select="audio_frame_queue" +asv1_decoder_select="blockdsp bswapdsp idctdsp" +asv1_encoder_select="aandcttables bswapdsp fdctdsp pixblockdsp" +asv2_decoder_select="blockdsp bswapdsp idctdsp" +asv2_encoder_select="aandcttables bswapdsp fdctdsp pixblockdsp" +atrac1_decoder_select="mdct sinewin" +atrac3_decoder_select="mdct" +atrac3p_decoder_select="mdct sinewin" +atrac9_decoder_select="mdct" +avrn_decoder_select="exif jpegtables" +bink_decoder_select="blockdsp hpeldsp" +binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs" +binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs" +cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp" +clearvideo_decoder_select="idctdsp" +cllc_decoder_select="bswapdsp" +comfortnoise_encoder_select="lpc" +cook_decoder_select="audiodsp mdct sinewin" +cscd_decoder_select="lzo" +cscd_decoder_suggest="zlib" +dca_decoder_select="mdct" +dds_decoder_select="texturedsp" +dirac_decoder_select="dirac_parse dwt golomb videodsp mpegvideoenc" +dnxhd_decoder_select="blockdsp idctdsp" +dnxhd_encoder_select="blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp" +dolby_e_decoder_select="mdct" +dvvideo_decoder_select="dvprofile idctdsp" +dvvideo_encoder_select="dvprofile fdctdsp me_cmp pixblockdsp" +dxa_decoder_deps="zlib" +dxv_decoder_select="lzf texturedsp" +eac3_decoder_select="ac3_decoder" +eac3_encoder_select="ac3_encoder" +eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo" +eatgq_decoder_select="aandcttables" +eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp" +exr_decoder_deps="zlib" +ffv1_decoder_select="rangecoder" +ffv1_encoder_select="rangecoder" +ffvhuff_decoder_select="huffyuv_decoder" +ffvhuff_encoder_select="huffyuv_encoder" +fic_decoder_select="golomb" +flac_decoder_select="flacdsp" +flac_encoder_select="bswapdsp flacdsp lpc" +flashsv2_decoder_deps="zlib" +flashsv2_encoder_deps="zlib" +flashsv_decoder_deps="zlib" +flashsv_encoder_deps="zlib" +flv_decoder_select="h263_decoder" +flv_encoder_select="h263_encoder" +fourxm_decoder_select="blockdsp bswapdsp" +fraps_decoder_select="bswapdsp huffman" +g2m_decoder_deps="zlib" +g2m_decoder_select="blockdsp idctdsp jpegtables" +g729_decoder_select="audiodsp" +h261_decoder_select="mpegvideo" +h261_encoder_select="mpegvideoenc" +h263_decoder_select="h263_parser h263dsp mpegvideo qpeldsp" +h263_encoder_select="h263dsp mpegvideoenc" +h263i_decoder_select="h263_decoder" +h263p_decoder_select="h263_decoder" +h263p_encoder_select="h263_encoder" +h264_decoder_select="cabac golomb h264chroma h264dsp h264parse h264pred h264qpel videodsp" +h264_decoder_suggest="error_resilience" +hap_decoder_select="snappy texturedsp" +hap_encoder_deps="libsnappy" +hap_encoder_select="texturedspenc" +hevc_decoder_select="bswapdsp cabac golomb hevcparse videodsp" +huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp" +huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llvidencdsp" +hymt_decoder_select="huffyuv_decoder" +iac_decoder_select="imc_decoder" +imc_decoder_select="bswapdsp fft mdct sinewin" +indeo3_decoder_select="hpeldsp" +indeo4_decoder_select="ividsp" +indeo5_decoder_select="ividsp" +interplay_video_decoder_select="hpeldsp" +jpegls_decoder_select="mjpeg_decoder" +jv_decoder_select="blockdsp" +lagarith_decoder_select="llviddsp" +ljpeg_encoder_select="idctdsp jpegtables mpegvideoenc" +lscr_decoder_deps="zlib" +magicyuv_decoder_select="llviddsp" +magicyuv_encoder_select="llvidencdsp" +mdec_decoder_select="blockdsp idctdsp mpegvideo" +metasound_decoder_select="lsp mdct sinewin" +mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" +mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp jpegtables" +mjpeg_encoder_select="jpegtables mpegvideoenc" +mjpegb_decoder_select="mjpeg_decoder" +mlp_decoder_select="mlp_parser" +mlp_encoder_select="lpc audio_frame_queue" +motionpixels_decoder_select="bswapdsp" +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="bswapdsp mpegaudiodsp" +mpc8_decoder_select="mpegaudiodsp" +mpegvideo_decoder_select="mpegvideo" +mpeg1video_decoder_select="mpegvideo" +mpeg1video_encoder_select="mpegvideoenc h263dsp" +mpeg2video_decoder_select="mpegvideo" +mpeg2video_encoder_select="mpegvideoenc h263dsp" +mpeg4_decoder_select="h263_decoder mpeg4video_parser" +mpeg4_encoder_select="h263_encoder" +msa1_decoder_select="mss34dsp" +mscc_decoder_deps="zlib" +msmpeg4v1_decoder_select="h263_decoder" +msmpeg4v2_decoder_select="h263_decoder" +msmpeg4v2_encoder_select="h263_encoder" +msmpeg4v3_decoder_select="h263_decoder" +msmpeg4v3_encoder_select="h263_encoder" +mss2_decoder_select="mpegvideo qpeldsp vc1_decoder" +mts2_decoder_select="mss34dsp" +mwsc_decoder_deps="zlib" +mxpeg_decoder_select="mjpeg_decoder" +nellymoser_decoder_select="mdct sinewin" +nellymoser_encoder_select="audio_frame_queue mdct sinewin" +nuv_decoder_select="idctdsp lzo" +on2avc_decoder_select="mdct" +opus_decoder_deps="swresample" +opus_decoder_select="mdct15" +opus_encoder_select="audio_frame_queue mdct15" +png_decoder_deps="zlib" +png_encoder_deps="zlib" +png_encoder_select="llvidencdsp" +prores_decoder_select="blockdsp idctdsp" +prores_encoder_select="fdctdsp" +qcelp_decoder_select="lsp" +qdm2_decoder_select="mdct rdft mpegaudiodsp" +ra_144_decoder_select="audiodsp" +ra_144_encoder_select="audio_frame_queue lpc audiodsp" +ralf_decoder_select="golomb" +rasc_decoder_deps="zlib" +rawvideo_decoder_select="bswapdsp" +rscc_decoder_deps="zlib" +rtjpeg_decoder_select="me_cmp" +rv10_decoder_select="h263_decoder" +rv10_encoder_select="h263_encoder" +rv20_decoder_select="h263_decoder" +rv20_encoder_select="h263_encoder" +rv30_decoder_select="golomb h264pred h264qpel mpegvideo rv34dsp" +rv40_decoder_select="golomb h264pred h264qpel mpegvideo rv34dsp" +screenpresso_decoder_deps="zlib" +shorten_decoder_select="bswapdsp" +sipr_decoder_select="lsp" +snow_decoder_select="dwt h264qpel hpeldsp me_cmp rangecoder videodsp" +snow_encoder_select="dwt h264qpel hpeldsp me_cmp mpegvideoenc rangecoder" +sonic_decoder_select="golomb rangecoder" +sonic_encoder_select="golomb rangecoder" +sonic_ls_encoder_select="golomb rangecoder" +sp5x_decoder_select="mjpeg_decoder" +speedhq_decoder_select="mpegvideo" +srgc_decoder_deps="zlib" +svq1_decoder_select="hpeldsp" +svq1_encoder_select="hpeldsp me_cmp mpegvideoenc" +svq3_decoder_select="golomb h264dsp h264parse h264pred hpeldsp tpeldsp videodsp" +svq3_decoder_suggest="zlib" +tak_decoder_select="audiodsp" +tdsc_decoder_deps="zlib" +tdsc_decoder_select="mjpeg_decoder" +theora_decoder_select="vp3_decoder" +thp_decoder_select="mjpeg_decoder" +tiff_decoder_suggest="zlib lzma" +tiff_encoder_suggest="zlib" +truehd_decoder_select="mlp_parser" +truehd_encoder_select="lpc audio_frame_queue" +truemotion2_decoder_select="bswapdsp" +truespeech_decoder_select="bswapdsp" +tscc_decoder_deps="zlib" +twinvq_decoder_select="mdct lsp sinewin" +txd_decoder_select="texturedsp" +utvideo_decoder_select="bswapdsp llviddsp" +utvideo_encoder_select="bswapdsp huffman llvidencdsp" +vble_decoder_select="llviddsp" +vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 mpegvideo vc1dsp" +vc1image_decoder_select="vc1_decoder" +vorbis_decoder_select="mdct" +vorbis_encoder_select="audio_frame_queue mdct" +vp3_decoder_select="hpeldsp vp3dsp videodsp" +vp4_decoder_select="vp3_decoder" +vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp vp56dsp" +vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp vp56dsp" +vp6a_decoder_select="vp6_decoder" +vp6f_decoder_select="vp6_decoder" +vp7_decoder_select="h264pred videodsp vp8dsp" +vp8_decoder_select="h264pred videodsp vp8dsp" +vp9_decoder_select="videodsp vp9_parser vp9_superframe_split_bsf" +wcmv_decoder_deps="zlib" +webp_decoder_select="vp8_decoder exif" +wmalossless_decoder_select="llauddsp" +wmapro_decoder_select="mdct sinewin wma_freqs" +wmav1_decoder_select="mdct sinewin wma_freqs" +wmav1_encoder_select="mdct sinewin wma_freqs" +wmav2_decoder_select="mdct sinewin wma_freqs" +wmav2_encoder_select="mdct sinewin wma_freqs" +wmavoice_decoder_select="lsp rdft dct mdct sinewin" +wmv1_decoder_select="h263_decoder" +wmv1_encoder_select="h263_encoder" +wmv2_decoder_select="blockdsp error_resilience h263_decoder idctdsp intrax8 videodsp wmv2dsp" +wmv2_encoder_select="h263_encoder wmv2dsp" +wmv3_decoder_select="vc1_decoder" +wmv3image_decoder_select="wmv3_decoder" +xma1_decoder_select="wmapro_decoder" +xma2_decoder_select="wmapro_decoder" +zerocodec_decoder_deps="zlib" +zlib_decoder_deps="zlib" +zlib_encoder_deps="zlib" +zmbv_decoder_deps="zlib" +zmbv_encoder_deps="zlib" + +# hardware accelerators +crystalhd_deps="libcrystalhd_libcrystalhd_if_h" +cuda_deps="ffnvcodec" +cuvid_deps="ffnvcodec" +d3d11va_deps="dxva_h ID3D11VideoDecoder ID3D11VideoContext" +dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode ole32 user32" +ffnvcodec_deps_any="libdl LoadLibrary" +nvdec_deps="ffnvcodec" +vaapi_x11_deps="xlib" +videotoolbox_hwaccel_deps="videotoolbox pthreads" +videotoolbox_hwaccel_extralibs="-framework QuartzCore" +xvmc_deps="X11_extensions_XvMClib_h" + +h263_vaapi_hwaccel_deps="vaapi" +h263_vaapi_hwaccel_select="h263_decoder" +h263_videotoolbox_hwaccel_deps="videotoolbox" +h263_videotoolbox_hwaccel_select="h263_decoder" +h264_d3d11va_hwaccel_deps="d3d11va" +h264_d3d11va_hwaccel_select="h264_decoder" +h264_d3d11va2_hwaccel_deps="d3d11va" +h264_d3d11va2_hwaccel_select="h264_decoder" +h264_dxva2_hwaccel_deps="dxva2" +h264_dxva2_hwaccel_select="h264_decoder" +h264_nvdec_hwaccel_deps="nvdec" +h264_nvdec_hwaccel_select="h264_decoder" +h264_vaapi_hwaccel_deps="vaapi" +h264_vaapi_hwaccel_select="h264_decoder" +h264_vdpau_hwaccel_deps="vdpau" +h264_vdpau_hwaccel_select="h264_decoder" +h264_videotoolbox_hwaccel_deps="videotoolbox" +h264_videotoolbox_hwaccel_select="h264_decoder" +hevc_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_HEVC" +hevc_d3d11va_hwaccel_select="hevc_decoder" +hevc_d3d11va2_hwaccel_deps="d3d11va DXVA_PicParams_HEVC" +hevc_d3d11va2_hwaccel_select="hevc_decoder" +hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" +hevc_dxva2_hwaccel_select="hevc_decoder" +hevc_nvdec_hwaccel_deps="nvdec" +hevc_nvdec_hwaccel_select="hevc_decoder" +hevc_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferHEVC" +hevc_vaapi_hwaccel_select="hevc_decoder" +hevc_vdpau_hwaccel_deps="vdpau VdpPictureInfoHEVC" +hevc_vdpau_hwaccel_select="hevc_decoder" +hevc_videotoolbox_hwaccel_deps="videotoolbox" +hevc_videotoolbox_hwaccel_select="hevc_decoder" +mjpeg_nvdec_hwaccel_deps="nvdec" +mjpeg_nvdec_hwaccel_select="mjpeg_decoder" +mjpeg_vaapi_hwaccel_deps="vaapi" +mjpeg_vaapi_hwaccel_select="mjpeg_decoder" +mpeg_xvmc_hwaccel_deps="xvmc" +mpeg_xvmc_hwaccel_select="mpeg2video_decoder" +mpeg1_nvdec_hwaccel_deps="nvdec" +mpeg1_nvdec_hwaccel_select="mpeg1video_decoder" +mpeg1_vdpau_hwaccel_deps="vdpau" +mpeg1_vdpau_hwaccel_select="mpeg1video_decoder" +mpeg1_videotoolbox_hwaccel_deps="videotoolbox" +mpeg1_videotoolbox_hwaccel_select="mpeg1video_decoder" +mpeg1_xvmc_hwaccel_deps="xvmc" +mpeg1_xvmc_hwaccel_select="mpeg1video_decoder" +mpeg2_d3d11va_hwaccel_deps="d3d11va" +mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder" +mpeg2_d3d11va2_hwaccel_deps="d3d11va" +mpeg2_d3d11va2_hwaccel_select="mpeg2video_decoder" +mpeg2_dxva2_hwaccel_deps="dxva2" +mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" +mpeg2_nvdec_hwaccel_deps="nvdec" +mpeg2_nvdec_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" +mpeg2_videotoolbox_hwaccel_deps="videotoolbox" +mpeg2_videotoolbox_hwaccel_select="mpeg2video_decoder" +mpeg2_xvmc_hwaccel_deps="xvmc" +mpeg2_xvmc_hwaccel_select="mpeg2video_decoder" +mpeg4_nvdec_hwaccel_deps="nvdec" +mpeg4_nvdec_hwaccel_select="mpeg4_decoder" +mpeg4_vaapi_hwaccel_deps="vaapi" +mpeg4_vaapi_hwaccel_select="mpeg4_decoder" +mpeg4_vdpau_hwaccel_deps="vdpau" +mpeg4_vdpau_hwaccel_select="mpeg4_decoder" +mpeg4_videotoolbox_hwaccel_deps="videotoolbox" +mpeg4_videotoolbox_hwaccel_select="mpeg4_decoder" +vc1_d3d11va_hwaccel_deps="d3d11va" +vc1_d3d11va_hwaccel_select="vc1_decoder" +vc1_d3d11va2_hwaccel_deps="d3d11va" +vc1_d3d11va2_hwaccel_select="vc1_decoder" +vc1_dxva2_hwaccel_deps="dxva2" +vc1_dxva2_hwaccel_select="vc1_decoder" +vc1_nvdec_hwaccel_deps="nvdec" +vc1_nvdec_hwaccel_select="vc1_decoder" +vc1_vaapi_hwaccel_deps="vaapi" +vc1_vaapi_hwaccel_select="vc1_decoder" +vc1_vdpau_hwaccel_deps="vdpau" +vc1_vdpau_hwaccel_select="vc1_decoder" +vp8_nvdec_hwaccel_deps="nvdec" +vp8_nvdec_hwaccel_select="vp8_decoder" +vp8_vaapi_hwaccel_deps="vaapi" +vp8_vaapi_hwaccel_select="vp8_decoder" +vp9_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_VP9" +vp9_d3d11va_hwaccel_select="vp9_decoder" +vp9_d3d11va2_hwaccel_deps="d3d11va DXVA_PicParams_VP9" +vp9_d3d11va2_hwaccel_select="vp9_decoder" +vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9" +vp9_dxva2_hwaccel_select="vp9_decoder" +vp9_nvdec_hwaccel_deps="nvdec" +vp9_nvdec_hwaccel_select="vp9_decoder" +vp9_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferVP9_bit_depth" +vp9_vaapi_hwaccel_select="vp9_decoder" +wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel" +wmv3_d3d11va2_hwaccel_select="vc1_d3d11va2_hwaccel" +wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" +wmv3_nvdec_hwaccel_select="vc1_nvdec_hwaccel" +wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" +wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" + +# hardware-accelerated codecs +omx_deps="libdl pthreads" +omx_rpi_select="omx" +qsv_deps="libmfx" +qsvdec_select="qsv" +qsvenc_select="qsv" +qsvvpp_select="qsv" +vaapi_encode_deps="vaapi" +v4l2_m2m_deps="linux_videodev2_h sem_timedwait" + +hwupload_cuda_filter_deps="ffnvcodec" +scale_npp_filter_deps="ffnvcodec libnpp" +scale_cuda_filter_deps="ffnvcodec" +scale_cuda_filter_deps_any="cuda_nvcc cuda_llvm" +thumbnail_cuda_filter_deps="ffnvcodec" +thumbnail_cuda_filter_deps_any="cuda_nvcc cuda_llvm" +transpose_npp_filter_deps="ffnvcodec libnpp" + +amf_deps_any="libdl LoadLibrary" +nvenc_deps="ffnvcodec" +nvenc_deps_any="libdl LoadLibrary" +nvenc_encoder_deps="nvenc" + +h263_v4l2m2m_decoder_deps="v4l2_m2m h263_v4l2_m2m" +h263_v4l2m2m_encoder_deps="v4l2_m2m h263_v4l2_m2m" +h264_amf_encoder_deps="amf" +h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" +h264_cuvid_decoder_deps="cuvid" +h264_cuvid_decoder_select="h264_mp4toannexb_bsf" +h264_mediacodec_decoder_deps="mediacodec" +h264_mediacodec_decoder_select="h264_mp4toannexb_bsf h264_parser" +h264_mmal_decoder_deps="mmal" +h264_nvenc_encoder_deps="nvenc" +h264_omx_encoder_deps="omx" +h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec" +h264_qsv_encoder_select="qsvenc" +h264_rkmpp_decoder_deps="rkmpp" +h264_rkmpp_decoder_select="h264_mp4toannexb_bsf" +h264_vaapi_encoder_select="cbs_h264 vaapi_encode" +h264_v4l2m2m_decoder_deps="v4l2_m2m h264_v4l2_m2m" +h264_v4l2m2m_decoder_select="h264_mp4toannexb_bsf" +h264_v4l2m2m_encoder_deps="v4l2_m2m h264_v4l2_m2m" +hevc_amf_encoder_deps="amf" +hevc_cuvid_decoder_deps="cuvid" +hevc_cuvid_decoder_select="hevc_mp4toannexb_bsf" +hevc_mediacodec_decoder_deps="mediacodec" +hevc_mediacodec_decoder_select="hevc_mp4toannexb_bsf hevc_parser" +hevc_nvenc_encoder_deps="nvenc" +hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec" +hevc_qsv_encoder_select="hevcparse qsvenc" +hevc_rkmpp_decoder_deps="rkmpp" +hevc_rkmpp_decoder_select="hevc_mp4toannexb_bsf" +hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC" +hevc_vaapi_encoder_select="cbs_h265 vaapi_encode" +hevc_v4l2m2m_decoder_deps="v4l2_m2m hevc_v4l2_m2m" +hevc_v4l2m2m_decoder_select="hevc_mp4toannexb_bsf" +hevc_v4l2m2m_encoder_deps="v4l2_m2m hevc_v4l2_m2m" +mjpeg_cuvid_decoder_deps="cuvid" +mjpeg_qsv_encoder_deps="libmfx" +mjpeg_qsv_encoder_select="qsvenc" +mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG" +mjpeg_vaapi_encoder_select="cbs_jpeg jpegtables vaapi_encode" +mpeg1_cuvid_decoder_deps="cuvid" +mpeg1_v4l2m2m_decoder_deps="v4l2_m2m mpeg1_v4l2_m2m" +mpeg2_crystalhd_decoder_select="crystalhd" +mpeg2_cuvid_decoder_deps="cuvid" +mpeg2_mmal_decoder_deps="mmal" +mpeg2_mediacodec_decoder_deps="mediacodec" +mpeg2_qsv_decoder_select="qsvdec mpegvideo_parser" +mpeg2_qsv_encoder_select="qsvenc" +mpeg2_vaapi_encoder_select="cbs_mpeg2 vaapi_encode" +mpeg2_v4l2m2m_decoder_deps="v4l2_m2m mpeg2_v4l2_m2m" +mpeg4_crystalhd_decoder_select="crystalhd" +mpeg4_cuvid_decoder_deps="cuvid" +mpeg4_mediacodec_decoder_deps="mediacodec" +mpeg4_mmal_decoder_deps="mmal" +mpeg4_omx_encoder_deps="omx" +mpeg4_v4l2m2m_decoder_deps="v4l2_m2m mpeg4_v4l2_m2m" +mpeg4_v4l2m2m_encoder_deps="v4l2_m2m mpeg4_v4l2_m2m" +msmpeg4_crystalhd_decoder_select="crystalhd" +nvenc_h264_encoder_select="h264_nvenc_encoder" +nvenc_hevc_encoder_select="hevc_nvenc_encoder" +vc1_crystalhd_decoder_select="crystalhd" +vc1_cuvid_decoder_deps="cuvid" +vc1_mmal_decoder_deps="mmal" +vc1_qsv_decoder_select="qsvdec vc1_parser" +vc1_v4l2m2m_decoder_deps="v4l2_m2m vc1_v4l2_m2m" +vp8_cuvid_decoder_deps="cuvid" +vp8_mediacodec_decoder_deps="mediacodec" +vp8_qsv_decoder_select="qsvdec vp8_parser" +vp8_rkmpp_decoder_deps="rkmpp" +vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8" +vp8_vaapi_encoder_select="vaapi_encode" +vp8_v4l2m2m_decoder_deps="v4l2_m2m vp8_v4l2_m2m" +vp8_v4l2m2m_encoder_deps="v4l2_m2m vp8_v4l2_m2m" +vp9_cuvid_decoder_deps="cuvid" +vp9_mediacodec_decoder_deps="mediacodec" +vp9_rkmpp_decoder_deps="rkmpp" +vp9_vaapi_encoder_deps="VAEncPictureParameterBufferVP9" +vp9_vaapi_encoder_select="vaapi_encode" +vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m" +wmv3_crystalhd_decoder_select="crystalhd" + +# parsers +aac_parser_select="adts_header" +av1_parser_select="cbs_av1" +h264_parser_select="golomb h264dsp h264parse" +hevc_parser_select="hevcparse" +mpegaudio_parser_select="mpegaudioheader" +mpegvideo_parser_select="mpegvideo" +mpeg4video_parser_select="h263dsp mpegvideo qpeldsp" +vc1_parser_select="vc1dsp" + +# bitstream_filters +aac_adtstoasc_bsf_select="adts_header" +av1_frame_split_bsf_select="cbs_av1" +av1_metadata_bsf_select="cbs_av1" +eac3_core_bsf_select="ac3_parser" +filter_units_bsf_select="cbs" +h264_metadata_bsf_deps="const_nan" +h264_metadata_bsf_select="cbs_h264" +h264_redundant_pps_bsf_select="cbs_h264" +hevc_metadata_bsf_select="cbs_h265" +mjpeg2jpeg_bsf_select="jpegtables" +mpeg2_metadata_bsf_select="cbs_mpeg2" +trace_headers_bsf_select="cbs" +vp9_metadata_bsf_select="cbs_vp9" + +# external libraries +aac_at_decoder_deps="audiotoolbox" +aac_at_decoder_select="aac_adtstoasc_bsf" +ac3_at_decoder_deps="audiotoolbox" +ac3_at_decoder_select="ac3_parser" +adpcm_ima_qt_at_decoder_deps="audiotoolbox" +alac_at_decoder_deps="audiotoolbox" +amr_nb_at_decoder_deps="audiotoolbox" +avisynth_deps_any="libdl LoadLibrary" +avisynth_demuxer_deps="avisynth" +avisynth_demuxer_select="riffdec" +eac3_at_decoder_deps="audiotoolbox" +eac3_at_decoder_select="ac3_parser" +gsm_ms_at_decoder_deps="audiotoolbox" +ilbc_at_decoder_deps="audiotoolbox" +mp1_at_decoder_deps="audiotoolbox" +mp2_at_decoder_deps="audiotoolbox" +mp3_at_decoder_deps="audiotoolbox" +mp1_at_decoder_select="mpegaudioheader" +mp2_at_decoder_select="mpegaudioheader" +mp3_at_decoder_select="mpegaudioheader" +pcm_alaw_at_decoder_deps="audiotoolbox" +pcm_mulaw_at_decoder_deps="audiotoolbox" +qdmc_at_decoder_deps="audiotoolbox" +qdm2_at_decoder_deps="audiotoolbox" +aac_at_encoder_deps="audiotoolbox" +aac_at_encoder_select="audio_frame_queue" +alac_at_encoder_deps="audiotoolbox" +alac_at_encoder_select="audio_frame_queue" +ilbc_at_encoder_deps="audiotoolbox" +ilbc_at_encoder_select="audio_frame_queue" +pcm_alaw_at_encoder_deps="audiotoolbox" +pcm_alaw_at_encoder_select="audio_frame_queue" +pcm_mulaw_at_encoder_deps="audiotoolbox" +pcm_mulaw_at_encoder_select="audio_frame_queue" +chromaprint_muxer_deps="chromaprint" +h264_videotoolbox_encoder_deps="pthreads" +h264_videotoolbox_encoder_select="videotoolbox_encoder" +hevc_videotoolbox_encoder_deps="pthreads" +hevc_videotoolbox_encoder_select="videotoolbox_encoder" +libaom_av1_decoder_deps="libaom" +libaom_av1_encoder_deps="libaom" +libaom_av1_encoder_select="extract_extradata_bsf" +libaribb24_decoder_deps="libaribb24" +libcelt_decoder_deps="libcelt" +libcodec2_decoder_deps="libcodec2" +libcodec2_encoder_deps="libcodec2" +libdav1d_decoder_deps="libdav1d" +libdavs2_decoder_deps="libdavs2" +libfdk_aac_decoder_deps="libfdk_aac" +libfdk_aac_encoder_deps="libfdk_aac" +libfdk_aac_encoder_select="audio_frame_queue" +libgme_demuxer_deps="libgme" +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" +libkvazaar_encoder_deps="libkvazaar" +libmodplug_demuxer_deps="libmodplug" +libmp3lame_encoder_deps="libmp3lame" +libmp3lame_encoder_select="audio_frame_queue mpegaudioheader" +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" +libopenh264_decoder_deps="libopenh264" +libopenh264_decoder_select="h264_mp4toannexb_bsf" +libopenh264_encoder_deps="libopenh264" +libopenjpeg_decoder_deps="libopenjpeg" +libopenjpeg_encoder_deps="libopenjpeg" +libopenmpt_demuxer_deps="libopenmpt" +libopus_decoder_deps="libopus" +libopus_encoder_deps="libopus" +libopus_encoder_select="audio_frame_queue" +librsvg_decoder_deps="librsvg" +libshine_encoder_deps="libshine" +libshine_encoder_select="audio_frame_queue" +libspeex_decoder_deps="libspeex" +libspeex_encoder_deps="libspeex" +libspeex_encoder_select="audio_frame_queue" +libtheora_encoder_deps="libtheora" +libtwolame_encoder_deps="libtwolame" +libvo_amrwbenc_encoder_deps="libvo_amrwbenc" +libvorbis_decoder_deps="libvorbis" +libvorbis_encoder_deps="libvorbis libvorbisenc" +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" +libwavpack_encoder_deps="libwavpack" +libwavpack_encoder_select="audio_frame_queue" +libwebp_encoder_deps="libwebp" +libwebp_anim_encoder_deps="libwebp" +libx262_encoder_deps="libx262" +libx264_encoder_deps="libx264" +libx264rgb_encoder_deps="libx264 x264_csp_bgr" +libx264rgb_encoder_select="libx264_encoder" +libx265_encoder_deps="libx265" +libxavs_encoder_deps="libxavs" +libxavs2_encoder_deps="libxavs2" +libxvid_encoder_deps="libxvid" +libzvbi_teletext_decoder_deps="libzvbi" +vapoursynth_demuxer_deps="vapoursynth" +videotoolbox_suggest="coreservices" +videotoolbox_deps="corefoundation coremedia corevideo" +videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames" + +# demuxers / muxers +ac3_demuxer_select="ac3_parser" +aiff_muxer_select="iso_media" +asf_demuxer_select="riffdec" +asf_o_demuxer_select="riffdec" +asf_muxer_select="riffenc" +asf_stream_muxer_select="asf_muxer" +avi_demuxer_select="iso_media riffdec exif" +avi_muxer_select="riffenc" +caf_demuxer_select="iso_media riffdec" +caf_muxer_select="iso_media" +dash_muxer_select="mp4_muxer" +dash_demuxer_deps="libxml2" +dirac_demuxer_select="dirac_parser" +dts_demuxer_select="dca_parser" +dtshd_demuxer_select="dca_parser" +dv_demuxer_select="dvprofile" +dv_muxer_select="dvprofile" +dxa_demuxer_select="riffdec" +eac3_demuxer_select="ac3_parser" +f4v_muxer_select="mov_muxer" +fifo_muxer_deps="threads" +flac_demuxer_select="flac_parser" +hds_muxer_select="flv_muxer" +hls_muxer_select="mpegts_muxer" +hls_muxer_suggest="gcrypt openssl" +image2_alias_pix_demuxer_select="image2_demuxer" +image2_brender_pix_demuxer_select="image2_demuxer" +ipod_muxer_select="mov_muxer" +ismv_muxer_select="mov_muxer" +ivf_muxer_select="av1_metadata_bsf vp9_superframe_bsf" +matroska_audio_muxer_select="matroska_muxer" +matroska_demuxer_select="iso_media riffdec" +matroska_demuxer_suggest="bzlib lzo zlib" +matroska_muxer_select="iso_media riffenc" +mmf_muxer_select="riffenc" +mov_demuxer_select="iso_media riffdec" +mov_demuxer_suggest="zlib" +mov_muxer_select="iso_media riffenc rtpenc_chain" +mp3_demuxer_select="mpegaudio_parser" +mp3_muxer_select="mpegaudioheader" +mp4_muxer_select="mov_muxer" +mpegts_demuxer_select="iso_media" +mpegts_muxer_select="adts_muxer latm_muxer" +mpegtsraw_demuxer_select="mpegts_demuxer" +mxf_d10_muxer_select="mxf_muxer" +mxf_opatom_muxer_select="mxf_muxer" +nut_muxer_select="riffenc" +nuv_demuxer_select="riffdec" +oga_muxer_select="ogg_muxer" +ogg_demuxer_select="dirac_parse" +ogv_muxer_select="ogg_muxer" +opus_muxer_select="ogg_muxer" +psp_muxer_select="mov_muxer" +rtp_demuxer_select="sdp_demuxer" +rtp_muxer_select="golomb" +rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol srtp" +rtsp_demuxer_select="http_protocol rtpdec" +rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain" +sap_demuxer_select="sdp_demuxer" +sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain" +sdp_demuxer_select="rtpdec" +smoothstreaming_muxer_select="ismv_muxer" +spdif_demuxer_select="adts_header" +spdif_muxer_select="adts_header" +spx_muxer_select="ogg_muxer" +swf_demuxer_suggest="zlib" +tak_demuxer_select="tak_parser" +tg2_muxer_select="mov_muxer" +tgp_muxer_select="mov_muxer" +vobsub_demuxer_select="mpegps_demuxer" +w64_demuxer_select="wav_demuxer" +w64_muxer_select="wav_muxer" +wav_demuxer_select="riffdec" +wav_muxer_select="riffenc" +webm_muxer_select="iso_media riffenc" +webm_dash_manifest_demuxer_select="matroska_demuxer" +wtv_demuxer_select="mpegts_demuxer riffdec" +wtv_muxer_select="mpegts_muxer riffenc" +xmv_demuxer_select="riffdec" +xwma_demuxer_select="riffdec" + +# indevs / outdevs +android_camera_indev_deps="android camera2ndk mediandk pthreads" +android_camera_indev_extralibs="-landroid -lcamera2ndk -lmediandk" +alsa_indev_deps="alsa" +alsa_outdev_deps="alsa" +avfoundation_indev_deps="avfoundation corevideo coremedia pthreads" +avfoundation_indev_suggest="coregraphics applicationservices" +avfoundation_indev_extralibs="-framework Foundation" +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" +decklink_deps_any="libdl LoadLibrary" +decklink_indev_deps="decklink threads" +decklink_indev_extralibs="-lstdc++" +decklink_outdev_deps="decklink threads" +decklink_outdev_suggest="libklvanc" +decklink_outdev_extralibs="-lstdc++" +dshow_indev_deps="IBaseFilter" +dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid -loleaut32 -lshlwapi" +fbdev_indev_deps="linux_fb_h" +fbdev_outdev_deps="linux_fb_h" +gdigrab_indev_deps="CreateDIBSection" +gdigrab_indev_extralibs="-lgdi32" +gdigrab_indev_select="bmp_decoder" +iec61883_indev_deps="libiec61883" +jack_indev_deps="libjack" +jack_indev_deps_any="sem_timedwait dispatch_dispatch_h" +kmsgrab_indev_deps="libdrm" +lavfi_indev_deps="avfilter" +libcdio_indev_deps="libcdio" +libdc1394_indev_deps="libdc1394" +openal_indev_deps="openal" +opengl_outdev_deps="opengl" +opengl_outdev_suggest="sdl2" +oss_indev_deps_any="sys_soundcard_h" +oss_outdev_deps_any="sys_soundcard_h" +pulse_indev_deps="libpulse" +pulse_outdev_deps="libpulse" +sdl2_outdev_deps="sdl2" +sndio_indev_deps="sndio" +sndio_outdev_deps="sndio" +v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" +v4l2_indev_suggest="libv4l2" +v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h" +v4l2_outdev_suggest="libv4l2" +vfwcap_indev_deps="vfw32 vfwcap_defines" +xcbgrab_indev_deps="libxcb" +xcbgrab_indev_suggest="libxcb_shm libxcb_shape libxcb_xfixes" +xv_outdev_deps="xlib" + +# protocols +async_protocol_deps="threads" +bluray_protocol_deps="libbluray" +ffrtmpcrypt_protocol_conflict="librtmp_protocol" +ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl mbedtls" +ffrtmpcrypt_protocol_select="tcp_protocol" +ffrtmphttp_protocol_conflict="librtmp_protocol" +ffrtmphttp_protocol_select="http_protocol" +ftp_protocol_select="tcp_protocol" +gopher_protocol_select="network" +http_protocol_select="tcp_protocol" +http_protocol_suggest="zlib" +httpproxy_protocol_select="tcp_protocol" +httpproxy_protocol_suggest="zlib" +https_protocol_select="tls_protocol" +https_protocol_suggest="zlib" +icecast_protocol_select="http_protocol" +mmsh_protocol_select="http_protocol" +mmst_protocol_select="network" +rtmp_protocol_conflict="librtmp_protocol" +rtmp_protocol_select="tcp_protocol" +rtmp_protocol_suggest="zlib" +rtmpe_protocol_select="ffrtmpcrypt_protocol" +rtmpe_protocol_suggest="zlib" +rtmps_protocol_conflict="librtmp_protocol" +rtmps_protocol_select="tls_protocol" +rtmps_protocol_suggest="zlib" +rtmpt_protocol_select="ffrtmphttp_protocol" +rtmpt_protocol_suggest="zlib" +rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" +rtmpte_protocol_suggest="zlib" +rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" +rtmpts_protocol_suggest="zlib" +rtp_protocol_select="udp_protocol" +schannel_conflict="openssl gnutls libtls mbedtls" +sctp_protocol_deps="struct_sctp_event_subscribe struct_msghdr_msg_flags" +sctp_protocol_select="network" +securetransport_conflict="openssl gnutls libtls mbedtls" +srtp_protocol_select="rtp_protocol srtp" +tcp_protocol_select="network" +tls_protocol_deps_any="gnutls openssl schannel securetransport libtls mbedtls" +tls_protocol_select="tcp_protocol" +udp_protocol_select="network" +udplite_protocol_select="network" +unix_protocol_deps="sys_un_h" +unix_protocol_select="network" + +# external library protocols +librtmp_protocol_deps="librtmp" +librtmpe_protocol_deps="librtmp" +librtmps_protocol_deps="librtmp" +librtmpt_protocol_deps="librtmp" +librtmpte_protocol_deps="librtmp" +libsmbclient_protocol_deps="libsmbclient gplv3" +libsrt_protocol_deps="libsrt" +libsrt_protocol_select="network" +libssh_protocol_deps="libssh" +libtls_conflict="openssl gnutls mbedtls" + +# filters +afftdn_filter_deps="avcodec" +afftdn_filter_select="fft" +afftfilt_filter_deps="avcodec" +afftfilt_filter_select="fft" +afir_filter_deps="avcodec" +afir_filter_select="fft" +amovie_filter_deps="avcodec avformat" +aresample_filter_deps="swresample" +asr_filter_deps="pocketsphinx" +ass_filter_deps="libass" +atempo_filter_deps="avcodec" +atempo_filter_select="rdft" +avgblur_opencl_filter_deps="opencl" +azmq_filter_deps="libzmq" +blackframe_filter_deps="gpl" +bm3d_filter_deps="avcodec" +bm3d_filter_select="dct" +boxblur_filter_deps="gpl" +boxblur_opencl_filter_deps="opencl gpl" +bs2b_filter_deps="libbs2b" +colorkey_opencl_filter_deps="opencl" +colormatrix_filter_deps="gpl" +convolution_opencl_filter_deps="opencl" +convolve_filter_deps="avcodec" +convolve_filter_select="fft" +coreimage_filter_deps="coreimage appkit" +coreimage_filter_extralibs="-framework OpenGL" +coreimagesrc_filter_deps="coreimage appkit" +coreimagesrc_filter_extralibs="-framework OpenGL" +cover_rect_filter_deps="avcodec avformat gpl" +cropdetect_filter_deps="gpl" +deconvolve_filter_deps="avcodec" +deconvolve_filter_select="fft" +deinterlace_qsv_filter_deps="libmfx" +deinterlace_vaapi_filter_deps="vaapi" +delogo_filter_deps="gpl" +denoise_vaapi_filter_deps="vaapi" +derain_filter_select="dnn" +deshake_filter_select="pixelutils" +dilation_opencl_filter_deps="opencl" +drawtext_filter_deps="libfreetype" +drawtext_filter_suggest="libfontconfig libfribidi" +elbg_filter_deps="avcodec" +eq_filter_deps="gpl" +erosion_opencl_filter_deps="opencl" +fftfilt_filter_deps="avcodec" +fftfilt_filter_select="rdft" +fftdnoiz_filter_deps="avcodec" +fftdnoiz_filter_select="fft" +find_rect_filter_deps="avcodec avformat gpl" +firequalizer_filter_deps="avcodec" +firequalizer_filter_select="rdft" +flite_filter_deps="libflite" +framerate_filter_select="scene_sad" +freezedetect_filter_select="scene_sad" +frei0r_filter_deps="frei0r libdl" +frei0r_src_filter_deps="frei0r libdl" +fspp_filter_deps="gpl" +geq_filter_deps="gpl" +histeq_filter_deps="gpl" +hqdn3d_filter_deps="gpl" +interlace_filter_deps="gpl" +kerndeint_filter_deps="gpl" +ladspa_filter_deps="ladspa libdl" +lensfun_filter_deps="liblensfun version3" +lv2_filter_deps="lv2" +mcdeint_filter_deps="avcodec gpl" +movie_filter_deps="avcodec avformat" +mpdecimate_filter_deps="gpl" +mpdecimate_filter_select="pixelutils" +minterpolate_filter_select="scene_sad" +mptestsrc_filter_deps="gpl" +negate_filter_deps="lut_filter" +nlmeans_opencl_filter_deps="opencl" +nnedi_filter_deps="gpl" +ocr_filter_deps="libtesseract" +ocv_filter_deps="libopencv" +openclsrc_filter_deps="opencl" +overlay_opencl_filter_deps="opencl" +overlay_qsv_filter_deps="libmfx" +overlay_qsv_filter_select="qsvvpp" +owdenoise_filter_deps="gpl" +pan_filter_deps="swresample" +perspective_filter_deps="gpl" +phase_filter_deps="gpl" +pp7_filter_deps="gpl" +pp_filter_deps="gpl postproc" +prewitt_opencl_filter_deps="opencl" +procamp_vaapi_filter_deps="vaapi" +program_opencl_filter_deps="opencl" +pullup_filter_deps="gpl" +removelogo_filter_deps="avcodec avformat swscale" +repeatfields_filter_deps="gpl" +resample_filter_deps="avresample" +roberts_opencl_filter_deps="opencl" +rubberband_filter_deps="librubberband" +sab_filter_deps="gpl swscale" +scale2ref_filter_deps="swscale" +scale_filter_deps="swscale" +scale_qsv_filter_deps="libmfx" +select_filter_select="scene_sad" +sharpness_vaapi_filter_deps="vaapi" +showcqt_filter_deps="avcodec avformat swscale" +showcqt_filter_suggest="libfontconfig libfreetype" +showcqt_filter_select="fft" +showfreqs_filter_deps="avcodec" +showfreqs_filter_select="fft" +showspectrum_filter_deps="avcodec" +showspectrum_filter_select="fft" +showspectrumpic_filter_deps="avcodec" +showspectrumpic_filter_select="fft" +signature_filter_deps="gpl avcodec avformat" +smartblur_filter_deps="gpl swscale" +sobel_opencl_filter_deps="opencl" +sofalizer_filter_deps="libmysofa avcodec" +sofalizer_filter_select="fft" +spectrumsynth_filter_deps="avcodec" +spectrumsynth_filter_select="fft" +spp_filter_deps="gpl avcodec" +spp_filter_select="fft idctdsp fdctdsp me_cmp pixblockdsp" +sr_filter_deps="avformat swscale" +sr_filter_select="dnn" +stereo3d_filter_deps="gpl" +subtitles_filter_deps="avformat avcodec libass" +super2xsai_filter_deps="gpl" +pixfmts_super2xsai_test_deps="super2xsai_filter" +tinterlace_filter_deps="gpl" +tinterlace_merge_test_deps="tinterlace_filter" +tinterlace_pad_test_deps="tinterlace_filter" +tonemap_filter_deps="const_nan" +tonemap_opencl_filter_deps="opencl const_nan" +transpose_opencl_filter_deps="opencl" +transpose_vaapi_filter_deps="vaapi VAProcPipelineCaps_rotation_flags" +unsharp_opencl_filter_deps="opencl" +uspp_filter_deps="gpl avcodec" +vaguedenoiser_filter_deps="gpl" +vidstabdetect_filter_deps="libvidstab" +vidstabtransform_filter_deps="libvidstab" +libvmaf_filter_deps="libvmaf pthreads" +zmq_filter_deps="libzmq" +zoompan_filter_deps="swscale" +zscale_filter_deps="libzimg const_nan" +scale_vaapi_filter_deps="vaapi" +vpp_qsv_filter_deps="libmfx" +vpp_qsv_filter_select="qsvvpp" +yadif_cuda_filter_deps="ffnvcodec" +yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm" + +# examples +avio_dir_cmd_deps="avformat avutil" +avio_reading_deps="avformat avcodec avutil" +decode_audio_example_deps="avcodec avutil" +decode_video_example_deps="avcodec avutil" +demuxing_decoding_example_deps="avcodec avformat avutil" +encode_audio_example_deps="avcodec avutil" +encode_video_example_deps="avcodec avutil" +extract_mvs_example_deps="avcodec avformat avutil" +filter_audio_example_deps="avfilter avutil" +filtering_audio_example_deps="avfilter avcodec avformat avutil" +filtering_video_example_deps="avfilter avcodec avformat avutil" +http_multiclient_example_deps="avformat avutil fork" +hw_decode_example_deps="avcodec avformat avutil" +metadata_example_deps="avformat avutil" +muxing_example_deps="avcodec avformat avutil swscale" +qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder" +remuxing_example_deps="avcodec avformat avutil" +resampling_audio_example_deps="avutil swresample" +scaling_video_example_deps="avutil swscale" +transcode_aac_example_deps="avcodec avformat swresample" +transcoding_example_deps="avfilter avcodec avformat avutil" +vaapi_encode_example_deps="avcodec avutil h264_vaapi_encoder" +vaapi_transcode_example_deps="avcodec avformat avutil h264_vaapi_encoder" + +# EXTRALIBS_LIST +cpu_init_extralibs="pthreads_extralibs" +cws2fws_extralibs="zlib_extralibs" + +# libraries, in any order +avcodec_deps="avutil" +avcodec_suggest="libm" +avcodec_select="null_bsf" +avdevice_deps="avformat avcodec avutil" +avdevice_suggest="libm" +avfilter_deps="avutil" +avfilter_suggest="libm" +avformat_deps="avcodec avutil" +avformat_suggest="libm network zlib" +avresample_deps="avutil" +avresample_suggest="libm" +avutil_suggest="clock_gettime ffnvcodec libm libdrm libmfx opencl user32 vaapi videotoolbox corefoundation corevideo coremedia bcrypt" +postproc_deps="avutil gpl" +postproc_suggest="libm" +swresample_deps="avutil" +swresample_suggest="libm libsoxr" +swscale_deps="avutil" +swscale_suggest="libm" + +avcodec_extralibs="pthreads_extralibs iconv_extralibs dxva2_extralibs" +avfilter_extralibs="pthreads_extralibs" +avutil_extralibs="d3d11va_extralibs nanosleep_extralibs pthreads_extralibs vaapi_drm_extralibs vaapi_x11_extralibs vdpau_x11_extralibs" + +# programs +ffmpeg_deps="avcodec avfilter avformat" +ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter + hflip_filter null_filter + transpose_filter trim_filter vflip_filter" +ffmpeg_suggest="ole32 psapi shell32" +ffplay_deps="avcodec avformat swscale swresample sdl2" +ffplay_select="rdft crop_filter transpose_filter hflip_filter vflip_filter rotate_filter" +ffplay_suggest="shell32" +ffprobe_deps="avcodec avformat" +ffprobe_suggest="shell32" + +# documentation +podpages_deps="perl" +manpages_deps="perl pod2man" +htmlpages_deps="perl" +htmlpages_deps_any="makeinfo_html texi2html" +txtpages_deps="perl makeinfo" +doc_deps_any="manpages htmlpages podpages txtpages" + +# default parameters + +logfile="ffbuild/config.log" + +# installation paths +prefix_default="/usr/local" +bindir_default='${prefix}/bin' +datadir_default='${prefix}/share/ffmpeg' +docdir_default='${prefix}/share/doc/ffmpeg' +incdir_default='${prefix}/include' +libdir_default='${prefix}/lib' +mandir_default='${prefix}/share/man' + +# toolchain +ar_default="ar" +cc_default="gcc" +cxx_default="g++" +host_cc_default="gcc" +doxygen_default="doxygen" +install="install" +ln_s_default="ln -s -f" +nm_default="nm -g" +pkg_config_default=pkg-config +ranlib_default="ranlib" +strip_default="strip" +version_script='--version-script' +objformat="elf32" +x86asmexe_default="nasm" +windres_default="windres" +striptype="direct" + +# OS +target_os_default=$(tolower $(uname -s)) +host_os=$target_os_default + +# machine +if test "$target_os_default" = aix; then + arch_default=$(uname -p) + strip_default="strip -X32_64" + nm_default="nm -g -X32_64" +else + arch_default=$(uname -m) +fi +cpu="generic" +intrinsics="none" + +# configurable options +enable $PROGRAM_LIST +enable $DOCUMENT_LIST +enable $EXAMPLE_LIST +enable $(filter_out avresample $LIBRARY_LIST) +enable stripping + +enable asm +enable debug +enable doc +enable faan faandct faanidct +enable optimizations +enable runtime_cpudetect +enable safe_bitstream_reader +enable static +enable swscale_alpha +enable valgrind_backtrace + +sws_max_filter_size_default=256 +set_default sws_max_filter_size + +# internal components are enabled by default +enable $EXTRALIBS_LIST + +# Avoid external, non-system, libraries getting enabled by dependency resolution +disable $EXTERNAL_LIBRARY_LIST $HWACCEL_LIBRARY_LIST + +# build settings +SHFLAGS='-shared -Wl,-soname,$$(@F)' +LIBPREF="lib" +LIBSUF=".a" +FULLNAME='$(NAME)$(BUILDSUF)' +LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' +SLIBPREF="lib" +SLIBSUF=".so" +SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' +SLIBNAME_WITH_VERSION='$(SLIBNAME)' +SLIBNAME_WITH_MAJOR='$(SLIBNAME)' +LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' +SLIB_INSTALL_NAME='$(SLIBNAME)' +VERSION_SCRIPT_POSTPROCESS_CMD="cat" + +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 $@' +OBJCC_C='-c' +OBJCC_E='-E -o $@' +OBJCC_O='-o $@' +X86ASM_O='-o $@' +LD_O='-o $@' +LD_LIB='-l%' +LD_PATH='-L' +HOSTCC_C='-c' +HOSTCC_E='-E -o $@' +HOSTCC_O='-o $@' +HOSTLD_O='-o $@' +NVCC_C='-c' +NVCC_O='-o $@' + +host_extralibs='-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) $< 2>/dev/null | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(@F),$(@D)/$(@F)," > $(@:.o=.d)' +DEPFLAGS='-MM' + +mkdir -p ffbuild + +# find source path +if test -f configure; then + source_path=. +elif test -f src/configure; then + source_path=src +else + source_path=$(cd $(dirname "$0"); pwd) + case "$source_path" in + *[[:blank:]]*) die "Out of tree builds are impossible with whitespace in source path." ;; + esac + 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_extern(){ + thing=$1 + pattern=$2 + file=$source_path/$3 + out=${4:-$thing} + sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$out/p" "$file" +} + +find_filters_extern(){ + file=$source_path/$1 + sed -n 's/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file +} + +FILTER_LIST=$(find_filters_extern libavfilter/allfilters.c) +OUTDEV_LIST=$(find_things_extern muxer AVOutputFormat libavdevice/alldevices.c outdev) +INDEV_LIST=$(find_things_extern demuxer AVInputFormat libavdevice/alldevices.c indev) +MUXER_LIST=$(find_things_extern muxer AVOutputFormat libavformat/allformats.c) +DEMUXER_LIST=$(find_things_extern demuxer AVInputFormat libavformat/allformats.c) +ENCODER_LIST=$(find_things_extern encoder AVCodec libavcodec/allcodecs.c) +DECODER_LIST=$(find_things_extern decoder AVCodec libavcodec/allcodecs.c) +CODEC_LIST=" + $ENCODER_LIST + $DECODER_LIST +" +PARSER_LIST=$(find_things_extern parser AVCodecParser libavcodec/parsers.c) +BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c) +HWACCEL_LIST=$(find_things_extern hwaccel AVHWAccel libavcodec/hwaccels.h) +PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c) + +AVCODEC_COMPONENTS_LIST=" + $BSF_LIST + $DECODER_LIST + $ENCODER_LIST + $HWACCEL_LIST + $PARSER_LIST +" + +AVDEVICE_COMPONENTS_LIST=" + $INDEV_LIST + $OUTDEV_LIST +" + +AVFILTER_COMPONENTS_LIST=" + $FILTER_LIST +" + +AVFORMAT_COMPONENTS_LIST=" + $DEMUXER_LIST + $MUXER_LIST + $PROTOCOL_LIST +" + +ALL_COMPONENTS=" + $AVCODEC_COMPONENTS_LIST + $AVDEVICE_COMPONENTS_LIST + $AVFILTER_COMPONENTS_LIST + $AVFORMAT_COMPONENTS_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_in_columns() { + tr ' ' '\n' | sort | tr '\r\n' ' ' | awk -v col_width=24 -v width="$ncols" ' + { + num_cols = width > col_width ? int(width / col_width) : 1; + num_rows = int((NF + num_cols-1) / num_cols); + y = x = 1; + for (y = 1; y <= num_rows; y++) { + i = y; + for (x = 1; x <= num_cols; x++) { + if (i <= NF) { + line = sprintf("%s%-" col_width "s", line, $i); + } + i = i + num_rows; + } + print line; line = ""; + } + }' | sed 's/ *$//' +} + +show_list() { + suffix=_$1 + shift + echo $* | sed s/$suffix//g | print_in_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-ldexeflags=*) + add_ldexeflags $optval + ;; + --extra-ldsoflags=*) + add_ldsoflags $optval + ;; + --extra-ldlibflags=*) + warn "The --extra-ldlibflags option is only provided for compatibility and will be\n"\ + "removed in the future. Use --extra-ldsoflags instead." + add_ldsoflags $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 avutil + ;; + --enable-random|--disable-random) + action=${opt%%-random} + do_random ${action#--} $COMPONENT_LIST + ;; + --enable-random=*|--disable-random=*) + action=${opt%%-random=*} + do_random ${action#--} $optval + ;; + --enable-sdl) + enable sdl2 + ;; + --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" + test $action = enable && warn_if_gets_disabled $list + $action $list + ;; + --enable-yasm|--disable-yasm) + warn "The ${opt} option is only provided for compatibility and will be\n"\ + "removed in the future. Use --enable-x86asm / --disable-x86asm instead." + test $opt = --enable-yasm && x86asm=yes || x86asm=no + ;; + --yasmexe=*) + warn "The --yasmexe option is only provided for compatibility and will be\n"\ + "removed in the future. Use --x86asmexe instead." + x86asmexe="$optval" + ;; + --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 + ;; + --quiet|-q) quiet=yes + ;; + --fatal-warnings) enable fatal_warnings + ;; + --libfuzzer=*) + libfuzzer_path="$optval" + ;; + *) + 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 + +for e in $env; do + eval "export $e" +done + +if disabled autodetect; then + + # Unless iconv is explicitely disabled by the user, we still want to probe + # for the iconv from the libc. + disabled iconv || enable libc_iconv + + disable_weak $EXTERNAL_AUTODETECT_LIBRARY_LIST + disable_weak $HWACCEL_AUTODETECT_LIBRARY_LIST +fi +# Mark specifically enabled, but normally autodetected libraries as requested. +for lib in $AUTODETECT_LIBS; do + enabled $lib && request $lib +done +#TODO: switch to $AUTODETECT_LIBS when $THREADS_LIST is supported the same way +enable_weak $EXTERNAL_AUTODETECT_LIBRARY_LIST +enable_weak $HWACCEL_AUTODETECT_LIBRARY_LIST + +disabled logging && logfile=/dev/null + +# command line configuration sanity checks + +# we need to build at least one lib type +if ! enabled_any static shared; then + cat < $logfile +set >> $logfile + +test -n "$valgrind" && toolchain="valgrind-memcheck" + +enabled ossfuzz && ! echo $CFLAGS | grep -q -- "-fsanitize=" && ! echo $CFLAGS | grep -q -- "-fcoverage-mapping" &&{ + add_cflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp -fno-omit-frame-pointer + add_ldflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp +} + +case "$toolchain" in + *-asan) + cc_default="${toolchain%-asan}" + add_cflags -fsanitize=address + add_ldflags -fsanitize=address + ;; + *-msan) + cc_default="${toolchain%-msan}" + add_cflags -fsanitize=memory -fsanitize-memory-track-origins + add_ldflags -fsanitize=memory + ;; + *-tsan) + cc_default="${toolchain%-tsan}" + add_cflags -fsanitize=thread + add_ldflags -fsanitize=thread + case "$toolchain" in + gcc-tsan) + add_cflags -fPIC + add_ldflags -fPIC + ;; + esac + ;; + *-usan) + cc_default="${toolchain%-usan}" + add_cflags -fsanitize=undefined + add_ldflags -fsanitize=undefined + ;; + valgrind-*) + target_exec_default="valgrind" + case "$toolchain" in + valgrind-massif) + target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc" + ;; + valgrind-memcheck) + target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" + ;; + esac + ;; + msvc) + # Check whether the current MSVC version needs the C99 converter. + # From MSVC 2013 (compiler major version 18) onwards, it does actually + # support enough of C99 to build ffmpeg. Default to the new + # behaviour if the regexp was unable to match anything, since this + # successfully parses the version number of existing supported + # versions that require the converter (MSVC 2010 and 2012). + cl_major_ver=$(cl.exe 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p') + if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then + cc_default="cl.exe" + cxx_default="cl.exe" + else + die "Unsupported MSVC version (2013 or newer required)" + fi + ld_default="$source_path/compat/windows/mslink" + nm_default="dumpbin.exe -symbols" + ar_default="lib.exe" + case "$arch" in + aarch64|arm64) + as_default="armasm64.exe" + ;; + arm*) + as_default="armasm.exe" + ;; + esac + target_os_default="win32" + # Use a relative path for TMPDIR. This makes sure all the + # ffconf temp files are written with a relative path, avoiding + # issues with msys/win32 path conversion for MSVC parameters + # such as -Fo or -out:. + TMPDIR=. + ;; + icl) + cc_default="icl" + ld_default="xilink" + nm_default="dumpbin -symbols" + ar_default="xilib" + target_os_default="win32" + TMPDIR=. + ;; + gcov) + add_cflags -fprofile-arcs -ftest-coverage + add_ldflags -fprofile-arcs -ftest-coverage + ;; + llvm-cov) + add_cflags -fprofile-arcs -ftest-coverage + add_ldflags --coverage + ;; + hardened) + add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + add_cflags -fno-strict-overflow -fstack-protector-all + add_ldflags -Wl,-z,relro -Wl,-z,now + add_cflags -fPIE + add_ldexeflags -fPIE -pie + ;; + ?*) + die "Unknown toolchain $toolchain" + ;; +esac + +if test -n "$cross_prefix"; then + test -n "$arch" && test -n "$target_os" || + die "Must specify target arch (--arch) and OS (--target-os) when cross-compiling" + enable cross_compile +fi + +set_default target_os +if test "$target_os" = android; then + cc_default="clang" +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}" +if ${cross_prefix}${ranlib_default} 2>&1 | grep -q "\-D "; then + ranlib_default="${cross_prefix}${ranlib_default} -D" +else + ranlib_default="${cross_prefix}${ranlib_default}" +fi +strip_default="${cross_prefix}${strip_default}" +windres_default="${cross_prefix}${windres_default}" + +sysinclude_default="${sysroot}/usr/include" + +if enabled cuda_sdk; then + warn "Option --enable-cuda-sdk is deprecated. Use --enable-cuda-nvcc instead." + enable cuda_nvcc +fi + +if enabled cuda_nvcc; then + nvcc_default="nvcc" + nvccflags_default="-gencode arch=compute_30,code=sm_30 -O2" +else + nvcc_default="clang" + nvccflags_default="--cuda-gpu-arch=sm_30 -O2" + NVCC_C="" +fi + +set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \ + target_exec x86asmexe nvcc +enabled cross_compile || host_cc_default=$cc +set_default host_cc + +pkg_config_fail_message="" +if ! $pkg_config --version >/dev/null 2>&1; then + warn "$pkg_config not found, library detection may fail." + pkg_config=false +elif is_in -static $cc $LDFLAGS && ! is_in --static $pkg_config $pkg_config_flags; then + pkg_config_fail_message=" +Note: When building a static binary, add --pkg-config-flags=\"--static\"." +fi + +if test $doxygen != $doxygen_default && \ + ! $doxygen --version >/dev/null 2>&1; then + warn "Specified doxygen \"$doxygen\" not found, API documentation will fail to build." +fi + +exesuf() { + case $1 in + mingw32*|mingw64*|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 [ -n "$tempprefix" ] ; then + mktemp(){ + tmpname="$tempprefix.${HOSTNAME}.${UID}" + echo "$tmpname" + mkdir "$tmpname" + } +elif ! test_cmd mktemp -u XXXXXX; then + # simple replacement for missing mktemp + # NOT SAFE FOR GENERAL USE + mktemp(){ + tmpname="${2%%XXX*}.${HOSTNAME}.${UID}.$$" + echo "$tmpname" + mkdir "$tmpname" + } +fi + +FFTMPDIR=$(mktemp -d "${TMPDIR}/ffconf.XXXXXXXX" 2> /dev/null) || + die "Unable to create temporary directory in $TMPDIR." + +tmpfile(){ + tmp="${FFTMPDIR}/test"$2 + (set -C; exec > $tmp) 2> /dev/null || + die "Unable to create temporary file in $FFTMPDIR." + eval $1=$tmp +} + +trap 'rm -rf -- "$FFTMPDIR"' EXIT +trap 'exit 2' INT + +tmpfile TMPASM .asm +tmpfile TMPC .c +tmpfile TMPCPP .cpp +tmpfile TMPE $EXESUF +tmpfile TMPH .h +tmpfile TMPM .m +tmpfile TMPCU .cu +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 '^GNU assembler'; then + true # no-op to avoid reading stdin in following checks + elif $_cc -v 2>&1 | grep -q '^gcc.*LLVM'; then + _type=llvm_gcc + gcc_extra_ver=$(expr "$($_cc --version 2>/dev/null | head -n1)" : '.*\((.*)\)') + _ident="llvm-gcc $($_cc -dumpversion 2>/dev/null) $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") + case $gcc_basever in + 2) ;; + 2.*) ;; + *) _depflags='-MMD -MF $(@:.o=.d) -MT $@' ;; + esac + if [ "$first" = true ]; then + case $gcc_basever in + 4.2*) + warn "gcc 4.2 is outdated and may miscompile FFmpeg. Please use a newer compiler." ;; + esac + 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' + _flags_filter=icc_flags + 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 --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler"; then + test -d "$sysroot" || die "No valid sysroot specified." + _type=armcc + _ident=$($_cc --vsn | grep -i build | head -n1 | sed 's/.*: //') + 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 -v 2>&1 | grep -q clang && ! $_cc -? > /dev/null 2>&1; then + _type=clang + _ident=$($_cc --version 2>/dev/null | head -n1) + _depflags='-MMD -MF $(@:.o=.d) -MT $@' + _cflags_speed='-O3' + _cflags_size='-Oz' + 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 2>&1 | grep -q 'Microsoft.*ARM.*Assembler'; then + _type=armasm + _ident=$($_cc | head -n1) + # 4509: "This form of conditional instruction is deprecated" + _flags="-nologo -ignore 4509" + _flags_filter=armasm_flags + elif $_cc 2>&1 | grep -q Intel; then + _type=icl + _ident=$($_cc 2>&1 | head -n1) + _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@' + # Not only is O3 broken on 13.x+ but it is slower on all previous + # versions (tested) as well. + _cflags_speed="-O2" + _cflags_size="-O1 -Oi" # -O1 without -Oi miscompiles stuff + if $_cc 2>&1 | grep -q Linker; then + _ld_o='-out:$@' + else + _ld_o='-Fe$@' + fi + _cc_o='-Fo$@' + _cc_e='-P' + _flags_filter=icl_flags + _ld_lib='lib%.a' + _ld_path='-libpath:' + # -Qdiag-error to make icl error when seeing certain unknown arguments + _flags='-nologo -Qdiag-error:4044,10157' + # -Qvec- -Qsimd- to prevent miscompilation, -GS, fp:precise for consistency + # with MSVC which enables it by default. + _cflags='-Qms0 -Qvec- -Qsimd- -GS -fp:precise' + disable stripping + elif $_cc -? 2>/dev/null | grep -q 'LLVM.*Linker'; then + # lld can emulate multiple different linkers; in ms link.exe mode, + # the -? parameter gives the help output which contains an identifyable + # string, while it gives an error in other modes. + _type=lld-link + # The link.exe mode doesn't have a switch for getting the version, + # but we can force it back to gnu mode and get the version from there. + _ident=$($_cc -flavor gnu --version 2>/dev/null) + _ld_o='-out:$@' + _flags_filter=msvc_flags + _ld_lib='lib%.a' + _ld_path='-libpath:' + elif $_cc -nologo- 2>&1 | grep -q Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; }; then + _type=msvc + _ident=$($_cc 2>&1 | head -n1 | tr -d '\r') + _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" + _cflags_noopt="-O1" + if $_cc -nologo- 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' + disable stripping + elif $_cc --version 2>/dev/null | grep -q ^cparser; then + _type=cparser + _ident=$($_cc --version | head -n1) + _depflags='-MMD' + _cflags_speed='-O4' + _cflags_size='-O2' + _flags_filter=cparser_flags + 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" "true" +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 +set_ccvars CXX + +probe_cc hostcc "$host_cc" +host_cflags_filter=$_flags_filter +host_cflags_speed=$_cflags_speed +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} +: ${objcc_default:=$cc} +: ${dep_cc_default:=$cc} +: ${ld_default:=$cc} +: ${host_ld_default:=$host_cc} +set_default ar as objcc dep_cc ld ln_s host_ld windres + +probe_cc as "$as" +asflags_filter=$_flags_filter +add_asflags $_flags $_cflags +set_ccvars AS + +probe_cc objcc "$objcc" +objcflags_filter=$_flags_filter +add_objcflags $_flags $_cflags +set_ccvars OBJC + +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 "\[D\] "; then + arflags="rcD" + ar_o='$@' +else + arflags="rc" + ar_o='$@' +fi + +add_cflags $extra_cflags +add_cxxflags $extra_cxxflags +add_objcflags $extra_objcflags +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" + ;; + 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) + ;; + clang) + check_native(){ + $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return + sed -n "/cc1.*-target-cpu /{ + s/.*-target-cpu \\([^ ]*\\).*/\\1/ + p + q + }" $TMPE + } + cpu=$(check_native -march) + ;; + 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*|iPhone*) + arch="arm" + ;; + mips*|IP*) + case "$arch" in + *el) + add_cppflags -EL + add_ldflags -EL + ;; + *eb) + add_cppflags -EB + add_ldflags -EB + ;; + esac + arch="mips" + ;; + parisc*|hppa*) + arch="parisc" + ;; + "Power Macintosh"|ppc*|powerpc*) + arch="ppc" + ;; + s390|s390x) + arch="s390" + ;; + sh4|sh) + arch="sh4" + ;; + sun4*|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() { + test_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 6KZ; then echo armv6zk + elif check_arm_arch 6ZK; then echo armv6zk + elif check_arm_arch 6T2; then echo armv6t2 + elif check_arm_arch 7; then echo armv7 + elif check_arm_arch 7A 7_A; then echo armv7-a + elif check_arm_arch 7S; then echo armv7-a + elif check_arm_arch 7R 7_R; then echo armv7-r + elif check_arm_arch 7M 7_M; then echo armv7-m + elif check_arm_arch 7EM 7E_M; then echo armv7-m + elif check_arm_arch 8A 8_A; then echo armv8-a + fi + } + + [ "$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 + disabled fast_unaligned || enable 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" + + if [ "$cpu" != "generic" ]; then + disable mips32r2 + disable mips32r5 + disable mips64r2 + disable mips32r6 + disable mips64r6 + disable loongson2 + disable loongson3 + + case $cpu in + 24kc|24kf*|24kec|34kc|1004kc|24kef*|34kf*|1004kf*|74kc|74kf) + enable mips32r2 + disable msa + ;; + p5600|i6400|p6600) + disable mipsdsp + disable mipsdspr2 + ;; + loongson*) + enable loongson2 + enable loongson3 + enable local_aligned + enable simd_align_16 + enable fast_64bit + enable fast_clz + enable fast_cmov + enable fast_unaligned + disable aligned_stack + disable mipsdsp + disable mipsdspr2 + # When gcc version less than 5.3.0, add -fno-expensive-optimizations flag. + if [ $cc == gcc ]; then + gcc_version=$(gcc -dumpversion) + if [ "$(echo "$gcc_version 5.3.0" | tr " " "\n" | sort -rV | head -n 1)" == "$gcc_version" ]; then + expensive_optimization_flag="" + else + expensive_optimization_flag="-fno-expensive-optimizations" + fi + fi + case $cpu in + loongson3*) + cpuflags="-march=loongson3a -mhard-float $expensive_optimization_flag" + ;; + loongson2e) + cpuflags="-march=loongson2e -mhard-float $expensive_optimization_flag" + ;; + loongson2f) + cpuflags="-march=loongson2f -mhard-float $expensive_optimization_flag" + ;; + esac + ;; + *) + # Unknown CPU. Disable everything. + warn "unknown CPU. Disabling all MIPS optimizations." + disable mipsfpu + disable mipsdsp + disable mipsdspr2 + disable msa + disable mmi + ;; + esac + + case $cpu in + 24kc) + disable mipsfpu + disable mipsdsp + disable mipsdspr2 + ;; + 24kf*) + disable mipsdsp + disable mipsdspr2 + ;; + 24kec|34kc|1004kc) + disable mipsfpu + disable mipsdspr2 + ;; + 24kef*|34kf*|1004kf*) + disable mipsdspr2 + ;; + 74kc) + disable mipsfpu + ;; + p5600) + enable mips32r5 + check_cflags "-mtune=p5600" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" + ;; + i6400) + enable mips64r6 + check_cflags "-mtune=i6400 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" && check_ldflags "-mabi=64" + ;; + p6600) + enable mips64r6 + check_cflags "-mtune=p6600 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" && check_ldflags "-mabi=64" + ;; + esac + else + # We do not disable anything. Is up to the user to disable the unwanted features. + warn 'generic cpu selected' + fi + +elif enabled ppc; then + + disable ldbrx + + 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" + disable vsx + ;; + 74*|ppc74*|powerpc74*) + cpuflags="-mcpu=7400" + disable vsx + ;; + g5|970|ppc970|powerpc970) + cpuflags="-mcpu=970" + disable vsx + ;; + power[3-6]*) + cpuflags="-mcpu=$cpu" + disable vsx + ;; + power[7-8]*) + cpuflags="-mcpu=$cpu" + ;; + cell) + cpuflags="-mcpu=cell" + enable ldbrx + disable vsx + ;; + e500mc) + cpuflags="-mcpu=e500mc" + disable altivec + ;; + e500v2) + cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double" + disable altivec + disable dcbzl + ;; + e500) + cpuflags="-mcpu=8540 -mhard-float" + disable altivec + disable dcbzl + ;; + esac + +elif enabled sparc; then + + case $cpu in + cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789]) + cpuflags="-mcpu=$cpu" + ;; + ultrasparc*|niagara[234]) + cpuflags="-mcpu=$cpu" + ;; + esac + +elif enabled x86; then + + case $cpu in + i[345]86|pentium) + cpuflags="-march=$cpu" + disable i686 + disable mmx + ;; + # targets that do NOT support nopl and conditional mov (cmov) + pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) + cpuflags="-march=$cpu" + disable i686 + ;; + # targets that do support nopl and conditional mov (cmov) + i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx\ + |core*|atom|bonnell|nehalem|westmere|silvermont|sandybridge|ivybridge|haswell|broadwell|skylake*|knl\ + |amdfam10|barcelona|b[dt]ver*|znver*) + cpuflags="-march=$cpu" + enable i686 + enable fast_cmov + ;; + # targets that do support conditional mov but on which it's slow + pentium4|pentium4m|prescott|nocona) + cpuflags="-march=$cpu" + enable i686 + disable fast_cmov + ;; + esac + +fi + +if [ "$cpu" != generic ]; then + add_cflags $cpuflags + add_asflags $cpuflags + test "$cc_type" = "$ld_type" && add_ldflags $cpuflags +fi + +# compiler sanity check +test_exec <= 201112L" && + add_cflags -std=c11 || + check_cflags -std=c99 + +check_cppflags -D_FILE_OFFSET_BITS=64 +check_cppflags -D_LARGEFILE_SOURCE + +add_host_cppflags -D_ISOC99_SOURCE +check_host_cflags -std=c99 +check_host_cflags -Wall +check_host_cflags $host_cflags_speed + +check_64bit(){ + arch32=$1 + arch64=$2 + expr=${3:-'sizeof(void *) > 4'} + test_code cc "" "int test[2*($expr) - 1]" && + subarch=$arch64 || subarch=$arch32 + enable $subarch +} + +case "$arch" in + aarch64|alpha|ia64) + enabled shared && enable_weak pic + ;; + mips) + check_64bit mips mips64 '_MIPS_SIM > 1' + enabled shared && enable_weak pic + ;; + parisc) + check_64bit parisc parisc64 + enabled shared && enable_weak pic + ;; + ppc) + check_64bit ppc ppc64 + enabled shared && enable_weak pic + ;; + s390) + check_64bit s390 s390x + enabled shared && enable_weak pic + ;; + sparc) + check_64bit sparc sparc64 + enabled shared && enable_weak pic + ;; + x86) + check_64bit x86_32 x86_64 + # Treat x32 as x64 for now. Note it also needs pic if shared + test "$subarch" = "x86_32" && test_cpp_condition stddef.h 'defined(__x86_64__)' && + subarch=x86_64 && enable x86_64 && disable x86_32 + if enabled x86_64; then + enabled shared && enable_weak pic + objformat=elf64 + fi + ;; +esac + +# OS specific +case $target_os in + aix) + SHFLAGS=-shared + add_cppflags '-I\$(SRC_PATH)/compat/aix' + enabled shared && add_ldflags -Wl,-brtl + arflags='-Xany -r -c' + striptype="" + ;; + android) + disable symver + enable section_data_rel_ro + add_cflags -fPIE + add_ldexeflags -fPIE -pie + SLIB_INSTALL_NAME='$(SLIBNAME)' + SLIB_INSTALL_LINKS= + SHFLAGS='-shared -Wl,-soname,$(SLIBNAME)' + ;; + haiku) + prefix_default="/boot/common" + network_extralibs="-lnetwork" + host_extralibs= + ;; + sunos) + SHFLAGS='-shared -Wl,-h,$$(@F)' + enabled x86 && append SHFLAGS -mimpure-text + network_extralibs="-lsocket -lnsl" + add_cppflags -D__EXTENSIONS__ + # When using suncc to build, the Solaris linker will mark + # an executable with each instruction set encountered by + # the Solaris assembler. As our libraries contain their own + # guards for processor-specific code, instead suppress + # generation of the HWCAPS ELF section on Solaris x86 only. + enabled_all suncc x86 && + echo "hwcap_1 = OVERRIDE;" > mapfile && + add_ldflags -Wl,-M,mapfile + nm_default='nm -P -g' + striptype="" + version_script='-M' + VERSION_SCRIPT_POSTPROCESS_CMD='perl $(SRC_PATH)/compat/solaris/make_sunver.pl - $(OBJS)' + ;; + netbsd) + disable symver + oss_indev_extralibs="-lossaudio" + oss_outdev_extralibs="-lossaudio" + enabled gcc || check_ldflags -Wl,-zmuldefs + ;; + openbsd|bitrig) + disable symver + striptype="" + 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) + enabled ppc && add_asflags -force_cpusubtype_ALL + install_name_dir_default='$(SHLIBDIR)' + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(INSTALL_NAME_DIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress + strip="${strip} -x" + add_ldflags -Wl,-dynamic,-search_paths_first + check_cflags -Werror=partial-availability + SLIBSUF=".dylib" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' + enabled x86_64 && objformat="macho64" || objformat="macho32" + enabled_any pic shared x86_64 || + { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; } + check_headers dispatch/dispatch.h && + add_cppflags '-I\$(SRC_PATH)/compat/dispatch_semaphore' + if test -n "$sysroot"; then + is_in -isysroot $cc $CPPFLAGS $CFLAGS || check_cppflags -isysroot $sysroot + is_in -isysroot $ld $LDFLAGS || check_ldflags -isysroot $sysroot + fi + version_script='-exported_symbols_list' + VERSION_SCRIPT_POSTPROCESS_CMD='tr " " "\n" | sed -n /global:/,/local:/p | grep ";" | tr ";" "\n" | sed -E "s/(.+)/_\1/g" | sed -E "s/(.+[^*])$$$$/\1*/"' + ;; + msys*) + die "Native MSYS builds are discouraged, please use the MINGW environment." + ;; + mingw32*|mingw64*) + target_os=mingw32 + LIBTARGET=i386 + if enabled x86_64; then + LIBTARGET="i386:x86-64" + elif enabled arm; then + LIBTARGET="arm" + elif enabled aarch64; then + LIBTARGET="arm64" + fi + if enabled shared; then + # Cannot build both shared and static libs when using dllimport. + disable static + fi + enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres + enabled x86_32 && check_ldflags -Wl,--large-address-aware + shlibdir_default="$bindir_default" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + if test_cmd lib.exe -list; then + SLIB_EXTRA_CMD=-'lib.exe -nologo -machine:$(LIBTARGET) -def:$$(@:$(SLIBSUF)=.def) -out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' + if enabled x86_64; then + LIBTARGET=x64 + fi + else + SLIB_EXTRA_CMD=-'$(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)' + SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' + SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--disable-auto-image-base $$(@:$(SLIBSUF)=.def)' + enabled x86_64 && objformat="win64" || objformat="win32" + dlltool="${cross_prefix}dlltool" + ranlib=: + enable dos_paths + check_ldflags -Wl,--nxcompat,--dynamicbase + # Lets work around some stupidity in binutils. + # ld will strip relocations from executables even though we need them + # for dynamicbase (ASLR). Using -pie does retain the reloc section + # however ld then forgets what the entry point should be (oops) so we + # have to manually (re)set it. + if enabled x86_32; then + disabled debug && add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup + elif enabled x86_64; then + disabled debug && add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup + check_ldflags -Wl,--high-entropy-va # binutils 2.25 + # Set image base >4GB for extra entropy with HEASLR + add_ldexeflags -Wl,--image-base,0x140000000 + append SHFLAGS -Wl,--image-base,0x180000000 + fi + ;; + win32|win64) + disable symver + if enabled shared; then + # Link to the import library instead of the normal static library + # for shared libs. + LD_LIB='%.lib' + # Cannot build both shared and static libs with MSVC or icl. + disable static + fi + enabled x86_32 && check_ldflags -LARGEADDRESSAWARE + 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='EXTERN_PREFIX="$(EXTERN_PREFIX)" $(SRC_PATH)/compat/windows/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)' + enabled x86_64 && objformat="win64" || 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' + enabled x86_64 && objformat="win64" || objformat="win32" + enable dos_paths + enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + ;; + *-dos|freedos|opendos) + network_extralibs="-lsocket" + objformat="coff" + enable dos_paths + ;; + linux) + enable section_data_rel_ro + enabled_any arm aarch64 && enable_weak linux_perf + ;; + irix*) + target_os=irix + ranlib="echo ignoring ranlib" + ;; + os/2*) + strip="lxlite -CS" + striptype="" + objformat="aout" + add_cppflags -D_GNU_SOURCE + add_ldflags -Zomf -Zbin-files -Zargs-wild -Zhigh-mem -Zmap + SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' + LIBSUF="_s.a" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(FULLNAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' + SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(FULLNAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(FULLNAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(FULLNAME).def; \ + echo EXPORTS >> $(SUBDIR)$(FULLNAME).def; \ + emxexp $(OBJS) >> $(SUBDIR)$(FULLNAME).def' + SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.a $(SUBDIR)$(FULLNAME).def; \ + emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.lib $(SUBDIR)$(FULLNAME).def;' + SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' + SLIB_INSTALL_LINKS= + SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(FULLNAME)_dll.a $(LIBPREF)$(FULLNAME)_dll.lib' + enable dos_paths + enable_weak os2threads + ;; + 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 + ;; + minix) + ;; + none) + ;; + *) + die "Unknown OS '$target_os'." + ;; +esac + +# test if creating links works +link_dest=$(mktemp -u $TMPDIR/dest_XXXXXXXX) +link_name=$(mktemp -u $TMPDIR/name_XXXXXXXX) +mkdir "$link_dest" +$ln_s "$link_dest" "$link_name" +touch "$link_dest/test_file" +if [ "$source_path" != "." ] && [ "$source_path" != "src" ] && ([ ! -d src ] || [ -L src ]) && [ -e "$link_name/test_file" ]; then + # create link to source path + [ -e src ] && rm src + $ln_s "$source_path" src + source_link=src +else + # creating directory links doesn't work + # fall back to using the full source path + source_link="$source_path" +fi +# cleanup +rm -r "$link_dest" +rm -r "$link_name" + +# determine libc flavour + +probe_libc(){ + pfx=$1 + pfx_no_=${pfx%_} + # uclibc defines __GLIBC__, so it needs to be checked before glibc. + if test_${pfx}cpp_condition features.h "defined __UCLIBC__"; then + eval ${pfx}libc_type=uclibc + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition features.h "defined __GLIBC__"; then + eval ${pfx}libc_type=glibc + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + # MinGW headers can be installed on Cygwin, so check for newlib first. + elif test_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then + eval ${pfx}libc_type=newlib + add_${pfx}cppflags -U__STRICT_ANSI__ -D_XOPEN_SOURCE=600 + # MinGW64 is backwards compatible with MinGW32, so check for it first. + elif test_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then + eval ${pfx}libc_type=mingw64 + if test_${pfx}cpp_condition _mingw.h "__MINGW64_VERSION_MAJOR < 3"; then + add_compat msvcrt/snprintf.o + add_cflags "-include $source_path/compat/msvcrt/snprintf.h" + fi + add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 + eval test \$${pfx_no_}cc_type = "gcc" && + add_${pfx}cppflags -D__printf__=__gnu_printf__ + test_${pfx}cpp_condition windows.h "!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600" && + add_${pfx}cppflags -D_WIN32_WINNT=0x0600 + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION" || + test_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then + eval ${pfx}libc_type=mingw32 + test_${pfx}cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \ + (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || + die "ERROR: MinGW32 runtime version must be >= 3.15." + add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 + test_${pfx}cpp_condition _mingw.h "__MSVCRT_VERSION__ < 0x0700" && + add_${pfx}cppflags -D__MSVCRT_VERSION__=0x0700 + test_${pfx}cpp_condition windows.h "!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600" && + add_${pfx}cppflags -D_WIN32_WINNT=0x0600 + eval test \$${pfx_no_}cc_type = "gcc" && + add_${pfx}cppflags -D__printf__=__gnu_printf__ + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then + eval ${pfx}libc_type=msvcrt + if test_${pfx}cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION < 14"; then + if [ "$pfx" = host_ ]; then + add_host_cppflags -Dsnprintf=_snprintf + else + add_compat strtod.o strtod=avpriv_strtod + add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ + _snprintf=avpriv_snprintf \ + vsnprintf=avpriv_vsnprintf + fi + fi + add_${pfx}cppflags -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS + # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to + # 0x601 by default unless something else is set by the user. + # This can easily lead to us detecting functions only present + # in such new versions and producing binaries requiring windows 7.0. + # Therefore explicitly set the default to Vista unless the user has + # set something else on the command line. + # Don't do this if WINAPI_FAMILY is set and is set to a non-desktop + # family. For these cases, configure is free to use any functions + # found in the SDK headers by default. (Alternatively, we could force + # _WIN32_WINNT to 0x0602 in that case.) + test_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" || + { test_${pfx}cpp < +#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#error not desktop +#endif +#endif +EOF + if [ "$pfx" = "" ]; then + check_func strtoll || add_cflags -Dstrtoll=_strtoi64 + check_func strtoull || add_cflags -Dstrtoull=_strtoui64 + fi + elif test_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then + eval ${pfx}libc_type=klibc + elif test_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then + eval ${pfx}libc_type=bionic + elif test_${pfx}cpp_condition sys/brand.h "defined LABELED_BRAND_NAME"; then + eval ${pfx}libc_type=solaris + add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition sys/version.h "defined __DJGPP__"; then + eval ${pfx}libc_type=djgpp + add_cppflags -U__STRICT_ANSI__ + add_cflags "-include $source_path/compat/djgpp/math.h" + add_compat djgpp/math.o + fi + test_${pfx}cc < +void *v = localtime_r; +EOF +test "$?" != 0 && test_${pfx}cc -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 < +void *v = localtime_r; +EOF + + eval test -n "\${${pfx}libc_type}" && enable ${pfx}libc_${libc_type} +} + +probe_libc +probe_libc host_ + +# hacks for compiler/libc/os combinations + +case $libc_type in + bionic) + add_compat strtod.o strtod=avpriv_strtod + ;; +esac + +check_compile_assert flt_lim "float.h limits.h" "DBL_MAX == (double)DBL_MAX" || + add_cppflags '-I\$(SRC_PATH)/compat/float' + +test_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic + +set_default libdir +: ${shlibdir_default:="$libdir"} +: ${pkgconfigdir_default:="$libdir/pkgconfig"} + +set_default $PATHS_LIST +set_default nm + +disabled optimizations || enabled ossfuzz || check_cflags -fomit-frame-pointer + +enable_weak_pic() { + disabled pic && return + enable pic + add_cppflags -DPIC + case "$target_os" in + mingw*|cygwin*|win*) + ;; + *) + add_cflags -fPIC + add_asflags -fPIC + ;; + esac +} + +enabled pic && enable_weak_pic + +test_cc <= 30"; then + : + elif ! test_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__" && [ $target_os != darwin ]; then + case "${cross_prefix:-$cc}" in + *hardfloat*) enable vfp_args; fpabi=vfp ;; + *) check_ld "cc" vfp_args <= 9.0.18.0" "$ffnv_hdr_list" "" || \ + check_pkg_config ffnvcodec "ffnvcodec >= 8.2.15.8 ffnvcodec < 8.3" "$ffnv_hdr_list" "" || \ + check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.9 ffnvcodec < 8.2" "$ffnv_hdr_list" "" || \ + check_pkg_config ffnvcodec "ffnvcodec >= 8.0.14.9 ffnvcodec < 8.1" "$ffnv_hdr_list" "" +fi + +check_cpp_condition winrt windows.h "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" + +if ! disabled w32threads && ! enabled pthreads; then + check_func_headers "windows.h process.h" _beginthreadex && + check_type "windows.h" CONDITION_VARIABLE && + check_type "windows.h" INIT_ONCE && + enable w32threads || disable w32threads + if ! enabled w32threads && enabled winrt; then + check_func_headers "windows.h" CreateThread && + enable w32threads || disable w32threads + fi +fi + +# check for some common methods of building with pthread support +# do this before the optional library checks as some of them require pthreads +if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then + if check_lib pthreads pthread.h pthread_join -pthread && + check_lib pthreads pthread.h pthread_create -pthread; then + add_cflags -pthread + elif check_lib pthreads pthread.h pthread_join -pthreads && + check_lib pthreads pthread.h pthread_create -pthreads; then + add_cflags -pthreads + elif check_lib pthreads pthread.h pthread_join -ldl -pthread && + check_lib pthreads pthread.h pthread_create -ldl -pthread; then + add_cflags -ldl -pthread + elif check_lib pthreads pthread.h pthread_join -lpthreadGC2 && + check_lib pthreads pthread.h pthread_create -lpthreadGC2; then + : + elif check_lib pthreads pthread.h pthread_join -lpthread && + check_lib pthreads pthread.h pthread_create -lpthread; then + : + elif check_func pthread_join && check_func pthread_create; then + enable pthreads + fi + check_cc pthreads "pthread.h" "static pthread_mutex_t atomic_lock = PTHREAD_MUTEX_INITIALIZER" + + if enabled pthreads; then + check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0); sem_timedwait(s,0); sem_destroy(s)" $pthreads_extralibs + check_func pthread_cancel $pthreads_extralibs + fi +fi + +enabled zlib && { check_pkg_config zlib zlib "zlib.h" zlibVersion || + check_lib zlib zlib.h zlibVersion -lz; } +enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2 +enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma + +# On some systems dynamic loading requires no extra linker flags +check_lib libdl dlfcn.h "dlopen dlsym" || check_lib libdl dlfcn.h "dlopen dlsym" -ldl + +check_lib libm math.h sin -lm + +atan2f_args=2 +copysign_args=2 +hypot_args=2 +ldexpf_args=2 +powf_args=2 + +for func in $MATH_FUNCS; do + eval check_mathfunc $func \${${func}_args:-1} $libm_extralibs +done + +for func in $COMPLEX_FUNCS; do + eval check_complexfunc $func \${${func}_args:-1} +done + +# these are off by default, so fail if requested and not available +enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; } +enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint +enabled decklink && { require_headers DeckLinkAPI.h && + { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a090500" || die "ERROR: Decklink API version must be >= 10.9.5."; } } +enabled frei0r && require_headers "frei0r.h dlfcn.h" +enabled gmp && require gmp gmp.h mpz_export -lgmp +enabled gnutls && require_pkg_config gnutls gnutls gnutls/gnutls.h gnutls_global_init +enabled jni && { [ $target_os = "android" ] && check_headers jni.h && enabled pthreads || die "ERROR: jni not found"; } +enabled ladspa && require_headers "ladspa.h dlfcn.h" +enabled libaom && require_pkg_config libaom "aom >= 1.0.0" aom/aom_codec.h aom_codec_version +enabled libaribb24 && { check_pkg_config libaribb24 "aribb24 > 1.0.3" "aribb24/aribb24.h" arib_instance_new || + { enabled gpl && require_pkg_config libaribb24 aribb24 "aribb24/aribb24.h" arib_instance_new; } || + die "ERROR: libaribb24 requires version higher than 1.0.3 or --enable-gpl."; } +enabled lv2 && require_pkg_config lv2 lilv-0 "lilv/lilv.h" lilv_world_new +enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883 +enabled libass && require_pkg_config libass libass ass/ass.h ass_library_init +enabled libbluray && require_pkg_config libbluray libbluray libbluray/bluray.h bd_open +enabled libbs2b && require_pkg_config libbs2b libbs2b bs2b.h bs2b_open +enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && + { check_lib libcelt 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 libcaca caca caca.h caca_create_canvas +enabled libcodec2 && require libcodec2 codec2/codec2.h codec2_create -lcodec2 +enabled libdav1d && require_pkg_config libdav1d "dav1d >= 0.2.1" "dav1d/dav1d.h" dav1d_version +enabled libdavs2 && require_pkg_config libdavs2 "davs2 >= 1.6.0" davs2.h davs2_decoder_open +enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 dc1394/dc1394.h dc1394_new +enabled libdrm && require_pkg_config libdrm libdrm xf86drm.h drmGetVersion +enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || + { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && + warn "using libfdk without pkg-config"; } } +flite_extralibs="-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 && require libflite "flite/flite.h" flite_init $flite_extralibs +enabled fontconfig && enable libfontconfig +enabled libfontconfig && require_pkg_config libfontconfig fontconfig "fontconfig/fontconfig.h" FcInit +enabled libfreetype && require_pkg_config libfreetype freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType +enabled libfribidi && require_pkg_config libfribidi fribidi fribidi.h fribidi_version_info +enabled libgme && { check_pkg_config libgme libgme gme/gme.h gme_new_emu || + require libgme gme/gme.h gme_new_emu -lgme -lstdc++; } +enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do + check_lib libgsm "${gsm_hdr}" gsm_create -lgsm && break; + done || die "ERROR: libgsm not found"; } +enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc $pthreads_extralibs +enabled libklvanc && require libklvanc libklvanc/vanc.h klvanc_context_create -lklvanc +enabled libkvazaar && require_pkg_config libkvazaar "kvazaar >= 0.8.1" kvazaar.h kvz_api_get +enabled liblensfun && require_pkg_config liblensfun lensfun lensfun.h lf_db_new +# While it may appear that require is being used as a pkg-config +# fallback for libmfx, it is actually being used to detect a different +# installation route altogether. If libmfx is installed via the Intel +# Media SDK or Intel Media Server Studio, these don't come with +# pkg-config support. Instead, users should make sure that the build +# can find the libraries and headers through other means. +enabled libmfx && { check_pkg_config libmfx libmfx "mfx/mfxvideo.h" MFXInit || + { require libmfx "mfx/mfxvideo.h" MFXInit "-llibmfx $advapi32_extralibs" && warn "using libmfx without pkg-config"; } } +enabled libmodplug && require_pkg_config libmodplug libmodplug libmodplug/modplug.h ModPlug_Load +enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs +enabled libmysofa && { check_pkg_config libmysofa libmysofa mysofa.h mysofa_load || + require libmysofa mysofa.h mysofa_load -lmysofa $zlib_extralibs; } +enabled libnpp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc -lnppidei || + check_lib libnpp npp.h nppGetLibVersion -lnppi -lnppc -lnppidei || + die "ERROR: libnpp not found"; } +enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb +enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb +enabled libopencv && { check_headers opencv2/core/core_c.h && + { check_pkg_config libopencv opencv opencv2/core/core_c.h cvCreateImageHeader || + require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || + require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } +enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion +enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || + { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } +enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" +enabled libopus && { + enabled libopus_decoder && { + require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create + } + enabled libopus_encoder && { + require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create + } +} +enabled libpulse && require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new +enabled librsvg && require_pkg_config librsvg librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo +enabled librtmp && require_pkg_config librtmp librtmp librtmp/rtmp.h RTMP_Socket +enabled librubberband && require_pkg_config librubberband "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new -lstdc++ && append librubberband_extralibs "-lstdc++" +enabled libshine && require_pkg_config libshine shine shine/layer3.h shine_encode_buffer +enabled libsmbclient && { check_pkg_config libsmbclient smbclient libsmbclient.h smbc_init || + require libsmbclient libsmbclient.h smbc_init -lsmbclient; } +enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++ +enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr +enabled libssh && require_pkg_config libssh libssh libssh/sftp.h sftp_init +enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init +enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket +enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow +enabled libtesseract && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate +enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg +enabled libtls && require_pkg_config libtls libtls tls.h tls_configure +enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame && + { check_lib libtwolame twolame.h twolame_encode_buffer_float32_interleaved -ltwolame || + die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } +enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl +enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit +enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 1.3.9" libvmaf.h compute_vmaf +enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc +enabled libvorbis && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init && + require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init + +enabled libvpx && { + enabled libvpx_vp8_decoder && { + check_pkg_config libvpx_vp8_decoder "vpx >= 1.4.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp8_dx || + check_lib libvpx_vp8_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp8_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + enabled libvpx_vp8_encoder && { + check_pkg_config libvpx_vp8_encoder "vpx >= 1.4.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp8_cx || + check_lib libvpx_vp8_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp8_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + enabled libvpx_vp9_decoder && { + check_pkg_config libvpx_vp9_decoder "vpx >= 1.4.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp9_dx || + check_lib libvpx_vp9_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + enabled libvpx_vp9_encoder && { + check_pkg_config libvpx_vp9_encoder "vpx >= 1.4.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp9_cx || + check_lib libvpx_vp9_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + if disabled_all libvpx_vp8_decoder libvpx_vp9_decoder libvpx_vp8_encoder libvpx_vp9_encoder; then + die "libvpx enabled but no supported decoders found" + fi +} + +enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack +enabled libwebp && { + enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion + enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; } +enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode || + { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs" && + warn "using libx264 without pkg-config"; } } && + require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && + check_cpp_condition libx262 x264.h "X264_MPEG2" +enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get && + require_cpp_condition libx265 x265.h "X265_BUILD >= 68" +enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" +enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get +enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore +enabled libzimg && require_pkg_config libzimg "zimg >= 2.7.0" zimg.h zimg_get_api_version +enabled libzmq && require_pkg_config libzmq libzmq zmq.h zmq_ctx_new +enabled libzvbi && require_pkg_config libzvbi zvbi-0.2 libzvbi.h vbi_decoder_new && + { test_cpp_condition libzvbi.h "VBI_VERSION_MAJOR > 0 || VBI_VERSION_MINOR > 2 || VBI_VERSION_MINOR == 2 && VBI_VERSION_MICRO >= 28" || + enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; } +enabled libxml2 && require_pkg_config libxml2 libxml-2.0 libxml2/libxml/xmlversion.h xmlCheckVersion +enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt.h mbedtls_x509_crt_init || + check_pkg_config mbedtls mbedtls mbedtls/ssl.h mbedtls_ssl_init || + check_lib mbedtls mbedtls/ssl.h mbedtls_ssl_init -lmbedtls -lmbedx509 -lmbedcrypto || + die "ERROR: mbedTLS not found"; } +enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; } +enabled mmal && { check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host || + { ! enabled cross_compile && + add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline && + add_ldflags -L/opt/vc/lib/ && + check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host; } || + die "ERROR: mmal not found" && + check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; } +enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do + check_lib openal 'AL/al.h' alGetError "${al_extralibs}" && break; done } || + die "ERROR: openal not found"; } && + { test_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 opencl && { check_pkg_config opencl OpenCL CL/cl.h clEnqueueNDRangeKernel || + check_lib opencl OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL || + check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL || + die "ERROR: opencl not found"; } && + { test_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" || + test_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" || + die "ERROR: opencl must be installed and version must be 1.2 or compatible"; } +enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL" || + check_lib opengl windows.h wglGetProcAddress "-lopengl32 -lgdi32" || + check_lib opengl OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" || + check_lib opengl ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" || + die "ERROR: opengl not found." + } +enabled omx && require_headers OMX_Core.h +enabled omx_rpi && { check_headers OMX_Core.h || + { ! enabled cross_compile && add_cflags -isystem/opt/vc/include/IL && check_headers OMX_Core.h ; } || + die "ERROR: OpenMAX IL headers not found"; } && enable omx +enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl || + check_pkg_config openssl openssl openssl/ssl.h SSL_library_init || + check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto || + check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 || + check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || + die "ERROR: openssl not found"; } +enabled pocketsphinx && require_pkg_config pocketsphinx pocketsphinx pocketsphinx/pocketsphinx.h ps_init +enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create && + require_pkg_config rockchip_mpp "rockchip_mpp >= 1.3.7" rockchip/rk_mpi.h mpp_create && + { enabled libdrm || + die "ERROR: rkmpp requires --enable-libdrm"; } + } +enabled vapoursynth && require_pkg_config vapoursynth "vapoursynth-script >= 42" VSScript.h vsscript_init + + +if enabled gcrypt; then + GCRYPT_CONFIG="${cross_prefix}libgcrypt-config" + if "${GCRYPT_CONFIG}" --version > /dev/null 2>&1; then + gcrypt_cflags=$("${GCRYPT_CONFIG}" --cflags) + gcrypt_extralibs=$("${GCRYPT_CONFIG}" --libs) + check_func_headers gcrypt.h gcry_mpi_new $gcrypt_cflags $gcrypt_extralibs || + die "ERROR: gcrypt not found" + add_cflags $gcrypt_cflags + else + require gcrypt gcrypt.h gcry_mpi_new -lgcrypt + fi +fi + +if enabled sdl2; then + SDL2_CONFIG="${cross_prefix}sdl2-config" + test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent + if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then + sdl2_cflags=$("${SDL2_CONFIG}" --cflags) + sdl2_extralibs=$("${SDL2_CONFIG}" --libs) + test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x020001" $sdl2_cflags && + test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x020100" $sdl2_cflags && + check_func_headers SDL_events.h SDL_PollEvent $sdl2_extralibs $sdl2_cflags && + enable sdl2 + fi + if test $target_os = "mingw32"; then + sdl2_extralibs=$(filter_out '-mwindows' $sdl2_extralibs) + fi +fi + +if enabled decklink; then + case $target_os in + mingw32*|mingw64*|win32|win64) + decklink_outdev_extralibs="$decklink_outdev_extralibs -lole32 -loleaut32" + decklink_indev_extralibs="$decklink_indev_extralibs -lole32 -loleaut32" + ;; + esac +fi + +enabled securetransport && + check_func SecIdentityCreate "-Wl,-framework,CoreFoundation -Wl,-framework,Security" && + check_lib securetransport "Security/SecureTransport.h Security/Security.h" "SSLCreateContext" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" || + disable securetransport + +enabled securetransport && + check_func SecItemImport "-Wl,-framework,CoreFoundation -Wl,-framework,Security" + +enabled schannel && + check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 && + test_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && + schannel_extralibs="-lsecur32" || + disable schannel + +makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo +enabled makeinfo \ + && [ 0$(makeinfo --version | grep "texinfo" | sed 's/.*texinfo[^0-9]*\([0-9]*\)\..*/\1/') -ge 5 ] \ + && enable makeinfo_html || disable makeinfo_html +disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html +perl -v > /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 V4L2 codecs available in the API +check_headers linux/fb.h +check_headers linux/videodev2.h +test_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete +check_cc v4l2_m2m linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_VIDEO_M2M | V4L2_BUF_FLAG_LAST;" +check_cc vc1_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VC1_ANNEX_G;" +check_cc mpeg1_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG1;" +check_cc mpeg2_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2;" +check_cc mpeg4_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG4;" +check_cc hevc_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_HEVC;" +check_cc h263_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_H263;" +check_cc h264_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_H264;" +check_cc vp8_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP8;" +check_cc vp9_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;" + +check_headers sys/videoio.h +test_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete + +check_lib user32 "windows.h winuser.h" GetShellWindow -luser32 +check_lib vfw32 "windows.h vfw.h" capCreateCaptureWindow -lvfw32 +# check that WM_CAP_DRIVER_CONNECT is defined to the proper value +# w32api 3.12 had it defined wrong +check_cpp_condition vfwcap_defines vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" + +check_type "dshow.h" IBaseFilter + +# check for ioctl_meteor.h, ioctl_bt848.h and alternatives +check_headers "dev/bktr/ioctl_meteor.h dev/bktr/ioctl_bt848.h" || + check_headers "machine/ioctl_meteor.h machine/ioctl_bt848.h" || + check_headers "dev/video/meteor/ioctl_meteor.h dev/video/bktr/ioctl_bt848.h" || + check_headers "dev/ic/bt8xx.h" + +if check_struct sys/soundcard.h audio_buf_info bytes; then + enable_sanitized sys/soundcard.h +else + test_cc -D__BSD_VISIBLE -D__XSI_VISIBLE < + audio_buf_info abc; +EOF +fi + +enabled alsa && check_pkg_config alsa alsa "alsa/asoundlib.h" snd_pcm_htimestamp || + check_lib alsa alsa/asoundlib.h snd_pcm_htimestamp -lasound + +enabled libjack && + require_pkg_config libjack jack jack/jack.h jack_port_get_latency_range + +enabled sndio && check_lib sndio sndio.h sio_open -lsndio + +if enabled libcdio; then + check_pkg_config libcdio libcdio_paranoia "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open || + check_pkg_config libcdio libcdio_paranoia "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open || + check_lib libcdio "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || + check_lib libcdio "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || + die "ERROR: No usable libcdio/cdparanoia found" +fi + +enabled libxcb && check_pkg_config libxcb "xcb >= 1.4" xcb/xcb.h xcb_connect || + disable libxcb_shm libxcb_shape libxcb_xfixes + +if enabled libxcb; then + enabled libxcb_shm && check_pkg_config libxcb_shm xcb-shm xcb/shm.h xcb_shm_attach + enabled libxcb_shape && check_pkg_config libxcb_shape xcb-shape xcb/shape.h xcb_shape_get_rectangles + enabled libxcb_xfixes && check_pkg_config libxcb_xfixes xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image +fi + +check_func_headers "windows.h" CreateDIBSection "$gdigrab_indev_extralibs" + +# d3d11va requires linking directly to dxgi and d3d11 if not building for +# the desktop api partition +test_cpp < +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#error desktop, not uwp +#else +// WINAPI_FAMILY_APP, WINAPI_FAMILY_PHONE_APP => UWP +#endif +#else +#error no family set +#endif +EOF + +enabled vaapi && + check_pkg_config vaapi "libva >= 0.35.0" "va/va.h" vaInitialize + +if enabled vaapi; then + check_pkg_config vaapi_drm "libva-drm" "va/va_drm.h" vaGetDisplayDRM + + if enabled xlib; then + check_pkg_config vaapi_x11 "libva-x11" "va/va_x11.h" vaGetDisplay + fi + + check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)" + + check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC" + check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth + check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags + check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC" + check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG" + check_type "va/va.h va/va_enc_vp8.h" "VAEncPictureParameterBufferVP8" + check_type "va/va.h va/va_enc_vp9.h" "VAEncPictureParameterBufferVP9" +fi + +if enabled_all opencl libdrm ; then + check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" && + enable opencl_drm_beignet + check_func_headers "CL/cl_ext.h" clImportMemoryARM && + enable opencl_drm_arm +fi + +if enabled_all opencl vaapi ; then + if enabled opencl_drm_beignet ; then + enable opencl_vaapi_beignet + else + check_type "CL/cl.h CL/cl_va_api_media_sharing_intel.h" "clCreateFromVA_APIMediaSurfaceINTEL_fn" && + enable opencl_vaapi_intel_media + fi +fi + +if enabled_all opencl dxva2 ; then + check_type "CL/cl_dx9_media_sharing.h" cl_dx9_surface_info_khr && + enable opencl_dxva2 +fi + +if enabled_all opencl d3d11va ; then + check_type "CL/cl_d3d11.h" clGetDeviceIDsFromD3D11KHR_fn && + enable opencl_d3d11 +fi + +enabled vdpau && + check_cpp_condition vdpau vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" + +enabled vdpau && + check_lib vdpau_x11 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau -lX11 + +enabled crystalhd && check_lib crystalhd "stdint.h libcrystalhd/libcrystalhd_if.h" DtsCrystalHDVersion -lcrystalhd + +if enabled x86; then + case $target_os in + mingw32*|mingw64*|win32|win64|linux|cygwin*) + ;; + *) + disable ffnvcodec cuvid nvdec nvenc + ;; + esac +elif enabled ppc64 && ! enabled bigendian; then + case $target_os in + linux) + ;; + *) + disable ffnvcodec cuvid nvdec nvenc + ;; + esac +else + disable ffnvcodec cuvid nvdec nvenc +fi + +enabled ffnvcodec && enable cuda + +enabled nvenc && + test_cc -I$source_path < +NV_ENCODE_API_FUNCTION_LIST flist; +void f(void) { struct { const GUID guid; } s[] = { { NV_ENC_PRESET_HQ_GUID } }; } +int main(void) { return 0; } +EOF + +enabled amf && + check_cpp_condition amf "AMF/core/Version.h" \ + "(AMF_VERSION_MAJOR << 48 | AMF_VERSION_MINOR << 32 | AMF_VERSION_RELEASE << 16 | AMF_VERSION_BUILD_NUM) >= 0x0001000400040001" + +# Funny iconv installations are not unusual, so check it after all flags have been set +if enabled libc_iconv; then + check_func_headers iconv.h iconv +elif enabled iconv; then + check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv +fi + +enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" + +# add some useful compiler flags if supported +check_cflags -Wdeclaration-after-statement +check_cflags -Wall +check_cflags -Wdisabled-optimization +check_cflags -Wpointer-arith +check_cflags -Wredundant-decls +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 +check_cflags -Wempty-body + +if enabled extra_warnings; then + check_cflags -Wcast-qual + check_cflags -Wextra + check_cflags -Wpedantic +fi + +check_disable_warning(){ + warning_flag=-W${1#-Wno-} + test_cflags $unknown_warning_flags $warning_flag && add_cflags $1 +} + +test_cflags -Werror=unused-command-line-argument && + append unknown_warning_flags "-Werror=unused-command-line-argument" +test_cflags -Werror=unknown-warning-option && + append unknown_warning_flags "-Werror=unknown-warning-option" + +check_disable_warning -Wno-parentheses +check_disable_warning -Wno-switch +check_disable_warning -Wno-format-zero-length +check_disable_warning -Wno-pointer-sign +check_disable_warning -Wno-unused-const-variable +check_disable_warning -Wno-bool-operation +check_disable_warning -Wno-char-subscripts + +check_disable_warning_headers(){ + warning_flag=-W${1#-Wno-} + test_cflags $warning_flag && add_cflags_headers $1 +} + +check_disable_warning_headers -Wno-deprecated-declarations +check_disable_warning_headers -Wno-unused-variable + +test_cc < $TMPV + if test_ldflags -Wl,${version_script},$TMPV; then + append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver' + quotes='""' + test_cc <= 1400" && + add_cflags -Qansi-alias + # Some inline asm is not compilable in debug + if enabled debug; then + disable ebp_available + disable ebx_available + fi + fi + # msvcrt10 x64 incorrectly enables log2, only msvcrt12 (MSVC 2013) onwards actually has log2. + check_cpp_condition log2 crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" + # The CRT headers contain __declspec(restrict) in a few places, but if redefining + # restrict, this might break. MSVC 2010 and 2012 fail with __declspec(__restrict) + # (as it ends up if the restrict redefine is done before including stdlib.h), while + # MSVC 2013 and newer can handle it fine. + # If this declspec fails, force including stdlib.h before the restrict redefinition + # happens in config.h. + if [ $restrict_keyword != restrict ]; then + test_cc <= 190024218" || + check_cflags -d2SSAOptimizer- + # enable utf-8 source processing on VS2015 U2 and newer + test_cpp_condition windows.h "_MSC_FULL_VER >= 190023918" && + add_cflags -utf-8 +fi + +for pfx in "" host_; do + varname=${pfx%_}cc_type + eval "type=\$$varname" + if [ "$type" = "msvc" ]; then + test_${pfx}cc < Makefile + +esc(){ + echo "$*" | sed 's/%/%25/g;s/:/%3a/g' +} + +echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" > ffbuild/config.fate + +enabled stripping || strip="echo skipping strip" +enabled stripping || striptype="" + +config_files="$TMPH ffbuild/config.mak doc/config.texi" + +cat > ffbuild/config.mak <> ffbuild/config.mak' $LIBRARY_LIST + +for entry in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do + eval echo "EXTRALIBS-${entry}=\$${entry}_extralibs" >> ffbuild/config.mak +done + +cat > $TMPH <>$TMPH + +test -n "$malloc_prefix" && + echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH + +if enabled x86asm; then + append config_files $TMPASM + cat > $TMPASM <> $TMPH + + +mkdir -p doc +mkdir -p tests +mkdir -p tests/api +echo "@c auto-generated by configure - do not modify! " > doc/config.texi + +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" >> ffbuild/config.mak + +# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. +cp_if_changed $TMPH config.h +touch ffbuild/.config + +enabled x86asm && cp_if_changed $TMPASM config.asm + +cat > $TMPH <> $TMPH + +cp_if_changed $TMPH libavutil/avconfig.h + +# full_filter_name_foo=vf_foo +# full_filter_name_bar=asrc_bar +# ... +eval "$(sed -n "s/^extern AVFilter ff_\([avfsinkrc]\{2,5\}\)_\(.*\);/full_filter_name_\2=\1_\2/p" $source_path/libavfilter/allfilters.c)" + +# generate the lists of enabled components +print_enabled_components(){ + file=$1 + struct_name=$2 + name=$3 + shift 3 + echo "static const $struct_name * const $name[] = {" > $TMPH + for c in $*; do + if enabled $c; then + case $name in + filter_list) + eval c=\$full_filter_name_${c%_filter} + ;; + indev_list) + c=${c%_indev}_demuxer + ;; + outdev_list) + c=${c%_outdev}_muxer + ;; + esac + printf " &ff_%s,\n" $c >> $TMPH + fi + done + if [ "$name" = "filter_list" ]; then + for c in asrc_abuffer vsrc_buffer asink_abuffer vsink_buffer; do + printf " &ff_%s,\n" $c >> $TMPH + done + fi + echo " NULL };" >> $TMPH + cp_if_changed $TMPH $file +} + +print_enabled_components libavfilter/filter_list.c AVFilter filter_list $FILTER_LIST +print_enabled_components libavcodec/codec_list.c AVCodec codec_list $CODEC_LIST +print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list $PARSER_LIST +print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST +print_enabled_components libavformat/demuxer_list.c AVInputFormat demuxer_list $DEMUXER_LIST +print_enabled_components libavformat/muxer_list.c AVOutputFormat muxer_list $MUXER_LIST +print_enabled_components libavdevice/indev_list.c AVInputFormat indev_list $INDEV_LIST +print_enabled_components libavdevice/outdev_list.c AVOutputFormat outdev_list $OUTDEV_LIST +print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST + +# Settings for pkg-config files + +cat > $TMPH <> $TMPH +done + +cp_if_changed $TMPH ffbuild/config.sh diff --git a/configure_llvm b/configure_llvm new file mode 100755 index 0000000000..0eafe60ab5 --- /dev/null +++ b/configure_llvm @@ -0,0 +1,7536 @@ +#!/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 </dev/null 2>&1; then + ncolors=$(tput colors) + if test -n "$ncolors" && test $ncolors -ge 8; then + bold_color=$(tput bold) + warn_color=$(tput setaf 3) + error_color=$(tput setaf 1) + reset_color=$(tput sgr0) + fi + # 72 used instead of 80 since that's the default of pr + ncols=$(tput cols) +fi +: ${ncols:=72} + +log(){ + echo "$@" >> $logfile +} + +log_file(){ + log BEGIN "$1" + log_file_i=1 + while IFS= read -r log_file_line; do + printf '%5d\t%s\n' "$log_file_i" "$log_file_line" + log_file_i=$(($log_file_i+1)) + done < "$1" >> "$logfile" + log END "$1" +} + +warn(){ + log "WARNING: $*" + WARNINGS="${WARNINGS}WARNING: $*\n" +} + +die(){ + log "$@" + echo "$error_color$bold_color$@$reset_color" + 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; + } else if (file ~ /\\.texi\$/) { + pre = -v ? \"\" : \"@c \"; + yesno = \$2; + c2 = tolower(c); + gsub(/_/, \"-\", c2); + printf(\"%s@set %s %s\\n\", pre, c2, yesno) >>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\"" +} + +reverse () { + eval ' + reverse_out= + for v in $'$1'; do + reverse_out="$v $reverse_out" + done + '$1'=$reverse_out + ' +} + +# keeps the last occurence of each non-unique item +unique(){ + unique_out= + eval unique_in=\$$1 + reverse unique_in + for v in $unique_in; do + # " $unique_out" +space such that every item is surrounded with spaces + case " $unique_out" in *" $v "*) continue; esac # already in list + unique_out="$unique_out$v " + done + reverse unique_out + eval $1=\$unique_out +} + +resolve(){ + resolve_out= + eval resolve_in=\$$1 + for v in $resolve_in; do + eval 'resolve_out="$resolve_out$'$v' "' + done + eval $1=\$resolve_out +} + +add_cppflags(){ + append CPPFLAGS "$@" +} + +add_cflags(){ + append CFLAGS $($cflags_filter "$@") +} + +add_cflags_headers(){ + append CFLAGS_HEADERS $($cflags_filter "$@") +} + +add_cxxflags(){ + append CXXFLAGS $($cflags_filter "$@") +} + +add_objcflags(){ + append OBJCFLAGS $($objcflags_filter "$@") +} + +add_asflags(){ + append ASFLAGS $($asflags_filter "$@") +} + +add_ldflags(){ + append LDFLAGS $($ldflags_filter "$@") +} + +add_ldexeflags(){ + append LDEXEFLAGS $($ldflags_filter "$@") +} + +add_ldsoflags(){ + append LDSOFLAGS $($ldflags_filter "$@") +} + +add_extralibs(){ + prepend extralibs $($ldflags_filter "$@") +} + +add_stripflags(){ + append ASMSTRIPFLAGS "$@" +} + +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' "$@" +} + +test_cmd(){ + log "$@" + "$@" >> $logfile 2>&1 +} + +test_stat(){ + log test_stat "$@" + stat "$1" >> $logfile 2>&1 +} + +cc_e(){ + eval printf '%s\\n' $CC_E +} + +cc_o(){ + eval printf '%s\\n' $CC_O +} + +as_o(){ + eval printf '%s\\n' $AS_O +} + +x86asm_o(){ + eval printf '%s\\n' $X86ASM_O +} + +ld_o(){ + eval printf '%s\\n' $LD_O +} + +hostcc_e(){ + eval printf '%s\\n' $HOSTCC_E +} + +hostcc_o(){ + eval printf '%s\\n' $HOSTCC_O +} + +nvcc_o(){ + eval printf '%s\\n' $NVCC_O +} + +test_cc(){ + log test_cc "$@" + cat > $TMPC + log_file $TMPC + test_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC +} + +test_cxx(){ + log test_cxx "$@" + cat > $TMPCPP + log_file $TMPCPP + test_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP +} + +test_objcc(){ + log test_objcc "$@" + cat > $TMPM + log_file $TMPM + test_cmd $objcc -Werror=missing-prototypes $CPPFLAGS $CFLAGS $OBJCFLAGS "$@" $OBJCC_C $(cc_o $TMPO) $TMPM +} + +test_nvcc(){ + log test_nvcc "$@" + cat > $TMPCU + log_file $TMPCU + tmpcu_=$TMPCU + tmpo_=$TMPO + [ -x "$(command -v cygpath)" ] && tmpcu_=$(cygpath -m $tmpcu_) && tmpo_=$(cygpath -m $tmpo_) + test_cmd $nvcc $nvccflags "$@" $NVCC_C $(nvcc_o $tmpo_) $tmpcu_ +} + +check_nvcc() { + log check_nvcc "$@" + name=$1 + shift 1 + disabled $name && return + disable $name + test_nvcc "$@" < $TMPC + log_file $TMPC + test_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC +} + +test_as(){ + log test_as "$@" + cat > $TMPS + log_file $TMPS + test_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS +} + +test_x86asm(){ + log test_x86asm "$@" + echo "$1" > $TMPASM + log_file $TMPASM + shift + test_cmd $x86asmexe $X86ASMFLAGS -Werror "$@" $(x86asm_o $TMPO) $TMPASM +} + +check_cmd(){ + log check_cmd "$@" + cmd=$1 + disabled $cmd && return + disable $cmd + test_cmd $@ && enable $cmd +} + +check_as(){ + log check_as "$@" + name=$1 + code=$2 + shift 2 + disable $name + test_as $@ < $TMPC <" +} + +test_code(){ + log test_code "$@" + check=$1 + headers=$2 + code=$3 + shift 3 + { + for hdr in $headers; do + print_include $hdr + done + echo "int main(void) { $code; return 0; }" + } | test_$check "$@" +} + +check_cppflags(){ + log check_cppflags "$@" + test_cpp "$@" < +EOF +} + +test_cflags(){ + log test_cflags "$@" + set -- $($cflags_filter "$@") + test_cc "$@" <" + echo "int main(void) { return 0; }" + } | test_objcc && test_stat "$TMPO" && enable_sanitized $header +} + +check_apple_framework(){ + log check_apple_framework "$@" + framework="$1" + name="$(tolower $framework)" + header="${framework}/${framework}.h" + disable $name + check_header_objcc $header && + enable $name && eval ${name}_extralibs='"-framework $framework"' +} + +check_func(){ + log check_func "$@" + func=$1 + shift + disable $func + test_ld "cc" "$@" < +#include +float foo(complex float f, complex float g) { return $func($args); } +int main(void){ return (int) foo; } +EOF +} + +check_mathfunc(){ + log check_mathfunc "$@" + func=$1 + narg=$2 + shift 2 + test $narg = 2 && args="f, g" || args="f" + disable $func + test_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 + print_include $hdr + done + echo "#include " + for func in $funcs; do + echo "long check_$func(void) { return (long) $func; }" + done + echo "int main(void) { int ret = 0;" + # LTO could optimize out the test functions without this + for func in $funcs; do + echo " ret |= ((intptr_t)check_$func) & 0xFFFF;" + done + echo "return ret; }" + } | test_ld "cc" "$@" && enable $funcs && enable_sanitized $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; }" + } | test_ld "cxx" "$@" && enable $funcs && enable_sanitized $headers +} + +test_cpp_condition(){ + log test_cpp_condition "$@" + header=$1 + condition=$2 + shift 2 + test_cpp "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_cpp_condition(){ + log check_cpp_condition "$@" + name=$1 + shift 1 + disable $name + test_cpp_condition "$@" && enable $name +} + +test_cflags_cc(){ + log test_cflags_cc "$@" + flags=$1 + header=$2 + condition=$3 + shift 3 + set -- $($cflags_filter "$flags") + test_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_lib(){ + log check_lib "$@" + name="$1" + headers="$2" + funcs="$3" + shift 3 + disable $name + check_func_headers "$headers" "$funcs" "$@" && + enable $name && eval ${name}_extralibs="\$@" +} + +check_lib_cpp(){ + log check_lib_cpp "$@" + name="$1" + headers="$2" + classes="$3" + shift 3 + disable $name + check_class_headers_cpp "$headers" "$classes" "$@" && + enable $name && eval ${name}_extralibs="\$@" +} + +test_pkg_config(){ + log test_pkg_config "$@" + name="$1" + pkg_version="$2" + pkg="${2%% *}" + headers="$3" + funcs="$4" + shift 4 + disable $name + test_cmd $pkg_config --exists --print-errors $pkg_version || return + pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) + pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) + check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && + enable $name && + set_sanitized "${name}_cflags" $pkg_cflags && + set_sanitized "${name}_extralibs" $pkg_libs +} + +check_pkg_config(){ + log check_pkg_config "$@" + name="$1" + test_pkg_config "$@" && + eval add_cflags \$${name}_cflags +} + +test_exec(){ + test_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; } +} + +check_exec_crash(){ + log 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. + + (test_exec "$@") >> $logfile 2>&1 < +static void sighandler(int sig){ + raise(SIGTERM); +} +int foo(void){ + $code +} +int (*func_ptr)(void) = foo; +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_sanitized "$type" + test_code cc "$headers" "$type v" "$@" && enable_sanitized "$type" +} + +check_struct(){ + log check_struct "$@" + headers=$1 + struct=$2 + member=$3 + shift 3 + disable_sanitized "${struct}_${member}" + test_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" && + enable_sanitized "${struct}_${member}" +} + +check_builtin(){ + log check_builtin "$@" + name=$1 + headers=$2 + builtin=$3 + shift 3 + disable "$name" + test_code ld "$headers" "$builtin" "cc" "$@" && enable "$name" +} + +check_compile_assert(){ + log check_compile_assert "$@" + name=$1 + headers=$2 + condition=$3 + shift 3 + disable "$name" + test_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name" +} + +check_cc(){ + log check_cc "$@" + name=$1 + shift + disable "$name" + test_code cc "$@" && enable "$name" +} + +require(){ + log require "$@" + name_version="$1" + name="${1%% *}" + shift + check_lib $name "$@" || die "ERROR: $name_version not found" +} + +require_cc(){ + log require_cc "$@" + name="$1" + check_cc "$@" || die "ERROR: $name failed" +} + +require_cpp(){ + name="$1" + headers="$2" + classes="$3" + shift 3 + check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found" +} + +require_headers(){ + log require_headers "$@" + headers="$1" + check_headers "$@" || die "ERROR: $headers not found" +} + +require_cpp_condition(){ + log require_cpp_condition "$@" + condition="$3" + check_cpp_condition "$@" || die "ERROR: $condition not satisfied" +} + +require_pkg_config(){ + log require_pkg_config "$@" + pkg_version="$2" + check_pkg_config "$@" || die "ERROR: $pkg_version not found using pkg-config$pkg_config_fail_message" +} + +test_host_cc(){ + log test_host_cc "$@" + cat > $TMPC + log_file $TMPC + test_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC +} + +test_host_cpp(){ + log test_host_cpp "$@" + cat > $TMPC + log_file $TMPC + test_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC +} + +check_host_cppflags(){ + log check_host_cppflags "$@" + test_host_cpp "$@" < +EOF +} + +check_host_cflags(){ + log check_host_cflags "$@" + set -- $($host_cflags_filter "$@") + test_host_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + +check_host_cpp_condition(){ + log check_host_cpp_condition "$@" + name=$1 + shift 1 + disable $name + test_host_cpp_condition "$@" && enable $name +} + +cp_if_changed(){ + cmp -s "$1" "$2" && { test "$quiet" != "yes" && 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. + +AVCODEC_COMPONENTS=" + bsfs + decoders + encoders + hwaccels + parsers +" + +AVDEVICE_COMPONENTS=" + indevs + outdevs +" + +AVFILTER_COMPONENTS=" + filters +" + +AVFORMAT_COMPONENTS=" + demuxers + muxers + protocols +" + +COMPONENT_LIST=" + $AVCODEC_COMPONENTS + $AVDEVICE_COMPONENTS + $AVFILTER_COMPONENTS + $AVFORMAT_COMPONENTS +" + +EXAMPLE_LIST=" + avio_dir_cmd_example + avio_reading_example + decode_audio_example + decode_video_example + demuxing_decoding_example + encode_audio_example + encode_video_example + extract_mvs_example + filter_audio_example + filtering_audio_example + filtering_video_example + http_multiclient_example + hw_decode_example + metadata_example + muxing_example + qsvdec_example + remuxing_example + resampling_audio_example + scaling_video_example + transcode_aac_example + transcoding_example + vaapi_encode_example + vaapi_transcode_example +" + +EXTERNAL_AUTODETECT_LIBRARY_LIST=" + alsa + appkit + avfoundation + bzlib + coreimage + iconv + libxcb + libxcb_shm + libxcb_shape + libxcb_xfixes + lzma + schannel + sdl2 + securetransport + sndio + xlib + zlib +" + +EXTERNAL_LIBRARY_GPL_LIST=" + avisynth + frei0r + libcdio + libdavs2 + librubberband + libvidstab + libx264 + libx265 + libxavs + libxavs2 + libxvid +" + +EXTERNAL_LIBRARY_NONFREE_LIST=" + decklink + libfdk_aac + openssl + libtls +" + +EXTERNAL_LIBRARY_VERSION3_LIST=" + gmp + libaribb24 + liblensfun + libopencore_amrnb + libopencore_amrwb + libvmaf + libvo_amrwbenc + mbedtls + rkmpp +" + +EXTERNAL_LIBRARY_GPLV3_LIST=" + libsmbclient +" + +EXTERNAL_LIBRARY_LIST=" + $EXTERNAL_LIBRARY_GPL_LIST + $EXTERNAL_LIBRARY_NONFREE_LIST + $EXTERNAL_LIBRARY_VERSION3_LIST + $EXTERNAL_LIBRARY_GPLV3_LIST + chromaprint + gcrypt + gnutls + jni + ladspa + libaom + libass + libbluray + libbs2b + libcaca + libcelt + libcodec2 + libdav1d + libdc1394 + libdrm + libflite + libfontconfig + libfreetype + libfribidi + libgme + libgsm + libiec61883 + libilbc + libjack + libklvanc + libkvazaar + libmodplug + libmp3lame + libmysofa + libopencv + libopenh264 + libopenjpeg + libopenmpt + libopus + libpulse + librsvg + librtmp + libshine + libsmbclient + libsnappy + libsoxr + libspeex + libsrt + libssh + libtensorflow + libtesseract + libtheora + libtwolame + libv4l2 + libvorbis + libvpx + libwavpack + libwebp + libxml2 + libzimg + libzmq + libzvbi + lv2 + mediacodec + openal + opengl + pocketsphinx + vapoursynth +" + +HWACCEL_AUTODETECT_LIBRARY_LIST=" + amf + audiotoolbox + crystalhd + cuda + cuda_llvm + cuvid + d3d11va + dxva2 + ffnvcodec + nvdec + nvenc + vaapi + vdpau + videotoolbox + v4l2_m2m + xvmc +" + +# catchall list of things that require external libs to link +EXTRALIBS_LIST=" + cpu_init + cws2fws +" + +HWACCEL_LIBRARY_NONFREE_LIST=" + cuda_nvcc + cuda_sdk + libnpp +" + +HWACCEL_LIBRARY_LIST=" + $HWACCEL_LIBRARY_NONFREE_LIST + libmfx + mmal + omx + opencl +" + +DOCUMENT_LIST=" + doc + htmlpages + manpages + podpages + txtpages +" + +FEATURE_LIST=" + ftrapv + gray + hardcoded_tables + omx_rpi + runtime_cpudetect + safe_bitstream_reader + shared + small + static + swscale_alpha +" + +# this list should be kept in linking order +LIBRARY_LIST=" + avdevice + avfilter + swscale + postproc + avformat + avcodec + swresample + avresample + avutil +" + +LICENSE_LIST=" + gpl + nonfree + version3 +" + +PROGRAM_LIST=" + ffplay + ffprobe + ffmpeg +" + +SUBSYSTEM_LIST=" + dct + dwt + error_resilience + faan + fast_unaligned + fft + lsp + lzo + mdct + pixelutils + network + rdft +" + +# COMPONENT_LIST needs to come last to ensure correct dependency checking +CONFIG_LIST=" + $DOCUMENT_LIST + $EXAMPLE_LIST + $EXTERNAL_LIBRARY_LIST + $EXTERNAL_AUTODETECT_LIBRARY_LIST + $HWACCEL_LIBRARY_LIST + $HWACCEL_AUTODETECT_LIBRARY_LIST + $FEATURE_LIST + $LICENSE_LIST + $LIBRARY_LIST + $PROGRAM_LIST + $SUBSYSTEM_LIST + autodetect + fontconfig + linux_perf + memory_poisoning + neon_clobber_test + ossfuzz + pic + thumb + valgrind_backtrace + xmm_clobber_test + $COMPONENT_LIST +" + +THREADS_LIST=" + pthreads + os2threads + w32threads +" + +ATOMICS_LIST=" + atomics_gcc + atomics_suncc + atomics_win32 +" + +AUTODETECT_LIBS=" + $EXTERNAL_AUTODETECT_LIBRARY_LIST + $HWACCEL_AUTODETECT_LIBRARY_LIST + $THREADS_LIST +" + +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 + armv8 + neon + vfp + vfpv3 + setend +" + +ARCH_EXT_LIST_MIPS=" + mipsfpu + mips32r2 + mips32r5 + mips64r2 + mips32r6 + mips64r6 + mipsdsp + mipsdspr2 + msa + msa2 +" + +ARCH_EXT_LIST_LOONGSON=" + loongson2 + loongson3 + mmi +" + +ARCH_EXT_LIST_X86_SIMD=" + aesni + amd3dnow + amd3dnowext + avx + avx2 + avx512 + fma3 + fma4 + mmx + mmxext + sse + sse2 + sse3 + sse4 + sse42 + ssse3 + xop +" + +ARCH_EXT_LIST_PPC=" + altivec + dcbzl + ldbrx + power8 + ppc4xx + vsx +" + +ARCH_EXT_LIST_X86=" + $ARCH_EXT_LIST_X86_SIMD + cpunop + i686 +" + +ARCH_EXT_LIST=" + $ARCH_EXT_LIST_ARM + $ARCH_EXT_LIST_PPC + $ARCH_EXT_LIST_X86 + $ARCH_EXT_LIST_MIPS + $ARCH_EXT_LIST_LOONGSON +" + +ARCH_FEATURES=" + aligned_stack + fast_64bit + fast_clz + fast_cmov + local_aligned + simd_align_16 + simd_align_32 + simd_align_64 +" + +BUILTIN_LIST=" + atomic_cas_ptr + machine_rw_barrier + MemoryBarrier + mm_empty + rdtsc + sem_timedwait + sync_val_compare_and_swap +" +HAVE_LIST_CMDLINE=" + inline_asm + symver + x86asm +" + +HAVE_LIST_PUB=" + bigendian + fast_unaligned +" + +HEADERS_LIST=" + arpa_inet_h + asm_types_h + cdio_paranoia_h + cdio_paranoia_paranoia_h + cuda_h + dispatch_dispatch_h + 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 + dirent_h + dxgidebug_h + dxva_h + ES2_gl_h + gsm_h + io_h + linux_perf_event_h + machine_ioctl_bt848_h + machine_ioctl_meteor_h + malloc_h + opencv2_core_core_c_h + OpenGL_gl3_h + poll_h + sys_param_h + sys_resource_h + sys_select_h + sys_soundcard_h + sys_time_h + sys_un_h + sys_videoio_h + termios_h + udplite_h + unistd_h + valgrind_valgrind_h + windows_h + winsock2_h +" + +INTRINSICS_LIST=" + intrinsics_neon +" + +COMPLEX_FUNCS=" + cabs + cexp +" + +MATH_FUNCS=" + atanf + atan2f + cbrt + cbrtf + copysign + cosf + erf + exp2 + exp2f + expf + hypot + isfinite + isinf + isnan + ldexpf + llrint + llrintf + log2 + log2f + log10f + lrint + lrintf + powf + rint + round + roundf + sinf + trunc + truncf +" + +SYSTEM_FEATURES=" + dos_paths + libc_msvcrt + MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS + section_data_rel_ro + threads + uwp + winrt +" + +SYSTEM_FUNCS=" + access + aligned_malloc + arc4random + clock_gettime + closesocket + CommandLineToArgvW + fcntl + getaddrinfo + gethrtime + getopt + GetProcessAffinityMask + GetProcessMemoryInfo + GetProcessTimes + getrusage + GetSystemTimeAsFileTime + gettimeofday + glob + glXGetProcAddress + gmtime_r + inet_aton + isatty + kbhit + localtime_r + lstat + lzo1x_999_compress + mach_absolute_time + MapViewOfFile + memalign + mkstemp + mmap + mprotect + nanosleep + PeekNamedPipe + posix_memalign + pthread_cancel + sched_getaffinity + SecItemImport + SetConsoleTextAttribute + SetConsoleCtrlHandler + setmode + setrlimit + Sleep + strerror_r + sysconf + sysctl + usleep + UTGetOSTypeFromString + VirtualAlloc + wglGetProcAddress +" + +SYSTEM_LIBRARIES=" + bcrypt + vaapi_drm + vaapi_x11 + vdpau_x11 +" + +TOOLCHAIN_FEATURES=" + as_arch_directive + as_dn_directive + as_fpu_directive + as_func + as_object_arch + asm_mod_q + blocks_extension + ebp_available + ebx_available + gnu_as + gnu_windres + ibm_asm + inline_asm_direct_symbol_refs + inline_asm_labels + inline_asm_nonlocal_labels + pragma_deprecated + rsync_contimeout + symver_asm_label + symver_gnu_asm + vfp_args + xform_asm + xmm_clobbers +" + +TYPES_LIST=" + kCMVideoCodecType_HEVC + kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange + socklen_t + struct_addrinfo + struct_group_source_req + struct_ip_mreq_source + struct_ipv6_mreq + struct_msghdr_msg_flags + struct_pollfd + struct_rusage_ru_maxrss + struct_sctp_event_subscribe + struct_sockaddr_in6 + struct_sockaddr_sa_len + struct_sockaddr_storage + struct_stat_st_mtim_tv_nsec + struct_v4l2_frmivalenum_discrete +" + +HAVE_LIST=" + $ARCH_EXT_LIST + $(add_suffix _external $ARCH_EXT_LIST) + $(add_suffix _inline $ARCH_EXT_LIST) + $ARCH_FEATURES + $BUILTIN_LIST + $COMPLEX_FUNCS + $HAVE_LIST_CMDLINE + $HAVE_LIST_PUB + $HEADERS_LIST + $INTRINSICS_LIST + $MATH_FUNCS + $SYSTEM_FEATURES + $SYSTEM_FUNCS + $SYSTEM_LIBRARIES + $THREADS_LIST + $TOOLCHAIN_FEATURES + $TYPES_LIST + makeinfo + makeinfo_html + opencl_d3d11 + opencl_drm_arm + opencl_drm_beignet + opencl_dxva2 + opencl_vaapi_beignet + opencl_vaapi_intel_media + perl + pod2man + texi2html +" + +# options emitted with CONFIG_ prefix but not available on the command line +CONFIG_EXTRA=" + aandcttables + ac3dsp + adts_header + audio_frame_queue + audiodsp + blockdsp + bswapdsp + cabac + cbs + cbs_av1 + cbs_h264 + cbs_h265 + cbs_jpeg + cbs_mpeg2 + cbs_vp9 + dirac_parse + dnn + dvprofile + exif + faandct + faanidct + fdctdsp + flacdsp + fmtconvert + frame_thread_encoder + g722dsp + golomb + gplv3 + h263dsp + h264chroma + h264dsp + h264parse + h264pred + h264qpel + hevcparse + hpeldsp + huffman + huffyuvdsp + huffyuvencdsp + idctdsp + iirfilter + mdct15 + intrax8 + iso_media + ividsp + jpegtables + lgplv3 + libx262 + llauddsp + llviddsp + llvidencdsp + lpc + lzf + me_cmp + mpeg_er + mpegaudio + mpegaudiodsp + mpegaudioheader + mpegvideo + mpegvideoenc + mss34dsp + pixblockdsp + qpeldsp + qsv + qsvdec + qsvenc + qsvvpp + rangecoder + riffdec + riffenc + rtpdec + rtpenc_chain + rv34dsp + scene_sad + sinewin + snappy + srtp + startcode + texturedsp + texturedspenc + tpeldsp + vaapi_1 + vaapi_encode + vc1dsp + videodsp + vp3dsp + vp56dsp + vp8dsp + wma_freqs + wmv2dsp +" + +CMDLINE_SELECT=" + $ARCH_EXT_LIST + $CONFIG_LIST + $HAVE_LIST_CMDLINE + $THREADS_LIST + asm + cross_compile + debug + extra_warnings + logging + lto + optimizations + rpath + stripping +" + +PATHS_LIST=" + bindir + datadir + docdir + incdir + libdir + mandir + pkgconfigdir + prefix + shlibdir + install_name_dir +" + +CMDLINE_SET=" + $PATHS_LIST + ar + arch + as + assert_level + build_suffix + cc + objcc + cpu + cross_prefix + custom_allocator + cxx + dep_cc + doxygen + env + extra_version + gas + host_cc + host_cflags + host_extralibs + host_ld + host_ldflags + host_os + ignore_tests + install + ld + ln_s + logfile + malloc_prefix + nm + optflags + nvcc + nvccflags + pkg_config + pkg_config_flags + progs_suffix + random_seed + ranlib + samples + strip + sws_max_filter_size + sysinclude + sysroot + target_exec + target_os + target_path + target_samples + tempprefix + toolchain + valgrind + windres + x86asmexe +" + +CMDLINE_APPEND=" + extra_cflags + extra_cxxflags + extra_objcflags + host_cppflags +" + +# code dependency declarations + +# architecture extensions + +armv5te_deps="arm" +armv6_deps="arm" +armv6t2_deps="arm" +armv8_deps="aarch64" +neon_deps_any="aarch64 arm" +intrinsics_neon_deps="neon" +vfp_deps_any="aarch64 arm" +vfpv3_deps="vfp" +setend_deps="arm" + +map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM + +altivec_deps="ppc" +dcbzl_deps="ppc" +ldbrx_deps="ppc" +ppc4xx_deps="ppc" +vsx_deps="altivec" +power8_deps="vsx" + +loongson2_deps="mips" +loongson3_deps="mips" +mips32r2_deps="mips" +mips32r5_deps="mips" +mips32r6_deps="mips" +mips64r2_deps="mips" +mips64r6_deps="mips" +mipsfpu_deps="mips" +mipsdsp_deps="mips" +mipsdspr2_deps="mips" +mmi_deps="mips" +msa_deps="mipsfpu" +msa2_deps="msa" + +cpunop_deps="i686" +x86_64_select="i686" +x86_64_suggest="fast_cmov" + +amd3dnow_deps="mmx" +amd3dnowext_deps="amd3dnow" +i686_deps="x86" +mmx_deps="x86" +mmxext_deps="mmx" +sse_deps="mmxext" +sse2_deps="sse" +sse3_deps="sse2" +ssse3_deps="sse3" +sse4_deps="ssse3" +sse42_deps="sse4" +aesni_deps="sse42" +avx_deps="sse42" +xop_deps="avx" +fma3_deps="avx" +fma4_deps="avx" +avx2_deps="avx" +avx512_deps="avx2" + +mmx_external_deps="x86asm" +mmx_inline_deps="inline_asm x86" +mmx_suggest="mmx_external mmx_inline" + +for ext in $(filter_out mmx $ARCH_EXT_LIST_X86_SIMD); 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="aarch64 ppc x86" +fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" +fast_unaligned_if_any="aarch64 ppc x86" +simd_align_16_if_any="altivec neon sse" +simd_align_32_if_any="avx" +simd_align_64_if_any="avx512" + +# system capabilities +linux_perf_deps="linux_perf_event_h" +symver_if_any="symver_asm_label symver_gnu_asm" +valgrind_backtrace_conflict="optimizations" +valgrind_backtrace_deps="valgrind_valgrind_h" + +# threading support +atomics_gcc_if="sync_val_compare_and_swap" +atomics_suncc_if="atomic_cas_ptr machine_rw_barrier" +atomics_win32_if="MemoryBarrier" +atomics_native_if_any="$ATOMICS_LIST" +w32threads_deps="atomics_native" +threads_if_any="$THREADS_LIST" + +# subsystems +cbs_av1_select="cbs" +cbs_h264_select="cbs" +cbs_h265_select="cbs" +cbs_jpeg_select="cbs" +cbs_mpeg2_select="cbs" +cbs_vp9_select="cbs" +dct_select="rdft" +dirac_parse_select="golomb" +dnn_suggest="libtensorflow" +error_resilience_select="me_cmp" +faandct_deps="faan" +faandct_select="fdctdsp" +faanidct_deps="faan" +faanidct_select="idctdsp" +h264dsp_select="startcode" +hevcparse_select="golomb" +frame_thread_encoder_deps="encoders threads" +intrax8_select="blockdsp idctdsp" +mdct_select="fft" +mdct15_select="fft" +me_cmp_select="fdctdsp idctdsp pixblockdsp" +mpeg_er_select="error_resilience" +mpegaudio_select="mpegaudiodsp mpegaudioheader" +mpegaudiodsp_select="dct" +mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp me_cmp mpeg_er videodsp" +mpegvideoenc_select="aandcttables me_cmp mpegvideo pixblockdsp qpeldsp" +vc1dsp_select="h264chroma qpeldsp startcode" +rdft_select="fft" + +# decoders / encoders +aac_decoder_select="adts_header mdct15 mdct sinewin" +aac_fixed_decoder_select="adts_header mdct sinewin" +aac_encoder_select="audio_frame_queue iirfilter lpc mdct sinewin" +aac_latm_decoder_select="aac_decoder aac_latm_parser" +ac3_decoder_select="ac3_parser ac3dsp bswapdsp fmtconvert mdct" +ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct" +ac3_encoder_select="ac3dsp audiodsp mdct me_cmp" +ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp" +adpcm_g722_decoder_select="g722dsp" +adpcm_g722_encoder_select="g722dsp" +aic_decoder_select="golomb idctdsp" +alac_encoder_select="lpc" +als_decoder_select="bswapdsp" +amrnb_decoder_select="lsp" +amrwb_decoder_select="lsp" +amv_decoder_select="sp5x_decoder exif" +amv_encoder_select="jpegtables mpegvideoenc" +ape_decoder_select="bswapdsp llauddsp" +apng_decoder_deps="zlib" +apng_encoder_deps="zlib" +apng_encoder_select="llvidencdsp" +aptx_decoder_select="audio_frame_queue" +aptx_encoder_select="audio_frame_queue" +aptx_hd_decoder_select="audio_frame_queue" +aptx_hd_encoder_select="audio_frame_queue" +asv1_decoder_select="blockdsp bswapdsp idctdsp" +asv1_encoder_select="aandcttables bswapdsp fdctdsp pixblockdsp" +asv2_decoder_select="blockdsp bswapdsp idctdsp" +asv2_encoder_select="aandcttables bswapdsp fdctdsp pixblockdsp" +atrac1_decoder_select="mdct sinewin" +atrac3_decoder_select="mdct" +atrac3p_decoder_select="mdct sinewin" +atrac9_decoder_select="mdct" +avrn_decoder_select="exif jpegtables" +bink_decoder_select="blockdsp hpeldsp" +binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs" +binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs" +cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp" +clearvideo_decoder_select="idctdsp" +cllc_decoder_select="bswapdsp" +comfortnoise_encoder_select="lpc" +cook_decoder_select="audiodsp mdct sinewin" +cscd_decoder_select="lzo" +cscd_decoder_suggest="zlib" +dca_decoder_select="mdct" +dds_decoder_select="texturedsp" +dirac_decoder_select="dirac_parse dwt golomb videodsp mpegvideoenc" +dnxhd_decoder_select="blockdsp idctdsp" +dnxhd_encoder_select="blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp" +dolby_e_decoder_select="mdct" +dvvideo_decoder_select="dvprofile idctdsp" +dvvideo_encoder_select="dvprofile fdctdsp me_cmp pixblockdsp" +dxa_decoder_deps="zlib" +dxv_decoder_select="lzf texturedsp" +eac3_decoder_select="ac3_decoder" +eac3_encoder_select="ac3_encoder" +eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo" +eatgq_decoder_select="aandcttables" +eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp" +exr_decoder_deps="zlib" +ffv1_decoder_select="rangecoder" +ffv1_encoder_select="rangecoder" +ffvhuff_decoder_select="huffyuv_decoder" +ffvhuff_encoder_select="huffyuv_encoder" +fic_decoder_select="golomb" +flac_decoder_select="flacdsp" +flac_encoder_select="bswapdsp flacdsp lpc" +flashsv2_decoder_deps="zlib" +flashsv2_encoder_deps="zlib" +flashsv_decoder_deps="zlib" +flashsv_encoder_deps="zlib" +flv_decoder_select="h263_decoder" +flv_encoder_select="h263_encoder" +fourxm_decoder_select="blockdsp bswapdsp" +fraps_decoder_select="bswapdsp huffman" +g2m_decoder_deps="zlib" +g2m_decoder_select="blockdsp idctdsp jpegtables" +g729_decoder_select="audiodsp" +h261_decoder_select="mpegvideo" +h261_encoder_select="mpegvideoenc" +h263_decoder_select="h263_parser h263dsp mpegvideo qpeldsp" +h263_encoder_select="h263dsp mpegvideoenc" +h263i_decoder_select="h263_decoder" +h263p_decoder_select="h263_decoder" +h263p_encoder_select="h263_encoder" +h264_decoder_select="cabac golomb h264chroma h264dsp h264parse h264pred h264qpel videodsp" +h264_decoder_suggest="error_resilience" +hap_decoder_select="snappy texturedsp" +hap_encoder_deps="libsnappy" +hap_encoder_select="texturedspenc" +hevc_decoder_select="bswapdsp cabac golomb hevcparse videodsp" +huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp" +huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llvidencdsp" +hymt_decoder_select="huffyuv_decoder" +iac_decoder_select="imc_decoder" +imc_decoder_select="bswapdsp fft mdct sinewin" +indeo3_decoder_select="hpeldsp" +indeo4_decoder_select="ividsp" +indeo5_decoder_select="ividsp" +interplay_video_decoder_select="hpeldsp" +jpegls_decoder_select="mjpeg_decoder" +jv_decoder_select="blockdsp" +lagarith_decoder_select="llviddsp" +ljpeg_encoder_select="idctdsp jpegtables mpegvideoenc" +lscr_decoder_deps="zlib" +magicyuv_decoder_select="llviddsp" +magicyuv_encoder_select="llvidencdsp" +mdec_decoder_select="blockdsp idctdsp mpegvideo" +metasound_decoder_select="lsp mdct sinewin" +mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" +mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp jpegtables" +mjpeg_encoder_select="jpegtables mpegvideoenc" +mjpegb_decoder_select="mjpeg_decoder" +mlp_decoder_select="mlp_parser" +mlp_encoder_select="lpc audio_frame_queue" +motionpixels_decoder_select="bswapdsp" +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="bswapdsp mpegaudiodsp" +mpc8_decoder_select="mpegaudiodsp" +mpegvideo_decoder_select="mpegvideo" +mpeg1video_decoder_select="mpegvideo" +mpeg1video_encoder_select="mpegvideoenc h263dsp" +mpeg2video_decoder_select="mpegvideo" +mpeg2video_encoder_select="mpegvideoenc h263dsp" +mpeg4_decoder_select="h263_decoder mpeg4video_parser" +mpeg4_encoder_select="h263_encoder" +msa1_decoder_select="mss34dsp" +mscc_decoder_deps="zlib" +msmpeg4v1_decoder_select="h263_decoder" +msmpeg4v2_decoder_select="h263_decoder" +msmpeg4v2_encoder_select="h263_encoder" +msmpeg4v3_decoder_select="h263_decoder" +msmpeg4v3_encoder_select="h263_encoder" +mss2_decoder_select="mpegvideo qpeldsp vc1_decoder" +mts2_decoder_select="mss34dsp" +mwsc_decoder_deps="zlib" +mxpeg_decoder_select="mjpeg_decoder" +nellymoser_decoder_select="mdct sinewin" +nellymoser_encoder_select="audio_frame_queue mdct sinewin" +nuv_decoder_select="idctdsp lzo" +on2avc_decoder_select="mdct" +opus_decoder_deps="swresample" +opus_decoder_select="mdct15" +opus_encoder_select="audio_frame_queue mdct15" +png_decoder_deps="zlib" +png_encoder_deps="zlib" +png_encoder_select="llvidencdsp" +prores_decoder_select="blockdsp idctdsp" +prores_encoder_select="fdctdsp" +qcelp_decoder_select="lsp" +qdm2_decoder_select="mdct rdft mpegaudiodsp" +ra_144_decoder_select="audiodsp" +ra_144_encoder_select="audio_frame_queue lpc audiodsp" +ralf_decoder_select="golomb" +rasc_decoder_deps="zlib" +rawvideo_decoder_select="bswapdsp" +rscc_decoder_deps="zlib" +rtjpeg_decoder_select="me_cmp" +rv10_decoder_select="h263_decoder" +rv10_encoder_select="h263_encoder" +rv20_decoder_select="h263_decoder" +rv20_encoder_select="h263_encoder" +rv30_decoder_select="golomb h264pred h264qpel mpegvideo rv34dsp" +rv40_decoder_select="golomb h264pred h264qpel mpegvideo rv34dsp" +screenpresso_decoder_deps="zlib" +shorten_decoder_select="bswapdsp" +sipr_decoder_select="lsp" +snow_decoder_select="dwt h264qpel hpeldsp me_cmp rangecoder videodsp" +snow_encoder_select="dwt h264qpel hpeldsp me_cmp mpegvideoenc rangecoder" +sonic_decoder_select="golomb rangecoder" +sonic_encoder_select="golomb rangecoder" +sonic_ls_encoder_select="golomb rangecoder" +sp5x_decoder_select="mjpeg_decoder" +speedhq_decoder_select="mpegvideo" +srgc_decoder_deps="zlib" +svq1_decoder_select="hpeldsp" +svq1_encoder_select="hpeldsp me_cmp mpegvideoenc" +svq3_decoder_select="golomb h264dsp h264parse h264pred hpeldsp tpeldsp videodsp" +svq3_decoder_suggest="zlib" +tak_decoder_select="audiodsp" +tdsc_decoder_deps="zlib" +tdsc_decoder_select="mjpeg_decoder" +theora_decoder_select="vp3_decoder" +thp_decoder_select="mjpeg_decoder" +tiff_decoder_suggest="zlib lzma" +tiff_encoder_suggest="zlib" +truehd_decoder_select="mlp_parser" +truehd_encoder_select="lpc audio_frame_queue" +truemotion2_decoder_select="bswapdsp" +truespeech_decoder_select="bswapdsp" +tscc_decoder_deps="zlib" +twinvq_decoder_select="mdct lsp sinewin" +txd_decoder_select="texturedsp" +utvideo_decoder_select="bswapdsp llviddsp" +utvideo_encoder_select="bswapdsp huffman llvidencdsp" +vble_decoder_select="llviddsp" +vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 mpegvideo vc1dsp" +vc1image_decoder_select="vc1_decoder" +vorbis_decoder_select="mdct" +vorbis_encoder_select="audio_frame_queue mdct" +vp3_decoder_select="hpeldsp vp3dsp videodsp" +vp4_decoder_select="vp3_decoder" +vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp vp56dsp" +vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp vp56dsp" +vp6a_decoder_select="vp6_decoder" +vp6f_decoder_select="vp6_decoder" +vp7_decoder_select="h264pred videodsp vp8dsp" +vp8_decoder_select="h264pred videodsp vp8dsp" +vp9_decoder_select="videodsp vp9_parser vp9_superframe_split_bsf" +wcmv_decoder_deps="zlib" +webp_decoder_select="vp8_decoder exif" +wmalossless_decoder_select="llauddsp" +wmapro_decoder_select="mdct sinewin wma_freqs" +wmav1_decoder_select="mdct sinewin wma_freqs" +wmav1_encoder_select="mdct sinewin wma_freqs" +wmav2_decoder_select="mdct sinewin wma_freqs" +wmav2_encoder_select="mdct sinewin wma_freqs" +wmavoice_decoder_select="lsp rdft dct mdct sinewin" +wmv1_decoder_select="h263_decoder" +wmv1_encoder_select="h263_encoder" +wmv2_decoder_select="blockdsp error_resilience h263_decoder idctdsp intrax8 videodsp wmv2dsp" +wmv2_encoder_select="h263_encoder wmv2dsp" +wmv3_decoder_select="vc1_decoder" +wmv3image_decoder_select="wmv3_decoder" +xma1_decoder_select="wmapro_decoder" +xma2_decoder_select="wmapro_decoder" +zerocodec_decoder_deps="zlib" +zlib_decoder_deps="zlib" +zlib_encoder_deps="zlib" +zmbv_decoder_deps="zlib" +zmbv_encoder_deps="zlib" + +# hardware accelerators +crystalhd_deps="libcrystalhd_libcrystalhd_if_h" +cuda_deps="ffnvcodec" +cuvid_deps="ffnvcodec" +d3d11va_deps="dxva_h ID3D11VideoDecoder ID3D11VideoContext" +dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode ole32 user32" +ffnvcodec_deps_any="libdl LoadLibrary" +nvdec_deps="ffnvcodec" +vaapi_x11_deps="xlib" +videotoolbox_hwaccel_deps="videotoolbox pthreads" +videotoolbox_hwaccel_extralibs="-framework QuartzCore" +xvmc_deps="X11_extensions_XvMClib_h" + +h263_vaapi_hwaccel_deps="vaapi" +h263_vaapi_hwaccel_select="h263_decoder" +h263_videotoolbox_hwaccel_deps="videotoolbox" +h263_videotoolbox_hwaccel_select="h263_decoder" +h264_d3d11va_hwaccel_deps="d3d11va" +h264_d3d11va_hwaccel_select="h264_decoder" +h264_d3d11va2_hwaccel_deps="d3d11va" +h264_d3d11va2_hwaccel_select="h264_decoder" +h264_dxva2_hwaccel_deps="dxva2" +h264_dxva2_hwaccel_select="h264_decoder" +h264_nvdec_hwaccel_deps="nvdec" +h264_nvdec_hwaccel_select="h264_decoder" +h264_vaapi_hwaccel_deps="vaapi" +h264_vaapi_hwaccel_select="h264_decoder" +h264_vdpau_hwaccel_deps="vdpau" +h264_vdpau_hwaccel_select="h264_decoder" +h264_videotoolbox_hwaccel_deps="videotoolbox" +h264_videotoolbox_hwaccel_select="h264_decoder" +hevc_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_HEVC" +hevc_d3d11va_hwaccel_select="hevc_decoder" +hevc_d3d11va2_hwaccel_deps="d3d11va DXVA_PicParams_HEVC" +hevc_d3d11va2_hwaccel_select="hevc_decoder" +hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC" +hevc_dxva2_hwaccel_select="hevc_decoder" +hevc_nvdec_hwaccel_deps="nvdec" +hevc_nvdec_hwaccel_select="hevc_decoder" +hevc_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferHEVC" +hevc_vaapi_hwaccel_select="hevc_decoder" +hevc_vdpau_hwaccel_deps="vdpau VdpPictureInfoHEVC" +hevc_vdpau_hwaccel_select="hevc_decoder" +hevc_videotoolbox_hwaccel_deps="videotoolbox" +hevc_videotoolbox_hwaccel_select="hevc_decoder" +mjpeg_nvdec_hwaccel_deps="nvdec" +mjpeg_nvdec_hwaccel_select="mjpeg_decoder" +mjpeg_vaapi_hwaccel_deps="vaapi" +mjpeg_vaapi_hwaccel_select="mjpeg_decoder" +mpeg_xvmc_hwaccel_deps="xvmc" +mpeg_xvmc_hwaccel_select="mpeg2video_decoder" +mpeg1_nvdec_hwaccel_deps="nvdec" +mpeg1_nvdec_hwaccel_select="mpeg1video_decoder" +mpeg1_vdpau_hwaccel_deps="vdpau" +mpeg1_vdpau_hwaccel_select="mpeg1video_decoder" +mpeg1_videotoolbox_hwaccel_deps="videotoolbox" +mpeg1_videotoolbox_hwaccel_select="mpeg1video_decoder" +mpeg1_xvmc_hwaccel_deps="xvmc" +mpeg1_xvmc_hwaccel_select="mpeg1video_decoder" +mpeg2_d3d11va_hwaccel_deps="d3d11va" +mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder" +mpeg2_d3d11va2_hwaccel_deps="d3d11va" +mpeg2_d3d11va2_hwaccel_select="mpeg2video_decoder" +mpeg2_dxva2_hwaccel_deps="dxva2" +mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" +mpeg2_nvdec_hwaccel_deps="nvdec" +mpeg2_nvdec_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" +mpeg2_videotoolbox_hwaccel_deps="videotoolbox" +mpeg2_videotoolbox_hwaccel_select="mpeg2video_decoder" +mpeg2_xvmc_hwaccel_deps="xvmc" +mpeg2_xvmc_hwaccel_select="mpeg2video_decoder" +mpeg4_nvdec_hwaccel_deps="nvdec" +mpeg4_nvdec_hwaccel_select="mpeg4_decoder" +mpeg4_vaapi_hwaccel_deps="vaapi" +mpeg4_vaapi_hwaccel_select="mpeg4_decoder" +mpeg4_vdpau_hwaccel_deps="vdpau" +mpeg4_vdpau_hwaccel_select="mpeg4_decoder" +mpeg4_videotoolbox_hwaccel_deps="videotoolbox" +mpeg4_videotoolbox_hwaccel_select="mpeg4_decoder" +vc1_d3d11va_hwaccel_deps="d3d11va" +vc1_d3d11va_hwaccel_select="vc1_decoder" +vc1_d3d11va2_hwaccel_deps="d3d11va" +vc1_d3d11va2_hwaccel_select="vc1_decoder" +vc1_dxva2_hwaccel_deps="dxva2" +vc1_dxva2_hwaccel_select="vc1_decoder" +vc1_nvdec_hwaccel_deps="nvdec" +vc1_nvdec_hwaccel_select="vc1_decoder" +vc1_vaapi_hwaccel_deps="vaapi" +vc1_vaapi_hwaccel_select="vc1_decoder" +vc1_vdpau_hwaccel_deps="vdpau" +vc1_vdpau_hwaccel_select="vc1_decoder" +vp8_nvdec_hwaccel_deps="nvdec" +vp8_nvdec_hwaccel_select="vp8_decoder" +vp8_vaapi_hwaccel_deps="vaapi" +vp8_vaapi_hwaccel_select="vp8_decoder" +vp9_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_VP9" +vp9_d3d11va_hwaccel_select="vp9_decoder" +vp9_d3d11va2_hwaccel_deps="d3d11va DXVA_PicParams_VP9" +vp9_d3d11va2_hwaccel_select="vp9_decoder" +vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9" +vp9_dxva2_hwaccel_select="vp9_decoder" +vp9_nvdec_hwaccel_deps="nvdec" +vp9_nvdec_hwaccel_select="vp9_decoder" +vp9_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferVP9_bit_depth" +vp9_vaapi_hwaccel_select="vp9_decoder" +wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel" +wmv3_d3d11va2_hwaccel_select="vc1_d3d11va2_hwaccel" +wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel" +wmv3_nvdec_hwaccel_select="vc1_nvdec_hwaccel" +wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel" +wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" + +# hardware-accelerated codecs +omx_deps="libdl pthreads" +omx_rpi_select="omx" +qsv_deps="libmfx" +qsvdec_select="qsv" +qsvenc_select="qsv" +qsvvpp_select="qsv" +vaapi_encode_deps="vaapi" +v4l2_m2m_deps="linux_videodev2_h sem_timedwait" + +hwupload_cuda_filter_deps="ffnvcodec" +scale_npp_filter_deps="ffnvcodec libnpp" +scale_cuda_filter_deps="ffnvcodec" +scale_cuda_filter_deps_any="cuda_nvcc cuda_llvm" +thumbnail_cuda_filter_deps="ffnvcodec" +thumbnail_cuda_filter_deps_any="cuda_nvcc cuda_llvm" +transpose_npp_filter_deps="ffnvcodec libnpp" + +amf_deps_any="libdl LoadLibrary" +nvenc_deps="ffnvcodec" +nvenc_deps_any="libdl LoadLibrary" +nvenc_encoder_deps="nvenc" + +h263_v4l2m2m_decoder_deps="v4l2_m2m h263_v4l2_m2m" +h263_v4l2m2m_encoder_deps="v4l2_m2m h263_v4l2_m2m" +h264_amf_encoder_deps="amf" +h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" +h264_cuvid_decoder_deps="cuvid" +h264_cuvid_decoder_select="h264_mp4toannexb_bsf" +h264_mediacodec_decoder_deps="mediacodec" +h264_mediacodec_decoder_select="h264_mp4toannexb_bsf h264_parser" +h264_mmal_decoder_deps="mmal" +h264_nvenc_encoder_deps="nvenc" +h264_omx_encoder_deps="omx" +h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec" +h264_qsv_encoder_select="qsvenc" +h264_rkmpp_decoder_deps="rkmpp" +h264_rkmpp_decoder_select="h264_mp4toannexb_bsf" +h264_vaapi_encoder_select="cbs_h264 vaapi_encode" +h264_v4l2m2m_decoder_deps="v4l2_m2m h264_v4l2_m2m" +h264_v4l2m2m_decoder_select="h264_mp4toannexb_bsf" +h264_v4l2m2m_encoder_deps="v4l2_m2m h264_v4l2_m2m" +hevc_amf_encoder_deps="amf" +hevc_cuvid_decoder_deps="cuvid" +hevc_cuvid_decoder_select="hevc_mp4toannexb_bsf" +hevc_mediacodec_decoder_deps="mediacodec" +hevc_mediacodec_decoder_select="hevc_mp4toannexb_bsf hevc_parser" +hevc_nvenc_encoder_deps="nvenc" +hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec" +hevc_qsv_encoder_select="hevcparse qsvenc" +hevc_rkmpp_decoder_deps="rkmpp" +hevc_rkmpp_decoder_select="hevc_mp4toannexb_bsf" +hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC" +hevc_vaapi_encoder_select="cbs_h265 vaapi_encode" +hevc_v4l2m2m_decoder_deps="v4l2_m2m hevc_v4l2_m2m" +hevc_v4l2m2m_decoder_select="hevc_mp4toannexb_bsf" +hevc_v4l2m2m_encoder_deps="v4l2_m2m hevc_v4l2_m2m" +mjpeg_cuvid_decoder_deps="cuvid" +mjpeg_qsv_encoder_deps="libmfx" +mjpeg_qsv_encoder_select="qsvenc" +mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG" +mjpeg_vaapi_encoder_select="cbs_jpeg jpegtables vaapi_encode" +mpeg1_cuvid_decoder_deps="cuvid" +mpeg1_v4l2m2m_decoder_deps="v4l2_m2m mpeg1_v4l2_m2m" +mpeg2_crystalhd_decoder_select="crystalhd" +mpeg2_cuvid_decoder_deps="cuvid" +mpeg2_mmal_decoder_deps="mmal" +mpeg2_mediacodec_decoder_deps="mediacodec" +mpeg2_qsv_decoder_select="qsvdec mpegvideo_parser" +mpeg2_qsv_encoder_select="qsvenc" +mpeg2_vaapi_encoder_select="cbs_mpeg2 vaapi_encode" +mpeg2_v4l2m2m_decoder_deps="v4l2_m2m mpeg2_v4l2_m2m" +mpeg4_crystalhd_decoder_select="crystalhd" +mpeg4_cuvid_decoder_deps="cuvid" +mpeg4_mediacodec_decoder_deps="mediacodec" +mpeg4_mmal_decoder_deps="mmal" +mpeg4_omx_encoder_deps="omx" +mpeg4_v4l2m2m_decoder_deps="v4l2_m2m mpeg4_v4l2_m2m" +mpeg4_v4l2m2m_encoder_deps="v4l2_m2m mpeg4_v4l2_m2m" +msmpeg4_crystalhd_decoder_select="crystalhd" +nvenc_h264_encoder_select="h264_nvenc_encoder" +nvenc_hevc_encoder_select="hevc_nvenc_encoder" +vc1_crystalhd_decoder_select="crystalhd" +vc1_cuvid_decoder_deps="cuvid" +vc1_mmal_decoder_deps="mmal" +vc1_qsv_decoder_select="qsvdec vc1_parser" +vc1_v4l2m2m_decoder_deps="v4l2_m2m vc1_v4l2_m2m" +vp8_cuvid_decoder_deps="cuvid" +vp8_mediacodec_decoder_deps="mediacodec" +vp8_qsv_decoder_select="qsvdec vp8_parser" +vp8_rkmpp_decoder_deps="rkmpp" +vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8" +vp8_vaapi_encoder_select="vaapi_encode" +vp8_v4l2m2m_decoder_deps="v4l2_m2m vp8_v4l2_m2m" +vp8_v4l2m2m_encoder_deps="v4l2_m2m vp8_v4l2_m2m" +vp9_cuvid_decoder_deps="cuvid" +vp9_mediacodec_decoder_deps="mediacodec" +vp9_rkmpp_decoder_deps="rkmpp" +vp9_vaapi_encoder_deps="VAEncPictureParameterBufferVP9" +vp9_vaapi_encoder_select="vaapi_encode" +vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m" +wmv3_crystalhd_decoder_select="crystalhd" + +# parsers +aac_parser_select="adts_header" +av1_parser_select="cbs_av1" +h264_parser_select="golomb h264dsp h264parse" +hevc_parser_select="hevcparse" +mpegaudio_parser_select="mpegaudioheader" +mpegvideo_parser_select="mpegvideo" +mpeg4video_parser_select="h263dsp mpegvideo qpeldsp" +vc1_parser_select="vc1dsp" + +# bitstream_filters +aac_adtstoasc_bsf_select="adts_header" +av1_frame_split_bsf_select="cbs_av1" +av1_metadata_bsf_select="cbs_av1" +eac3_core_bsf_select="ac3_parser" +filter_units_bsf_select="cbs" +h264_metadata_bsf_deps="const_nan" +h264_metadata_bsf_select="cbs_h264" +h264_redundant_pps_bsf_select="cbs_h264" +hevc_metadata_bsf_select="cbs_h265" +mjpeg2jpeg_bsf_select="jpegtables" +mpeg2_metadata_bsf_select="cbs_mpeg2" +trace_headers_bsf_select="cbs" +vp9_metadata_bsf_select="cbs_vp9" + +# external libraries +aac_at_decoder_deps="audiotoolbox" +aac_at_decoder_select="aac_adtstoasc_bsf" +ac3_at_decoder_deps="audiotoolbox" +ac3_at_decoder_select="ac3_parser" +adpcm_ima_qt_at_decoder_deps="audiotoolbox" +alac_at_decoder_deps="audiotoolbox" +amr_nb_at_decoder_deps="audiotoolbox" +avisynth_deps_any="libdl LoadLibrary" +avisynth_demuxer_deps="avisynth" +avisynth_demuxer_select="riffdec" +eac3_at_decoder_deps="audiotoolbox" +eac3_at_decoder_select="ac3_parser" +gsm_ms_at_decoder_deps="audiotoolbox" +ilbc_at_decoder_deps="audiotoolbox" +mp1_at_decoder_deps="audiotoolbox" +mp2_at_decoder_deps="audiotoolbox" +mp3_at_decoder_deps="audiotoolbox" +mp1_at_decoder_select="mpegaudioheader" +mp2_at_decoder_select="mpegaudioheader" +mp3_at_decoder_select="mpegaudioheader" +pcm_alaw_at_decoder_deps="audiotoolbox" +pcm_mulaw_at_decoder_deps="audiotoolbox" +qdmc_at_decoder_deps="audiotoolbox" +qdm2_at_decoder_deps="audiotoolbox" +aac_at_encoder_deps="audiotoolbox" +aac_at_encoder_select="audio_frame_queue" +alac_at_encoder_deps="audiotoolbox" +alac_at_encoder_select="audio_frame_queue" +ilbc_at_encoder_deps="audiotoolbox" +ilbc_at_encoder_select="audio_frame_queue" +pcm_alaw_at_encoder_deps="audiotoolbox" +pcm_alaw_at_encoder_select="audio_frame_queue" +pcm_mulaw_at_encoder_deps="audiotoolbox" +pcm_mulaw_at_encoder_select="audio_frame_queue" +chromaprint_muxer_deps="chromaprint" +h264_videotoolbox_encoder_deps="pthreads" +h264_videotoolbox_encoder_select="videotoolbox_encoder" +hevc_videotoolbox_encoder_deps="pthreads" +hevc_videotoolbox_encoder_select="videotoolbox_encoder" +libaom_av1_decoder_deps="libaom" +libaom_av1_encoder_deps="libaom" +libaom_av1_encoder_select="extract_extradata_bsf" +libaribb24_decoder_deps="libaribb24" +libcelt_decoder_deps="libcelt" +libcodec2_decoder_deps="libcodec2" +libcodec2_encoder_deps="libcodec2" +libdav1d_decoder_deps="libdav1d" +libdavs2_decoder_deps="libdavs2" +libfdk_aac_decoder_deps="libfdk_aac" +libfdk_aac_encoder_deps="libfdk_aac" +libfdk_aac_encoder_select="audio_frame_queue" +libgme_demuxer_deps="libgme" +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" +libkvazaar_encoder_deps="libkvazaar" +libmodplug_demuxer_deps="libmodplug" +libmp3lame_encoder_deps="libmp3lame" +libmp3lame_encoder_select="audio_frame_queue mpegaudioheader" +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" +libopenh264_decoder_deps="libopenh264" +libopenh264_decoder_select="h264_mp4toannexb_bsf" +libopenh264_encoder_deps="libopenh264" +libopenjpeg_decoder_deps="libopenjpeg" +libopenjpeg_encoder_deps="libopenjpeg" +libopenmpt_demuxer_deps="libopenmpt" +libopus_decoder_deps="libopus" +libopus_encoder_deps="libopus" +libopus_encoder_select="audio_frame_queue" +librsvg_decoder_deps="librsvg" +libshine_encoder_deps="libshine" +libshine_encoder_select="audio_frame_queue" +libspeex_decoder_deps="libspeex" +libspeex_encoder_deps="libspeex" +libspeex_encoder_select="audio_frame_queue" +libtheora_encoder_deps="libtheora" +libtwolame_encoder_deps="libtwolame" +libvo_amrwbenc_encoder_deps="libvo_amrwbenc" +libvorbis_decoder_deps="libvorbis" +libvorbis_encoder_deps="libvorbis libvorbisenc" +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" +libwavpack_encoder_deps="libwavpack" +libwavpack_encoder_select="audio_frame_queue" +libwebp_encoder_deps="libwebp" +libwebp_anim_encoder_deps="libwebp" +libx262_encoder_deps="libx262" +libx264_encoder_deps="libx264" +libx264rgb_encoder_deps="libx264 x264_csp_bgr" +libx264rgb_encoder_select="libx264_encoder" +libx265_encoder_deps="libx265" +libxavs_encoder_deps="libxavs" +libxavs2_encoder_deps="libxavs2" +libxvid_encoder_deps="libxvid" +libzvbi_teletext_decoder_deps="libzvbi" +vapoursynth_demuxer_deps="vapoursynth" +videotoolbox_suggest="coreservices" +videotoolbox_deps="corefoundation coremedia corevideo" +videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames" + +# demuxers / muxers +ac3_demuxer_select="ac3_parser" +aiff_muxer_select="iso_media" +asf_demuxer_select="riffdec" +asf_o_demuxer_select="riffdec" +asf_muxer_select="riffenc" +asf_stream_muxer_select="asf_muxer" +avi_demuxer_select="iso_media riffdec exif" +avi_muxer_select="riffenc" +caf_demuxer_select="iso_media riffdec" +caf_muxer_select="iso_media" +dash_muxer_select="mp4_muxer" +dash_demuxer_deps="libxml2" +dirac_demuxer_select="dirac_parser" +dts_demuxer_select="dca_parser" +dtshd_demuxer_select="dca_parser" +dv_demuxer_select="dvprofile" +dv_muxer_select="dvprofile" +dxa_demuxer_select="riffdec" +eac3_demuxer_select="ac3_parser" +f4v_muxer_select="mov_muxer" +fifo_muxer_deps="threads" +flac_demuxer_select="flac_parser" +hds_muxer_select="flv_muxer" +hls_muxer_select="mpegts_muxer" +hls_muxer_suggest="gcrypt openssl" +image2_alias_pix_demuxer_select="image2_demuxer" +image2_brender_pix_demuxer_select="image2_demuxer" +ipod_muxer_select="mov_muxer" +ismv_muxer_select="mov_muxer" +ivf_muxer_select="av1_metadata_bsf vp9_superframe_bsf" +matroska_audio_muxer_select="matroska_muxer" +matroska_demuxer_select="iso_media riffdec" +matroska_demuxer_suggest="bzlib lzo zlib" +matroska_muxer_select="iso_media riffenc" +mmf_muxer_select="riffenc" +mov_demuxer_select="iso_media riffdec" +mov_demuxer_suggest="zlib" +mov_muxer_select="iso_media riffenc rtpenc_chain" +mp3_demuxer_select="mpegaudio_parser" +mp3_muxer_select="mpegaudioheader" +mp4_muxer_select="mov_muxer" +mpegts_demuxer_select="iso_media" +mpegts_muxer_select="adts_muxer latm_muxer" +mpegtsraw_demuxer_select="mpegts_demuxer" +mxf_d10_muxer_select="mxf_muxer" +mxf_opatom_muxer_select="mxf_muxer" +nut_muxer_select="riffenc" +nuv_demuxer_select="riffdec" +oga_muxer_select="ogg_muxer" +ogg_demuxer_select="dirac_parse" +ogv_muxer_select="ogg_muxer" +opus_muxer_select="ogg_muxer" +psp_muxer_select="mov_muxer" +rtp_demuxer_select="sdp_demuxer" +rtp_muxer_select="golomb" +rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol srtp" +rtsp_demuxer_select="http_protocol rtpdec" +rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain" +sap_demuxer_select="sdp_demuxer" +sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain" +sdp_demuxer_select="rtpdec" +smoothstreaming_muxer_select="ismv_muxer" +spdif_demuxer_select="adts_header" +spdif_muxer_select="adts_header" +spx_muxer_select="ogg_muxer" +swf_demuxer_suggest="zlib" +tak_demuxer_select="tak_parser" +tg2_muxer_select="mov_muxer" +tgp_muxer_select="mov_muxer" +vobsub_demuxer_select="mpegps_demuxer" +w64_demuxer_select="wav_demuxer" +w64_muxer_select="wav_muxer" +wav_demuxer_select="riffdec" +wav_muxer_select="riffenc" +webm_muxer_select="iso_media riffenc" +webm_dash_manifest_demuxer_select="matroska_demuxer" +wtv_demuxer_select="mpegts_demuxer riffdec" +wtv_muxer_select="mpegts_muxer riffenc" +xmv_demuxer_select="riffdec" +xwma_demuxer_select="riffdec" + +# indevs / outdevs +android_camera_indev_deps="android camera2ndk mediandk pthreads" +android_camera_indev_extralibs="-landroid -lcamera2ndk -lmediandk" +alsa_indev_deps="alsa" +alsa_outdev_deps="alsa" +avfoundation_indev_deps="avfoundation corevideo coremedia pthreads" +avfoundation_indev_suggest="coregraphics applicationservices" +avfoundation_indev_extralibs="-framework Foundation" +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" +decklink_deps_any="libdl LoadLibrary" +decklink_indev_deps="decklink threads" +decklink_indev_extralibs="-lstdc++" +decklink_outdev_deps="decklink threads" +decklink_outdev_suggest="libklvanc" +decklink_outdev_extralibs="-lstdc++" +dshow_indev_deps="IBaseFilter" +dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid -loleaut32 -lshlwapi" +fbdev_indev_deps="linux_fb_h" +fbdev_outdev_deps="linux_fb_h" +gdigrab_indev_deps="CreateDIBSection" +gdigrab_indev_extralibs="-lgdi32" +gdigrab_indev_select="bmp_decoder" +iec61883_indev_deps="libiec61883" +jack_indev_deps="libjack" +jack_indev_deps_any="sem_timedwait dispatch_dispatch_h" +kmsgrab_indev_deps="libdrm" +lavfi_indev_deps="avfilter" +libcdio_indev_deps="libcdio" +libdc1394_indev_deps="libdc1394" +openal_indev_deps="openal" +opengl_outdev_deps="opengl" +opengl_outdev_suggest="sdl2" +oss_indev_deps_any="sys_soundcard_h" +oss_outdev_deps_any="sys_soundcard_h" +pulse_indev_deps="libpulse" +pulse_outdev_deps="libpulse" +sdl2_outdev_deps="sdl2" +sndio_indev_deps="sndio" +sndio_outdev_deps="sndio" +v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" +v4l2_indev_suggest="libv4l2" +v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h" +v4l2_outdev_suggest="libv4l2" +vfwcap_indev_deps="vfw32 vfwcap_defines" +xcbgrab_indev_deps="libxcb" +xcbgrab_indev_suggest="libxcb_shm libxcb_shape libxcb_xfixes" +xv_outdev_deps="xlib" + +# protocols +async_protocol_deps="threads" +bluray_protocol_deps="libbluray" +ffrtmpcrypt_protocol_conflict="librtmp_protocol" +ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl mbedtls" +ffrtmpcrypt_protocol_select="tcp_protocol" +ffrtmphttp_protocol_conflict="librtmp_protocol" +ffrtmphttp_protocol_select="http_protocol" +ftp_protocol_select="tcp_protocol" +gopher_protocol_select="network" +http_protocol_select="tcp_protocol" +http_protocol_suggest="zlib" +httpproxy_protocol_select="tcp_protocol" +httpproxy_protocol_suggest="zlib" +https_protocol_select="tls_protocol" +https_protocol_suggest="zlib" +icecast_protocol_select="http_protocol" +mmsh_protocol_select="http_protocol" +mmst_protocol_select="network" +rtmp_protocol_conflict="librtmp_protocol" +rtmp_protocol_select="tcp_protocol" +rtmp_protocol_suggest="zlib" +rtmpe_protocol_select="ffrtmpcrypt_protocol" +rtmpe_protocol_suggest="zlib" +rtmps_protocol_conflict="librtmp_protocol" +rtmps_protocol_select="tls_protocol" +rtmps_protocol_suggest="zlib" +rtmpt_protocol_select="ffrtmphttp_protocol" +rtmpt_protocol_suggest="zlib" +rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" +rtmpte_protocol_suggest="zlib" +rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" +rtmpts_protocol_suggest="zlib" +rtp_protocol_select="udp_protocol" +schannel_conflict="openssl gnutls libtls mbedtls" +sctp_protocol_deps="struct_sctp_event_subscribe struct_msghdr_msg_flags" +sctp_protocol_select="network" +securetransport_conflict="openssl gnutls libtls mbedtls" +srtp_protocol_select="rtp_protocol srtp" +tcp_protocol_select="network" +tls_protocol_deps_any="gnutls openssl schannel securetransport libtls mbedtls" +tls_protocol_select="tcp_protocol" +udp_protocol_select="network" +udplite_protocol_select="network" +unix_protocol_deps="sys_un_h" +unix_protocol_select="network" + +# external library protocols +librtmp_protocol_deps="librtmp" +librtmpe_protocol_deps="librtmp" +librtmps_protocol_deps="librtmp" +librtmpt_protocol_deps="librtmp" +librtmpte_protocol_deps="librtmp" +libsmbclient_protocol_deps="libsmbclient gplv3" +libsrt_protocol_deps="libsrt" +libsrt_protocol_select="network" +libssh_protocol_deps="libssh" +libtls_conflict="openssl gnutls mbedtls" + +# filters +afftdn_filter_deps="avcodec" +afftdn_filter_select="fft" +afftfilt_filter_deps="avcodec" +afftfilt_filter_select="fft" +afir_filter_deps="avcodec" +afir_filter_select="fft" +amovie_filter_deps="avcodec avformat" +aresample_filter_deps="swresample" +asr_filter_deps="pocketsphinx" +ass_filter_deps="libass" +atempo_filter_deps="avcodec" +atempo_filter_select="rdft" +avgblur_opencl_filter_deps="opencl" +azmq_filter_deps="libzmq" +blackframe_filter_deps="gpl" +bm3d_filter_deps="avcodec" +bm3d_filter_select="dct" +boxblur_filter_deps="gpl" +boxblur_opencl_filter_deps="opencl gpl" +bs2b_filter_deps="libbs2b" +colorkey_opencl_filter_deps="opencl" +colormatrix_filter_deps="gpl" +convolution_opencl_filter_deps="opencl" +convolve_filter_deps="avcodec" +convolve_filter_select="fft" +coreimage_filter_deps="coreimage appkit" +coreimage_filter_extralibs="-framework OpenGL" +coreimagesrc_filter_deps="coreimage appkit" +coreimagesrc_filter_extralibs="-framework OpenGL" +cover_rect_filter_deps="avcodec avformat gpl" +cropdetect_filter_deps="gpl" +deconvolve_filter_deps="avcodec" +deconvolve_filter_select="fft" +deinterlace_qsv_filter_deps="libmfx" +deinterlace_vaapi_filter_deps="vaapi" +delogo_filter_deps="gpl" +denoise_vaapi_filter_deps="vaapi" +derain_filter_select="dnn" +deshake_filter_select="pixelutils" +dilation_opencl_filter_deps="opencl" +drawtext_filter_deps="libfreetype" +drawtext_filter_suggest="libfontconfig libfribidi" +elbg_filter_deps="avcodec" +eq_filter_deps="gpl" +erosion_opencl_filter_deps="opencl" +fftfilt_filter_deps="avcodec" +fftfilt_filter_select="rdft" +fftdnoiz_filter_deps="avcodec" +fftdnoiz_filter_select="fft" +find_rect_filter_deps="avcodec avformat gpl" +firequalizer_filter_deps="avcodec" +firequalizer_filter_select="rdft" +flite_filter_deps="libflite" +framerate_filter_select="scene_sad" +freezedetect_filter_select="scene_sad" +frei0r_filter_deps="frei0r libdl" +frei0r_src_filter_deps="frei0r libdl" +fspp_filter_deps="gpl" +geq_filter_deps="gpl" +histeq_filter_deps="gpl" +hqdn3d_filter_deps="gpl" +interlace_filter_deps="gpl" +kerndeint_filter_deps="gpl" +ladspa_filter_deps="ladspa libdl" +lensfun_filter_deps="liblensfun version3" +lv2_filter_deps="lv2" +mcdeint_filter_deps="avcodec gpl" +movie_filter_deps="avcodec avformat" +mpdecimate_filter_deps="gpl" +mpdecimate_filter_select="pixelutils" +minterpolate_filter_select="scene_sad" +mptestsrc_filter_deps="gpl" +negate_filter_deps="lut_filter" +nlmeans_opencl_filter_deps="opencl" +nnedi_filter_deps="gpl" +ocr_filter_deps="libtesseract" +ocv_filter_deps="libopencv" +openclsrc_filter_deps="opencl" +overlay_opencl_filter_deps="opencl" +overlay_qsv_filter_deps="libmfx" +overlay_qsv_filter_select="qsvvpp" +owdenoise_filter_deps="gpl" +pan_filter_deps="swresample" +perspective_filter_deps="gpl" +phase_filter_deps="gpl" +pp7_filter_deps="gpl" +pp_filter_deps="gpl postproc" +prewitt_opencl_filter_deps="opencl" +procamp_vaapi_filter_deps="vaapi" +program_opencl_filter_deps="opencl" +pullup_filter_deps="gpl" +removelogo_filter_deps="avcodec avformat swscale" +repeatfields_filter_deps="gpl" +resample_filter_deps="avresample" +roberts_opencl_filter_deps="opencl" +rubberband_filter_deps="librubberband" +sab_filter_deps="gpl swscale" +scale2ref_filter_deps="swscale" +scale_filter_deps="swscale" +scale_qsv_filter_deps="libmfx" +select_filter_select="scene_sad" +sharpness_vaapi_filter_deps="vaapi" +showcqt_filter_deps="avcodec avformat swscale" +showcqt_filter_suggest="libfontconfig libfreetype" +showcqt_filter_select="fft" +showfreqs_filter_deps="avcodec" +showfreqs_filter_select="fft" +showspectrum_filter_deps="avcodec" +showspectrum_filter_select="fft" +showspectrumpic_filter_deps="avcodec" +showspectrumpic_filter_select="fft" +signature_filter_deps="gpl avcodec avformat" +smartblur_filter_deps="gpl swscale" +sobel_opencl_filter_deps="opencl" +sofalizer_filter_deps="libmysofa avcodec" +sofalizer_filter_select="fft" +spectrumsynth_filter_deps="avcodec" +spectrumsynth_filter_select="fft" +spp_filter_deps="gpl avcodec" +spp_filter_select="fft idctdsp fdctdsp me_cmp pixblockdsp" +sr_filter_deps="avformat swscale" +sr_filter_select="dnn" +stereo3d_filter_deps="gpl" +subtitles_filter_deps="avformat avcodec libass" +super2xsai_filter_deps="gpl" +pixfmts_super2xsai_test_deps="super2xsai_filter" +tinterlace_filter_deps="gpl" +tinterlace_merge_test_deps="tinterlace_filter" +tinterlace_pad_test_deps="tinterlace_filter" +tonemap_filter_deps="const_nan" +tonemap_opencl_filter_deps="opencl const_nan" +transpose_opencl_filter_deps="opencl" +transpose_vaapi_filter_deps="vaapi VAProcPipelineCaps_rotation_flags" +unsharp_opencl_filter_deps="opencl" +uspp_filter_deps="gpl avcodec" +vaguedenoiser_filter_deps="gpl" +vidstabdetect_filter_deps="libvidstab" +vidstabtransform_filter_deps="libvidstab" +libvmaf_filter_deps="libvmaf pthreads" +zmq_filter_deps="libzmq" +zoompan_filter_deps="swscale" +zscale_filter_deps="libzimg const_nan" +scale_vaapi_filter_deps="vaapi" +vpp_qsv_filter_deps="libmfx" +vpp_qsv_filter_select="qsvvpp" +yadif_cuda_filter_deps="ffnvcodec" +yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm" + +# examples +avio_dir_cmd_deps="avformat avutil" +avio_reading_deps="avformat avcodec avutil" +decode_audio_example_deps="avcodec avutil" +decode_video_example_deps="avcodec avutil" +demuxing_decoding_example_deps="avcodec avformat avutil" +encode_audio_example_deps="avcodec avutil" +encode_video_example_deps="avcodec avutil" +extract_mvs_example_deps="avcodec avformat avutil" +filter_audio_example_deps="avfilter avutil" +filtering_audio_example_deps="avfilter avcodec avformat avutil" +filtering_video_example_deps="avfilter avcodec avformat avutil" +http_multiclient_example_deps="avformat avutil fork" +hw_decode_example_deps="avcodec avformat avutil" +metadata_example_deps="avformat avutil" +muxing_example_deps="avcodec avformat avutil swscale" +qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder" +remuxing_example_deps="avcodec avformat avutil" +resampling_audio_example_deps="avutil swresample" +scaling_video_example_deps="avutil swscale" +transcode_aac_example_deps="avcodec avformat swresample" +transcoding_example_deps="avfilter avcodec avformat avutil" +vaapi_encode_example_deps="avcodec avutil h264_vaapi_encoder" +vaapi_transcode_example_deps="avcodec avformat avutil h264_vaapi_encoder" + +# EXTRALIBS_LIST +cpu_init_extralibs="pthreads_extralibs" +cws2fws_extralibs="zlib_extralibs" + +# libraries, in any order +avcodec_deps="avutil" +avcodec_suggest="libm" +avcodec_select="null_bsf" +avdevice_deps="avformat avcodec avutil" +avdevice_suggest="libm" +avfilter_deps="avutil" +avfilter_suggest="libm" +avformat_deps="avcodec avutil" +avformat_suggest="libm network zlib" +avresample_deps="avutil" +avresample_suggest="libm" +avutil_suggest="clock_gettime ffnvcodec libm libdrm libmfx opencl user32 vaapi videotoolbox corefoundation corevideo coremedia bcrypt" +postproc_deps="avutil gpl" +postproc_suggest="libm" +swresample_deps="avutil" +swresample_suggest="libm libsoxr" +swscale_deps="avutil" +swscale_suggest="libm" + +avcodec_extralibs="pthreads_extralibs iconv_extralibs dxva2_extralibs" +avfilter_extralibs="pthreads_extralibs" +avutil_extralibs="d3d11va_extralibs nanosleep_extralibs pthreads_extralibs vaapi_drm_extralibs vaapi_x11_extralibs vdpau_x11_extralibs" + +# programs +ffmpeg_deps="avcodec avfilter avformat" +ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter + hflip_filter null_filter + transpose_filter trim_filter vflip_filter" +ffmpeg_suggest="ole32 psapi shell32" +ffplay_deps="avcodec avformat swscale swresample sdl2" +ffplay_select="rdft crop_filter transpose_filter hflip_filter vflip_filter rotate_filter" +ffplay_suggest="shell32" +ffprobe_deps="avcodec avformat" +ffprobe_suggest="shell32" + +# documentation +podpages_deps="perl" +manpages_deps="perl pod2man" +htmlpages_deps="perl" +htmlpages_deps_any="makeinfo_html texi2html" +txtpages_deps="perl makeinfo" +doc_deps_any="manpages htmlpages podpages txtpages" + +# default parameters + +logfile="ffbuild/config.log" + +# installation paths +prefix_default="/usr/local" +bindir_default='${prefix}/bin' +datadir_default='${prefix}/share/ffmpeg' +docdir_default='${prefix}/share/doc/ffmpeg' +incdir_default='${prefix}/include' +libdir_default='${prefix}/lib' +mandir_default='${prefix}/share/man' + +# toolchain +ar_default="llvm-ar" +cc_default="clang" +cxx_default="clang++" +host_cc_default="clang" +doxygen_default="doxygen" +install="install" +ln_s_default="ln -s -f" +nm_default="llvm-nm -g" +pkg_config_default=pkg-config +ranlib_default="llvm-ranlib" +strip_default="llvm-strip" +version_script='--version-script' +objformat="elf32" +x86asmexe_default="nasm" +windres_default="windres" +striptype="direct" + +# OS +target_os_default=$(tolower $(uname -s)) +host_os=$target_os_default + +# machine +if test "$target_os_default" = aix; then + arch_default=$(uname -p) + strip_default="strip -X32_64" + nm_default="nm -g -X32_64" +else + arch_default=$(uname -m) +fi +cpu="generic" +intrinsics="none" + +# configurable options +enable $PROGRAM_LIST +enable $DOCUMENT_LIST +enable $EXAMPLE_LIST +enable $(filter_out avresample $LIBRARY_LIST) +enable stripping + +enable asm +enable debug +enable doc +enable faan faandct faanidct +enable optimizations +enable runtime_cpudetect +enable safe_bitstream_reader +enable static +enable swscale_alpha +enable valgrind_backtrace + +sws_max_filter_size_default=256 +set_default sws_max_filter_size + +# internal components are enabled by default +enable $EXTRALIBS_LIST + +# Avoid external, non-system, libraries getting enabled by dependency resolution +disable $EXTERNAL_LIBRARY_LIST $HWACCEL_LIBRARY_LIST + +# build settings +SHFLAGS='-shared -Wl,-soname,$$(@F)' +LIBPREF="lib" +LIBSUF=".a" +FULLNAME='$(NAME)$(BUILDSUF)' +LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' +SLIBPREF="lib" +SLIBSUF=".so" +SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' +SLIBNAME_WITH_VERSION='$(SLIBNAME)' +SLIBNAME_WITH_MAJOR='$(SLIBNAME)' +LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' +SLIB_INSTALL_NAME='$(SLIBNAME)' +VERSION_SCRIPT_POSTPROCESS_CMD="cat" + +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 $@' +OBJCC_C='-c' +OBJCC_E='-E -o $@' +OBJCC_O='-o $@' +X86ASM_O='-o $@' +LD_O='-o $@' +LD_LIB='-l%' +LD_PATH='-L' +HOSTCC_C='-c' +HOSTCC_E='-E -o $@' +HOSTCC_O='-o $@' +HOSTLD_O='-o $@' +NVCC_C='-c' +NVCC_O='-o $@' + +host_extralibs='-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) $< 2>/dev/null | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(@F),$(@D)/$(@F)," > $(@:.o=.d)' +DEPFLAGS='-MM' + +mkdir -p ffbuild + +# find source path +if test -f configure; then + source_path=. +elif test -f src/configure; then + source_path=src +else + source_path=$(cd $(dirname "$0"); pwd) + case "$source_path" in + *[[:blank:]]*) die "Out of tree builds are impossible with whitespace in source path." ;; + esac + 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_extern(){ + thing=$1 + pattern=$2 + file=$source_path/$3 + out=${4:-$thing} + sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$out/p" "$file" +} + +find_filters_extern(){ + file=$source_path/$1 + sed -n 's/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file +} + +FILTER_LIST=$(find_filters_extern libavfilter/allfilters.c) +OUTDEV_LIST=$(find_things_extern muxer AVOutputFormat libavdevice/alldevices.c outdev) +INDEV_LIST=$(find_things_extern demuxer AVInputFormat libavdevice/alldevices.c indev) +MUXER_LIST=$(find_things_extern muxer AVOutputFormat libavformat/allformats.c) +DEMUXER_LIST=$(find_things_extern demuxer AVInputFormat libavformat/allformats.c) +ENCODER_LIST=$(find_things_extern encoder AVCodec libavcodec/allcodecs.c) +DECODER_LIST=$(find_things_extern decoder AVCodec libavcodec/allcodecs.c) +CODEC_LIST=" + $ENCODER_LIST + $DECODER_LIST +" +PARSER_LIST=$(find_things_extern parser AVCodecParser libavcodec/parsers.c) +BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c) +HWACCEL_LIST=$(find_things_extern hwaccel AVHWAccel libavcodec/hwaccels.h) +PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c) + +AVCODEC_COMPONENTS_LIST=" + $BSF_LIST + $DECODER_LIST + $ENCODER_LIST + $HWACCEL_LIST + $PARSER_LIST +" + +AVDEVICE_COMPONENTS_LIST=" + $INDEV_LIST + $OUTDEV_LIST +" + +AVFILTER_COMPONENTS_LIST=" + $FILTER_LIST +" + +AVFORMAT_COMPONENTS_LIST=" + $DEMUXER_LIST + $MUXER_LIST + $PROTOCOL_LIST +" + +ALL_COMPONENTS=" + $AVCODEC_COMPONENTS_LIST + $AVDEVICE_COMPONENTS_LIST + $AVFILTER_COMPONENTS_LIST + $AVFORMAT_COMPONENTS_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_in_columns() { + tr ' ' '\n' | sort | tr '\r\n' ' ' | awk -v col_width=24 -v width="$ncols" ' + { + num_cols = width > col_width ? int(width / col_width) : 1; + num_rows = int((NF + num_cols-1) / num_cols); + y = x = 1; + for (y = 1; y <= num_rows; y++) { + i = y; + for (x = 1; x <= num_cols; x++) { + if (i <= NF) { + line = sprintf("%s%-" col_width "s", line, $i); + } + i = i + num_rows; + } + print line; line = ""; + } + }' | sed 's/ *$//' +} + +show_list() { + suffix=_$1 + shift + echo $* | sed s/$suffix//g | print_in_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-ldexeflags=*) + add_ldexeflags $optval + ;; + --extra-ldsoflags=*) + add_ldsoflags $optval + ;; + --extra-ldlibflags=*) + warn "The --extra-ldlibflags option is only provided for compatibility and will be\n"\ + "removed in the future. Use --extra-ldsoflags instead." + add_ldsoflags $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 avutil + ;; + --enable-random|--disable-random) + action=${opt%%-random} + do_random ${action#--} $COMPONENT_LIST + ;; + --enable-random=*|--disable-random=*) + action=${opt%%-random=*} + do_random ${action#--} $optval + ;; + --enable-sdl) + enable sdl2 + ;; + --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" + test $action = enable && warn_if_gets_disabled $list + $action $list + ;; + --enable-yasm|--disable-yasm) + warn "The ${opt} option is only provided for compatibility and will be\n"\ + "removed in the future. Use --enable-x86asm / --disable-x86asm instead." + test $opt = --enable-yasm && x86asm=yes || x86asm=no + ;; + --yasmexe=*) + warn "The --yasmexe option is only provided for compatibility and will be\n"\ + "removed in the future. Use --x86asmexe instead." + x86asmexe="$optval" + ;; + --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 + ;; + --quiet|-q) quiet=yes + ;; + --fatal-warnings) enable fatal_warnings + ;; + --libfuzzer=*) + libfuzzer_path="$optval" + ;; + *) + 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 + +for e in $env; do + eval "export $e" +done + +if disabled autodetect; then + + # Unless iconv is explicitely disabled by the user, we still want to probe + # for the iconv from the libc. + disabled iconv || enable libc_iconv + + disable_weak $EXTERNAL_AUTODETECT_LIBRARY_LIST + disable_weak $HWACCEL_AUTODETECT_LIBRARY_LIST +fi +# Mark specifically enabled, but normally autodetected libraries as requested. +for lib in $AUTODETECT_LIBS; do + enabled $lib && request $lib +done +#TODO: switch to $AUTODETECT_LIBS when $THREADS_LIST is supported the same way +enable_weak $EXTERNAL_AUTODETECT_LIBRARY_LIST +enable_weak $HWACCEL_AUTODETECT_LIBRARY_LIST + +disabled logging && logfile=/dev/null + +# command line configuration sanity checks + +# we need to build at least one lib type +if ! enabled_any static shared; then + cat < $logfile +set >> $logfile + +test -n "$valgrind" && toolchain="valgrind-memcheck" + +enabled ossfuzz && ! echo $CFLAGS | grep -q -- "-fsanitize=" && ! echo $CFLAGS | grep -q -- "-fcoverage-mapping" &&{ + add_cflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp -fno-omit-frame-pointer + add_ldflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp +} + +case "$toolchain" in + *-asan) + cc_default="${toolchain%-asan}" + add_cflags -fsanitize=address + add_ldflags -fsanitize=address + ;; + *-msan) + cc_default="${toolchain%-msan}" + add_cflags -fsanitize=memory -fsanitize-memory-track-origins + add_ldflags -fsanitize=memory + ;; + *-tsan) + cc_default="${toolchain%-tsan}" + add_cflags -fsanitize=thread + add_ldflags -fsanitize=thread + case "$toolchain" in + gcc-tsan) + add_cflags -fPIC + add_ldflags -fPIC + ;; + esac + ;; + *-usan) + cc_default="${toolchain%-usan}" + add_cflags -fsanitize=undefined + add_ldflags -fsanitize=undefined + ;; + valgrind-*) + target_exec_default="valgrind" + case "$toolchain" in + valgrind-massif) + target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc" + ;; + valgrind-memcheck) + target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" + ;; + esac + ;; + msvc) + # Check whether the current MSVC version needs the C99 converter. + # From MSVC 2013 (compiler major version 18) onwards, it does actually + # support enough of C99 to build ffmpeg. Default to the new + # behaviour if the regexp was unable to match anything, since this + # successfully parses the version number of existing supported + # versions that require the converter (MSVC 2010 and 2012). + cl_major_ver=$(cl.exe 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p') + if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then + cc_default="cl.exe" + cxx_default="cl.exe" + else + die "Unsupported MSVC version (2013 or newer required)" + fi + ld_default="$source_path/compat/windows/mslink" + nm_default="dumpbin.exe -symbols" + ar_default="lib.exe" + case "$arch" in + aarch64|arm64) + as_default="armasm64.exe" + ;; + arm*) + as_default="armasm.exe" + ;; + esac + target_os_default="win32" + # Use a relative path for TMPDIR. This makes sure all the + # ffconf temp files are written with a relative path, avoiding + # issues with msys/win32 path conversion for MSVC parameters + # such as -Fo or -out:. + TMPDIR=. + ;; + icl) + cc_default="icl" + ld_default="xilink" + nm_default="dumpbin -symbols" + ar_default="xilib" + target_os_default="win32" + TMPDIR=. + ;; + gcov) + add_cflags -fprofile-arcs -ftest-coverage + add_ldflags -fprofile-arcs -ftest-coverage + ;; + llvm-cov) + add_cflags -fprofile-arcs -ftest-coverage + add_ldflags --coverage + ;; + hardened) + add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + add_cflags -fno-strict-overflow -fstack-protector-all + add_ldflags -Wl,-z,relro -Wl,-z,now + add_cflags -fPIE + add_ldexeflags -fPIE -pie + ;; + ?*) + die "Unknown toolchain $toolchain" + ;; +esac + +if test -n "$cross_prefix"; then + test -n "$arch" && test -n "$target_os" || + die "Must specify target arch (--arch) and OS (--target-os) when cross-compiling" + enable cross_compile +fi + +set_default target_os +if test "$target_os" = android; then + cc_default="clang" +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}" +if ${cross_prefix}${ranlib_default} 2>&1 | grep -q "\-D "; then + ranlib_default="${cross_prefix}${ranlib_default} -D" +else + ranlib_default="${cross_prefix}${ranlib_default}" +fi +strip_default="${cross_prefix}${strip_default}" +windres_default="${cross_prefix}${windres_default}" + +sysinclude_default="${sysroot}/usr/include" + +if enabled cuda_sdk; then + warn "Option --enable-cuda-sdk is deprecated. Use --enable-cuda-nvcc instead." + enable cuda_nvcc +fi + +if enabled cuda_nvcc; then + nvcc_default="nvcc" + nvccflags_default="-gencode arch=compute_30,code=sm_30 -O2" +else + nvcc_default="clang" + nvccflags_default="--cuda-gpu-arch=sm_30 -O2" + NVCC_C="" +fi + +set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \ + target_exec x86asmexe nvcc +enabled cross_compile || host_cc_default=$cc +set_default host_cc + +pkg_config_fail_message="" +if ! $pkg_config --version >/dev/null 2>&1; then + warn "$pkg_config not found, library detection may fail." + pkg_config=false +elif is_in -static $cc $LDFLAGS && ! is_in --static $pkg_config $pkg_config_flags; then + pkg_config_fail_message=" +Note: When building a static binary, add --pkg-config-flags=\"--static\"." +fi + +if test $doxygen != $doxygen_default && \ + ! $doxygen --version >/dev/null 2>&1; then + warn "Specified doxygen \"$doxygen\" not found, API documentation will fail to build." +fi + +exesuf() { + case $1 in + mingw32*|mingw64*|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 [ -n "$tempprefix" ] ; then + mktemp(){ + tmpname="$tempprefix.${HOSTNAME}.${UID}" + echo "$tmpname" + mkdir "$tmpname" + } +elif ! test_cmd mktemp -u XXXXXX; then + # simple replacement for missing mktemp + # NOT SAFE FOR GENERAL USE + mktemp(){ + tmpname="${2%%XXX*}.${HOSTNAME}.${UID}.$$" + echo "$tmpname" + mkdir "$tmpname" + } +fi + +FFTMPDIR=$(mktemp -d "${TMPDIR}/ffconf.XXXXXXXX" 2> /dev/null) || + die "Unable to create temporary directory in $TMPDIR." + +tmpfile(){ + tmp="${FFTMPDIR}/test"$2 + (set -C; exec > $tmp) 2> /dev/null || + die "Unable to create temporary file in $FFTMPDIR." + eval $1=$tmp +} + +trap 'rm -rf -- "$FFTMPDIR"' EXIT +trap 'exit 2' INT + +tmpfile TMPASM .asm +tmpfile TMPC .c +tmpfile TMPCPP .cpp +tmpfile TMPE $EXESUF +tmpfile TMPH .h +tmpfile TMPM .m +tmpfile TMPCU .cu +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 '^GNU assembler'; then + true # no-op to avoid reading stdin in following checks + elif $_cc -v 2>&1 | grep -q '^gcc.*LLVM'; then + _type=llvm_gcc + gcc_extra_ver=$(expr "$($_cc --version 2>/dev/null | head -n1)" : '.*\((.*)\)') + _ident="llvm-gcc $($_cc -dumpversion 2>/dev/null) $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") + case $gcc_basever in + 2) ;; + 2.*) ;; + *) _depflags='-MMD -MF $(@:.o=.d) -MT $@' ;; + esac + if [ "$first" = true ]; then + case $gcc_basever in + 4.2*) + warn "gcc 4.2 is outdated and may miscompile FFmpeg. Please use a newer compiler." ;; + esac + 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' + _flags_filter=icc_flags + 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 --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler"; then + test -d "$sysroot" || die "No valid sysroot specified." + _type=armcc + _ident=$($_cc --vsn | grep -i build | head -n1 | sed 's/.*: //') + 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 -v 2>&1 | grep -q clang && ! $_cc -? > /dev/null 2>&1; then + _type=clang + _ident=$($_cc --version 2>/dev/null | head -n1) + _depflags='-MMD -MF $(@:.o=.d) -MT $@' + _cflags_speed='-O3' + _cflags_size='-Oz' + 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 2>&1 | grep -q 'Microsoft.*ARM.*Assembler'; then + _type=armasm + _ident=$($_cc | head -n1) + # 4509: "This form of conditional instruction is deprecated" + _flags="-nologo -ignore 4509" + _flags_filter=armasm_flags + elif $_cc 2>&1 | grep -q Intel; then + _type=icl + _ident=$($_cc 2>&1 | head -n1) + _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@' + # Not only is O3 broken on 13.x+ but it is slower on all previous + # versions (tested) as well. + _cflags_speed="-O2" + _cflags_size="-O1 -Oi" # -O1 without -Oi miscompiles stuff + if $_cc 2>&1 | grep -q Linker; then + _ld_o='-out:$@' + else + _ld_o='-Fe$@' + fi + _cc_o='-Fo$@' + _cc_e='-P' + _flags_filter=icl_flags + _ld_lib='lib%.a' + _ld_path='-libpath:' + # -Qdiag-error to make icl error when seeing certain unknown arguments + _flags='-nologo -Qdiag-error:4044,10157' + # -Qvec- -Qsimd- to prevent miscompilation, -GS, fp:precise for consistency + # with MSVC which enables it by default. + _cflags='-Qms0 -Qvec- -Qsimd- -GS -fp:precise' + disable stripping + elif $_cc -? 2>/dev/null | grep -q 'LLVM.*Linker'; then + # lld can emulate multiple different linkers; in ms link.exe mode, + # the -? parameter gives the help output which contains an identifyable + # string, while it gives an error in other modes. + _type=lld-link + # The link.exe mode doesn't have a switch for getting the version, + # but we can force it back to gnu mode and get the version from there. + _ident=$($_cc -flavor gnu --version 2>/dev/null) + _ld_o='-out:$@' + _flags_filter=msvc_flags + _ld_lib='lib%.a' + _ld_path='-libpath:' + elif $_cc -nologo- 2>&1 | grep -q Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; }; then + _type=msvc + _ident=$($_cc 2>&1 | head -n1 | tr -d '\r') + _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" + _cflags_noopt="-O1" + if $_cc -nologo- 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' + disable stripping + elif $_cc --version 2>/dev/null | grep -q ^cparser; then + _type=cparser + _ident=$($_cc --version | head -n1) + _depflags='-MMD' + _cflags_speed='-O4' + _cflags_size='-O2' + _flags_filter=cparser_flags + 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" "true" +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 +set_ccvars CXX + +probe_cc hostcc "$host_cc" +host_cflags_filter=$_flags_filter +host_cflags_speed=$_cflags_speed +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} +: ${objcc_default:=$cc} +: ${dep_cc_default:=$cc} +: ${ld_default:=$cc} +: ${host_ld_default:=$host_cc} +set_default ar as objcc dep_cc ld ln_s host_ld windres + +probe_cc as "$as" +asflags_filter=$_flags_filter +add_asflags $_flags $_cflags +set_ccvars AS + +probe_cc objcc "$objcc" +objcflags_filter=$_flags_filter +add_objcflags $_flags $_cflags +set_ccvars OBJC + +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 "\[D\] "; then + arflags="rcD" + ar_o='$@' +else + arflags="rc" + ar_o='$@' +fi + +add_cflags $extra_cflags +add_cxxflags $extra_cxxflags +add_objcflags $extra_objcflags +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" + ;; + 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) + ;; + clang) + check_native(){ + $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return + sed -n "/cc1.*-target-cpu /{ + s/.*-target-cpu \\([^ ]*\\).*/\\1/ + p + q + }" $TMPE + } + cpu=$(check_native -march) + ;; + 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*|iPhone*) + arch="arm" + ;; + mips*|IP*) + case "$arch" in + *el) + add_cppflags -EL + add_ldflags -EL + ;; + *eb) + add_cppflags -EB + add_ldflags -EB + ;; + esac + arch="mips" + ;; + parisc*|hppa*) + arch="parisc" + ;; + "Power Macintosh"|ppc*|powerpc*) + arch="ppc" + ;; + s390|s390x) + arch="s390" + ;; + sh4|sh) + arch="sh4" + ;; + sun4*|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() { + test_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 6KZ; then echo armv6zk + elif check_arm_arch 6ZK; then echo armv6zk + elif check_arm_arch 6T2; then echo armv6t2 + elif check_arm_arch 7; then echo armv7 + elif check_arm_arch 7A 7_A; then echo armv7-a + elif check_arm_arch 7S; then echo armv7-a + elif check_arm_arch 7R 7_R; then echo armv7-r + elif check_arm_arch 7M 7_M; then echo armv7-m + elif check_arm_arch 7EM 7E_M; then echo armv7-m + elif check_arm_arch 8A 8_A; then echo armv8-a + fi + } + + [ "$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 + disabled fast_unaligned || enable 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" + + if [ "$cpu" != "generic" ]; then + disable mips32r2 + disable mips32r5 + disable mips64r2 + disable mips32r6 + disable mips64r6 + disable loongson2 + disable loongson3 + + case $cpu in + 24kc|24kf*|24kec|34kc|1004kc|24kef*|34kf*|1004kf*|74kc|74kf) + enable mips32r2 + disable msa + ;; + p5600|i6400|p6600) + disable mipsdsp + disable mipsdspr2 + ;; + loongson*) + enable loongson2 + enable loongson3 + enable local_aligned + enable simd_align_16 + enable fast_64bit + enable fast_clz + enable fast_cmov + enable fast_unaligned + disable aligned_stack + disable mipsdsp + disable mipsdspr2 + # When gcc version less than 5.3.0, add -fno-expensive-optimizations flag. + if [ $cc == gcc ]; then + gcc_version=$(gcc -dumpversion) + if [ "$(echo "$gcc_version 5.3.0" | tr " " "\n" | sort -rV | head -n 1)" == "$gcc_version" ]; then + expensive_optimization_flag="" + else + expensive_optimization_flag="-fno-expensive-optimizations" + fi + fi + case $cpu in + loongson3*) + cpuflags="-march=loongson3a -mhard-float $expensive_optimization_flag" + ;; + loongson2e) + cpuflags="-march=loongson2e -mhard-float $expensive_optimization_flag" + ;; + loongson2f) + cpuflags="-march=loongson2f -mhard-float $expensive_optimization_flag" + ;; + esac + ;; + *) + # Unknown CPU. Disable everything. + warn "unknown CPU. Disabling all MIPS optimizations." + disable mipsfpu + disable mipsdsp + disable mipsdspr2 + disable msa + disable mmi + ;; + esac + + case $cpu in + 24kc) + disable mipsfpu + disable mipsdsp + disable mipsdspr2 + ;; + 24kf*) + disable mipsdsp + disable mipsdspr2 + ;; + 24kec|34kc|1004kc) + disable mipsfpu + disable mipsdspr2 + ;; + 24kef*|34kf*|1004kf*) + disable mipsdspr2 + ;; + 74kc) + disable mipsfpu + ;; + p5600) + enable mips32r5 + check_cflags "-mtune=p5600" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" + ;; + i6400) + enable mips64r6 + check_cflags "-mtune=i6400 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" && check_ldflags "-mabi=64" + ;; + p6600) + enable mips64r6 + check_cflags "-mtune=p6600 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" && check_ldflags "-mabi=64" + ;; + esac + else + # We do not disable anything. Is up to the user to disable the unwanted features. + warn 'generic cpu selected' + fi + +elif enabled ppc; then + + disable ldbrx + + 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" + disable vsx + ;; + 74*|ppc74*|powerpc74*) + cpuflags="-mcpu=7400" + disable vsx + ;; + g5|970|ppc970|powerpc970) + cpuflags="-mcpu=970" + disable vsx + ;; + power[3-6]*) + cpuflags="-mcpu=$cpu" + disable vsx + ;; + power[7-8]*) + cpuflags="-mcpu=$cpu" + ;; + cell) + cpuflags="-mcpu=cell" + enable ldbrx + disable vsx + ;; + e500mc) + cpuflags="-mcpu=e500mc" + disable altivec + ;; + e500v2) + cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double" + disable altivec + disable dcbzl + ;; + e500) + cpuflags="-mcpu=8540 -mhard-float" + disable altivec + disable dcbzl + ;; + esac + +elif enabled sparc; then + + case $cpu in + cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789]) + cpuflags="-mcpu=$cpu" + ;; + ultrasparc*|niagara[234]) + cpuflags="-mcpu=$cpu" + ;; + esac + +elif enabled x86; then + + case $cpu in + i[345]86|pentium) + cpuflags="-march=$cpu" + disable i686 + disable mmx + ;; + # targets that do NOT support nopl and conditional mov (cmov) + pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) + cpuflags="-march=$cpu" + disable i686 + ;; + # targets that do support nopl and conditional mov (cmov) + i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx\ + |core*|atom|bonnell|nehalem|westmere|silvermont|sandybridge|ivybridge|haswell|broadwell|skylake*|knl\ + |amdfam10|barcelona|b[dt]ver*|znver*) + cpuflags="-march=$cpu" + enable i686 + enable fast_cmov + ;; + # targets that do support conditional mov but on which it's slow + pentium4|pentium4m|prescott|nocona) + cpuflags="-march=$cpu" + enable i686 + disable fast_cmov + ;; + esac + +fi + +if [ "$cpu" != generic ]; then + add_cflags $cpuflags + add_asflags $cpuflags + test "$cc_type" = "$ld_type" && add_ldflags $cpuflags +fi + +# compiler sanity check +test_exec <= 201112L" && + add_cflags -std=c11 || + check_cflags -std=c99 + +check_cppflags -D_FILE_OFFSET_BITS=64 +check_cppflags -D_LARGEFILE_SOURCE + +add_host_cppflags -D_ISOC99_SOURCE +check_host_cflags -std=c99 +check_host_cflags -Wall +check_host_cflags $host_cflags_speed + +check_64bit(){ + arch32=$1 + arch64=$2 + expr=${3:-'sizeof(void *) > 4'} + test_code cc "" "int test[2*($expr) - 1]" && + subarch=$arch64 || subarch=$arch32 + enable $subarch +} + +case "$arch" in + aarch64|alpha|ia64) + enabled shared && enable_weak pic + ;; + mips) + check_64bit mips mips64 '_MIPS_SIM > 1' + enabled shared && enable_weak pic + ;; + parisc) + check_64bit parisc parisc64 + enabled shared && enable_weak pic + ;; + ppc) + check_64bit ppc ppc64 + enabled shared && enable_weak pic + ;; + s390) + check_64bit s390 s390x + enabled shared && enable_weak pic + ;; + sparc) + check_64bit sparc sparc64 + enabled shared && enable_weak pic + ;; + x86) + check_64bit x86_32 x86_64 + # Treat x32 as x64 for now. Note it also needs pic if shared + test "$subarch" = "x86_32" && test_cpp_condition stddef.h 'defined(__x86_64__)' && + subarch=x86_64 && enable x86_64 && disable x86_32 + if enabled x86_64; then + enabled shared && enable_weak pic + objformat=elf64 + fi + ;; +esac + +# OS specific +case $target_os in + aix) + SHFLAGS=-shared + add_cppflags '-I\$(SRC_PATH)/compat/aix' + enabled shared && add_ldflags -Wl,-brtl + arflags='-Xany -r -c' + striptype="" + ;; + android) + disable symver + enable section_data_rel_ro + add_cflags -fPIE + add_ldexeflags -fPIE -pie + SLIB_INSTALL_NAME='$(SLIBNAME)' + SLIB_INSTALL_LINKS= + SHFLAGS='-shared -Wl,-soname,$(SLIBNAME)' + ;; + haiku) + prefix_default="/boot/common" + network_extralibs="-lnetwork" + host_extralibs= + ;; + sunos) + SHFLAGS='-shared -Wl,-h,$$(@F)' + enabled x86 && append SHFLAGS -mimpure-text + network_extralibs="-lsocket -lnsl" + add_cppflags -D__EXTENSIONS__ + # When using suncc to build, the Solaris linker will mark + # an executable with each instruction set encountered by + # the Solaris assembler. As our libraries contain their own + # guards for processor-specific code, instead suppress + # generation of the HWCAPS ELF section on Solaris x86 only. + enabled_all suncc x86 && + echo "hwcap_1 = OVERRIDE;" > mapfile && + add_ldflags -Wl,-M,mapfile + nm_default='nm -P -g' + striptype="" + version_script='-M' + VERSION_SCRIPT_POSTPROCESS_CMD='perl $(SRC_PATH)/compat/solaris/make_sunver.pl - $(OBJS)' + ;; + netbsd) + disable symver + oss_indev_extralibs="-lossaudio" + oss_outdev_extralibs="-lossaudio" + enabled gcc || check_ldflags -Wl,-zmuldefs + ;; + openbsd|bitrig) + disable symver + striptype="" + 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) + enabled ppc && add_asflags -force_cpusubtype_ALL + install_name_dir_default='$(SHLIBDIR)' + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(INSTALL_NAME_DIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress + strip="${strip} -x" + add_ldflags -Wl,-dynamic,-search_paths_first + check_cflags -Werror=partial-availability + SLIBSUF=".dylib" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' + enabled x86_64 && objformat="macho64" || objformat="macho32" + enabled_any pic shared x86_64 || + { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; } + check_headers dispatch/dispatch.h && + add_cppflags '-I\$(SRC_PATH)/compat/dispatch_semaphore' + if test -n "$sysroot"; then + is_in -isysroot $cc $CPPFLAGS $CFLAGS || check_cppflags -isysroot $sysroot + is_in -isysroot $ld $LDFLAGS || check_ldflags -isysroot $sysroot + fi + version_script='-exported_symbols_list' + VERSION_SCRIPT_POSTPROCESS_CMD='tr " " "\n" | sed -n /global:/,/local:/p | grep ";" | tr ";" "\n" | sed -E "s/(.+)/_\1/g" | sed -E "s/(.+[^*])$$$$/\1*/"' + ;; + msys*) + die "Native MSYS builds are discouraged, please use the MINGW environment." + ;; + mingw32*|mingw64*) + target_os=mingw32 + LIBTARGET=i386 + if enabled x86_64; then + LIBTARGET="i386:x86-64" + elif enabled arm; then + LIBTARGET="arm" + elif enabled aarch64; then + LIBTARGET="arm64" + fi + if enabled shared; then + # Cannot build both shared and static libs when using dllimport. + disable static + fi + enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres + enabled x86_32 && check_ldflags -Wl,--large-address-aware + shlibdir_default="$bindir_default" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + if test_cmd lib.exe -list; then + SLIB_EXTRA_CMD=-'lib.exe -nologo -machine:$(LIBTARGET) -def:$$(@:$(SLIBSUF)=.def) -out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' + if enabled x86_64; then + LIBTARGET=x64 + fi + else + SLIB_EXTRA_CMD=-'$(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)' + SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' + SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--disable-auto-image-base $$(@:$(SLIBSUF)=.def)' + enabled x86_64 && objformat="win64" || objformat="win32" + dlltool="${cross_prefix}dlltool" + ranlib=: + enable dos_paths + check_ldflags -Wl,--nxcompat,--dynamicbase + # Lets work around some stupidity in binutils. + # ld will strip relocations from executables even though we need them + # for dynamicbase (ASLR). Using -pie does retain the reloc section + # however ld then forgets what the entry point should be (oops) so we + # have to manually (re)set it. + if enabled x86_32; then + disabled debug && add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup + elif enabled x86_64; then + disabled debug && add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup + check_ldflags -Wl,--high-entropy-va # binutils 2.25 + # Set image base >4GB for extra entropy with HEASLR + add_ldexeflags -Wl,--image-base,0x140000000 + append SHFLAGS -Wl,--image-base,0x180000000 + fi + ;; + win32|win64) + disable symver + if enabled shared; then + # Link to the import library instead of the normal static library + # for shared libs. + LD_LIB='%.lib' + # Cannot build both shared and static libs with MSVC or icl. + disable static + fi + enabled x86_32 && check_ldflags -LARGEADDRESSAWARE + 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='EXTERN_PREFIX="$(EXTERN_PREFIX)" $(SRC_PATH)/compat/windows/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)' + enabled x86_64 && objformat="win64" || 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' + enabled x86_64 && objformat="win64" || objformat="win32" + enable dos_paths + enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres + add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + ;; + *-dos|freedos|opendos) + network_extralibs="-lsocket" + objformat="coff" + enable dos_paths + ;; + linux) + enable section_data_rel_ro + enabled_any arm aarch64 && enable_weak linux_perf + ;; + irix*) + target_os=irix + ranlib="echo ignoring ranlib" + ;; + os/2*) + strip="lxlite -CS" + striptype="" + objformat="aout" + add_cppflags -D_GNU_SOURCE + add_ldflags -Zomf -Zbin-files -Zargs-wild -Zhigh-mem -Zmap + SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' + LIBSUF="_s.a" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(FULLNAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' + SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(FULLNAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(FULLNAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(FULLNAME).def; \ + echo EXPORTS >> $(SUBDIR)$(FULLNAME).def; \ + emxexp $(OBJS) >> $(SUBDIR)$(FULLNAME).def' + SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.a $(SUBDIR)$(FULLNAME).def; \ + emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.lib $(SUBDIR)$(FULLNAME).def;' + SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' + SLIB_INSTALL_LINKS= + SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(FULLNAME)_dll.a $(LIBPREF)$(FULLNAME)_dll.lib' + enable dos_paths + enable_weak os2threads + ;; + 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 + ;; + minix) + ;; + none) + ;; + *) + die "Unknown OS '$target_os'." + ;; +esac + +# test if creating links works +link_dest=$(mktemp -u $TMPDIR/dest_XXXXXXXX) +link_name=$(mktemp -u $TMPDIR/name_XXXXXXXX) +mkdir "$link_dest" +$ln_s "$link_dest" "$link_name" +touch "$link_dest/test_file" +if [ "$source_path" != "." ] && [ "$source_path" != "src" ] && ([ ! -d src ] || [ -L src ]) && [ -e "$link_name/test_file" ]; then + # create link to source path + [ -e src ] && rm src + $ln_s "$source_path" src + source_link=src +else + # creating directory links doesn't work + # fall back to using the full source path + source_link="$source_path" +fi +# cleanup +rm -r "$link_dest" +rm -r "$link_name" + +# determine libc flavour + +probe_libc(){ + pfx=$1 + pfx_no_=${pfx%_} + # uclibc defines __GLIBC__, so it needs to be checked before glibc. + if test_${pfx}cpp_condition features.h "defined __UCLIBC__"; then + eval ${pfx}libc_type=uclibc + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition features.h "defined __GLIBC__"; then + eval ${pfx}libc_type=glibc + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + # MinGW headers can be installed on Cygwin, so check for newlib first. + elif test_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then + eval ${pfx}libc_type=newlib + add_${pfx}cppflags -U__STRICT_ANSI__ -D_XOPEN_SOURCE=600 + # MinGW64 is backwards compatible with MinGW32, so check for it first. + elif test_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then + eval ${pfx}libc_type=mingw64 + if test_${pfx}cpp_condition _mingw.h "__MINGW64_VERSION_MAJOR < 3"; then + add_compat msvcrt/snprintf.o + add_cflags "-include $source_path/compat/msvcrt/snprintf.h" + fi + add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 + eval test \$${pfx_no_}cc_type = "gcc" && + add_${pfx}cppflags -D__printf__=__gnu_printf__ + test_${pfx}cpp_condition windows.h "!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600" && + add_${pfx}cppflags -D_WIN32_WINNT=0x0600 + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION" || + test_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then + eval ${pfx}libc_type=mingw32 + test_${pfx}cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \ + (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || + die "ERROR: MinGW32 runtime version must be >= 3.15." + add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 + test_${pfx}cpp_condition _mingw.h "__MSVCRT_VERSION__ < 0x0700" && + add_${pfx}cppflags -D__MSVCRT_VERSION__=0x0700 + test_${pfx}cpp_condition windows.h "!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600" && + add_${pfx}cppflags -D_WIN32_WINNT=0x0600 + eval test \$${pfx_no_}cc_type = "gcc" && + add_${pfx}cppflags -D__printf__=__gnu_printf__ + add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then + eval ${pfx}libc_type=msvcrt + if test_${pfx}cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION < 14"; then + if [ "$pfx" = host_ ]; then + add_host_cppflags -Dsnprintf=_snprintf + else + add_compat strtod.o strtod=avpriv_strtod + add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ + _snprintf=avpriv_snprintf \ + vsnprintf=avpriv_vsnprintf + fi + fi + add_${pfx}cppflags -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS + # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to + # 0x601 by default unless something else is set by the user. + # This can easily lead to us detecting functions only present + # in such new versions and producing binaries requiring windows 7.0. + # Therefore explicitly set the default to Vista unless the user has + # set something else on the command line. + # Don't do this if WINAPI_FAMILY is set and is set to a non-desktop + # family. For these cases, configure is free to use any functions + # found in the SDK headers by default. (Alternatively, we could force + # _WIN32_WINNT to 0x0602 in that case.) + test_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" || + { test_${pfx}cpp < +#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#error not desktop +#endif +#endif +EOF + if [ "$pfx" = "" ]; then + check_func strtoll || add_cflags -Dstrtoll=_strtoi64 + check_func strtoull || add_cflags -Dstrtoull=_strtoui64 + fi + elif test_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then + eval ${pfx}libc_type=klibc + elif test_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then + eval ${pfx}libc_type=bionic + elif test_${pfx}cpp_condition sys/brand.h "defined LABELED_BRAND_NAME"; then + eval ${pfx}libc_type=solaris + add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 + elif test_${pfx}cpp_condition sys/version.h "defined __DJGPP__"; then + eval ${pfx}libc_type=djgpp + add_cppflags -U__STRICT_ANSI__ + add_cflags "-include $source_path/compat/djgpp/math.h" + add_compat djgpp/math.o + fi + test_${pfx}cc < +void *v = localtime_r; +EOF +test "$?" != 0 && test_${pfx}cc -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 < +void *v = localtime_r; +EOF + + eval test -n "\${${pfx}libc_type}" && enable ${pfx}libc_${libc_type} +} + +probe_libc +probe_libc host_ + +# hacks for compiler/libc/os combinations + +case $libc_type in + bionic) + add_compat strtod.o strtod=avpriv_strtod + ;; +esac + +check_compile_assert flt_lim "float.h limits.h" "DBL_MAX == (double)DBL_MAX" || + add_cppflags '-I\$(SRC_PATH)/compat/float' + +test_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic + +set_default libdir +: ${shlibdir_default:="$libdir"} +: ${pkgconfigdir_default:="$libdir/pkgconfig"} + +set_default $PATHS_LIST +set_default nm + +disabled optimizations || enabled ossfuzz || check_cflags -fomit-frame-pointer + +enable_weak_pic() { + disabled pic && return + enable pic + add_cppflags -DPIC + case "$target_os" in + mingw*|cygwin*|win*) + ;; + *) + add_cflags -fPIC + add_asflags -fPIC + ;; + esac +} + +enabled pic && enable_weak_pic + +test_cc <= 30"; then + : + elif ! test_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__" && [ $target_os != darwin ]; then + case "${cross_prefix:-$cc}" in + *hardfloat*) enable vfp_args; fpabi=vfp ;; + *) check_ld "cc" vfp_args <= 9.0.18.0" "$ffnv_hdr_list" "" || \ + check_pkg_config ffnvcodec "ffnvcodec >= 8.2.15.8 ffnvcodec < 8.3" "$ffnv_hdr_list" "" || \ + check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.9 ffnvcodec < 8.2" "$ffnv_hdr_list" "" || \ + check_pkg_config ffnvcodec "ffnvcodec >= 8.0.14.9 ffnvcodec < 8.1" "$ffnv_hdr_list" "" +fi + +check_cpp_condition winrt windows.h "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" + +if ! disabled w32threads && ! enabled pthreads; then + check_func_headers "windows.h process.h" _beginthreadex && + check_type "windows.h" CONDITION_VARIABLE && + check_type "windows.h" INIT_ONCE && + enable w32threads || disable w32threads + if ! enabled w32threads && enabled winrt; then + check_func_headers "windows.h" CreateThread && + enable w32threads || disable w32threads + fi +fi + +# check for some common methods of building with pthread support +# do this before the optional library checks as some of them require pthreads +if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then + if check_lib pthreads pthread.h pthread_join -pthread && + check_lib pthreads pthread.h pthread_create -pthread; then + add_cflags -pthread + elif check_lib pthreads pthread.h pthread_join -pthreads && + check_lib pthreads pthread.h pthread_create -pthreads; then + add_cflags -pthreads + elif check_lib pthreads pthread.h pthread_join -ldl -pthread && + check_lib pthreads pthread.h pthread_create -ldl -pthread; then + add_cflags -ldl -pthread + elif check_lib pthreads pthread.h pthread_join -lpthreadGC2 && + check_lib pthreads pthread.h pthread_create -lpthreadGC2; then + : + elif check_lib pthreads pthread.h pthread_join -lpthread && + check_lib pthreads pthread.h pthread_create -lpthread; then + : + elif check_func pthread_join && check_func pthread_create; then + enable pthreads + fi + check_cc pthreads "pthread.h" "static pthread_mutex_t atomic_lock = PTHREAD_MUTEX_INITIALIZER" + + if enabled pthreads; then + check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0); sem_timedwait(s,0); sem_destroy(s)" $pthreads_extralibs + check_func pthread_cancel $pthreads_extralibs + fi +fi + +enabled zlib && { check_pkg_config zlib zlib "zlib.h" zlibVersion || + check_lib zlib zlib.h zlibVersion -lz; } +enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2 +enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma + +# On some systems dynamic loading requires no extra linker flags +check_lib libdl dlfcn.h "dlopen dlsym" || check_lib libdl dlfcn.h "dlopen dlsym" -ldl + +check_lib libm math.h sin -lm + +atan2f_args=2 +copysign_args=2 +hypot_args=2 +ldexpf_args=2 +powf_args=2 + +for func in $MATH_FUNCS; do + eval check_mathfunc $func \${${func}_args:-1} $libm_extralibs +done + +for func in $COMPLEX_FUNCS; do + eval check_complexfunc $func \${${func}_args:-1} +done + +# these are off by default, so fail if requested and not available +enabled cuda_nvcc && { check_nvcc cuda_nvcc || die "ERROR: failed checking for nvcc."; } +enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint +enabled decklink && { require_headers DeckLinkAPI.h && + { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a090500" || die "ERROR: Decklink API version must be >= 10.9.5."; } } +enabled frei0r && require_headers "frei0r.h dlfcn.h" +enabled gmp && require gmp gmp.h mpz_export -lgmp +enabled gnutls && require_pkg_config gnutls gnutls gnutls/gnutls.h gnutls_global_init +enabled jni && { [ $target_os = "android" ] && check_headers jni.h && enabled pthreads || die "ERROR: jni not found"; } +enabled ladspa && require_headers "ladspa.h dlfcn.h" +enabled libaom && require_pkg_config libaom "aom >= 1.0.0" aom/aom_codec.h aom_codec_version +enabled libaribb24 && { check_pkg_config libaribb24 "aribb24 > 1.0.3" "aribb24/aribb24.h" arib_instance_new || + { enabled gpl && require_pkg_config libaribb24 aribb24 "aribb24/aribb24.h" arib_instance_new; } || + die "ERROR: libaribb24 requires version higher than 1.0.3 or --enable-gpl."; } +enabled lv2 && require_pkg_config lv2 lilv-0 "lilv/lilv.h" lilv_world_new +enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883 +enabled libass && require_pkg_config libass libass ass/ass.h ass_library_init +enabled libbluray && require_pkg_config libbluray libbluray libbluray/bluray.h bd_open +enabled libbs2b && require_pkg_config libbs2b libbs2b bs2b.h bs2b_open +enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && + { check_lib libcelt 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 libcaca caca caca.h caca_create_canvas +enabled libcodec2 && require libcodec2 codec2/codec2.h codec2_create -lcodec2 +enabled libdav1d && require_pkg_config libdav1d "dav1d >= 0.2.1" "dav1d/dav1d.h" dav1d_version +enabled libdavs2 && require_pkg_config libdavs2 "davs2 >= 1.6.0" davs2.h davs2_decoder_open +enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 dc1394/dc1394.h dc1394_new +enabled libdrm && require_pkg_config libdrm libdrm xf86drm.h drmGetVersion +enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || + { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && + warn "using libfdk without pkg-config"; } } +flite_extralibs="-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 && require libflite "flite/flite.h" flite_init $flite_extralibs +enabled fontconfig && enable libfontconfig +enabled libfontconfig && require_pkg_config libfontconfig fontconfig "fontconfig/fontconfig.h" FcInit +enabled libfreetype && require_pkg_config libfreetype freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType +enabled libfribidi && require_pkg_config libfribidi fribidi fribidi.h fribidi_version_info +enabled libgme && { check_pkg_config libgme libgme gme/gme.h gme_new_emu || + require libgme gme/gme.h gme_new_emu -lgme -lstdc++; } +enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do + check_lib libgsm "${gsm_hdr}" gsm_create -lgsm && break; + done || die "ERROR: libgsm not found"; } +enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc $pthreads_extralibs +enabled libklvanc && require libklvanc libklvanc/vanc.h klvanc_context_create -lklvanc +enabled libkvazaar && require_pkg_config libkvazaar "kvazaar >= 0.8.1" kvazaar.h kvz_api_get +enabled liblensfun && require_pkg_config liblensfun lensfun lensfun.h lf_db_new +# While it may appear that require is being used as a pkg-config +# fallback for libmfx, it is actually being used to detect a different +# installation route altogether. If libmfx is installed via the Intel +# Media SDK or Intel Media Server Studio, these don't come with +# pkg-config support. Instead, users should make sure that the build +# can find the libraries and headers through other means. +enabled libmfx && { check_pkg_config libmfx libmfx "mfx/mfxvideo.h" MFXInit || + { require libmfx "mfx/mfxvideo.h" MFXInit "-llibmfx $advapi32_extralibs" && warn "using libmfx without pkg-config"; } } +enabled libmodplug && require_pkg_config libmodplug libmodplug libmodplug/modplug.h ModPlug_Load +enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs +enabled libmysofa && { check_pkg_config libmysofa libmysofa mysofa.h mysofa_load || + require libmysofa mysofa.h mysofa_load -lmysofa $zlib_extralibs; } +enabled libnpp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc -lnppidei || + check_lib libnpp npp.h nppGetLibVersion -lnppi -lnppc -lnppidei || + die "ERROR: libnpp not found"; } +enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb +enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb +enabled libopencv && { check_headers opencv2/core/core_c.h && + { check_pkg_config libopencv opencv opencv2/core/core_c.h cvCreateImageHeader || + require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || + require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } +enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion +enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || + { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } +enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" +enabled libopus && { + enabled libopus_decoder && { + require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create + } + enabled libopus_encoder && { + require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create + } +} +enabled libpulse && require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new +enabled librsvg && require_pkg_config librsvg librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo +enabled librtmp && require_pkg_config librtmp librtmp librtmp/rtmp.h RTMP_Socket +enabled librubberband && require_pkg_config librubberband "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new -lstdc++ && append librubberband_extralibs "-lstdc++" +enabled libshine && require_pkg_config libshine shine shine/layer3.h shine_encode_buffer +enabled libsmbclient && { check_pkg_config libsmbclient smbclient libsmbclient.h smbc_init || + require libsmbclient libsmbclient.h smbc_init -lsmbclient; } +enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++ +enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr +enabled libssh && require_pkg_config libssh libssh libssh/sftp.h sftp_init +enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init +enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket +enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow +enabled libtesseract && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate +enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg +enabled libtls && require_pkg_config libtls libtls tls.h tls_configure +enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame && + { check_lib libtwolame twolame.h twolame_encode_buffer_float32_interleaved -ltwolame || + die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } +enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl +enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit +enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 1.3.9" libvmaf.h compute_vmaf +enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc +enabled libvorbis && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init && + require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init + +enabled libvpx && { + enabled libvpx_vp8_decoder && { + check_pkg_config libvpx_vp8_decoder "vpx >= 1.4.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp8_dx || + check_lib libvpx_vp8_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp8_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + enabled libvpx_vp8_encoder && { + check_pkg_config libvpx_vp8_encoder "vpx >= 1.4.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp8_cx || + check_lib libvpx_vp8_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp8_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + enabled libvpx_vp9_decoder && { + check_pkg_config libvpx_vp9_decoder "vpx >= 1.4.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp9_dx || + check_lib libvpx_vp9_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + enabled libvpx_vp9_encoder && { + check_pkg_config libvpx_vp9_encoder "vpx >= 1.4.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp9_cx || + check_lib libvpx_vp9_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs" + } + if disabled_all libvpx_vp8_decoder libvpx_vp9_decoder libvpx_vp8_encoder libvpx_vp9_encoder; then + die "libvpx enabled but no supported decoders found" + fi +} + +enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack +enabled libwebp && { + enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion + enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; } +enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode || + { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs" && + warn "using libx264 without pkg-config"; } } && + require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && + check_cpp_condition libx262 x264.h "X264_MPEG2" +enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get && + require_cpp_condition libx265 x265.h "X265_BUILD >= 68" +enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" +enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get +enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore +enabled libzimg && require_pkg_config libzimg "zimg >= 2.7.0" zimg.h zimg_get_api_version +enabled libzmq && require_pkg_config libzmq libzmq zmq.h zmq_ctx_new +enabled libzvbi && require_pkg_config libzvbi zvbi-0.2 libzvbi.h vbi_decoder_new && + { test_cpp_condition libzvbi.h "VBI_VERSION_MAJOR > 0 || VBI_VERSION_MINOR > 2 || VBI_VERSION_MINOR == 2 && VBI_VERSION_MICRO >= 28" || + enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; } +enabled libxml2 && require_pkg_config libxml2 libxml-2.0 libxml2/libxml/xmlversion.h xmlCheckVersion +enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt.h mbedtls_x509_crt_init || + check_pkg_config mbedtls mbedtls mbedtls/ssl.h mbedtls_ssl_init || + check_lib mbedtls mbedtls/ssl.h mbedtls_ssl_init -lmbedtls -lmbedx509 -lmbedcrypto || + die "ERROR: mbedTLS not found"; } +enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; } +enabled mmal && { check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host || + { ! enabled cross_compile && + add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline && + add_ldflags -L/opt/vc/lib/ && + check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host; } || + die "ERROR: mmal not found" && + check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; } +enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do + check_lib openal 'AL/al.h' alGetError "${al_extralibs}" && break; done } || + die "ERROR: openal not found"; } && + { test_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 opencl && { check_pkg_config opencl OpenCL CL/cl.h clEnqueueNDRangeKernel || + check_lib opencl OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL || + check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL || + die "ERROR: opencl not found"; } && + { test_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" || + test_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" || + die "ERROR: opencl must be installed and version must be 1.2 or compatible"; } +enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL" || + check_lib opengl windows.h wglGetProcAddress "-lopengl32 -lgdi32" || + check_lib opengl OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" || + check_lib opengl ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" || + die "ERROR: opengl not found." + } +enabled omx && require_headers OMX_Core.h +enabled omx_rpi && { check_headers OMX_Core.h || + { ! enabled cross_compile && add_cflags -isystem/opt/vc/include/IL && check_headers OMX_Core.h ; } || + die "ERROR: OpenMAX IL headers not found"; } && enable omx +enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl || + check_pkg_config openssl openssl openssl/ssl.h SSL_library_init || + check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto || + check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 || + check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || + die "ERROR: openssl not found"; } +enabled pocketsphinx && require_pkg_config pocketsphinx pocketsphinx pocketsphinx/pocketsphinx.h ps_init +enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create && + require_pkg_config rockchip_mpp "rockchip_mpp >= 1.3.7" rockchip/rk_mpi.h mpp_create && + { enabled libdrm || + die "ERROR: rkmpp requires --enable-libdrm"; } + } +enabled vapoursynth && require_pkg_config vapoursynth "vapoursynth-script >= 42" VSScript.h vsscript_init + + +if enabled gcrypt; then + GCRYPT_CONFIG="${cross_prefix}libgcrypt-config" + if "${GCRYPT_CONFIG}" --version > /dev/null 2>&1; then + gcrypt_cflags=$("${GCRYPT_CONFIG}" --cflags) + gcrypt_extralibs=$("${GCRYPT_CONFIG}" --libs) + check_func_headers gcrypt.h gcry_mpi_new $gcrypt_cflags $gcrypt_extralibs || + die "ERROR: gcrypt not found" + add_cflags $gcrypt_cflags + else + require gcrypt gcrypt.h gcry_mpi_new -lgcrypt + fi +fi + +if enabled sdl2; then + SDL2_CONFIG="${cross_prefix}sdl2-config" + test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent + if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then + sdl2_cflags=$("${SDL2_CONFIG}" --cflags) + sdl2_extralibs=$("${SDL2_CONFIG}" --libs) + test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x020001" $sdl2_cflags && + test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x020100" $sdl2_cflags && + check_func_headers SDL_events.h SDL_PollEvent $sdl2_extralibs $sdl2_cflags && + enable sdl2 + fi + if test $target_os = "mingw32"; then + sdl2_extralibs=$(filter_out '-mwindows' $sdl2_extralibs) + fi +fi + +if enabled decklink; then + case $target_os in + mingw32*|mingw64*|win32|win64) + decklink_outdev_extralibs="$decklink_outdev_extralibs -lole32 -loleaut32" + decklink_indev_extralibs="$decklink_indev_extralibs -lole32 -loleaut32" + ;; + esac +fi + +enabled securetransport && + check_func SecIdentityCreate "-Wl,-framework,CoreFoundation -Wl,-framework,Security" && + check_lib securetransport "Security/SecureTransport.h Security/Security.h" "SSLCreateContext" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" || + disable securetransport + +enabled securetransport && + check_func SecItemImport "-Wl,-framework,CoreFoundation -Wl,-framework,Security" + +enabled schannel && + check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 && + test_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && + schannel_extralibs="-lsecur32" || + disable schannel + +makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo +enabled makeinfo \ + && [ 0$(makeinfo --version | grep "texinfo" | sed 's/.*texinfo[^0-9]*\([0-9]*\)\..*/\1/') -ge 5 ] \ + && enable makeinfo_html || disable makeinfo_html +disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html +perl -v > /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 V4L2 codecs available in the API +check_headers linux/fb.h +check_headers linux/videodev2.h +test_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete +check_cc v4l2_m2m linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_VIDEO_M2M | V4L2_BUF_FLAG_LAST;" +check_cc vc1_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VC1_ANNEX_G;" +check_cc mpeg1_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG1;" +check_cc mpeg2_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2;" +check_cc mpeg4_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG4;" +check_cc hevc_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_HEVC;" +check_cc h263_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_H263;" +check_cc h264_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_H264;" +check_cc vp8_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP8;" +check_cc vp9_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;" + +check_headers sys/videoio.h +test_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete + +check_lib user32 "windows.h winuser.h" GetShellWindow -luser32 +check_lib vfw32 "windows.h vfw.h" capCreateCaptureWindow -lvfw32 +# check that WM_CAP_DRIVER_CONNECT is defined to the proper value +# w32api 3.12 had it defined wrong +check_cpp_condition vfwcap_defines vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" + +check_type "dshow.h" IBaseFilter + +# check for ioctl_meteor.h, ioctl_bt848.h and alternatives +check_headers "dev/bktr/ioctl_meteor.h dev/bktr/ioctl_bt848.h" || + check_headers "machine/ioctl_meteor.h machine/ioctl_bt848.h" || + check_headers "dev/video/meteor/ioctl_meteor.h dev/video/bktr/ioctl_bt848.h" || + check_headers "dev/ic/bt8xx.h" + +if check_struct sys/soundcard.h audio_buf_info bytes; then + enable_sanitized sys/soundcard.h +else + test_cc -D__BSD_VISIBLE -D__XSI_VISIBLE < + audio_buf_info abc; +EOF +fi + +enabled alsa && check_pkg_config alsa alsa "alsa/asoundlib.h" snd_pcm_htimestamp || + check_lib alsa alsa/asoundlib.h snd_pcm_htimestamp -lasound + +enabled libjack && + require_pkg_config libjack jack jack/jack.h jack_port_get_latency_range + +enabled sndio && check_lib sndio sndio.h sio_open -lsndio + +if enabled libcdio; then + check_pkg_config libcdio libcdio_paranoia "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open || + check_pkg_config libcdio libcdio_paranoia "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open || + check_lib libcdio "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || + check_lib libcdio "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || + die "ERROR: No usable libcdio/cdparanoia found" +fi + +enabled libxcb && check_pkg_config libxcb "xcb >= 1.4" xcb/xcb.h xcb_connect || + disable libxcb_shm libxcb_shape libxcb_xfixes + +if enabled libxcb; then + enabled libxcb_shm && check_pkg_config libxcb_shm xcb-shm xcb/shm.h xcb_shm_attach + enabled libxcb_shape && check_pkg_config libxcb_shape xcb-shape xcb/shape.h xcb_shape_get_rectangles + enabled libxcb_xfixes && check_pkg_config libxcb_xfixes xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image +fi + +check_func_headers "windows.h" CreateDIBSection "$gdigrab_indev_extralibs" + +# d3d11va requires linking directly to dxgi and d3d11 if not building for +# the desktop api partition +test_cpp < +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#error desktop, not uwp +#else +// WINAPI_FAMILY_APP, WINAPI_FAMILY_PHONE_APP => UWP +#endif +#else +#error no family set +#endif +EOF + +enabled vaapi && + check_pkg_config vaapi "libva >= 0.35.0" "va/va.h" vaInitialize + +if enabled vaapi; then + check_pkg_config vaapi_drm "libva-drm" "va/va_drm.h" vaGetDisplayDRM + + if enabled xlib; then + check_pkg_config vaapi_x11 "libva-x11" "va/va_x11.h" vaGetDisplay + fi + + check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)" + + check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC" + check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth + check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags + check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC" + check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG" + check_type "va/va.h va/va_enc_vp8.h" "VAEncPictureParameterBufferVP8" + check_type "va/va.h va/va_enc_vp9.h" "VAEncPictureParameterBufferVP9" +fi + +if enabled_all opencl libdrm ; then + check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" && + enable opencl_drm_beignet + check_func_headers "CL/cl_ext.h" clImportMemoryARM && + enable opencl_drm_arm +fi + +if enabled_all opencl vaapi ; then + if enabled opencl_drm_beignet ; then + enable opencl_vaapi_beignet + else + check_type "CL/cl.h CL/cl_va_api_media_sharing_intel.h" "clCreateFromVA_APIMediaSurfaceINTEL_fn" && + enable opencl_vaapi_intel_media + fi +fi + +if enabled_all opencl dxva2 ; then + check_type "CL/cl_dx9_media_sharing.h" cl_dx9_surface_info_khr && + enable opencl_dxva2 +fi + +if enabled_all opencl d3d11va ; then + check_type "CL/cl_d3d11.h" clGetDeviceIDsFromD3D11KHR_fn && + enable opencl_d3d11 +fi + +enabled vdpau && + check_cpp_condition vdpau vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" + +enabled vdpau && + check_lib vdpau_x11 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau -lX11 + +enabled crystalhd && check_lib crystalhd "stdint.h libcrystalhd/libcrystalhd_if.h" DtsCrystalHDVersion -lcrystalhd + +if enabled x86; then + case $target_os in + mingw32*|mingw64*|win32|win64|linux|cygwin*) + ;; + *) + disable ffnvcodec cuvid nvdec nvenc + ;; + esac +elif enabled ppc64 && ! enabled bigendian; then + case $target_os in + linux) + ;; + *) + disable ffnvcodec cuvid nvdec nvenc + ;; + esac +else + disable ffnvcodec cuvid nvdec nvenc +fi + +enabled ffnvcodec && enable cuda + +enabled nvenc && + test_cc -I$source_path < +NV_ENCODE_API_FUNCTION_LIST flist; +void f(void) { struct { const GUID guid; } s[] = { { NV_ENC_PRESET_HQ_GUID } }; } +int main(void) { return 0; } +EOF + +enabled amf && + check_cpp_condition amf "AMF/core/Version.h" \ + "(AMF_VERSION_MAJOR << 48 | AMF_VERSION_MINOR << 32 | AMF_VERSION_RELEASE << 16 | AMF_VERSION_BUILD_NUM) >= 0x0001000400040001" + +# Funny iconv installations are not unusual, so check it after all flags have been set +if enabled libc_iconv; then + check_func_headers iconv.h iconv +elif enabled iconv; then + check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv +fi + +enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" + +# add some useful compiler flags if supported +check_cflags -Wdeclaration-after-statement +check_cflags -Wall +check_cflags -Wdisabled-optimization +check_cflags -Wpointer-arith +check_cflags -Wredundant-decls +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 +check_cflags -Wempty-body + +if enabled extra_warnings; then + check_cflags -Wcast-qual + check_cflags -Wextra + check_cflags -Wpedantic +fi + +check_disable_warning(){ + warning_flag=-W${1#-Wno-} + test_cflags $unknown_warning_flags $warning_flag && add_cflags $1 +} + +test_cflags -Werror=unused-command-line-argument && + append unknown_warning_flags "-Werror=unused-command-line-argument" +test_cflags -Werror=unknown-warning-option && + append unknown_warning_flags "-Werror=unknown-warning-option" + +check_disable_warning -Wno-parentheses +check_disable_warning -Wno-switch +check_disable_warning -Wno-format-zero-length +check_disable_warning -Wno-pointer-sign +check_disable_warning -Wno-unused-const-variable +check_disable_warning -Wno-bool-operation +check_disable_warning -Wno-char-subscripts + +check_disable_warning_headers(){ + warning_flag=-W${1#-Wno-} + test_cflags $warning_flag && add_cflags_headers $1 +} + +check_disable_warning_headers -Wno-deprecated-declarations +check_disable_warning_headers -Wno-unused-variable + +test_cc < $TMPV + if test_ldflags -Wl,${version_script},$TMPV; then + append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver' + quotes='""' + test_cc <= 1400" && + add_cflags -Qansi-alias + # Some inline asm is not compilable in debug + if enabled debug; then + disable ebp_available + disable ebx_available + fi + fi + # msvcrt10 x64 incorrectly enables log2, only msvcrt12 (MSVC 2013) onwards actually has log2. + check_cpp_condition log2 crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" + # The CRT headers contain __declspec(restrict) in a few places, but if redefining + # restrict, this might break. MSVC 2010 and 2012 fail with __declspec(__restrict) + # (as it ends up if the restrict redefine is done before including stdlib.h), while + # MSVC 2013 and newer can handle it fine. + # If this declspec fails, force including stdlib.h before the restrict redefinition + # happens in config.h. + if [ $restrict_keyword != restrict ]; then + test_cc <= 190024218" || + check_cflags -d2SSAOptimizer- + # enable utf-8 source processing on VS2015 U2 and newer + test_cpp_condition windows.h "_MSC_FULL_VER >= 190023918" && + add_cflags -utf-8 +fi + +for pfx in "" host_; do + varname=${pfx%_}cc_type + eval "type=\$$varname" + if [ "$type" = "msvc" ]; then + test_${pfx}cc < Makefile + +esc(){ + echo "$*" | sed 's/%/%25/g;s/:/%3a/g' +} + +echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" > ffbuild/config.fate + +enabled stripping || strip="echo skipping strip" +enabled stripping || striptype="" + +config_files="$TMPH ffbuild/config.mak doc/config.texi" + +cat > ffbuild/config.mak <> ffbuild/config.mak' $LIBRARY_LIST + +for entry in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do + eval echo "EXTRALIBS-${entry}=\$${entry}_extralibs" >> ffbuild/config.mak +done + +cat > $TMPH <>$TMPH + +test -n "$malloc_prefix" && + echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH + +if enabled x86asm; then + append config_files $TMPASM + cat > $TMPASM <> $TMPH + + +mkdir -p doc +mkdir -p tests +mkdir -p tests/api +echo "@c auto-generated by configure - do not modify! " > doc/config.texi + +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" >> ffbuild/config.mak + +# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. +cp_if_changed $TMPH config.h +touch ffbuild/.config + +enabled x86asm && cp_if_changed $TMPASM config.asm + +cat > $TMPH <> $TMPH + +cp_if_changed $TMPH libavutil/avconfig.h + +# full_filter_name_foo=vf_foo +# full_filter_name_bar=asrc_bar +# ... +eval "$(sed -n "s/^extern AVFilter ff_\([avfsinkrc]\{2,5\}\)_\(.*\);/full_filter_name_\2=\1_\2/p" $source_path/libavfilter/allfilters.c)" + +# generate the lists of enabled components +print_enabled_components(){ + file=$1 + struct_name=$2 + name=$3 + shift 3 + echo "static const $struct_name * const $name[] = {" > $TMPH + for c in $*; do + if enabled $c; then + case $name in + filter_list) + eval c=\$full_filter_name_${c%_filter} + ;; + indev_list) + c=${c%_indev}_demuxer + ;; + outdev_list) + c=${c%_outdev}_muxer + ;; + esac + printf " &ff_%s,\n" $c >> $TMPH + fi + done + if [ "$name" = "filter_list" ]; then + for c in asrc_abuffer vsrc_buffer asink_abuffer vsink_buffer; do + printf " &ff_%s,\n" $c >> $TMPH + done + fi + echo " NULL };" >> $TMPH + cp_if_changed $TMPH $file +} + +print_enabled_components libavfilter/filter_list.c AVFilter filter_list $FILTER_LIST +print_enabled_components libavcodec/codec_list.c AVCodec codec_list $CODEC_LIST +print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list $PARSER_LIST +print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST +print_enabled_components libavformat/demuxer_list.c AVInputFormat demuxer_list $DEMUXER_LIST +print_enabled_components libavformat/muxer_list.c AVOutputFormat muxer_list $MUXER_LIST +print_enabled_components libavdevice/indev_list.c AVInputFormat indev_list $INDEV_LIST +print_enabled_components libavdevice/outdev_list.c AVOutputFormat outdev_list $OUTDEV_LIST +print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST + +# Settings for pkg-config files + +cat > $TMPH <> $TMPH +done + +cp_if_changed $TMPH ffbuild/config.sh diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 7628cecb99..0000000000 --- a/doc/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/*.1 -/*.3 -/*.html -/*.pod -/config.texi -/avoptions_codec.texi -/avoptions_format.texi -/fate.txt -/print_options diff --git a/doc/doxy/.gitignore b/doc/doxy/.gitignore deleted file mode 100644 index ac7af2e80e..0000000000 --- a/doc/doxy/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/html/ diff --git a/doc/examples/.gitignore b/doc/examples/.gitignore deleted file mode 100644 index 75152cb50b..0000000000 --- a/doc/examples/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -/avio_dir_cmd -/avio_reading -/decode_audio -/decode_video -/demuxing_decoding -/encode_audio -/encode_video -/extract_mvs -/filter_audio -/filtering_audio -/filtering_video -/http_multiclient -/hw_decode -/metadata -/muxing -/pc-uninstalled -/qsvdec -/remuxing -/resampling_audio -/scaling_video -/transcode_aac -/transcoding -/vaapi_encode -/vaapi_transcode diff --git a/ffbuild/.gitignore b/ffbuild/.gitignore deleted file mode 100644 index 38ed170752..0000000000 --- a/ffbuild/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.config -/config.fate -/config.log -/config.mak -/config.sh diff --git a/.gitattributes b/ffmpeg-y/.gitattributes old mode 100644 new mode 100755 similarity index 100% rename from .gitattributes rename to ffmpeg-y/.gitattributes diff --git a/.travis.yml b/ffmpeg-y/.travis.yml old mode 100644 new mode 100755 similarity index 100% rename from .travis.yml rename to ffmpeg-y/.travis.yml diff --git a/CONTRIBUTING.md b/ffmpeg-y/CONTRIBUTING.md old mode 100644 new mode 100755 similarity index 100% rename from CONTRIBUTING.md rename to ffmpeg-y/CONTRIBUTING.md diff --git a/COPYING.GPLv2 b/ffmpeg-y/COPYING.GPLv2 old mode 100644 new mode 100755 similarity index 100% rename from COPYING.GPLv2 rename to ffmpeg-y/COPYING.GPLv2 diff --git a/COPYING.GPLv3 b/ffmpeg-y/COPYING.GPLv3 old mode 100644 new mode 100755 similarity index 100% rename from COPYING.GPLv3 rename to ffmpeg-y/COPYING.GPLv3 diff --git a/COPYING.LGPLv2.1 b/ffmpeg-y/COPYING.LGPLv2.1 old mode 100644 new mode 100755 similarity index 100% rename from COPYING.LGPLv2.1 rename to ffmpeg-y/COPYING.LGPLv2.1 diff --git a/COPYING.LGPLv3 b/ffmpeg-y/COPYING.LGPLv3 old mode 100644 new mode 100755 similarity index 100% rename from COPYING.LGPLv3 rename to ffmpeg-y/COPYING.LGPLv3 diff --git a/CREDITS b/ffmpeg-y/CREDITS old mode 100644 new mode 100755 similarity index 100% rename from CREDITS rename to ffmpeg-y/CREDITS diff --git a/Changelog b/ffmpeg-y/Changelog old mode 100644 new mode 100755 similarity index 100% rename from Changelog rename to ffmpeg-y/Changelog diff --git a/INSTALL.md b/ffmpeg-y/INSTALL.md old mode 100644 new mode 100755 similarity index 100% rename from INSTALL.md rename to ffmpeg-y/INSTALL.md diff --git a/LICENSE.md b/ffmpeg-y/LICENSE.md old mode 100644 new mode 100755 similarity index 100% rename from LICENSE.md rename to ffmpeg-y/LICENSE.md diff --git a/MAINTAINERS b/ffmpeg-y/MAINTAINERS old mode 100644 new mode 100755 similarity index 100% rename from MAINTAINERS rename to ffmpeg-y/MAINTAINERS diff --git a/ffmpeg-y/Makefile b/ffmpeg-y/Makefile new file mode 100755 index 0000000000..fe6d664cbf --- /dev/null +++ b/ffmpeg-y/Makefile @@ -0,0 +1,181 @@ +MAIN_MAKEFILE=1 +include ffbuild/config.mak + +vpath %.c $(SRC_PATH) +vpath %.cpp $(SRC_PATH) +vpath %.h $(SRC_PATH) +vpath %.inc $(SRC_PATH) +vpath %.m $(SRC_PATH) +vpath %.S $(SRC_PATH) +vpath %.asm $(SRC_PATH) +vpath %.rc $(SRC_PATH) +vpath %.v $(SRC_PATH) +vpath %.texi $(SRC_PATH) +vpath %.cu $(SRC_PATH) +vpath %.ptx $(SRC_PATH) +vpath %/fate_config.sh.template $(SRC_PATH) + +TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch +HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options + +# $(FFLIBS-yes) needs to be in linking order +FFLIBS-$(CONFIG_AVDEVICE) += avdevice +FFLIBS-$(CONFIG_AVFILTER) += avfilter +FFLIBS-$(CONFIG_AVFORMAT) += avformat +FFLIBS-$(CONFIG_AVCODEC) += avcodec +FFLIBS-$(CONFIG_AVRESAMPLE) += avresample +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 + +SKIPHEADERS = compat/w32pthreads.h + +# first so "all" becomes default target +all: all-yes + +include $(SRC_PATH)/tools/Makefile +include $(SRC_PATH)/ffbuild/common.mak +ifeq ($(LLVM_COMPILER), y) +CFLAGS += --target=arm-liteos --sysroot=../../../../../prebuilts/lite/sysroot +LDFLAGS += --target=arm-liteos --sysroot=../../../../../prebuilts/lite/sysroot +endif +FF_EXTRALIBS := $(FFEXTRALIBS) +FF_DEP_LIBS := $(DEP_LIBS) +FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS) + +$(TOOLS): %$(EXESUF): %.o + $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(EXTRALIBS-$(*F)) $(EXTRALIBS) $(ELIBS) + +target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS) + $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) + +tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS) + $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) + +tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS) +tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS) +tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS) +tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) + +CONFIGURABLE_COMPONENTS = \ + $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \ + $(SRC_PATH)/libavcodec/bitstream_filters.c \ + $(SRC_PATH)/libavcodec/parsers.c \ + $(SRC_PATH)/libavformat/protocols.c \ + +config.h: ffbuild/.config +ffbuild/.config: $(CONFIGURABLE_COMPONENTS) + @-tput bold 2>/dev/null + @-printf '\nWARNING: $(?) newer than config.h, rerun configure\n\n' + @-tput sgr0 2>/dev/null + +SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \ + HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ + ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \ + ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS \ + MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \ + MMI-OBJS OBJS SLIBOBJS 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)/$(1)/$(INTRINSICS)/Makefile +include $(SRC_PATH)/ffbuild/library.mak +endef + +$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) + +include $(SRC_PATH)/fftools/Makefile +include $(SRC_PATH)/doc/Makefile +include $(SRC_PATH)/doc/examples/Makefile + +libavcodec/utils.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h + +$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) +ifeq ($(STRIPTYPE),direct) + $(STRIP) -o $@ $< +else + $(CP) $< $@ + $(STRIP) $@ +endif + +%$(PROGSSUF)_g$(EXESUF): $(FF_DEP_LIBS) + $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) + +VERSION_SH = $(SRC_PATH)/ffbuild/version.sh +GIT_LOG = $(SRC_PATH)/.git/logs/HEAD + +.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak +.version: M=@ + +libavutil/ffversion.h .version: + $(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION) + $(Q)touch .version + +# force version.sh to run whenever version might have changed +-include .version + +install: install-libs install-headers + +install-libs: install-libs-yes + +install-data: $(DATA_FILES) + $(Q)mkdir -p "$(DATADIR)" + $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)" + +uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig + +uninstall-data: + $(RM) -r "$(DATADIR)" + +clean:: + $(RM) $(CLEANSUFFIXES) + $(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) $(addprefix compat/*/*/,$(CLEANSUFFIXES)) + $(RM) -r coverage-html + $(RM) -rf coverage.info coverage.info.in lcov + +distclean:: clean + $(RM) .version avversion.h config.asm config.h mapfile \ + ffbuild/.config ffbuild/config.* libavutil/avconfig.h \ + version.h libavutil/ffversion.h libavcodec/codec_names.h \ + libavcodec/bsf_list.c libavformat/protocol_list.c \ + libavcodec/codec_list.c libavcodec/parser_list.c \ + libavformat/muxer_list.c libavformat/demuxer_list.c \ + libavdevice/indev_list.c libavdevice/outdev_list.c libavfilter/filter_list.c +ifeq ($(SRC_LINK),src) + $(RM) src +endif + $(RM) -rf doc/examples/pc-uninstalled + +config: + $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) + +build: all alltools examples testprogs +check: all alltools examples testprogs fate + +include $(SRC_PATH)/tests/Makefile + +$(sort $(OUTDIRS)): + $(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 build check config testprogs +.PHONY: *clean install* uninstall* diff --git a/README.md b/ffmpeg-y/README.md old mode 100644 new mode 100755 similarity index 100% rename from README.md rename to ffmpeg-y/README.md diff --git a/RELEASE b/ffmpeg-y/RELEASE old mode 100644 new mode 100755 similarity index 100% rename from RELEASE rename to ffmpeg-y/RELEASE diff --git a/RELEASE_NOTES b/ffmpeg-y/RELEASE_NOTES old mode 100644 new mode 100755 similarity index 100% rename from RELEASE_NOTES rename to ffmpeg-y/RELEASE_NOTES diff --git a/VERSION b/ffmpeg-y/VERSION similarity index 100% rename from VERSION rename to ffmpeg-y/VERSION diff --git a/adapt_liteos_config.sh b/ffmpeg-y/adapt_liteos_config.sh similarity index 100% rename from adapt_liteos_config.sh rename to ffmpeg-y/adapt_liteos_config.sh diff --git a/compat/aix/math.h b/ffmpeg-y/compat/aix/math.h old mode 100644 new mode 100755 similarity index 100% rename from compat/aix/math.h rename to ffmpeg-y/compat/aix/math.h diff --git a/compat/atomics/dummy/stdatomic.h b/ffmpeg-y/compat/atomics/dummy/stdatomic.h old mode 100644 new mode 100755 similarity index 100% rename from compat/atomics/dummy/stdatomic.h rename to ffmpeg-y/compat/atomics/dummy/stdatomic.h diff --git a/compat/atomics/gcc/stdatomic.h b/ffmpeg-y/compat/atomics/gcc/stdatomic.h old mode 100644 new mode 100755 similarity index 100% rename from compat/atomics/gcc/stdatomic.h rename to ffmpeg-y/compat/atomics/gcc/stdatomic.h diff --git a/compat/atomics/pthread/stdatomic.c b/ffmpeg-y/compat/atomics/pthread/stdatomic.c old mode 100644 new mode 100755 similarity index 100% rename from compat/atomics/pthread/stdatomic.c rename to ffmpeg-y/compat/atomics/pthread/stdatomic.c diff --git a/compat/atomics/pthread/stdatomic.h b/ffmpeg-y/compat/atomics/pthread/stdatomic.h old mode 100644 new mode 100755 similarity index 100% rename from compat/atomics/pthread/stdatomic.h rename to ffmpeg-y/compat/atomics/pthread/stdatomic.h diff --git a/compat/atomics/suncc/stdatomic.h b/ffmpeg-y/compat/atomics/suncc/stdatomic.h old mode 100644 new mode 100755 similarity index 100% rename from compat/atomics/suncc/stdatomic.h rename to ffmpeg-y/compat/atomics/suncc/stdatomic.h diff --git a/compat/atomics/win32/stdatomic.h b/ffmpeg-y/compat/atomics/win32/stdatomic.h old mode 100644 new mode 100755 similarity index 100% rename from compat/atomics/win32/stdatomic.h rename to ffmpeg-y/compat/atomics/win32/stdatomic.h diff --git a/compat/avisynth/avisynth_c.h b/ffmpeg-y/compat/avisynth/avisynth_c.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/avisynth_c.h rename to ffmpeg-y/compat/avisynth/avisynth_c.h diff --git a/compat/avisynth/avs/capi.h b/ffmpeg-y/compat/avisynth/avs/capi.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/avs/capi.h rename to ffmpeg-y/compat/avisynth/avs/capi.h diff --git a/compat/avisynth/avs/config.h b/ffmpeg-y/compat/avisynth/avs/config.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/avs/config.h rename to ffmpeg-y/compat/avisynth/avs/config.h diff --git a/compat/avisynth/avs/types.h b/ffmpeg-y/compat/avisynth/avs/types.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/avs/types.h rename to ffmpeg-y/compat/avisynth/avs/types.h diff --git a/compat/avisynth/avxsynth_c.h b/ffmpeg-y/compat/avisynth/avxsynth_c.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/avxsynth_c.h rename to ffmpeg-y/compat/avisynth/avxsynth_c.h diff --git a/compat/avisynth/windowsPorts/basicDataTypeConversions.h b/ffmpeg-y/compat/avisynth/windowsPorts/basicDataTypeConversions.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/windowsPorts/basicDataTypeConversions.h rename to ffmpeg-y/compat/avisynth/windowsPorts/basicDataTypeConversions.h diff --git a/compat/avisynth/windowsPorts/windows2linux.h b/ffmpeg-y/compat/avisynth/windowsPorts/windows2linux.h old mode 100644 new mode 100755 similarity index 100% rename from compat/avisynth/windowsPorts/windows2linux.h rename to ffmpeg-y/compat/avisynth/windowsPorts/windows2linux.h diff --git a/compat/cuda/cuda_runtime.h b/ffmpeg-y/compat/cuda/cuda_runtime.h old mode 100644 new mode 100755 similarity index 100% rename from compat/cuda/cuda_runtime.h rename to ffmpeg-y/compat/cuda/cuda_runtime.h diff --git a/compat/cuda/dynlink_loader.h b/ffmpeg-y/compat/cuda/dynlink_loader.h old mode 100644 new mode 100755 similarity index 100% rename from compat/cuda/dynlink_loader.h rename to ffmpeg-y/compat/cuda/dynlink_loader.h diff --git a/compat/cuda/ptx2c.sh b/ffmpeg-y/compat/cuda/ptx2c.sh similarity index 100% rename from compat/cuda/ptx2c.sh rename to ffmpeg-y/compat/cuda/ptx2c.sh diff --git a/compat/dispatch_semaphore/semaphore.h b/ffmpeg-y/compat/dispatch_semaphore/semaphore.h old mode 100644 new mode 100755 similarity index 100% rename from compat/dispatch_semaphore/semaphore.h rename to ffmpeg-y/compat/dispatch_semaphore/semaphore.h diff --git a/compat/djgpp/math.c b/ffmpeg-y/compat/djgpp/math.c old mode 100644 new mode 100755 similarity index 100% rename from compat/djgpp/math.c rename to ffmpeg-y/compat/djgpp/math.c diff --git a/compat/djgpp/math.h b/ffmpeg-y/compat/djgpp/math.h old mode 100644 new mode 100755 similarity index 100% rename from compat/djgpp/math.h rename to ffmpeg-y/compat/djgpp/math.h diff --git a/compat/float/float.h b/ffmpeg-y/compat/float/float.h old mode 100644 new mode 100755 similarity index 100% rename from compat/float/float.h rename to ffmpeg-y/compat/float/float.h diff --git a/compat/float/limits.h b/ffmpeg-y/compat/float/limits.h old mode 100644 new mode 100755 similarity index 100% rename from compat/float/limits.h rename to ffmpeg-y/compat/float/limits.h diff --git a/compat/getopt.c b/ffmpeg-y/compat/getopt.c old mode 100644 new mode 100755 similarity index 100% rename from compat/getopt.c rename to ffmpeg-y/compat/getopt.c diff --git a/compat/msvcrt/snprintf.c b/ffmpeg-y/compat/msvcrt/snprintf.c old mode 100644 new mode 100755 similarity index 100% rename from compat/msvcrt/snprintf.c rename to ffmpeg-y/compat/msvcrt/snprintf.c diff --git a/compat/msvcrt/snprintf.h b/ffmpeg-y/compat/msvcrt/snprintf.h old mode 100644 new mode 100755 similarity index 100% rename from compat/msvcrt/snprintf.h rename to ffmpeg-y/compat/msvcrt/snprintf.h diff --git a/compat/os2threads.h b/ffmpeg-y/compat/os2threads.h old mode 100644 new mode 100755 similarity index 100% rename from compat/os2threads.h rename to ffmpeg-y/compat/os2threads.h diff --git a/compat/solaris/make_sunver.pl b/ffmpeg-y/compat/solaris/make_sunver.pl similarity index 100% rename from compat/solaris/make_sunver.pl rename to ffmpeg-y/compat/solaris/make_sunver.pl diff --git a/compat/strtod.c b/ffmpeg-y/compat/strtod.c old mode 100644 new mode 100755 similarity index 100% rename from compat/strtod.c rename to ffmpeg-y/compat/strtod.c diff --git a/compat/va_copy.h b/ffmpeg-y/compat/va_copy.h old mode 100644 new mode 100755 similarity index 100% rename from compat/va_copy.h rename to ffmpeg-y/compat/va_copy.h diff --git a/compat/w32dlfcn.h b/ffmpeg-y/compat/w32dlfcn.h old mode 100644 new mode 100755 similarity index 100% rename from compat/w32dlfcn.h rename to ffmpeg-y/compat/w32dlfcn.h diff --git a/compat/w32pthreads.h b/ffmpeg-y/compat/w32pthreads.h old mode 100644 new mode 100755 similarity index 100% rename from compat/w32pthreads.h rename to ffmpeg-y/compat/w32pthreads.h diff --git a/compat/windows/makedef b/ffmpeg-y/compat/windows/makedef similarity index 100% rename from compat/windows/makedef rename to ffmpeg-y/compat/windows/makedef diff --git a/compat/windows/mslink b/ffmpeg-y/compat/windows/mslink similarity index 100% rename from compat/windows/mslink rename to ffmpeg-y/compat/windows/mslink diff --git a/configure b/ffmpeg-y/configure similarity index 99% rename from configure rename to ffmpeg-y/configure index 07b8231145..0eafe60ab5 100755 --- a/configure +++ b/ffmpeg-y/configure @@ -7272,7 +7272,7 @@ CC=$cc CXX=$cxx AS=$as OBJCC=$objcc -LD=${cross_prefix}clang +LD=clang DEPCC=$dep_cc DEPCCFLAGS=$DEPCCFLAGS \$(CPPFLAGS) DEPAS=$as diff --git a/disable_decoder_config.sh b/ffmpeg-y/disable_decoder_config.sh similarity index 51% rename from disable_decoder_config.sh rename to ffmpeg-y/disable_decoder_config.sh index 50a035476b..f27da4d720 100755 --- a/disable_decoder_config.sh +++ b/ffmpeg-y/disable_decoder_config.sh @@ -1,9 +1,16 @@ echo `pwd` CUR_DIR=$(pwd) CFG_CHIP_TYPE=$1 -COMPILER_DIR=$2 +CFG_OS_TYPE=$2 +CFG_LINUX_COMPILER_VER=$3 +CFG_OHOS_BUILD_PATH=$4 -CFG_SDK_TOOLCHAIN=$COMPILER_DIR/bin/ +echo "CFG_CHIP_TYPE=${CFG_CHIP_TYPE} CFG_OS_TYPE=${CFG_OS_TYPE} CFG_LINUX_COMPILER_VER=${CFG_LINUX_COMPILER_VER} CFG_OHOS_BUILD_PATH=${CFG_OHOS_BUILD_PATH}" +if [ "${CFG_OS_TYPE}" == "ohos" ]; then +CFG_SDK_TOOLCHAIN=${CFG_OHOS_BUILD_PATH}/ +else +CFG_SDK_TOOLCHAIN=arm-${CFG_LINUX_COMPILER_VER}-linux- +fi configure_attr=" --prefix=./install \ --disable-autodetect \ @@ -51,90 +58,36 @@ configure_attr=" --prefix=./install \ --enable-demuxer=wav \ --disable-gpl \ --disable-zlib \ - --disable-w32threads \ - --disable-os2threads \ - --disable-alsa \ - --disable-appkit \ - --disable-avfoundation \ - --disable-bzlib \ - --disable-coreimage \ - --disable-iconv \ - --disable-libxcb \ - --disable-libxcb-shm \ - --disable-libxcb-xfixes \ - --disable-libxcb-shape \ - --disable-lzma \ - --disable-sndio \ - --disable-schannel \ - --disable-sdl2 \ - --disable-securetransport \ - --disable-xlib \ - --disable-amf \ - --disable-audiotoolbox \ - --disable-cuda-llvm \ - --disable-cuvid \ - --disable-nvdec \ - --disable-nvenc \ - --disable-vaapi \ - --disable-vdpau \ - --disable-videotoolbox \ - --disable-ossfuzz \ - --disable-swscale-alpha \ + --disable-w32threads --disable-os2threads --disable-alsa --disable-appkit --disable-avfoundation \ + --disable-bzlib --disable-coreimage --disable-iconv --disable-libxcb --disable-libxcb-shm \ + --disable-libxcb-xfixes --disable-libxcb-shape --disable-lzma --disable-sndio --disable-schannel \ + --disable-sdl2 --disable-securetransport --disable-xlib --disable-amf --disable-audiotoolbox \ + --disable-cuda-llvm --disable-cuvid --disable-nvdec --disable-nvenc --disable-vaapi --disable-vdpau \ + --disable-videotoolbox --disable-ossfuzz --disable-swscale-alpha \ --disable-valgrind-backtrace \ --disable-linux-perf " -if [ ${CFG_CHIP_TYPE} == "hi3559av100" ]; then -echo "hi3559av100 =? ${CFG_CHIP_TYPE}" -configure_attr+=" --arch=arm64 --cross-prefix=${CFG_SDK_TOOLCHAIN} " -fi - -if [ ${CFG_CHIP_TYPE} == "hi3559" -o ${CFG_CHIP_TYPE} == "hi3556" ]; then +if [ "${CFG_CHIP_TYPE}" == "hi3559" -o "${CFG_CHIP_TYPE}" == "hi3556" ]; then echo "hi3559/hi3556 =? ${CFG_CHIP_TYPE}" configure_attr+=" --cpu=cortex-a7 --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " fi -if [ ${CFG_CHIP_TYPE} == "hi3556av100" ]; then -echo "hi3556av100 =? ${CFG_CHIP_TYPE}" -configure_attr+=" --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " -fi - -if [ ${CFG_CHIP_TYPE} == "hi3559v200" ]; then +if [ "${CFG_CHIP_TYPE}" == "hi3559v200" ]; then echo "hi3559v200 =? ${CFG_CHIP_TYPE}" configure_attr+=" --cpu=cortex-a7 --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " fi -if [ ${CFG_CHIP_TYPE} == "hi3516cv500" ]; then -echo "hi3516cv500 =? ${CFG_CHIP_TYPE}" -configure_attr+=" --cpu=cortex-a7 --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " -fi - -if [ ${CFG_CHIP_TYPE} == "hi3516dv300" ]; then +if [ "${CFG_CHIP_TYPE}" == "hi3516dv300" ]; then echo "hi3516dv300 =? ${CFG_CHIP_TYPE}" configure_attr+=" --cpu=cortex-a7 --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " fi -if [ ${CFG_CHIP_TYPE} == "hi3518ev300" ]; then +if [ "${CFG_CHIP_TYPE}" == "hi3518ev300" ]; then echo "hi3518ev300 =? ${CFG_CHIP_TYPE}" configure_attr+=" --cpu=cortex-a7 --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " fi - -if [ ${CFG_CHIP_TYPE} == "hi3519av100" ]; then -echo "hi3519av100 =? ${CFG_CHIP_TYPE}" -configure_attr+=" --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " -fi - -if [ ${CFG_CHIP_TYPE} == "hi3562v100" ]; then -echo "hi3562v100 =? ${CFG_CHIP_TYPE}" -configure_attr+=" --cpu=cortex-a7 --arch=armv7-a --cross-prefix=${CFG_SDK_TOOLCHAIN} " -fi - -if [ ${CFG_CHIP_TYPE} == "hi3569v100" ]; then -echo "hi3569v100 =? ${CFG_CHIP_TYPE}" -configure_attr+=" --arch=arm64 --cross-prefix=${CFG_SDK_TOOLCHAIN} " -fi - echo ${configure_attr} export http_proxy="" export https_proxy="" diff --git a/doc/APIchanges b/ffmpeg-y/doc/APIchanges old mode 100644 new mode 100755 similarity index 100% rename from doc/APIchanges rename to ffmpeg-y/doc/APIchanges diff --git a/doc/Doxyfile b/ffmpeg-y/doc/Doxyfile old mode 100644 new mode 100755 similarity index 100% rename from doc/Doxyfile rename to ffmpeg-y/doc/Doxyfile diff --git a/doc/Makefile b/ffmpeg-y/doc/Makefile old mode 100644 new mode 100755 similarity index 100% rename from doc/Makefile rename to ffmpeg-y/doc/Makefile diff --git a/doc/authors.texi b/ffmpeg-y/doc/authors.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/authors.texi rename to ffmpeg-y/doc/authors.texi diff --git a/doc/bitstream_filters.texi b/ffmpeg-y/doc/bitstream_filters.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/bitstream_filters.texi rename to ffmpeg-y/doc/bitstream_filters.texi diff --git a/doc/bootstrap.min.css b/ffmpeg-y/doc/bootstrap.min.css old mode 100644 new mode 100755 similarity index 100% rename from doc/bootstrap.min.css rename to ffmpeg-y/doc/bootstrap.min.css diff --git a/doc/build_system.txt b/ffmpeg-y/doc/build_system.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/build_system.txt rename to ffmpeg-y/doc/build_system.txt diff --git a/doc/codecs.texi b/ffmpeg-y/doc/codecs.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/codecs.texi rename to ffmpeg-y/doc/codecs.texi diff --git a/doc/decoders.texi b/ffmpeg-y/doc/decoders.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/decoders.texi rename to ffmpeg-y/doc/decoders.texi diff --git a/doc/default.css b/ffmpeg-y/doc/default.css old mode 100644 new mode 100755 similarity index 100% rename from doc/default.css rename to ffmpeg-y/doc/default.css diff --git a/doc/demuxers.texi b/ffmpeg-y/doc/demuxers.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/demuxers.texi rename to ffmpeg-y/doc/demuxers.texi diff --git a/doc/developer.texi b/ffmpeg-y/doc/developer.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/developer.texi rename to ffmpeg-y/doc/developer.texi diff --git a/doc/devices.texi b/ffmpeg-y/doc/devices.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/devices.texi rename to ffmpeg-y/doc/devices.texi diff --git a/doc/doxy-wrapper.sh b/ffmpeg-y/doc/doxy-wrapper.sh similarity index 100% rename from doc/doxy-wrapper.sh rename to ffmpeg-y/doc/doxy-wrapper.sh diff --git a/doc/encoders.texi b/ffmpeg-y/doc/encoders.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/encoders.texi rename to ffmpeg-y/doc/encoders.texi diff --git a/doc/errno.txt b/ffmpeg-y/doc/errno.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/errno.txt rename to ffmpeg-y/doc/errno.txt diff --git a/doc/examples/Makefile b/ffmpeg-y/doc/examples/Makefile old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/Makefile rename to ffmpeg-y/doc/examples/Makefile diff --git a/doc/examples/Makefile.example b/ffmpeg-y/doc/examples/Makefile.example old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/Makefile.example rename to ffmpeg-y/doc/examples/Makefile.example diff --git a/doc/examples/README b/ffmpeg-y/doc/examples/README old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/README rename to ffmpeg-y/doc/examples/README diff --git a/doc/examples/avio_dir_cmd.c b/ffmpeg-y/doc/examples/avio_dir_cmd.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/avio_dir_cmd.c rename to ffmpeg-y/doc/examples/avio_dir_cmd.c diff --git a/doc/examples/avio_reading.c b/ffmpeg-y/doc/examples/avio_reading.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/avio_reading.c rename to ffmpeg-y/doc/examples/avio_reading.c diff --git a/doc/examples/decode_audio.c b/ffmpeg-y/doc/examples/decode_audio.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/decode_audio.c rename to ffmpeg-y/doc/examples/decode_audio.c diff --git a/doc/examples/decode_video.c b/ffmpeg-y/doc/examples/decode_video.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/decode_video.c rename to ffmpeg-y/doc/examples/decode_video.c diff --git a/doc/examples/demuxing_decoding.c b/ffmpeg-y/doc/examples/demuxing_decoding.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/demuxing_decoding.c rename to ffmpeg-y/doc/examples/demuxing_decoding.c diff --git a/doc/examples/encode_audio.c b/ffmpeg-y/doc/examples/encode_audio.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/encode_audio.c rename to ffmpeg-y/doc/examples/encode_audio.c diff --git a/doc/examples/encode_video.c b/ffmpeg-y/doc/examples/encode_video.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/encode_video.c rename to ffmpeg-y/doc/examples/encode_video.c diff --git a/doc/examples/extract_mvs.c b/ffmpeg-y/doc/examples/extract_mvs.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/extract_mvs.c rename to ffmpeg-y/doc/examples/extract_mvs.c diff --git a/doc/examples/filter_audio.c b/ffmpeg-y/doc/examples/filter_audio.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/filter_audio.c rename to ffmpeg-y/doc/examples/filter_audio.c diff --git a/doc/examples/filtering_audio.c b/ffmpeg-y/doc/examples/filtering_audio.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/filtering_audio.c rename to ffmpeg-y/doc/examples/filtering_audio.c diff --git a/doc/examples/filtering_video.c b/ffmpeg-y/doc/examples/filtering_video.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/filtering_video.c rename to ffmpeg-y/doc/examples/filtering_video.c diff --git a/doc/examples/http_multiclient.c b/ffmpeg-y/doc/examples/http_multiclient.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/http_multiclient.c rename to ffmpeg-y/doc/examples/http_multiclient.c diff --git a/doc/examples/hw_decode.c b/ffmpeg-y/doc/examples/hw_decode.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/hw_decode.c rename to ffmpeg-y/doc/examples/hw_decode.c diff --git a/doc/examples/metadata.c b/ffmpeg-y/doc/examples/metadata.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/metadata.c rename to ffmpeg-y/doc/examples/metadata.c diff --git a/doc/examples/muxing.c b/ffmpeg-y/doc/examples/muxing.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/muxing.c rename to ffmpeg-y/doc/examples/muxing.c diff --git a/doc/examples/qsvdec.c b/ffmpeg-y/doc/examples/qsvdec.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/qsvdec.c rename to ffmpeg-y/doc/examples/qsvdec.c diff --git a/doc/examples/remuxing.c b/ffmpeg-y/doc/examples/remuxing.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/remuxing.c rename to ffmpeg-y/doc/examples/remuxing.c diff --git a/doc/examples/resampling_audio.c b/ffmpeg-y/doc/examples/resampling_audio.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/resampling_audio.c rename to ffmpeg-y/doc/examples/resampling_audio.c diff --git a/doc/examples/scaling_video.c b/ffmpeg-y/doc/examples/scaling_video.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/scaling_video.c rename to ffmpeg-y/doc/examples/scaling_video.c diff --git a/doc/examples/transcode_aac.c b/ffmpeg-y/doc/examples/transcode_aac.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/transcode_aac.c rename to ffmpeg-y/doc/examples/transcode_aac.c diff --git a/doc/examples/transcoding.c b/ffmpeg-y/doc/examples/transcoding.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/transcoding.c rename to ffmpeg-y/doc/examples/transcoding.c diff --git a/doc/examples/vaapi_encode.c b/ffmpeg-y/doc/examples/vaapi_encode.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/vaapi_encode.c rename to ffmpeg-y/doc/examples/vaapi_encode.c diff --git a/doc/examples/vaapi_transcode.c b/ffmpeg-y/doc/examples/vaapi_transcode.c old mode 100644 new mode 100755 similarity index 100% rename from doc/examples/vaapi_transcode.c rename to ffmpeg-y/doc/examples/vaapi_transcode.c diff --git a/doc/faq.texi b/ffmpeg-y/doc/faq.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/faq.texi rename to ffmpeg-y/doc/faq.texi diff --git a/doc/fate.texi b/ffmpeg-y/doc/fate.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/fate.texi rename to ffmpeg-y/doc/fate.texi diff --git a/doc/fate_config.sh.template b/ffmpeg-y/doc/fate_config.sh.template old mode 100644 new mode 100755 similarity index 100% rename from doc/fate_config.sh.template rename to ffmpeg-y/doc/fate_config.sh.template diff --git a/doc/ffmpeg-bitstream-filters.texi b/ffmpeg-y/doc/ffmpeg-bitstream-filters.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-bitstream-filters.texi rename to ffmpeg-y/doc/ffmpeg-bitstream-filters.texi diff --git a/doc/ffmpeg-codecs.texi b/ffmpeg-y/doc/ffmpeg-codecs.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-codecs.texi rename to ffmpeg-y/doc/ffmpeg-codecs.texi diff --git a/doc/ffmpeg-devices.texi b/ffmpeg-y/doc/ffmpeg-devices.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-devices.texi rename to ffmpeg-y/doc/ffmpeg-devices.texi diff --git a/doc/ffmpeg-filters.texi b/ffmpeg-y/doc/ffmpeg-filters.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-filters.texi rename to ffmpeg-y/doc/ffmpeg-filters.texi diff --git a/doc/ffmpeg-formats.texi b/ffmpeg-y/doc/ffmpeg-formats.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-formats.texi rename to ffmpeg-y/doc/ffmpeg-formats.texi diff --git a/doc/ffmpeg-protocols.texi b/ffmpeg-y/doc/ffmpeg-protocols.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-protocols.texi rename to ffmpeg-y/doc/ffmpeg-protocols.texi diff --git a/doc/ffmpeg-resampler.texi b/ffmpeg-y/doc/ffmpeg-resampler.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-resampler.texi rename to ffmpeg-y/doc/ffmpeg-resampler.texi diff --git a/doc/ffmpeg-scaler.texi b/ffmpeg-y/doc/ffmpeg-scaler.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-scaler.texi rename to ffmpeg-y/doc/ffmpeg-scaler.texi diff --git a/doc/ffmpeg-utils.texi b/ffmpeg-y/doc/ffmpeg-utils.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg-utils.texi rename to ffmpeg-y/doc/ffmpeg-utils.texi diff --git a/doc/ffmpeg.texi b/ffmpeg-y/doc/ffmpeg.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg.texi rename to ffmpeg-y/doc/ffmpeg.texi diff --git a/doc/ffmpeg.txt b/ffmpeg-y/doc/ffmpeg.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/ffmpeg.txt rename to ffmpeg-y/doc/ffmpeg.txt diff --git a/doc/ffplay.texi b/ffmpeg-y/doc/ffplay.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffplay.texi rename to ffmpeg-y/doc/ffplay.texi diff --git a/doc/ffprobe.texi b/ffmpeg-y/doc/ffprobe.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/ffprobe.texi rename to ffmpeg-y/doc/ffprobe.texi diff --git a/doc/ffprobe.xsd b/ffmpeg-y/doc/ffprobe.xsd old mode 100644 new mode 100755 similarity index 100% rename from doc/ffprobe.xsd rename to ffmpeg-y/doc/ffprobe.xsd diff --git a/doc/fftools-common-opts.texi b/ffmpeg-y/doc/fftools-common-opts.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/fftools-common-opts.texi rename to ffmpeg-y/doc/fftools-common-opts.texi diff --git a/doc/filter_design.txt b/ffmpeg-y/doc/filter_design.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/filter_design.txt rename to ffmpeg-y/doc/filter_design.txt diff --git a/doc/filters.texi b/ffmpeg-y/doc/filters.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/filters.texi rename to ffmpeg-y/doc/filters.texi diff --git a/doc/formats.texi b/ffmpeg-y/doc/formats.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/formats.texi rename to ffmpeg-y/doc/formats.texi diff --git a/doc/general.texi b/ffmpeg-y/doc/general.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/general.texi rename to ffmpeg-y/doc/general.texi diff --git a/doc/git-howto.texi b/ffmpeg-y/doc/git-howto.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/git-howto.texi rename to ffmpeg-y/doc/git-howto.texi diff --git a/doc/indevs.texi b/ffmpeg-y/doc/indevs.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/indevs.texi rename to ffmpeg-y/doc/indevs.texi diff --git a/doc/issue_tracker.txt b/ffmpeg-y/doc/issue_tracker.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/issue_tracker.txt rename to ffmpeg-y/doc/issue_tracker.txt diff --git a/doc/lexicon b/ffmpeg-y/doc/lexicon old mode 100644 new mode 100755 similarity index 100% rename from doc/lexicon rename to ffmpeg-y/doc/lexicon diff --git a/doc/libav-merge.txt b/ffmpeg-y/doc/libav-merge.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/libav-merge.txt rename to ffmpeg-y/doc/libav-merge.txt diff --git a/doc/libavcodec.texi b/ffmpeg-y/doc/libavcodec.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libavcodec.texi rename to ffmpeg-y/doc/libavcodec.texi diff --git a/doc/libavdevice.texi b/ffmpeg-y/doc/libavdevice.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libavdevice.texi rename to ffmpeg-y/doc/libavdevice.texi diff --git a/doc/libavfilter.texi b/ffmpeg-y/doc/libavfilter.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libavfilter.texi rename to ffmpeg-y/doc/libavfilter.texi diff --git a/doc/libavformat.texi b/ffmpeg-y/doc/libavformat.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libavformat.texi rename to ffmpeg-y/doc/libavformat.texi diff --git a/doc/libavutil.texi b/ffmpeg-y/doc/libavutil.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libavutil.texi rename to ffmpeg-y/doc/libavutil.texi diff --git a/doc/libswresample.texi b/ffmpeg-y/doc/libswresample.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libswresample.texi rename to ffmpeg-y/doc/libswresample.texi diff --git a/doc/libswscale.texi b/ffmpeg-y/doc/libswscale.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/libswscale.texi rename to ffmpeg-y/doc/libswscale.texi diff --git a/doc/mailing-list-faq.texi b/ffmpeg-y/doc/mailing-list-faq.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/mailing-list-faq.texi rename to ffmpeg-y/doc/mailing-list-faq.texi diff --git a/doc/metadata.texi b/ffmpeg-y/doc/metadata.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/metadata.texi rename to ffmpeg-y/doc/metadata.texi diff --git a/doc/mips.txt b/ffmpeg-y/doc/mips.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/mips.txt rename to ffmpeg-y/doc/mips.txt diff --git a/doc/multithreading.txt b/ffmpeg-y/doc/multithreading.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/multithreading.txt rename to ffmpeg-y/doc/multithreading.txt diff --git a/doc/muxers.texi b/ffmpeg-y/doc/muxers.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/muxers.texi rename to ffmpeg-y/doc/muxers.texi diff --git a/doc/nut.texi b/ffmpeg-y/doc/nut.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/nut.texi rename to ffmpeg-y/doc/nut.texi diff --git a/doc/optimization.txt b/ffmpeg-y/doc/optimization.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/optimization.txt rename to ffmpeg-y/doc/optimization.txt diff --git a/doc/outdevs.texi b/ffmpeg-y/doc/outdevs.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/outdevs.texi rename to ffmpeg-y/doc/outdevs.texi diff --git a/doc/patchwork b/ffmpeg-y/doc/patchwork old mode 100644 new mode 100755 similarity index 100% rename from doc/patchwork rename to ffmpeg-y/doc/patchwork diff --git a/doc/platform.texi b/ffmpeg-y/doc/platform.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/platform.texi rename to ffmpeg-y/doc/platform.texi diff --git a/doc/print_options.c b/ffmpeg-y/doc/print_options.c old mode 100644 new mode 100755 similarity index 100% rename from doc/print_options.c rename to ffmpeg-y/doc/print_options.c diff --git a/doc/protocols.texi b/ffmpeg-y/doc/protocols.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/protocols.texi rename to ffmpeg-y/doc/protocols.texi diff --git a/doc/rate_distortion.txt b/ffmpeg-y/doc/rate_distortion.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/rate_distortion.txt rename to ffmpeg-y/doc/rate_distortion.txt diff --git a/doc/resampler.texi b/ffmpeg-y/doc/resampler.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/resampler.texi rename to ffmpeg-y/doc/resampler.texi diff --git a/doc/scaler.texi b/ffmpeg-y/doc/scaler.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/scaler.texi rename to ffmpeg-y/doc/scaler.texi diff --git a/doc/snow.txt b/ffmpeg-y/doc/snow.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/snow.txt rename to ffmpeg-y/doc/snow.txt diff --git a/doc/style.min.css b/ffmpeg-y/doc/style.min.css old mode 100644 new mode 100755 similarity index 100% rename from doc/style.min.css rename to ffmpeg-y/doc/style.min.css diff --git a/doc/swresample.txt b/ffmpeg-y/doc/swresample.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/swresample.txt rename to ffmpeg-y/doc/swresample.txt diff --git a/doc/swscale.txt b/ffmpeg-y/doc/swscale.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/swscale.txt rename to ffmpeg-y/doc/swscale.txt diff --git a/doc/t2h.init b/ffmpeg-y/doc/t2h.init old mode 100644 new mode 100755 similarity index 100% rename from doc/t2h.init rename to ffmpeg-y/doc/t2h.init diff --git a/doc/t2h.pm b/ffmpeg-y/doc/t2h.pm old mode 100644 new mode 100755 similarity index 100% rename from doc/t2h.pm rename to ffmpeg-y/doc/t2h.pm diff --git a/doc/tablegen.txt b/ffmpeg-y/doc/tablegen.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/tablegen.txt rename to ffmpeg-y/doc/tablegen.txt diff --git a/doc/texi2pod.pl b/ffmpeg-y/doc/texi2pod.pl old mode 100644 new mode 100755 similarity index 100% rename from doc/texi2pod.pl rename to ffmpeg-y/doc/texi2pod.pl diff --git a/doc/texidep.pl b/ffmpeg-y/doc/texidep.pl old mode 100644 new mode 100755 similarity index 100% rename from doc/texidep.pl rename to ffmpeg-y/doc/texidep.pl diff --git a/doc/undefined.txt b/ffmpeg-y/doc/undefined.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/undefined.txt rename to ffmpeg-y/doc/undefined.txt diff --git a/doc/utils.texi b/ffmpeg-y/doc/utils.texi old mode 100644 new mode 100755 similarity index 100% rename from doc/utils.texi rename to ffmpeg-y/doc/utils.texi diff --git a/doc/writing_filters.txt b/ffmpeg-y/doc/writing_filters.txt old mode 100644 new mode 100755 similarity index 100% rename from doc/writing_filters.txt rename to ffmpeg-y/doc/writing_filters.txt diff --git a/ffmpeg-y/enable_decoder_config.sh b/ffmpeg-y/enable_decoder_config.sh new file mode 100755 index 0000000000..238650f1c0 --- /dev/null +++ b/ffmpeg-y/enable_decoder_config.sh @@ -0,0 +1,69 @@ +echo `pwd` +CUR_DIR=$(pwd) +CFG_CHIP_TYPE=$1 +CFG_OS_TYPE=$2 + +CFG_SDK_TOOLCHAIN= + +configure_attr=" --prefix=./install \ + --enable-small \ + --disable-armv5te \ + --disable-armv6 \ + --disable-armv6t2 \ + --disable-linux-perf\ + --enable-shared \ + --disable-encoders \ + --disable-muxers \ + --disable-avfilter \ + --disable-swscale \ + --disable-demuxers \ + --enable-demuxer=mov \ + --enable-demuxer=mpegts \ + --disable-protocols \ + --enable-protocol=file \ + --disable-bsfs \ + --enable-bsf=h264_mp4toannexb \ + --enable-bsf=hevc_mp4toannexb \ + --disable-parsers \ + --enable-parser=hevc \ + --enable-parser=h264 \ + --disable-iconv \ + --disable-avdevice \ + --disable-network \ + --disable-decoders \ + --enable-decoder=h264 \ + --enable-decoder=hevc \ + --enable-decoder=mjpeg \ + --enable-asm \ + --disable-filters \ + --enable-inline-asm \ + --enable-neon \ + --disable-static \ + --disable-debug \ + --disable-doc \ + --disable-swresample \ + --disable-programs \ + --disable-symver \ + --target-os=linux \ + --enable-cross-compile \ + --disable-zlib \ + --disable-linux-perf \ + --cross-prefix=${CFG_SDK_TOOLCHAIN} " + +export http_proxy="" +export https_proxy="" +export no_proxy="" + +if [ "${CFG_CHIP_TYPE}" == "hi3518ev300" ]; then +echo "hi3518ev300 =? ${CFG_CHIP_TYPE}" +configure_attr+=" --arch=arm --cpu=cortex-a7 " +echo ${configure_attr} --extra-cflags="-mfloat-abi=softfp -mfpu=neon-vfpv4" +./configure ${configure_attr} --extra-cflags="-mfloat-abi=softfp -mfpu=neon-vfpv4 -fPIC -fstack-protector-all -s -ftrapv" --extra-ldflags="-fPIC -Wl,-z,relro,-z,now --shared" +fi + +if [ "${CFG_CHIP_TYPE}" == "hi3516cv300" ]; then +echo "hi3516cv300 =? ${CFG_CHIP_TYPE}" +configure_attr+=" --arch=arm --cpu=arm926ej-s --cross-prefix=${CFG_SDK_TOOLCHAIN} " +./configure ${configure_attr} --extra-cflags="-nostdlib -nostdinc -fPIC -mlong-calls -fstack-protector-all -s -ftrapv" --extra-ldflags="-fPIC -Wl,-z,relro,-z,now --shared" +fi + diff --git a/ffbuild/arch.mak b/ffmpeg-y/ffbuild/arch.mak old mode 100644 new mode 100755 similarity index 100% rename from ffbuild/arch.mak rename to ffmpeg-y/ffbuild/arch.mak diff --git a/ffbuild/common.mak b/ffmpeg-y/ffbuild/common.mak old mode 100644 new mode 100755 similarity index 98% rename from ffbuild/common.mak rename to ffmpeg-y/ffbuild/common.mak index 850d24c721..7355508ea0 --- a/ffbuild/common.mak +++ b/ffmpeg-y/ffbuild/common.mak @@ -41,7 +41,6 @@ X86ASMFLAGS += $(IFLAGS:%=%/) -I$(pstride = FFALIGN((avctx->width + c->lrange) * c->bypp, 16); prev_size = FFALIGN(c->lrange * c->bypp, 16) + c->pstride * (c->lrange + avctx->height + c->urange); - prev_offset = FFALIGN(c->lrange, 16) + c->pstride * c->lrange; + /* fix CVE-2019-13312 */ + prev_offset = FFALIGN(c->lrange * c->bypp, 16) + c->pstride * c->lrange; if (!(c->prev_buf = av_mallocz(prev_size))) { av_log(avctx, AV_LOG_ERROR, "Can't allocate picture.\n"); return AVERROR(ENOMEM); diff --git a/libavdevice/Makefile b/ffmpeg-y/libavdevice/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/Makefile rename to ffmpeg-y/libavdevice/Makefile diff --git a/libavdevice/alldevices.c b/ffmpeg-y/libavdevice/alldevices.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/alldevices.c rename to ffmpeg-y/libavdevice/alldevices.c diff --git a/libavdevice/alsa.c b/ffmpeg-y/libavdevice/alsa.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/alsa.c rename to ffmpeg-y/libavdevice/alsa.c diff --git a/libavdevice/alsa.h b/ffmpeg-y/libavdevice/alsa.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/alsa.h rename to ffmpeg-y/libavdevice/alsa.h diff --git a/libavdevice/alsa_dec.c b/ffmpeg-y/libavdevice/alsa_dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/alsa_dec.c rename to ffmpeg-y/libavdevice/alsa_dec.c diff --git a/libavdevice/alsa_enc.c b/ffmpeg-y/libavdevice/alsa_enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/alsa_enc.c rename to ffmpeg-y/libavdevice/alsa_enc.c diff --git a/libavdevice/android_camera.c b/ffmpeg-y/libavdevice/android_camera.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/android_camera.c rename to ffmpeg-y/libavdevice/android_camera.c diff --git a/libavdevice/avdevice.c b/ffmpeg-y/libavdevice/avdevice.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/avdevice.c rename to ffmpeg-y/libavdevice/avdevice.c diff --git a/libavdevice/avdevice.h b/ffmpeg-y/libavdevice/avdevice.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/avdevice.h rename to ffmpeg-y/libavdevice/avdevice.h diff --git a/libavdevice/avdeviceres.rc b/ffmpeg-y/libavdevice/avdeviceres.rc old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/avdeviceres.rc rename to ffmpeg-y/libavdevice/avdeviceres.rc diff --git a/libavdevice/avfoundation.m b/ffmpeg-y/libavdevice/avfoundation.m old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/avfoundation.m rename to ffmpeg-y/libavdevice/avfoundation.m diff --git a/libavdevice/bktr.c b/ffmpeg-y/libavdevice/bktr.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/bktr.c rename to ffmpeg-y/libavdevice/bktr.c diff --git a/libavdevice/caca.c b/ffmpeg-y/libavdevice/caca.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/caca.c rename to ffmpeg-y/libavdevice/caca.c diff --git a/libavdevice/decklink_common.cpp b/ffmpeg-y/libavdevice/decklink_common.cpp old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_common.cpp rename to ffmpeg-y/libavdevice/decklink_common.cpp diff --git a/libavdevice/decklink_common.h b/ffmpeg-y/libavdevice/decklink_common.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_common.h rename to ffmpeg-y/libavdevice/decklink_common.h diff --git a/libavdevice/decklink_common_c.h b/ffmpeg-y/libavdevice/decklink_common_c.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_common_c.h rename to ffmpeg-y/libavdevice/decklink_common_c.h diff --git a/libavdevice/decklink_dec.cpp b/ffmpeg-y/libavdevice/decklink_dec.cpp old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_dec.cpp rename to ffmpeg-y/libavdevice/decklink_dec.cpp diff --git a/libavdevice/decklink_dec.h b/ffmpeg-y/libavdevice/decklink_dec.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_dec.h rename to ffmpeg-y/libavdevice/decklink_dec.h diff --git a/libavdevice/decklink_dec_c.c b/ffmpeg-y/libavdevice/decklink_dec_c.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_dec_c.c rename to ffmpeg-y/libavdevice/decklink_dec_c.c diff --git a/libavdevice/decklink_enc.cpp b/ffmpeg-y/libavdevice/decklink_enc.cpp old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_enc.cpp rename to ffmpeg-y/libavdevice/decklink_enc.cpp diff --git a/libavdevice/decklink_enc.h b/ffmpeg-y/libavdevice/decklink_enc.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_enc.h rename to ffmpeg-y/libavdevice/decklink_enc.h diff --git a/libavdevice/decklink_enc_c.c b/ffmpeg-y/libavdevice/decklink_enc_c.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/decklink_enc_c.c rename to ffmpeg-y/libavdevice/decklink_enc_c.c diff --git a/libavdevice/dshow.c b/ffmpeg-y/libavdevice/dshow.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow.c rename to ffmpeg-y/libavdevice/dshow.c diff --git a/libavdevice/dshow_capture.h b/ffmpeg-y/libavdevice/dshow_capture.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_capture.h rename to ffmpeg-y/libavdevice/dshow_capture.h diff --git a/libavdevice/dshow_common.c b/ffmpeg-y/libavdevice/dshow_common.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_common.c rename to ffmpeg-y/libavdevice/dshow_common.c diff --git a/libavdevice/dshow_crossbar.c b/ffmpeg-y/libavdevice/dshow_crossbar.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_crossbar.c rename to ffmpeg-y/libavdevice/dshow_crossbar.c diff --git a/libavdevice/dshow_enummediatypes.c b/ffmpeg-y/libavdevice/dshow_enummediatypes.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_enummediatypes.c rename to ffmpeg-y/libavdevice/dshow_enummediatypes.c diff --git a/libavdevice/dshow_enumpins.c b/ffmpeg-y/libavdevice/dshow_enumpins.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_enumpins.c rename to ffmpeg-y/libavdevice/dshow_enumpins.c diff --git a/libavdevice/dshow_filter.c b/ffmpeg-y/libavdevice/dshow_filter.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_filter.c rename to ffmpeg-y/libavdevice/dshow_filter.c diff --git a/libavdevice/dshow_pin.c b/ffmpeg-y/libavdevice/dshow_pin.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/dshow_pin.c rename to ffmpeg-y/libavdevice/dshow_pin.c diff --git a/libavdevice/fbdev_common.c b/ffmpeg-y/libavdevice/fbdev_common.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/fbdev_common.c rename to ffmpeg-y/libavdevice/fbdev_common.c diff --git a/libavdevice/fbdev_common.h b/ffmpeg-y/libavdevice/fbdev_common.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/fbdev_common.h rename to ffmpeg-y/libavdevice/fbdev_common.h diff --git a/libavdevice/fbdev_dec.c b/ffmpeg-y/libavdevice/fbdev_dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/fbdev_dec.c rename to ffmpeg-y/libavdevice/fbdev_dec.c diff --git a/libavdevice/fbdev_enc.c b/ffmpeg-y/libavdevice/fbdev_enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/fbdev_enc.c rename to ffmpeg-y/libavdevice/fbdev_enc.c diff --git a/libavdevice/file_open.c b/ffmpeg-y/libavdevice/file_open.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/file_open.c rename to ffmpeg-y/libavdevice/file_open.c diff --git a/libavdevice/gdigrab.c b/ffmpeg-y/libavdevice/gdigrab.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/gdigrab.c rename to ffmpeg-y/libavdevice/gdigrab.c diff --git a/libavdevice/iec61883.c b/ffmpeg-y/libavdevice/iec61883.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/iec61883.c rename to ffmpeg-y/libavdevice/iec61883.c diff --git a/libavdevice/internal.h b/ffmpeg-y/libavdevice/internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/internal.h rename to ffmpeg-y/libavdevice/internal.h diff --git a/libavdevice/jack.c b/ffmpeg-y/libavdevice/jack.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/jack.c rename to ffmpeg-y/libavdevice/jack.c diff --git a/libavdevice/kmsgrab.c b/ffmpeg-y/libavdevice/kmsgrab.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/kmsgrab.c rename to ffmpeg-y/libavdevice/kmsgrab.c diff --git a/libavdevice/lavfi.c b/ffmpeg-y/libavdevice/lavfi.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/lavfi.c rename to ffmpeg-y/libavdevice/lavfi.c diff --git a/libavdevice/libavdevice.v b/ffmpeg-y/libavdevice/libavdevice.v old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/libavdevice.v rename to ffmpeg-y/libavdevice/libavdevice.v diff --git a/libavdevice/libcdio.c b/ffmpeg-y/libavdevice/libcdio.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/libcdio.c rename to ffmpeg-y/libavdevice/libcdio.c diff --git a/libavdevice/libdc1394.c b/ffmpeg-y/libavdevice/libdc1394.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/libdc1394.c rename to ffmpeg-y/libavdevice/libdc1394.c diff --git a/libavdevice/openal-dec.c b/ffmpeg-y/libavdevice/openal-dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/openal-dec.c rename to ffmpeg-y/libavdevice/openal-dec.c diff --git a/libavdevice/opengl_enc.c b/ffmpeg-y/libavdevice/opengl_enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/opengl_enc.c rename to ffmpeg-y/libavdevice/opengl_enc.c diff --git a/libavdevice/opengl_enc_shaders.h b/ffmpeg-y/libavdevice/opengl_enc_shaders.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/opengl_enc_shaders.h rename to ffmpeg-y/libavdevice/opengl_enc_shaders.h diff --git a/libavdevice/oss.c b/ffmpeg-y/libavdevice/oss.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/oss.c rename to ffmpeg-y/libavdevice/oss.c diff --git a/libavdevice/oss.h b/ffmpeg-y/libavdevice/oss.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/oss.h rename to ffmpeg-y/libavdevice/oss.h diff --git a/libavdevice/oss_dec.c b/ffmpeg-y/libavdevice/oss_dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/oss_dec.c rename to ffmpeg-y/libavdevice/oss_dec.c diff --git a/libavdevice/oss_enc.c b/ffmpeg-y/libavdevice/oss_enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/oss_enc.c rename to ffmpeg-y/libavdevice/oss_enc.c diff --git a/libavdevice/pulse_audio_common.c b/ffmpeg-y/libavdevice/pulse_audio_common.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/pulse_audio_common.c rename to ffmpeg-y/libavdevice/pulse_audio_common.c diff --git a/libavdevice/pulse_audio_common.h b/ffmpeg-y/libavdevice/pulse_audio_common.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/pulse_audio_common.h rename to ffmpeg-y/libavdevice/pulse_audio_common.h diff --git a/libavdevice/pulse_audio_dec.c b/ffmpeg-y/libavdevice/pulse_audio_dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/pulse_audio_dec.c rename to ffmpeg-y/libavdevice/pulse_audio_dec.c diff --git a/libavdevice/pulse_audio_enc.c b/ffmpeg-y/libavdevice/pulse_audio_enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/pulse_audio_enc.c rename to ffmpeg-y/libavdevice/pulse_audio_enc.c diff --git a/libavdevice/reverse.c b/ffmpeg-y/libavdevice/reverse.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/reverse.c rename to ffmpeg-y/libavdevice/reverse.c diff --git a/libavdevice/sdl2.c b/ffmpeg-y/libavdevice/sdl2.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/sdl2.c rename to ffmpeg-y/libavdevice/sdl2.c diff --git a/libavdevice/sndio.c b/ffmpeg-y/libavdevice/sndio.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/sndio.c rename to ffmpeg-y/libavdevice/sndio.c diff --git a/libavdevice/sndio.h b/ffmpeg-y/libavdevice/sndio.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/sndio.h rename to ffmpeg-y/libavdevice/sndio.h diff --git a/libavdevice/sndio_dec.c b/ffmpeg-y/libavdevice/sndio_dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/sndio_dec.c rename to ffmpeg-y/libavdevice/sndio_dec.c diff --git a/libavdevice/sndio_enc.c b/ffmpeg-y/libavdevice/sndio_enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/sndio_enc.c rename to ffmpeg-y/libavdevice/sndio_enc.c diff --git a/libavdevice/tests/timefilter.c b/ffmpeg-y/libavdevice/tests/timefilter.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/tests/timefilter.c rename to ffmpeg-y/libavdevice/tests/timefilter.c diff --git a/libavdevice/timefilter.c b/ffmpeg-y/libavdevice/timefilter.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/timefilter.c rename to ffmpeg-y/libavdevice/timefilter.c diff --git a/libavdevice/timefilter.h b/ffmpeg-y/libavdevice/timefilter.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/timefilter.h rename to ffmpeg-y/libavdevice/timefilter.h diff --git a/libavdevice/utils.c b/ffmpeg-y/libavdevice/utils.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/utils.c rename to ffmpeg-y/libavdevice/utils.c diff --git a/libavdevice/v4l2-common.c b/ffmpeg-y/libavdevice/v4l2-common.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/v4l2-common.c rename to ffmpeg-y/libavdevice/v4l2-common.c diff --git a/libavdevice/v4l2-common.h b/ffmpeg-y/libavdevice/v4l2-common.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/v4l2-common.h rename to ffmpeg-y/libavdevice/v4l2-common.h diff --git a/libavdevice/v4l2.c b/ffmpeg-y/libavdevice/v4l2.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/v4l2.c rename to ffmpeg-y/libavdevice/v4l2.c diff --git a/libavdevice/v4l2enc.c b/ffmpeg-y/libavdevice/v4l2enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/v4l2enc.c rename to ffmpeg-y/libavdevice/v4l2enc.c diff --git a/libavdevice/version.h b/ffmpeg-y/libavdevice/version.h old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/version.h rename to ffmpeg-y/libavdevice/version.h diff --git a/libavdevice/vfwcap.c b/ffmpeg-y/libavdevice/vfwcap.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/vfwcap.c rename to ffmpeg-y/libavdevice/vfwcap.c diff --git a/libavdevice/xcbgrab.c b/ffmpeg-y/libavdevice/xcbgrab.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/xcbgrab.c rename to ffmpeg-y/libavdevice/xcbgrab.c diff --git a/libavdevice/xv.c b/ffmpeg-y/libavdevice/xv.c old mode 100644 new mode 100755 similarity index 100% rename from libavdevice/xv.c rename to ffmpeg-y/libavdevice/xv.c diff --git a/libavfilter/Makefile b/ffmpeg-y/libavfilter/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/Makefile rename to ffmpeg-y/libavfilter/Makefile diff --git a/libavfilter/aarch64/Makefile b/ffmpeg-y/libavfilter/aarch64/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/aarch64/Makefile rename to ffmpeg-y/libavfilter/aarch64/Makefile diff --git a/libavfilter/aarch64/vf_nlmeans_init.c b/ffmpeg-y/libavfilter/aarch64/vf_nlmeans_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/aarch64/vf_nlmeans_init.c rename to ffmpeg-y/libavfilter/aarch64/vf_nlmeans_init.c diff --git a/libavfilter/aarch64/vf_nlmeans_neon.S b/ffmpeg-y/libavfilter/aarch64/vf_nlmeans_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/aarch64/vf_nlmeans_neon.S rename to ffmpeg-y/libavfilter/aarch64/vf_nlmeans_neon.S diff --git a/libavfilter/aeval.c b/ffmpeg-y/libavfilter/aeval.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/aeval.c rename to ffmpeg-y/libavfilter/aeval.c diff --git a/libavfilter/af_acontrast.c b/ffmpeg-y/libavfilter/af_acontrast.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_acontrast.c rename to ffmpeg-y/libavfilter/af_acontrast.c diff --git a/libavfilter/af_acopy.c b/ffmpeg-y/libavfilter/af_acopy.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_acopy.c rename to ffmpeg-y/libavfilter/af_acopy.c diff --git a/libavfilter/af_acrossover.c b/ffmpeg-y/libavfilter/af_acrossover.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_acrossover.c rename to ffmpeg-y/libavfilter/af_acrossover.c diff --git a/libavfilter/af_acrusher.c b/ffmpeg-y/libavfilter/af_acrusher.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_acrusher.c rename to ffmpeg-y/libavfilter/af_acrusher.c diff --git a/libavfilter/af_adeclick.c b/ffmpeg-y/libavfilter/af_adeclick.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_adeclick.c rename to ffmpeg-y/libavfilter/af_adeclick.c diff --git a/libavfilter/af_adelay.c b/ffmpeg-y/libavfilter/af_adelay.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_adelay.c rename to ffmpeg-y/libavfilter/af_adelay.c diff --git a/libavfilter/af_aderivative.c b/ffmpeg-y/libavfilter/af_aderivative.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aderivative.c rename to ffmpeg-y/libavfilter/af_aderivative.c diff --git a/libavfilter/af_aecho.c b/ffmpeg-y/libavfilter/af_aecho.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aecho.c rename to ffmpeg-y/libavfilter/af_aecho.c diff --git a/libavfilter/af_aemphasis.c b/ffmpeg-y/libavfilter/af_aemphasis.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aemphasis.c rename to ffmpeg-y/libavfilter/af_aemphasis.c diff --git a/libavfilter/af_afade.c b/ffmpeg-y/libavfilter/af_afade.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_afade.c rename to ffmpeg-y/libavfilter/af_afade.c diff --git a/libavfilter/af_afftdn.c b/ffmpeg-y/libavfilter/af_afftdn.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_afftdn.c rename to ffmpeg-y/libavfilter/af_afftdn.c diff --git a/libavfilter/af_afftfilt.c b/ffmpeg-y/libavfilter/af_afftfilt.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_afftfilt.c rename to ffmpeg-y/libavfilter/af_afftfilt.c diff --git a/libavfilter/af_afir.c b/ffmpeg-y/libavfilter/af_afir.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_afir.c rename to ffmpeg-y/libavfilter/af_afir.c diff --git a/libavfilter/af_afir.h b/ffmpeg-y/libavfilter/af_afir.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_afir.h rename to ffmpeg-y/libavfilter/af_afir.h diff --git a/libavfilter/af_aformat.c b/ffmpeg-y/libavfilter/af_aformat.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aformat.c rename to ffmpeg-y/libavfilter/af_aformat.c diff --git a/libavfilter/af_agate.c b/ffmpeg-y/libavfilter/af_agate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_agate.c rename to ffmpeg-y/libavfilter/af_agate.c diff --git a/libavfilter/af_aiir.c b/ffmpeg-y/libavfilter/af_aiir.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aiir.c rename to ffmpeg-y/libavfilter/af_aiir.c diff --git a/libavfilter/af_alimiter.c b/ffmpeg-y/libavfilter/af_alimiter.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_alimiter.c rename to ffmpeg-y/libavfilter/af_alimiter.c diff --git a/libavfilter/af_amerge.c b/ffmpeg-y/libavfilter/af_amerge.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_amerge.c rename to ffmpeg-y/libavfilter/af_amerge.c diff --git a/libavfilter/af_amix.c b/ffmpeg-y/libavfilter/af_amix.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_amix.c rename to ffmpeg-y/libavfilter/af_amix.c diff --git a/libavfilter/af_amultiply.c b/ffmpeg-y/libavfilter/af_amultiply.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_amultiply.c rename to ffmpeg-y/libavfilter/af_amultiply.c diff --git a/libavfilter/af_anequalizer.c b/ffmpeg-y/libavfilter/af_anequalizer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_anequalizer.c rename to ffmpeg-y/libavfilter/af_anequalizer.c diff --git a/libavfilter/af_anlmdn.c b/ffmpeg-y/libavfilter/af_anlmdn.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_anlmdn.c rename to ffmpeg-y/libavfilter/af_anlmdn.c diff --git a/libavfilter/af_anlmdndsp.h b/ffmpeg-y/libavfilter/af_anlmdndsp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_anlmdndsp.h rename to ffmpeg-y/libavfilter/af_anlmdndsp.h diff --git a/libavfilter/af_anull.c b/ffmpeg-y/libavfilter/af_anull.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_anull.c rename to ffmpeg-y/libavfilter/af_anull.c diff --git a/libavfilter/af_apad.c b/ffmpeg-y/libavfilter/af_apad.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_apad.c rename to ffmpeg-y/libavfilter/af_apad.c diff --git a/libavfilter/af_aphaser.c b/ffmpeg-y/libavfilter/af_aphaser.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aphaser.c rename to ffmpeg-y/libavfilter/af_aphaser.c diff --git a/libavfilter/af_apulsator.c b/ffmpeg-y/libavfilter/af_apulsator.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_apulsator.c rename to ffmpeg-y/libavfilter/af_apulsator.c diff --git a/libavfilter/af_aresample.c b/ffmpeg-y/libavfilter/af_aresample.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_aresample.c rename to ffmpeg-y/libavfilter/af_aresample.c diff --git a/libavfilter/af_asetnsamples.c b/ffmpeg-y/libavfilter/af_asetnsamples.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_asetnsamples.c rename to ffmpeg-y/libavfilter/af_asetnsamples.c diff --git a/libavfilter/af_asetrate.c b/ffmpeg-y/libavfilter/af_asetrate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_asetrate.c rename to ffmpeg-y/libavfilter/af_asetrate.c diff --git a/libavfilter/af_ashowinfo.c b/ffmpeg-y/libavfilter/af_ashowinfo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_ashowinfo.c rename to ffmpeg-y/libavfilter/af_ashowinfo.c diff --git a/libavfilter/af_asoftclip.c b/ffmpeg-y/libavfilter/af_asoftclip.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_asoftclip.c rename to ffmpeg-y/libavfilter/af_asoftclip.c diff --git a/libavfilter/af_asr.c b/ffmpeg-y/libavfilter/af_asr.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_asr.c rename to ffmpeg-y/libavfilter/af_asr.c diff --git a/libavfilter/af_astats.c b/ffmpeg-y/libavfilter/af_astats.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_astats.c rename to ffmpeg-y/libavfilter/af_astats.c diff --git a/libavfilter/af_atempo.c b/ffmpeg-y/libavfilter/af_atempo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_atempo.c rename to ffmpeg-y/libavfilter/af_atempo.c diff --git a/libavfilter/af_biquads.c b/ffmpeg-y/libavfilter/af_biquads.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_biquads.c rename to ffmpeg-y/libavfilter/af_biquads.c diff --git a/libavfilter/af_bs2b.c b/ffmpeg-y/libavfilter/af_bs2b.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_bs2b.c rename to ffmpeg-y/libavfilter/af_bs2b.c diff --git a/libavfilter/af_channelmap.c b/ffmpeg-y/libavfilter/af_channelmap.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_channelmap.c rename to ffmpeg-y/libavfilter/af_channelmap.c diff --git a/libavfilter/af_channelsplit.c b/ffmpeg-y/libavfilter/af_channelsplit.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_channelsplit.c rename to ffmpeg-y/libavfilter/af_channelsplit.c diff --git a/libavfilter/af_chorus.c b/ffmpeg-y/libavfilter/af_chorus.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_chorus.c rename to ffmpeg-y/libavfilter/af_chorus.c diff --git a/libavfilter/af_compand.c b/ffmpeg-y/libavfilter/af_compand.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_compand.c rename to ffmpeg-y/libavfilter/af_compand.c diff --git a/libavfilter/af_compensationdelay.c b/ffmpeg-y/libavfilter/af_compensationdelay.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_compensationdelay.c rename to ffmpeg-y/libavfilter/af_compensationdelay.c diff --git a/libavfilter/af_crossfeed.c b/ffmpeg-y/libavfilter/af_crossfeed.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_crossfeed.c rename to ffmpeg-y/libavfilter/af_crossfeed.c diff --git a/libavfilter/af_crystalizer.c b/ffmpeg-y/libavfilter/af_crystalizer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_crystalizer.c rename to ffmpeg-y/libavfilter/af_crystalizer.c diff --git a/libavfilter/af_dcshift.c b/ffmpeg-y/libavfilter/af_dcshift.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_dcshift.c rename to ffmpeg-y/libavfilter/af_dcshift.c diff --git a/libavfilter/af_deesser.c b/ffmpeg-y/libavfilter/af_deesser.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_deesser.c rename to ffmpeg-y/libavfilter/af_deesser.c diff --git a/libavfilter/af_drmeter.c b/ffmpeg-y/libavfilter/af_drmeter.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_drmeter.c rename to ffmpeg-y/libavfilter/af_drmeter.c diff --git a/libavfilter/af_dynaudnorm.c b/ffmpeg-y/libavfilter/af_dynaudnorm.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_dynaudnorm.c rename to ffmpeg-y/libavfilter/af_dynaudnorm.c diff --git a/libavfilter/af_earwax.c b/ffmpeg-y/libavfilter/af_earwax.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_earwax.c rename to ffmpeg-y/libavfilter/af_earwax.c diff --git a/libavfilter/af_extrastereo.c b/ffmpeg-y/libavfilter/af_extrastereo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_extrastereo.c rename to ffmpeg-y/libavfilter/af_extrastereo.c diff --git a/libavfilter/af_firequalizer.c b/ffmpeg-y/libavfilter/af_firequalizer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_firequalizer.c rename to ffmpeg-y/libavfilter/af_firequalizer.c diff --git a/libavfilter/af_flanger.c b/ffmpeg-y/libavfilter/af_flanger.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_flanger.c rename to ffmpeg-y/libavfilter/af_flanger.c diff --git a/libavfilter/af_haas.c b/ffmpeg-y/libavfilter/af_haas.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_haas.c rename to ffmpeg-y/libavfilter/af_haas.c diff --git a/libavfilter/af_hdcd.c b/ffmpeg-y/libavfilter/af_hdcd.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_hdcd.c rename to ffmpeg-y/libavfilter/af_hdcd.c diff --git a/libavfilter/af_headphone.c b/ffmpeg-y/libavfilter/af_headphone.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_headphone.c rename to ffmpeg-y/libavfilter/af_headphone.c diff --git a/libavfilter/af_join.c b/ffmpeg-y/libavfilter/af_join.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_join.c rename to ffmpeg-y/libavfilter/af_join.c diff --git a/libavfilter/af_ladspa.c b/ffmpeg-y/libavfilter/af_ladspa.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_ladspa.c rename to ffmpeg-y/libavfilter/af_ladspa.c diff --git a/libavfilter/af_loudnorm.c b/ffmpeg-y/libavfilter/af_loudnorm.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_loudnorm.c rename to ffmpeg-y/libavfilter/af_loudnorm.c diff --git a/libavfilter/af_lv2.c b/ffmpeg-y/libavfilter/af_lv2.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_lv2.c rename to ffmpeg-y/libavfilter/af_lv2.c diff --git a/libavfilter/af_mcompand.c b/ffmpeg-y/libavfilter/af_mcompand.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_mcompand.c rename to ffmpeg-y/libavfilter/af_mcompand.c diff --git a/libavfilter/af_pan.c b/ffmpeg-y/libavfilter/af_pan.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_pan.c rename to ffmpeg-y/libavfilter/af_pan.c diff --git a/libavfilter/af_replaygain.c b/ffmpeg-y/libavfilter/af_replaygain.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_replaygain.c rename to ffmpeg-y/libavfilter/af_replaygain.c diff --git a/libavfilter/af_resample.c b/ffmpeg-y/libavfilter/af_resample.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_resample.c rename to ffmpeg-y/libavfilter/af_resample.c diff --git a/libavfilter/af_rubberband.c b/ffmpeg-y/libavfilter/af_rubberband.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_rubberband.c rename to ffmpeg-y/libavfilter/af_rubberband.c diff --git a/libavfilter/af_sidechaincompress.c b/ffmpeg-y/libavfilter/af_sidechaincompress.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_sidechaincompress.c rename to ffmpeg-y/libavfilter/af_sidechaincompress.c diff --git a/libavfilter/af_silencedetect.c b/ffmpeg-y/libavfilter/af_silencedetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_silencedetect.c rename to ffmpeg-y/libavfilter/af_silencedetect.c diff --git a/libavfilter/af_silenceremove.c b/ffmpeg-y/libavfilter/af_silenceremove.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_silenceremove.c rename to ffmpeg-y/libavfilter/af_silenceremove.c diff --git a/libavfilter/af_sofalizer.c b/ffmpeg-y/libavfilter/af_sofalizer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_sofalizer.c rename to ffmpeg-y/libavfilter/af_sofalizer.c diff --git a/libavfilter/af_stereotools.c b/ffmpeg-y/libavfilter/af_stereotools.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_stereotools.c rename to ffmpeg-y/libavfilter/af_stereotools.c diff --git a/libavfilter/af_stereowiden.c b/ffmpeg-y/libavfilter/af_stereowiden.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_stereowiden.c rename to ffmpeg-y/libavfilter/af_stereowiden.c diff --git a/libavfilter/af_superequalizer.c b/ffmpeg-y/libavfilter/af_superequalizer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_superequalizer.c rename to ffmpeg-y/libavfilter/af_superequalizer.c diff --git a/libavfilter/af_surround.c b/ffmpeg-y/libavfilter/af_surround.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_surround.c rename to ffmpeg-y/libavfilter/af_surround.c diff --git a/libavfilter/af_tremolo.c b/ffmpeg-y/libavfilter/af_tremolo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_tremolo.c rename to ffmpeg-y/libavfilter/af_tremolo.c diff --git a/libavfilter/af_vibrato.c b/ffmpeg-y/libavfilter/af_vibrato.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_vibrato.c rename to ffmpeg-y/libavfilter/af_vibrato.c diff --git a/libavfilter/af_volume.c b/ffmpeg-y/libavfilter/af_volume.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_volume.c rename to ffmpeg-y/libavfilter/af_volume.c diff --git a/libavfilter/af_volume.h b/ffmpeg-y/libavfilter/af_volume.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_volume.h rename to ffmpeg-y/libavfilter/af_volume.h diff --git a/libavfilter/af_volumedetect.c b/ffmpeg-y/libavfilter/af_volumedetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/af_volumedetect.c rename to ffmpeg-y/libavfilter/af_volumedetect.c diff --git a/libavfilter/all_channel_layouts.inc b/ffmpeg-y/libavfilter/all_channel_layouts.inc old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/all_channel_layouts.inc rename to ffmpeg-y/libavfilter/all_channel_layouts.inc diff --git a/libavfilter/allfilters.c b/ffmpeg-y/libavfilter/allfilters.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/allfilters.c rename to ffmpeg-y/libavfilter/allfilters.c diff --git a/libavfilter/asink_anullsink.c b/ffmpeg-y/libavfilter/asink_anullsink.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asink_anullsink.c rename to ffmpeg-y/libavfilter/asink_anullsink.c diff --git a/libavfilter/asrc_anoisesrc.c b/ffmpeg-y/libavfilter/asrc_anoisesrc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asrc_anoisesrc.c rename to ffmpeg-y/libavfilter/asrc_anoisesrc.c diff --git a/libavfilter/asrc_anullsrc.c b/ffmpeg-y/libavfilter/asrc_anullsrc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asrc_anullsrc.c rename to ffmpeg-y/libavfilter/asrc_anullsrc.c diff --git a/libavfilter/asrc_flite.c b/ffmpeg-y/libavfilter/asrc_flite.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asrc_flite.c rename to ffmpeg-y/libavfilter/asrc_flite.c diff --git a/libavfilter/asrc_hilbert.c b/ffmpeg-y/libavfilter/asrc_hilbert.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asrc_hilbert.c rename to ffmpeg-y/libavfilter/asrc_hilbert.c diff --git a/libavfilter/asrc_sinc.c b/ffmpeg-y/libavfilter/asrc_sinc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asrc_sinc.c rename to ffmpeg-y/libavfilter/asrc_sinc.c diff --git a/libavfilter/asrc_sine.c b/ffmpeg-y/libavfilter/asrc_sine.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/asrc_sine.c rename to ffmpeg-y/libavfilter/asrc_sine.c diff --git a/libavfilter/audio.c b/ffmpeg-y/libavfilter/audio.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/audio.c rename to ffmpeg-y/libavfilter/audio.c diff --git a/libavfilter/audio.h b/ffmpeg-y/libavfilter/audio.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/audio.h rename to ffmpeg-y/libavfilter/audio.h diff --git a/libavfilter/avf_abitscope.c b/ffmpeg-y/libavfilter/avf_abitscope.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_abitscope.c rename to ffmpeg-y/libavfilter/avf_abitscope.c diff --git a/libavfilter/avf_ahistogram.c b/ffmpeg-y/libavfilter/avf_ahistogram.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_ahistogram.c rename to ffmpeg-y/libavfilter/avf_ahistogram.c diff --git a/libavfilter/avf_aphasemeter.c b/ffmpeg-y/libavfilter/avf_aphasemeter.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_aphasemeter.c rename to ffmpeg-y/libavfilter/avf_aphasemeter.c diff --git a/libavfilter/avf_avectorscope.c b/ffmpeg-y/libavfilter/avf_avectorscope.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_avectorscope.c rename to ffmpeg-y/libavfilter/avf_avectorscope.c diff --git a/libavfilter/avf_concat.c b/ffmpeg-y/libavfilter/avf_concat.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_concat.c rename to ffmpeg-y/libavfilter/avf_concat.c diff --git a/libavfilter/avf_showcqt.c b/ffmpeg-y/libavfilter/avf_showcqt.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showcqt.c rename to ffmpeg-y/libavfilter/avf_showcqt.c diff --git a/libavfilter/avf_showcqt.h b/ffmpeg-y/libavfilter/avf_showcqt.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showcqt.h rename to ffmpeg-y/libavfilter/avf_showcqt.h diff --git a/libavfilter/avf_showfreqs.c b/ffmpeg-y/libavfilter/avf_showfreqs.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showfreqs.c rename to ffmpeg-y/libavfilter/avf_showfreqs.c diff --git a/libavfilter/avf_showspatial.c b/ffmpeg-y/libavfilter/avf_showspatial.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showspatial.c rename to ffmpeg-y/libavfilter/avf_showspatial.c diff --git a/libavfilter/avf_showspectrum.c b/ffmpeg-y/libavfilter/avf_showspectrum.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showspectrum.c rename to ffmpeg-y/libavfilter/avf_showspectrum.c diff --git a/libavfilter/avf_showvolume.c b/ffmpeg-y/libavfilter/avf_showvolume.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showvolume.c rename to ffmpeg-y/libavfilter/avf_showvolume.c diff --git a/libavfilter/avf_showwaves.c b/ffmpeg-y/libavfilter/avf_showwaves.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avf_showwaves.c rename to ffmpeg-y/libavfilter/avf_showwaves.c diff --git a/libavfilter/avfilter.c b/ffmpeg-y/libavfilter/avfilter.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avfilter.c rename to ffmpeg-y/libavfilter/avfilter.c diff --git a/libavfilter/avfilter.h b/ffmpeg-y/libavfilter/avfilter.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avfilter.h rename to ffmpeg-y/libavfilter/avfilter.h diff --git a/libavfilter/avfiltergraph.c b/ffmpeg-y/libavfilter/avfiltergraph.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avfiltergraph.c rename to ffmpeg-y/libavfilter/avfiltergraph.c diff --git a/libavfilter/avfilterres.rc b/ffmpeg-y/libavfilter/avfilterres.rc old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/avfilterres.rc rename to ffmpeg-y/libavfilter/avfilterres.rc diff --git a/libavfilter/bbox.c b/ffmpeg-y/libavfilter/bbox.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/bbox.c rename to ffmpeg-y/libavfilter/bbox.c diff --git a/libavfilter/bbox.h b/ffmpeg-y/libavfilter/bbox.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/bbox.h rename to ffmpeg-y/libavfilter/bbox.h diff --git a/libavfilter/blend.h b/ffmpeg-y/libavfilter/blend.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/blend.h rename to ffmpeg-y/libavfilter/blend.h diff --git a/libavfilter/boxblur.c b/ffmpeg-y/libavfilter/boxblur.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/boxblur.c rename to ffmpeg-y/libavfilter/boxblur.c diff --git a/libavfilter/boxblur.h b/ffmpeg-y/libavfilter/boxblur.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/boxblur.h rename to ffmpeg-y/libavfilter/boxblur.h diff --git a/libavfilter/bufferqueue.h b/ffmpeg-y/libavfilter/bufferqueue.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/bufferqueue.h rename to ffmpeg-y/libavfilter/bufferqueue.h diff --git a/libavfilter/buffersink.c b/ffmpeg-y/libavfilter/buffersink.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/buffersink.c rename to ffmpeg-y/libavfilter/buffersink.c diff --git a/libavfilter/buffersink.h b/ffmpeg-y/libavfilter/buffersink.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/buffersink.h rename to ffmpeg-y/libavfilter/buffersink.h diff --git a/libavfilter/buffersrc.c b/ffmpeg-y/libavfilter/buffersrc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/buffersrc.c rename to ffmpeg-y/libavfilter/buffersrc.c diff --git a/libavfilter/buffersrc.h b/ffmpeg-y/libavfilter/buffersrc.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/buffersrc.h rename to ffmpeg-y/libavfilter/buffersrc.h diff --git a/libavfilter/bwdif.h b/ffmpeg-y/libavfilter/bwdif.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/bwdif.h rename to ffmpeg-y/libavfilter/bwdif.h diff --git a/libavfilter/colorspace.c b/ffmpeg-y/libavfilter/colorspace.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/colorspace.c rename to ffmpeg-y/libavfilter/colorspace.c diff --git a/libavfilter/colorspace.h b/ffmpeg-y/libavfilter/colorspace.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/colorspace.h rename to ffmpeg-y/libavfilter/colorspace.h diff --git a/libavfilter/colorspacedsp.c b/ffmpeg-y/libavfilter/colorspacedsp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/colorspacedsp.c rename to ffmpeg-y/libavfilter/colorspacedsp.c diff --git a/libavfilter/colorspacedsp.h b/ffmpeg-y/libavfilter/colorspacedsp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/colorspacedsp.h rename to ffmpeg-y/libavfilter/colorspacedsp.h diff --git a/libavfilter/colorspacedsp_template.c b/ffmpeg-y/libavfilter/colorspacedsp_template.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/colorspacedsp_template.c rename to ffmpeg-y/libavfilter/colorspacedsp_template.c diff --git a/libavfilter/colorspacedsp_yuv2yuv_template.c b/ffmpeg-y/libavfilter/colorspacedsp_yuv2yuv_template.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/colorspacedsp_yuv2yuv_template.c rename to ffmpeg-y/libavfilter/colorspacedsp_yuv2yuv_template.c diff --git a/libavfilter/deshake.h b/ffmpeg-y/libavfilter/deshake.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/deshake.h rename to ffmpeg-y/libavfilter/deshake.h diff --git a/libavfilter/dnn_backend_native.c b/ffmpeg-y/libavfilter/dnn_backend_native.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/dnn_backend_native.c rename to ffmpeg-y/libavfilter/dnn_backend_native.c diff --git a/libavfilter/dnn_backend_native.h b/ffmpeg-y/libavfilter/dnn_backend_native.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/dnn_backend_native.h rename to ffmpeg-y/libavfilter/dnn_backend_native.h diff --git a/libavfilter/dnn_backend_tf.c b/ffmpeg-y/libavfilter/dnn_backend_tf.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/dnn_backend_tf.c rename to ffmpeg-y/libavfilter/dnn_backend_tf.c diff --git a/libavfilter/dnn_backend_tf.h b/ffmpeg-y/libavfilter/dnn_backend_tf.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/dnn_backend_tf.h rename to ffmpeg-y/libavfilter/dnn_backend_tf.h diff --git a/libavfilter/dnn_interface.c b/ffmpeg-y/libavfilter/dnn_interface.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/dnn_interface.c rename to ffmpeg-y/libavfilter/dnn_interface.c diff --git a/libavfilter/dnn_interface.h b/ffmpeg-y/libavfilter/dnn_interface.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/dnn_interface.h rename to ffmpeg-y/libavfilter/dnn_interface.h diff --git a/libavfilter/drawutils.c b/ffmpeg-y/libavfilter/drawutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/drawutils.c rename to ffmpeg-y/libavfilter/drawutils.c diff --git a/libavfilter/drawutils.h b/ffmpeg-y/libavfilter/drawutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/drawutils.h rename to ffmpeg-y/libavfilter/drawutils.h diff --git a/libavfilter/ebur128.c b/ffmpeg-y/libavfilter/ebur128.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/ebur128.c rename to ffmpeg-y/libavfilter/ebur128.c diff --git a/libavfilter/ebur128.h b/ffmpeg-y/libavfilter/ebur128.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/ebur128.h rename to ffmpeg-y/libavfilter/ebur128.h diff --git a/libavfilter/f_bench.c b/ffmpeg-y/libavfilter/f_bench.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_bench.c rename to ffmpeg-y/libavfilter/f_bench.c diff --git a/libavfilter/f_cue.c b/ffmpeg-y/libavfilter/f_cue.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_cue.c rename to ffmpeg-y/libavfilter/f_cue.c diff --git a/libavfilter/f_drawgraph.c b/ffmpeg-y/libavfilter/f_drawgraph.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_drawgraph.c rename to ffmpeg-y/libavfilter/f_drawgraph.c diff --git a/libavfilter/f_ebur128.c b/ffmpeg-y/libavfilter/f_ebur128.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_ebur128.c rename to ffmpeg-y/libavfilter/f_ebur128.c diff --git a/libavfilter/f_graphmonitor.c b/ffmpeg-y/libavfilter/f_graphmonitor.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_graphmonitor.c rename to ffmpeg-y/libavfilter/f_graphmonitor.c diff --git a/libavfilter/f_interleave.c b/ffmpeg-y/libavfilter/f_interleave.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_interleave.c rename to ffmpeg-y/libavfilter/f_interleave.c diff --git a/libavfilter/f_loop.c b/ffmpeg-y/libavfilter/f_loop.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_loop.c rename to ffmpeg-y/libavfilter/f_loop.c diff --git a/libavfilter/f_metadata.c b/ffmpeg-y/libavfilter/f_metadata.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_metadata.c rename to ffmpeg-y/libavfilter/f_metadata.c diff --git a/libavfilter/f_perms.c b/ffmpeg-y/libavfilter/f_perms.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_perms.c rename to ffmpeg-y/libavfilter/f_perms.c diff --git a/libavfilter/f_realtime.c b/ffmpeg-y/libavfilter/f_realtime.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_realtime.c rename to ffmpeg-y/libavfilter/f_realtime.c diff --git a/libavfilter/f_reverse.c b/ffmpeg-y/libavfilter/f_reverse.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_reverse.c rename to ffmpeg-y/libavfilter/f_reverse.c diff --git a/libavfilter/f_select.c b/ffmpeg-y/libavfilter/f_select.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_select.c rename to ffmpeg-y/libavfilter/f_select.c diff --git a/libavfilter/f_sendcmd.c b/ffmpeg-y/libavfilter/f_sendcmd.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_sendcmd.c rename to ffmpeg-y/libavfilter/f_sendcmd.c diff --git a/libavfilter/f_sidedata.c b/ffmpeg-y/libavfilter/f_sidedata.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_sidedata.c rename to ffmpeg-y/libavfilter/f_sidedata.c diff --git a/libavfilter/f_streamselect.c b/ffmpeg-y/libavfilter/f_streamselect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_streamselect.c rename to ffmpeg-y/libavfilter/f_streamselect.c diff --git a/libavfilter/f_zmq.c b/ffmpeg-y/libavfilter/f_zmq.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/f_zmq.c rename to ffmpeg-y/libavfilter/f_zmq.c diff --git a/libavfilter/fifo.c b/ffmpeg-y/libavfilter/fifo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/fifo.c rename to ffmpeg-y/libavfilter/fifo.c diff --git a/libavfilter/filters.h b/ffmpeg-y/libavfilter/filters.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/filters.h rename to ffmpeg-y/libavfilter/filters.h diff --git a/libavfilter/formats.c b/ffmpeg-y/libavfilter/formats.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/formats.c rename to ffmpeg-y/libavfilter/formats.c diff --git a/libavfilter/formats.h b/ffmpeg-y/libavfilter/formats.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/formats.h rename to ffmpeg-y/libavfilter/formats.h diff --git a/libavfilter/framepool.c b/ffmpeg-y/libavfilter/framepool.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framepool.c rename to ffmpeg-y/libavfilter/framepool.c diff --git a/libavfilter/framepool.h b/ffmpeg-y/libavfilter/framepool.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framepool.h rename to ffmpeg-y/libavfilter/framepool.h diff --git a/libavfilter/framequeue.c b/ffmpeg-y/libavfilter/framequeue.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framequeue.c rename to ffmpeg-y/libavfilter/framequeue.c diff --git a/libavfilter/framequeue.h b/ffmpeg-y/libavfilter/framequeue.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framequeue.h rename to ffmpeg-y/libavfilter/framequeue.h diff --git a/libavfilter/framerate.h b/ffmpeg-y/libavfilter/framerate.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framerate.h rename to ffmpeg-y/libavfilter/framerate.h diff --git a/libavfilter/framesync.c b/ffmpeg-y/libavfilter/framesync.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framesync.c rename to ffmpeg-y/libavfilter/framesync.c diff --git a/libavfilter/framesync.h b/ffmpeg-y/libavfilter/framesync.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/framesync.h rename to ffmpeg-y/libavfilter/framesync.h diff --git a/libavfilter/gblur.h b/ffmpeg-y/libavfilter/gblur.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/gblur.h rename to ffmpeg-y/libavfilter/gblur.h diff --git a/libavfilter/generate_wave_table.c b/ffmpeg-y/libavfilter/generate_wave_table.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/generate_wave_table.c rename to ffmpeg-y/libavfilter/generate_wave_table.c diff --git a/libavfilter/generate_wave_table.h b/ffmpeg-y/libavfilter/generate_wave_table.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/generate_wave_table.h rename to ffmpeg-y/libavfilter/generate_wave_table.h diff --git a/libavfilter/gradfun.h b/ffmpeg-y/libavfilter/gradfun.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/gradfun.h rename to ffmpeg-y/libavfilter/gradfun.h diff --git a/libavfilter/graphdump.c b/ffmpeg-y/libavfilter/graphdump.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/graphdump.c rename to ffmpeg-y/libavfilter/graphdump.c diff --git a/libavfilter/graphparser.c b/ffmpeg-y/libavfilter/graphparser.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/graphparser.c rename to ffmpeg-y/libavfilter/graphparser.c diff --git a/libavfilter/hermite.h b/ffmpeg-y/libavfilter/hermite.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/hermite.h rename to ffmpeg-y/libavfilter/hermite.h diff --git a/libavfilter/hflip.h b/ffmpeg-y/libavfilter/hflip.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/hflip.h rename to ffmpeg-y/libavfilter/hflip.h diff --git a/libavfilter/internal.h b/ffmpeg-y/libavfilter/internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/internal.h rename to ffmpeg-y/libavfilter/internal.h diff --git a/libavfilter/lavfutils.c b/ffmpeg-y/libavfilter/lavfutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/lavfutils.c rename to ffmpeg-y/libavfilter/lavfutils.c diff --git a/libavfilter/lavfutils.h b/ffmpeg-y/libavfilter/lavfutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/lavfutils.h rename to ffmpeg-y/libavfilter/lavfutils.h diff --git a/libavfilter/libavfilter.v b/ffmpeg-y/libavfilter/libavfilter.v old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/libavfilter.v rename to ffmpeg-y/libavfilter/libavfilter.v diff --git a/libavfilter/limiter.h b/ffmpeg-y/libavfilter/limiter.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/limiter.h rename to ffmpeg-y/libavfilter/limiter.h diff --git a/libavfilter/log2_tab.c b/ffmpeg-y/libavfilter/log2_tab.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/log2_tab.c rename to ffmpeg-y/libavfilter/log2_tab.c diff --git a/libavfilter/lswsutils.c b/ffmpeg-y/libavfilter/lswsutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/lswsutils.c rename to ffmpeg-y/libavfilter/lswsutils.c diff --git a/libavfilter/lswsutils.h b/ffmpeg-y/libavfilter/lswsutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/lswsutils.h rename to ffmpeg-y/libavfilter/lswsutils.h diff --git a/libavfilter/maskedmerge.h b/ffmpeg-y/libavfilter/maskedmerge.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/maskedmerge.h rename to ffmpeg-y/libavfilter/maskedmerge.h diff --git a/libavfilter/motion_estimation.c b/ffmpeg-y/libavfilter/motion_estimation.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/motion_estimation.c rename to ffmpeg-y/libavfilter/motion_estimation.c diff --git a/libavfilter/motion_estimation.h b/ffmpeg-y/libavfilter/motion_estimation.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/motion_estimation.h rename to ffmpeg-y/libavfilter/motion_estimation.h diff --git a/libavfilter/opencl.c b/ffmpeg-y/libavfilter/opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl.c rename to ffmpeg-y/libavfilter/opencl.c diff --git a/libavfilter/opencl.h b/ffmpeg-y/libavfilter/opencl.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl.h rename to ffmpeg-y/libavfilter/opencl.h diff --git a/libavfilter/opencl/avgblur.cl b/ffmpeg-y/libavfilter/opencl/avgblur.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/avgblur.cl rename to ffmpeg-y/libavfilter/opencl/avgblur.cl diff --git a/libavfilter/opencl/colorkey.cl b/ffmpeg-y/libavfilter/opencl/colorkey.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/colorkey.cl rename to ffmpeg-y/libavfilter/opencl/colorkey.cl diff --git a/libavfilter/opencl/colorspace_common.cl b/ffmpeg-y/libavfilter/opencl/colorspace_common.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/colorspace_common.cl rename to ffmpeg-y/libavfilter/opencl/colorspace_common.cl diff --git a/libavfilter/opencl/convolution.cl b/ffmpeg-y/libavfilter/opencl/convolution.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/convolution.cl rename to ffmpeg-y/libavfilter/opencl/convolution.cl diff --git a/libavfilter/opencl/neighbor.cl b/ffmpeg-y/libavfilter/opencl/neighbor.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/neighbor.cl rename to ffmpeg-y/libavfilter/opencl/neighbor.cl diff --git a/libavfilter/opencl/nlmeans.cl b/ffmpeg-y/libavfilter/opencl/nlmeans.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/nlmeans.cl rename to ffmpeg-y/libavfilter/opencl/nlmeans.cl diff --git a/libavfilter/opencl/overlay.cl b/ffmpeg-y/libavfilter/opencl/overlay.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/overlay.cl rename to ffmpeg-y/libavfilter/opencl/overlay.cl diff --git a/libavfilter/opencl/tonemap.cl b/ffmpeg-y/libavfilter/opencl/tonemap.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/tonemap.cl rename to ffmpeg-y/libavfilter/opencl/tonemap.cl diff --git a/libavfilter/opencl/transpose.cl b/ffmpeg-y/libavfilter/opencl/transpose.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/transpose.cl rename to ffmpeg-y/libavfilter/opencl/transpose.cl diff --git a/libavfilter/opencl/unsharp.cl b/ffmpeg-y/libavfilter/opencl/unsharp.cl old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl/unsharp.cl rename to ffmpeg-y/libavfilter/opencl/unsharp.cl diff --git a/libavfilter/opencl_source.h b/ffmpeg-y/libavfilter/opencl_source.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/opencl_source.h rename to ffmpeg-y/libavfilter/opencl_source.h diff --git a/libavfilter/psnr.h b/ffmpeg-y/libavfilter/psnr.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/psnr.h rename to ffmpeg-y/libavfilter/psnr.h diff --git a/libavfilter/pthread.c b/ffmpeg-y/libavfilter/pthread.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/pthread.c rename to ffmpeg-y/libavfilter/pthread.c diff --git a/libavfilter/qsvvpp.c b/ffmpeg-y/libavfilter/qsvvpp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/qsvvpp.c rename to ffmpeg-y/libavfilter/qsvvpp.c diff --git a/libavfilter/qsvvpp.h b/ffmpeg-y/libavfilter/qsvvpp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/qsvvpp.h rename to ffmpeg-y/libavfilter/qsvvpp.h diff --git a/libavfilter/removegrain.h b/ffmpeg-y/libavfilter/removegrain.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/removegrain.h rename to ffmpeg-y/libavfilter/removegrain.h diff --git a/libavfilter/scale.c b/ffmpeg-y/libavfilter/scale.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/scale.c rename to ffmpeg-y/libavfilter/scale.c diff --git a/libavfilter/scale.h b/ffmpeg-y/libavfilter/scale.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/scale.h rename to ffmpeg-y/libavfilter/scale.h diff --git a/libavfilter/scene_sad.c b/ffmpeg-y/libavfilter/scene_sad.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/scene_sad.c rename to ffmpeg-y/libavfilter/scene_sad.c diff --git a/libavfilter/scene_sad.h b/ffmpeg-y/libavfilter/scene_sad.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/scene_sad.h rename to ffmpeg-y/libavfilter/scene_sad.h diff --git a/libavfilter/setpts.c b/ffmpeg-y/libavfilter/setpts.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/setpts.c rename to ffmpeg-y/libavfilter/setpts.c diff --git a/libavfilter/settb.c b/ffmpeg-y/libavfilter/settb.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/settb.c rename to ffmpeg-y/libavfilter/settb.c diff --git a/libavfilter/signature.h b/ffmpeg-y/libavfilter/signature.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/signature.h rename to ffmpeg-y/libavfilter/signature.h diff --git a/libavfilter/signature_lookup.c b/ffmpeg-y/libavfilter/signature_lookup.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/signature_lookup.c rename to ffmpeg-y/libavfilter/signature_lookup.c diff --git a/libavfilter/split.c b/ffmpeg-y/libavfilter/split.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/split.c rename to ffmpeg-y/libavfilter/split.c diff --git a/libavfilter/src_movie.c b/ffmpeg-y/libavfilter/src_movie.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/src_movie.c rename to ffmpeg-y/libavfilter/src_movie.c diff --git a/libavfilter/ssim.h b/ffmpeg-y/libavfilter/ssim.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/ssim.h rename to ffmpeg-y/libavfilter/ssim.h diff --git a/libavfilter/stereo3d.h b/ffmpeg-y/libavfilter/stereo3d.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/stereo3d.h rename to ffmpeg-y/libavfilter/stereo3d.h diff --git a/libavfilter/tests/drawutils.c b/ffmpeg-y/libavfilter/tests/drawutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/tests/drawutils.c rename to ffmpeg-y/libavfilter/tests/drawutils.c diff --git a/libavfilter/tests/filtfmts.c b/ffmpeg-y/libavfilter/tests/filtfmts.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/tests/filtfmts.c rename to ffmpeg-y/libavfilter/tests/filtfmts.c diff --git a/libavfilter/tests/formats.c b/ffmpeg-y/libavfilter/tests/formats.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/tests/formats.c rename to ffmpeg-y/libavfilter/tests/formats.c diff --git a/libavfilter/tests/integral.c b/ffmpeg-y/libavfilter/tests/integral.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/tests/integral.c rename to ffmpeg-y/libavfilter/tests/integral.c diff --git a/libavfilter/thread.h b/ffmpeg-y/libavfilter/thread.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/thread.h rename to ffmpeg-y/libavfilter/thread.h diff --git a/libavfilter/threshold.h b/ffmpeg-y/libavfilter/threshold.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/threshold.h rename to ffmpeg-y/libavfilter/threshold.h diff --git a/libavfilter/tinterlace.h b/ffmpeg-y/libavfilter/tinterlace.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/tinterlace.h rename to ffmpeg-y/libavfilter/tinterlace.h diff --git a/libavfilter/transform.c b/ffmpeg-y/libavfilter/transform.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/transform.c rename to ffmpeg-y/libavfilter/transform.c diff --git a/libavfilter/transform.h b/ffmpeg-y/libavfilter/transform.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/transform.h rename to ffmpeg-y/libavfilter/transform.h diff --git a/libavfilter/transpose.h b/ffmpeg-y/libavfilter/transpose.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/transpose.h rename to ffmpeg-y/libavfilter/transpose.h diff --git a/libavfilter/trim.c b/ffmpeg-y/libavfilter/trim.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/trim.c rename to ffmpeg-y/libavfilter/trim.c diff --git a/libavfilter/unsharp.h b/ffmpeg-y/libavfilter/unsharp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/unsharp.h rename to ffmpeg-y/libavfilter/unsharp.h diff --git a/libavfilter/vaapi_vpp.c b/ffmpeg-y/libavfilter/vaapi_vpp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vaapi_vpp.c rename to ffmpeg-y/libavfilter/vaapi_vpp.c diff --git a/libavfilter/vaapi_vpp.h b/ffmpeg-y/libavfilter/vaapi_vpp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vaapi_vpp.h rename to ffmpeg-y/libavfilter/vaapi_vpp.h diff --git a/libavfilter/vaf_spectrumsynth.c b/ffmpeg-y/libavfilter/vaf_spectrumsynth.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vaf_spectrumsynth.c rename to ffmpeg-y/libavfilter/vaf_spectrumsynth.c diff --git a/libavfilter/version.h b/ffmpeg-y/libavfilter/version.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/version.h rename to ffmpeg-y/libavfilter/version.h diff --git a/libavfilter/vf_alphamerge.c b/ffmpeg-y/libavfilter/vf_alphamerge.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_alphamerge.c rename to ffmpeg-y/libavfilter/vf_alphamerge.c diff --git a/libavfilter/vf_amplify.c b/ffmpeg-y/libavfilter/vf_amplify.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_amplify.c rename to ffmpeg-y/libavfilter/vf_amplify.c diff --git a/libavfilter/vf_aspect.c b/ffmpeg-y/libavfilter/vf_aspect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_aspect.c rename to ffmpeg-y/libavfilter/vf_aspect.c diff --git a/libavfilter/vf_atadenoise.c b/ffmpeg-y/libavfilter/vf_atadenoise.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_atadenoise.c rename to ffmpeg-y/libavfilter/vf_atadenoise.c diff --git a/libavfilter/vf_avgblur.c b/ffmpeg-y/libavfilter/vf_avgblur.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_avgblur.c rename to ffmpeg-y/libavfilter/vf_avgblur.c diff --git a/libavfilter/vf_avgblur_opencl.c b/ffmpeg-y/libavfilter/vf_avgblur_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_avgblur_opencl.c rename to ffmpeg-y/libavfilter/vf_avgblur_opencl.c diff --git a/libavfilter/vf_bbox.c b/ffmpeg-y/libavfilter/vf_bbox.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_bbox.c rename to ffmpeg-y/libavfilter/vf_bbox.c diff --git a/libavfilter/vf_bitplanenoise.c b/ffmpeg-y/libavfilter/vf_bitplanenoise.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_bitplanenoise.c rename to ffmpeg-y/libavfilter/vf_bitplanenoise.c diff --git a/libavfilter/vf_blackdetect.c b/ffmpeg-y/libavfilter/vf_blackdetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_blackdetect.c rename to ffmpeg-y/libavfilter/vf_blackdetect.c diff --git a/libavfilter/vf_blackframe.c b/ffmpeg-y/libavfilter/vf_blackframe.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_blackframe.c rename to ffmpeg-y/libavfilter/vf_blackframe.c diff --git a/libavfilter/vf_blend.c b/ffmpeg-y/libavfilter/vf_blend.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_blend.c rename to ffmpeg-y/libavfilter/vf_blend.c diff --git a/libavfilter/vf_bm3d.c b/ffmpeg-y/libavfilter/vf_bm3d.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_bm3d.c rename to ffmpeg-y/libavfilter/vf_bm3d.c diff --git a/libavfilter/vf_boxblur.c b/ffmpeg-y/libavfilter/vf_boxblur.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_boxblur.c rename to ffmpeg-y/libavfilter/vf_boxblur.c diff --git a/libavfilter/vf_bwdif.c b/ffmpeg-y/libavfilter/vf_bwdif.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_bwdif.c rename to ffmpeg-y/libavfilter/vf_bwdif.c diff --git a/libavfilter/vf_chromakey.c b/ffmpeg-y/libavfilter/vf_chromakey.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_chromakey.c rename to ffmpeg-y/libavfilter/vf_chromakey.c diff --git a/libavfilter/vf_chromashift.c b/ffmpeg-y/libavfilter/vf_chromashift.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_chromashift.c rename to ffmpeg-y/libavfilter/vf_chromashift.c diff --git a/libavfilter/vf_ciescope.c b/ffmpeg-y/libavfilter/vf_ciescope.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_ciescope.c rename to ffmpeg-y/libavfilter/vf_ciescope.c diff --git a/libavfilter/vf_codecview.c b/ffmpeg-y/libavfilter/vf_codecview.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_codecview.c rename to ffmpeg-y/libavfilter/vf_codecview.c diff --git a/libavfilter/vf_colorbalance.c b/ffmpeg-y/libavfilter/vf_colorbalance.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorbalance.c rename to ffmpeg-y/libavfilter/vf_colorbalance.c diff --git a/libavfilter/vf_colorchannelmixer.c b/ffmpeg-y/libavfilter/vf_colorchannelmixer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorchannelmixer.c rename to ffmpeg-y/libavfilter/vf_colorchannelmixer.c diff --git a/libavfilter/vf_colorconstancy.c b/ffmpeg-y/libavfilter/vf_colorconstancy.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorconstancy.c rename to ffmpeg-y/libavfilter/vf_colorconstancy.c diff --git a/libavfilter/vf_colorkey.c b/ffmpeg-y/libavfilter/vf_colorkey.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorkey.c rename to ffmpeg-y/libavfilter/vf_colorkey.c diff --git a/libavfilter/vf_colorkey_opencl.c b/ffmpeg-y/libavfilter/vf_colorkey_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorkey_opencl.c rename to ffmpeg-y/libavfilter/vf_colorkey_opencl.c diff --git a/libavfilter/vf_colorlevels.c b/ffmpeg-y/libavfilter/vf_colorlevels.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorlevels.c rename to ffmpeg-y/libavfilter/vf_colorlevels.c diff --git a/libavfilter/vf_colormatrix.c b/ffmpeg-y/libavfilter/vf_colormatrix.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colormatrix.c rename to ffmpeg-y/libavfilter/vf_colormatrix.c diff --git a/libavfilter/vf_colorspace.c b/ffmpeg-y/libavfilter/vf_colorspace.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_colorspace.c rename to ffmpeg-y/libavfilter/vf_colorspace.c diff --git a/libavfilter/vf_convolution.c b/ffmpeg-y/libavfilter/vf_convolution.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_convolution.c rename to ffmpeg-y/libavfilter/vf_convolution.c diff --git a/libavfilter/vf_convolution_opencl.c b/ffmpeg-y/libavfilter/vf_convolution_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_convolution_opencl.c rename to ffmpeg-y/libavfilter/vf_convolution_opencl.c diff --git a/libavfilter/vf_convolve.c b/ffmpeg-y/libavfilter/vf_convolve.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_convolve.c rename to ffmpeg-y/libavfilter/vf_convolve.c diff --git a/libavfilter/vf_copy.c b/ffmpeg-y/libavfilter/vf_copy.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_copy.c rename to ffmpeg-y/libavfilter/vf_copy.c diff --git a/libavfilter/vf_coreimage.m b/ffmpeg-y/libavfilter/vf_coreimage.m old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_coreimage.m rename to ffmpeg-y/libavfilter/vf_coreimage.m diff --git a/libavfilter/vf_cover_rect.c b/ffmpeg-y/libavfilter/vf_cover_rect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_cover_rect.c rename to ffmpeg-y/libavfilter/vf_cover_rect.c diff --git a/libavfilter/vf_crop.c b/ffmpeg-y/libavfilter/vf_crop.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_crop.c rename to ffmpeg-y/libavfilter/vf_crop.c diff --git a/libavfilter/vf_cropdetect.c b/ffmpeg-y/libavfilter/vf_cropdetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_cropdetect.c rename to ffmpeg-y/libavfilter/vf_cropdetect.c diff --git a/libavfilter/vf_curves.c b/ffmpeg-y/libavfilter/vf_curves.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_curves.c rename to ffmpeg-y/libavfilter/vf_curves.c diff --git a/libavfilter/vf_datascope.c b/ffmpeg-y/libavfilter/vf_datascope.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_datascope.c rename to ffmpeg-y/libavfilter/vf_datascope.c diff --git a/libavfilter/vf_dctdnoiz.c b/ffmpeg-y/libavfilter/vf_dctdnoiz.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_dctdnoiz.c rename to ffmpeg-y/libavfilter/vf_dctdnoiz.c diff --git a/libavfilter/vf_deband.c b/ffmpeg-y/libavfilter/vf_deband.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_deband.c rename to ffmpeg-y/libavfilter/vf_deband.c diff --git a/libavfilter/vf_deblock.c b/ffmpeg-y/libavfilter/vf_deblock.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_deblock.c rename to ffmpeg-y/libavfilter/vf_deblock.c diff --git a/libavfilter/vf_decimate.c b/ffmpeg-y/libavfilter/vf_decimate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_decimate.c rename to ffmpeg-y/libavfilter/vf_decimate.c diff --git a/libavfilter/vf_dedot.c b/ffmpeg-y/libavfilter/vf_dedot.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_dedot.c rename to ffmpeg-y/libavfilter/vf_dedot.c diff --git a/libavfilter/vf_deflicker.c b/ffmpeg-y/libavfilter/vf_deflicker.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_deflicker.c rename to ffmpeg-y/libavfilter/vf_deflicker.c diff --git a/libavfilter/vf_deinterlace_qsv.c b/ffmpeg-y/libavfilter/vf_deinterlace_qsv.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_deinterlace_qsv.c rename to ffmpeg-y/libavfilter/vf_deinterlace_qsv.c diff --git a/libavfilter/vf_deinterlace_vaapi.c b/ffmpeg-y/libavfilter/vf_deinterlace_vaapi.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_deinterlace_vaapi.c rename to ffmpeg-y/libavfilter/vf_deinterlace_vaapi.c diff --git a/libavfilter/vf_dejudder.c b/ffmpeg-y/libavfilter/vf_dejudder.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_dejudder.c rename to ffmpeg-y/libavfilter/vf_dejudder.c diff --git a/libavfilter/vf_delogo.c b/ffmpeg-y/libavfilter/vf_delogo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_delogo.c rename to ffmpeg-y/libavfilter/vf_delogo.c diff --git a/libavfilter/vf_derain.c b/ffmpeg-y/libavfilter/vf_derain.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_derain.c rename to ffmpeg-y/libavfilter/vf_derain.c diff --git a/libavfilter/vf_deshake.c b/ffmpeg-y/libavfilter/vf_deshake.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_deshake.c rename to ffmpeg-y/libavfilter/vf_deshake.c diff --git a/libavfilter/vf_despill.c b/ffmpeg-y/libavfilter/vf_despill.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_despill.c rename to ffmpeg-y/libavfilter/vf_despill.c diff --git a/libavfilter/vf_detelecine.c b/ffmpeg-y/libavfilter/vf_detelecine.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_detelecine.c rename to ffmpeg-y/libavfilter/vf_detelecine.c diff --git a/libavfilter/vf_displace.c b/ffmpeg-y/libavfilter/vf_displace.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_displace.c rename to ffmpeg-y/libavfilter/vf_displace.c diff --git a/libavfilter/vf_drawbox.c b/ffmpeg-y/libavfilter/vf_drawbox.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_drawbox.c rename to ffmpeg-y/libavfilter/vf_drawbox.c diff --git a/libavfilter/vf_drawtext.c b/ffmpeg-y/libavfilter/vf_drawtext.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_drawtext.c rename to ffmpeg-y/libavfilter/vf_drawtext.c diff --git a/libavfilter/vf_edgedetect.c b/ffmpeg-y/libavfilter/vf_edgedetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_edgedetect.c rename to ffmpeg-y/libavfilter/vf_edgedetect.c diff --git a/libavfilter/vf_elbg.c b/ffmpeg-y/libavfilter/vf_elbg.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_elbg.c rename to ffmpeg-y/libavfilter/vf_elbg.c diff --git a/libavfilter/vf_entropy.c b/ffmpeg-y/libavfilter/vf_entropy.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_entropy.c rename to ffmpeg-y/libavfilter/vf_entropy.c diff --git a/libavfilter/vf_eq.c b/ffmpeg-y/libavfilter/vf_eq.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_eq.c rename to ffmpeg-y/libavfilter/vf_eq.c diff --git a/libavfilter/vf_eq.h b/ffmpeg-y/libavfilter/vf_eq.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_eq.h rename to ffmpeg-y/libavfilter/vf_eq.h diff --git a/libavfilter/vf_extractplanes.c b/ffmpeg-y/libavfilter/vf_extractplanes.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_extractplanes.c rename to ffmpeg-y/libavfilter/vf_extractplanes.c diff --git a/libavfilter/vf_fade.c b/ffmpeg-y/libavfilter/vf_fade.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fade.c rename to ffmpeg-y/libavfilter/vf_fade.c diff --git a/libavfilter/vf_fftdnoiz.c b/ffmpeg-y/libavfilter/vf_fftdnoiz.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fftdnoiz.c rename to ffmpeg-y/libavfilter/vf_fftdnoiz.c diff --git a/libavfilter/vf_fftfilt.c b/ffmpeg-y/libavfilter/vf_fftfilt.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fftfilt.c rename to ffmpeg-y/libavfilter/vf_fftfilt.c diff --git a/libavfilter/vf_field.c b/ffmpeg-y/libavfilter/vf_field.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_field.c rename to ffmpeg-y/libavfilter/vf_field.c diff --git a/libavfilter/vf_fieldhint.c b/ffmpeg-y/libavfilter/vf_fieldhint.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fieldhint.c rename to ffmpeg-y/libavfilter/vf_fieldhint.c diff --git a/libavfilter/vf_fieldmatch.c b/ffmpeg-y/libavfilter/vf_fieldmatch.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fieldmatch.c rename to ffmpeg-y/libavfilter/vf_fieldmatch.c diff --git a/libavfilter/vf_fieldorder.c b/ffmpeg-y/libavfilter/vf_fieldorder.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fieldorder.c rename to ffmpeg-y/libavfilter/vf_fieldorder.c diff --git a/libavfilter/vf_fillborders.c b/ffmpeg-y/libavfilter/vf_fillborders.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fillborders.c rename to ffmpeg-y/libavfilter/vf_fillborders.c diff --git a/libavfilter/vf_find_rect.c b/ffmpeg-y/libavfilter/vf_find_rect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_find_rect.c rename to ffmpeg-y/libavfilter/vf_find_rect.c diff --git a/libavfilter/vf_floodfill.c b/ffmpeg-y/libavfilter/vf_floodfill.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_floodfill.c rename to ffmpeg-y/libavfilter/vf_floodfill.c diff --git a/libavfilter/vf_format.c b/ffmpeg-y/libavfilter/vf_format.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_format.c rename to ffmpeg-y/libavfilter/vf_format.c diff --git a/libavfilter/vf_fps.c b/ffmpeg-y/libavfilter/vf_fps.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fps.c rename to ffmpeg-y/libavfilter/vf_fps.c diff --git a/libavfilter/vf_framepack.c b/ffmpeg-y/libavfilter/vf_framepack.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_framepack.c rename to ffmpeg-y/libavfilter/vf_framepack.c diff --git a/libavfilter/vf_framerate.c b/ffmpeg-y/libavfilter/vf_framerate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_framerate.c rename to ffmpeg-y/libavfilter/vf_framerate.c diff --git a/libavfilter/vf_framestep.c b/ffmpeg-y/libavfilter/vf_framestep.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_framestep.c rename to ffmpeg-y/libavfilter/vf_framestep.c diff --git a/libavfilter/vf_freezedetect.c b/ffmpeg-y/libavfilter/vf_freezedetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_freezedetect.c rename to ffmpeg-y/libavfilter/vf_freezedetect.c diff --git a/libavfilter/vf_frei0r.c b/ffmpeg-y/libavfilter/vf_frei0r.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_frei0r.c rename to ffmpeg-y/libavfilter/vf_frei0r.c diff --git a/libavfilter/vf_fspp.c b/ffmpeg-y/libavfilter/vf_fspp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fspp.c rename to ffmpeg-y/libavfilter/vf_fspp.c diff --git a/libavfilter/vf_fspp.h b/ffmpeg-y/libavfilter/vf_fspp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_fspp.h rename to ffmpeg-y/libavfilter/vf_fspp.h diff --git a/libavfilter/vf_gblur.c b/ffmpeg-y/libavfilter/vf_gblur.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_gblur.c rename to ffmpeg-y/libavfilter/vf_gblur.c diff --git a/libavfilter/vf_geq.c b/ffmpeg-y/libavfilter/vf_geq.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_geq.c rename to ffmpeg-y/libavfilter/vf_geq.c diff --git a/libavfilter/vf_gradfun.c b/ffmpeg-y/libavfilter/vf_gradfun.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_gradfun.c rename to ffmpeg-y/libavfilter/vf_gradfun.c diff --git a/libavfilter/vf_hflip.c b/ffmpeg-y/libavfilter/vf_hflip.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hflip.c rename to ffmpeg-y/libavfilter/vf_hflip.c diff --git a/libavfilter/vf_histeq.c b/ffmpeg-y/libavfilter/vf_histeq.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_histeq.c rename to ffmpeg-y/libavfilter/vf_histeq.c diff --git a/libavfilter/vf_histogram.c b/ffmpeg-y/libavfilter/vf_histogram.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_histogram.c rename to ffmpeg-y/libavfilter/vf_histogram.c diff --git a/libavfilter/vf_hqdn3d.c b/ffmpeg-y/libavfilter/vf_hqdn3d.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hqdn3d.c rename to ffmpeg-y/libavfilter/vf_hqdn3d.c diff --git a/libavfilter/vf_hqdn3d.h b/ffmpeg-y/libavfilter/vf_hqdn3d.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hqdn3d.h rename to ffmpeg-y/libavfilter/vf_hqdn3d.h diff --git a/libavfilter/vf_hqx.c b/ffmpeg-y/libavfilter/vf_hqx.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hqx.c rename to ffmpeg-y/libavfilter/vf_hqx.c diff --git a/libavfilter/vf_hue.c b/ffmpeg-y/libavfilter/vf_hue.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hue.c rename to ffmpeg-y/libavfilter/vf_hue.c diff --git a/libavfilter/vf_hwdownload.c b/ffmpeg-y/libavfilter/vf_hwdownload.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hwdownload.c rename to ffmpeg-y/libavfilter/vf_hwdownload.c diff --git a/libavfilter/vf_hwmap.c b/ffmpeg-y/libavfilter/vf_hwmap.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hwmap.c rename to ffmpeg-y/libavfilter/vf_hwmap.c diff --git a/libavfilter/vf_hwupload.c b/ffmpeg-y/libavfilter/vf_hwupload.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hwupload.c rename to ffmpeg-y/libavfilter/vf_hwupload.c diff --git a/libavfilter/vf_hwupload_cuda.c b/ffmpeg-y/libavfilter/vf_hwupload_cuda.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hwupload_cuda.c rename to ffmpeg-y/libavfilter/vf_hwupload_cuda.c diff --git a/libavfilter/vf_hysteresis.c b/ffmpeg-y/libavfilter/vf_hysteresis.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_hysteresis.c rename to ffmpeg-y/libavfilter/vf_hysteresis.c diff --git a/libavfilter/vf_idet.c b/ffmpeg-y/libavfilter/vf_idet.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_idet.c rename to ffmpeg-y/libavfilter/vf_idet.c diff --git a/libavfilter/vf_idet.h b/ffmpeg-y/libavfilter/vf_idet.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_idet.h rename to ffmpeg-y/libavfilter/vf_idet.h diff --git a/libavfilter/vf_il.c b/ffmpeg-y/libavfilter/vf_il.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_il.c rename to ffmpeg-y/libavfilter/vf_il.c diff --git a/libavfilter/vf_kerndeint.c b/ffmpeg-y/libavfilter/vf_kerndeint.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_kerndeint.c rename to ffmpeg-y/libavfilter/vf_kerndeint.c diff --git a/libavfilter/vf_lagfun.c b/ffmpeg-y/libavfilter/vf_lagfun.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lagfun.c rename to ffmpeg-y/libavfilter/vf_lagfun.c diff --git a/libavfilter/vf_lenscorrection.c b/ffmpeg-y/libavfilter/vf_lenscorrection.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lenscorrection.c rename to ffmpeg-y/libavfilter/vf_lenscorrection.c diff --git a/libavfilter/vf_lensfun.c b/ffmpeg-y/libavfilter/vf_lensfun.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lensfun.c rename to ffmpeg-y/libavfilter/vf_lensfun.c diff --git a/libavfilter/vf_libopencv.c b/ffmpeg-y/libavfilter/vf_libopencv.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_libopencv.c rename to ffmpeg-y/libavfilter/vf_libopencv.c diff --git a/libavfilter/vf_libvmaf.c b/ffmpeg-y/libavfilter/vf_libvmaf.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_libvmaf.c rename to ffmpeg-y/libavfilter/vf_libvmaf.c diff --git a/libavfilter/vf_limiter.c b/ffmpeg-y/libavfilter/vf_limiter.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_limiter.c rename to ffmpeg-y/libavfilter/vf_limiter.c diff --git a/libavfilter/vf_lumakey.c b/ffmpeg-y/libavfilter/vf_lumakey.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lumakey.c rename to ffmpeg-y/libavfilter/vf_lumakey.c diff --git a/libavfilter/vf_lut.c b/ffmpeg-y/libavfilter/vf_lut.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lut.c rename to ffmpeg-y/libavfilter/vf_lut.c diff --git a/libavfilter/vf_lut2.c b/ffmpeg-y/libavfilter/vf_lut2.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lut2.c rename to ffmpeg-y/libavfilter/vf_lut2.c diff --git a/libavfilter/vf_lut3d.c b/ffmpeg-y/libavfilter/vf_lut3d.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_lut3d.c rename to ffmpeg-y/libavfilter/vf_lut3d.c diff --git a/libavfilter/vf_maskedclamp.c b/ffmpeg-y/libavfilter/vf_maskedclamp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_maskedclamp.c rename to ffmpeg-y/libavfilter/vf_maskedclamp.c diff --git a/libavfilter/vf_maskedmerge.c b/ffmpeg-y/libavfilter/vf_maskedmerge.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_maskedmerge.c rename to ffmpeg-y/libavfilter/vf_maskedmerge.c diff --git a/libavfilter/vf_maskfun.c b/ffmpeg-y/libavfilter/vf_maskfun.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_maskfun.c rename to ffmpeg-y/libavfilter/vf_maskfun.c diff --git a/libavfilter/vf_mcdeint.c b/ffmpeg-y/libavfilter/vf_mcdeint.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_mcdeint.c rename to ffmpeg-y/libavfilter/vf_mcdeint.c diff --git a/libavfilter/vf_mergeplanes.c b/ffmpeg-y/libavfilter/vf_mergeplanes.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_mergeplanes.c rename to ffmpeg-y/libavfilter/vf_mergeplanes.c diff --git a/libavfilter/vf_mestimate.c b/ffmpeg-y/libavfilter/vf_mestimate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_mestimate.c rename to ffmpeg-y/libavfilter/vf_mestimate.c diff --git a/libavfilter/vf_midequalizer.c b/ffmpeg-y/libavfilter/vf_midequalizer.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_midequalizer.c rename to ffmpeg-y/libavfilter/vf_midequalizer.c diff --git a/libavfilter/vf_minterpolate.c b/ffmpeg-y/libavfilter/vf_minterpolate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_minterpolate.c rename to ffmpeg-y/libavfilter/vf_minterpolate.c diff --git a/libavfilter/vf_misc_vaapi.c b/ffmpeg-y/libavfilter/vf_misc_vaapi.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_misc_vaapi.c rename to ffmpeg-y/libavfilter/vf_misc_vaapi.c diff --git a/libavfilter/vf_mix.c b/ffmpeg-y/libavfilter/vf_mix.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_mix.c rename to ffmpeg-y/libavfilter/vf_mix.c diff --git a/libavfilter/vf_mpdecimate.c b/ffmpeg-y/libavfilter/vf_mpdecimate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_mpdecimate.c rename to ffmpeg-y/libavfilter/vf_mpdecimate.c diff --git a/libavfilter/vf_neighbor.c b/ffmpeg-y/libavfilter/vf_neighbor.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_neighbor.c rename to ffmpeg-y/libavfilter/vf_neighbor.c diff --git a/libavfilter/vf_neighbor_opencl.c b/ffmpeg-y/libavfilter/vf_neighbor_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_neighbor_opencl.c rename to ffmpeg-y/libavfilter/vf_neighbor_opencl.c diff --git a/libavfilter/vf_nlmeans.c b/ffmpeg-y/libavfilter/vf_nlmeans.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_nlmeans.c rename to ffmpeg-y/libavfilter/vf_nlmeans.c diff --git a/libavfilter/vf_nlmeans.h b/ffmpeg-y/libavfilter/vf_nlmeans.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_nlmeans.h rename to ffmpeg-y/libavfilter/vf_nlmeans.h diff --git a/libavfilter/vf_nlmeans_opencl.c b/ffmpeg-y/libavfilter/vf_nlmeans_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_nlmeans_opencl.c rename to ffmpeg-y/libavfilter/vf_nlmeans_opencl.c diff --git a/libavfilter/vf_nnedi.c b/ffmpeg-y/libavfilter/vf_nnedi.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_nnedi.c rename to ffmpeg-y/libavfilter/vf_nnedi.c diff --git a/libavfilter/vf_noise.c b/ffmpeg-y/libavfilter/vf_noise.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_noise.c rename to ffmpeg-y/libavfilter/vf_noise.c diff --git a/libavfilter/vf_noise.h b/ffmpeg-y/libavfilter/vf_noise.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_noise.h rename to ffmpeg-y/libavfilter/vf_noise.h diff --git a/libavfilter/vf_normalize.c b/ffmpeg-y/libavfilter/vf_normalize.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_normalize.c rename to ffmpeg-y/libavfilter/vf_normalize.c diff --git a/libavfilter/vf_null.c b/ffmpeg-y/libavfilter/vf_null.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_null.c rename to ffmpeg-y/libavfilter/vf_null.c diff --git a/libavfilter/vf_ocr.c b/ffmpeg-y/libavfilter/vf_ocr.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_ocr.c rename to ffmpeg-y/libavfilter/vf_ocr.c diff --git a/libavfilter/vf_overlay.c b/ffmpeg-y/libavfilter/vf_overlay.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_overlay.c rename to ffmpeg-y/libavfilter/vf_overlay.c diff --git a/libavfilter/vf_overlay.h b/ffmpeg-y/libavfilter/vf_overlay.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_overlay.h rename to ffmpeg-y/libavfilter/vf_overlay.h diff --git a/libavfilter/vf_overlay_opencl.c b/ffmpeg-y/libavfilter/vf_overlay_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_overlay_opencl.c rename to ffmpeg-y/libavfilter/vf_overlay_opencl.c diff --git a/libavfilter/vf_overlay_qsv.c b/ffmpeg-y/libavfilter/vf_overlay_qsv.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_overlay_qsv.c rename to ffmpeg-y/libavfilter/vf_overlay_qsv.c diff --git a/libavfilter/vf_owdenoise.c b/ffmpeg-y/libavfilter/vf_owdenoise.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_owdenoise.c rename to ffmpeg-y/libavfilter/vf_owdenoise.c diff --git a/libavfilter/vf_pad.c b/ffmpeg-y/libavfilter/vf_pad.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pad.c rename to ffmpeg-y/libavfilter/vf_pad.c diff --git a/libavfilter/vf_palettegen.c b/ffmpeg-y/libavfilter/vf_palettegen.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_palettegen.c rename to ffmpeg-y/libavfilter/vf_palettegen.c diff --git a/libavfilter/vf_paletteuse.c b/ffmpeg-y/libavfilter/vf_paletteuse.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_paletteuse.c rename to ffmpeg-y/libavfilter/vf_paletteuse.c diff --git a/libavfilter/vf_perspective.c b/ffmpeg-y/libavfilter/vf_perspective.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_perspective.c rename to ffmpeg-y/libavfilter/vf_perspective.c diff --git a/libavfilter/vf_phase.c b/ffmpeg-y/libavfilter/vf_phase.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_phase.c rename to ffmpeg-y/libavfilter/vf_phase.c diff --git a/libavfilter/vf_pixdesctest.c b/ffmpeg-y/libavfilter/vf_pixdesctest.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pixdesctest.c rename to ffmpeg-y/libavfilter/vf_pixdesctest.c diff --git a/libavfilter/vf_pp.c b/ffmpeg-y/libavfilter/vf_pp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pp.c rename to ffmpeg-y/libavfilter/vf_pp.c diff --git a/libavfilter/vf_pp7.c b/ffmpeg-y/libavfilter/vf_pp7.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pp7.c rename to ffmpeg-y/libavfilter/vf_pp7.c diff --git a/libavfilter/vf_pp7.h b/ffmpeg-y/libavfilter/vf_pp7.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pp7.h rename to ffmpeg-y/libavfilter/vf_pp7.h diff --git a/libavfilter/vf_premultiply.c b/ffmpeg-y/libavfilter/vf_premultiply.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_premultiply.c rename to ffmpeg-y/libavfilter/vf_premultiply.c diff --git a/libavfilter/vf_procamp_vaapi.c b/ffmpeg-y/libavfilter/vf_procamp_vaapi.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_procamp_vaapi.c rename to ffmpeg-y/libavfilter/vf_procamp_vaapi.c diff --git a/libavfilter/vf_program_opencl.c b/ffmpeg-y/libavfilter/vf_program_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_program_opencl.c rename to ffmpeg-y/libavfilter/vf_program_opencl.c diff --git a/libavfilter/vf_pseudocolor.c b/ffmpeg-y/libavfilter/vf_pseudocolor.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pseudocolor.c rename to ffmpeg-y/libavfilter/vf_pseudocolor.c diff --git a/libavfilter/vf_psnr.c b/ffmpeg-y/libavfilter/vf_psnr.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_psnr.c rename to ffmpeg-y/libavfilter/vf_psnr.c diff --git a/libavfilter/vf_pullup.c b/ffmpeg-y/libavfilter/vf_pullup.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pullup.c rename to ffmpeg-y/libavfilter/vf_pullup.c diff --git a/libavfilter/vf_pullup.h b/ffmpeg-y/libavfilter/vf_pullup.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_pullup.h rename to ffmpeg-y/libavfilter/vf_pullup.h diff --git a/libavfilter/vf_qp.c b/ffmpeg-y/libavfilter/vf_qp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_qp.c rename to ffmpeg-y/libavfilter/vf_qp.c diff --git a/libavfilter/vf_random.c b/ffmpeg-y/libavfilter/vf_random.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_random.c rename to ffmpeg-y/libavfilter/vf_random.c diff --git a/libavfilter/vf_readeia608.c b/ffmpeg-y/libavfilter/vf_readeia608.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_readeia608.c rename to ffmpeg-y/libavfilter/vf_readeia608.c diff --git a/libavfilter/vf_readvitc.c b/ffmpeg-y/libavfilter/vf_readvitc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_readvitc.c rename to ffmpeg-y/libavfilter/vf_readvitc.c diff --git a/libavfilter/vf_remap.c b/ffmpeg-y/libavfilter/vf_remap.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_remap.c rename to ffmpeg-y/libavfilter/vf_remap.c diff --git a/libavfilter/vf_removegrain.c b/ffmpeg-y/libavfilter/vf_removegrain.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_removegrain.c rename to ffmpeg-y/libavfilter/vf_removegrain.c diff --git a/libavfilter/vf_removelogo.c b/ffmpeg-y/libavfilter/vf_removelogo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_removelogo.c rename to ffmpeg-y/libavfilter/vf_removelogo.c diff --git a/libavfilter/vf_repeatfields.c b/ffmpeg-y/libavfilter/vf_repeatfields.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_repeatfields.c rename to ffmpeg-y/libavfilter/vf_repeatfields.c diff --git a/libavfilter/vf_rotate.c b/ffmpeg-y/libavfilter/vf_rotate.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_rotate.c rename to ffmpeg-y/libavfilter/vf_rotate.c diff --git a/libavfilter/vf_sab.c b/ffmpeg-y/libavfilter/vf_sab.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_sab.c rename to ffmpeg-y/libavfilter/vf_sab.c diff --git a/libavfilter/vf_scale.c b/ffmpeg-y/libavfilter/vf_scale.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_scale.c rename to ffmpeg-y/libavfilter/vf_scale.c diff --git a/libavfilter/vf_scale_cuda.c b/ffmpeg-y/libavfilter/vf_scale_cuda.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_scale_cuda.c rename to ffmpeg-y/libavfilter/vf_scale_cuda.c diff --git a/libavfilter/vf_scale_cuda.cu b/ffmpeg-y/libavfilter/vf_scale_cuda.cu old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_scale_cuda.cu rename to ffmpeg-y/libavfilter/vf_scale_cuda.cu diff --git a/libavfilter/vf_scale_npp.c b/ffmpeg-y/libavfilter/vf_scale_npp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_scale_npp.c rename to ffmpeg-y/libavfilter/vf_scale_npp.c diff --git a/libavfilter/vf_scale_qsv.c b/ffmpeg-y/libavfilter/vf_scale_qsv.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_scale_qsv.c rename to ffmpeg-y/libavfilter/vf_scale_qsv.c diff --git a/libavfilter/vf_scale_vaapi.c b/ffmpeg-y/libavfilter/vf_scale_vaapi.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_scale_vaapi.c rename to ffmpeg-y/libavfilter/vf_scale_vaapi.c diff --git a/libavfilter/vf_selectivecolor.c b/ffmpeg-y/libavfilter/vf_selectivecolor.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_selectivecolor.c rename to ffmpeg-y/libavfilter/vf_selectivecolor.c diff --git a/libavfilter/vf_separatefields.c b/ffmpeg-y/libavfilter/vf_separatefields.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_separatefields.c rename to ffmpeg-y/libavfilter/vf_separatefields.c diff --git a/libavfilter/vf_setparams.c b/ffmpeg-y/libavfilter/vf_setparams.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_setparams.c rename to ffmpeg-y/libavfilter/vf_setparams.c diff --git a/libavfilter/vf_showinfo.c b/ffmpeg-y/libavfilter/vf_showinfo.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_showinfo.c rename to ffmpeg-y/libavfilter/vf_showinfo.c diff --git a/libavfilter/vf_showpalette.c b/ffmpeg-y/libavfilter/vf_showpalette.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_showpalette.c rename to ffmpeg-y/libavfilter/vf_showpalette.c diff --git a/libavfilter/vf_shuffleframes.c b/ffmpeg-y/libavfilter/vf_shuffleframes.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_shuffleframes.c rename to ffmpeg-y/libavfilter/vf_shuffleframes.c diff --git a/libavfilter/vf_shuffleplanes.c b/ffmpeg-y/libavfilter/vf_shuffleplanes.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_shuffleplanes.c rename to ffmpeg-y/libavfilter/vf_shuffleplanes.c diff --git a/libavfilter/vf_signalstats.c b/ffmpeg-y/libavfilter/vf_signalstats.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_signalstats.c rename to ffmpeg-y/libavfilter/vf_signalstats.c diff --git a/libavfilter/vf_signature.c b/ffmpeg-y/libavfilter/vf_signature.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_signature.c rename to ffmpeg-y/libavfilter/vf_signature.c diff --git a/libavfilter/vf_smartblur.c b/ffmpeg-y/libavfilter/vf_smartblur.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_smartblur.c rename to ffmpeg-y/libavfilter/vf_smartblur.c diff --git a/libavfilter/vf_spp.c b/ffmpeg-y/libavfilter/vf_spp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_spp.c rename to ffmpeg-y/libavfilter/vf_spp.c diff --git a/libavfilter/vf_spp.h b/ffmpeg-y/libavfilter/vf_spp.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_spp.h rename to ffmpeg-y/libavfilter/vf_spp.h diff --git a/libavfilter/vf_sr.c b/ffmpeg-y/libavfilter/vf_sr.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_sr.c rename to ffmpeg-y/libavfilter/vf_sr.c diff --git a/libavfilter/vf_ssim.c b/ffmpeg-y/libavfilter/vf_ssim.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_ssim.c rename to ffmpeg-y/libavfilter/vf_ssim.c diff --git a/libavfilter/vf_stack.c b/ffmpeg-y/libavfilter/vf_stack.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_stack.c rename to ffmpeg-y/libavfilter/vf_stack.c diff --git a/libavfilter/vf_stereo3d.c b/ffmpeg-y/libavfilter/vf_stereo3d.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_stereo3d.c rename to ffmpeg-y/libavfilter/vf_stereo3d.c diff --git a/libavfilter/vf_subtitles.c b/ffmpeg-y/libavfilter/vf_subtitles.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_subtitles.c rename to ffmpeg-y/libavfilter/vf_subtitles.c diff --git a/libavfilter/vf_super2xsai.c b/ffmpeg-y/libavfilter/vf_super2xsai.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_super2xsai.c rename to ffmpeg-y/libavfilter/vf_super2xsai.c diff --git a/libavfilter/vf_swaprect.c b/ffmpeg-y/libavfilter/vf_swaprect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_swaprect.c rename to ffmpeg-y/libavfilter/vf_swaprect.c diff --git a/libavfilter/vf_swapuv.c b/ffmpeg-y/libavfilter/vf_swapuv.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_swapuv.c rename to ffmpeg-y/libavfilter/vf_swapuv.c diff --git a/libavfilter/vf_telecine.c b/ffmpeg-y/libavfilter/vf_telecine.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_telecine.c rename to ffmpeg-y/libavfilter/vf_telecine.c diff --git a/libavfilter/vf_threshold.c b/ffmpeg-y/libavfilter/vf_threshold.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_threshold.c rename to ffmpeg-y/libavfilter/vf_threshold.c diff --git a/libavfilter/vf_thumbnail.c b/ffmpeg-y/libavfilter/vf_thumbnail.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_thumbnail.c rename to ffmpeg-y/libavfilter/vf_thumbnail.c diff --git a/libavfilter/vf_thumbnail_cuda.c b/ffmpeg-y/libavfilter/vf_thumbnail_cuda.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_thumbnail_cuda.c rename to ffmpeg-y/libavfilter/vf_thumbnail_cuda.c diff --git a/libavfilter/vf_thumbnail_cuda.cu b/ffmpeg-y/libavfilter/vf_thumbnail_cuda.cu old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_thumbnail_cuda.cu rename to ffmpeg-y/libavfilter/vf_thumbnail_cuda.cu diff --git a/libavfilter/vf_tile.c b/ffmpeg-y/libavfilter/vf_tile.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_tile.c rename to ffmpeg-y/libavfilter/vf_tile.c diff --git a/libavfilter/vf_tinterlace.c b/ffmpeg-y/libavfilter/vf_tinterlace.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_tinterlace.c rename to ffmpeg-y/libavfilter/vf_tinterlace.c diff --git a/libavfilter/vf_tonemap.c b/ffmpeg-y/libavfilter/vf_tonemap.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_tonemap.c rename to ffmpeg-y/libavfilter/vf_tonemap.c diff --git a/libavfilter/vf_tonemap_opencl.c b/ffmpeg-y/libavfilter/vf_tonemap_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_tonemap_opencl.c rename to ffmpeg-y/libavfilter/vf_tonemap_opencl.c diff --git a/libavfilter/vf_tpad.c b/ffmpeg-y/libavfilter/vf_tpad.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_tpad.c rename to ffmpeg-y/libavfilter/vf_tpad.c diff --git a/libavfilter/vf_transpose.c b/ffmpeg-y/libavfilter/vf_transpose.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_transpose.c rename to ffmpeg-y/libavfilter/vf_transpose.c diff --git a/libavfilter/vf_transpose_npp.c b/ffmpeg-y/libavfilter/vf_transpose_npp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_transpose_npp.c rename to ffmpeg-y/libavfilter/vf_transpose_npp.c diff --git a/libavfilter/vf_transpose_opencl.c b/ffmpeg-y/libavfilter/vf_transpose_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_transpose_opencl.c rename to ffmpeg-y/libavfilter/vf_transpose_opencl.c diff --git a/libavfilter/vf_transpose_vaapi.c b/ffmpeg-y/libavfilter/vf_transpose_vaapi.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_transpose_vaapi.c rename to ffmpeg-y/libavfilter/vf_transpose_vaapi.c diff --git a/libavfilter/vf_unsharp.c b/ffmpeg-y/libavfilter/vf_unsharp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_unsharp.c rename to ffmpeg-y/libavfilter/vf_unsharp.c diff --git a/libavfilter/vf_unsharp_opencl.c b/ffmpeg-y/libavfilter/vf_unsharp_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_unsharp_opencl.c rename to ffmpeg-y/libavfilter/vf_unsharp_opencl.c diff --git a/libavfilter/vf_uspp.c b/ffmpeg-y/libavfilter/vf_uspp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_uspp.c rename to ffmpeg-y/libavfilter/vf_uspp.c diff --git a/libavfilter/vf_vaguedenoiser.c b/ffmpeg-y/libavfilter/vf_vaguedenoiser.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vaguedenoiser.c rename to ffmpeg-y/libavfilter/vf_vaguedenoiser.c diff --git a/libavfilter/vf_vectorscope.c b/ffmpeg-y/libavfilter/vf_vectorscope.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vectorscope.c rename to ffmpeg-y/libavfilter/vf_vectorscope.c diff --git a/libavfilter/vf_vflip.c b/ffmpeg-y/libavfilter/vf_vflip.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vflip.c rename to ffmpeg-y/libavfilter/vf_vflip.c diff --git a/libavfilter/vf_vfrdet.c b/ffmpeg-y/libavfilter/vf_vfrdet.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vfrdet.c rename to ffmpeg-y/libavfilter/vf_vfrdet.c diff --git a/libavfilter/vf_vibrance.c b/ffmpeg-y/libavfilter/vf_vibrance.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vibrance.c rename to ffmpeg-y/libavfilter/vf_vibrance.c diff --git a/libavfilter/vf_vidstabdetect.c b/ffmpeg-y/libavfilter/vf_vidstabdetect.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vidstabdetect.c rename to ffmpeg-y/libavfilter/vf_vidstabdetect.c diff --git a/libavfilter/vf_vidstabtransform.c b/ffmpeg-y/libavfilter/vf_vidstabtransform.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vidstabtransform.c rename to ffmpeg-y/libavfilter/vf_vidstabtransform.c diff --git a/libavfilter/vf_vignette.c b/ffmpeg-y/libavfilter/vf_vignette.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vignette.c rename to ffmpeg-y/libavfilter/vf_vignette.c diff --git a/libavfilter/vf_vmafmotion.c b/ffmpeg-y/libavfilter/vf_vmafmotion.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vmafmotion.c rename to ffmpeg-y/libavfilter/vf_vmafmotion.c diff --git a/libavfilter/vf_vpp_qsv.c b/ffmpeg-y/libavfilter/vf_vpp_qsv.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_vpp_qsv.c rename to ffmpeg-y/libavfilter/vf_vpp_qsv.c diff --git a/libavfilter/vf_w3fdif.c b/ffmpeg-y/libavfilter/vf_w3fdif.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_w3fdif.c rename to ffmpeg-y/libavfilter/vf_w3fdif.c diff --git a/libavfilter/vf_waveform.c b/ffmpeg-y/libavfilter/vf_waveform.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_waveform.c rename to ffmpeg-y/libavfilter/vf_waveform.c diff --git a/libavfilter/vf_weave.c b/ffmpeg-y/libavfilter/vf_weave.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_weave.c rename to ffmpeg-y/libavfilter/vf_weave.c diff --git a/libavfilter/vf_xbr.c b/ffmpeg-y/libavfilter/vf_xbr.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_xbr.c rename to ffmpeg-y/libavfilter/vf_xbr.c diff --git a/libavfilter/vf_xmedian.c b/ffmpeg-y/libavfilter/vf_xmedian.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_xmedian.c rename to ffmpeg-y/libavfilter/vf_xmedian.c diff --git a/libavfilter/vf_yadif.c b/ffmpeg-y/libavfilter/vf_yadif.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_yadif.c rename to ffmpeg-y/libavfilter/vf_yadif.c diff --git a/libavfilter/vf_yadif_cuda.c b/ffmpeg-y/libavfilter/vf_yadif_cuda.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_yadif_cuda.c rename to ffmpeg-y/libavfilter/vf_yadif_cuda.c diff --git a/libavfilter/vf_yadif_cuda.cu b/ffmpeg-y/libavfilter/vf_yadif_cuda.cu old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_yadif_cuda.cu rename to ffmpeg-y/libavfilter/vf_yadif_cuda.cu diff --git a/libavfilter/vf_zoompan.c b/ffmpeg-y/libavfilter/vf_zoompan.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_zoompan.c rename to ffmpeg-y/libavfilter/vf_zoompan.c diff --git a/libavfilter/vf_zscale.c b/ffmpeg-y/libavfilter/vf_zscale.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vf_zscale.c rename to ffmpeg-y/libavfilter/vf_zscale.c diff --git a/libavfilter/video.c b/ffmpeg-y/libavfilter/video.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/video.c rename to ffmpeg-y/libavfilter/video.c diff --git a/libavfilter/video.h b/ffmpeg-y/libavfilter/video.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/video.h rename to ffmpeg-y/libavfilter/video.h diff --git a/libavfilter/vidstabutils.c b/ffmpeg-y/libavfilter/vidstabutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vidstabutils.c rename to ffmpeg-y/libavfilter/vidstabutils.c diff --git a/libavfilter/vidstabutils.h b/ffmpeg-y/libavfilter/vidstabutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vidstabutils.h rename to ffmpeg-y/libavfilter/vidstabutils.h diff --git a/libavfilter/vmaf_motion.h b/ffmpeg-y/libavfilter/vmaf_motion.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vmaf_motion.h rename to ffmpeg-y/libavfilter/vmaf_motion.h diff --git a/libavfilter/vsink_nullsink.c b/ffmpeg-y/libavfilter/vsink_nullsink.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vsink_nullsink.c rename to ffmpeg-y/libavfilter/vsink_nullsink.c diff --git a/libavfilter/vsrc_cellauto.c b/ffmpeg-y/libavfilter/vsrc_cellauto.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vsrc_cellauto.c rename to ffmpeg-y/libavfilter/vsrc_cellauto.c diff --git a/libavfilter/vsrc_life.c b/ffmpeg-y/libavfilter/vsrc_life.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vsrc_life.c rename to ffmpeg-y/libavfilter/vsrc_life.c diff --git a/libavfilter/vsrc_mandelbrot.c b/ffmpeg-y/libavfilter/vsrc_mandelbrot.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vsrc_mandelbrot.c rename to ffmpeg-y/libavfilter/vsrc_mandelbrot.c diff --git a/libavfilter/vsrc_mptestsrc.c b/ffmpeg-y/libavfilter/vsrc_mptestsrc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vsrc_mptestsrc.c rename to ffmpeg-y/libavfilter/vsrc_mptestsrc.c diff --git a/libavfilter/vsrc_testsrc.c b/ffmpeg-y/libavfilter/vsrc_testsrc.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/vsrc_testsrc.c rename to ffmpeg-y/libavfilter/vsrc_testsrc.c diff --git a/libavfilter/w3fdif.h b/ffmpeg-y/libavfilter/w3fdif.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/w3fdif.h rename to ffmpeg-y/libavfilter/w3fdif.h diff --git a/libavfilter/window_func.h b/ffmpeg-y/libavfilter/window_func.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/window_func.h rename to ffmpeg-y/libavfilter/window_func.h diff --git a/libavfilter/x86/Makefile b/ffmpeg-y/libavfilter/x86/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/Makefile rename to ffmpeg-y/libavfilter/x86/Makefile diff --git a/libavfilter/x86/af_afir_init.c b/ffmpeg-y/libavfilter/x86/af_afir_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/af_afir_init.c rename to ffmpeg-y/libavfilter/x86/af_afir_init.c diff --git a/libavfilter/x86/af_anlmdn_init.c b/ffmpeg-y/libavfilter/x86/af_anlmdn_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/af_anlmdn_init.c rename to ffmpeg-y/libavfilter/x86/af_anlmdn_init.c diff --git a/libavfilter/x86/af_volume_init.c b/ffmpeg-y/libavfilter/x86/af_volume_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/af_volume_init.c rename to ffmpeg-y/libavfilter/x86/af_volume_init.c diff --git a/libavfilter/x86/avf_showcqt_init.c b/ffmpeg-y/libavfilter/x86/avf_showcqt_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/avf_showcqt_init.c rename to ffmpeg-y/libavfilter/x86/avf_showcqt_init.c diff --git a/libavfilter/x86/colorspacedsp_init.c b/ffmpeg-y/libavfilter/x86/colorspacedsp_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/colorspacedsp_init.c rename to ffmpeg-y/libavfilter/x86/colorspacedsp_init.c diff --git a/libavfilter/x86/scene_sad_init.c b/ffmpeg-y/libavfilter/x86/scene_sad_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/scene_sad_init.c rename to ffmpeg-y/libavfilter/x86/scene_sad_init.c diff --git a/libavfilter/x86/vf_blend_init.c b/ffmpeg-y/libavfilter/x86/vf_blend_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_blend_init.c rename to ffmpeg-y/libavfilter/x86/vf_blend_init.c diff --git a/libavfilter/x86/vf_bwdif_init.c b/ffmpeg-y/libavfilter/x86/vf_bwdif_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_bwdif_init.c rename to ffmpeg-y/libavfilter/x86/vf_bwdif_init.c diff --git a/libavfilter/x86/vf_eq.c b/ffmpeg-y/libavfilter/x86/vf_eq.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_eq.c rename to ffmpeg-y/libavfilter/x86/vf_eq.c diff --git a/libavfilter/x86/vf_framerate_init.c b/ffmpeg-y/libavfilter/x86/vf_framerate_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_framerate_init.c rename to ffmpeg-y/libavfilter/x86/vf_framerate_init.c diff --git a/libavfilter/x86/vf_fspp_init.c b/ffmpeg-y/libavfilter/x86/vf_fspp_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_fspp_init.c rename to ffmpeg-y/libavfilter/x86/vf_fspp_init.c diff --git a/libavfilter/x86/vf_gblur_init.c b/ffmpeg-y/libavfilter/x86/vf_gblur_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_gblur_init.c rename to ffmpeg-y/libavfilter/x86/vf_gblur_init.c diff --git a/libavfilter/x86/vf_gradfun_init.c b/ffmpeg-y/libavfilter/x86/vf_gradfun_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_gradfun_init.c rename to ffmpeg-y/libavfilter/x86/vf_gradfun_init.c diff --git a/libavfilter/x86/vf_hflip_init.c b/ffmpeg-y/libavfilter/x86/vf_hflip_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_hflip_init.c rename to ffmpeg-y/libavfilter/x86/vf_hflip_init.c diff --git a/libavfilter/x86/vf_hqdn3d_init.c b/ffmpeg-y/libavfilter/x86/vf_hqdn3d_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_hqdn3d_init.c rename to ffmpeg-y/libavfilter/x86/vf_hqdn3d_init.c diff --git a/libavfilter/x86/vf_idet_init.c b/ffmpeg-y/libavfilter/x86/vf_idet_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_idet_init.c rename to ffmpeg-y/libavfilter/x86/vf_idet_init.c diff --git a/libavfilter/x86/vf_limiter_init.c b/ffmpeg-y/libavfilter/x86/vf_limiter_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_limiter_init.c rename to ffmpeg-y/libavfilter/x86/vf_limiter_init.c diff --git a/libavfilter/x86/vf_maskedmerge_init.c b/ffmpeg-y/libavfilter/x86/vf_maskedmerge_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_maskedmerge_init.c rename to ffmpeg-y/libavfilter/x86/vf_maskedmerge_init.c diff --git a/libavfilter/x86/vf_noise.c b/ffmpeg-y/libavfilter/x86/vf_noise.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_noise.c rename to ffmpeg-y/libavfilter/x86/vf_noise.c diff --git a/libavfilter/x86/vf_overlay_init.c b/ffmpeg-y/libavfilter/x86/vf_overlay_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_overlay_init.c rename to ffmpeg-y/libavfilter/x86/vf_overlay_init.c diff --git a/libavfilter/x86/vf_pp7_init.c b/ffmpeg-y/libavfilter/x86/vf_pp7_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_pp7_init.c rename to ffmpeg-y/libavfilter/x86/vf_pp7_init.c diff --git a/libavfilter/x86/vf_psnr_init.c b/ffmpeg-y/libavfilter/x86/vf_psnr_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_psnr_init.c rename to ffmpeg-y/libavfilter/x86/vf_psnr_init.c diff --git a/libavfilter/x86/vf_pullup_init.c b/ffmpeg-y/libavfilter/x86/vf_pullup_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_pullup_init.c rename to ffmpeg-y/libavfilter/x86/vf_pullup_init.c diff --git a/libavfilter/x86/vf_removegrain_init.c b/ffmpeg-y/libavfilter/x86/vf_removegrain_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_removegrain_init.c rename to ffmpeg-y/libavfilter/x86/vf_removegrain_init.c diff --git a/libavfilter/x86/vf_spp.c b/ffmpeg-y/libavfilter/x86/vf_spp.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_spp.c rename to ffmpeg-y/libavfilter/x86/vf_spp.c diff --git a/libavfilter/x86/vf_ssim_init.c b/ffmpeg-y/libavfilter/x86/vf_ssim_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_ssim_init.c rename to ffmpeg-y/libavfilter/x86/vf_ssim_init.c diff --git a/libavfilter/x86/vf_stereo3d_init.c b/ffmpeg-y/libavfilter/x86/vf_stereo3d_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_stereo3d_init.c rename to ffmpeg-y/libavfilter/x86/vf_stereo3d_init.c diff --git a/libavfilter/x86/vf_threshold_init.c b/ffmpeg-y/libavfilter/x86/vf_threshold_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_threshold_init.c rename to ffmpeg-y/libavfilter/x86/vf_threshold_init.c diff --git a/libavfilter/x86/vf_tinterlace_init.c b/ffmpeg-y/libavfilter/x86/vf_tinterlace_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_tinterlace_init.c rename to ffmpeg-y/libavfilter/x86/vf_tinterlace_init.c diff --git a/libavfilter/x86/vf_w3fdif_init.c b/ffmpeg-y/libavfilter/x86/vf_w3fdif_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_w3fdif_init.c rename to ffmpeg-y/libavfilter/x86/vf_w3fdif_init.c diff --git a/libavfilter/x86/vf_yadif_init.c b/ffmpeg-y/libavfilter/x86/vf_yadif_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/x86/vf_yadif_init.c rename to ffmpeg-y/libavfilter/x86/vf_yadif_init.c diff --git a/libavfilter/yadif.h b/ffmpeg-y/libavfilter/yadif.h old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/yadif.h rename to ffmpeg-y/libavfilter/yadif.h diff --git a/libavfilter/yadif_common.c b/ffmpeg-y/libavfilter/yadif_common.c old mode 100644 new mode 100755 similarity index 100% rename from libavfilter/yadif_common.c rename to ffmpeg-y/libavfilter/yadif_common.c diff --git a/libavformat/3dostr.c b/ffmpeg-y/libavformat/3dostr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/3dostr.c rename to ffmpeg-y/libavformat/3dostr.c diff --git a/libavformat/4xm.c b/ffmpeg-y/libavformat/4xm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/4xm.c rename to ffmpeg-y/libavformat/4xm.c diff --git a/libavformat/Makefile b/ffmpeg-y/libavformat/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavformat/Makefile rename to ffmpeg-y/libavformat/Makefile diff --git a/libavformat/a64.c b/ffmpeg-y/libavformat/a64.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/a64.c rename to ffmpeg-y/libavformat/a64.c diff --git a/libavformat/aacdec.c b/ffmpeg-y/libavformat/aacdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aacdec.c rename to ffmpeg-y/libavformat/aacdec.c diff --git a/libavformat/aadec.c b/ffmpeg-y/libavformat/aadec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aadec.c rename to ffmpeg-y/libavformat/aadec.c diff --git a/libavformat/ac3dec.c b/ffmpeg-y/libavformat/ac3dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ac3dec.c rename to ffmpeg-y/libavformat/ac3dec.c diff --git a/libavformat/acm.c b/ffmpeg-y/libavformat/acm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/acm.c rename to ffmpeg-y/libavformat/acm.c diff --git a/libavformat/act.c b/ffmpeg-y/libavformat/act.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/act.c rename to ffmpeg-y/libavformat/act.c diff --git a/libavformat/adp.c b/ffmpeg-y/libavformat/adp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/adp.c rename to ffmpeg-y/libavformat/adp.c diff --git a/libavformat/ads.c b/ffmpeg-y/libavformat/ads.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ads.c rename to ffmpeg-y/libavformat/ads.c diff --git a/libavformat/adtsenc.c b/ffmpeg-y/libavformat/adtsenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/adtsenc.c rename to ffmpeg-y/libavformat/adtsenc.c diff --git a/libavformat/adxdec.c b/ffmpeg-y/libavformat/adxdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/adxdec.c rename to ffmpeg-y/libavformat/adxdec.c diff --git a/libavformat/aea.c b/ffmpeg-y/libavformat/aea.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aea.c rename to ffmpeg-y/libavformat/aea.c diff --git a/libavformat/afc.c b/ffmpeg-y/libavformat/afc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/afc.c rename to ffmpeg-y/libavformat/afc.c diff --git a/libavformat/aiff.h b/ffmpeg-y/libavformat/aiff.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aiff.h rename to ffmpeg-y/libavformat/aiff.h diff --git a/libavformat/aiffdec.c b/ffmpeg-y/libavformat/aiffdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aiffdec.c rename to ffmpeg-y/libavformat/aiffdec.c diff --git a/libavformat/aiffenc.c b/ffmpeg-y/libavformat/aiffenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aiffenc.c rename to ffmpeg-y/libavformat/aiffenc.c diff --git a/libavformat/aixdec.c b/ffmpeg-y/libavformat/aixdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aixdec.c rename to ffmpeg-y/libavformat/aixdec.c diff --git a/libavformat/allformats.c b/ffmpeg-y/libavformat/allformats.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/allformats.c rename to ffmpeg-y/libavformat/allformats.c diff --git a/libavformat/amr.c b/ffmpeg-y/libavformat/amr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/amr.c rename to ffmpeg-y/libavformat/amr.c diff --git a/libavformat/anm.c b/ffmpeg-y/libavformat/anm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/anm.c rename to ffmpeg-y/libavformat/anm.c diff --git a/libavformat/apc.c b/ffmpeg-y/libavformat/apc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/apc.c rename to ffmpeg-y/libavformat/apc.c diff --git a/libavformat/ape.c b/ffmpeg-y/libavformat/ape.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ape.c rename to ffmpeg-y/libavformat/ape.c diff --git a/libavformat/apetag.c b/ffmpeg-y/libavformat/apetag.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/apetag.c rename to ffmpeg-y/libavformat/apetag.c diff --git a/libavformat/apetag.h b/ffmpeg-y/libavformat/apetag.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/apetag.h rename to ffmpeg-y/libavformat/apetag.h diff --git a/libavformat/apngdec.c b/ffmpeg-y/libavformat/apngdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/apngdec.c rename to ffmpeg-y/libavformat/apngdec.c diff --git a/libavformat/apngenc.c b/ffmpeg-y/libavformat/apngenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/apngenc.c rename to ffmpeg-y/libavformat/apngenc.c diff --git a/libavformat/aptxdec.c b/ffmpeg-y/libavformat/aptxdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aptxdec.c rename to ffmpeg-y/libavformat/aptxdec.c diff --git a/libavformat/aqtitledec.c b/ffmpeg-y/libavformat/aqtitledec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aqtitledec.c rename to ffmpeg-y/libavformat/aqtitledec.c diff --git a/libavformat/asf.c b/ffmpeg-y/libavformat/asf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asf.c rename to ffmpeg-y/libavformat/asf.c diff --git a/libavformat/asf.h b/ffmpeg-y/libavformat/asf.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asf.h rename to ffmpeg-y/libavformat/asf.h diff --git a/libavformat/asfcrypt.c b/ffmpeg-y/libavformat/asfcrypt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asfcrypt.c rename to ffmpeg-y/libavformat/asfcrypt.c diff --git a/libavformat/asfcrypt.h b/ffmpeg-y/libavformat/asfcrypt.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asfcrypt.h rename to ffmpeg-y/libavformat/asfcrypt.h diff --git a/libavformat/asfdec_f.c b/ffmpeg-y/libavformat/asfdec_f.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asfdec_f.c rename to ffmpeg-y/libavformat/asfdec_f.c diff --git a/libavformat/asfdec_o.c b/ffmpeg-y/libavformat/asfdec_o.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asfdec_o.c rename to ffmpeg-y/libavformat/asfdec_o.c diff --git a/libavformat/asfenc.c b/ffmpeg-y/libavformat/asfenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/asfenc.c rename to ffmpeg-y/libavformat/asfenc.c diff --git a/libavformat/assdec.c b/ffmpeg-y/libavformat/assdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/assdec.c rename to ffmpeg-y/libavformat/assdec.c diff --git a/libavformat/assenc.c b/ffmpeg-y/libavformat/assenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/assenc.c rename to ffmpeg-y/libavformat/assenc.c diff --git a/libavformat/ast.c b/ffmpeg-y/libavformat/ast.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ast.c rename to ffmpeg-y/libavformat/ast.c diff --git a/libavformat/ast.h b/ffmpeg-y/libavformat/ast.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ast.h rename to ffmpeg-y/libavformat/ast.h diff --git a/libavformat/astdec.c b/ffmpeg-y/libavformat/astdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/astdec.c rename to ffmpeg-y/libavformat/astdec.c diff --git a/libavformat/astenc.c b/ffmpeg-y/libavformat/astenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/astenc.c rename to ffmpeg-y/libavformat/astenc.c diff --git a/libavformat/async.c b/ffmpeg-y/libavformat/async.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/async.c rename to ffmpeg-y/libavformat/async.c diff --git a/libavformat/au.c b/ffmpeg-y/libavformat/au.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/au.c rename to ffmpeg-y/libavformat/au.c diff --git a/libavformat/audiointerleave.c b/ffmpeg-y/libavformat/audiointerleave.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/audiointerleave.c rename to ffmpeg-y/libavformat/audiointerleave.c diff --git a/libavformat/audiointerleave.h b/ffmpeg-y/libavformat/audiointerleave.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/audiointerleave.h rename to ffmpeg-y/libavformat/audiointerleave.h diff --git a/libavformat/av1.c b/ffmpeg-y/libavformat/av1.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/av1.c rename to ffmpeg-y/libavformat/av1.c diff --git a/libavformat/av1.h b/ffmpeg-y/libavformat/av1.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/av1.h rename to ffmpeg-y/libavformat/av1.h diff --git a/libavformat/avc.c b/ffmpeg-y/libavformat/avc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avc.c rename to ffmpeg-y/libavformat/avc.c diff --git a/libavformat/avc.h b/ffmpeg-y/libavformat/avc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avc.h rename to ffmpeg-y/libavformat/avc.h diff --git a/libavformat/avformat.h b/ffmpeg-y/libavformat/avformat.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avformat.h rename to ffmpeg-y/libavformat/avformat.h diff --git a/libavformat/avformatres.rc b/ffmpeg-y/libavformat/avformatres.rc old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avformatres.rc rename to ffmpeg-y/libavformat/avformatres.rc diff --git a/libavformat/avi.h b/ffmpeg-y/libavformat/avi.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avi.h rename to ffmpeg-y/libavformat/avi.h diff --git a/libavformat/avidec.c b/ffmpeg-y/libavformat/avidec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avidec.c rename to ffmpeg-y/libavformat/avidec.c diff --git a/libavformat/avienc.c b/ffmpeg-y/libavformat/avienc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avienc.c rename to ffmpeg-y/libavformat/avienc.c diff --git a/libavformat/avio.c b/ffmpeg-y/libavformat/avio.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avio.c rename to ffmpeg-y/libavformat/avio.c diff --git a/libavformat/avio.h b/ffmpeg-y/libavformat/avio.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avio.h rename to ffmpeg-y/libavformat/avio.h diff --git a/libavformat/avio_internal.h b/ffmpeg-y/libavformat/avio_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avio_internal.h rename to ffmpeg-y/libavformat/avio_internal.h diff --git a/libavformat/aviobuf.c b/ffmpeg-y/libavformat/aviobuf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/aviobuf.c rename to ffmpeg-y/libavformat/aviobuf.c diff --git a/libavformat/avisynth.c b/ffmpeg-y/libavformat/avisynth.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avisynth.c rename to ffmpeg-y/libavformat/avisynth.c diff --git a/libavformat/avlanguage.c b/ffmpeg-y/libavformat/avlanguage.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avlanguage.c rename to ffmpeg-y/libavformat/avlanguage.c diff --git a/libavformat/avlanguage.h b/ffmpeg-y/libavformat/avlanguage.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avlanguage.h rename to ffmpeg-y/libavformat/avlanguage.h diff --git a/libavformat/avr.c b/ffmpeg-y/libavformat/avr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avr.c rename to ffmpeg-y/libavformat/avr.c diff --git a/libavformat/avs.c b/ffmpeg-y/libavformat/avs.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/avs.c rename to ffmpeg-y/libavformat/avs.c diff --git a/libavformat/bethsoftvid.c b/ffmpeg-y/libavformat/bethsoftvid.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bethsoftvid.c rename to ffmpeg-y/libavformat/bethsoftvid.c diff --git a/libavformat/bfi.c b/ffmpeg-y/libavformat/bfi.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bfi.c rename to ffmpeg-y/libavformat/bfi.c diff --git a/libavformat/bink.c b/ffmpeg-y/libavformat/bink.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bink.c rename to ffmpeg-y/libavformat/bink.c diff --git a/libavformat/bintext.c b/ffmpeg-y/libavformat/bintext.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bintext.c rename to ffmpeg-y/libavformat/bintext.c diff --git a/libavformat/bit.c b/ffmpeg-y/libavformat/bit.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bit.c rename to ffmpeg-y/libavformat/bit.c diff --git a/libavformat/bluray.c b/ffmpeg-y/libavformat/bluray.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bluray.c rename to ffmpeg-y/libavformat/bluray.c diff --git a/libavformat/bmv.c b/ffmpeg-y/libavformat/bmv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/bmv.c rename to ffmpeg-y/libavformat/bmv.c diff --git a/libavformat/boadec.c b/ffmpeg-y/libavformat/boadec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/boadec.c rename to ffmpeg-y/libavformat/boadec.c diff --git a/libavformat/brstm.c b/ffmpeg-y/libavformat/brstm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/brstm.c rename to ffmpeg-y/libavformat/brstm.c diff --git a/libavformat/c93.c b/ffmpeg-y/libavformat/c93.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/c93.c rename to ffmpeg-y/libavformat/c93.c diff --git a/libavformat/cache.c b/ffmpeg-y/libavformat/cache.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cache.c rename to ffmpeg-y/libavformat/cache.c diff --git a/libavformat/caf.c b/ffmpeg-y/libavformat/caf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/caf.c rename to ffmpeg-y/libavformat/caf.c diff --git a/libavformat/caf.h b/ffmpeg-y/libavformat/caf.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/caf.h rename to ffmpeg-y/libavformat/caf.h diff --git a/libavformat/cafdec.c b/ffmpeg-y/libavformat/cafdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cafdec.c rename to ffmpeg-y/libavformat/cafdec.c diff --git a/libavformat/cafenc.c b/ffmpeg-y/libavformat/cafenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cafenc.c rename to ffmpeg-y/libavformat/cafenc.c diff --git a/libavformat/cavsvideodec.c b/ffmpeg-y/libavformat/cavsvideodec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cavsvideodec.c rename to ffmpeg-y/libavformat/cavsvideodec.c diff --git a/libavformat/cdg.c b/ffmpeg-y/libavformat/cdg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cdg.c rename to ffmpeg-y/libavformat/cdg.c diff --git a/libavformat/cdxl.c b/ffmpeg-y/libavformat/cdxl.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cdxl.c rename to ffmpeg-y/libavformat/cdxl.c diff --git a/libavformat/chromaprint.c b/ffmpeg-y/libavformat/chromaprint.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/chromaprint.c rename to ffmpeg-y/libavformat/chromaprint.c diff --git a/libavformat/cinedec.c b/ffmpeg-y/libavformat/cinedec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cinedec.c rename to ffmpeg-y/libavformat/cinedec.c diff --git a/libavformat/codec2.c b/ffmpeg-y/libavformat/codec2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/codec2.c rename to ffmpeg-y/libavformat/codec2.c diff --git a/libavformat/concat.c b/ffmpeg-y/libavformat/concat.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/concat.c rename to ffmpeg-y/libavformat/concat.c diff --git a/libavformat/concatdec.c b/ffmpeg-y/libavformat/concatdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/concatdec.c rename to ffmpeg-y/libavformat/concatdec.c diff --git a/libavformat/crcenc.c b/ffmpeg-y/libavformat/crcenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/crcenc.c rename to ffmpeg-y/libavformat/crcenc.c diff --git a/libavformat/crypto.c b/ffmpeg-y/libavformat/crypto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/crypto.c rename to ffmpeg-y/libavformat/crypto.c diff --git a/libavformat/cutils.c b/ffmpeg-y/libavformat/cutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/cutils.c rename to ffmpeg-y/libavformat/cutils.c diff --git a/libavformat/dash.c b/ffmpeg-y/libavformat/dash.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dash.c rename to ffmpeg-y/libavformat/dash.c diff --git a/libavformat/dash.h b/ffmpeg-y/libavformat/dash.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dash.h rename to ffmpeg-y/libavformat/dash.h diff --git a/libavformat/dashdec.c b/ffmpeg-y/libavformat/dashdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dashdec.c rename to ffmpeg-y/libavformat/dashdec.c diff --git a/libavformat/dashenc.c b/ffmpeg-y/libavformat/dashenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dashenc.c rename to ffmpeg-y/libavformat/dashenc.c diff --git a/libavformat/data_uri.c b/ffmpeg-y/libavformat/data_uri.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/data_uri.c rename to ffmpeg-y/libavformat/data_uri.c diff --git a/libavformat/dauddec.c b/ffmpeg-y/libavformat/dauddec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dauddec.c rename to ffmpeg-y/libavformat/dauddec.c diff --git a/libavformat/daudenc.c b/ffmpeg-y/libavformat/daudenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/daudenc.c rename to ffmpeg-y/libavformat/daudenc.c diff --git a/libavformat/davs2.c b/ffmpeg-y/libavformat/davs2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/davs2.c rename to ffmpeg-y/libavformat/davs2.c diff --git a/libavformat/dcstr.c b/ffmpeg-y/libavformat/dcstr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dcstr.c rename to ffmpeg-y/libavformat/dcstr.c diff --git a/libavformat/dfa.c b/ffmpeg-y/libavformat/dfa.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dfa.c rename to ffmpeg-y/libavformat/dfa.c diff --git a/libavformat/dhav.c b/ffmpeg-y/libavformat/dhav.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dhav.c rename to ffmpeg-y/libavformat/dhav.c diff --git a/libavformat/diracdec.c b/ffmpeg-y/libavformat/diracdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/diracdec.c rename to ffmpeg-y/libavformat/diracdec.c diff --git a/libavformat/dnxhddec.c b/ffmpeg-y/libavformat/dnxhddec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dnxhddec.c rename to ffmpeg-y/libavformat/dnxhddec.c diff --git a/libavformat/dsfdec.c b/ffmpeg-y/libavformat/dsfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dsfdec.c rename to ffmpeg-y/libavformat/dsfdec.c diff --git a/libavformat/dsicin.c b/ffmpeg-y/libavformat/dsicin.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dsicin.c rename to ffmpeg-y/libavformat/dsicin.c diff --git a/libavformat/dss.c b/ffmpeg-y/libavformat/dss.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dss.c rename to ffmpeg-y/libavformat/dss.c diff --git a/libavformat/dtsdec.c b/ffmpeg-y/libavformat/dtsdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dtsdec.c rename to ffmpeg-y/libavformat/dtsdec.c diff --git a/libavformat/dtshddec.c b/ffmpeg-y/libavformat/dtshddec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dtshddec.c rename to ffmpeg-y/libavformat/dtshddec.c diff --git a/libavformat/dump.c b/ffmpeg-y/libavformat/dump.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dump.c rename to ffmpeg-y/libavformat/dump.c diff --git a/libavformat/dv.c b/ffmpeg-y/libavformat/dv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dv.c rename to ffmpeg-y/libavformat/dv.c diff --git a/libavformat/dv.h b/ffmpeg-y/libavformat/dv.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dv.h rename to ffmpeg-y/libavformat/dv.h diff --git a/libavformat/dvbsub.c b/ffmpeg-y/libavformat/dvbsub.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dvbsub.c rename to ffmpeg-y/libavformat/dvbsub.c diff --git a/libavformat/dvbtxt.c b/ffmpeg-y/libavformat/dvbtxt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dvbtxt.c rename to ffmpeg-y/libavformat/dvbtxt.c diff --git a/libavformat/dvenc.c b/ffmpeg-y/libavformat/dvenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dvenc.c rename to ffmpeg-y/libavformat/dvenc.c diff --git a/libavformat/dxa.c b/ffmpeg-y/libavformat/dxa.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/dxa.c rename to ffmpeg-y/libavformat/dxa.c diff --git a/libavformat/eacdata.c b/ffmpeg-y/libavformat/eacdata.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/eacdata.c rename to ffmpeg-y/libavformat/eacdata.c diff --git a/libavformat/electronicarts.c b/ffmpeg-y/libavformat/electronicarts.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/electronicarts.c rename to ffmpeg-y/libavformat/electronicarts.c diff --git a/libavformat/epafdec.c b/ffmpeg-y/libavformat/epafdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/epafdec.c rename to ffmpeg-y/libavformat/epafdec.c diff --git a/libavformat/ffmeta.h b/ffmpeg-y/libavformat/ffmeta.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ffmeta.h rename to ffmpeg-y/libavformat/ffmeta.h diff --git a/libavformat/ffmetadec.c b/ffmpeg-y/libavformat/ffmetadec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ffmetadec.c rename to ffmpeg-y/libavformat/ffmetadec.c diff --git a/libavformat/ffmetaenc.c b/ffmpeg-y/libavformat/ffmetaenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ffmetaenc.c rename to ffmpeg-y/libavformat/ffmetaenc.c diff --git a/libavformat/fifo.c b/ffmpeg-y/libavformat/fifo.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/fifo.c rename to ffmpeg-y/libavformat/fifo.c diff --git a/libavformat/fifo_test.c b/ffmpeg-y/libavformat/fifo_test.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/fifo_test.c rename to ffmpeg-y/libavformat/fifo_test.c diff --git a/libavformat/file.c b/ffmpeg-y/libavformat/file.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/file.c rename to ffmpeg-y/libavformat/file.c diff --git a/libavformat/file_open.c b/ffmpeg-y/libavformat/file_open.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/file_open.c rename to ffmpeg-y/libavformat/file_open.c diff --git a/libavformat/filmstripdec.c b/ffmpeg-y/libavformat/filmstripdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/filmstripdec.c rename to ffmpeg-y/libavformat/filmstripdec.c diff --git a/libavformat/filmstripenc.c b/ffmpeg-y/libavformat/filmstripenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/filmstripenc.c rename to ffmpeg-y/libavformat/filmstripenc.c diff --git a/libavformat/fitsdec.c b/ffmpeg-y/libavformat/fitsdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/fitsdec.c rename to ffmpeg-y/libavformat/fitsdec.c diff --git a/libavformat/fitsenc.c b/ffmpeg-y/libavformat/fitsenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/fitsenc.c rename to ffmpeg-y/libavformat/fitsenc.c diff --git a/libavformat/flac_picture.c b/ffmpeg-y/libavformat/flac_picture.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flac_picture.c rename to ffmpeg-y/libavformat/flac_picture.c diff --git a/libavformat/flac_picture.h b/ffmpeg-y/libavformat/flac_picture.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flac_picture.h rename to ffmpeg-y/libavformat/flac_picture.h diff --git a/libavformat/flacdec.c b/ffmpeg-y/libavformat/flacdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flacdec.c rename to ffmpeg-y/libavformat/flacdec.c diff --git a/libavformat/flacenc.c b/ffmpeg-y/libavformat/flacenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flacenc.c rename to ffmpeg-y/libavformat/flacenc.c diff --git a/libavformat/flacenc.h b/ffmpeg-y/libavformat/flacenc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flacenc.h rename to ffmpeg-y/libavformat/flacenc.h diff --git a/libavformat/flacenc_header.c b/ffmpeg-y/libavformat/flacenc_header.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flacenc_header.c rename to ffmpeg-y/libavformat/flacenc_header.c diff --git a/libavformat/flic.c b/ffmpeg-y/libavformat/flic.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flic.c rename to ffmpeg-y/libavformat/flic.c diff --git a/libavformat/flv.h b/ffmpeg-y/libavformat/flv.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flv.h rename to ffmpeg-y/libavformat/flv.h diff --git a/libavformat/flvdec.c b/ffmpeg-y/libavformat/flvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flvdec.c rename to ffmpeg-y/libavformat/flvdec.c diff --git a/libavformat/flvenc.c b/ffmpeg-y/libavformat/flvenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/flvenc.c rename to ffmpeg-y/libavformat/flvenc.c diff --git a/libavformat/format.c b/ffmpeg-y/libavformat/format.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/format.c rename to ffmpeg-y/libavformat/format.c diff --git a/libavformat/framecrcenc.c b/ffmpeg-y/libavformat/framecrcenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/framecrcenc.c rename to ffmpeg-y/libavformat/framecrcenc.c diff --git a/libavformat/framehash.c b/ffmpeg-y/libavformat/framehash.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/framehash.c rename to ffmpeg-y/libavformat/framehash.c diff --git a/libavformat/frmdec.c b/ffmpeg-y/libavformat/frmdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/frmdec.c rename to ffmpeg-y/libavformat/frmdec.c diff --git a/libavformat/fsb.c b/ffmpeg-y/libavformat/fsb.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/fsb.c rename to ffmpeg-y/libavformat/fsb.c diff --git a/libavformat/ftp.c b/ffmpeg-y/libavformat/ftp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ftp.c rename to ffmpeg-y/libavformat/ftp.c diff --git a/libavformat/g722.c b/ffmpeg-y/libavformat/g722.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/g722.c rename to ffmpeg-y/libavformat/g722.c diff --git a/libavformat/g723_1.c b/ffmpeg-y/libavformat/g723_1.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/g723_1.c rename to ffmpeg-y/libavformat/g723_1.c diff --git a/libavformat/g726.c b/ffmpeg-y/libavformat/g726.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/g726.c rename to ffmpeg-y/libavformat/g726.c diff --git a/libavformat/g729dec.c b/ffmpeg-y/libavformat/g729dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/g729dec.c rename to ffmpeg-y/libavformat/g729dec.c diff --git a/libavformat/gdv.c b/ffmpeg-y/libavformat/gdv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gdv.c rename to ffmpeg-y/libavformat/gdv.c diff --git a/libavformat/genh.c b/ffmpeg-y/libavformat/genh.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/genh.c rename to ffmpeg-y/libavformat/genh.c diff --git a/libavformat/gif.c b/ffmpeg-y/libavformat/gif.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gif.c rename to ffmpeg-y/libavformat/gif.c diff --git a/libavformat/gifdec.c b/ffmpeg-y/libavformat/gifdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gifdec.c rename to ffmpeg-y/libavformat/gifdec.c diff --git a/libavformat/golomb_tab.c b/ffmpeg-y/libavformat/golomb_tab.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/golomb_tab.c rename to ffmpeg-y/libavformat/golomb_tab.c diff --git a/libavformat/gopher.c b/ffmpeg-y/libavformat/gopher.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gopher.c rename to ffmpeg-y/libavformat/gopher.c diff --git a/libavformat/gsmdec.c b/ffmpeg-y/libavformat/gsmdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gsmdec.c rename to ffmpeg-y/libavformat/gsmdec.c diff --git a/libavformat/gxf.c b/ffmpeg-y/libavformat/gxf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gxf.c rename to ffmpeg-y/libavformat/gxf.c diff --git a/libavformat/gxf.h b/ffmpeg-y/libavformat/gxf.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gxf.h rename to ffmpeg-y/libavformat/gxf.h diff --git a/libavformat/gxfenc.c b/ffmpeg-y/libavformat/gxfenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/gxfenc.c rename to ffmpeg-y/libavformat/gxfenc.c diff --git a/libavformat/h261dec.c b/ffmpeg-y/libavformat/h261dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/h261dec.c rename to ffmpeg-y/libavformat/h261dec.c diff --git a/libavformat/h263dec.c b/ffmpeg-y/libavformat/h263dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/h263dec.c rename to ffmpeg-y/libavformat/h263dec.c diff --git a/libavformat/h264dec.c b/ffmpeg-y/libavformat/h264dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/h264dec.c rename to ffmpeg-y/libavformat/h264dec.c diff --git a/libavformat/hashenc.c b/ffmpeg-y/libavformat/hashenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hashenc.c rename to ffmpeg-y/libavformat/hashenc.c diff --git a/libavformat/hcom.c b/ffmpeg-y/libavformat/hcom.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hcom.c rename to ffmpeg-y/libavformat/hcom.c diff --git a/libavformat/hdsenc.c b/ffmpeg-y/libavformat/hdsenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hdsenc.c rename to ffmpeg-y/libavformat/hdsenc.c diff --git a/libavformat/hevc.c b/ffmpeg-y/libavformat/hevc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hevc.c rename to ffmpeg-y/libavformat/hevc.c diff --git a/libavformat/hevc.h b/ffmpeg-y/libavformat/hevc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hevc.h rename to ffmpeg-y/libavformat/hevc.h diff --git a/libavformat/hevcdec.c b/ffmpeg-y/libavformat/hevcdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hevcdec.c rename to ffmpeg-y/libavformat/hevcdec.c diff --git a/libavformat/hls.c b/ffmpeg-y/libavformat/hls.c old mode 100644 new mode 100755 similarity index 99% rename from libavformat/hls.c rename to ffmpeg-y/libavformat/hls.c index 8c12fcef77..4e5f4bca0f --- a/libavformat/hls.c +++ b/ffmpeg-y/libavformat/hls.c @@ -873,6 +873,12 @@ static int parse_playlist(HLSContext *c, const char *url, ret = AVERROR(ENOMEM); goto fail; } + /* fix CVE-2020-13904 */ + if (duration < 0.001 * AV_TIME_BASE) { + av_log(c->ctx, AV_LOG_WARNING, "Cannot get correct #EXTINF value of segment %s," + " set to default value to 1ms.\n", seg->url); + duration = 0.001 * AV_TIME_BASE; + } seg->duration = duration; seg->key_type = key_type; if (has_iv) { diff --git a/libavformat/hlsenc.c b/ffmpeg-y/libavformat/hlsenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hlsenc.c rename to ffmpeg-y/libavformat/hlsenc.c diff --git a/libavformat/hlsplaylist.c b/ffmpeg-y/libavformat/hlsplaylist.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hlsplaylist.c rename to ffmpeg-y/libavformat/hlsplaylist.c diff --git a/libavformat/hlsplaylist.h b/ffmpeg-y/libavformat/hlsplaylist.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hlsplaylist.h rename to ffmpeg-y/libavformat/hlsplaylist.h diff --git a/libavformat/hlsproto.c b/ffmpeg-y/libavformat/hlsproto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hlsproto.c rename to ffmpeg-y/libavformat/hlsproto.c diff --git a/libavformat/hnm.c b/ffmpeg-y/libavformat/hnm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/hnm.c rename to ffmpeg-y/libavformat/hnm.c diff --git a/libavformat/http.c b/ffmpeg-y/libavformat/http.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/http.c rename to ffmpeg-y/libavformat/http.c diff --git a/libavformat/http.h b/ffmpeg-y/libavformat/http.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/http.h rename to ffmpeg-y/libavformat/http.h diff --git a/libavformat/httpauth.c b/ffmpeg-y/libavformat/httpauth.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/httpauth.c rename to ffmpeg-y/libavformat/httpauth.c diff --git a/libavformat/httpauth.h b/ffmpeg-y/libavformat/httpauth.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/httpauth.h rename to ffmpeg-y/libavformat/httpauth.h diff --git a/libavformat/icecast.c b/ffmpeg-y/libavformat/icecast.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/icecast.c rename to ffmpeg-y/libavformat/icecast.c diff --git a/libavformat/icodec.c b/ffmpeg-y/libavformat/icodec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/icodec.c rename to ffmpeg-y/libavformat/icodec.c diff --git a/libavformat/icoenc.c b/ffmpeg-y/libavformat/icoenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/icoenc.c rename to ffmpeg-y/libavformat/icoenc.c diff --git a/libavformat/id3v1.c b/ffmpeg-y/libavformat/id3v1.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/id3v1.c rename to ffmpeg-y/libavformat/id3v1.c diff --git a/libavformat/id3v1.h b/ffmpeg-y/libavformat/id3v1.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/id3v1.h rename to ffmpeg-y/libavformat/id3v1.h diff --git a/libavformat/id3v2.c b/ffmpeg-y/libavformat/id3v2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/id3v2.c rename to ffmpeg-y/libavformat/id3v2.c diff --git a/libavformat/id3v2.h b/ffmpeg-y/libavformat/id3v2.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/id3v2.h rename to ffmpeg-y/libavformat/id3v2.h diff --git a/libavformat/id3v2enc.c b/ffmpeg-y/libavformat/id3v2enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/id3v2enc.c rename to ffmpeg-y/libavformat/id3v2enc.c diff --git a/libavformat/idcin.c b/ffmpeg-y/libavformat/idcin.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/idcin.c rename to ffmpeg-y/libavformat/idcin.c diff --git a/libavformat/idroqdec.c b/ffmpeg-y/libavformat/idroqdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/idroqdec.c rename to ffmpeg-y/libavformat/idroqdec.c diff --git a/libavformat/idroqenc.c b/ffmpeg-y/libavformat/idroqenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/idroqenc.c rename to ffmpeg-y/libavformat/idroqenc.c diff --git a/libavformat/iff.c b/ffmpeg-y/libavformat/iff.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/iff.c rename to ffmpeg-y/libavformat/iff.c diff --git a/libavformat/ifv.c b/ffmpeg-y/libavformat/ifv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ifv.c rename to ffmpeg-y/libavformat/ifv.c diff --git a/libavformat/ilbc.c b/ffmpeg-y/libavformat/ilbc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ilbc.c rename to ffmpeg-y/libavformat/ilbc.c diff --git a/libavformat/img2.c b/ffmpeg-y/libavformat/img2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/img2.c rename to ffmpeg-y/libavformat/img2.c diff --git a/libavformat/img2.h b/ffmpeg-y/libavformat/img2.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/img2.h rename to ffmpeg-y/libavformat/img2.h diff --git a/libavformat/img2_alias_pix.c b/ffmpeg-y/libavformat/img2_alias_pix.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/img2_alias_pix.c rename to ffmpeg-y/libavformat/img2_alias_pix.c diff --git a/libavformat/img2_brender_pix.c b/ffmpeg-y/libavformat/img2_brender_pix.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/img2_brender_pix.c rename to ffmpeg-y/libavformat/img2_brender_pix.c diff --git a/libavformat/img2dec.c b/ffmpeg-y/libavformat/img2dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/img2dec.c rename to ffmpeg-y/libavformat/img2dec.c diff --git a/libavformat/img2enc.c b/ffmpeg-y/libavformat/img2enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/img2enc.c rename to ffmpeg-y/libavformat/img2enc.c diff --git a/libavformat/ingenientdec.c b/ffmpeg-y/libavformat/ingenientdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ingenientdec.c rename to ffmpeg-y/libavformat/ingenientdec.c diff --git a/libavformat/internal.h b/ffmpeg-y/libavformat/internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/internal.h rename to ffmpeg-y/libavformat/internal.h diff --git a/libavformat/ip.c b/ffmpeg-y/libavformat/ip.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ip.c rename to ffmpeg-y/libavformat/ip.c diff --git a/libavformat/ip.h b/ffmpeg-y/libavformat/ip.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ip.h rename to ffmpeg-y/libavformat/ip.h diff --git a/libavformat/ipmovie.c b/ffmpeg-y/libavformat/ipmovie.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ipmovie.c rename to ffmpeg-y/libavformat/ipmovie.c diff --git a/libavformat/ircam.c b/ffmpeg-y/libavformat/ircam.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ircam.c rename to ffmpeg-y/libavformat/ircam.c diff --git a/libavformat/ircam.h b/ffmpeg-y/libavformat/ircam.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ircam.h rename to ffmpeg-y/libavformat/ircam.h diff --git a/libavformat/ircamdec.c b/ffmpeg-y/libavformat/ircamdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ircamdec.c rename to ffmpeg-y/libavformat/ircamdec.c diff --git a/libavformat/ircamenc.c b/ffmpeg-y/libavformat/ircamenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ircamenc.c rename to ffmpeg-y/libavformat/ircamenc.c diff --git a/libavformat/isom.c b/ffmpeg-y/libavformat/isom.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/isom.c rename to ffmpeg-y/libavformat/isom.c diff --git a/libavformat/isom.h b/ffmpeg-y/libavformat/isom.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/isom.h rename to ffmpeg-y/libavformat/isom.h diff --git a/libavformat/iss.c b/ffmpeg-y/libavformat/iss.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/iss.c rename to ffmpeg-y/libavformat/iss.c diff --git a/libavformat/iv8.c b/ffmpeg-y/libavformat/iv8.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/iv8.c rename to ffmpeg-y/libavformat/iv8.c diff --git a/libavformat/ivfdec.c b/ffmpeg-y/libavformat/ivfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ivfdec.c rename to ffmpeg-y/libavformat/ivfdec.c diff --git a/libavformat/ivfenc.c b/ffmpeg-y/libavformat/ivfenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ivfenc.c rename to ffmpeg-y/libavformat/ivfenc.c diff --git a/libavformat/jacosubdec.c b/ffmpeg-y/libavformat/jacosubdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/jacosubdec.c rename to ffmpeg-y/libavformat/jacosubdec.c diff --git a/libavformat/jacosubenc.c b/ffmpeg-y/libavformat/jacosubenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/jacosubenc.c rename to ffmpeg-y/libavformat/jacosubenc.c diff --git a/libavformat/jvdec.c b/ffmpeg-y/libavformat/jvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/jvdec.c rename to ffmpeg-y/libavformat/jvdec.c diff --git a/libavformat/latmenc.c b/ffmpeg-y/libavformat/latmenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/latmenc.c rename to ffmpeg-y/libavformat/latmenc.c diff --git a/libavformat/libavformat.v b/ffmpeg-y/libavformat/libavformat.v old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libavformat.v rename to ffmpeg-y/libavformat/libavformat.v diff --git a/libavformat/libgme.c b/ffmpeg-y/libavformat/libgme.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libgme.c rename to ffmpeg-y/libavformat/libgme.c diff --git a/libavformat/libmodplug.c b/ffmpeg-y/libavformat/libmodplug.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libmodplug.c rename to ffmpeg-y/libavformat/libmodplug.c diff --git a/libavformat/libopenmpt.c b/ffmpeg-y/libavformat/libopenmpt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libopenmpt.c rename to ffmpeg-y/libavformat/libopenmpt.c diff --git a/libavformat/librtmp.c b/ffmpeg-y/libavformat/librtmp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/librtmp.c rename to ffmpeg-y/libavformat/librtmp.c diff --git a/libavformat/libsmbclient.c b/ffmpeg-y/libavformat/libsmbclient.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libsmbclient.c rename to ffmpeg-y/libavformat/libsmbclient.c diff --git a/libavformat/libsrt.c b/ffmpeg-y/libavformat/libsrt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libsrt.c rename to ffmpeg-y/libavformat/libsrt.c diff --git a/libavformat/libssh.c b/ffmpeg-y/libavformat/libssh.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/libssh.c rename to ffmpeg-y/libavformat/libssh.c diff --git a/libavformat/lmlm4.c b/ffmpeg-y/libavformat/lmlm4.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lmlm4.c rename to ffmpeg-y/libavformat/lmlm4.c diff --git a/libavformat/loasdec.c b/ffmpeg-y/libavformat/loasdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/loasdec.c rename to ffmpeg-y/libavformat/loasdec.c diff --git a/libavformat/log2_tab.c b/ffmpeg-y/libavformat/log2_tab.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/log2_tab.c rename to ffmpeg-y/libavformat/log2_tab.c diff --git a/libavformat/lrc.c b/ffmpeg-y/libavformat/lrc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lrc.c rename to ffmpeg-y/libavformat/lrc.c diff --git a/libavformat/lrc.h b/ffmpeg-y/libavformat/lrc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lrc.h rename to ffmpeg-y/libavformat/lrc.h diff --git a/libavformat/lrcdec.c b/ffmpeg-y/libavformat/lrcdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lrcdec.c rename to ffmpeg-y/libavformat/lrcdec.c diff --git a/libavformat/lrcenc.c b/ffmpeg-y/libavformat/lrcenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lrcenc.c rename to ffmpeg-y/libavformat/lrcenc.c diff --git a/libavformat/lvfdec.c b/ffmpeg-y/libavformat/lvfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lvfdec.c rename to ffmpeg-y/libavformat/lvfdec.c diff --git a/libavformat/lxfdec.c b/ffmpeg-y/libavformat/lxfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/lxfdec.c rename to ffmpeg-y/libavformat/lxfdec.c diff --git a/libavformat/m4vdec.c b/ffmpeg-y/libavformat/m4vdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/m4vdec.c rename to ffmpeg-y/libavformat/m4vdec.c diff --git a/libavformat/matroska.c b/ffmpeg-y/libavformat/matroska.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/matroska.c rename to ffmpeg-y/libavformat/matroska.c diff --git a/libavformat/matroska.h b/ffmpeg-y/libavformat/matroska.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/matroska.h rename to ffmpeg-y/libavformat/matroska.h diff --git a/libavformat/matroskadec.c b/ffmpeg-y/libavformat/matroskadec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/matroskadec.c rename to ffmpeg-y/libavformat/matroskadec.c diff --git a/libavformat/matroskaenc.c b/ffmpeg-y/libavformat/matroskaenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/matroskaenc.c rename to ffmpeg-y/libavformat/matroskaenc.c diff --git a/libavformat/md5proto.c b/ffmpeg-y/libavformat/md5proto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/md5proto.c rename to ffmpeg-y/libavformat/md5proto.c diff --git a/libavformat/metadata.c b/ffmpeg-y/libavformat/metadata.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/metadata.c rename to ffmpeg-y/libavformat/metadata.c diff --git a/libavformat/metadata.h b/ffmpeg-y/libavformat/metadata.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/metadata.h rename to ffmpeg-y/libavformat/metadata.h diff --git a/libavformat/mgsts.c b/ffmpeg-y/libavformat/mgsts.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mgsts.c rename to ffmpeg-y/libavformat/mgsts.c diff --git a/libavformat/microdvddec.c b/ffmpeg-y/libavformat/microdvddec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/microdvddec.c rename to ffmpeg-y/libavformat/microdvddec.c diff --git a/libavformat/microdvdenc.c b/ffmpeg-y/libavformat/microdvdenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/microdvdenc.c rename to ffmpeg-y/libavformat/microdvdenc.c diff --git a/libavformat/mj2kdec.c b/ffmpeg-y/libavformat/mj2kdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mj2kdec.c rename to ffmpeg-y/libavformat/mj2kdec.c diff --git a/libavformat/mkvtimestamp_v2.c b/ffmpeg-y/libavformat/mkvtimestamp_v2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mkvtimestamp_v2.c rename to ffmpeg-y/libavformat/mkvtimestamp_v2.c diff --git a/libavformat/mlpdec.c b/ffmpeg-y/libavformat/mlpdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mlpdec.c rename to ffmpeg-y/libavformat/mlpdec.c diff --git a/libavformat/mlvdec.c b/ffmpeg-y/libavformat/mlvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mlvdec.c rename to ffmpeg-y/libavformat/mlvdec.c diff --git a/libavformat/mm.c b/ffmpeg-y/libavformat/mm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mm.c rename to ffmpeg-y/libavformat/mm.c diff --git a/libavformat/mmf.c b/ffmpeg-y/libavformat/mmf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mmf.c rename to ffmpeg-y/libavformat/mmf.c diff --git a/libavformat/mms.c b/ffmpeg-y/libavformat/mms.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mms.c rename to ffmpeg-y/libavformat/mms.c diff --git a/libavformat/mms.h b/ffmpeg-y/libavformat/mms.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mms.h rename to ffmpeg-y/libavformat/mms.h diff --git a/libavformat/mmsh.c b/ffmpeg-y/libavformat/mmsh.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mmsh.c rename to ffmpeg-y/libavformat/mmsh.c diff --git a/libavformat/mmst.c b/ffmpeg-y/libavformat/mmst.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mmst.c rename to ffmpeg-y/libavformat/mmst.c diff --git a/libavformat/mov.c b/ffmpeg-y/libavformat/mov.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mov.c rename to ffmpeg-y/libavformat/mov.c diff --git a/libavformat/mov_chan.c b/ffmpeg-y/libavformat/mov_chan.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mov_chan.c rename to ffmpeg-y/libavformat/mov_chan.c diff --git a/libavformat/mov_chan.h b/ffmpeg-y/libavformat/mov_chan.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mov_chan.h rename to ffmpeg-y/libavformat/mov_chan.h diff --git a/libavformat/mov_esds.c b/ffmpeg-y/libavformat/mov_esds.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mov_esds.c rename to ffmpeg-y/libavformat/mov_esds.c diff --git a/libavformat/movenc.c b/ffmpeg-y/libavformat/movenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/movenc.c rename to ffmpeg-y/libavformat/movenc.c diff --git a/libavformat/movenc.h b/ffmpeg-y/libavformat/movenc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/movenc.h rename to ffmpeg-y/libavformat/movenc.h diff --git a/libavformat/movenccenc.c b/ffmpeg-y/libavformat/movenccenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/movenccenc.c rename to ffmpeg-y/libavformat/movenccenc.c diff --git a/libavformat/movenccenc.h b/ffmpeg-y/libavformat/movenccenc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/movenccenc.h rename to ffmpeg-y/libavformat/movenccenc.h diff --git a/libavformat/movenchint.c b/ffmpeg-y/libavformat/movenchint.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/movenchint.c rename to ffmpeg-y/libavformat/movenchint.c diff --git a/libavformat/mp3dec.c b/ffmpeg-y/libavformat/mp3dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mp3dec.c rename to ffmpeg-y/libavformat/mp3dec.c diff --git a/libavformat/mp3enc.c b/ffmpeg-y/libavformat/mp3enc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mp3enc.c rename to ffmpeg-y/libavformat/mp3enc.c diff --git a/libavformat/mpc.c b/ffmpeg-y/libavformat/mpc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpc.c rename to ffmpeg-y/libavformat/mpc.c diff --git a/libavformat/mpc8.c b/ffmpeg-y/libavformat/mpc8.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpc8.c rename to ffmpeg-y/libavformat/mpc8.c diff --git a/libavformat/mpeg.c b/ffmpeg-y/libavformat/mpeg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpeg.c rename to ffmpeg-y/libavformat/mpeg.c diff --git a/libavformat/mpeg.h b/ffmpeg-y/libavformat/mpeg.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpeg.h rename to ffmpeg-y/libavformat/mpeg.h diff --git a/libavformat/mpegenc.c b/ffmpeg-y/libavformat/mpegenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpegenc.c rename to ffmpeg-y/libavformat/mpegenc.c diff --git a/libavformat/mpegts.c b/ffmpeg-y/libavformat/mpegts.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpegts.c rename to ffmpeg-y/libavformat/mpegts.c diff --git a/libavformat/mpegts.h b/ffmpeg-y/libavformat/mpegts.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpegts.h rename to ffmpeg-y/libavformat/mpegts.h diff --git a/libavformat/mpegtsenc.c b/ffmpeg-y/libavformat/mpegtsenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpegtsenc.c rename to ffmpeg-y/libavformat/mpegtsenc.c diff --git a/libavformat/mpegvideodec.c b/ffmpeg-y/libavformat/mpegvideodec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpegvideodec.c rename to ffmpeg-y/libavformat/mpegvideodec.c diff --git a/libavformat/mpjpeg.c b/ffmpeg-y/libavformat/mpjpeg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpjpeg.c rename to ffmpeg-y/libavformat/mpjpeg.c diff --git a/libavformat/mpjpegdec.c b/ffmpeg-y/libavformat/mpjpegdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpjpegdec.c rename to ffmpeg-y/libavformat/mpjpegdec.c diff --git a/libavformat/mpl2dec.c b/ffmpeg-y/libavformat/mpl2dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpl2dec.c rename to ffmpeg-y/libavformat/mpl2dec.c diff --git a/libavformat/mpsubdec.c b/ffmpeg-y/libavformat/mpsubdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mpsubdec.c rename to ffmpeg-y/libavformat/mpsubdec.c diff --git a/libavformat/msf.c b/ffmpeg-y/libavformat/msf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/msf.c rename to ffmpeg-y/libavformat/msf.c diff --git a/libavformat/msnwc_tcp.c b/ffmpeg-y/libavformat/msnwc_tcp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/msnwc_tcp.c rename to ffmpeg-y/libavformat/msnwc_tcp.c diff --git a/libavformat/mtaf.c b/ffmpeg-y/libavformat/mtaf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mtaf.c rename to ffmpeg-y/libavformat/mtaf.c diff --git a/libavformat/mtv.c b/ffmpeg-y/libavformat/mtv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mtv.c rename to ffmpeg-y/libavformat/mtv.c diff --git a/libavformat/musx.c b/ffmpeg-y/libavformat/musx.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/musx.c rename to ffmpeg-y/libavformat/musx.c diff --git a/libavformat/mux.c b/ffmpeg-y/libavformat/mux.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mux.c rename to ffmpeg-y/libavformat/mux.c diff --git a/libavformat/mvdec.c b/ffmpeg-y/libavformat/mvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mvdec.c rename to ffmpeg-y/libavformat/mvdec.c diff --git a/libavformat/mvi.c b/ffmpeg-y/libavformat/mvi.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mvi.c rename to ffmpeg-y/libavformat/mvi.c diff --git a/libavformat/mxf.c b/ffmpeg-y/libavformat/mxf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mxf.c rename to ffmpeg-y/libavformat/mxf.c diff --git a/libavformat/mxf.h b/ffmpeg-y/libavformat/mxf.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mxf.h rename to ffmpeg-y/libavformat/mxf.h diff --git a/libavformat/mxfdec.c b/ffmpeg-y/libavformat/mxfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mxfdec.c rename to ffmpeg-y/libavformat/mxfdec.c diff --git a/libavformat/mxfenc.c b/ffmpeg-y/libavformat/mxfenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mxfenc.c rename to ffmpeg-y/libavformat/mxfenc.c diff --git a/libavformat/mxg.c b/ffmpeg-y/libavformat/mxg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/mxg.c rename to ffmpeg-y/libavformat/mxg.c diff --git a/libavformat/ncdec.c b/ffmpeg-y/libavformat/ncdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ncdec.c rename to ffmpeg-y/libavformat/ncdec.c diff --git a/libavformat/network.c b/ffmpeg-y/libavformat/network.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/network.c rename to ffmpeg-y/libavformat/network.c diff --git a/libavformat/network.h b/ffmpeg-y/libavformat/network.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/network.h rename to ffmpeg-y/libavformat/network.h diff --git a/libavformat/nistspheredec.c b/ffmpeg-y/libavformat/nistspheredec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nistspheredec.c rename to ffmpeg-y/libavformat/nistspheredec.c diff --git a/libavformat/nspdec.c b/ffmpeg-y/libavformat/nspdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nspdec.c rename to ffmpeg-y/libavformat/nspdec.c diff --git a/libavformat/nsvdec.c b/ffmpeg-y/libavformat/nsvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nsvdec.c rename to ffmpeg-y/libavformat/nsvdec.c diff --git a/libavformat/nullenc.c b/ffmpeg-y/libavformat/nullenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nullenc.c rename to ffmpeg-y/libavformat/nullenc.c diff --git a/libavformat/nut.c b/ffmpeg-y/libavformat/nut.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nut.c rename to ffmpeg-y/libavformat/nut.c diff --git a/libavformat/nut.h b/ffmpeg-y/libavformat/nut.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nut.h rename to ffmpeg-y/libavformat/nut.h diff --git a/libavformat/nutdec.c b/ffmpeg-y/libavformat/nutdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nutdec.c rename to ffmpeg-y/libavformat/nutdec.c diff --git a/libavformat/nutenc.c b/ffmpeg-y/libavformat/nutenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nutenc.c rename to ffmpeg-y/libavformat/nutenc.c diff --git a/libavformat/nuv.c b/ffmpeg-y/libavformat/nuv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/nuv.c rename to ffmpeg-y/libavformat/nuv.c diff --git a/libavformat/oggdec.c b/ffmpeg-y/libavformat/oggdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggdec.c rename to ffmpeg-y/libavformat/oggdec.c diff --git a/libavformat/oggdec.h b/ffmpeg-y/libavformat/oggdec.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggdec.h rename to ffmpeg-y/libavformat/oggdec.h diff --git a/libavformat/oggenc.c b/ffmpeg-y/libavformat/oggenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggenc.c rename to ffmpeg-y/libavformat/oggenc.c diff --git a/libavformat/oggparsecelt.c b/ffmpeg-y/libavformat/oggparsecelt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsecelt.c rename to ffmpeg-y/libavformat/oggparsecelt.c diff --git a/libavformat/oggparsedaala.c b/ffmpeg-y/libavformat/oggparsedaala.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsedaala.c rename to ffmpeg-y/libavformat/oggparsedaala.c diff --git a/libavformat/oggparsedirac.c b/ffmpeg-y/libavformat/oggparsedirac.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsedirac.c rename to ffmpeg-y/libavformat/oggparsedirac.c diff --git a/libavformat/oggparseflac.c b/ffmpeg-y/libavformat/oggparseflac.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparseflac.c rename to ffmpeg-y/libavformat/oggparseflac.c diff --git a/libavformat/oggparseogm.c b/ffmpeg-y/libavformat/oggparseogm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparseogm.c rename to ffmpeg-y/libavformat/oggparseogm.c diff --git a/libavformat/oggparseopus.c b/ffmpeg-y/libavformat/oggparseopus.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparseopus.c rename to ffmpeg-y/libavformat/oggparseopus.c diff --git a/libavformat/oggparseskeleton.c b/ffmpeg-y/libavformat/oggparseskeleton.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparseskeleton.c rename to ffmpeg-y/libavformat/oggparseskeleton.c diff --git a/libavformat/oggparsespeex.c b/ffmpeg-y/libavformat/oggparsespeex.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsespeex.c rename to ffmpeg-y/libavformat/oggparsespeex.c diff --git a/libavformat/oggparsetheora.c b/ffmpeg-y/libavformat/oggparsetheora.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsetheora.c rename to ffmpeg-y/libavformat/oggparsetheora.c diff --git a/libavformat/oggparsevorbis.c b/ffmpeg-y/libavformat/oggparsevorbis.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsevorbis.c rename to ffmpeg-y/libavformat/oggparsevorbis.c diff --git a/libavformat/oggparsevp8.c b/ffmpeg-y/libavformat/oggparsevp8.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oggparsevp8.c rename to ffmpeg-y/libavformat/oggparsevp8.c diff --git a/libavformat/oma.c b/ffmpeg-y/libavformat/oma.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oma.c rename to ffmpeg-y/libavformat/oma.c diff --git a/libavformat/oma.h b/ffmpeg-y/libavformat/oma.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/oma.h rename to ffmpeg-y/libavformat/oma.h diff --git a/libavformat/omadec.c b/ffmpeg-y/libavformat/omadec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/omadec.c rename to ffmpeg-y/libavformat/omadec.c diff --git a/libavformat/omaenc.c b/ffmpeg-y/libavformat/omaenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/omaenc.c rename to ffmpeg-y/libavformat/omaenc.c diff --git a/libavformat/options.c b/ffmpeg-y/libavformat/options.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/options.c rename to ffmpeg-y/libavformat/options.c diff --git a/libavformat/options_table.h b/ffmpeg-y/libavformat/options_table.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/options_table.h rename to ffmpeg-y/libavformat/options_table.h diff --git a/libavformat/os_support.c b/ffmpeg-y/libavformat/os_support.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/os_support.c rename to ffmpeg-y/libavformat/os_support.c diff --git a/libavformat/os_support.h b/ffmpeg-y/libavformat/os_support.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/os_support.h rename to ffmpeg-y/libavformat/os_support.h diff --git a/libavformat/paf.c b/ffmpeg-y/libavformat/paf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/paf.c rename to ffmpeg-y/libavformat/paf.c diff --git a/libavformat/pcm.c b/ffmpeg-y/libavformat/pcm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pcm.c rename to ffmpeg-y/libavformat/pcm.c diff --git a/libavformat/pcm.h b/ffmpeg-y/libavformat/pcm.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pcm.h rename to ffmpeg-y/libavformat/pcm.h diff --git a/libavformat/pcmdec.c b/ffmpeg-y/libavformat/pcmdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pcmdec.c rename to ffmpeg-y/libavformat/pcmdec.c diff --git a/libavformat/pcmenc.c b/ffmpeg-y/libavformat/pcmenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pcmenc.c rename to ffmpeg-y/libavformat/pcmenc.c diff --git a/libavformat/pjsdec.c b/ffmpeg-y/libavformat/pjsdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pjsdec.c rename to ffmpeg-y/libavformat/pjsdec.c diff --git a/libavformat/pmpdec.c b/ffmpeg-y/libavformat/pmpdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pmpdec.c rename to ffmpeg-y/libavformat/pmpdec.c diff --git a/libavformat/prompeg.c b/ffmpeg-y/libavformat/prompeg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/prompeg.c rename to ffmpeg-y/libavformat/prompeg.c diff --git a/libavformat/protocols.c b/ffmpeg-y/libavformat/protocols.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/protocols.c rename to ffmpeg-y/libavformat/protocols.c diff --git a/libavformat/psxstr.c b/ffmpeg-y/libavformat/psxstr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/psxstr.c rename to ffmpeg-y/libavformat/psxstr.c diff --git a/libavformat/pva.c b/ffmpeg-y/libavformat/pva.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pva.c rename to ffmpeg-y/libavformat/pva.c diff --git a/libavformat/pvfdec.c b/ffmpeg-y/libavformat/pvfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/pvfdec.c rename to ffmpeg-y/libavformat/pvfdec.c diff --git a/libavformat/qcp.c b/ffmpeg-y/libavformat/qcp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/qcp.c rename to ffmpeg-y/libavformat/qcp.c diff --git a/libavformat/qtpalette.c b/ffmpeg-y/libavformat/qtpalette.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/qtpalette.c rename to ffmpeg-y/libavformat/qtpalette.c diff --git a/libavformat/qtpalette.h b/ffmpeg-y/libavformat/qtpalette.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/qtpalette.h rename to ffmpeg-y/libavformat/qtpalette.h diff --git a/libavformat/r3d.c b/ffmpeg-y/libavformat/r3d.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/r3d.c rename to ffmpeg-y/libavformat/r3d.c diff --git a/libavformat/rawdec.c b/ffmpeg-y/libavformat/rawdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rawdec.c rename to ffmpeg-y/libavformat/rawdec.c diff --git a/libavformat/rawdec.h b/ffmpeg-y/libavformat/rawdec.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rawdec.h rename to ffmpeg-y/libavformat/rawdec.h diff --git a/libavformat/rawenc.c b/ffmpeg-y/libavformat/rawenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rawenc.c rename to ffmpeg-y/libavformat/rawenc.c diff --git a/libavformat/rawenc.h b/ffmpeg-y/libavformat/rawenc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rawenc.h rename to ffmpeg-y/libavformat/rawenc.h diff --git a/libavformat/rawutils.c b/ffmpeg-y/libavformat/rawutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rawutils.c rename to ffmpeg-y/libavformat/rawutils.c diff --git a/libavformat/rawvideodec.c b/ffmpeg-y/libavformat/rawvideodec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rawvideodec.c rename to ffmpeg-y/libavformat/rawvideodec.c diff --git a/libavformat/rdt.c b/ffmpeg-y/libavformat/rdt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rdt.c rename to ffmpeg-y/libavformat/rdt.c diff --git a/libavformat/rdt.h b/ffmpeg-y/libavformat/rdt.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rdt.h rename to ffmpeg-y/libavformat/rdt.h diff --git a/libavformat/realtextdec.c b/ffmpeg-y/libavformat/realtextdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/realtextdec.c rename to ffmpeg-y/libavformat/realtextdec.c diff --git a/libavformat/redspark.c b/ffmpeg-y/libavformat/redspark.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/redspark.c rename to ffmpeg-y/libavformat/redspark.c diff --git a/libavformat/replaygain.c b/ffmpeg-y/libavformat/replaygain.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/replaygain.c rename to ffmpeg-y/libavformat/replaygain.c diff --git a/libavformat/replaygain.h b/ffmpeg-y/libavformat/replaygain.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/replaygain.h rename to ffmpeg-y/libavformat/replaygain.h diff --git a/libavformat/riff.c b/ffmpeg-y/libavformat/riff.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/riff.c rename to ffmpeg-y/libavformat/riff.c diff --git a/libavformat/riff.h b/ffmpeg-y/libavformat/riff.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/riff.h rename to ffmpeg-y/libavformat/riff.h diff --git a/libavformat/riffdec.c b/ffmpeg-y/libavformat/riffdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/riffdec.c rename to ffmpeg-y/libavformat/riffdec.c diff --git a/libavformat/riffenc.c b/ffmpeg-y/libavformat/riffenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/riffenc.c rename to ffmpeg-y/libavformat/riffenc.c diff --git a/libavformat/rl2.c b/ffmpeg-y/libavformat/rl2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rl2.c rename to ffmpeg-y/libavformat/rl2.c diff --git a/libavformat/rm.c b/ffmpeg-y/libavformat/rm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rm.c rename to ffmpeg-y/libavformat/rm.c diff --git a/libavformat/rm.h b/ffmpeg-y/libavformat/rm.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rm.h rename to ffmpeg-y/libavformat/rm.h diff --git a/libavformat/rmdec.c b/ffmpeg-y/libavformat/rmdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rmdec.c rename to ffmpeg-y/libavformat/rmdec.c diff --git a/libavformat/rmenc.c b/ffmpeg-y/libavformat/rmenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rmenc.c rename to ffmpeg-y/libavformat/rmenc.c diff --git a/libavformat/rmsipr.c b/ffmpeg-y/libavformat/rmsipr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rmsipr.c rename to ffmpeg-y/libavformat/rmsipr.c diff --git a/libavformat/rmsipr.h b/ffmpeg-y/libavformat/rmsipr.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rmsipr.h rename to ffmpeg-y/libavformat/rmsipr.h diff --git a/libavformat/rpl.c b/ffmpeg-y/libavformat/rpl.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rpl.c rename to ffmpeg-y/libavformat/rpl.c diff --git a/libavformat/rsd.c b/ffmpeg-y/libavformat/rsd.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rsd.c rename to ffmpeg-y/libavformat/rsd.c diff --git a/libavformat/rso.c b/ffmpeg-y/libavformat/rso.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rso.c rename to ffmpeg-y/libavformat/rso.c diff --git a/libavformat/rso.h b/ffmpeg-y/libavformat/rso.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rso.h rename to ffmpeg-y/libavformat/rso.h diff --git a/libavformat/rsodec.c b/ffmpeg-y/libavformat/rsodec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rsodec.c rename to ffmpeg-y/libavformat/rsodec.c diff --git a/libavformat/rsoenc.c b/ffmpeg-y/libavformat/rsoenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rsoenc.c rename to ffmpeg-y/libavformat/rsoenc.c diff --git a/libavformat/rtmp.h b/ffmpeg-y/libavformat/rtmp.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmp.h rename to ffmpeg-y/libavformat/rtmp.h diff --git a/libavformat/rtmpcrypt.c b/ffmpeg-y/libavformat/rtmpcrypt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmpcrypt.c rename to ffmpeg-y/libavformat/rtmpcrypt.c diff --git a/libavformat/rtmpcrypt.h b/ffmpeg-y/libavformat/rtmpcrypt.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmpcrypt.h rename to ffmpeg-y/libavformat/rtmpcrypt.h diff --git a/libavformat/rtmpdh.c b/ffmpeg-y/libavformat/rtmpdh.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmpdh.c rename to ffmpeg-y/libavformat/rtmpdh.c diff --git a/libavformat/rtmpdh.h b/ffmpeg-y/libavformat/rtmpdh.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmpdh.h rename to ffmpeg-y/libavformat/rtmpdh.h diff --git a/libavformat/rtmpdigest.c b/ffmpeg-y/libavformat/rtmpdigest.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmpdigest.c rename to ffmpeg-y/libavformat/rtmpdigest.c diff --git a/libavformat/rtmphttp.c b/ffmpeg-y/libavformat/rtmphttp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmphttp.c rename to ffmpeg-y/libavformat/rtmphttp.c diff --git a/libavformat/rtmppkt.c b/ffmpeg-y/libavformat/rtmppkt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmppkt.c rename to ffmpeg-y/libavformat/rtmppkt.c diff --git a/libavformat/rtmppkt.h b/ffmpeg-y/libavformat/rtmppkt.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmppkt.h rename to ffmpeg-y/libavformat/rtmppkt.h diff --git a/libavformat/rtmpproto.c b/ffmpeg-y/libavformat/rtmpproto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtmpproto.c rename to ffmpeg-y/libavformat/rtmpproto.c diff --git a/libavformat/rtp.c b/ffmpeg-y/libavformat/rtp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtp.c rename to ffmpeg-y/libavformat/rtp.c diff --git a/libavformat/rtp.h b/ffmpeg-y/libavformat/rtp.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtp.h rename to ffmpeg-y/libavformat/rtp.h diff --git a/libavformat/rtpdec.c b/ffmpeg-y/libavformat/rtpdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec.c rename to ffmpeg-y/libavformat/rtpdec.c diff --git a/libavformat/rtpdec.h b/ffmpeg-y/libavformat/rtpdec.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec.h rename to ffmpeg-y/libavformat/rtpdec.h diff --git a/libavformat/rtpdec_ac3.c b/ffmpeg-y/libavformat/rtpdec_ac3.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_ac3.c rename to ffmpeg-y/libavformat/rtpdec_ac3.c diff --git a/libavformat/rtpdec_amr.c b/ffmpeg-y/libavformat/rtpdec_amr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_amr.c rename to ffmpeg-y/libavformat/rtpdec_amr.c diff --git a/libavformat/rtpdec_asf.c b/ffmpeg-y/libavformat/rtpdec_asf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_asf.c rename to ffmpeg-y/libavformat/rtpdec_asf.c diff --git a/libavformat/rtpdec_dv.c b/ffmpeg-y/libavformat/rtpdec_dv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_dv.c rename to ffmpeg-y/libavformat/rtpdec_dv.c diff --git a/libavformat/rtpdec_formats.h b/ffmpeg-y/libavformat/rtpdec_formats.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_formats.h rename to ffmpeg-y/libavformat/rtpdec_formats.h diff --git a/libavformat/rtpdec_g726.c b/ffmpeg-y/libavformat/rtpdec_g726.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_g726.c rename to ffmpeg-y/libavformat/rtpdec_g726.c diff --git a/libavformat/rtpdec_h261.c b/ffmpeg-y/libavformat/rtpdec_h261.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_h261.c rename to ffmpeg-y/libavformat/rtpdec_h261.c diff --git a/libavformat/rtpdec_h263.c b/ffmpeg-y/libavformat/rtpdec_h263.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_h263.c rename to ffmpeg-y/libavformat/rtpdec_h263.c diff --git a/libavformat/rtpdec_h263_rfc2190.c b/ffmpeg-y/libavformat/rtpdec_h263_rfc2190.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_h263_rfc2190.c rename to ffmpeg-y/libavformat/rtpdec_h263_rfc2190.c diff --git a/libavformat/rtpdec_h264.c b/ffmpeg-y/libavformat/rtpdec_h264.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_h264.c rename to ffmpeg-y/libavformat/rtpdec_h264.c diff --git a/libavformat/rtpdec_hevc.c b/ffmpeg-y/libavformat/rtpdec_hevc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_hevc.c rename to ffmpeg-y/libavformat/rtpdec_hevc.c diff --git a/libavformat/rtpdec_ilbc.c b/ffmpeg-y/libavformat/rtpdec_ilbc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_ilbc.c rename to ffmpeg-y/libavformat/rtpdec_ilbc.c diff --git a/libavformat/rtpdec_jpeg.c b/ffmpeg-y/libavformat/rtpdec_jpeg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_jpeg.c rename to ffmpeg-y/libavformat/rtpdec_jpeg.c diff --git a/libavformat/rtpdec_latm.c b/ffmpeg-y/libavformat/rtpdec_latm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_latm.c rename to ffmpeg-y/libavformat/rtpdec_latm.c diff --git a/libavformat/rtpdec_mpa_robust.c b/ffmpeg-y/libavformat/rtpdec_mpa_robust.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_mpa_robust.c rename to ffmpeg-y/libavformat/rtpdec_mpa_robust.c diff --git a/libavformat/rtpdec_mpeg12.c b/ffmpeg-y/libavformat/rtpdec_mpeg12.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_mpeg12.c rename to ffmpeg-y/libavformat/rtpdec_mpeg12.c diff --git a/libavformat/rtpdec_mpeg4.c b/ffmpeg-y/libavformat/rtpdec_mpeg4.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_mpeg4.c rename to ffmpeg-y/libavformat/rtpdec_mpeg4.c diff --git a/libavformat/rtpdec_mpegts.c b/ffmpeg-y/libavformat/rtpdec_mpegts.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_mpegts.c rename to ffmpeg-y/libavformat/rtpdec_mpegts.c diff --git a/libavformat/rtpdec_qcelp.c b/ffmpeg-y/libavformat/rtpdec_qcelp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_qcelp.c rename to ffmpeg-y/libavformat/rtpdec_qcelp.c diff --git a/libavformat/rtpdec_qdm2.c b/ffmpeg-y/libavformat/rtpdec_qdm2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_qdm2.c rename to ffmpeg-y/libavformat/rtpdec_qdm2.c diff --git a/libavformat/rtpdec_qt.c b/ffmpeg-y/libavformat/rtpdec_qt.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_qt.c rename to ffmpeg-y/libavformat/rtpdec_qt.c diff --git a/libavformat/rtpdec_rfc4175.c b/ffmpeg-y/libavformat/rtpdec_rfc4175.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_rfc4175.c rename to ffmpeg-y/libavformat/rtpdec_rfc4175.c diff --git a/libavformat/rtpdec_svq3.c b/ffmpeg-y/libavformat/rtpdec_svq3.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_svq3.c rename to ffmpeg-y/libavformat/rtpdec_svq3.c diff --git a/libavformat/rtpdec_vc2hq.c b/ffmpeg-y/libavformat/rtpdec_vc2hq.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_vc2hq.c rename to ffmpeg-y/libavformat/rtpdec_vc2hq.c diff --git a/libavformat/rtpdec_vp8.c b/ffmpeg-y/libavformat/rtpdec_vp8.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_vp8.c rename to ffmpeg-y/libavformat/rtpdec_vp8.c diff --git a/libavformat/rtpdec_vp9.c b/ffmpeg-y/libavformat/rtpdec_vp9.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_vp9.c rename to ffmpeg-y/libavformat/rtpdec_vp9.c diff --git a/libavformat/rtpdec_xiph.c b/ffmpeg-y/libavformat/rtpdec_xiph.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpdec_xiph.c rename to ffmpeg-y/libavformat/rtpdec_xiph.c diff --git a/libavformat/rtpenc.c b/ffmpeg-y/libavformat/rtpenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc.c rename to ffmpeg-y/libavformat/rtpenc.c diff --git a/libavformat/rtpenc.h b/ffmpeg-y/libavformat/rtpenc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc.h rename to ffmpeg-y/libavformat/rtpenc.h diff --git a/libavformat/rtpenc_aac.c b/ffmpeg-y/libavformat/rtpenc_aac.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_aac.c rename to ffmpeg-y/libavformat/rtpenc_aac.c diff --git a/libavformat/rtpenc_amr.c b/ffmpeg-y/libavformat/rtpenc_amr.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_amr.c rename to ffmpeg-y/libavformat/rtpenc_amr.c diff --git a/libavformat/rtpenc_chain.c b/ffmpeg-y/libavformat/rtpenc_chain.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_chain.c rename to ffmpeg-y/libavformat/rtpenc_chain.c diff --git a/libavformat/rtpenc_chain.h b/ffmpeg-y/libavformat/rtpenc_chain.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_chain.h rename to ffmpeg-y/libavformat/rtpenc_chain.h diff --git a/libavformat/rtpenc_h261.c b/ffmpeg-y/libavformat/rtpenc_h261.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_h261.c rename to ffmpeg-y/libavformat/rtpenc_h261.c diff --git a/libavformat/rtpenc_h263.c b/ffmpeg-y/libavformat/rtpenc_h263.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_h263.c rename to ffmpeg-y/libavformat/rtpenc_h263.c diff --git a/libavformat/rtpenc_h263_rfc2190.c b/ffmpeg-y/libavformat/rtpenc_h263_rfc2190.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_h263_rfc2190.c rename to ffmpeg-y/libavformat/rtpenc_h263_rfc2190.c diff --git a/libavformat/rtpenc_h264_hevc.c b/ffmpeg-y/libavformat/rtpenc_h264_hevc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_h264_hevc.c rename to ffmpeg-y/libavformat/rtpenc_h264_hevc.c diff --git a/libavformat/rtpenc_jpeg.c b/ffmpeg-y/libavformat/rtpenc_jpeg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_jpeg.c rename to ffmpeg-y/libavformat/rtpenc_jpeg.c diff --git a/libavformat/rtpenc_latm.c b/ffmpeg-y/libavformat/rtpenc_latm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_latm.c rename to ffmpeg-y/libavformat/rtpenc_latm.c diff --git a/libavformat/rtpenc_mpegts.c b/ffmpeg-y/libavformat/rtpenc_mpegts.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_mpegts.c rename to ffmpeg-y/libavformat/rtpenc_mpegts.c diff --git a/libavformat/rtpenc_mpv.c b/ffmpeg-y/libavformat/rtpenc_mpv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_mpv.c rename to ffmpeg-y/libavformat/rtpenc_mpv.c diff --git a/libavformat/rtpenc_vc2hq.c b/ffmpeg-y/libavformat/rtpenc_vc2hq.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_vc2hq.c rename to ffmpeg-y/libavformat/rtpenc_vc2hq.c diff --git a/libavformat/rtpenc_vp8.c b/ffmpeg-y/libavformat/rtpenc_vp8.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_vp8.c rename to ffmpeg-y/libavformat/rtpenc_vp8.c diff --git a/libavformat/rtpenc_vp9.c b/ffmpeg-y/libavformat/rtpenc_vp9.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_vp9.c rename to ffmpeg-y/libavformat/rtpenc_vp9.c diff --git a/libavformat/rtpenc_xiph.c b/ffmpeg-y/libavformat/rtpenc_xiph.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpenc_xiph.c rename to ffmpeg-y/libavformat/rtpenc_xiph.c diff --git a/libavformat/rtpproto.c b/ffmpeg-y/libavformat/rtpproto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpproto.c rename to ffmpeg-y/libavformat/rtpproto.c diff --git a/libavformat/rtpproto.h b/ffmpeg-y/libavformat/rtpproto.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtpproto.h rename to ffmpeg-y/libavformat/rtpproto.h diff --git a/libavformat/rtsp.c b/ffmpeg-y/libavformat/rtsp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtsp.c rename to ffmpeg-y/libavformat/rtsp.c diff --git a/libavformat/rtsp.h b/ffmpeg-y/libavformat/rtsp.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtsp.h rename to ffmpeg-y/libavformat/rtsp.h diff --git a/libavformat/rtspcodes.h b/ffmpeg-y/libavformat/rtspcodes.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtspcodes.h rename to ffmpeg-y/libavformat/rtspcodes.h diff --git a/libavformat/rtspdec.c b/ffmpeg-y/libavformat/rtspdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtspdec.c rename to ffmpeg-y/libavformat/rtspdec.c diff --git a/libavformat/rtspenc.c b/ffmpeg-y/libavformat/rtspenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/rtspenc.c rename to ffmpeg-y/libavformat/rtspenc.c diff --git a/libavformat/s337m.c b/ffmpeg-y/libavformat/s337m.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/s337m.c rename to ffmpeg-y/libavformat/s337m.c diff --git a/libavformat/samidec.c b/ffmpeg-y/libavformat/samidec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/samidec.c rename to ffmpeg-y/libavformat/samidec.c diff --git a/libavformat/sapdec.c b/ffmpeg-y/libavformat/sapdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sapdec.c rename to ffmpeg-y/libavformat/sapdec.c diff --git a/libavformat/sapenc.c b/ffmpeg-y/libavformat/sapenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sapenc.c rename to ffmpeg-y/libavformat/sapenc.c diff --git a/libavformat/sauce.c b/ffmpeg-y/libavformat/sauce.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sauce.c rename to ffmpeg-y/libavformat/sauce.c diff --git a/libavformat/sauce.h b/ffmpeg-y/libavformat/sauce.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sauce.h rename to ffmpeg-y/libavformat/sauce.h diff --git a/libavformat/sbcdec.c b/ffmpeg-y/libavformat/sbcdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sbcdec.c rename to ffmpeg-y/libavformat/sbcdec.c diff --git a/libavformat/sbgdec.c b/ffmpeg-y/libavformat/sbgdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sbgdec.c rename to ffmpeg-y/libavformat/sbgdec.c diff --git a/libavformat/sccdec.c b/ffmpeg-y/libavformat/sccdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sccdec.c rename to ffmpeg-y/libavformat/sccdec.c diff --git a/libavformat/sccenc.c b/ffmpeg-y/libavformat/sccenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sccenc.c rename to ffmpeg-y/libavformat/sccenc.c diff --git a/libavformat/sctp.c b/ffmpeg-y/libavformat/sctp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sctp.c rename to ffmpeg-y/libavformat/sctp.c diff --git a/libavformat/sdp.c b/ffmpeg-y/libavformat/sdp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sdp.c rename to ffmpeg-y/libavformat/sdp.c diff --git a/libavformat/sdr2.c b/ffmpeg-y/libavformat/sdr2.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sdr2.c rename to ffmpeg-y/libavformat/sdr2.c diff --git a/libavformat/sdsdec.c b/ffmpeg-y/libavformat/sdsdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sdsdec.c rename to ffmpeg-y/libavformat/sdsdec.c diff --git a/libavformat/sdxdec.c b/ffmpeg-y/libavformat/sdxdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sdxdec.c rename to ffmpeg-y/libavformat/sdxdec.c diff --git a/libavformat/segafilm.c b/ffmpeg-y/libavformat/segafilm.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/segafilm.c rename to ffmpeg-y/libavformat/segafilm.c diff --git a/libavformat/segafilmenc.c b/ffmpeg-y/libavformat/segafilmenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/segafilmenc.c rename to ffmpeg-y/libavformat/segafilmenc.c diff --git a/libavformat/segment.c b/ffmpeg-y/libavformat/segment.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/segment.c rename to ffmpeg-y/libavformat/segment.c diff --git a/libavformat/serdec.c b/ffmpeg-y/libavformat/serdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/serdec.c rename to ffmpeg-y/libavformat/serdec.c diff --git a/libavformat/shortendec.c b/ffmpeg-y/libavformat/shortendec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/shortendec.c rename to ffmpeg-y/libavformat/shortendec.c diff --git a/libavformat/sierravmd.c b/ffmpeg-y/libavformat/sierravmd.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sierravmd.c rename to ffmpeg-y/libavformat/sierravmd.c diff --git a/libavformat/siff.c b/ffmpeg-y/libavformat/siff.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/siff.c rename to ffmpeg-y/libavformat/siff.c diff --git a/libavformat/smacker.c b/ffmpeg-y/libavformat/smacker.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smacker.c rename to ffmpeg-y/libavformat/smacker.c diff --git a/libavformat/smjpeg.c b/ffmpeg-y/libavformat/smjpeg.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smjpeg.c rename to ffmpeg-y/libavformat/smjpeg.c diff --git a/libavformat/smjpeg.h b/ffmpeg-y/libavformat/smjpeg.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smjpeg.h rename to ffmpeg-y/libavformat/smjpeg.h diff --git a/libavformat/smjpegdec.c b/ffmpeg-y/libavformat/smjpegdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smjpegdec.c rename to ffmpeg-y/libavformat/smjpegdec.c diff --git a/libavformat/smjpegenc.c b/ffmpeg-y/libavformat/smjpegenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smjpegenc.c rename to ffmpeg-y/libavformat/smjpegenc.c diff --git a/libavformat/smoothstreamingenc.c b/ffmpeg-y/libavformat/smoothstreamingenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smoothstreamingenc.c rename to ffmpeg-y/libavformat/smoothstreamingenc.c diff --git a/libavformat/smush.c b/ffmpeg-y/libavformat/smush.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/smush.c rename to ffmpeg-y/libavformat/smush.c diff --git a/libavformat/sol.c b/ffmpeg-y/libavformat/sol.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sol.c rename to ffmpeg-y/libavformat/sol.c diff --git a/libavformat/sox.h b/ffmpeg-y/libavformat/sox.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/sox.h rename to ffmpeg-y/libavformat/sox.h diff --git a/libavformat/soxdec.c b/ffmpeg-y/libavformat/soxdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/soxdec.c rename to ffmpeg-y/libavformat/soxdec.c diff --git a/libavformat/soxenc.c b/ffmpeg-y/libavformat/soxenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/soxenc.c rename to ffmpeg-y/libavformat/soxenc.c diff --git a/libavformat/spdif.c b/ffmpeg-y/libavformat/spdif.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/spdif.c rename to ffmpeg-y/libavformat/spdif.c diff --git a/libavformat/spdif.h b/ffmpeg-y/libavformat/spdif.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/spdif.h rename to ffmpeg-y/libavformat/spdif.h diff --git a/libavformat/spdifdec.c b/ffmpeg-y/libavformat/spdifdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/spdifdec.c rename to ffmpeg-y/libavformat/spdifdec.c diff --git a/libavformat/spdifenc.c b/ffmpeg-y/libavformat/spdifenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/spdifenc.c rename to ffmpeg-y/libavformat/spdifenc.c diff --git a/libavformat/srtdec.c b/ffmpeg-y/libavformat/srtdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/srtdec.c rename to ffmpeg-y/libavformat/srtdec.c diff --git a/libavformat/srtenc.c b/ffmpeg-y/libavformat/srtenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/srtenc.c rename to ffmpeg-y/libavformat/srtenc.c diff --git a/libavformat/srtp.c b/ffmpeg-y/libavformat/srtp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/srtp.c rename to ffmpeg-y/libavformat/srtp.c diff --git a/libavformat/srtp.h b/ffmpeg-y/libavformat/srtp.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/srtp.h rename to ffmpeg-y/libavformat/srtp.h diff --git a/libavformat/srtpproto.c b/ffmpeg-y/libavformat/srtpproto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/srtpproto.c rename to ffmpeg-y/libavformat/srtpproto.c diff --git a/libavformat/stldec.c b/ffmpeg-y/libavformat/stldec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/stldec.c rename to ffmpeg-y/libavformat/stldec.c diff --git a/libavformat/subfile.c b/ffmpeg-y/libavformat/subfile.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/subfile.c rename to ffmpeg-y/libavformat/subfile.c diff --git a/libavformat/subtitles.c b/ffmpeg-y/libavformat/subtitles.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/subtitles.c rename to ffmpeg-y/libavformat/subtitles.c diff --git a/libavformat/subtitles.h b/ffmpeg-y/libavformat/subtitles.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/subtitles.h rename to ffmpeg-y/libavformat/subtitles.h diff --git a/libavformat/subviewer1dec.c b/ffmpeg-y/libavformat/subviewer1dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/subviewer1dec.c rename to ffmpeg-y/libavformat/subviewer1dec.c diff --git a/libavformat/subviewerdec.c b/ffmpeg-y/libavformat/subviewerdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/subviewerdec.c rename to ffmpeg-y/libavformat/subviewerdec.c diff --git a/libavformat/supdec.c b/ffmpeg-y/libavformat/supdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/supdec.c rename to ffmpeg-y/libavformat/supdec.c diff --git a/libavformat/supenc.c b/ffmpeg-y/libavformat/supenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/supenc.c rename to ffmpeg-y/libavformat/supenc.c diff --git a/libavformat/svag.c b/ffmpeg-y/libavformat/svag.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/svag.c rename to ffmpeg-y/libavformat/svag.c diff --git a/libavformat/swf.c b/ffmpeg-y/libavformat/swf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/swf.c rename to ffmpeg-y/libavformat/swf.c diff --git a/libavformat/swf.h b/ffmpeg-y/libavformat/swf.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/swf.h rename to ffmpeg-y/libavformat/swf.h diff --git a/libavformat/swfdec.c b/ffmpeg-y/libavformat/swfdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/swfdec.c rename to ffmpeg-y/libavformat/swfdec.c diff --git a/libavformat/swfenc.c b/ffmpeg-y/libavformat/swfenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/swfenc.c rename to ffmpeg-y/libavformat/swfenc.c diff --git a/libavformat/takdec.c b/ffmpeg-y/libavformat/takdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/takdec.c rename to ffmpeg-y/libavformat/takdec.c diff --git a/libavformat/tcp.c b/ffmpeg-y/libavformat/tcp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tcp.c rename to ffmpeg-y/libavformat/tcp.c diff --git a/libavformat/tedcaptionsdec.c b/ffmpeg-y/libavformat/tedcaptionsdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tedcaptionsdec.c rename to ffmpeg-y/libavformat/tedcaptionsdec.c diff --git a/libavformat/tee.c b/ffmpeg-y/libavformat/tee.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tee.c rename to ffmpeg-y/libavformat/tee.c diff --git a/libavformat/tee_common.c b/ffmpeg-y/libavformat/tee_common.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tee_common.c rename to ffmpeg-y/libavformat/tee_common.c diff --git a/libavformat/tee_common.h b/ffmpeg-y/libavformat/tee_common.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tee_common.h rename to ffmpeg-y/libavformat/tee_common.h diff --git a/libavformat/teeproto.c b/ffmpeg-y/libavformat/teeproto.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/teeproto.c rename to ffmpeg-y/libavformat/teeproto.c diff --git a/libavformat/tests/fifo_muxer.c b/ffmpeg-y/libavformat/tests/fifo_muxer.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/fifo_muxer.c rename to ffmpeg-y/libavformat/tests/fifo_muxer.c diff --git a/libavformat/tests/movenc.c b/ffmpeg-y/libavformat/tests/movenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/movenc.c rename to ffmpeg-y/libavformat/tests/movenc.c diff --git a/libavformat/tests/noproxy.c b/ffmpeg-y/libavformat/tests/noproxy.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/noproxy.c rename to ffmpeg-y/libavformat/tests/noproxy.c diff --git a/libavformat/tests/rtmpdh.c b/ffmpeg-y/libavformat/tests/rtmpdh.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/rtmpdh.c rename to ffmpeg-y/libavformat/tests/rtmpdh.c diff --git a/libavformat/tests/seek.c b/ffmpeg-y/libavformat/tests/seek.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/seek.c rename to ffmpeg-y/libavformat/tests/seek.c diff --git a/libavformat/tests/srtp.c b/ffmpeg-y/libavformat/tests/srtp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/srtp.c rename to ffmpeg-y/libavformat/tests/srtp.c diff --git a/libavformat/tests/url.c b/ffmpeg-y/libavformat/tests/url.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tests/url.c rename to ffmpeg-y/libavformat/tests/url.c diff --git a/libavformat/thp.c b/ffmpeg-y/libavformat/thp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/thp.c rename to ffmpeg-y/libavformat/thp.c diff --git a/libavformat/tiertexseq.c b/ffmpeg-y/libavformat/tiertexseq.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tiertexseq.c rename to ffmpeg-y/libavformat/tiertexseq.c diff --git a/libavformat/tls.c b/ffmpeg-y/libavformat/tls.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls.c rename to ffmpeg-y/libavformat/tls.c diff --git a/libavformat/tls.h b/ffmpeg-y/libavformat/tls.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls.h rename to ffmpeg-y/libavformat/tls.h diff --git a/libavformat/tls_gnutls.c b/ffmpeg-y/libavformat/tls_gnutls.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls_gnutls.c rename to ffmpeg-y/libavformat/tls_gnutls.c diff --git a/libavformat/tls_libtls.c b/ffmpeg-y/libavformat/tls_libtls.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls_libtls.c rename to ffmpeg-y/libavformat/tls_libtls.c diff --git a/libavformat/tls_mbedtls.c b/ffmpeg-y/libavformat/tls_mbedtls.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls_mbedtls.c rename to ffmpeg-y/libavformat/tls_mbedtls.c diff --git a/libavformat/tls_openssl.c b/ffmpeg-y/libavformat/tls_openssl.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls_openssl.c rename to ffmpeg-y/libavformat/tls_openssl.c diff --git a/libavformat/tls_schannel.c b/ffmpeg-y/libavformat/tls_schannel.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls_schannel.c rename to ffmpeg-y/libavformat/tls_schannel.c diff --git a/libavformat/tls_securetransport.c b/ffmpeg-y/libavformat/tls_securetransport.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tls_securetransport.c rename to ffmpeg-y/libavformat/tls_securetransport.c diff --git a/libavformat/tmv.c b/ffmpeg-y/libavformat/tmv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tmv.c rename to ffmpeg-y/libavformat/tmv.c diff --git a/libavformat/tta.c b/ffmpeg-y/libavformat/tta.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tta.c rename to ffmpeg-y/libavformat/tta.c diff --git a/libavformat/ttaenc.c b/ffmpeg-y/libavformat/ttaenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ttaenc.c rename to ffmpeg-y/libavformat/ttaenc.c diff --git a/libavformat/tty.c b/ffmpeg-y/libavformat/tty.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/tty.c rename to ffmpeg-y/libavformat/tty.c diff --git a/libavformat/txd.c b/ffmpeg-y/libavformat/txd.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/txd.c rename to ffmpeg-y/libavformat/txd.c diff --git a/libavformat/ty.c b/ffmpeg-y/libavformat/ty.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/ty.c rename to ffmpeg-y/libavformat/ty.c diff --git a/libavformat/udp.c b/ffmpeg-y/libavformat/udp.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/udp.c rename to ffmpeg-y/libavformat/udp.c diff --git a/libavformat/uncodedframecrcenc.c b/ffmpeg-y/libavformat/uncodedframecrcenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/uncodedframecrcenc.c rename to ffmpeg-y/libavformat/uncodedframecrcenc.c diff --git a/libavformat/unix.c b/ffmpeg-y/libavformat/unix.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/unix.c rename to ffmpeg-y/libavformat/unix.c diff --git a/libavformat/url.c b/ffmpeg-y/libavformat/url.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/url.c rename to ffmpeg-y/libavformat/url.c diff --git a/libavformat/url.h b/ffmpeg-y/libavformat/url.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/url.h rename to ffmpeg-y/libavformat/url.h diff --git a/libavformat/urldecode.c b/ffmpeg-y/libavformat/urldecode.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/urldecode.c rename to ffmpeg-y/libavformat/urldecode.c diff --git a/libavformat/urldecode.h b/ffmpeg-y/libavformat/urldecode.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/urldecode.h rename to ffmpeg-y/libavformat/urldecode.h diff --git a/libavformat/utils.c b/ffmpeg-y/libavformat/utils.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/utils.c rename to ffmpeg-y/libavformat/utils.c diff --git a/libavformat/v210.c b/ffmpeg-y/libavformat/v210.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/v210.c rename to ffmpeg-y/libavformat/v210.c diff --git a/libavformat/vag.c b/ffmpeg-y/libavformat/vag.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vag.c rename to ffmpeg-y/libavformat/vag.c diff --git a/libavformat/vapoursynth.c b/ffmpeg-y/libavformat/vapoursynth.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vapoursynth.c rename to ffmpeg-y/libavformat/vapoursynth.c diff --git a/libavformat/vc1dec.c b/ffmpeg-y/libavformat/vc1dec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vc1dec.c rename to ffmpeg-y/libavformat/vc1dec.c diff --git a/libavformat/vc1test.c b/ffmpeg-y/libavformat/vc1test.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vc1test.c rename to ffmpeg-y/libavformat/vc1test.c diff --git a/libavformat/vc1testenc.c b/ffmpeg-y/libavformat/vc1testenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vc1testenc.c rename to ffmpeg-y/libavformat/vc1testenc.c diff --git a/libavformat/version.h b/ffmpeg-y/libavformat/version.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/version.h rename to ffmpeg-y/libavformat/version.h diff --git a/libavformat/vividas.c b/ffmpeg-y/libavformat/vividas.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vividas.c rename to ffmpeg-y/libavformat/vividas.c diff --git a/libavformat/vivo.c b/ffmpeg-y/libavformat/vivo.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vivo.c rename to ffmpeg-y/libavformat/vivo.c diff --git a/libavformat/voc.c b/ffmpeg-y/libavformat/voc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/voc.c rename to ffmpeg-y/libavformat/voc.c diff --git a/libavformat/voc.h b/ffmpeg-y/libavformat/voc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/voc.h rename to ffmpeg-y/libavformat/voc.h diff --git a/libavformat/voc_packet.c b/ffmpeg-y/libavformat/voc_packet.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/voc_packet.c rename to ffmpeg-y/libavformat/voc_packet.c diff --git a/libavformat/vocdec.c b/ffmpeg-y/libavformat/vocdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vocdec.c rename to ffmpeg-y/libavformat/vocdec.c diff --git a/libavformat/vocenc.c b/ffmpeg-y/libavformat/vocenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vocenc.c rename to ffmpeg-y/libavformat/vocenc.c diff --git a/libavformat/vorbiscomment.c b/ffmpeg-y/libavformat/vorbiscomment.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vorbiscomment.c rename to ffmpeg-y/libavformat/vorbiscomment.c diff --git a/libavformat/vorbiscomment.h b/ffmpeg-y/libavformat/vorbiscomment.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vorbiscomment.h rename to ffmpeg-y/libavformat/vorbiscomment.h diff --git a/libavformat/vpcc.c b/ffmpeg-y/libavformat/vpcc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vpcc.c rename to ffmpeg-y/libavformat/vpcc.c diff --git a/libavformat/vpcc.h b/ffmpeg-y/libavformat/vpcc.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vpcc.h rename to ffmpeg-y/libavformat/vpcc.h diff --git a/libavformat/vpk.c b/ffmpeg-y/libavformat/vpk.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vpk.c rename to ffmpeg-y/libavformat/vpk.c diff --git a/libavformat/vplayerdec.c b/ffmpeg-y/libavformat/vplayerdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vplayerdec.c rename to ffmpeg-y/libavformat/vplayerdec.c diff --git a/libavformat/vqf.c b/ffmpeg-y/libavformat/vqf.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/vqf.c rename to ffmpeg-y/libavformat/vqf.c diff --git a/libavformat/w64.c b/ffmpeg-y/libavformat/w64.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/w64.c rename to ffmpeg-y/libavformat/w64.c diff --git a/libavformat/w64.h b/ffmpeg-y/libavformat/w64.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/w64.h rename to ffmpeg-y/libavformat/w64.h diff --git a/libavformat/wavdec.c b/ffmpeg-y/libavformat/wavdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wavdec.c rename to ffmpeg-y/libavformat/wavdec.c diff --git a/libavformat/wavenc.c b/ffmpeg-y/libavformat/wavenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wavenc.c rename to ffmpeg-y/libavformat/wavenc.c diff --git a/libavformat/wc3movie.c b/ffmpeg-y/libavformat/wc3movie.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wc3movie.c rename to ffmpeg-y/libavformat/wc3movie.c diff --git a/libavformat/webm_chunk.c b/ffmpeg-y/libavformat/webm_chunk.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/webm_chunk.c rename to ffmpeg-y/libavformat/webm_chunk.c diff --git a/libavformat/webmdashenc.c b/ffmpeg-y/libavformat/webmdashenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/webmdashenc.c rename to ffmpeg-y/libavformat/webmdashenc.c diff --git a/libavformat/webpenc.c b/ffmpeg-y/libavformat/webpenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/webpenc.c rename to ffmpeg-y/libavformat/webpenc.c diff --git a/libavformat/webvttdec.c b/ffmpeg-y/libavformat/webvttdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/webvttdec.c rename to ffmpeg-y/libavformat/webvttdec.c diff --git a/libavformat/webvttenc.c b/ffmpeg-y/libavformat/webvttenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/webvttenc.c rename to ffmpeg-y/libavformat/webvttenc.c diff --git a/libavformat/westwood_aud.c b/ffmpeg-y/libavformat/westwood_aud.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/westwood_aud.c rename to ffmpeg-y/libavformat/westwood_aud.c diff --git a/libavformat/westwood_vqa.c b/ffmpeg-y/libavformat/westwood_vqa.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/westwood_vqa.c rename to ffmpeg-y/libavformat/westwood_vqa.c diff --git a/libavformat/wsddec.c b/ffmpeg-y/libavformat/wsddec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wsddec.c rename to ffmpeg-y/libavformat/wsddec.c diff --git a/libavformat/wtv.h b/ffmpeg-y/libavformat/wtv.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wtv.h rename to ffmpeg-y/libavformat/wtv.h diff --git a/libavformat/wtv_common.c b/ffmpeg-y/libavformat/wtv_common.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wtv_common.c rename to ffmpeg-y/libavformat/wtv_common.c diff --git a/libavformat/wtvdec.c b/ffmpeg-y/libavformat/wtvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wtvdec.c rename to ffmpeg-y/libavformat/wtvdec.c diff --git a/libavformat/wtvenc.c b/ffmpeg-y/libavformat/wtvenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wtvenc.c rename to ffmpeg-y/libavformat/wtvenc.c diff --git a/libavformat/wv.c b/ffmpeg-y/libavformat/wv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wv.c rename to ffmpeg-y/libavformat/wv.c diff --git a/libavformat/wv.h b/ffmpeg-y/libavformat/wv.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wv.h rename to ffmpeg-y/libavformat/wv.h diff --git a/libavformat/wvdec.c b/ffmpeg-y/libavformat/wvdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wvdec.c rename to ffmpeg-y/libavformat/wvdec.c diff --git a/libavformat/wvedec.c b/ffmpeg-y/libavformat/wvedec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wvedec.c rename to ffmpeg-y/libavformat/wvedec.c diff --git a/libavformat/wvenc.c b/ffmpeg-y/libavformat/wvenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/wvenc.c rename to ffmpeg-y/libavformat/wvenc.c diff --git a/libavformat/xa.c b/ffmpeg-y/libavformat/xa.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/xa.c rename to ffmpeg-y/libavformat/xa.c diff --git a/libavformat/xmv.c b/ffmpeg-y/libavformat/xmv.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/xmv.c rename to ffmpeg-y/libavformat/xmv.c diff --git a/libavformat/xvag.c b/ffmpeg-y/libavformat/xvag.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/xvag.c rename to ffmpeg-y/libavformat/xvag.c diff --git a/libavformat/xwma.c b/ffmpeg-y/libavformat/xwma.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/xwma.c rename to ffmpeg-y/libavformat/xwma.c diff --git a/libavformat/yop.c b/ffmpeg-y/libavformat/yop.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/yop.c rename to ffmpeg-y/libavformat/yop.c diff --git a/libavformat/yuv4mpeg.h b/ffmpeg-y/libavformat/yuv4mpeg.h old mode 100644 new mode 100755 similarity index 100% rename from libavformat/yuv4mpeg.h rename to ffmpeg-y/libavformat/yuv4mpeg.h diff --git a/libavformat/yuv4mpegdec.c b/ffmpeg-y/libavformat/yuv4mpegdec.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/yuv4mpegdec.c rename to ffmpeg-y/libavformat/yuv4mpegdec.c diff --git a/libavformat/yuv4mpegenc.c b/ffmpeg-y/libavformat/yuv4mpegenc.c old mode 100644 new mode 100755 similarity index 100% rename from libavformat/yuv4mpegenc.c rename to ffmpeg-y/libavformat/yuv4mpegenc.c diff --git a/libavresample/Makefile b/ffmpeg-y/libavresample/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavresample/Makefile rename to ffmpeg-y/libavresample/Makefile diff --git a/libavresample/aarch64/Makefile b/ffmpeg-y/libavresample/aarch64/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/Makefile rename to ffmpeg-y/libavresample/aarch64/Makefile diff --git a/libavresample/aarch64/asm-offsets.h b/ffmpeg-y/libavresample/aarch64/asm-offsets.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/asm-offsets.h rename to ffmpeg-y/libavresample/aarch64/asm-offsets.h diff --git a/libavresample/aarch64/audio_convert_init.c b/ffmpeg-y/libavresample/aarch64/audio_convert_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/audio_convert_init.c rename to ffmpeg-y/libavresample/aarch64/audio_convert_init.c diff --git a/libavresample/aarch64/audio_convert_neon.S b/ffmpeg-y/libavresample/aarch64/audio_convert_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/audio_convert_neon.S rename to ffmpeg-y/libavresample/aarch64/audio_convert_neon.S diff --git a/libavresample/aarch64/neontest.c b/ffmpeg-y/libavresample/aarch64/neontest.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/neontest.c rename to ffmpeg-y/libavresample/aarch64/neontest.c diff --git a/libavresample/aarch64/resample_init.c b/ffmpeg-y/libavresample/aarch64/resample_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/resample_init.c rename to ffmpeg-y/libavresample/aarch64/resample_init.c diff --git a/libavresample/aarch64/resample_neon.S b/ffmpeg-y/libavresample/aarch64/resample_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavresample/aarch64/resample_neon.S rename to ffmpeg-y/libavresample/aarch64/resample_neon.S diff --git a/libavresample/arm/Makefile b/ffmpeg-y/libavresample/arm/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/Makefile rename to ffmpeg-y/libavresample/arm/Makefile diff --git a/libavresample/arm/asm-offsets.h b/ffmpeg-y/libavresample/arm/asm-offsets.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/asm-offsets.h rename to ffmpeg-y/libavresample/arm/asm-offsets.h diff --git a/libavresample/arm/audio_convert_init.c b/ffmpeg-y/libavresample/arm/audio_convert_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/audio_convert_init.c rename to ffmpeg-y/libavresample/arm/audio_convert_init.c diff --git a/libavresample/arm/audio_convert_neon.S b/ffmpeg-y/libavresample/arm/audio_convert_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/audio_convert_neon.S rename to ffmpeg-y/libavresample/arm/audio_convert_neon.S diff --git a/libavresample/arm/neontest.c b/ffmpeg-y/libavresample/arm/neontest.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/neontest.c rename to ffmpeg-y/libavresample/arm/neontest.c diff --git a/libavresample/arm/resample_init.c b/ffmpeg-y/libavresample/arm/resample_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/resample_init.c rename to ffmpeg-y/libavresample/arm/resample_init.c diff --git a/libavresample/arm/resample_neon.S b/ffmpeg-y/libavresample/arm/resample_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavresample/arm/resample_neon.S rename to ffmpeg-y/libavresample/arm/resample_neon.S diff --git a/libavresample/audio_convert.c b/ffmpeg-y/libavresample/audio_convert.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_convert.c rename to ffmpeg-y/libavresample/audio_convert.c diff --git a/libavresample/audio_convert.h b/ffmpeg-y/libavresample/audio_convert.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_convert.h rename to ffmpeg-y/libavresample/audio_convert.h diff --git a/libavresample/audio_data.c b/ffmpeg-y/libavresample/audio_data.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_data.c rename to ffmpeg-y/libavresample/audio_data.c diff --git a/libavresample/audio_data.h b/ffmpeg-y/libavresample/audio_data.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_data.h rename to ffmpeg-y/libavresample/audio_data.h diff --git a/libavresample/audio_mix.c b/ffmpeg-y/libavresample/audio_mix.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_mix.c rename to ffmpeg-y/libavresample/audio_mix.c diff --git a/libavresample/audio_mix.h b/ffmpeg-y/libavresample/audio_mix.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_mix.h rename to ffmpeg-y/libavresample/audio_mix.h diff --git a/libavresample/audio_mix_matrix.c b/ffmpeg-y/libavresample/audio_mix_matrix.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/audio_mix_matrix.c rename to ffmpeg-y/libavresample/audio_mix_matrix.c diff --git a/libavresample/avresample.h b/ffmpeg-y/libavresample/avresample.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/avresample.h rename to ffmpeg-y/libavresample/avresample.h diff --git a/libavresample/avresampleres.rc b/ffmpeg-y/libavresample/avresampleres.rc old mode 100644 new mode 100755 similarity index 100% rename from libavresample/avresampleres.rc rename to ffmpeg-y/libavresample/avresampleres.rc diff --git a/libavresample/dither.c b/ffmpeg-y/libavresample/dither.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/dither.c rename to ffmpeg-y/libavresample/dither.c diff --git a/libavresample/dither.h b/ffmpeg-y/libavresample/dither.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/dither.h rename to ffmpeg-y/libavresample/dither.h diff --git a/libavresample/internal.h b/ffmpeg-y/libavresample/internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/internal.h rename to ffmpeg-y/libavresample/internal.h diff --git a/libavresample/libavresample.v b/ffmpeg-y/libavresample/libavresample.v old mode 100644 new mode 100755 similarity index 100% rename from libavresample/libavresample.v rename to ffmpeg-y/libavresample/libavresample.v diff --git a/libavresample/options.c b/ffmpeg-y/libavresample/options.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/options.c rename to ffmpeg-y/libavresample/options.c diff --git a/libavresample/resample.c b/ffmpeg-y/libavresample/resample.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/resample.c rename to ffmpeg-y/libavresample/resample.c diff --git a/libavresample/resample.h b/ffmpeg-y/libavresample/resample.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/resample.h rename to ffmpeg-y/libavresample/resample.h diff --git a/libavresample/resample_template.c b/ffmpeg-y/libavresample/resample_template.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/resample_template.c rename to ffmpeg-y/libavresample/resample_template.c diff --git a/libavresample/tests/avresample.c b/ffmpeg-y/libavresample/tests/avresample.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/tests/avresample.c rename to ffmpeg-y/libavresample/tests/avresample.c diff --git a/libavresample/utils.c b/ffmpeg-y/libavresample/utils.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/utils.c rename to ffmpeg-y/libavresample/utils.c diff --git a/libavresample/version.h b/ffmpeg-y/libavresample/version.h old mode 100644 new mode 100755 similarity index 100% rename from libavresample/version.h rename to ffmpeg-y/libavresample/version.h diff --git a/libavresample/x86/Makefile b/ffmpeg-y/libavresample/x86/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavresample/x86/Makefile rename to ffmpeg-y/libavresample/x86/Makefile diff --git a/libavresample/x86/audio_convert_init.c b/ffmpeg-y/libavresample/x86/audio_convert_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/x86/audio_convert_init.c rename to ffmpeg-y/libavresample/x86/audio_convert_init.c diff --git a/libavresample/x86/audio_mix_init.c b/ffmpeg-y/libavresample/x86/audio_mix_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/x86/audio_mix_init.c rename to ffmpeg-y/libavresample/x86/audio_mix_init.c diff --git a/libavresample/x86/dither_init.c b/ffmpeg-y/libavresample/x86/dither_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/x86/dither_init.c rename to ffmpeg-y/libavresample/x86/dither_init.c diff --git a/libavresample/x86/w64xmmtest.c b/ffmpeg-y/libavresample/x86/w64xmmtest.c old mode 100644 new mode 100755 similarity index 100% rename from libavresample/x86/w64xmmtest.c rename to ffmpeg-y/libavresample/x86/w64xmmtest.c diff --git a/libavutil/Makefile b/ffmpeg-y/libavutil/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavutil/Makefile rename to ffmpeg-y/libavutil/Makefile diff --git a/libavutil/aarch64/Makefile b/ffmpeg-y/libavutil/aarch64/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/Makefile rename to ffmpeg-y/libavutil/aarch64/Makefile diff --git a/libavutil/aarch64/asm.S b/ffmpeg-y/libavutil/aarch64/asm.S old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/asm.S rename to ffmpeg-y/libavutil/aarch64/asm.S diff --git a/libavutil/aarch64/bswap.h b/ffmpeg-y/libavutil/aarch64/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/bswap.h rename to ffmpeg-y/libavutil/aarch64/bswap.h diff --git a/libavutil/aarch64/cpu.c b/ffmpeg-y/libavutil/aarch64/cpu.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/cpu.c rename to ffmpeg-y/libavutil/aarch64/cpu.c diff --git a/libavutil/aarch64/cpu.h b/ffmpeg-y/libavutil/aarch64/cpu.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/cpu.h rename to ffmpeg-y/libavutil/aarch64/cpu.h diff --git a/libavutil/aarch64/float_dsp_init.c b/ffmpeg-y/libavutil/aarch64/float_dsp_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/float_dsp_init.c rename to ffmpeg-y/libavutil/aarch64/float_dsp_init.c diff --git a/libavutil/aarch64/float_dsp_neon.S b/ffmpeg-y/libavutil/aarch64/float_dsp_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/float_dsp_neon.S rename to ffmpeg-y/libavutil/aarch64/float_dsp_neon.S diff --git a/libavutil/aarch64/neontest.h b/ffmpeg-y/libavutil/aarch64/neontest.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/neontest.h rename to ffmpeg-y/libavutil/aarch64/neontest.h diff --git a/libavutil/aarch64/timer.h b/ffmpeg-y/libavutil/aarch64/timer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aarch64/timer.h rename to ffmpeg-y/libavutil/aarch64/timer.h diff --git a/libavutil/adler32.c b/ffmpeg-y/libavutil/adler32.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/adler32.c rename to ffmpeg-y/libavutil/adler32.c diff --git a/libavutil/adler32.h b/ffmpeg-y/libavutil/adler32.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/adler32.h rename to ffmpeg-y/libavutil/adler32.h diff --git a/libavutil/aes.c b/ffmpeg-y/libavutil/aes.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aes.c rename to ffmpeg-y/libavutil/aes.c diff --git a/libavutil/aes.h b/ffmpeg-y/libavutil/aes.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aes.h rename to ffmpeg-y/libavutil/aes.h diff --git a/libavutil/aes_ctr.c b/ffmpeg-y/libavutil/aes_ctr.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aes_ctr.c rename to ffmpeg-y/libavutil/aes_ctr.c diff --git a/libavutil/aes_ctr.h b/ffmpeg-y/libavutil/aes_ctr.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aes_ctr.h rename to ffmpeg-y/libavutil/aes_ctr.h diff --git a/libavutil/aes_internal.h b/ffmpeg-y/libavutil/aes_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/aes_internal.h rename to ffmpeg-y/libavutil/aes_internal.h diff --git a/libavutil/arm/Makefile b/ffmpeg-y/libavutil/arm/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/Makefile rename to ffmpeg-y/libavutil/arm/Makefile diff --git a/libavutil/arm/asm.S b/ffmpeg-y/libavutil/arm/asm.S old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/asm.S rename to ffmpeg-y/libavutil/arm/asm.S diff --git a/libavutil/arm/bswap.h b/ffmpeg-y/libavutil/arm/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/bswap.h rename to ffmpeg-y/libavutil/arm/bswap.h diff --git a/libavutil/arm/cpu.c b/ffmpeg-y/libavutil/arm/cpu.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/cpu.c rename to ffmpeg-y/libavutil/arm/cpu.c diff --git a/libavutil/arm/cpu.h b/ffmpeg-y/libavutil/arm/cpu.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/cpu.h rename to ffmpeg-y/libavutil/arm/cpu.h diff --git a/libavutil/arm/float_dsp_arm.h b/ffmpeg-y/libavutil/arm/float_dsp_arm.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/float_dsp_arm.h rename to ffmpeg-y/libavutil/arm/float_dsp_arm.h diff --git a/libavutil/arm/float_dsp_init_arm.c b/ffmpeg-y/libavutil/arm/float_dsp_init_arm.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/float_dsp_init_arm.c rename to ffmpeg-y/libavutil/arm/float_dsp_init_arm.c diff --git a/libavutil/arm/float_dsp_init_neon.c b/ffmpeg-y/libavutil/arm/float_dsp_init_neon.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/float_dsp_init_neon.c rename to ffmpeg-y/libavutil/arm/float_dsp_init_neon.c diff --git a/libavutil/arm/float_dsp_init_vfp.c b/ffmpeg-y/libavutil/arm/float_dsp_init_vfp.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/float_dsp_init_vfp.c rename to ffmpeg-y/libavutil/arm/float_dsp_init_vfp.c diff --git a/libavutil/arm/float_dsp_neon.S b/ffmpeg-y/libavutil/arm/float_dsp_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/float_dsp_neon.S rename to ffmpeg-y/libavutil/arm/float_dsp_neon.S diff --git a/libavutil/arm/float_dsp_vfp.S b/ffmpeg-y/libavutil/arm/float_dsp_vfp.S old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/float_dsp_vfp.S rename to ffmpeg-y/libavutil/arm/float_dsp_vfp.S diff --git a/libavutil/arm/intmath.h b/ffmpeg-y/libavutil/arm/intmath.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/intmath.h rename to ffmpeg-y/libavutil/arm/intmath.h diff --git a/libavutil/arm/intreadwrite.h b/ffmpeg-y/libavutil/arm/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/intreadwrite.h rename to ffmpeg-y/libavutil/arm/intreadwrite.h diff --git a/libavutil/arm/neontest.h b/ffmpeg-y/libavutil/arm/neontest.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/neontest.h rename to ffmpeg-y/libavutil/arm/neontest.h diff --git a/libavutil/arm/timer.h b/ffmpeg-y/libavutil/arm/timer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/arm/timer.h rename to ffmpeg-y/libavutil/arm/timer.h diff --git a/libavutil/attributes.h b/ffmpeg-y/libavutil/attributes.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/attributes.h rename to ffmpeg-y/libavutil/attributes.h diff --git a/libavutil/audio_fifo.c b/ffmpeg-y/libavutil/audio_fifo.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/audio_fifo.c rename to ffmpeg-y/libavutil/audio_fifo.c diff --git a/libavutil/audio_fifo.h b/ffmpeg-y/libavutil/audio_fifo.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/audio_fifo.h rename to ffmpeg-y/libavutil/audio_fifo.h diff --git a/libavutil/avassert.h b/ffmpeg-y/libavutil/avassert.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avassert.h rename to ffmpeg-y/libavutil/avassert.h diff --git a/libavutil/avr32/bswap.h b/ffmpeg-y/libavutil/avr32/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avr32/bswap.h rename to ffmpeg-y/libavutil/avr32/bswap.h diff --git a/libavutil/avr32/intreadwrite.h b/ffmpeg-y/libavutil/avr32/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avr32/intreadwrite.h rename to ffmpeg-y/libavutil/avr32/intreadwrite.h diff --git a/libavutil/avsscanf.c b/ffmpeg-y/libavutil/avsscanf.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avsscanf.c rename to ffmpeg-y/libavutil/avsscanf.c diff --git a/libavutil/avstring.c b/ffmpeg-y/libavutil/avstring.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avstring.c rename to ffmpeg-y/libavutil/avstring.c diff --git a/libavutil/avstring.h b/ffmpeg-y/libavutil/avstring.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avstring.h rename to ffmpeg-y/libavutil/avstring.h diff --git a/libavutil/avutil.h b/ffmpeg-y/libavutil/avutil.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avutil.h rename to ffmpeg-y/libavutil/avutil.h diff --git a/libavutil/avutilres.rc b/ffmpeg-y/libavutil/avutilres.rc old mode 100644 new mode 100755 similarity index 100% rename from libavutil/avutilres.rc rename to ffmpeg-y/libavutil/avutilres.rc diff --git a/libavutil/base64.c b/ffmpeg-y/libavutil/base64.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/base64.c rename to ffmpeg-y/libavutil/base64.c diff --git a/libavutil/base64.h b/ffmpeg-y/libavutil/base64.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/base64.h rename to ffmpeg-y/libavutil/base64.h diff --git a/libavutil/bfin/bswap.h b/ffmpeg-y/libavutil/bfin/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/bfin/bswap.h rename to ffmpeg-y/libavutil/bfin/bswap.h diff --git a/libavutil/bfin/timer.h b/ffmpeg-y/libavutil/bfin/timer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/bfin/timer.h rename to ffmpeg-y/libavutil/bfin/timer.h diff --git a/libavutil/blowfish.c b/ffmpeg-y/libavutil/blowfish.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/blowfish.c rename to ffmpeg-y/libavutil/blowfish.c diff --git a/libavutil/blowfish.h b/ffmpeg-y/libavutil/blowfish.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/blowfish.h rename to ffmpeg-y/libavutil/blowfish.h diff --git a/libavutil/bprint.c b/ffmpeg-y/libavutil/bprint.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/bprint.c rename to ffmpeg-y/libavutil/bprint.c diff --git a/libavutil/bprint.h b/ffmpeg-y/libavutil/bprint.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/bprint.h rename to ffmpeg-y/libavutil/bprint.h diff --git a/libavutil/bswap.h b/ffmpeg-y/libavutil/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/bswap.h rename to ffmpeg-y/libavutil/bswap.h diff --git a/libavutil/buffer.c b/ffmpeg-y/libavutil/buffer.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/buffer.c rename to ffmpeg-y/libavutil/buffer.c diff --git a/libavutil/buffer.h b/ffmpeg-y/libavutil/buffer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/buffer.h rename to ffmpeg-y/libavutil/buffer.h diff --git a/libavutil/buffer_internal.h b/ffmpeg-y/libavutil/buffer_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/buffer_internal.h rename to ffmpeg-y/libavutil/buffer_internal.h diff --git a/libavutil/camellia.c b/ffmpeg-y/libavutil/camellia.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/camellia.c rename to ffmpeg-y/libavutil/camellia.c diff --git a/libavutil/camellia.h b/ffmpeg-y/libavutil/camellia.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/camellia.h rename to ffmpeg-y/libavutil/camellia.h diff --git a/libavutil/cast5.c b/ffmpeg-y/libavutil/cast5.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/cast5.c rename to ffmpeg-y/libavutil/cast5.c diff --git a/libavutil/cast5.h b/ffmpeg-y/libavutil/cast5.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/cast5.h rename to ffmpeg-y/libavutil/cast5.h diff --git a/libavutil/channel_layout.c b/ffmpeg-y/libavutil/channel_layout.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/channel_layout.c rename to ffmpeg-y/libavutil/channel_layout.c diff --git a/libavutil/channel_layout.h b/ffmpeg-y/libavutil/channel_layout.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/channel_layout.h rename to ffmpeg-y/libavutil/channel_layout.h diff --git a/libavutil/color_utils.c b/ffmpeg-y/libavutil/color_utils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/color_utils.c rename to ffmpeg-y/libavutil/color_utils.c diff --git a/libavutil/color_utils.h b/ffmpeg-y/libavutil/color_utils.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/color_utils.h rename to ffmpeg-y/libavutil/color_utils.h diff --git a/libavutil/colorspace.h b/ffmpeg-y/libavutil/colorspace.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/colorspace.h rename to ffmpeg-y/libavutil/colorspace.h diff --git a/libavutil/common.h b/ffmpeg-y/libavutil/common.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/common.h rename to ffmpeg-y/libavutil/common.h diff --git a/libavutil/cpu.c b/ffmpeg-y/libavutil/cpu.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/cpu.c rename to ffmpeg-y/libavutil/cpu.c diff --git a/libavutil/cpu.h b/ffmpeg-y/libavutil/cpu.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/cpu.h rename to ffmpeg-y/libavutil/cpu.h diff --git a/libavutil/cpu_internal.h b/ffmpeg-y/libavutil/cpu_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/cpu_internal.h rename to ffmpeg-y/libavutil/cpu_internal.h diff --git a/libavutil/crc.c b/ffmpeg-y/libavutil/crc.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/crc.c rename to ffmpeg-y/libavutil/crc.c diff --git a/libavutil/crc.h b/ffmpeg-y/libavutil/crc.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/crc.h rename to ffmpeg-y/libavutil/crc.h diff --git a/libavutil/cuda_check.h b/ffmpeg-y/libavutil/cuda_check.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/cuda_check.h rename to ffmpeg-y/libavutil/cuda_check.h diff --git a/libavutil/des.c b/ffmpeg-y/libavutil/des.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/des.c rename to ffmpeg-y/libavutil/des.c diff --git a/libavutil/des.h b/ffmpeg-y/libavutil/des.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/des.h rename to ffmpeg-y/libavutil/des.h diff --git a/libavutil/dict.c b/ffmpeg-y/libavutil/dict.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/dict.c rename to ffmpeg-y/libavutil/dict.c diff --git a/libavutil/dict.h b/ffmpeg-y/libavutil/dict.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/dict.h rename to ffmpeg-y/libavutil/dict.h diff --git a/libavutil/display.c b/ffmpeg-y/libavutil/display.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/display.c rename to ffmpeg-y/libavutil/display.c diff --git a/libavutil/display.h b/ffmpeg-y/libavutil/display.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/display.h rename to ffmpeg-y/libavutil/display.h diff --git a/libavutil/downmix_info.c b/ffmpeg-y/libavutil/downmix_info.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/downmix_info.c rename to ffmpeg-y/libavutil/downmix_info.c diff --git a/libavutil/downmix_info.h b/ffmpeg-y/libavutil/downmix_info.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/downmix_info.h rename to ffmpeg-y/libavutil/downmix_info.h diff --git a/libavutil/dynarray.h b/ffmpeg-y/libavutil/dynarray.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/dynarray.h rename to ffmpeg-y/libavutil/dynarray.h diff --git a/libavutil/encryption_info.c b/ffmpeg-y/libavutil/encryption_info.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/encryption_info.c rename to ffmpeg-y/libavutil/encryption_info.c diff --git a/libavutil/encryption_info.h b/ffmpeg-y/libavutil/encryption_info.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/encryption_info.h rename to ffmpeg-y/libavutil/encryption_info.h diff --git a/libavutil/error.c b/ffmpeg-y/libavutil/error.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/error.c rename to ffmpeg-y/libavutil/error.c diff --git a/libavutil/error.h b/ffmpeg-y/libavutil/error.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/error.h rename to ffmpeg-y/libavutil/error.h diff --git a/libavutil/eval.c b/ffmpeg-y/libavutil/eval.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/eval.c rename to ffmpeg-y/libavutil/eval.c diff --git a/libavutil/eval.h b/ffmpeg-y/libavutil/eval.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/eval.h rename to ffmpeg-y/libavutil/eval.h diff --git a/libavutil/ffmath.h b/ffmpeg-y/libavutil/ffmath.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ffmath.h rename to ffmpeg-y/libavutil/ffmath.h diff --git a/libavutil/fifo.c b/ffmpeg-y/libavutil/fifo.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/fifo.c rename to ffmpeg-y/libavutil/fifo.c diff --git a/libavutil/fifo.h b/ffmpeg-y/libavutil/fifo.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/fifo.h rename to ffmpeg-y/libavutil/fifo.h diff --git a/libavutil/file.c b/ffmpeg-y/libavutil/file.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/file.c rename to ffmpeg-y/libavutil/file.c diff --git a/libavutil/file.h b/ffmpeg-y/libavutil/file.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/file.h rename to ffmpeg-y/libavutil/file.h diff --git a/libavutil/file_open.c b/ffmpeg-y/libavutil/file_open.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/file_open.c rename to ffmpeg-y/libavutil/file_open.c diff --git a/libavutil/fixed_dsp.c b/ffmpeg-y/libavutil/fixed_dsp.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/fixed_dsp.c rename to ffmpeg-y/libavutil/fixed_dsp.c diff --git a/libavutil/fixed_dsp.h b/ffmpeg-y/libavutil/fixed_dsp.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/fixed_dsp.h rename to ffmpeg-y/libavutil/fixed_dsp.h diff --git a/libavutil/float_dsp.c b/ffmpeg-y/libavutil/float_dsp.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/float_dsp.c rename to ffmpeg-y/libavutil/float_dsp.c diff --git a/libavutil/float_dsp.h b/ffmpeg-y/libavutil/float_dsp.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/float_dsp.h rename to ffmpeg-y/libavutil/float_dsp.h diff --git a/libavutil/frame.c b/ffmpeg-y/libavutil/frame.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/frame.c rename to ffmpeg-y/libavutil/frame.c diff --git a/libavutil/frame.h b/ffmpeg-y/libavutil/frame.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/frame.h rename to ffmpeg-y/libavutil/frame.h diff --git a/libavutil/hash.c b/ffmpeg-y/libavutil/hash.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hash.c rename to ffmpeg-y/libavutil/hash.c diff --git a/libavutil/hash.h b/ffmpeg-y/libavutil/hash.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hash.h rename to ffmpeg-y/libavutil/hash.h diff --git a/libavutil/hdr_dynamic_metadata.c b/ffmpeg-y/libavutil/hdr_dynamic_metadata.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hdr_dynamic_metadata.c rename to ffmpeg-y/libavutil/hdr_dynamic_metadata.c diff --git a/libavutil/hdr_dynamic_metadata.h b/ffmpeg-y/libavutil/hdr_dynamic_metadata.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hdr_dynamic_metadata.h rename to ffmpeg-y/libavutil/hdr_dynamic_metadata.h diff --git a/libavutil/hmac.c b/ffmpeg-y/libavutil/hmac.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hmac.c rename to ffmpeg-y/libavutil/hmac.c diff --git a/libavutil/hmac.h b/ffmpeg-y/libavutil/hmac.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hmac.h rename to ffmpeg-y/libavutil/hmac.h diff --git a/libavutil/hwcontext.c b/ffmpeg-y/libavutil/hwcontext.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext.c rename to ffmpeg-y/libavutil/hwcontext.c diff --git a/libavutil/hwcontext.h b/ffmpeg-y/libavutil/hwcontext.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext.h rename to ffmpeg-y/libavutil/hwcontext.h diff --git a/libavutil/hwcontext_cuda.c b/ffmpeg-y/libavutil/hwcontext_cuda.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_cuda.c rename to ffmpeg-y/libavutil/hwcontext_cuda.c diff --git a/libavutil/hwcontext_cuda.h b/ffmpeg-y/libavutil/hwcontext_cuda.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_cuda.h rename to ffmpeg-y/libavutil/hwcontext_cuda.h diff --git a/libavutil/hwcontext_cuda_internal.h b/ffmpeg-y/libavutil/hwcontext_cuda_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_cuda_internal.h rename to ffmpeg-y/libavutil/hwcontext_cuda_internal.h diff --git a/libavutil/hwcontext_d3d11va.c b/ffmpeg-y/libavutil/hwcontext_d3d11va.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_d3d11va.c rename to ffmpeg-y/libavutil/hwcontext_d3d11va.c diff --git a/libavutil/hwcontext_d3d11va.h b/ffmpeg-y/libavutil/hwcontext_d3d11va.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_d3d11va.h rename to ffmpeg-y/libavutil/hwcontext_d3d11va.h diff --git a/libavutil/hwcontext_drm.c b/ffmpeg-y/libavutil/hwcontext_drm.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_drm.c rename to ffmpeg-y/libavutil/hwcontext_drm.c diff --git a/libavutil/hwcontext_drm.h b/ffmpeg-y/libavutil/hwcontext_drm.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_drm.h rename to ffmpeg-y/libavutil/hwcontext_drm.h diff --git a/libavutil/hwcontext_dxva2.c b/ffmpeg-y/libavutil/hwcontext_dxva2.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_dxva2.c rename to ffmpeg-y/libavutil/hwcontext_dxva2.c diff --git a/libavutil/hwcontext_dxva2.h b/ffmpeg-y/libavutil/hwcontext_dxva2.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_dxva2.h rename to ffmpeg-y/libavutil/hwcontext_dxva2.h diff --git a/libavutil/hwcontext_internal.h b/ffmpeg-y/libavutil/hwcontext_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_internal.h rename to ffmpeg-y/libavutil/hwcontext_internal.h diff --git a/libavutil/hwcontext_mediacodec.c b/ffmpeg-y/libavutil/hwcontext_mediacodec.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_mediacodec.c rename to ffmpeg-y/libavutil/hwcontext_mediacodec.c diff --git a/libavutil/hwcontext_mediacodec.h b/ffmpeg-y/libavutil/hwcontext_mediacodec.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_mediacodec.h rename to ffmpeg-y/libavutil/hwcontext_mediacodec.h diff --git a/libavutil/hwcontext_opencl.c b/ffmpeg-y/libavutil/hwcontext_opencl.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_opencl.c rename to ffmpeg-y/libavutil/hwcontext_opencl.c diff --git a/libavutil/hwcontext_opencl.h b/ffmpeg-y/libavutil/hwcontext_opencl.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_opencl.h rename to ffmpeg-y/libavutil/hwcontext_opencl.h diff --git a/libavutil/hwcontext_qsv.c b/ffmpeg-y/libavutil/hwcontext_qsv.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_qsv.c rename to ffmpeg-y/libavutil/hwcontext_qsv.c diff --git a/libavutil/hwcontext_qsv.h b/ffmpeg-y/libavutil/hwcontext_qsv.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_qsv.h rename to ffmpeg-y/libavutil/hwcontext_qsv.h diff --git a/libavutil/hwcontext_vaapi.c b/ffmpeg-y/libavutil/hwcontext_vaapi.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_vaapi.c rename to ffmpeg-y/libavutil/hwcontext_vaapi.c diff --git a/libavutil/hwcontext_vaapi.h b/ffmpeg-y/libavutil/hwcontext_vaapi.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_vaapi.h rename to ffmpeg-y/libavutil/hwcontext_vaapi.h diff --git a/libavutil/hwcontext_vdpau.c b/ffmpeg-y/libavutil/hwcontext_vdpau.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_vdpau.c rename to ffmpeg-y/libavutil/hwcontext_vdpau.c diff --git a/libavutil/hwcontext_vdpau.h b/ffmpeg-y/libavutil/hwcontext_vdpau.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_vdpau.h rename to ffmpeg-y/libavutil/hwcontext_vdpau.h diff --git a/libavutil/hwcontext_videotoolbox.c b/ffmpeg-y/libavutil/hwcontext_videotoolbox.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_videotoolbox.c rename to ffmpeg-y/libavutil/hwcontext_videotoolbox.c diff --git a/libavutil/hwcontext_videotoolbox.h b/ffmpeg-y/libavutil/hwcontext_videotoolbox.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/hwcontext_videotoolbox.h rename to ffmpeg-y/libavutil/hwcontext_videotoolbox.h diff --git a/libavutil/imgutils.c b/ffmpeg-y/libavutil/imgutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/imgutils.c rename to ffmpeg-y/libavutil/imgutils.c diff --git a/libavutil/imgutils.h b/ffmpeg-y/libavutil/imgutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/imgutils.h rename to ffmpeg-y/libavutil/imgutils.h diff --git a/libavutil/imgutils_internal.h b/ffmpeg-y/libavutil/imgutils_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/imgutils_internal.h rename to ffmpeg-y/libavutil/imgutils_internal.h diff --git a/libavutil/integer.c b/ffmpeg-y/libavutil/integer.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/integer.c rename to ffmpeg-y/libavutil/integer.c diff --git a/libavutil/integer.h b/ffmpeg-y/libavutil/integer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/integer.h rename to ffmpeg-y/libavutil/integer.h diff --git a/libavutil/internal.h b/ffmpeg-y/libavutil/internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/internal.h rename to ffmpeg-y/libavutil/internal.h diff --git a/libavutil/intfloat.h b/ffmpeg-y/libavutil/intfloat.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/intfloat.h rename to ffmpeg-y/libavutil/intfloat.h diff --git a/libavutil/intmath.c b/ffmpeg-y/libavutil/intmath.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/intmath.c rename to ffmpeg-y/libavutil/intmath.c diff --git a/libavutil/intmath.h b/ffmpeg-y/libavutil/intmath.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/intmath.h rename to ffmpeg-y/libavutil/intmath.h diff --git a/libavutil/intreadwrite.h b/ffmpeg-y/libavutil/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/intreadwrite.h rename to ffmpeg-y/libavutil/intreadwrite.h diff --git a/libavutil/lfg.c b/ffmpeg-y/libavutil/lfg.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/lfg.c rename to ffmpeg-y/libavutil/lfg.c diff --git a/libavutil/lfg.h b/ffmpeg-y/libavutil/lfg.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/lfg.h rename to ffmpeg-y/libavutil/lfg.h diff --git a/libavutil/libavutil.v b/ffmpeg-y/libavutil/libavutil.v old mode 100644 new mode 100755 similarity index 100% rename from libavutil/libavutil.v rename to ffmpeg-y/libavutil/libavutil.v diff --git a/libavutil/libm.h b/ffmpeg-y/libavutil/libm.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/libm.h rename to ffmpeg-y/libavutil/libm.h diff --git a/libavutil/lls.c b/ffmpeg-y/libavutil/lls.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/lls.c rename to ffmpeg-y/libavutil/lls.c diff --git a/libavutil/lls.h b/ffmpeg-y/libavutil/lls.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/lls.h rename to ffmpeg-y/libavutil/lls.h diff --git a/libavutil/log.c b/ffmpeg-y/libavutil/log.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/log.c rename to ffmpeg-y/libavutil/log.c diff --git a/libavutil/log.h b/ffmpeg-y/libavutil/log.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/log.h rename to ffmpeg-y/libavutil/log.h diff --git a/libavutil/log2_tab.c b/ffmpeg-y/libavutil/log2_tab.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/log2_tab.c rename to ffmpeg-y/libavutil/log2_tab.c diff --git a/libavutil/lzo.c b/ffmpeg-y/libavutil/lzo.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/lzo.c rename to ffmpeg-y/libavutil/lzo.c diff --git a/libavutil/lzo.h b/ffmpeg-y/libavutil/lzo.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/lzo.h rename to ffmpeg-y/libavutil/lzo.h diff --git a/libavutil/macros.h b/ffmpeg-y/libavutil/macros.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/macros.h rename to ffmpeg-y/libavutil/macros.h diff --git a/libavutil/mastering_display_metadata.c b/ffmpeg-y/libavutil/mastering_display_metadata.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mastering_display_metadata.c rename to ffmpeg-y/libavutil/mastering_display_metadata.c diff --git a/libavutil/mastering_display_metadata.h b/ffmpeg-y/libavutil/mastering_display_metadata.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mastering_display_metadata.h rename to ffmpeg-y/libavutil/mastering_display_metadata.h diff --git a/libavutil/mathematics.c b/ffmpeg-y/libavutil/mathematics.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mathematics.c rename to ffmpeg-y/libavutil/mathematics.c diff --git a/libavutil/mathematics.h b/ffmpeg-y/libavutil/mathematics.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mathematics.h rename to ffmpeg-y/libavutil/mathematics.h diff --git a/libavutil/md5.c b/ffmpeg-y/libavutil/md5.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/md5.c rename to ffmpeg-y/libavutil/md5.c diff --git a/libavutil/md5.h b/ffmpeg-y/libavutil/md5.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/md5.h rename to ffmpeg-y/libavutil/md5.h diff --git a/libavutil/mem.c b/ffmpeg-y/libavutil/mem.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mem.c rename to ffmpeg-y/libavutil/mem.c diff --git a/libavutil/mem.h b/ffmpeg-y/libavutil/mem.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mem.h rename to ffmpeg-y/libavutil/mem.h diff --git a/libavutil/mem_internal.h b/ffmpeg-y/libavutil/mem_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mem_internal.h rename to ffmpeg-y/libavutil/mem_internal.h diff --git a/libavutil/mips/Makefile b/ffmpeg-y/libavutil/mips/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/Makefile rename to ffmpeg-y/libavutil/mips/Makefile diff --git a/libavutil/mips/asmdefs.h b/ffmpeg-y/libavutil/mips/asmdefs.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/asmdefs.h rename to ffmpeg-y/libavutil/mips/asmdefs.h diff --git a/libavutil/mips/float_dsp_mips.c b/ffmpeg-y/libavutil/mips/float_dsp_mips.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/float_dsp_mips.c rename to ffmpeg-y/libavutil/mips/float_dsp_mips.c diff --git a/libavutil/mips/generic_macros_msa.h b/ffmpeg-y/libavutil/mips/generic_macros_msa.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/generic_macros_msa.h rename to ffmpeg-y/libavutil/mips/generic_macros_msa.h diff --git a/libavutil/mips/intreadwrite.h b/ffmpeg-y/libavutil/mips/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/intreadwrite.h rename to ffmpeg-y/libavutil/mips/intreadwrite.h diff --git a/libavutil/mips/libm_mips.h b/ffmpeg-y/libavutil/mips/libm_mips.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/libm_mips.h rename to ffmpeg-y/libavutil/mips/libm_mips.h diff --git a/libavutil/mips/mmiutils.h b/ffmpeg-y/libavutil/mips/mmiutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/mips/mmiutils.h rename to ffmpeg-y/libavutil/mips/mmiutils.h diff --git a/libavutil/motion_vector.h b/ffmpeg-y/libavutil/motion_vector.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/motion_vector.h rename to ffmpeg-y/libavutil/motion_vector.h diff --git a/libavutil/murmur3.c b/ffmpeg-y/libavutil/murmur3.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/murmur3.c rename to ffmpeg-y/libavutil/murmur3.c diff --git a/libavutil/murmur3.h b/ffmpeg-y/libavutil/murmur3.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/murmur3.h rename to ffmpeg-y/libavutil/murmur3.h diff --git a/libavutil/opt.c b/ffmpeg-y/libavutil/opt.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/opt.c rename to ffmpeg-y/libavutil/opt.c diff --git a/libavutil/opt.h b/ffmpeg-y/libavutil/opt.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/opt.h rename to ffmpeg-y/libavutil/opt.h diff --git a/libavutil/parseutils.c b/ffmpeg-y/libavutil/parseutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/parseutils.c rename to ffmpeg-y/libavutil/parseutils.c diff --git a/libavutil/parseutils.h b/ffmpeg-y/libavutil/parseutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/parseutils.h rename to ffmpeg-y/libavutil/parseutils.h diff --git a/libavutil/pca.c b/ffmpeg-y/libavutil/pca.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pca.c rename to ffmpeg-y/libavutil/pca.c diff --git a/libavutil/pca.h b/ffmpeg-y/libavutil/pca.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pca.h rename to ffmpeg-y/libavutil/pca.h diff --git a/libavutil/pixdesc.c b/ffmpeg-y/libavutil/pixdesc.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pixdesc.c rename to ffmpeg-y/libavutil/pixdesc.c diff --git a/libavutil/pixdesc.h b/ffmpeg-y/libavutil/pixdesc.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pixdesc.h rename to ffmpeg-y/libavutil/pixdesc.h diff --git a/libavutil/pixelutils.c b/ffmpeg-y/libavutil/pixelutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pixelutils.c rename to ffmpeg-y/libavutil/pixelutils.c diff --git a/libavutil/pixelutils.h b/ffmpeg-y/libavutil/pixelutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pixelutils.h rename to ffmpeg-y/libavutil/pixelutils.h diff --git a/libavutil/pixfmt.h b/ffmpeg-y/libavutil/pixfmt.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/pixfmt.h rename to ffmpeg-y/libavutil/pixfmt.h diff --git a/libavutil/ppc/Makefile b/ffmpeg-y/libavutil/ppc/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/Makefile rename to ffmpeg-y/libavutil/ppc/Makefile diff --git a/libavutil/ppc/cpu.c b/ffmpeg-y/libavutil/ppc/cpu.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/cpu.c rename to ffmpeg-y/libavutil/ppc/cpu.c diff --git a/libavutil/ppc/cpu.h b/ffmpeg-y/libavutil/ppc/cpu.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/cpu.h rename to ffmpeg-y/libavutil/ppc/cpu.h diff --git a/libavutil/ppc/float_dsp_altivec.c b/ffmpeg-y/libavutil/ppc/float_dsp_altivec.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/float_dsp_altivec.c rename to ffmpeg-y/libavutil/ppc/float_dsp_altivec.c diff --git a/libavutil/ppc/float_dsp_altivec.h b/ffmpeg-y/libavutil/ppc/float_dsp_altivec.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/float_dsp_altivec.h rename to ffmpeg-y/libavutil/ppc/float_dsp_altivec.h diff --git a/libavutil/ppc/float_dsp_init.c b/ffmpeg-y/libavutil/ppc/float_dsp_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/float_dsp_init.c rename to ffmpeg-y/libavutil/ppc/float_dsp_init.c diff --git a/libavutil/ppc/float_dsp_vsx.c b/ffmpeg-y/libavutil/ppc/float_dsp_vsx.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/float_dsp_vsx.c rename to ffmpeg-y/libavutil/ppc/float_dsp_vsx.c diff --git a/libavutil/ppc/float_dsp_vsx.h b/ffmpeg-y/libavutil/ppc/float_dsp_vsx.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/float_dsp_vsx.h rename to ffmpeg-y/libavutil/ppc/float_dsp_vsx.h diff --git a/libavutil/ppc/intreadwrite.h b/ffmpeg-y/libavutil/ppc/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/intreadwrite.h rename to ffmpeg-y/libavutil/ppc/intreadwrite.h diff --git a/libavutil/ppc/timer.h b/ffmpeg-y/libavutil/ppc/timer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/timer.h rename to ffmpeg-y/libavutil/ppc/timer.h diff --git a/libavutil/ppc/util_altivec.h b/ffmpeg-y/libavutil/ppc/util_altivec.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ppc/util_altivec.h rename to ffmpeg-y/libavutil/ppc/util_altivec.h diff --git a/libavutil/qsort.h b/ffmpeg-y/libavutil/qsort.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/qsort.h rename to ffmpeg-y/libavutil/qsort.h diff --git a/libavutil/random_seed.c b/ffmpeg-y/libavutil/random_seed.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/random_seed.c rename to ffmpeg-y/libavutil/random_seed.c diff --git a/libavutil/random_seed.h b/ffmpeg-y/libavutil/random_seed.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/random_seed.h rename to ffmpeg-y/libavutil/random_seed.h diff --git a/libavutil/rational.c b/ffmpeg-y/libavutil/rational.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/rational.c rename to ffmpeg-y/libavutil/rational.c diff --git a/libavutil/rational.h b/ffmpeg-y/libavutil/rational.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/rational.h rename to ffmpeg-y/libavutil/rational.h diff --git a/libavutil/rc4.c b/ffmpeg-y/libavutil/rc4.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/rc4.c rename to ffmpeg-y/libavutil/rc4.c diff --git a/libavutil/rc4.h b/ffmpeg-y/libavutil/rc4.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/rc4.h rename to ffmpeg-y/libavutil/rc4.h diff --git a/libavutil/replaygain.h b/ffmpeg-y/libavutil/replaygain.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/replaygain.h rename to ffmpeg-y/libavutil/replaygain.h diff --git a/libavutil/reverse.c b/ffmpeg-y/libavutil/reverse.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/reverse.c rename to ffmpeg-y/libavutil/reverse.c diff --git a/libavutil/reverse.h b/ffmpeg-y/libavutil/reverse.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/reverse.h rename to ffmpeg-y/libavutil/reverse.h diff --git a/libavutil/ripemd.c b/ffmpeg-y/libavutil/ripemd.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ripemd.c rename to ffmpeg-y/libavutil/ripemd.c diff --git a/libavutil/ripemd.h b/ffmpeg-y/libavutil/ripemd.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/ripemd.h rename to ffmpeg-y/libavutil/ripemd.h diff --git a/libavutil/samplefmt.c b/ffmpeg-y/libavutil/samplefmt.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/samplefmt.c rename to ffmpeg-y/libavutil/samplefmt.c diff --git a/libavutil/samplefmt.h b/ffmpeg-y/libavutil/samplefmt.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/samplefmt.h rename to ffmpeg-y/libavutil/samplefmt.h diff --git a/libavutil/sh4/bswap.h b/ffmpeg-y/libavutil/sh4/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/sh4/bswap.h rename to ffmpeg-y/libavutil/sh4/bswap.h diff --git a/libavutil/sha.c b/ffmpeg-y/libavutil/sha.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/sha.c rename to ffmpeg-y/libavutil/sha.c diff --git a/libavutil/sha.h b/ffmpeg-y/libavutil/sha.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/sha.h rename to ffmpeg-y/libavutil/sha.h diff --git a/libavutil/sha512.c b/ffmpeg-y/libavutil/sha512.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/sha512.c rename to ffmpeg-y/libavutil/sha512.c diff --git a/libavutil/sha512.h b/ffmpeg-y/libavutil/sha512.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/sha512.h rename to ffmpeg-y/libavutil/sha512.h diff --git a/libavutil/slicethread.c b/ffmpeg-y/libavutil/slicethread.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/slicethread.c rename to ffmpeg-y/libavutil/slicethread.c diff --git a/libavutil/slicethread.h b/ffmpeg-y/libavutil/slicethread.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/slicethread.h rename to ffmpeg-y/libavutil/slicethread.h diff --git a/libavutil/softfloat.h b/ffmpeg-y/libavutil/softfloat.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/softfloat.h rename to ffmpeg-y/libavutil/softfloat.h diff --git a/libavutil/softfloat_ieee754.h b/ffmpeg-y/libavutil/softfloat_ieee754.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/softfloat_ieee754.h rename to ffmpeg-y/libavutil/softfloat_ieee754.h diff --git a/libavutil/softfloat_tables.h b/ffmpeg-y/libavutil/softfloat_tables.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/softfloat_tables.h rename to ffmpeg-y/libavutil/softfloat_tables.h diff --git a/libavutil/spherical.c b/ffmpeg-y/libavutil/spherical.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/spherical.c rename to ffmpeg-y/libavutil/spherical.c diff --git a/libavutil/spherical.h b/ffmpeg-y/libavutil/spherical.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/spherical.h rename to ffmpeg-y/libavutil/spherical.h diff --git a/libavutil/stereo3d.c b/ffmpeg-y/libavutil/stereo3d.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/stereo3d.c rename to ffmpeg-y/libavutil/stereo3d.c diff --git a/libavutil/stereo3d.h b/ffmpeg-y/libavutil/stereo3d.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/stereo3d.h rename to ffmpeg-y/libavutil/stereo3d.h diff --git a/libavutil/tablegen.h b/ffmpeg-y/libavutil/tablegen.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tablegen.h rename to ffmpeg-y/libavutil/tablegen.h diff --git a/libavutil/tea.c b/ffmpeg-y/libavutil/tea.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tea.c rename to ffmpeg-y/libavutil/tea.c diff --git a/libavutil/tea.h b/ffmpeg-y/libavutil/tea.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tea.h rename to ffmpeg-y/libavutil/tea.h diff --git a/libavutil/tests/adler32.c b/ffmpeg-y/libavutil/tests/adler32.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/adler32.c rename to ffmpeg-y/libavutil/tests/adler32.c diff --git a/libavutil/tests/aes.c b/ffmpeg-y/libavutil/tests/aes.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/aes.c rename to ffmpeg-y/libavutil/tests/aes.c diff --git a/libavutil/tests/aes_ctr.c b/ffmpeg-y/libavutil/tests/aes_ctr.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/aes_ctr.c rename to ffmpeg-y/libavutil/tests/aes_ctr.c diff --git a/libavutil/tests/audio_fifo.c b/ffmpeg-y/libavutil/tests/audio_fifo.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/audio_fifo.c rename to ffmpeg-y/libavutil/tests/audio_fifo.c diff --git a/libavutil/tests/avstring.c b/ffmpeg-y/libavutil/tests/avstring.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/avstring.c rename to ffmpeg-y/libavutil/tests/avstring.c diff --git a/libavutil/tests/base64.c b/ffmpeg-y/libavutil/tests/base64.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/base64.c rename to ffmpeg-y/libavutil/tests/base64.c diff --git a/libavutil/tests/blowfish.c b/ffmpeg-y/libavutil/tests/blowfish.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/blowfish.c rename to ffmpeg-y/libavutil/tests/blowfish.c diff --git a/libavutil/tests/bprint.c b/ffmpeg-y/libavutil/tests/bprint.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/bprint.c rename to ffmpeg-y/libavutil/tests/bprint.c diff --git a/libavutil/tests/camellia.c b/ffmpeg-y/libavutil/tests/camellia.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/camellia.c rename to ffmpeg-y/libavutil/tests/camellia.c diff --git a/libavutil/tests/cast5.c b/ffmpeg-y/libavutil/tests/cast5.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/cast5.c rename to ffmpeg-y/libavutil/tests/cast5.c diff --git a/libavutil/tests/color_utils.c b/ffmpeg-y/libavutil/tests/color_utils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/color_utils.c rename to ffmpeg-y/libavutil/tests/color_utils.c diff --git a/libavutil/tests/cpu.c b/ffmpeg-y/libavutil/tests/cpu.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/cpu.c rename to ffmpeg-y/libavutil/tests/cpu.c diff --git a/libavutil/tests/cpu_init.c b/ffmpeg-y/libavutil/tests/cpu_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/cpu_init.c rename to ffmpeg-y/libavutil/tests/cpu_init.c diff --git a/libavutil/tests/crc.c b/ffmpeg-y/libavutil/tests/crc.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/crc.c rename to ffmpeg-y/libavutil/tests/crc.c diff --git a/libavutil/tests/des.c b/ffmpeg-y/libavutil/tests/des.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/des.c rename to ffmpeg-y/libavutil/tests/des.c diff --git a/libavutil/tests/dict.c b/ffmpeg-y/libavutil/tests/dict.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/dict.c rename to ffmpeg-y/libavutil/tests/dict.c diff --git a/libavutil/tests/display.c b/ffmpeg-y/libavutil/tests/display.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/display.c rename to ffmpeg-y/libavutil/tests/display.c diff --git a/libavutil/tests/encryption_info.c b/ffmpeg-y/libavutil/tests/encryption_info.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/encryption_info.c rename to ffmpeg-y/libavutil/tests/encryption_info.c diff --git a/libavutil/tests/error.c b/ffmpeg-y/libavutil/tests/error.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/error.c rename to ffmpeg-y/libavutil/tests/error.c diff --git a/libavutil/tests/eval.c b/ffmpeg-y/libavutil/tests/eval.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/eval.c rename to ffmpeg-y/libavutil/tests/eval.c diff --git a/libavutil/tests/fifo.c b/ffmpeg-y/libavutil/tests/fifo.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/fifo.c rename to ffmpeg-y/libavutil/tests/fifo.c diff --git a/libavutil/tests/file.c b/ffmpeg-y/libavutil/tests/file.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/file.c rename to ffmpeg-y/libavutil/tests/file.c diff --git a/libavutil/tests/hash.c b/ffmpeg-y/libavutil/tests/hash.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/hash.c rename to ffmpeg-y/libavutil/tests/hash.c diff --git a/libavutil/tests/hmac.c b/ffmpeg-y/libavutil/tests/hmac.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/hmac.c rename to ffmpeg-y/libavutil/tests/hmac.c diff --git a/libavutil/tests/hwdevice.c b/ffmpeg-y/libavutil/tests/hwdevice.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/hwdevice.c rename to ffmpeg-y/libavutil/tests/hwdevice.c diff --git a/libavutil/tests/imgutils.c b/ffmpeg-y/libavutil/tests/imgutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/imgutils.c rename to ffmpeg-y/libavutil/tests/imgutils.c diff --git a/libavutil/tests/integer.c b/ffmpeg-y/libavutil/tests/integer.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/integer.c rename to ffmpeg-y/libavutil/tests/integer.c diff --git a/libavutil/tests/lfg.c b/ffmpeg-y/libavutil/tests/lfg.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/lfg.c rename to ffmpeg-y/libavutil/tests/lfg.c diff --git a/libavutil/tests/lls.c b/ffmpeg-y/libavutil/tests/lls.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/lls.c rename to ffmpeg-y/libavutil/tests/lls.c diff --git a/libavutil/tests/log.c b/ffmpeg-y/libavutil/tests/log.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/log.c rename to ffmpeg-y/libavutil/tests/log.c diff --git a/libavutil/tests/lzo.c b/ffmpeg-y/libavutil/tests/lzo.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/lzo.c rename to ffmpeg-y/libavutil/tests/lzo.c diff --git a/libavutil/tests/md5.c b/ffmpeg-y/libavutil/tests/md5.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/md5.c rename to ffmpeg-y/libavutil/tests/md5.c diff --git a/libavutil/tests/murmur3.c b/ffmpeg-y/libavutil/tests/murmur3.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/murmur3.c rename to ffmpeg-y/libavutil/tests/murmur3.c diff --git a/libavutil/tests/opt.c b/ffmpeg-y/libavutil/tests/opt.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/opt.c rename to ffmpeg-y/libavutil/tests/opt.c diff --git a/libavutil/tests/parseutils.c b/ffmpeg-y/libavutil/tests/parseutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/parseutils.c rename to ffmpeg-y/libavutil/tests/parseutils.c diff --git a/libavutil/tests/pca.c b/ffmpeg-y/libavutil/tests/pca.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/pca.c rename to ffmpeg-y/libavutil/tests/pca.c diff --git a/libavutil/tests/pixdesc.c b/ffmpeg-y/libavutil/tests/pixdesc.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/pixdesc.c rename to ffmpeg-y/libavutil/tests/pixdesc.c diff --git a/libavutil/tests/pixelutils.c b/ffmpeg-y/libavutil/tests/pixelutils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/pixelutils.c rename to ffmpeg-y/libavutil/tests/pixelutils.c diff --git a/libavutil/tests/pixfmt_best.c b/ffmpeg-y/libavutil/tests/pixfmt_best.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/pixfmt_best.c rename to ffmpeg-y/libavutil/tests/pixfmt_best.c diff --git a/libavutil/tests/random_seed.c b/ffmpeg-y/libavutil/tests/random_seed.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/random_seed.c rename to ffmpeg-y/libavutil/tests/random_seed.c diff --git a/libavutil/tests/rational.c b/ffmpeg-y/libavutil/tests/rational.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/rational.c rename to ffmpeg-y/libavutil/tests/rational.c diff --git a/libavutil/tests/ripemd.c b/ffmpeg-y/libavutil/tests/ripemd.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/ripemd.c rename to ffmpeg-y/libavutil/tests/ripemd.c diff --git a/libavutil/tests/sha.c b/ffmpeg-y/libavutil/tests/sha.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/sha.c rename to ffmpeg-y/libavutil/tests/sha.c diff --git a/libavutil/tests/sha512.c b/ffmpeg-y/libavutil/tests/sha512.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/sha512.c rename to ffmpeg-y/libavutil/tests/sha512.c diff --git a/libavutil/tests/softfloat.c b/ffmpeg-y/libavutil/tests/softfloat.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/softfloat.c rename to ffmpeg-y/libavutil/tests/softfloat.c diff --git a/libavutil/tests/tea.c b/ffmpeg-y/libavutil/tests/tea.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/tea.c rename to ffmpeg-y/libavutil/tests/tea.c diff --git a/libavutil/tests/tree.c b/ffmpeg-y/libavutil/tests/tree.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/tree.c rename to ffmpeg-y/libavutil/tests/tree.c diff --git a/libavutil/tests/twofish.c b/ffmpeg-y/libavutil/tests/twofish.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/twofish.c rename to ffmpeg-y/libavutil/tests/twofish.c diff --git a/libavutil/tests/utf8.c b/ffmpeg-y/libavutil/tests/utf8.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/utf8.c rename to ffmpeg-y/libavutil/tests/utf8.c diff --git a/libavutil/tests/xtea.c b/ffmpeg-y/libavutil/tests/xtea.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tests/xtea.c rename to ffmpeg-y/libavutil/tests/xtea.c diff --git a/libavutil/thread.h b/ffmpeg-y/libavutil/thread.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/thread.h rename to ffmpeg-y/libavutil/thread.h diff --git a/libavutil/threadmessage.c b/ffmpeg-y/libavutil/threadmessage.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/threadmessage.c rename to ffmpeg-y/libavutil/threadmessage.c diff --git a/libavutil/threadmessage.h b/ffmpeg-y/libavutil/threadmessage.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/threadmessage.h rename to ffmpeg-y/libavutil/threadmessage.h diff --git a/libavutil/time.c b/ffmpeg-y/libavutil/time.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/time.c rename to ffmpeg-y/libavutil/time.c diff --git a/libavutil/time.h b/ffmpeg-y/libavutil/time.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/time.h rename to ffmpeg-y/libavutil/time.h diff --git a/libavutil/time_internal.h b/ffmpeg-y/libavutil/time_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/time_internal.h rename to ffmpeg-y/libavutil/time_internal.h diff --git a/libavutil/timecode.c b/ffmpeg-y/libavutil/timecode.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/timecode.c rename to ffmpeg-y/libavutil/timecode.c diff --git a/libavutil/timecode.h b/ffmpeg-y/libavutil/timecode.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/timecode.h rename to ffmpeg-y/libavutil/timecode.h diff --git a/libavutil/timer.h b/ffmpeg-y/libavutil/timer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/timer.h rename to ffmpeg-y/libavutil/timer.h diff --git a/libavutil/timestamp.h b/ffmpeg-y/libavutil/timestamp.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/timestamp.h rename to ffmpeg-y/libavutil/timestamp.h diff --git a/libavutil/tomi/intreadwrite.h b/ffmpeg-y/libavutil/tomi/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tomi/intreadwrite.h rename to ffmpeg-y/libavutil/tomi/intreadwrite.h diff --git a/libavutil/tree.c b/ffmpeg-y/libavutil/tree.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tree.c rename to ffmpeg-y/libavutil/tree.c diff --git a/libavutil/tree.h b/ffmpeg-y/libavutil/tree.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tree.h rename to ffmpeg-y/libavutil/tree.h diff --git a/libavutil/twofish.c b/ffmpeg-y/libavutil/twofish.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/twofish.c rename to ffmpeg-y/libavutil/twofish.c diff --git a/libavutil/twofish.h b/ffmpeg-y/libavutil/twofish.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/twofish.h rename to ffmpeg-y/libavutil/twofish.h diff --git a/libavutil/tx.c b/ffmpeg-y/libavutil/tx.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tx.c rename to ffmpeg-y/libavutil/tx.c diff --git a/libavutil/tx.h b/ffmpeg-y/libavutil/tx.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/tx.h rename to ffmpeg-y/libavutil/tx.h diff --git a/libavutil/utils.c b/ffmpeg-y/libavutil/utils.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/utils.c rename to ffmpeg-y/libavutil/utils.c diff --git a/libavutil/version.h b/ffmpeg-y/libavutil/version.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/version.h rename to ffmpeg-y/libavutil/version.h diff --git a/libavutil/wchar_filename.h b/ffmpeg-y/libavutil/wchar_filename.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/wchar_filename.h rename to ffmpeg-y/libavutil/wchar_filename.h diff --git a/libavutil/x86/Makefile b/ffmpeg-y/libavutil/x86/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/Makefile rename to ffmpeg-y/libavutil/x86/Makefile diff --git a/libavutil/x86/asm.h b/ffmpeg-y/libavutil/x86/asm.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/asm.h rename to ffmpeg-y/libavutil/x86/asm.h diff --git a/libavutil/x86/bswap.h b/ffmpeg-y/libavutil/x86/bswap.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/bswap.h rename to ffmpeg-y/libavutil/x86/bswap.h diff --git a/libavutil/x86/cpu.c b/ffmpeg-y/libavutil/x86/cpu.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/cpu.c rename to ffmpeg-y/libavutil/x86/cpu.c diff --git a/libavutil/x86/cpu.h b/ffmpeg-y/libavutil/x86/cpu.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/cpu.h rename to ffmpeg-y/libavutil/x86/cpu.h diff --git a/libavutil/x86/emms.h b/ffmpeg-y/libavutil/x86/emms.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/emms.h rename to ffmpeg-y/libavutil/x86/emms.h diff --git a/libavutil/x86/fixed_dsp_init.c b/ffmpeg-y/libavutil/x86/fixed_dsp_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/fixed_dsp_init.c rename to ffmpeg-y/libavutil/x86/fixed_dsp_init.c diff --git a/libavutil/x86/float_dsp_init.c b/ffmpeg-y/libavutil/x86/float_dsp_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/float_dsp_init.c rename to ffmpeg-y/libavutil/x86/float_dsp_init.c diff --git a/libavutil/x86/imgutils_init.c b/ffmpeg-y/libavutil/x86/imgutils_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/imgutils_init.c rename to ffmpeg-y/libavutil/x86/imgutils_init.c diff --git a/libavutil/x86/intmath.h b/ffmpeg-y/libavutil/x86/intmath.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/intmath.h rename to ffmpeg-y/libavutil/x86/intmath.h diff --git a/libavutil/x86/intreadwrite.h b/ffmpeg-y/libavutil/x86/intreadwrite.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/intreadwrite.h rename to ffmpeg-y/libavutil/x86/intreadwrite.h diff --git a/libavutil/x86/lls_init.c b/ffmpeg-y/libavutil/x86/lls_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/lls_init.c rename to ffmpeg-y/libavutil/x86/lls_init.c diff --git a/libavutil/x86/pixelutils.h b/ffmpeg-y/libavutil/x86/pixelutils.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/pixelutils.h rename to ffmpeg-y/libavutil/x86/pixelutils.h diff --git a/libavutil/x86/pixelutils_init.c b/ffmpeg-y/libavutil/x86/pixelutils_init.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/pixelutils_init.c rename to ffmpeg-y/libavutil/x86/pixelutils_init.c diff --git a/libavutil/x86/timer.h b/ffmpeg-y/libavutil/x86/timer.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/timer.h rename to ffmpeg-y/libavutil/x86/timer.h diff --git a/libavutil/x86/w64xmmtest.h b/ffmpeg-y/libavutil/x86/w64xmmtest.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/x86/w64xmmtest.h rename to ffmpeg-y/libavutil/x86/w64xmmtest.h diff --git a/libavutil/xga_font_data.c b/ffmpeg-y/libavutil/xga_font_data.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/xga_font_data.c rename to ffmpeg-y/libavutil/xga_font_data.c diff --git a/libavutil/xga_font_data.h b/ffmpeg-y/libavutil/xga_font_data.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/xga_font_data.h rename to ffmpeg-y/libavutil/xga_font_data.h diff --git a/libavutil/xtea.c b/ffmpeg-y/libavutil/xtea.c old mode 100644 new mode 100755 similarity index 100% rename from libavutil/xtea.c rename to ffmpeg-y/libavutil/xtea.c diff --git a/libavutil/xtea.h b/ffmpeg-y/libavutil/xtea.h old mode 100644 new mode 100755 similarity index 100% rename from libavutil/xtea.h rename to ffmpeg-y/libavutil/xtea.h diff --git a/libpostproc/Makefile b/ffmpeg-y/libpostproc/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/Makefile rename to ffmpeg-y/libpostproc/Makefile diff --git a/libpostproc/libpostproc.v b/ffmpeg-y/libpostproc/libpostproc.v old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/libpostproc.v rename to ffmpeg-y/libpostproc/libpostproc.v diff --git a/libpostproc/postprocess.c b/ffmpeg-y/libpostproc/postprocess.c old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/postprocess.c rename to ffmpeg-y/libpostproc/postprocess.c diff --git a/libpostproc/postprocess.h b/ffmpeg-y/libpostproc/postprocess.h old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/postprocess.h rename to ffmpeg-y/libpostproc/postprocess.h diff --git a/libpostproc/postprocess_altivec_template.c b/ffmpeg-y/libpostproc/postprocess_altivec_template.c old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/postprocess_altivec_template.c rename to ffmpeg-y/libpostproc/postprocess_altivec_template.c diff --git a/libpostproc/postprocess_internal.h b/ffmpeg-y/libpostproc/postprocess_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/postprocess_internal.h rename to ffmpeg-y/libpostproc/postprocess_internal.h diff --git a/libpostproc/postprocess_template.c b/ffmpeg-y/libpostproc/postprocess_template.c old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/postprocess_template.c rename to ffmpeg-y/libpostproc/postprocess_template.c diff --git a/libpostproc/postprocres.rc b/ffmpeg-y/libpostproc/postprocres.rc old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/postprocres.rc rename to ffmpeg-y/libpostproc/postprocres.rc diff --git a/libpostproc/version.h b/ffmpeg-y/libpostproc/version.h old mode 100644 new mode 100755 similarity index 100% rename from libpostproc/version.h rename to ffmpeg-y/libpostproc/version.h diff --git a/libswresample/Makefile b/ffmpeg-y/libswresample/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswresample/Makefile rename to ffmpeg-y/libswresample/Makefile diff --git a/libswresample/aarch64/Makefile b/ffmpeg-y/libswresample/aarch64/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswresample/aarch64/Makefile rename to ffmpeg-y/libswresample/aarch64/Makefile diff --git a/libswresample/aarch64/audio_convert_init.c b/ffmpeg-y/libswresample/aarch64/audio_convert_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/aarch64/audio_convert_init.c rename to ffmpeg-y/libswresample/aarch64/audio_convert_init.c diff --git a/libswresample/aarch64/audio_convert_neon.S b/ffmpeg-y/libswresample/aarch64/audio_convert_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libswresample/aarch64/audio_convert_neon.S rename to ffmpeg-y/libswresample/aarch64/audio_convert_neon.S diff --git a/libswresample/aarch64/neontest.c b/ffmpeg-y/libswresample/aarch64/neontest.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/aarch64/neontest.c rename to ffmpeg-y/libswresample/aarch64/neontest.c diff --git a/libswresample/aarch64/resample.S b/ffmpeg-y/libswresample/aarch64/resample.S old mode 100644 new mode 100755 similarity index 100% rename from libswresample/aarch64/resample.S rename to ffmpeg-y/libswresample/aarch64/resample.S diff --git a/libswresample/aarch64/resample_init.c b/ffmpeg-y/libswresample/aarch64/resample_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/aarch64/resample_init.c rename to ffmpeg-y/libswresample/aarch64/resample_init.c diff --git a/libswresample/arm/Makefile b/ffmpeg-y/libswresample/arm/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswresample/arm/Makefile rename to ffmpeg-y/libswresample/arm/Makefile diff --git a/libswresample/arm/audio_convert_init.c b/ffmpeg-y/libswresample/arm/audio_convert_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/arm/audio_convert_init.c rename to ffmpeg-y/libswresample/arm/audio_convert_init.c diff --git a/libswresample/arm/audio_convert_neon.S b/ffmpeg-y/libswresample/arm/audio_convert_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libswresample/arm/audio_convert_neon.S rename to ffmpeg-y/libswresample/arm/audio_convert_neon.S diff --git a/libswresample/arm/neontest.c b/ffmpeg-y/libswresample/arm/neontest.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/arm/neontest.c rename to ffmpeg-y/libswresample/arm/neontest.c diff --git a/libswresample/arm/resample.S b/ffmpeg-y/libswresample/arm/resample.S old mode 100644 new mode 100755 similarity index 100% rename from libswresample/arm/resample.S rename to ffmpeg-y/libswresample/arm/resample.S diff --git a/libswresample/arm/resample_init.c b/ffmpeg-y/libswresample/arm/resample_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/arm/resample_init.c rename to ffmpeg-y/libswresample/arm/resample_init.c diff --git a/libswresample/audioconvert.c b/ffmpeg-y/libswresample/audioconvert.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/audioconvert.c rename to ffmpeg-y/libswresample/audioconvert.c diff --git a/libswresample/audioconvert.h b/ffmpeg-y/libswresample/audioconvert.h old mode 100644 new mode 100755 similarity index 100% rename from libswresample/audioconvert.h rename to ffmpeg-y/libswresample/audioconvert.h diff --git a/libswresample/dither.c b/ffmpeg-y/libswresample/dither.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/dither.c rename to ffmpeg-y/libswresample/dither.c diff --git a/libswresample/dither_template.c b/ffmpeg-y/libswresample/dither_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/dither_template.c rename to ffmpeg-y/libswresample/dither_template.c diff --git a/libswresample/libswresample.v b/ffmpeg-y/libswresample/libswresample.v old mode 100644 new mode 100755 similarity index 100% rename from libswresample/libswresample.v rename to ffmpeg-y/libswresample/libswresample.v diff --git a/libswresample/log2_tab.c b/ffmpeg-y/libswresample/log2_tab.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/log2_tab.c rename to ffmpeg-y/libswresample/log2_tab.c diff --git a/libswresample/noise_shaping_data.c b/ffmpeg-y/libswresample/noise_shaping_data.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/noise_shaping_data.c rename to ffmpeg-y/libswresample/noise_shaping_data.c diff --git a/libswresample/options.c b/ffmpeg-y/libswresample/options.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/options.c rename to ffmpeg-y/libswresample/options.c diff --git a/libswresample/rematrix.c b/ffmpeg-y/libswresample/rematrix.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/rematrix.c rename to ffmpeg-y/libswresample/rematrix.c diff --git a/libswresample/rematrix_template.c b/ffmpeg-y/libswresample/rematrix_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/rematrix_template.c rename to ffmpeg-y/libswresample/rematrix_template.c diff --git a/libswresample/resample.c b/ffmpeg-y/libswresample/resample.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/resample.c rename to ffmpeg-y/libswresample/resample.c diff --git a/libswresample/resample.h b/ffmpeg-y/libswresample/resample.h old mode 100644 new mode 100755 similarity index 100% rename from libswresample/resample.h rename to ffmpeg-y/libswresample/resample.h diff --git a/libswresample/resample_dsp.c b/ffmpeg-y/libswresample/resample_dsp.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/resample_dsp.c rename to ffmpeg-y/libswresample/resample_dsp.c diff --git a/libswresample/resample_template.c b/ffmpeg-y/libswresample/resample_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/resample_template.c rename to ffmpeg-y/libswresample/resample_template.c diff --git a/libswresample/soxr_resample.c b/ffmpeg-y/libswresample/soxr_resample.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/soxr_resample.c rename to ffmpeg-y/libswresample/soxr_resample.c diff --git a/libswresample/swresample.c b/ffmpeg-y/libswresample/swresample.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/swresample.c rename to ffmpeg-y/libswresample/swresample.c diff --git a/libswresample/swresample.h b/ffmpeg-y/libswresample/swresample.h old mode 100644 new mode 100755 similarity index 100% rename from libswresample/swresample.h rename to ffmpeg-y/libswresample/swresample.h diff --git a/libswresample/swresample_frame.c b/ffmpeg-y/libswresample/swresample_frame.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/swresample_frame.c rename to ffmpeg-y/libswresample/swresample_frame.c diff --git a/libswresample/swresample_internal.h b/ffmpeg-y/libswresample/swresample_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libswresample/swresample_internal.h rename to ffmpeg-y/libswresample/swresample_internal.h diff --git a/libswresample/swresampleres.rc b/ffmpeg-y/libswresample/swresampleres.rc old mode 100644 new mode 100755 similarity index 100% rename from libswresample/swresampleres.rc rename to ffmpeg-y/libswresample/swresampleres.rc diff --git a/libswresample/tests/swresample.c b/ffmpeg-y/libswresample/tests/swresample.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/tests/swresample.c rename to ffmpeg-y/libswresample/tests/swresample.c diff --git a/libswresample/version.h b/ffmpeg-y/libswresample/version.h old mode 100644 new mode 100755 similarity index 100% rename from libswresample/version.h rename to ffmpeg-y/libswresample/version.h diff --git a/libswresample/x86/Makefile b/ffmpeg-y/libswresample/x86/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswresample/x86/Makefile rename to ffmpeg-y/libswresample/x86/Makefile diff --git a/libswresample/x86/audio_convert_init.c b/ffmpeg-y/libswresample/x86/audio_convert_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/x86/audio_convert_init.c rename to ffmpeg-y/libswresample/x86/audio_convert_init.c diff --git a/libswresample/x86/rematrix_init.c b/ffmpeg-y/libswresample/x86/rematrix_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/x86/rematrix_init.c rename to ffmpeg-y/libswresample/x86/rematrix_init.c diff --git a/libswresample/x86/resample_init.c b/ffmpeg-y/libswresample/x86/resample_init.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/x86/resample_init.c rename to ffmpeg-y/libswresample/x86/resample_init.c diff --git a/libswresample/x86/w64xmmtest.c b/ffmpeg-y/libswresample/x86/w64xmmtest.c old mode 100644 new mode 100755 similarity index 100% rename from libswresample/x86/w64xmmtest.c rename to ffmpeg-y/libswresample/x86/w64xmmtest.c diff --git a/libswscale/Makefile b/ffmpeg-y/libswscale/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswscale/Makefile rename to ffmpeg-y/libswscale/Makefile diff --git a/libswscale/aarch64/Makefile b/ffmpeg-y/libswscale/aarch64/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswscale/aarch64/Makefile rename to ffmpeg-y/libswscale/aarch64/Makefile diff --git a/libswscale/aarch64/hscale.S b/ffmpeg-y/libswscale/aarch64/hscale.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/aarch64/hscale.S rename to ffmpeg-y/libswscale/aarch64/hscale.S diff --git a/libswscale/aarch64/output.S b/ffmpeg-y/libswscale/aarch64/output.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/aarch64/output.S rename to ffmpeg-y/libswscale/aarch64/output.S diff --git a/libswscale/aarch64/swscale.c b/ffmpeg-y/libswscale/aarch64/swscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/aarch64/swscale.c rename to ffmpeg-y/libswscale/aarch64/swscale.c diff --git a/libswscale/aarch64/swscale_unscaled.c b/ffmpeg-y/libswscale/aarch64/swscale_unscaled.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/aarch64/swscale_unscaled.c rename to ffmpeg-y/libswscale/aarch64/swscale_unscaled.c diff --git a/libswscale/aarch64/yuv2rgb_neon.S b/ffmpeg-y/libswscale/aarch64/yuv2rgb_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/aarch64/yuv2rgb_neon.S rename to ffmpeg-y/libswscale/aarch64/yuv2rgb_neon.S diff --git a/libswscale/alphablend.c b/ffmpeg-y/libswscale/alphablend.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/alphablend.c rename to ffmpeg-y/libswscale/alphablend.c diff --git a/libswscale/arm/Makefile b/ffmpeg-y/libswscale/arm/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/Makefile rename to ffmpeg-y/libswscale/arm/Makefile diff --git a/libswscale/arm/hscale.S b/ffmpeg-y/libswscale/arm/hscale.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/hscale.S rename to ffmpeg-y/libswscale/arm/hscale.S diff --git a/libswscale/arm/output.S b/ffmpeg-y/libswscale/arm/output.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/output.S rename to ffmpeg-y/libswscale/arm/output.S diff --git a/libswscale/arm/rgb2yuv_neon_16.S b/ffmpeg-y/libswscale/arm/rgb2yuv_neon_16.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/rgb2yuv_neon_16.S rename to ffmpeg-y/libswscale/arm/rgb2yuv_neon_16.S diff --git a/libswscale/arm/rgb2yuv_neon_32.S b/ffmpeg-y/libswscale/arm/rgb2yuv_neon_32.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/rgb2yuv_neon_32.S rename to ffmpeg-y/libswscale/arm/rgb2yuv_neon_32.S diff --git a/libswscale/arm/rgb2yuv_neon_common.S b/ffmpeg-y/libswscale/arm/rgb2yuv_neon_common.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/rgb2yuv_neon_common.S rename to ffmpeg-y/libswscale/arm/rgb2yuv_neon_common.S diff --git a/libswscale/arm/swscale.c b/ffmpeg-y/libswscale/arm/swscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/swscale.c rename to ffmpeg-y/libswscale/arm/swscale.c diff --git a/libswscale/arm/swscale_unscaled.c b/ffmpeg-y/libswscale/arm/swscale_unscaled.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/swscale_unscaled.c rename to ffmpeg-y/libswscale/arm/swscale_unscaled.c diff --git a/libswscale/arm/yuv2rgb_neon.S b/ffmpeg-y/libswscale/arm/yuv2rgb_neon.S old mode 100644 new mode 100755 similarity index 100% rename from libswscale/arm/yuv2rgb_neon.S rename to ffmpeg-y/libswscale/arm/yuv2rgb_neon.S diff --git a/libswscale/bayer_template.c b/ffmpeg-y/libswscale/bayer_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/bayer_template.c rename to ffmpeg-y/libswscale/bayer_template.c diff --git a/libswscale/gamma.c b/ffmpeg-y/libswscale/gamma.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/gamma.c rename to ffmpeg-y/libswscale/gamma.c diff --git a/libswscale/hscale.c b/ffmpeg-y/libswscale/hscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/hscale.c rename to ffmpeg-y/libswscale/hscale.c diff --git a/libswscale/hscale_fast_bilinear.c b/ffmpeg-y/libswscale/hscale_fast_bilinear.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/hscale_fast_bilinear.c rename to ffmpeg-y/libswscale/hscale_fast_bilinear.c diff --git a/libswscale/input.c b/ffmpeg-y/libswscale/input.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/input.c rename to ffmpeg-y/libswscale/input.c diff --git a/libswscale/libswscale.v b/ffmpeg-y/libswscale/libswscale.v old mode 100644 new mode 100755 similarity index 100% rename from libswscale/libswscale.v rename to ffmpeg-y/libswscale/libswscale.v diff --git a/libswscale/log2_tab.c b/ffmpeg-y/libswscale/log2_tab.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/log2_tab.c rename to ffmpeg-y/libswscale/log2_tab.c diff --git a/libswscale/options.c b/ffmpeg-y/libswscale/options.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/options.c rename to ffmpeg-y/libswscale/options.c diff --git a/libswscale/output.c b/ffmpeg-y/libswscale/output.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/output.c rename to ffmpeg-y/libswscale/output.c diff --git a/libswscale/ppc/Makefile b/ffmpeg-y/libswscale/ppc/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/Makefile rename to ffmpeg-y/libswscale/ppc/Makefile diff --git a/libswscale/ppc/swscale_altivec.c b/ffmpeg-y/libswscale/ppc/swscale_altivec.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/swscale_altivec.c rename to ffmpeg-y/libswscale/ppc/swscale_altivec.c diff --git a/libswscale/ppc/swscale_ppc_template.c b/ffmpeg-y/libswscale/ppc/swscale_ppc_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/swscale_ppc_template.c rename to ffmpeg-y/libswscale/ppc/swscale_ppc_template.c diff --git a/libswscale/ppc/swscale_vsx.c b/ffmpeg-y/libswscale/ppc/swscale_vsx.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/swscale_vsx.c rename to ffmpeg-y/libswscale/ppc/swscale_vsx.c diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/ffmpeg-y/libswscale/ppc/yuv2rgb_altivec.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/yuv2rgb_altivec.c rename to ffmpeg-y/libswscale/ppc/yuv2rgb_altivec.c diff --git a/libswscale/ppc/yuv2rgb_altivec.h b/ffmpeg-y/libswscale/ppc/yuv2rgb_altivec.h old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/yuv2rgb_altivec.h rename to ffmpeg-y/libswscale/ppc/yuv2rgb_altivec.h diff --git a/libswscale/ppc/yuv2yuv_altivec.c b/ffmpeg-y/libswscale/ppc/yuv2yuv_altivec.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/ppc/yuv2yuv_altivec.c rename to ffmpeg-y/libswscale/ppc/yuv2yuv_altivec.c diff --git a/libswscale/rgb2rgb.c b/ffmpeg-y/libswscale/rgb2rgb.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/rgb2rgb.c rename to ffmpeg-y/libswscale/rgb2rgb.c diff --git a/libswscale/rgb2rgb.h b/ffmpeg-y/libswscale/rgb2rgb.h old mode 100644 new mode 100755 similarity index 100% rename from libswscale/rgb2rgb.h rename to ffmpeg-y/libswscale/rgb2rgb.h diff --git a/libswscale/rgb2rgb_template.c b/ffmpeg-y/libswscale/rgb2rgb_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/rgb2rgb_template.c rename to ffmpeg-y/libswscale/rgb2rgb_template.c diff --git a/libswscale/slice.c b/ffmpeg-y/libswscale/slice.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/slice.c rename to ffmpeg-y/libswscale/slice.c diff --git a/libswscale/swscale.c b/ffmpeg-y/libswscale/swscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/swscale.c rename to ffmpeg-y/libswscale/swscale.c diff --git a/libswscale/swscale.h b/ffmpeg-y/libswscale/swscale.h old mode 100644 new mode 100755 similarity index 100% rename from libswscale/swscale.h rename to ffmpeg-y/libswscale/swscale.h diff --git a/libswscale/swscale_internal.h b/ffmpeg-y/libswscale/swscale_internal.h old mode 100644 new mode 100755 similarity index 100% rename from libswscale/swscale_internal.h rename to ffmpeg-y/libswscale/swscale_internal.h diff --git a/libswscale/swscale_unscaled.c b/ffmpeg-y/libswscale/swscale_unscaled.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/swscale_unscaled.c rename to ffmpeg-y/libswscale/swscale_unscaled.c diff --git a/libswscale/swscaleres.rc b/ffmpeg-y/libswscale/swscaleres.rc old mode 100644 new mode 100755 similarity index 100% rename from libswscale/swscaleres.rc rename to ffmpeg-y/libswscale/swscaleres.rc diff --git a/libswscale/tests/colorspace.c b/ffmpeg-y/libswscale/tests/colorspace.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/tests/colorspace.c rename to ffmpeg-y/libswscale/tests/colorspace.c diff --git a/libswscale/tests/pixdesc_query.c b/ffmpeg-y/libswscale/tests/pixdesc_query.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/tests/pixdesc_query.c rename to ffmpeg-y/libswscale/tests/pixdesc_query.c diff --git a/libswscale/tests/swscale.c b/ffmpeg-y/libswscale/tests/swscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/tests/swscale.c rename to ffmpeg-y/libswscale/tests/swscale.c diff --git a/libswscale/utils.c b/ffmpeg-y/libswscale/utils.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/utils.c rename to ffmpeg-y/libswscale/utils.c diff --git a/libswscale/version.h b/ffmpeg-y/libswscale/version.h old mode 100644 new mode 100755 similarity index 100% rename from libswscale/version.h rename to ffmpeg-y/libswscale/version.h diff --git a/libswscale/vscale.c b/ffmpeg-y/libswscale/vscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/vscale.c rename to ffmpeg-y/libswscale/vscale.c diff --git a/libswscale/x86/Makefile b/ffmpeg-y/libswscale/x86/Makefile old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/Makefile rename to ffmpeg-y/libswscale/x86/Makefile diff --git a/libswscale/x86/hscale_fast_bilinear_simd.c b/ffmpeg-y/libswscale/x86/hscale_fast_bilinear_simd.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/hscale_fast_bilinear_simd.c rename to ffmpeg-y/libswscale/x86/hscale_fast_bilinear_simd.c diff --git a/libswscale/x86/rgb2rgb.c b/ffmpeg-y/libswscale/x86/rgb2rgb.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/rgb2rgb.c rename to ffmpeg-y/libswscale/x86/rgb2rgb.c diff --git a/libswscale/x86/rgb2rgb_template.c b/ffmpeg-y/libswscale/x86/rgb2rgb_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/rgb2rgb_template.c rename to ffmpeg-y/libswscale/x86/rgb2rgb_template.c diff --git a/libswscale/x86/swscale.c b/ffmpeg-y/libswscale/x86/swscale.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/swscale.c rename to ffmpeg-y/libswscale/x86/swscale.c diff --git a/libswscale/x86/swscale_template.c b/ffmpeg-y/libswscale/x86/swscale_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/swscale_template.c rename to ffmpeg-y/libswscale/x86/swscale_template.c diff --git a/libswscale/x86/w64xmmtest.c b/ffmpeg-y/libswscale/x86/w64xmmtest.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/w64xmmtest.c rename to ffmpeg-y/libswscale/x86/w64xmmtest.c diff --git a/libswscale/x86/yuv2rgb.c b/ffmpeg-y/libswscale/x86/yuv2rgb.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/yuv2rgb.c rename to ffmpeg-y/libswscale/x86/yuv2rgb.c diff --git a/libswscale/x86/yuv2rgb_template.c b/ffmpeg-y/libswscale/x86/yuv2rgb_template.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/x86/yuv2rgb_template.c rename to ffmpeg-y/libswscale/x86/yuv2rgb_template.c diff --git a/libswscale/yuv2rgb.c b/ffmpeg-y/libswscale/yuv2rgb.c old mode 100644 new mode 100755 similarity index 100% rename from libswscale/yuv2rgb.c rename to ffmpeg-y/libswscale/yuv2rgb.c diff --git a/presets/libvpx-1080p.ffpreset b/ffmpeg-y/presets/libvpx-1080p.ffpreset old mode 100644 new mode 100755 similarity index 100% rename from presets/libvpx-1080p.ffpreset rename to ffmpeg-y/presets/libvpx-1080p.ffpreset diff --git a/presets/libvpx-1080p50_60.ffpreset b/ffmpeg-y/presets/libvpx-1080p50_60.ffpreset old mode 100644 new mode 100755 similarity index 100% rename from presets/libvpx-1080p50_60.ffpreset rename to ffmpeg-y/presets/libvpx-1080p50_60.ffpreset diff --git a/presets/libvpx-360p.ffpreset b/ffmpeg-y/presets/libvpx-360p.ffpreset old mode 100644 new mode 100755 similarity index 100% rename from presets/libvpx-360p.ffpreset rename to ffmpeg-y/presets/libvpx-360p.ffpreset diff --git a/presets/libvpx-720p.ffpreset b/ffmpeg-y/presets/libvpx-720p.ffpreset old mode 100644 new mode 100755 similarity index 100% rename from presets/libvpx-720p.ffpreset rename to ffmpeg-y/presets/libvpx-720p.ffpreset diff --git a/presets/libvpx-720p50_60.ffpreset b/ffmpeg-y/presets/libvpx-720p50_60.ffpreset old mode 100644 new mode 100755 similarity index 100% rename from presets/libvpx-720p50_60.ffpreset rename to ffmpeg-y/presets/libvpx-720p50_60.ffpreset diff --git a/tests/Makefile b/ffmpeg-y/tests/Makefile old mode 100644 new mode 100755 similarity index 100% rename from tests/Makefile rename to ffmpeg-y/tests/Makefile diff --git a/tests/api/Makefile b/ffmpeg-y/tests/api/Makefile old mode 100644 new mode 100755 similarity index 100% rename from tests/api/Makefile rename to ffmpeg-y/tests/api/Makefile diff --git a/tests/api/api-band-test.c b/ffmpeg-y/tests/api/api-band-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-band-test.c rename to ffmpeg-y/tests/api/api-band-test.c diff --git a/tests/api/api-codec-param-test.c b/ffmpeg-y/tests/api/api-codec-param-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-codec-param-test.c rename to ffmpeg-y/tests/api/api-codec-param-test.c diff --git a/tests/api/api-flac-test.c b/ffmpeg-y/tests/api/api-flac-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-flac-test.c rename to ffmpeg-y/tests/api/api-flac-test.c diff --git a/tests/api/api-h264-slice-test.c b/ffmpeg-y/tests/api/api-h264-slice-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-h264-slice-test.c rename to ffmpeg-y/tests/api/api-h264-slice-test.c diff --git a/tests/api/api-h264-test.c b/ffmpeg-y/tests/api/api-h264-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-h264-test.c rename to ffmpeg-y/tests/api/api-h264-test.c diff --git a/tests/api/api-seek-test.c b/ffmpeg-y/tests/api/api-seek-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-seek-test.c rename to ffmpeg-y/tests/api/api-seek-test.c diff --git a/tests/api/api-threadmessage-test.c b/ffmpeg-y/tests/api/api-threadmessage-test.c old mode 100644 new mode 100755 similarity index 100% rename from tests/api/api-threadmessage-test.c rename to ffmpeg-y/tests/api/api-threadmessage-test.c diff --git a/tests/audiogen.c b/ffmpeg-y/tests/audiogen.c old mode 100644 new mode 100755 similarity index 100% rename from tests/audiogen.c rename to ffmpeg-y/tests/audiogen.c diff --git a/tests/audiomatch.c b/ffmpeg-y/tests/audiomatch.c old mode 100644 new mode 100755 similarity index 100% rename from tests/audiomatch.c rename to ffmpeg-y/tests/audiomatch.c diff --git a/tests/base64.c b/ffmpeg-y/tests/base64.c old mode 100644 new mode 100755 similarity index 100% rename from tests/base64.c rename to ffmpeg-y/tests/base64.c diff --git a/tests/checkasm/Makefile b/ffmpeg-y/tests/checkasm/Makefile old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/Makefile rename to ffmpeg-y/tests/checkasm/Makefile diff --git a/tests/checkasm/aacpsdsp.c b/ffmpeg-y/tests/checkasm/aacpsdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/aacpsdsp.c rename to ffmpeg-y/tests/checkasm/aacpsdsp.c diff --git a/tests/checkasm/aarch64/checkasm.S b/ffmpeg-y/tests/checkasm/aarch64/checkasm.S old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/aarch64/checkasm.S rename to ffmpeg-y/tests/checkasm/aarch64/checkasm.S diff --git a/tests/checkasm/af_afir.c b/ffmpeg-y/tests/checkasm/af_afir.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/af_afir.c rename to ffmpeg-y/tests/checkasm/af_afir.c diff --git a/tests/checkasm/alacdsp.c b/ffmpeg-y/tests/checkasm/alacdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/alacdsp.c rename to ffmpeg-y/tests/checkasm/alacdsp.c diff --git a/tests/checkasm/arm/checkasm.S b/ffmpeg-y/tests/checkasm/arm/checkasm.S old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/arm/checkasm.S rename to ffmpeg-y/tests/checkasm/arm/checkasm.S diff --git a/tests/checkasm/audiodsp.c b/ffmpeg-y/tests/checkasm/audiodsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/audiodsp.c rename to ffmpeg-y/tests/checkasm/audiodsp.c diff --git a/tests/checkasm/blockdsp.c b/ffmpeg-y/tests/checkasm/blockdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/blockdsp.c rename to ffmpeg-y/tests/checkasm/blockdsp.c diff --git a/tests/checkasm/bswapdsp.c b/ffmpeg-y/tests/checkasm/bswapdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/bswapdsp.c rename to ffmpeg-y/tests/checkasm/bswapdsp.c diff --git a/tests/checkasm/checkasm.c b/ffmpeg-y/tests/checkasm/checkasm.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/checkasm.c rename to ffmpeg-y/tests/checkasm/checkasm.c diff --git a/tests/checkasm/checkasm.h b/ffmpeg-y/tests/checkasm/checkasm.h old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/checkasm.h rename to ffmpeg-y/tests/checkasm/checkasm.h diff --git a/tests/checkasm/exrdsp.c b/ffmpeg-y/tests/checkasm/exrdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/exrdsp.c rename to ffmpeg-y/tests/checkasm/exrdsp.c diff --git a/tests/checkasm/fixed_dsp.c b/ffmpeg-y/tests/checkasm/fixed_dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/fixed_dsp.c rename to ffmpeg-y/tests/checkasm/fixed_dsp.c diff --git a/tests/checkasm/flacdsp.c b/ffmpeg-y/tests/checkasm/flacdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/flacdsp.c rename to ffmpeg-y/tests/checkasm/flacdsp.c diff --git a/tests/checkasm/float_dsp.c b/ffmpeg-y/tests/checkasm/float_dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/float_dsp.c rename to ffmpeg-y/tests/checkasm/float_dsp.c diff --git a/tests/checkasm/fmtconvert.c b/ffmpeg-y/tests/checkasm/fmtconvert.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/fmtconvert.c rename to ffmpeg-y/tests/checkasm/fmtconvert.c diff --git a/tests/checkasm/g722dsp.c b/ffmpeg-y/tests/checkasm/g722dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/g722dsp.c rename to ffmpeg-y/tests/checkasm/g722dsp.c diff --git a/tests/checkasm/h264dsp.c b/ffmpeg-y/tests/checkasm/h264dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/h264dsp.c rename to ffmpeg-y/tests/checkasm/h264dsp.c diff --git a/tests/checkasm/h264pred.c b/ffmpeg-y/tests/checkasm/h264pred.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/h264pred.c rename to ffmpeg-y/tests/checkasm/h264pred.c diff --git a/tests/checkasm/h264qpel.c b/ffmpeg-y/tests/checkasm/h264qpel.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/h264qpel.c rename to ffmpeg-y/tests/checkasm/h264qpel.c diff --git a/tests/checkasm/hevc_add_res.c b/ffmpeg-y/tests/checkasm/hevc_add_res.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/hevc_add_res.c rename to ffmpeg-y/tests/checkasm/hevc_add_res.c diff --git a/tests/checkasm/hevc_idct.c b/ffmpeg-y/tests/checkasm/hevc_idct.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/hevc_idct.c rename to ffmpeg-y/tests/checkasm/hevc_idct.c diff --git a/tests/checkasm/hevc_sao.c b/ffmpeg-y/tests/checkasm/hevc_sao.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/hevc_sao.c rename to ffmpeg-y/tests/checkasm/hevc_sao.c diff --git a/tests/checkasm/huffyuvdsp.c b/ffmpeg-y/tests/checkasm/huffyuvdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/huffyuvdsp.c rename to ffmpeg-y/tests/checkasm/huffyuvdsp.c diff --git a/tests/checkasm/jpeg2000dsp.c b/ffmpeg-y/tests/checkasm/jpeg2000dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/jpeg2000dsp.c rename to ffmpeg-y/tests/checkasm/jpeg2000dsp.c diff --git a/tests/checkasm/llviddsp.c b/ffmpeg-y/tests/checkasm/llviddsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/llviddsp.c rename to ffmpeg-y/tests/checkasm/llviddsp.c diff --git a/tests/checkasm/llviddspenc.c b/ffmpeg-y/tests/checkasm/llviddspenc.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/llviddspenc.c rename to ffmpeg-y/tests/checkasm/llviddspenc.c diff --git a/tests/checkasm/pixblockdsp.c b/ffmpeg-y/tests/checkasm/pixblockdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/pixblockdsp.c rename to ffmpeg-y/tests/checkasm/pixblockdsp.c diff --git a/tests/checkasm/sbrdsp.c b/ffmpeg-y/tests/checkasm/sbrdsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/sbrdsp.c rename to ffmpeg-y/tests/checkasm/sbrdsp.c diff --git a/tests/checkasm/sw_rgb.c b/ffmpeg-y/tests/checkasm/sw_rgb.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/sw_rgb.c rename to ffmpeg-y/tests/checkasm/sw_rgb.c diff --git a/tests/checkasm/synth_filter.c b/ffmpeg-y/tests/checkasm/synth_filter.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/synth_filter.c rename to ffmpeg-y/tests/checkasm/synth_filter.c diff --git a/tests/checkasm/utvideodsp.c b/ffmpeg-y/tests/checkasm/utvideodsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/utvideodsp.c rename to ffmpeg-y/tests/checkasm/utvideodsp.c diff --git a/tests/checkasm/v210dec.c b/ffmpeg-y/tests/checkasm/v210dec.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/v210dec.c rename to ffmpeg-y/tests/checkasm/v210dec.c diff --git a/tests/checkasm/v210enc.c b/ffmpeg-y/tests/checkasm/v210enc.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/v210enc.c rename to ffmpeg-y/tests/checkasm/v210enc.c diff --git a/tests/checkasm/vf_blend.c b/ffmpeg-y/tests/checkasm/vf_blend.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vf_blend.c rename to ffmpeg-y/tests/checkasm/vf_blend.c diff --git a/tests/checkasm/vf_colorspace.c b/ffmpeg-y/tests/checkasm/vf_colorspace.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vf_colorspace.c rename to ffmpeg-y/tests/checkasm/vf_colorspace.c diff --git a/tests/checkasm/vf_gblur.c b/ffmpeg-y/tests/checkasm/vf_gblur.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vf_gblur.c rename to ffmpeg-y/tests/checkasm/vf_gblur.c diff --git a/tests/checkasm/vf_hflip.c b/ffmpeg-y/tests/checkasm/vf_hflip.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vf_hflip.c rename to ffmpeg-y/tests/checkasm/vf_hflip.c diff --git a/tests/checkasm/vf_nlmeans.c b/ffmpeg-y/tests/checkasm/vf_nlmeans.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vf_nlmeans.c rename to ffmpeg-y/tests/checkasm/vf_nlmeans.c diff --git a/tests/checkasm/vf_threshold.c b/ffmpeg-y/tests/checkasm/vf_threshold.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vf_threshold.c rename to ffmpeg-y/tests/checkasm/vf_threshold.c diff --git a/tests/checkasm/videodsp.c b/ffmpeg-y/tests/checkasm/videodsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/videodsp.c rename to ffmpeg-y/tests/checkasm/videodsp.c diff --git a/tests/checkasm/vp8dsp.c b/ffmpeg-y/tests/checkasm/vp8dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vp8dsp.c rename to ffmpeg-y/tests/checkasm/vp8dsp.c diff --git a/tests/checkasm/vp9dsp.c b/ffmpeg-y/tests/checkasm/vp9dsp.c old mode 100644 new mode 100755 similarity index 100% rename from tests/checkasm/vp9dsp.c rename to ffmpeg-y/tests/checkasm/vp9dsp.c diff --git a/tests/copycooker.sh b/ffmpeg-y/tests/copycooker.sh similarity index 100% rename from tests/copycooker.sh rename to ffmpeg-y/tests/copycooker.sh diff --git a/tests/extended.ffconcat b/ffmpeg-y/tests/extended.ffconcat old mode 100644 new mode 100755 similarity index 100% rename from tests/extended.ffconcat rename to ffmpeg-y/tests/extended.ffconcat diff --git a/tests/fate-run.sh b/ffmpeg-y/tests/fate-run.sh similarity index 100% rename from tests/fate-run.sh rename to ffmpeg-y/tests/fate-run.sh diff --git a/tests/fate-valgrind.supp b/ffmpeg-y/tests/fate-valgrind.supp old mode 100644 new mode 100755 similarity index 100% rename from tests/fate-valgrind.supp rename to ffmpeg-y/tests/fate-valgrind.supp diff --git a/tests/fate.sh b/ffmpeg-y/tests/fate.sh similarity index 100% rename from tests/fate.sh rename to ffmpeg-y/tests/fate.sh diff --git a/tests/fate/aac.mak b/ffmpeg-y/tests/fate/aac.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/aac.mak rename to ffmpeg-y/tests/fate/aac.mak diff --git a/tests/fate/ac3.mak b/ffmpeg-y/tests/fate/ac3.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/ac3.mak rename to ffmpeg-y/tests/fate/ac3.mak diff --git a/tests/fate/acodec.mak b/ffmpeg-y/tests/fate/acodec.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/acodec.mak rename to ffmpeg-y/tests/fate/acodec.mak diff --git a/tests/fate/adpcm.mak b/ffmpeg-y/tests/fate/adpcm.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/adpcm.mak rename to ffmpeg-y/tests/fate/adpcm.mak diff --git a/tests/fate/alac.mak b/ffmpeg-y/tests/fate/alac.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/alac.mak rename to ffmpeg-y/tests/fate/alac.mak diff --git a/tests/fate/als.mak b/ffmpeg-y/tests/fate/als.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/als.mak rename to ffmpeg-y/tests/fate/als.mak diff --git a/tests/fate/amrnb.mak b/ffmpeg-y/tests/fate/amrnb.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/amrnb.mak rename to ffmpeg-y/tests/fate/amrnb.mak diff --git a/tests/fate/amrwb.mak b/ffmpeg-y/tests/fate/amrwb.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/amrwb.mak rename to ffmpeg-y/tests/fate/amrwb.mak diff --git a/tests/fate/api.mak b/ffmpeg-y/tests/fate/api.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/api.mak rename to ffmpeg-y/tests/fate/api.mak diff --git a/tests/fate/apng.mak b/ffmpeg-y/tests/fate/apng.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/apng.mak rename to ffmpeg-y/tests/fate/apng.mak diff --git a/tests/fate/atrac.mak b/ffmpeg-y/tests/fate/atrac.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/atrac.mak rename to ffmpeg-y/tests/fate/atrac.mak diff --git a/tests/fate/audio.mak b/ffmpeg-y/tests/fate/audio.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/audio.mak rename to ffmpeg-y/tests/fate/audio.mak diff --git a/tests/fate/bmp.mak b/ffmpeg-y/tests/fate/bmp.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/bmp.mak rename to ffmpeg-y/tests/fate/bmp.mak diff --git a/tests/fate/build.mak b/ffmpeg-y/tests/fate/build.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/build.mak rename to ffmpeg-y/tests/fate/build.mak diff --git a/tests/fate/canopus.mak b/ffmpeg-y/tests/fate/canopus.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/canopus.mak rename to ffmpeg-y/tests/fate/canopus.mak diff --git a/tests/fate/cbs.mak b/ffmpeg-y/tests/fate/cbs.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/cbs.mak rename to ffmpeg-y/tests/fate/cbs.mak diff --git a/tests/fate/cdxl.mak b/ffmpeg-y/tests/fate/cdxl.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/cdxl.mak rename to ffmpeg-y/tests/fate/cdxl.mak diff --git a/tests/fate/checkasm.mak b/ffmpeg-y/tests/fate/checkasm.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/checkasm.mak rename to ffmpeg-y/tests/fate/checkasm.mak diff --git a/tests/fate/concatdec.mak b/ffmpeg-y/tests/fate/concatdec.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/concatdec.mak rename to ffmpeg-y/tests/fate/concatdec.mak diff --git a/tests/fate/cover-art.mak b/ffmpeg-y/tests/fate/cover-art.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/cover-art.mak rename to ffmpeg-y/tests/fate/cover-art.mak diff --git a/tests/fate/dca.mak b/ffmpeg-y/tests/fate/dca.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/dca.mak rename to ffmpeg-y/tests/fate/dca.mak diff --git a/tests/fate/demux.mak b/ffmpeg-y/tests/fate/demux.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/demux.mak rename to ffmpeg-y/tests/fate/demux.mak diff --git a/tests/fate/dfa.mak b/ffmpeg-y/tests/fate/dfa.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/dfa.mak rename to ffmpeg-y/tests/fate/dfa.mak diff --git a/tests/fate/dnxhd.mak b/ffmpeg-y/tests/fate/dnxhd.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/dnxhd.mak rename to ffmpeg-y/tests/fate/dnxhd.mak diff --git a/tests/fate/dpcm.mak b/ffmpeg-y/tests/fate/dpcm.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/dpcm.mak rename to ffmpeg-y/tests/fate/dpcm.mak diff --git a/tests/fate/ea.mak b/ffmpeg-y/tests/fate/ea.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/ea.mak rename to ffmpeg-y/tests/fate/ea.mak diff --git a/tests/fate/exif.mak b/ffmpeg-y/tests/fate/exif.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/exif.mak rename to ffmpeg-y/tests/fate/exif.mak diff --git a/tests/fate/ffmpeg.mak b/ffmpeg-y/tests/fate/ffmpeg.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/ffmpeg.mak rename to ffmpeg-y/tests/fate/ffmpeg.mak diff --git a/tests/fate/ffprobe.mak b/ffmpeg-y/tests/fate/ffprobe.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/ffprobe.mak rename to ffmpeg-y/tests/fate/ffprobe.mak diff --git a/tests/fate/fft.mak b/ffmpeg-y/tests/fate/fft.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/fft.mak rename to ffmpeg-y/tests/fate/fft.mak diff --git a/tests/fate/fifo-muxer.mak b/ffmpeg-y/tests/fate/fifo-muxer.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/fifo-muxer.mak rename to ffmpeg-y/tests/fate/fifo-muxer.mak diff --git a/tests/fate/filter-audio.mak b/ffmpeg-y/tests/fate/filter-audio.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/filter-audio.mak rename to ffmpeg-y/tests/fate/filter-audio.mak diff --git a/tests/fate/filter-video.mak b/ffmpeg-y/tests/fate/filter-video.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/filter-video.mak rename to ffmpeg-y/tests/fate/filter-video.mak diff --git a/tests/fate/fits.mak b/ffmpeg-y/tests/fate/fits.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/fits.mak rename to ffmpeg-y/tests/fate/fits.mak diff --git a/tests/fate/flac.mak b/ffmpeg-y/tests/fate/flac.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/flac.mak rename to ffmpeg-y/tests/fate/flac.mak diff --git a/tests/fate/flvenc.mak b/ffmpeg-y/tests/fate/flvenc.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/flvenc.mak rename to ffmpeg-y/tests/fate/flvenc.mak diff --git a/tests/fate/gapless.mak b/ffmpeg-y/tests/fate/gapless.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/gapless.mak rename to ffmpeg-y/tests/fate/gapless.mak diff --git a/tests/fate/gif.mak b/ffmpeg-y/tests/fate/gif.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/gif.mak rename to ffmpeg-y/tests/fate/gif.mak diff --git a/tests/fate/h264.mak b/ffmpeg-y/tests/fate/h264.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/h264.mak rename to ffmpeg-y/tests/fate/h264.mak diff --git a/tests/fate/hap.mak b/ffmpeg-y/tests/fate/hap.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/hap.mak rename to ffmpeg-y/tests/fate/hap.mak diff --git a/tests/fate/hevc.mak b/ffmpeg-y/tests/fate/hevc.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/hevc.mak rename to ffmpeg-y/tests/fate/hevc.mak diff --git a/tests/fate/hlsenc.mak b/ffmpeg-y/tests/fate/hlsenc.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/hlsenc.mak rename to ffmpeg-y/tests/fate/hlsenc.mak diff --git a/tests/fate/hw.mak b/ffmpeg-y/tests/fate/hw.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/hw.mak rename to ffmpeg-y/tests/fate/hw.mak diff --git a/tests/fate/id3v2.mak b/ffmpeg-y/tests/fate/id3v2.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/id3v2.mak rename to ffmpeg-y/tests/fate/id3v2.mak diff --git a/tests/fate/image.mak b/ffmpeg-y/tests/fate/image.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/image.mak rename to ffmpeg-y/tests/fate/image.mak diff --git a/tests/fate/indeo.mak b/ffmpeg-y/tests/fate/indeo.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/indeo.mak rename to ffmpeg-y/tests/fate/indeo.mak diff --git a/tests/fate/lavf-audio.mak b/ffmpeg-y/tests/fate/lavf-audio.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lavf-audio.mak rename to ffmpeg-y/tests/fate/lavf-audio.mak diff --git a/tests/fate/lavf-container.mak b/ffmpeg-y/tests/fate/lavf-container.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lavf-container.mak rename to ffmpeg-y/tests/fate/lavf-container.mak diff --git a/tests/fate/lavf-image.mak b/ffmpeg-y/tests/fate/lavf-image.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lavf-image.mak rename to ffmpeg-y/tests/fate/lavf-image.mak diff --git a/tests/fate/lavf-image2pipe.mak b/ffmpeg-y/tests/fate/lavf-image2pipe.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lavf-image2pipe.mak rename to ffmpeg-y/tests/fate/lavf-image2pipe.mak diff --git a/tests/fate/lavf-video.mak b/ffmpeg-y/tests/fate/lavf-video.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lavf-video.mak rename to ffmpeg-y/tests/fate/lavf-video.mak diff --git a/tests/fate/libavcodec.mak b/ffmpeg-y/tests/fate/libavcodec.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libavcodec.mak rename to ffmpeg-y/tests/fate/libavcodec.mak diff --git a/tests/fate/libavdevice.mak b/ffmpeg-y/tests/fate/libavdevice.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libavdevice.mak rename to ffmpeg-y/tests/fate/libavdevice.mak diff --git a/tests/fate/libavformat.mak b/ffmpeg-y/tests/fate/libavformat.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libavformat.mak rename to ffmpeg-y/tests/fate/libavformat.mak diff --git a/tests/fate/libavresample.mak b/ffmpeg-y/tests/fate/libavresample.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libavresample.mak rename to ffmpeg-y/tests/fate/libavresample.mak diff --git a/tests/fate/libavutil.mak b/ffmpeg-y/tests/fate/libavutil.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libavutil.mak rename to ffmpeg-y/tests/fate/libavutil.mak diff --git a/tests/fate/libswresample.mak b/ffmpeg-y/tests/fate/libswresample.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libswresample.mak rename to ffmpeg-y/tests/fate/libswresample.mak diff --git a/tests/fate/libswscale.mak b/ffmpeg-y/tests/fate/libswscale.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/libswscale.mak rename to ffmpeg-y/tests/fate/libswscale.mak diff --git a/tests/fate/lossless-audio.mak b/ffmpeg-y/tests/fate/lossless-audio.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lossless-audio.mak rename to ffmpeg-y/tests/fate/lossless-audio.mak diff --git a/tests/fate/lossless-video.mak b/ffmpeg-y/tests/fate/lossless-video.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/lossless-video.mak rename to ffmpeg-y/tests/fate/lossless-video.mak diff --git a/tests/fate/matroska.mak b/ffmpeg-y/tests/fate/matroska.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/matroska.mak rename to ffmpeg-y/tests/fate/matroska.mak diff --git a/tests/fate/microsoft.mak b/ffmpeg-y/tests/fate/microsoft.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/microsoft.mak rename to ffmpeg-y/tests/fate/microsoft.mak diff --git a/tests/fate/monkeysaudio.mak b/ffmpeg-y/tests/fate/monkeysaudio.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/monkeysaudio.mak rename to ffmpeg-y/tests/fate/monkeysaudio.mak diff --git a/tests/fate/mov.mak b/ffmpeg-y/tests/fate/mov.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mov.mak rename to ffmpeg-y/tests/fate/mov.mak diff --git a/tests/fate/mp3.mak b/ffmpeg-y/tests/fate/mp3.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mp3.mak rename to ffmpeg-y/tests/fate/mp3.mak diff --git a/tests/fate/mpc.mak b/ffmpeg-y/tests/fate/mpc.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mpc.mak rename to ffmpeg-y/tests/fate/mpc.mak diff --git a/tests/fate/mpeg4.mak b/ffmpeg-y/tests/fate/mpeg4.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mpeg4.mak rename to ffmpeg-y/tests/fate/mpeg4.mak diff --git a/tests/fate/mpegps.mak b/ffmpeg-y/tests/fate/mpegps.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mpegps.mak rename to ffmpeg-y/tests/fate/mpegps.mak diff --git a/tests/fate/mpegts.mak b/ffmpeg-y/tests/fate/mpegts.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mpegts.mak rename to ffmpeg-y/tests/fate/mpegts.mak diff --git a/tests/fate/mxf.mak b/ffmpeg-y/tests/fate/mxf.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/mxf.mak rename to ffmpeg-y/tests/fate/mxf.mak diff --git a/tests/fate/opus.mak b/ffmpeg-y/tests/fate/opus.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/opus.mak rename to ffmpeg-y/tests/fate/opus.mak diff --git a/tests/fate/pcm.mak b/ffmpeg-y/tests/fate/pcm.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/pcm.mak rename to ffmpeg-y/tests/fate/pcm.mak diff --git a/tests/fate/pixfmt.mak b/ffmpeg-y/tests/fate/pixfmt.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/pixfmt.mak rename to ffmpeg-y/tests/fate/pixfmt.mak diff --git a/tests/fate/pixlet.mak b/ffmpeg-y/tests/fate/pixlet.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/pixlet.mak rename to ffmpeg-y/tests/fate/pixlet.mak diff --git a/tests/fate/probe.mak b/ffmpeg-y/tests/fate/probe.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/probe.mak rename to ffmpeg-y/tests/fate/probe.mak diff --git a/tests/fate/prores.mak b/ffmpeg-y/tests/fate/prores.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/prores.mak rename to ffmpeg-y/tests/fate/prores.mak diff --git a/tests/fate/qt.mak b/ffmpeg-y/tests/fate/qt.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/qt.mak rename to ffmpeg-y/tests/fate/qt.mak diff --git a/tests/fate/qtrle.mak b/ffmpeg-y/tests/fate/qtrle.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/qtrle.mak rename to ffmpeg-y/tests/fate/qtrle.mak diff --git a/tests/fate/real.mak b/ffmpeg-y/tests/fate/real.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/real.mak rename to ffmpeg-y/tests/fate/real.mak diff --git a/tests/fate/screen.mak b/ffmpeg-y/tests/fate/screen.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/screen.mak rename to ffmpeg-y/tests/fate/screen.mak diff --git a/tests/fate/seek.mak b/ffmpeg-y/tests/fate/seek.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/seek.mak rename to ffmpeg-y/tests/fate/seek.mak diff --git a/tests/fate/segment.mak b/ffmpeg-y/tests/fate/segment.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/segment.mak rename to ffmpeg-y/tests/fate/segment.mak diff --git a/tests/fate/source-check.sh b/ffmpeg-y/tests/fate/source-check.sh similarity index 100% rename from tests/fate/source-check.sh rename to ffmpeg-y/tests/fate/source-check.sh diff --git a/tests/fate/source.mak b/ffmpeg-y/tests/fate/source.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/source.mak rename to ffmpeg-y/tests/fate/source.mak diff --git a/tests/fate/speedhq.mak b/ffmpeg-y/tests/fate/speedhq.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/speedhq.mak rename to ffmpeg-y/tests/fate/speedhq.mak diff --git a/tests/fate/subtitles.mak b/ffmpeg-y/tests/fate/subtitles.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/subtitles.mak rename to ffmpeg-y/tests/fate/subtitles.mak diff --git a/tests/fate/utvideo.mak b/ffmpeg-y/tests/fate/utvideo.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/utvideo.mak rename to ffmpeg-y/tests/fate/utvideo.mak diff --git a/tests/fate/vcodec.mak b/ffmpeg-y/tests/fate/vcodec.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/vcodec.mak rename to ffmpeg-y/tests/fate/vcodec.mak diff --git a/tests/fate/video.mak b/ffmpeg-y/tests/fate/video.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/video.mak rename to ffmpeg-y/tests/fate/video.mak diff --git a/tests/fate/voice.mak b/ffmpeg-y/tests/fate/voice.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/voice.mak rename to ffmpeg-y/tests/fate/voice.mak diff --git a/tests/fate/vorbis.mak b/ffmpeg-y/tests/fate/vorbis.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/vorbis.mak rename to ffmpeg-y/tests/fate/vorbis.mak diff --git a/tests/fate/vpx.mak b/ffmpeg-y/tests/fate/vpx.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/vpx.mak rename to ffmpeg-y/tests/fate/vpx.mak diff --git a/tests/fate/vqf.mak b/ffmpeg-y/tests/fate/vqf.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/vqf.mak rename to ffmpeg-y/tests/fate/vqf.mak diff --git a/tests/fate/wavpack.mak b/ffmpeg-y/tests/fate/wavpack.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/wavpack.mak rename to ffmpeg-y/tests/fate/wavpack.mak diff --git a/tests/fate/wma.mak b/ffmpeg-y/tests/fate/wma.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/wma.mak rename to ffmpeg-y/tests/fate/wma.mak diff --git a/tests/fate/xvid.mak b/ffmpeg-y/tests/fate/xvid.mak old mode 100644 new mode 100755 similarity index 100% rename from tests/fate/xvid.mak rename to ffmpeg-y/tests/fate/xvid.mak diff --git a/tests/filtergraphs/alphamerge_alphaextract_rgb b/ffmpeg-y/tests/filtergraphs/alphamerge_alphaextract_rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/alphamerge_alphaextract_rgb rename to ffmpeg-y/tests/filtergraphs/alphamerge_alphaextract_rgb diff --git a/tests/filtergraphs/alphamerge_alphaextract_yuv b/ffmpeg-y/tests/filtergraphs/alphamerge_alphaextract_yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/alphamerge_alphaextract_yuv rename to ffmpeg-y/tests/filtergraphs/alphamerge_alphaextract_yuv diff --git a/tests/filtergraphs/anequalizer b/ffmpeg-y/tests/filtergraphs/anequalizer old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/anequalizer rename to ffmpeg-y/tests/filtergraphs/anequalizer diff --git a/tests/filtergraphs/channelmap_one_int b/ffmpeg-y/tests/filtergraphs/channelmap_one_int old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/channelmap_one_int rename to ffmpeg-y/tests/filtergraphs/channelmap_one_int diff --git a/tests/filtergraphs/channelmap_one_str b/ffmpeg-y/tests/filtergraphs/channelmap_one_str old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/channelmap_one_str rename to ffmpeg-y/tests/filtergraphs/channelmap_one_str diff --git a/tests/filtergraphs/colorkey b/ffmpeg-y/tests/filtergraphs/colorkey old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/colorkey rename to ffmpeg-y/tests/filtergraphs/colorkey diff --git a/tests/filtergraphs/compand b/ffmpeg-y/tests/filtergraphs/compand old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/compand rename to ffmpeg-y/tests/filtergraphs/compand diff --git a/tests/filtergraphs/concat b/ffmpeg-y/tests/filtergraphs/concat old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/concat rename to ffmpeg-y/tests/filtergraphs/concat diff --git a/tests/filtergraphs/firequalizer b/ffmpeg-y/tests/filtergraphs/firequalizer old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/firequalizer rename to ffmpeg-y/tests/filtergraphs/firequalizer diff --git a/tests/filtergraphs/gradfun b/ffmpeg-y/tests/filtergraphs/gradfun old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/gradfun rename to ffmpeg-y/tests/filtergraphs/gradfun diff --git a/tests/filtergraphs/hqdn3d b/ffmpeg-y/tests/filtergraphs/hqdn3d old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/hqdn3d rename to ffmpeg-y/tests/filtergraphs/hqdn3d diff --git a/tests/filtergraphs/hstack b/ffmpeg-y/tests/filtergraphs/hstack old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/hstack rename to ffmpeg-y/tests/filtergraphs/hstack diff --git a/tests/filtergraphs/lavr_mix_output_zero b/ffmpeg-y/tests/filtergraphs/lavr_mix_output_zero old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/lavr_mix_output_zero rename to ffmpeg-y/tests/filtergraphs/lavr_mix_output_zero diff --git a/tests/filtergraphs/mergeplanes b/ffmpeg-y/tests/filtergraphs/mergeplanes old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/mergeplanes rename to ffmpeg-y/tests/filtergraphs/mergeplanes diff --git a/tests/filtergraphs/overlay b/ffmpeg-y/tests/filtergraphs/overlay old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay rename to ffmpeg-y/tests/filtergraphs/overlay diff --git a/tests/filtergraphs/overlay-dvdsub-2397 b/ffmpeg-y/tests/filtergraphs/overlay-dvdsub-2397 old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay-dvdsub-2397 rename to ffmpeg-y/tests/filtergraphs/overlay-dvdsub-2397 diff --git a/tests/filtergraphs/overlay_nv12 b/ffmpeg-y/tests/filtergraphs/overlay_nv12 old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay_nv12 rename to ffmpeg-y/tests/filtergraphs/overlay_nv12 diff --git a/tests/filtergraphs/overlay_nv21 b/ffmpeg-y/tests/filtergraphs/overlay_nv21 old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay_nv21 rename to ffmpeg-y/tests/filtergraphs/overlay_nv21 diff --git a/tests/filtergraphs/overlay_rgb b/ffmpeg-y/tests/filtergraphs/overlay_rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay_rgb rename to ffmpeg-y/tests/filtergraphs/overlay_rgb diff --git a/tests/filtergraphs/overlay_yuv420 b/ffmpeg-y/tests/filtergraphs/overlay_yuv420 old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay_yuv420 rename to ffmpeg-y/tests/filtergraphs/overlay_yuv420 diff --git a/tests/filtergraphs/overlay_yuv422 b/ffmpeg-y/tests/filtergraphs/overlay_yuv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay_yuv422 rename to ffmpeg-y/tests/filtergraphs/overlay_yuv422 diff --git a/tests/filtergraphs/overlay_yuv444 b/ffmpeg-y/tests/filtergraphs/overlay_yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/overlay_yuv444 rename to ffmpeg-y/tests/filtergraphs/overlay_yuv444 diff --git a/tests/filtergraphs/scale2ref_keep_aspect b/ffmpeg-y/tests/filtergraphs/scale2ref_keep_aspect old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/scale2ref_keep_aspect rename to ffmpeg-y/tests/filtergraphs/scale2ref_keep_aspect diff --git a/tests/filtergraphs/scalenorm b/ffmpeg-y/tests/filtergraphs/scalenorm old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/scalenorm rename to ffmpeg-y/tests/filtergraphs/scalenorm diff --git a/tests/filtergraphs/select-alternate b/ffmpeg-y/tests/filtergraphs/select-alternate old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/select-alternate rename to ffmpeg-y/tests/filtergraphs/select-alternate diff --git a/tests/filtergraphs/setpts b/ffmpeg-y/tests/filtergraphs/setpts old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/setpts rename to ffmpeg-y/tests/filtergraphs/setpts diff --git a/tests/filtergraphs/vstack b/ffmpeg-y/tests/filtergraphs/vstack old mode 100644 new mode 100755 similarity index 100% rename from tests/filtergraphs/vstack rename to ffmpeg-y/tests/filtergraphs/vstack diff --git a/tests/md5.sh b/ffmpeg-y/tests/md5.sh old mode 100644 new mode 100755 similarity index 100% rename from tests/md5.sh rename to ffmpeg-y/tests/md5.sh diff --git a/tests/ref/acodec/adpcm-adx b/ffmpeg-y/tests/ref/acodec/adpcm-adx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-adx rename to ffmpeg-y/tests/ref/acodec/adpcm-adx diff --git a/tests/ref/acodec/adpcm-adx-trellis b/ffmpeg-y/tests/ref/acodec/adpcm-adx-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-adx-trellis rename to ffmpeg-y/tests/ref/acodec/adpcm-adx-trellis diff --git a/tests/ref/acodec/adpcm-ima_qt b/ffmpeg-y/tests/ref/acodec/adpcm-ima_qt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-ima_qt rename to ffmpeg-y/tests/ref/acodec/adpcm-ima_qt diff --git a/tests/ref/acodec/adpcm-ima_qt-trellis b/ffmpeg-y/tests/ref/acodec/adpcm-ima_qt-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-ima_qt-trellis rename to ffmpeg-y/tests/ref/acodec/adpcm-ima_qt-trellis diff --git a/tests/ref/acodec/adpcm-ima_wav b/ffmpeg-y/tests/ref/acodec/adpcm-ima_wav old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-ima_wav rename to ffmpeg-y/tests/ref/acodec/adpcm-ima_wav diff --git a/tests/ref/acodec/adpcm-ima_wav-trellis b/ffmpeg-y/tests/ref/acodec/adpcm-ima_wav-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-ima_wav-trellis rename to ffmpeg-y/tests/ref/acodec/adpcm-ima_wav-trellis diff --git a/tests/ref/acodec/adpcm-ms b/ffmpeg-y/tests/ref/acodec/adpcm-ms old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-ms rename to ffmpeg-y/tests/ref/acodec/adpcm-ms diff --git a/tests/ref/acodec/adpcm-ms-trellis b/ffmpeg-y/tests/ref/acodec/adpcm-ms-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-ms-trellis rename to ffmpeg-y/tests/ref/acodec/adpcm-ms-trellis diff --git a/tests/ref/acodec/adpcm-swf b/ffmpeg-y/tests/ref/acodec/adpcm-swf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-swf rename to ffmpeg-y/tests/ref/acodec/adpcm-swf diff --git a/tests/ref/acodec/adpcm-swf-trellis b/ffmpeg-y/tests/ref/acodec/adpcm-swf-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-swf-trellis rename to ffmpeg-y/tests/ref/acodec/adpcm-swf-trellis diff --git a/tests/ref/acodec/adpcm-yamaha b/ffmpeg-y/tests/ref/acodec/adpcm-yamaha old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-yamaha rename to ffmpeg-y/tests/ref/acodec/adpcm-yamaha diff --git a/tests/ref/acodec/adpcm-yamaha-trellis b/ffmpeg-y/tests/ref/acodec/adpcm-yamaha-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm-yamaha-trellis rename to ffmpeg-y/tests/ref/acodec/adpcm-yamaha-trellis diff --git a/tests/ref/acodec/adpcm_ima_qt b/ffmpeg-y/tests/ref/acodec/adpcm_ima_qt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/adpcm_ima_qt rename to ffmpeg-y/tests/ref/acodec/adpcm_ima_qt diff --git a/tests/ref/acodec/alac b/ffmpeg-y/tests/ref/acodec/alac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/alac rename to ffmpeg-y/tests/ref/acodec/alac diff --git a/tests/ref/acodec/flac b/ffmpeg-y/tests/ref/acodec/flac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/flac rename to ffmpeg-y/tests/ref/acodec/flac diff --git a/tests/ref/acodec/flac-exact-rice b/ffmpeg-y/tests/ref/acodec/flac-exact-rice old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/flac-exact-rice rename to ffmpeg-y/tests/ref/acodec/flac-exact-rice diff --git a/tests/ref/acodec/g723_1 b/ffmpeg-y/tests/ref/acodec/g723_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/g723_1 rename to ffmpeg-y/tests/ref/acodec/g723_1 diff --git a/tests/ref/acodec/mp2 b/ffmpeg-y/tests/ref/acodec/mp2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/mp2 rename to ffmpeg-y/tests/ref/acodec/mp2 diff --git a/tests/ref/acodec/mp2fixed b/ffmpeg-y/tests/ref/acodec/mp2fixed old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/mp2fixed rename to ffmpeg-y/tests/ref/acodec/mp2fixed diff --git a/tests/ref/acodec/pcm-alaw b/ffmpeg-y/tests/ref/acodec/pcm-alaw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-alaw rename to ffmpeg-y/tests/ref/acodec/pcm-alaw diff --git a/tests/ref/acodec/pcm-f32be b/ffmpeg-y/tests/ref/acodec/pcm-f32be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-f32be rename to ffmpeg-y/tests/ref/acodec/pcm-f32be diff --git a/tests/ref/acodec/pcm-f32le b/ffmpeg-y/tests/ref/acodec/pcm-f32le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-f32le rename to ffmpeg-y/tests/ref/acodec/pcm-f32le diff --git a/tests/ref/acodec/pcm-f64be b/ffmpeg-y/tests/ref/acodec/pcm-f64be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-f64be rename to ffmpeg-y/tests/ref/acodec/pcm-f64be diff --git a/tests/ref/acodec/pcm-f64le b/ffmpeg-y/tests/ref/acodec/pcm-f64le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-f64le rename to ffmpeg-y/tests/ref/acodec/pcm-f64le diff --git a/tests/ref/acodec/pcm-mulaw b/ffmpeg-y/tests/ref/acodec/pcm-mulaw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-mulaw rename to ffmpeg-y/tests/ref/acodec/pcm-mulaw diff --git a/tests/ref/acodec/pcm-s16be b/ffmpeg-y/tests/ref/acodec/pcm-s16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s16be rename to ffmpeg-y/tests/ref/acodec/pcm-s16be diff --git a/tests/ref/acodec/pcm-s16be_planar b/ffmpeg-y/tests/ref/acodec/pcm-s16be_planar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s16be_planar rename to ffmpeg-y/tests/ref/acodec/pcm-s16be_planar diff --git a/tests/ref/acodec/pcm-s16le b/ffmpeg-y/tests/ref/acodec/pcm-s16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s16le rename to ffmpeg-y/tests/ref/acodec/pcm-s16le diff --git a/tests/ref/acodec/pcm-s16le_planar b/ffmpeg-y/tests/ref/acodec/pcm-s16le_planar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s16le_planar rename to ffmpeg-y/tests/ref/acodec/pcm-s16le_planar diff --git a/tests/ref/acodec/pcm-s24be b/ffmpeg-y/tests/ref/acodec/pcm-s24be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s24be rename to ffmpeg-y/tests/ref/acodec/pcm-s24be diff --git a/tests/ref/acodec/pcm-s24le b/ffmpeg-y/tests/ref/acodec/pcm-s24le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s24le rename to ffmpeg-y/tests/ref/acodec/pcm-s24le diff --git a/tests/ref/acodec/pcm-s24le_planar b/ffmpeg-y/tests/ref/acodec/pcm-s24le_planar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s24le_planar rename to ffmpeg-y/tests/ref/acodec/pcm-s24le_planar diff --git a/tests/ref/acodec/pcm-s32be b/ffmpeg-y/tests/ref/acodec/pcm-s32be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s32be rename to ffmpeg-y/tests/ref/acodec/pcm-s32be diff --git a/tests/ref/acodec/pcm-s32le b/ffmpeg-y/tests/ref/acodec/pcm-s32le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s32le rename to ffmpeg-y/tests/ref/acodec/pcm-s32le diff --git a/tests/ref/acodec/pcm-s32le_planar b/ffmpeg-y/tests/ref/acodec/pcm-s32le_planar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s32le_planar rename to ffmpeg-y/tests/ref/acodec/pcm-s32le_planar diff --git a/tests/ref/acodec/pcm-s8 b/ffmpeg-y/tests/ref/acodec/pcm-s8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s8 rename to ffmpeg-y/tests/ref/acodec/pcm-s8 diff --git a/tests/ref/acodec/pcm-s8_planar b/ffmpeg-y/tests/ref/acodec/pcm-s8_planar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-s8_planar rename to ffmpeg-y/tests/ref/acodec/pcm-s8_planar diff --git a/tests/ref/acodec/pcm-u16be b/ffmpeg-y/tests/ref/acodec/pcm-u16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u16be rename to ffmpeg-y/tests/ref/acodec/pcm-u16be diff --git a/tests/ref/acodec/pcm-u16le b/ffmpeg-y/tests/ref/acodec/pcm-u16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u16le rename to ffmpeg-y/tests/ref/acodec/pcm-u16le diff --git a/tests/ref/acodec/pcm-u24be b/ffmpeg-y/tests/ref/acodec/pcm-u24be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u24be rename to ffmpeg-y/tests/ref/acodec/pcm-u24be diff --git a/tests/ref/acodec/pcm-u24le b/ffmpeg-y/tests/ref/acodec/pcm-u24le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u24le rename to ffmpeg-y/tests/ref/acodec/pcm-u24le diff --git a/tests/ref/acodec/pcm-u32be b/ffmpeg-y/tests/ref/acodec/pcm-u32be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u32be rename to ffmpeg-y/tests/ref/acodec/pcm-u32be diff --git a/tests/ref/acodec/pcm-u32le b/ffmpeg-y/tests/ref/acodec/pcm-u32le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u32le rename to ffmpeg-y/tests/ref/acodec/pcm-u32le diff --git a/tests/ref/acodec/pcm-u8 b/ffmpeg-y/tests/ref/acodec/pcm-u8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/pcm-u8 rename to ffmpeg-y/tests/ref/acodec/pcm-u8 diff --git a/tests/ref/acodec/roqaudio b/ffmpeg-y/tests/ref/acodec/roqaudio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/roqaudio rename to ffmpeg-y/tests/ref/acodec/roqaudio diff --git a/tests/ref/acodec/s302m b/ffmpeg-y/tests/ref/acodec/s302m old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/s302m rename to ffmpeg-y/tests/ref/acodec/s302m diff --git a/tests/ref/acodec/tta b/ffmpeg-y/tests/ref/acodec/tta old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/tta rename to ffmpeg-y/tests/ref/acodec/tta diff --git a/tests/ref/acodec/wavpack b/ffmpeg-y/tests/ref/acodec/wavpack old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/acodec/wavpack rename to ffmpeg-y/tests/ref/acodec/wavpack diff --git a/tests/ref/fate/012v b/ffmpeg-y/tests/ref/fate/012v old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/012v rename to ffmpeg-y/tests/ref/fate/012v diff --git a/tests/ref/fate/4xm-1 b/ffmpeg-y/tests/ref/fate/4xm-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/4xm-1 rename to ffmpeg-y/tests/ref/fate/4xm-1 diff --git a/tests/ref/fate/4xm-2 b/ffmpeg-y/tests/ref/fate/4xm-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/4xm-2 rename to ffmpeg-y/tests/ref/fate/4xm-2 diff --git a/tests/ref/fate/8bps b/ffmpeg-y/tests/ref/fate/8bps old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/8bps rename to ffmpeg-y/tests/ref/fate/8bps diff --git a/tests/ref/fate/aac-autobsf-adtstoasc b/ffmpeg-y/tests/ref/fate/aac-autobsf-adtstoasc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aac-autobsf-adtstoasc rename to ffmpeg-y/tests/ref/fate/aac-autobsf-adtstoasc diff --git a/tests/ref/fate/aasc b/ffmpeg-y/tests/ref/fate/aasc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aasc rename to ffmpeg-y/tests/ref/fate/aasc diff --git a/tests/ref/fate/acodec-aref b/ffmpeg-y/tests/ref/fate/acodec-aref old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/acodec-aref rename to ffmpeg-y/tests/ref/fate/acodec-aref diff --git a/tests/ref/fate/adpcm-4xm b/ffmpeg-y/tests/ref/fate/adpcm-4xm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-4xm rename to ffmpeg-y/tests/ref/fate/adpcm-4xm diff --git a/tests/ref/fate/adpcm-afc b/ffmpeg-y/tests/ref/fate/adpcm-afc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-afc rename to ffmpeg-y/tests/ref/fate/adpcm-afc diff --git a/tests/ref/fate/adpcm-creative b/ffmpeg-y/tests/ref/fate/adpcm-creative old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-creative rename to ffmpeg-y/tests/ref/fate/adpcm-creative diff --git a/tests/ref/fate/adpcm-creative-8-2.6bit b/ffmpeg-y/tests/ref/fate/adpcm-creative-8-2.6bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-creative-8-2.6bit rename to ffmpeg-y/tests/ref/fate/adpcm-creative-8-2.6bit diff --git a/tests/ref/fate/adpcm-creative-8-2bit b/ffmpeg-y/tests/ref/fate/adpcm-creative-8-2bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-creative-8-2bit rename to ffmpeg-y/tests/ref/fate/adpcm-creative-8-2bit diff --git a/tests/ref/fate/adpcm-creative-8-4bit b/ffmpeg-y/tests/ref/fate/adpcm-creative-8-4bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-creative-8-4bit rename to ffmpeg-y/tests/ref/fate/adpcm-creative-8-4bit diff --git a/tests/ref/fate/adpcm-dtk b/ffmpeg-y/tests/ref/fate/adpcm-dtk old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-dtk rename to ffmpeg-y/tests/ref/fate/adpcm-dtk diff --git a/tests/ref/fate/adpcm-ea-1 b/ffmpeg-y/tests/ref/fate/adpcm-ea-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ea-1 rename to ffmpeg-y/tests/ref/fate/adpcm-ea-1 diff --git a/tests/ref/fate/adpcm-ea-2 b/ffmpeg-y/tests/ref/fate/adpcm-ea-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ea-2 rename to ffmpeg-y/tests/ref/fate/adpcm-ea-2 diff --git a/tests/ref/fate/adpcm-ea-maxis-xa b/ffmpeg-y/tests/ref/fate/adpcm-ea-maxis-xa old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ea-maxis-xa rename to ffmpeg-y/tests/ref/fate/adpcm-ea-maxis-xa diff --git a/tests/ref/fate/adpcm-ea-r1 b/ffmpeg-y/tests/ref/fate/adpcm-ea-r1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ea-r1 rename to ffmpeg-y/tests/ref/fate/adpcm-ea-r1 diff --git a/tests/ref/fate/adpcm-ea-r2 b/ffmpeg-y/tests/ref/fate/adpcm-ea-r2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ea-r2 rename to ffmpeg-y/tests/ref/fate/adpcm-ea-r2 diff --git a/tests/ref/fate/adpcm-ea-r3 b/ffmpeg-y/tests/ref/fate/adpcm-ea-r3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ea-r3 rename to ffmpeg-y/tests/ref/fate/adpcm-ea-r3 diff --git a/tests/ref/fate/adpcm-ima-amv b/ffmpeg-y/tests/ref/fate/adpcm-ima-amv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-amv rename to ffmpeg-y/tests/ref/fate/adpcm-ima-amv diff --git a/tests/ref/fate/adpcm-ima-apc b/ffmpeg-y/tests/ref/fate/adpcm-ima-apc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-apc rename to ffmpeg-y/tests/ref/fate/adpcm-ima-apc diff --git a/tests/ref/fate/adpcm-ima-dk3 b/ffmpeg-y/tests/ref/fate/adpcm-ima-dk3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-dk3 rename to ffmpeg-y/tests/ref/fate/adpcm-ima-dk3 diff --git a/tests/ref/fate/adpcm-ima-dk4 b/ffmpeg-y/tests/ref/fate/adpcm-ima-dk4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-dk4 rename to ffmpeg-y/tests/ref/fate/adpcm-ima-dk4 diff --git a/tests/ref/fate/adpcm-ima-ea-eacs b/ffmpeg-y/tests/ref/fate/adpcm-ima-ea-eacs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-ea-eacs rename to ffmpeg-y/tests/ref/fate/adpcm-ima-ea-eacs diff --git a/tests/ref/fate/adpcm-ima-ea-sead b/ffmpeg-y/tests/ref/fate/adpcm-ima-ea-sead old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-ea-sead rename to ffmpeg-y/tests/ref/fate/adpcm-ima-ea-sead diff --git a/tests/ref/fate/adpcm-ima-iss b/ffmpeg-y/tests/ref/fate/adpcm-ima-iss old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-iss rename to ffmpeg-y/tests/ref/fate/adpcm-ima-iss diff --git a/tests/ref/fate/adpcm-ima-oki b/ffmpeg-y/tests/ref/fate/adpcm-ima-oki old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-oki rename to ffmpeg-y/tests/ref/fate/adpcm-ima-oki diff --git a/tests/ref/fate/adpcm-ima-rad b/ffmpeg-y/tests/ref/fate/adpcm-ima-rad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-rad rename to ffmpeg-y/tests/ref/fate/adpcm-ima-rad diff --git a/tests/ref/fate/adpcm-ima-smjpeg b/ffmpeg-y/tests/ref/fate/adpcm-ima-smjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-smjpeg rename to ffmpeg-y/tests/ref/fate/adpcm-ima-smjpeg diff --git a/tests/ref/fate/adpcm-ima-ws b/ffmpeg-y/tests/ref/fate/adpcm-ima-ws old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima-ws rename to ffmpeg-y/tests/ref/fate/adpcm-ima-ws diff --git a/tests/ref/fate/adpcm-ima_wav-stereo b/ffmpeg-y/tests/ref/fate/adpcm-ima_wav-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ima_wav-stereo rename to ffmpeg-y/tests/ref/fate/adpcm-ima_wav-stereo diff --git a/tests/ref/fate/adpcm-ms-mono b/ffmpeg-y/tests/ref/fate/adpcm-ms-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-ms-mono rename to ffmpeg-y/tests/ref/fate/adpcm-ms-mono diff --git a/tests/ref/fate/adpcm-thp b/ffmpeg-y/tests/ref/fate/adpcm-thp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-thp rename to ffmpeg-y/tests/ref/fate/adpcm-thp diff --git a/tests/ref/fate/adpcm-vima b/ffmpeg-y/tests/ref/fate/adpcm-vima old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-vima rename to ffmpeg-y/tests/ref/fate/adpcm-vima diff --git a/tests/ref/fate/adpcm-xa b/ffmpeg-y/tests/ref/fate/adpcm-xa old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm-xa rename to ffmpeg-y/tests/ref/fate/adpcm-xa diff --git a/tests/ref/fate/adpcm_ms-stereo b/ffmpeg-y/tests/ref/fate/adpcm_ms-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adpcm_ms-stereo rename to ffmpeg-y/tests/ref/fate/adpcm_ms-stereo diff --git a/tests/ref/fate/adts-demux b/ffmpeg-y/tests/ref/fate/adts-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adts-demux rename to ffmpeg-y/tests/ref/fate/adts-demux diff --git a/tests/ref/fate/adts-id3v1-demux b/ffmpeg-y/tests/ref/fate/adts-id3v1-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adts-id3v1-demux rename to ffmpeg-y/tests/ref/fate/adts-id3v1-demux diff --git a/tests/ref/fate/adts-id3v2-demux b/ffmpeg-y/tests/ref/fate/adts-id3v2-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adts-id3v2-demux rename to ffmpeg-y/tests/ref/fate/adts-id3v2-demux diff --git a/tests/ref/fate/adts-id3v2-two-tags-demux b/ffmpeg-y/tests/ref/fate/adts-id3v2-two-tags-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adts-id3v2-two-tags-demux rename to ffmpeg-y/tests/ref/fate/adts-id3v2-two-tags-demux diff --git a/tests/ref/fate/adtstoasc_ticket3715 b/ffmpeg-y/tests/ref/fate/adtstoasc_ticket3715 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/adtstoasc_ticket3715 rename to ffmpeg-y/tests/ref/fate/adtstoasc_ticket3715 diff --git a/tests/ref/fate/aea-demux b/ffmpeg-y/tests/ref/fate/aea-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aea-demux rename to ffmpeg-y/tests/ref/fate/aea-demux diff --git a/tests/ref/fate/aic b/ffmpeg-y/tests/ref/fate/aic old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aic rename to ffmpeg-y/tests/ref/fate/aic diff --git a/tests/ref/fate/aic-oddsize b/ffmpeg-y/tests/ref/fate/aic-oddsize old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aic-oddsize rename to ffmpeg-y/tests/ref/fate/aic-oddsize diff --git a/tests/ref/fate/alg-mm b/ffmpeg-y/tests/ref/fate/alg-mm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/alg-mm rename to ffmpeg-y/tests/ref/fate/alg-mm diff --git a/tests/ref/fate/aliaspix-bgr b/ffmpeg-y/tests/ref/fate/aliaspix-bgr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aliaspix-bgr rename to ffmpeg-y/tests/ref/fate/aliaspix-bgr diff --git a/tests/ref/fate/aliaspix-gray b/ffmpeg-y/tests/ref/fate/aliaspix-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/aliaspix-gray rename to ffmpeg-y/tests/ref/fate/aliaspix-gray diff --git a/tests/ref/fate/amv b/ffmpeg-y/tests/ref/fate/amv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/amv rename to ffmpeg-y/tests/ref/fate/amv diff --git a/tests/ref/fate/ansi b/ffmpeg-y/tests/ref/fate/ansi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ansi rename to ffmpeg-y/tests/ref/fate/ansi diff --git a/tests/ref/fate/ansi256 b/ffmpeg-y/tests/ref/fate/ansi256 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ansi256 rename to ffmpeg-y/tests/ref/fate/ansi256 diff --git a/tests/ref/fate/api-h264 b/ffmpeg-y/tests/ref/fate/api-h264 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/api-h264 rename to ffmpeg-y/tests/ref/fate/api-h264 diff --git a/tests/ref/fate/api-h264-slice b/ffmpeg-y/tests/ref/fate/api-h264-slice old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/api-h264-slice rename to ffmpeg-y/tests/ref/fate/api-h264-slice diff --git a/tests/ref/fate/api-mjpeg-codec-param b/ffmpeg-y/tests/ref/fate/api-mjpeg-codec-param old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/api-mjpeg-codec-param rename to ffmpeg-y/tests/ref/fate/api-mjpeg-codec-param diff --git a/tests/ref/fate/api-png-codec-param b/ffmpeg-y/tests/ref/fate/api-png-codec-param old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/api-png-codec-param rename to ffmpeg-y/tests/ref/fate/api-png-codec-param diff --git a/tests/ref/fate/apng-clock b/ffmpeg-y/tests/ref/fate/apng-clock old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/apng-clock rename to ffmpeg-y/tests/ref/fate/apng-clock diff --git a/tests/ref/fate/apng-osample b/ffmpeg-y/tests/ref/fate/apng-osample old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/apng-osample rename to ffmpeg-y/tests/ref/fate/apng-osample diff --git a/tests/ref/fate/armovie-escape124 b/ffmpeg-y/tests/ref/fate/armovie-escape124 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/armovie-escape124 rename to ffmpeg-y/tests/ref/fate/armovie-escape124 diff --git a/tests/ref/fate/armovie-escape130 b/ffmpeg-y/tests/ref/fate/armovie-escape130 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/armovie-escape130 rename to ffmpeg-y/tests/ref/fate/armovie-escape130 diff --git a/tests/ref/fate/asf-repldata b/ffmpeg-y/tests/ref/fate/asf-repldata old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/asf-repldata rename to ffmpeg-y/tests/ref/fate/asf-repldata diff --git a/tests/ref/fate/ast b/ffmpeg-y/tests/ref/fate/ast old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ast rename to ffmpeg-y/tests/ref/fate/ast diff --git a/tests/ref/fate/async b/ffmpeg-y/tests/ref/fate/async old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/async rename to ffmpeg-y/tests/ref/fate/async diff --git a/tests/ref/fate/audio_fifo b/ffmpeg-y/tests/ref/fate/audio_fifo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audio_fifo rename to ffmpeg-y/tests/ref/fate/audio_fifo diff --git a/tests/ref/fate/audiomatch-afconvert-16000-mono-he-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-he-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-mono-he-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-he-adts diff --git a/tests/ref/fate/audiomatch-afconvert-16000-mono-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-mono-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-he-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-16000-mono-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-mono-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-lc-adts diff --git a/tests/ref/fate/audiomatch-afconvert-16000-mono-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-mono-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-mono-lc-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-16000-stereo-he-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-stereo-he-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he-adts diff --git a/tests/ref/fate/audiomatch-afconvert-16000-stereo-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-stereo-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-adts diff --git a/tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-he2-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-adts diff --git a/tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-16000-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-44100-mono-he-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-he-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-mono-he-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-he-adts diff --git a/tests/ref/fate/audiomatch-afconvert-44100-mono-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-mono-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-he-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-44100-mono-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-mono-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-lc-adts diff --git a/tests/ref/fate/audiomatch-afconvert-44100-mono-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-mono-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-mono-lc-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-44100-stereo-he-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-stereo-he-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he-adts diff --git a/tests/ref/fate/audiomatch-afconvert-44100-stereo-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-stereo-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-adts diff --git a/tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-he2-m4a diff --git a/tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-adts diff --git a/tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-afconvert-44100-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-dolby-44100-mono-he-mp4 b/ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-mono-he-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-dolby-44100-mono-he-mp4 rename to ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-mono-he-mp4 diff --git a/tests/ref/fate/audiomatch-dolby-44100-mono-lc-mp4 b/ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-mono-lc-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-dolby-44100-mono-lc-mp4 rename to ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-mono-lc-mp4 diff --git a/tests/ref/fate/audiomatch-dolby-44100-stereo-he-mp4 b/ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-stereo-he-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-dolby-44100-stereo-he-mp4 rename to ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-stereo-he-mp4 diff --git a/tests/ref/fate/audiomatch-dolby-44100-stereo-he2-mp4 b/ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-stereo-he2-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-dolby-44100-stereo-he2-mp4 rename to ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-stereo-he2-mp4 diff --git a/tests/ref/fate/audiomatch-dolby-44100-stereo-lc-mp4 b/ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-stereo-lc-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-dolby-44100-stereo-lc-mp4 rename to ffmpeg-y/tests/ref/fate/audiomatch-dolby-44100-stereo-lc-mp4 diff --git a/tests/ref/fate/audiomatch-faac-16000-mono-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-mono-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-16000-mono-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-mono-lc-adts diff --git a/tests/ref/fate/audiomatch-faac-16000-mono-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-mono-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-16000-mono-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-mono-lc-m4a diff --git a/tests/ref/fate/audiomatch-faac-16000-stereo-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-stereo-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-16000-stereo-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-stereo-lc-adts diff --git a/tests/ref/fate/audiomatch-faac-16000-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-16000-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-16000-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-faac-44100-mono-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-mono-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-44100-mono-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-mono-lc-adts diff --git a/tests/ref/fate/audiomatch-faac-44100-mono-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-mono-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-44100-mono-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-mono-lc-m4a diff --git a/tests/ref/fate/audiomatch-faac-44100-stereo-lc-adts b/ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-stereo-lc-adts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-44100-stereo-lc-adts rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-stereo-lc-adts diff --git a/tests/ref/fate/audiomatch-faac-44100-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-faac-44100-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-faac-44100-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-nero-16000-mono-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-mono-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-16000-mono-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-mono-he-m4a diff --git a/tests/ref/fate/audiomatch-nero-16000-mono-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-mono-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-16000-mono-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-mono-lc-m4a diff --git a/tests/ref/fate/audiomatch-nero-16000-stereo-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-stereo-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-16000-stereo-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-stereo-he-m4a diff --git a/tests/ref/fate/audiomatch-nero-16000-stereo-he2-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-stereo-he2-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-16000-stereo-he2-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-stereo-he2-m4a diff --git a/tests/ref/fate/audiomatch-nero-16000-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-16000-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-16000-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-nero-44100-mono-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-mono-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-44100-mono-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-mono-he-m4a diff --git a/tests/ref/fate/audiomatch-nero-44100-mono-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-mono-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-44100-mono-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-mono-lc-m4a diff --git a/tests/ref/fate/audiomatch-nero-44100-stereo-he-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-stereo-he-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-44100-stereo-he-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-stereo-he-m4a diff --git a/tests/ref/fate/audiomatch-nero-44100-stereo-he2-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-stereo-he2-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-44100-stereo-he2-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-stereo-he2-m4a diff --git a/tests/ref/fate/audiomatch-nero-44100-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-nero-44100-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-nero-44100-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-quicktime7-44100-stereo-lc-mp4 b/ffmpeg-y/tests/ref/fate/audiomatch-quicktime7-44100-stereo-lc-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-quicktime7-44100-stereo-lc-mp4 rename to ffmpeg-y/tests/ref/fate/audiomatch-quicktime7-44100-stereo-lc-mp4 diff --git a/tests/ref/fate/audiomatch-quicktimeX-44100-stereo-lc-m4a b/ffmpeg-y/tests/ref/fate/audiomatch-quicktimeX-44100-stereo-lc-m4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-quicktimeX-44100-stereo-lc-m4a rename to ffmpeg-y/tests/ref/fate/audiomatch-quicktimeX-44100-stereo-lc-m4a diff --git a/tests/ref/fate/audiomatch-square-aac b/ffmpeg-y/tests/ref/fate/audiomatch-square-aac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-square-aac rename to ffmpeg-y/tests/ref/fate/audiomatch-square-aac diff --git a/tests/ref/fate/audiomatch-square-mp3 b/ffmpeg-y/tests/ref/fate/audiomatch-square-mp3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/audiomatch-square-mp3 rename to ffmpeg-y/tests/ref/fate/audiomatch-square-mp3 diff --git a/tests/ref/fate/auravision-v1 b/ffmpeg-y/tests/ref/fate/auravision-v1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/auravision-v1 rename to ffmpeg-y/tests/ref/fate/auravision-v1 diff --git a/tests/ref/fate/auravision-v2 b/ffmpeg-y/tests/ref/fate/auravision-v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/auravision-v2 rename to ffmpeg-y/tests/ref/fate/auravision-v2 diff --git a/tests/ref/fate/avio-direct b/ffmpeg-y/tests/ref/fate/avio-direct old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/avio-direct rename to ffmpeg-y/tests/ref/fate/avio-direct diff --git a/tests/ref/fate/avstring b/ffmpeg-y/tests/ref/fate/avstring old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/avstring rename to ffmpeg-y/tests/ref/fate/avstring diff --git a/tests/ref/fate/base64 b/ffmpeg-y/tests/ref/fate/base64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/base64 rename to ffmpeg-y/tests/ref/fate/base64 diff --git a/tests/ref/fate/bcstm b/ffmpeg-y/tests/ref/fate/bcstm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bcstm rename to ffmpeg-y/tests/ref/fate/bcstm diff --git a/tests/ref/fate/bethsoft-vid b/ffmpeg-y/tests/ref/fate/bethsoft-vid old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bethsoft-vid rename to ffmpeg-y/tests/ref/fate/bethsoft-vid diff --git a/tests/ref/fate/bfi b/ffmpeg-y/tests/ref/fate/bfi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bfi rename to ffmpeg-y/tests/ref/fate/bfi diff --git a/tests/ref/fate/bfstm b/ffmpeg-y/tests/ref/fate/bfstm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bfstm rename to ffmpeg-y/tests/ref/fate/bfstm diff --git a/tests/ref/fate/bink-demux b/ffmpeg-y/tests/ref/fate/bink-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bink-demux rename to ffmpeg-y/tests/ref/fate/bink-demux diff --git a/tests/ref/fate/bink-video-b b/ffmpeg-y/tests/ref/fate/bink-video-b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bink-video-b rename to ffmpeg-y/tests/ref/fate/bink-video-b diff --git a/tests/ref/fate/bink-video-f b/ffmpeg-y/tests/ref/fate/bink-video-f old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bink-video-f rename to ffmpeg-y/tests/ref/fate/bink-video-f diff --git a/tests/ref/fate/bink-video-i b/ffmpeg-y/tests/ref/fate/bink-video-i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bink-video-i rename to ffmpeg-y/tests/ref/fate/bink-video-i diff --git a/tests/ref/fate/binsub-mksenc b/ffmpeg-y/tests/ref/fate/binsub-mksenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/binsub-mksenc rename to ffmpeg-y/tests/ref/fate/binsub-mksenc diff --git a/tests/ref/fate/binsub-movtextenc b/ffmpeg-y/tests/ref/fate/binsub-movtextenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/binsub-movtextenc rename to ffmpeg-y/tests/ref/fate/binsub-movtextenc diff --git a/tests/ref/fate/blowfish b/ffmpeg-y/tests/ref/fate/blowfish old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/blowfish rename to ffmpeg-y/tests/ref/fate/blowfish diff --git a/tests/ref/fate/bmp-15bit b/ffmpeg-y/tests/ref/fate/bmp-15bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-15bit rename to ffmpeg-y/tests/ref/fate/bmp-15bit diff --git a/tests/ref/fate/bmp-15bit-mask b/ffmpeg-y/tests/ref/fate/bmp-15bit-mask old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-15bit-mask rename to ffmpeg-y/tests/ref/fate/bmp-15bit-mask diff --git a/tests/ref/fate/bmp-16bit-mask b/ffmpeg-y/tests/ref/fate/bmp-16bit-mask old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-16bit-mask rename to ffmpeg-y/tests/ref/fate/bmp-16bit-mask diff --git a/tests/ref/fate/bmp-1bit b/ffmpeg-y/tests/ref/fate/bmp-1bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-1bit rename to ffmpeg-y/tests/ref/fate/bmp-1bit diff --git a/tests/ref/fate/bmp-24bit b/ffmpeg-y/tests/ref/fate/bmp-24bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-24bit rename to ffmpeg-y/tests/ref/fate/bmp-24bit diff --git a/tests/ref/fate/bmp-32bit b/ffmpeg-y/tests/ref/fate/bmp-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-32bit rename to ffmpeg-y/tests/ref/fate/bmp-32bit diff --git a/tests/ref/fate/bmp-32bit-mask b/ffmpeg-y/tests/ref/fate/bmp-32bit-mask old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-32bit-mask rename to ffmpeg-y/tests/ref/fate/bmp-32bit-mask diff --git a/tests/ref/fate/bmp-4bit b/ffmpeg-y/tests/ref/fate/bmp-4bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-4bit rename to ffmpeg-y/tests/ref/fate/bmp-4bit diff --git a/tests/ref/fate/bmp-4bit-os2 b/ffmpeg-y/tests/ref/fate/bmp-4bit-os2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-4bit-os2 rename to ffmpeg-y/tests/ref/fate/bmp-4bit-os2 diff --git a/tests/ref/fate/bmp-8bit b/ffmpeg-y/tests/ref/fate/bmp-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-8bit rename to ffmpeg-y/tests/ref/fate/bmp-8bit diff --git a/tests/ref/fate/bmp-8bit-os2 b/ffmpeg-y/tests/ref/fate/bmp-8bit-os2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-8bit-os2 rename to ffmpeg-y/tests/ref/fate/bmp-8bit-os2 diff --git a/tests/ref/fate/bmp-rle4 b/ffmpeg-y/tests/ref/fate/bmp-rle4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-rle4 rename to ffmpeg-y/tests/ref/fate/bmp-rle4 diff --git a/tests/ref/fate/bmp-rle8 b/ffmpeg-y/tests/ref/fate/bmp-rle8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmp-rle8 rename to ffmpeg-y/tests/ref/fate/bmp-rle8 diff --git a/tests/ref/fate/bmpparser b/ffmpeg-y/tests/ref/fate/bmpparser old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmpparser rename to ffmpeg-y/tests/ref/fate/bmpparser diff --git a/tests/ref/fate/bmv-audio b/ffmpeg-y/tests/ref/fate/bmv-audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmv-audio rename to ffmpeg-y/tests/ref/fate/bmv-audio diff --git a/tests/ref/fate/bmv-video b/ffmpeg-y/tests/ref/fate/bmv-video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bmv-video rename to ffmpeg-y/tests/ref/fate/bmv-video diff --git a/tests/ref/fate/bprint b/ffmpeg-y/tests/ref/fate/bprint old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/bprint rename to ffmpeg-y/tests/ref/fate/bprint diff --git a/tests/ref/fate/brenderpix-24 b/ffmpeg-y/tests/ref/fate/brenderpix-24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/brenderpix-24 rename to ffmpeg-y/tests/ref/fate/brenderpix-24 diff --git a/tests/ref/fate/brenderpix-565 b/ffmpeg-y/tests/ref/fate/brenderpix-565 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/brenderpix-565 rename to ffmpeg-y/tests/ref/fate/brenderpix-565 diff --git a/tests/ref/fate/brenderpix-defpal b/ffmpeg-y/tests/ref/fate/brenderpix-defpal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/brenderpix-defpal rename to ffmpeg-y/tests/ref/fate/brenderpix-defpal diff --git a/tests/ref/fate/brenderpix-intpal b/ffmpeg-y/tests/ref/fate/brenderpix-intpal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/brenderpix-intpal rename to ffmpeg-y/tests/ref/fate/brenderpix-intpal diff --git a/tests/ref/fate/brenderpix-y400a b/ffmpeg-y/tests/ref/fate/brenderpix-y400a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/brenderpix-y400a rename to ffmpeg-y/tests/ref/fate/brenderpix-y400a diff --git a/tests/ref/fate/brstm b/ffmpeg-y/tests/ref/fate/brstm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/brstm rename to ffmpeg-y/tests/ref/fate/brstm diff --git a/tests/ref/fate/caf b/ffmpeg-y/tests/ref/fate/caf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/caf rename to ffmpeg-y/tests/ref/fate/caf diff --git a/tests/ref/fate/canopus-cllc-argb b/ffmpeg-y/tests/ref/fate/canopus-cllc-argb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-cllc-argb rename to ffmpeg-y/tests/ref/fate/canopus-cllc-argb diff --git a/tests/ref/fate/canopus-cllc-rgb b/ffmpeg-y/tests/ref/fate/canopus-cllc-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-cllc-rgb rename to ffmpeg-y/tests/ref/fate/canopus-cllc-rgb diff --git a/tests/ref/fate/canopus-cllc-yuy2-noblock b/ffmpeg-y/tests/ref/fate/canopus-cllc-yuy2-noblock old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-cllc-yuy2-noblock rename to ffmpeg-y/tests/ref/fate/canopus-cllc-yuy2-noblock diff --git a/tests/ref/fate/canopus-hq_hqa-hq b/ffmpeg-y/tests/ref/fate/canopus-hq_hqa-hq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-hq_hqa-hq rename to ffmpeg-y/tests/ref/fate/canopus-hq_hqa-hq diff --git a/tests/ref/fate/canopus-hq_hqa-hqa b/ffmpeg-y/tests/ref/fate/canopus-hq_hqa-hqa old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-hq_hqa-hqa rename to ffmpeg-y/tests/ref/fate/canopus-hq_hqa-hqa diff --git a/tests/ref/fate/canopus-hq_hqa-inter b/ffmpeg-y/tests/ref/fate/canopus-hq_hqa-inter old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-hq_hqa-inter rename to ffmpeg-y/tests/ref/fate/canopus-hq_hqa-inter diff --git a/tests/ref/fate/canopus-hqx422 b/ffmpeg-y/tests/ref/fate/canopus-hqx422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-hqx422 rename to ffmpeg-y/tests/ref/fate/canopus-hqx422 diff --git a/tests/ref/fate/canopus-hqx422a b/ffmpeg-y/tests/ref/fate/canopus-hqx422a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/canopus-hqx422a rename to ffmpeg-y/tests/ref/fate/canopus-hqx422a diff --git a/tests/ref/fate/cavs b/ffmpeg-y/tests/ref/fate/cavs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cavs rename to ffmpeg-y/tests/ref/fate/cavs diff --git a/tests/ref/fate/cbs-h264-AUD_MW_E b/ffmpeg-y/tests/ref/fate/cbs-h264-AUD_MW_E old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-AUD_MW_E rename to ffmpeg-y/tests/ref/fate/cbs-h264-AUD_MW_E diff --git a/tests/ref/fate/cbs-h264-BASQP1_Sony_C b/ffmpeg-y/tests/ref/fate/cbs-h264-BASQP1_Sony_C old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-BASQP1_Sony_C rename to ffmpeg-y/tests/ref/fate/cbs-h264-BASQP1_Sony_C diff --git a/tests/ref/fate/cbs-h264-CABACI3_Sony_B b/ffmpeg-y/tests/ref/fate/cbs-h264-CABACI3_Sony_B old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CABACI3_Sony_B rename to ffmpeg-y/tests/ref/fate/cbs-h264-CABACI3_Sony_B diff --git a/tests/ref/fate/cbs-h264-CVBS3_Sony_C b/ffmpeg-y/tests/ref/fate/cbs-h264-CVBS3_Sony_C old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CVBS3_Sony_C rename to ffmpeg-y/tests/ref/fate/cbs-h264-CVBS3_Sony_C diff --git a/tests/ref/fate/cbs-h264-CVFC1_Sony_C b/ffmpeg-y/tests/ref/fate/cbs-h264-CVFC1_Sony_C old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CVFC1_Sony_C rename to ffmpeg-y/tests/ref/fate/cbs-h264-CVFC1_Sony_C diff --git a/tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B b/ffmpeg-y/tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B rename to ffmpeg-y/tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B diff --git a/tests/ref/fate/cbs-h264-CVNLFI1_Sony_C b/ffmpeg-y/tests/ref/fate/cbs-h264-CVNLFI1_Sony_C old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CVNLFI1_Sony_C rename to ffmpeg-y/tests/ref/fate/cbs-h264-CVNLFI1_Sony_C diff --git a/tests/ref/fate/cbs-h264-CVSE2_Sony_B b/ffmpeg-y/tests/ref/fate/cbs-h264-CVSE2_Sony_B old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CVSE2_Sony_B rename to ffmpeg-y/tests/ref/fate/cbs-h264-CVSE2_Sony_B diff --git a/tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E b/ffmpeg-y/tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E rename to ffmpeg-y/tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E diff --git a/tests/ref/fate/cbs-h264-FM1_BT_B b/ffmpeg-y/tests/ref/fate/cbs-h264-FM1_BT_B old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-FM1_BT_B rename to ffmpeg-y/tests/ref/fate/cbs-h264-FM1_BT_B diff --git a/tests/ref/fate/cbs-h264-MR1_BT_A b/ffmpeg-y/tests/ref/fate/cbs-h264-MR1_BT_A old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-MR1_BT_A rename to ffmpeg-y/tests/ref/fate/cbs-h264-MR1_BT_A diff --git a/tests/ref/fate/cbs-h264-SVA_Base_B b/ffmpeg-y/tests/ref/fate/cbs-h264-SVA_Base_B old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-SVA_Base_B rename to ffmpeg-y/tests/ref/fate/cbs-h264-SVA_Base_B diff --git a/tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 b/ffmpeg-y/tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 rename to ffmpeg-y/tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2 diff --git a/tests/ref/fate/cbs-h264-sei-1 b/ffmpeg-y/tests/ref/fate/cbs-h264-sei-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-sei-1 rename to ffmpeg-y/tests/ref/fate/cbs-h264-sei-1 diff --git a/tests/ref/fate/cbs-h264-sp1_bt_a b/ffmpeg-y/tests/ref/fate/cbs-h264-sp1_bt_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-h264-sp1_bt_a rename to ffmpeg-y/tests/ref/fate/cbs-h264-sp1_bt_a diff --git a/tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 b/ffmpeg-y/tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3 diff --git a/tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 b/ffmpeg-y/tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3 diff --git a/tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 b/ffmpeg-y/tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1 diff --git a/tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 b/ffmpeg-y/tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2 diff --git a/tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1 diff --git a/tests/ref/fate/cbs-hevc-NUT_A_ericsson_5 b/ffmpeg-y/tests/ref/fate/cbs-hevc-NUT_A_ericsson_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-NUT_A_ericsson_5 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-NUT_A_ericsson_5 diff --git a/tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 b/ffmpeg-y/tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1 diff --git a/tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 b/ffmpeg-y/tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1 diff --git a/tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4 b/ffmpeg-y/tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4 diff --git a/tests/ref/fate/cbs-hevc-RPS_A_docomo_4 b/ffmpeg-y/tests/ref/fate/cbs-hevc-RPS_A_docomo_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-RPS_A_docomo_4 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-RPS_A_docomo_4 diff --git a/tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5 b/ffmpeg-y/tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5 diff --git a/tests/ref/fate/cbs-hevc-SLIST_A_Sony_4 b/ffmpeg-y/tests/ref/fate/cbs-hevc-SLIST_A_Sony_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-SLIST_A_Sony_4 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-SLIST_A_Sony_4 diff --git a/tests/ref/fate/cbs-hevc-SLIST_D_Sony_9 b/ffmpeg-y/tests/ref/fate/cbs-hevc-SLIST_D_Sony_9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-SLIST_D_Sony_9 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-SLIST_D_Sony_9 diff --git a/tests/ref/fate/cbs-hevc-SLPPLP_A_VIDYO_2 b/ffmpeg-y/tests/ref/fate/cbs-hevc-SLPPLP_A_VIDYO_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-SLPPLP_A_VIDYO_2 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-SLPPLP_A_VIDYO_2 diff --git a/tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5 b/ffmpeg-y/tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5 diff --git a/tests/ref/fate/cbs-hevc-TILES_B_Cisco_1 b/ffmpeg-y/tests/ref/fate/cbs-hevc-TILES_B_Cisco_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-TILES_B_Cisco_1 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-TILES_B_Cisco_1 diff --git a/tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 diff --git a/tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 diff --git a/tests/ref/fate/cbs-hevc-WP_A_Toshiba_3 b/ffmpeg-y/tests/ref/fate/cbs-hevc-WP_A_Toshiba_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-WP_A_Toshiba_3 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-WP_A_Toshiba_3 diff --git a/tests/ref/fate/cbs-hevc-ipcm_E_NEC_2 b/ffmpeg-y/tests/ref/fate/cbs-hevc-ipcm_E_NEC_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-hevc-ipcm_E_NEC_2 rename to ffmpeg-y/tests/ref/fate/cbs-hevc-ipcm_E_NEC_2 diff --git a/tests/ref/fate/cbs-mpeg2-hhi_burst_422_short b/ffmpeg-y/tests/ref/fate/cbs-mpeg2-hhi_burst_422_short old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-mpeg2-hhi_burst_422_short rename to ffmpeg-y/tests/ref/fate/cbs-mpeg2-hhi_burst_422_short diff --git a/tests/ref/fate/cbs-mpeg2-sony-ct3 b/ffmpeg-y/tests/ref/fate/cbs-mpeg2-sony-ct3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-mpeg2-sony-ct3 rename to ffmpeg-y/tests/ref/fate/cbs-mpeg2-sony-ct3 diff --git a/tests/ref/fate/cbs-mpeg2-tcela-6 b/ffmpeg-y/tests/ref/fate/cbs-mpeg2-tcela-6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-mpeg2-tcela-6 rename to ffmpeg-y/tests/ref/fate/cbs-mpeg2-tcela-6 diff --git a/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-03-deltaq rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq diff --git a/tests/ref/fate/cbs-vp9-vp90-2-05-resize b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-05-resize old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-05-resize rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-05-resize diff --git a/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-06-bilinear rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear diff --git a/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas diff --git a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame diff --git a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 diff --git a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo diff --git a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo diff --git a/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian diff --git a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440 b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp91-2-04-yuv440 rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440 diff --git a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 diff --git a/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 diff --git a/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 diff --git a/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 b/ffmpeg-y/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 rename to ffmpeg-y/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 diff --git a/tests/ref/fate/cdgraphics b/ffmpeg-y/tests/ref/fate/cdgraphics old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdgraphics rename to ffmpeg-y/tests/ref/fate/cdgraphics diff --git a/tests/ref/fate/cdxl-bitline-ham6 b/ffmpeg-y/tests/ref/fate/cdxl-bitline-ham6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdxl-bitline-ham6 rename to ffmpeg-y/tests/ref/fate/cdxl-bitline-ham6 diff --git a/tests/ref/fate/cdxl-demux b/ffmpeg-y/tests/ref/fate/cdxl-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdxl-demux rename to ffmpeg-y/tests/ref/fate/cdxl-demux diff --git a/tests/ref/fate/cdxl-ham6 b/ffmpeg-y/tests/ref/fate/cdxl-ham6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdxl-ham6 rename to ffmpeg-y/tests/ref/fate/cdxl-ham6 diff --git a/tests/ref/fate/cdxl-ham8 b/ffmpeg-y/tests/ref/fate/cdxl-ham8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdxl-ham8 rename to ffmpeg-y/tests/ref/fate/cdxl-ham8 diff --git a/tests/ref/fate/cdxl-pal8 b/ffmpeg-y/tests/ref/fate/cdxl-pal8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdxl-pal8 rename to ffmpeg-y/tests/ref/fate/cdxl-pal8 diff --git a/tests/ref/fate/cdxl-pal8-small b/ffmpeg-y/tests/ref/fate/cdxl-pal8-small old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cdxl-pal8-small rename to ffmpeg-y/tests/ref/fate/cdxl-pal8-small diff --git a/tests/ref/fate/cfhd-1 b/ffmpeg-y/tests/ref/fate/cfhd-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cfhd-1 rename to ffmpeg-y/tests/ref/fate/cfhd-1 diff --git a/tests/ref/fate/cfhd-2 b/ffmpeg-y/tests/ref/fate/cfhd-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cfhd-2 rename to ffmpeg-y/tests/ref/fate/cfhd-2 diff --git a/tests/ref/fate/cfhd-3 b/ffmpeg-y/tests/ref/fate/cfhd-3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cfhd-3 rename to ffmpeg-y/tests/ref/fate/cfhd-3 diff --git a/tests/ref/fate/cine-demux b/ffmpeg-y/tests/ref/fate/cine-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cine-demux rename to ffmpeg-y/tests/ref/fate/cine-demux diff --git a/tests/ref/fate/cljr b/ffmpeg-y/tests/ref/fate/cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cljr rename to ffmpeg-y/tests/ref/fate/cljr diff --git a/tests/ref/fate/color_utils b/ffmpeg-y/tests/ref/fate/color_utils old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/color_utils rename to ffmpeg-y/tests/ref/fate/color_utils diff --git a/tests/ref/fate/concat-demuxer-extended-lavf-mxf b/ffmpeg-y/tests/ref/fate/concat-demuxer-extended-lavf-mxf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/concat-demuxer-extended-lavf-mxf rename to ffmpeg-y/tests/ref/fate/concat-demuxer-extended-lavf-mxf diff --git a/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10 b/ffmpeg-y/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10 rename to ffmpeg-y/tests/ref/fate/concat-demuxer-extended-lavf-mxf_d10 diff --git a/tests/ref/fate/concat-demuxer-simple1-lavf-mxf b/ffmpeg-y/tests/ref/fate/concat-demuxer-simple1-lavf-mxf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/concat-demuxer-simple1-lavf-mxf rename to ffmpeg-y/tests/ref/fate/concat-demuxer-simple1-lavf-mxf diff --git a/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10 b/ffmpeg-y/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10 rename to ffmpeg-y/tests/ref/fate/concat-demuxer-simple1-lavf-mxf_d10 diff --git a/tests/ref/fate/concat-demuxer-simple2-lavf-ts b/ffmpeg-y/tests/ref/fate/concat-demuxer-simple2-lavf-ts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/concat-demuxer-simple2-lavf-ts rename to ffmpeg-y/tests/ref/fate/concat-demuxer-simple2-lavf-ts diff --git a/tests/ref/fate/copy-apng b/ffmpeg-y/tests/ref/fate/copy-apng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-apng rename to ffmpeg-y/tests/ref/fate/copy-apng diff --git a/tests/ref/fate/copy-psp b/ffmpeg-y/tests/ref/fate/copy-psp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-psp rename to ffmpeg-y/tests/ref/fate/copy-psp diff --git a/tests/ref/fate/copy-trac2211-avi b/ffmpeg-y/tests/ref/fate/copy-trac2211-avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-trac2211-avi rename to ffmpeg-y/tests/ref/fate/copy-trac2211-avi diff --git a/tests/ref/fate/copy-trac236 b/ffmpeg-y/tests/ref/fate/copy-trac236 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-trac236 rename to ffmpeg-y/tests/ref/fate/copy-trac236 diff --git a/tests/ref/fate/copy-trac3074 b/ffmpeg-y/tests/ref/fate/copy-trac3074 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-trac3074 rename to ffmpeg-y/tests/ref/fate/copy-trac3074 diff --git a/tests/ref/fate/copy-trac4914 b/ffmpeg-y/tests/ref/fate/copy-trac4914 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-trac4914 rename to ffmpeg-y/tests/ref/fate/copy-trac4914 diff --git a/tests/ref/fate/copy-trac4914-avi b/ffmpeg-y/tests/ref/fate/copy-trac4914-avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/copy-trac4914-avi rename to ffmpeg-y/tests/ref/fate/copy-trac4914-avi diff --git a/tests/ref/fate/corepng b/ffmpeg-y/tests/ref/fate/corepng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/corepng rename to ffmpeg-y/tests/ref/fate/corepng diff --git a/tests/ref/fate/crc b/ffmpeg-y/tests/ref/fate/crc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/crc rename to ffmpeg-y/tests/ref/fate/crc diff --git a/tests/ref/fate/creatureshock-avs b/ffmpeg-y/tests/ref/fate/creatureshock-avs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/creatureshock-avs rename to ffmpeg-y/tests/ref/fate/creatureshock-avs diff --git a/tests/ref/fate/cscd b/ffmpeg-y/tests/ref/fate/cscd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cscd rename to ffmpeg-y/tests/ref/fate/cscd diff --git a/tests/ref/fate/cvid-grayscale b/ffmpeg-y/tests/ref/fate/cvid-grayscale old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cvid-grayscale rename to ffmpeg-y/tests/ref/fate/cvid-grayscale diff --git a/tests/ref/fate/cvid-palette b/ffmpeg-y/tests/ref/fate/cvid-palette old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cvid-palette rename to ffmpeg-y/tests/ref/fate/cvid-palette diff --git a/tests/ref/fate/cvid-partial b/ffmpeg-y/tests/ref/fate/cvid-partial old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cvid-partial rename to ffmpeg-y/tests/ref/fate/cvid-partial diff --git a/tests/ref/fate/cyberia-c93 b/ffmpeg-y/tests/ref/fate/cyberia-c93 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cyberia-c93 rename to ffmpeg-y/tests/ref/fate/cyberia-c93 diff --git a/tests/ref/fate/cyuv b/ffmpeg-y/tests/ref/fate/cyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/cyuv rename to ffmpeg-y/tests/ref/fate/cyuv diff --git a/tests/ref/fate/d-cinema-demux b/ffmpeg-y/tests/ref/fate/d-cinema-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/d-cinema-demux rename to ffmpeg-y/tests/ref/fate/d-cinema-demux diff --git a/tests/ref/fate/d-eavp6-demux b/ffmpeg-y/tests/ref/fate/d-eavp6-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/d-eavp6-demux rename to ffmpeg-y/tests/ref/fate/d-eavp6-demux diff --git a/tests/ref/fate/dca-xll b/ffmpeg-y/tests/ref/fate/dca-xll old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll rename to ffmpeg-y/tests/ref/fate/dca-xll diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0 b/ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_16_192_768_0 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_0 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1 b/ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_16_192_768_1 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_1 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 diff --git a/tests/ref/fate/dca-xll_51_24_48_768 b/ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_768 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_24_48_768 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_768 diff --git a/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_24_48_768-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_768-dmix_2 diff --git a/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_24_48_768-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_768-dmix_6 diff --git a/tests/ref/fate/dca-xll_51_24_48_none b/ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_24_48_none rename to ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_none diff --git a/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_24_48_none-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_none-dmix_2 diff --git a/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_51_24_48_none-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_51_24_48_none-dmix_6 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_0 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_48_768_0 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_0 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_1 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_48_768_1 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_1 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 diff --git a/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 diff --git a/tests/ref/fate/dca-xll_71_24_96_768 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_96_768 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_96_768 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_96_768 diff --git a/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_96_768-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 diff --git a/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_71_24_96_768-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509 b/ffmpeg-y/tests/ref/fate/dca-xll_x96_51_24_96_1509 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_x96_51_24_96_1509 rename to ffmpeg-y/tests/ref/fate/dca-xll_x96_51_24_96_1509 diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 diff --git a/tests/ref/fate/dca-xll_xch_61_24_48_768 b/ffmpeg-y/tests/ref/fate/dca-xll_xch_61_24_48_768 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_xch_61_24_48_768 rename to ffmpeg-y/tests/ref/fate/dca-xll_xch_61_24_48_768 diff --git a/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 b/ffmpeg-y/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 rename to ffmpeg-y/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_2 diff --git a/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 b/ffmpeg-y/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 rename to ffmpeg-y/tests/ref/fate/dca-xll_xch_61_24_48_768-dmix_6 diff --git a/tests/ref/fate/dcinema-encode b/ffmpeg-y/tests/ref/fate/dcinema-encode old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dcinema-encode rename to ffmpeg-y/tests/ref/fate/dcinema-encode diff --git a/tests/ref/fate/dds-alpha8 b/ffmpeg-y/tests/ref/fate/dds-alpha8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-alpha8 rename to ffmpeg-y/tests/ref/fate/dds-alpha8 diff --git a/tests/ref/fate/dds-argb b/ffmpeg-y/tests/ref/fate/dds-argb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-argb rename to ffmpeg-y/tests/ref/fate/dds-argb diff --git a/tests/ref/fate/dds-argb-aexp b/ffmpeg-y/tests/ref/fate/dds-argb-aexp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-argb-aexp rename to ffmpeg-y/tests/ref/fate/dds-argb-aexp diff --git a/tests/ref/fate/dds-dx10-bc1 b/ffmpeg-y/tests/ref/fate/dds-dx10-bc1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dx10-bc1 rename to ffmpeg-y/tests/ref/fate/dds-dx10-bc1 diff --git a/tests/ref/fate/dds-dx10-bc1a b/ffmpeg-y/tests/ref/fate/dds-dx10-bc1a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dx10-bc1a rename to ffmpeg-y/tests/ref/fate/dds-dx10-bc1a diff --git a/tests/ref/fate/dds-dx10-bc2 b/ffmpeg-y/tests/ref/fate/dds-dx10-bc2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dx10-bc2 rename to ffmpeg-y/tests/ref/fate/dds-dx10-bc2 diff --git a/tests/ref/fate/dds-dx10-bc3 b/ffmpeg-y/tests/ref/fate/dds-dx10-bc3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dx10-bc3 rename to ffmpeg-y/tests/ref/fate/dds-dx10-bc3 diff --git a/tests/ref/fate/dds-dx10-bc4 b/ffmpeg-y/tests/ref/fate/dds-dx10-bc4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dx10-bc4 rename to ffmpeg-y/tests/ref/fate/dds-dx10-bc4 diff --git a/tests/ref/fate/dds-dx10-bc5 b/ffmpeg-y/tests/ref/fate/dds-dx10-bc5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dx10-bc5 rename to ffmpeg-y/tests/ref/fate/dds-dx10-bc5 diff --git a/tests/ref/fate/dds-dxt1 b/ffmpeg-y/tests/ref/fate/dds-dxt1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt1 rename to ffmpeg-y/tests/ref/fate/dds-dxt1 diff --git a/tests/ref/fate/dds-dxt1-normalmap b/ffmpeg-y/tests/ref/fate/dds-dxt1-normalmap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt1-normalmap rename to ffmpeg-y/tests/ref/fate/dds-dxt1-normalmap diff --git a/tests/ref/fate/dds-dxt1a b/ffmpeg-y/tests/ref/fate/dds-dxt1a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt1a rename to ffmpeg-y/tests/ref/fate/dds-dxt1a diff --git a/tests/ref/fate/dds-dxt2 b/ffmpeg-y/tests/ref/fate/dds-dxt2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt2 rename to ffmpeg-y/tests/ref/fate/dds-dxt2 diff --git a/tests/ref/fate/dds-dxt3 b/ffmpeg-y/tests/ref/fate/dds-dxt3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt3 rename to ffmpeg-y/tests/ref/fate/dds-dxt3 diff --git a/tests/ref/fate/dds-dxt4 b/ffmpeg-y/tests/ref/fate/dds-dxt4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt4 rename to ffmpeg-y/tests/ref/fate/dds-dxt4 diff --git a/tests/ref/fate/dds-dxt5 b/ffmpeg-y/tests/ref/fate/dds-dxt5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5 rename to ffmpeg-y/tests/ref/fate/dds-dxt5 diff --git a/tests/ref/fate/dds-dxt5-aexp b/ffmpeg-y/tests/ref/fate/dds-dxt5-aexp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-aexp rename to ffmpeg-y/tests/ref/fate/dds-dxt5-aexp diff --git a/tests/ref/fate/dds-dxt5-normalmap b/ffmpeg-y/tests/ref/fate/dds-dxt5-normalmap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-normalmap rename to ffmpeg-y/tests/ref/fate/dds-dxt5-normalmap diff --git a/tests/ref/fate/dds-dxt5-normalmap-ati b/ffmpeg-y/tests/ref/fate/dds-dxt5-normalmap-ati old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-normalmap-ati rename to ffmpeg-y/tests/ref/fate/dds-dxt5-normalmap-ati diff --git a/tests/ref/fate/dds-dxt5-rbxg b/ffmpeg-y/tests/ref/fate/dds-dxt5-rbxg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-rbxg rename to ffmpeg-y/tests/ref/fate/dds-dxt5-rbxg diff --git a/tests/ref/fate/dds-dxt5-rgxb b/ffmpeg-y/tests/ref/fate/dds-dxt5-rgxb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-rgxb rename to ffmpeg-y/tests/ref/fate/dds-dxt5-rgxb diff --git a/tests/ref/fate/dds-dxt5-rxbg b/ffmpeg-y/tests/ref/fate/dds-dxt5-rxbg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-rxbg rename to ffmpeg-y/tests/ref/fate/dds-dxt5-rxbg diff --git a/tests/ref/fate/dds-dxt5-rxgb b/ffmpeg-y/tests/ref/fate/dds-dxt5-rxgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-rxgb rename to ffmpeg-y/tests/ref/fate/dds-dxt5-rxgb diff --git a/tests/ref/fate/dds-dxt5-xgbr b/ffmpeg-y/tests/ref/fate/dds-dxt5-xgbr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-xgbr rename to ffmpeg-y/tests/ref/fate/dds-dxt5-xgbr diff --git a/tests/ref/fate/dds-dxt5-xgxr b/ffmpeg-y/tests/ref/fate/dds-dxt5-xgxr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-xgxr rename to ffmpeg-y/tests/ref/fate/dds-dxt5-xgxr diff --git a/tests/ref/fate/dds-dxt5-xrbg b/ffmpeg-y/tests/ref/fate/dds-dxt5-xrbg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-xrbg rename to ffmpeg-y/tests/ref/fate/dds-dxt5-xrbg diff --git a/tests/ref/fate/dds-dxt5-ycocg b/ffmpeg-y/tests/ref/fate/dds-dxt5-ycocg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-ycocg rename to ffmpeg-y/tests/ref/fate/dds-dxt5-ycocg diff --git a/tests/ref/fate/dds-dxt5-ycocg-scaled b/ffmpeg-y/tests/ref/fate/dds-dxt5-ycocg-scaled old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-dxt5-ycocg-scaled rename to ffmpeg-y/tests/ref/fate/dds-dxt5-ycocg-scaled diff --git a/tests/ref/fate/dds-monob b/ffmpeg-y/tests/ref/fate/dds-monob old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-monob rename to ffmpeg-y/tests/ref/fate/dds-monob diff --git a/tests/ref/fate/dds-pal b/ffmpeg-y/tests/ref/fate/dds-pal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-pal rename to ffmpeg-y/tests/ref/fate/dds-pal diff --git a/tests/ref/fate/dds-pal-ati b/ffmpeg-y/tests/ref/fate/dds-pal-ati old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-pal-ati rename to ffmpeg-y/tests/ref/fate/dds-pal-ati diff --git a/tests/ref/fate/dds-rgb1555 b/ffmpeg-y/tests/ref/fate/dds-rgb1555 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgb1555 rename to ffmpeg-y/tests/ref/fate/dds-rgb1555 diff --git a/tests/ref/fate/dds-rgb16 b/ffmpeg-y/tests/ref/fate/dds-rgb16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgb16 rename to ffmpeg-y/tests/ref/fate/dds-rgb16 diff --git a/tests/ref/fate/dds-rgb24 b/ffmpeg-y/tests/ref/fate/dds-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgb24 rename to ffmpeg-y/tests/ref/fate/dds-rgb24 diff --git a/tests/ref/fate/dds-rgb555 b/ffmpeg-y/tests/ref/fate/dds-rgb555 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgb555 rename to ffmpeg-y/tests/ref/fate/dds-rgb555 diff --git a/tests/ref/fate/dds-rgba b/ffmpeg-y/tests/ref/fate/dds-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgba rename to ffmpeg-y/tests/ref/fate/dds-rgba diff --git a/tests/ref/fate/dds-rgtc1s b/ffmpeg-y/tests/ref/fate/dds-rgtc1s old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgtc1s rename to ffmpeg-y/tests/ref/fate/dds-rgtc1s diff --git a/tests/ref/fate/dds-rgtc1u b/ffmpeg-y/tests/ref/fate/dds-rgtc1u old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgtc1u rename to ffmpeg-y/tests/ref/fate/dds-rgtc1u diff --git a/tests/ref/fate/dds-rgtc2s b/ffmpeg-y/tests/ref/fate/dds-rgtc2s old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgtc2s rename to ffmpeg-y/tests/ref/fate/dds-rgtc2s diff --git a/tests/ref/fate/dds-rgtc2u b/ffmpeg-y/tests/ref/fate/dds-rgtc2u old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgtc2u rename to ffmpeg-y/tests/ref/fate/dds-rgtc2u diff --git a/tests/ref/fate/dds-rgtc2u-xy b/ffmpeg-y/tests/ref/fate/dds-rgtc2u-xy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-rgtc2u-xy rename to ffmpeg-y/tests/ref/fate/dds-rgtc2u-xy diff --git a/tests/ref/fate/dds-uyvy b/ffmpeg-y/tests/ref/fate/dds-uyvy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-uyvy rename to ffmpeg-y/tests/ref/fate/dds-uyvy diff --git a/tests/ref/fate/dds-xbgr b/ffmpeg-y/tests/ref/fate/dds-xbgr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-xbgr rename to ffmpeg-y/tests/ref/fate/dds-xbgr diff --git a/tests/ref/fate/dds-xrgb b/ffmpeg-y/tests/ref/fate/dds-xrgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-xrgb rename to ffmpeg-y/tests/ref/fate/dds-xrgb diff --git a/tests/ref/fate/dds-y b/ffmpeg-y/tests/ref/fate/dds-y old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-y rename to ffmpeg-y/tests/ref/fate/dds-y diff --git a/tests/ref/fate/dds-ya b/ffmpeg-y/tests/ref/fate/dds-ya old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-ya rename to ffmpeg-y/tests/ref/fate/dds-ya diff --git a/tests/ref/fate/dds-ycocg b/ffmpeg-y/tests/ref/fate/dds-ycocg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-ycocg rename to ffmpeg-y/tests/ref/fate/dds-ycocg diff --git a/tests/ref/fate/dds-yuyv b/ffmpeg-y/tests/ref/fate/dds-yuyv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dds-yuyv rename to ffmpeg-y/tests/ref/fate/dds-yuyv diff --git a/tests/ref/fate/delphine-cin-audio b/ffmpeg-y/tests/ref/fate/delphine-cin-audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/delphine-cin-audio rename to ffmpeg-y/tests/ref/fate/delphine-cin-audio diff --git a/tests/ref/fate/delphine-cin-video b/ffmpeg-y/tests/ref/fate/delphine-cin-video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/delphine-cin-video rename to ffmpeg-y/tests/ref/fate/delphine-cin-video diff --git a/tests/ref/fate/deluxepaint-anm b/ffmpeg-y/tests/ref/fate/deluxepaint-anm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/deluxepaint-anm rename to ffmpeg-y/tests/ref/fate/deluxepaint-anm diff --git a/tests/ref/fate/dfa1 b/ffmpeg-y/tests/ref/fate/dfa1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa1 rename to ffmpeg-y/tests/ref/fate/dfa1 diff --git a/tests/ref/fate/dfa10 b/ffmpeg-y/tests/ref/fate/dfa10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa10 rename to ffmpeg-y/tests/ref/fate/dfa10 diff --git a/tests/ref/fate/dfa11 b/ffmpeg-y/tests/ref/fate/dfa11 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa11 rename to ffmpeg-y/tests/ref/fate/dfa11 diff --git a/tests/ref/fate/dfa2 b/ffmpeg-y/tests/ref/fate/dfa2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa2 rename to ffmpeg-y/tests/ref/fate/dfa2 diff --git a/tests/ref/fate/dfa3 b/ffmpeg-y/tests/ref/fate/dfa3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa3 rename to ffmpeg-y/tests/ref/fate/dfa3 diff --git a/tests/ref/fate/dfa4 b/ffmpeg-y/tests/ref/fate/dfa4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa4 rename to ffmpeg-y/tests/ref/fate/dfa4 diff --git a/tests/ref/fate/dfa5 b/ffmpeg-y/tests/ref/fate/dfa5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa5 rename to ffmpeg-y/tests/ref/fate/dfa5 diff --git a/tests/ref/fate/dfa6 b/ffmpeg-y/tests/ref/fate/dfa6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa6 rename to ffmpeg-y/tests/ref/fate/dfa6 diff --git a/tests/ref/fate/dfa7 b/ffmpeg-y/tests/ref/fate/dfa7 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa7 rename to ffmpeg-y/tests/ref/fate/dfa7 diff --git a/tests/ref/fate/dfa8 b/ffmpeg-y/tests/ref/fate/dfa8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa8 rename to ffmpeg-y/tests/ref/fate/dfa8 diff --git a/tests/ref/fate/dfa9 b/ffmpeg-y/tests/ref/fate/dfa9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dfa9 rename to ffmpeg-y/tests/ref/fate/dfa9 diff --git a/tests/ref/fate/dict b/ffmpeg-y/tests/ref/fate/dict old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dict rename to ffmpeg-y/tests/ref/fate/dict diff --git a/tests/ref/fate/dirac b/ffmpeg-y/tests/ref/fate/dirac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dirac rename to ffmpeg-y/tests/ref/fate/dirac diff --git a/tests/ref/fate/dirac-low-delay b/ffmpeg-y/tests/ref/fate/dirac-low-delay old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dirac-low-delay rename to ffmpeg-y/tests/ref/fate/dirac-low-delay diff --git a/tests/ref/fate/display b/ffmpeg-y/tests/ref/fate/display old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/display rename to ffmpeg-y/tests/ref/fate/display diff --git a/tests/ref/fate/dnxhd-mbaff b/ffmpeg-y/tests/ref/fate/dnxhd-mbaff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhd-mbaff rename to ffmpeg-y/tests/ref/fate/dnxhd-mbaff diff --git a/tests/ref/fate/dnxhr-12bit b/ffmpeg-y/tests/ref/fate/dnxhr-12bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-12bit rename to ffmpeg-y/tests/ref/fate/dnxhr-12bit diff --git a/tests/ref/fate/dnxhr-444 b/ffmpeg-y/tests/ref/fate/dnxhr-444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-444 rename to ffmpeg-y/tests/ref/fate/dnxhr-444 diff --git a/tests/ref/fate/dnxhr-parse b/ffmpeg-y/tests/ref/fate/dnxhr-parse old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-parse rename to ffmpeg-y/tests/ref/fate/dnxhr-parse diff --git a/tests/ref/fate/dnxhr-prefix1 b/ffmpeg-y/tests/ref/fate/dnxhr-prefix1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-prefix1 rename to ffmpeg-y/tests/ref/fate/dnxhr-prefix1 diff --git a/tests/ref/fate/dnxhr-prefix2 b/ffmpeg-y/tests/ref/fate/dnxhr-prefix2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-prefix2 rename to ffmpeg-y/tests/ref/fate/dnxhr-prefix2 diff --git a/tests/ref/fate/dnxhr-prefix3 b/ffmpeg-y/tests/ref/fate/dnxhr-prefix3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-prefix3 rename to ffmpeg-y/tests/ref/fate/dnxhr-prefix3 diff --git a/tests/ref/fate/dnxhr-prefix4 b/ffmpeg-y/tests/ref/fate/dnxhr-prefix4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-prefix4 rename to ffmpeg-y/tests/ref/fate/dnxhr-prefix4 diff --git a/tests/ref/fate/dnxhr-prefix5 b/ffmpeg-y/tests/ref/fate/dnxhr-prefix5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dnxhr-prefix5 rename to ffmpeg-y/tests/ref/fate/dnxhr-prefix5 diff --git a/tests/ref/fate/dpcm-idroq b/ffmpeg-y/tests/ref/fate/dpcm-idroq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dpcm-idroq rename to ffmpeg-y/tests/ref/fate/dpcm-idroq diff --git a/tests/ref/fate/dpcm-interplay b/ffmpeg-y/tests/ref/fate/dpcm-interplay old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dpcm-interplay rename to ffmpeg-y/tests/ref/fate/dpcm-interplay diff --git a/tests/ref/fate/dpcm-sierra b/ffmpeg-y/tests/ref/fate/dpcm-sierra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dpcm-sierra rename to ffmpeg-y/tests/ref/fate/dpcm-sierra diff --git a/tests/ref/fate/dpcm-xan b/ffmpeg-y/tests/ref/fate/dpcm-xan old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dpcm-xan rename to ffmpeg-y/tests/ref/fate/dpcm-xan diff --git a/tests/ref/fate/dpx b/ffmpeg-y/tests/ref/fate/dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dpx rename to ffmpeg-y/tests/ref/fate/dpx diff --git a/tests/ref/fate/dpxparser b/ffmpeg-y/tests/ref/fate/dpxparser old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dpxparser rename to ffmpeg-y/tests/ref/fate/dpxparser diff --git a/tests/ref/fate/dss-lp b/ffmpeg-y/tests/ref/fate/dss-lp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dss-lp rename to ffmpeg-y/tests/ref/fate/dss-lp diff --git a/tests/ref/fate/dss-sp b/ffmpeg-y/tests/ref/fate/dss-sp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dss-sp rename to ffmpeg-y/tests/ref/fate/dss-sp diff --git a/tests/ref/fate/dxa-feeble b/ffmpeg-y/tests/ref/fate/dxa-feeble old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxa-feeble rename to ffmpeg-y/tests/ref/fate/dxa-feeble diff --git a/tests/ref/fate/dxa-scummvm b/ffmpeg-y/tests/ref/fate/dxa-scummvm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxa-scummvm rename to ffmpeg-y/tests/ref/fate/dxa-scummvm diff --git a/tests/ref/fate/dxtory b/ffmpeg-y/tests/ref/fate/dxtory old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxtory rename to ffmpeg-y/tests/ref/fate/dxtory diff --git a/tests/ref/fate/dxv-dxt1 b/ffmpeg-y/tests/ref/fate/dxv-dxt1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxv-dxt1 rename to ffmpeg-y/tests/ref/fate/dxv-dxt1 diff --git a/tests/ref/fate/dxv-dxt5 b/ffmpeg-y/tests/ref/fate/dxv-dxt5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxv-dxt5 rename to ffmpeg-y/tests/ref/fate/dxv-dxt5 diff --git a/tests/ref/fate/dxv3-dxt1 b/ffmpeg-y/tests/ref/fate/dxv3-dxt1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxv3-dxt1 rename to ffmpeg-y/tests/ref/fate/dxv3-dxt1 diff --git a/tests/ref/fate/dxv3-dxt5 b/ffmpeg-y/tests/ref/fate/dxv3-dxt5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/dxv3-dxt5 rename to ffmpeg-y/tests/ref/fate/dxv3-dxt5 diff --git a/tests/ref/fate/ea-cdata b/ffmpeg-y/tests/ref/fate/ea-cdata old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-cdata rename to ffmpeg-y/tests/ref/fate/ea-cdata diff --git a/tests/ref/fate/ea-cmv b/ffmpeg-y/tests/ref/fate/ea-cmv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-cmv rename to ffmpeg-y/tests/ref/fate/ea-cmv diff --git a/tests/ref/fate/ea-mad b/ffmpeg-y/tests/ref/fate/ea-mad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-mad rename to ffmpeg-y/tests/ref/fate/ea-mad diff --git a/tests/ref/fate/ea-tgq b/ffmpeg-y/tests/ref/fate/ea-tgq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-tgq rename to ffmpeg-y/tests/ref/fate/ea-tgq diff --git a/tests/ref/fate/ea-tgv-1 b/ffmpeg-y/tests/ref/fate/ea-tgv-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-tgv-1 rename to ffmpeg-y/tests/ref/fate/ea-tgv-1 diff --git a/tests/ref/fate/ea-tgv-2 b/ffmpeg-y/tests/ref/fate/ea-tgv-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-tgv-2 rename to ffmpeg-y/tests/ref/fate/ea-tgv-2 diff --git a/tests/ref/fate/ea-tqi b/ffmpeg-y/tests/ref/fate/ea-tqi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ea-tqi rename to ffmpeg-y/tests/ref/fate/ea-tqi diff --git a/tests/ref/fate/eval b/ffmpeg-y/tests/ref/fate/eval old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/eval rename to ffmpeg-y/tests/ref/fate/eval diff --git a/tests/ref/fate/exif-image-embedded b/ffmpeg-y/tests/ref/fate/exif-image-embedded old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exif-image-embedded rename to ffmpeg-y/tests/ref/fate/exif-image-embedded diff --git a/tests/ref/fate/exif-image-jpg b/ffmpeg-y/tests/ref/fate/exif-image-jpg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exif-image-jpg rename to ffmpeg-y/tests/ref/fate/exif-image-jpg diff --git a/tests/ref/fate/exif-image-tiff b/ffmpeg-y/tests/ref/fate/exif-image-tiff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exif-image-tiff rename to ffmpeg-y/tests/ref/fate/exif-image-tiff diff --git a/tests/ref/fate/exif-image-webp b/ffmpeg-y/tests/ref/fate/exif-image-webp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exif-image-webp rename to ffmpeg-y/tests/ref/fate/exif-image-webp diff --git a/tests/ref/fate/exr-rgb-b44a-half-negative-4x4 b/ffmpeg-y/tests/ref/fate/exr-rgb-b44a-half-negative-4x4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-b44a-half-negative-4x4 rename to ffmpeg-y/tests/ref/fate/exr-rgb-b44a-half-negative-4x4 diff --git a/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l2 diff --git a/tests/ref/fate/exr-rgb-scanline-b44-uint32 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-b44-uint32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-b44-uint32 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-b44-uint32 diff --git a/tests/ref/fate/exr-rgb-scanline-float-b44 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-float-b44 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-float-b44 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-float-b44 diff --git a/tests/ref/fate/exr-rgb-scanline-float-piz-48x32 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-float-piz-48x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-float-piz-48x32 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-float-piz-48x32 diff --git a/tests/ref/fate/exr-rgb-scanline-half-b44-12x8 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-b44-12x8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-half-b44-12x8 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-b44-12x8 diff --git a/tests/ref/fate/exr-rgb-scanline-half-b44-13x9 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-b44-13x9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-half-b44-13x9 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-b44-13x9 diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-bw b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-bw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-half-piz-bw rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-bw diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-color b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-color old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-half-piz-color rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-color diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01 diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08 diff --git a/tests/ref/fate/exr-rgb-scanline-none-negative-red b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-none-negative-red old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-none-negative-red rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-none-negative-red diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-float-12x8 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-float-12x8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-float-12x8 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-float-12x8 diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2 diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-half-uint32-13x9 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-half-uint32-13x9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-half-uint32-13x9 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-half-uint32-13x9 diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-uint32 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-uint32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-pxr24-uint32 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-pxr24-uint32 diff --git a/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-raw-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-raw-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-raw-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-raw-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-raw-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-rle-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-rle-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-rle-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-rle-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-rle-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-zip-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-zip-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-zip-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets diff --git a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-scanline-zip1-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-tile-float-raw-12x8 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-float-raw-12x8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-float-raw-12x8 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-float-raw-12x8 diff --git a/tests/ref/fate/exr-rgb-tile-float-raw-150x130 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-float-raw-150x130 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-float-raw-150x130 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-float-raw-150x130 diff --git a/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1 diff --git a/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l2 diff --git a/tests/ref/fate/exr-rgb-tile-half-raw-12x8 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-half-raw-12x8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-half-raw-12x8 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-half-raw-12x8 diff --git a/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-pxr24-float-half-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l1 diff --git a/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2 diff --git a/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-pxr24-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-tile-raw-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-raw-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-raw-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-raw-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-tile-raw-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-raw-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-raw-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-raw-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-tile-rle-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-rle-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-rle-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-rle-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-tile-rle-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-rle-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-rle-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-rle-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-tile-zip-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-zip-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-tile-zip-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-zip-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip-half-float-l2 diff --git a/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-zip1-half-float-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1 diff --git a/tests/ref/fate/exr-rgb-tile-zip1-half-float-l2 b/ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip1-half-float-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgb-tile-zip1-half-float-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgb-tile-zip1-half-float-l2 diff --git a/tests/ref/fate/exr-rgba-multiscanline-half-b44 b/ffmpeg-y/tests/ref/fate/exr-rgba-multiscanline-half-b44 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-multiscanline-half-b44 rename to ffmpeg-y/tests/ref/fate/exr-rgba-multiscanline-half-b44 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l1 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l1 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l1 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l1 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l1 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l1 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l1 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l1 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l1 diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2 b/ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2 rename to ffmpeg-y/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2 diff --git a/tests/ref/fate/exr-rgba-zip16-16x32-flag4 b/ffmpeg-y/tests/ref/fate/exr-rgba-zip16-16x32-flag4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-rgba-zip16-16x32-flag4 rename to ffmpeg-y/tests/ref/fate/exr-rgba-zip16-16x32-flag4 diff --git a/tests/ref/fate/exr-slice-pxr24 b/ffmpeg-y/tests/ref/fate/exr-slice-pxr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-slice-pxr24 rename to ffmpeg-y/tests/ref/fate/exr-slice-pxr24 diff --git a/tests/ref/fate/exr-slice-raw b/ffmpeg-y/tests/ref/fate/exr-slice-raw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-slice-raw rename to ffmpeg-y/tests/ref/fate/exr-slice-raw diff --git a/tests/ref/fate/exr-slice-rle b/ffmpeg-y/tests/ref/fate/exr-slice-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-slice-rle rename to ffmpeg-y/tests/ref/fate/exr-slice-rle diff --git a/tests/ref/fate/exr-slice-zip1 b/ffmpeg-y/tests/ref/fate/exr-slice-zip1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-slice-zip1 rename to ffmpeg-y/tests/ref/fate/exr-slice-zip1 diff --git a/tests/ref/fate/exr-slice-zip16 b/ffmpeg-y/tests/ref/fate/exr-slice-zip16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-slice-zip16 rename to ffmpeg-y/tests/ref/fate/exr-slice-zip16 diff --git a/tests/ref/fate/exr-y-scanline-zip-half-12x8 b/ffmpeg-y/tests/ref/fate/exr-y-scanline-zip-half-12x8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-y-scanline-zip-half-12x8 rename to ffmpeg-y/tests/ref/fate/exr-y-scanline-zip-half-12x8 diff --git a/tests/ref/fate/exr-y-tile-zip-half-12x8 b/ffmpeg-y/tests/ref/fate/exr-y-tile-zip-half-12x8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/exr-y-tile-zip-half-12x8 rename to ffmpeg-y/tests/ref/fate/exr-y-tile-zip-half-12x8 diff --git a/tests/ref/fate/ffmpeg-attached_pics b/ffmpeg-y/tests/ref/fate/ffmpeg-attached_pics old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-attached_pics rename to ffmpeg-y/tests/ref/fate/ffmpeg-attached_pics diff --git a/tests/ref/fate/ffmpeg-bsf-remove-e b/ffmpeg-y/tests/ref/fate/ffmpeg-bsf-remove-e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-bsf-remove-e rename to ffmpeg-y/tests/ref/fate/ffmpeg-bsf-remove-e diff --git a/tests/ref/fate/ffmpeg-bsf-remove-k b/ffmpeg-y/tests/ref/fate/ffmpeg-bsf-remove-k old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-bsf-remove-k rename to ffmpeg-y/tests/ref/fate/ffmpeg-bsf-remove-k diff --git a/tests/ref/fate/ffmpeg-bsf-remove-r b/ffmpeg-y/tests/ref/fate/ffmpeg-bsf-remove-r old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-bsf-remove-r rename to ffmpeg-y/tests/ref/fate/ffmpeg-bsf-remove-r diff --git a/tests/ref/fate/ffmpeg-filter_colorkey b/ffmpeg-y/tests/ref/fate/ffmpeg-filter_colorkey old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-filter_colorkey rename to ffmpeg-y/tests/ref/fate/ffmpeg-filter_colorkey diff --git a/tests/ref/fate/ffmpeg-filter_complex b/ffmpeg-y/tests/ref/fate/ffmpeg-filter_complex old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-filter_complex rename to ffmpeg-y/tests/ref/fate/ffmpeg-filter_complex diff --git a/tests/ref/fate/ffmpeg-filter_complex_audio b/ffmpeg-y/tests/ref/fate/ffmpeg-filter_complex_audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-filter_complex_audio rename to ffmpeg-y/tests/ref/fate/ffmpeg-filter_complex_audio diff --git a/tests/ref/fate/ffmpeg-lavfi b/ffmpeg-y/tests/ref/fate/ffmpeg-lavfi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffmpeg-lavfi rename to ffmpeg-y/tests/ref/fate/ffmpeg-lavfi diff --git a/tests/ref/fate/ffprobe_compact b/ffmpeg-y/tests/ref/fate/ffprobe_compact old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_compact rename to ffmpeg-y/tests/ref/fate/ffprobe_compact diff --git a/tests/ref/fate/ffprobe_csv b/ffmpeg-y/tests/ref/fate/ffprobe_csv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_csv rename to ffmpeg-y/tests/ref/fate/ffprobe_csv diff --git a/tests/ref/fate/ffprobe_default b/ffmpeg-y/tests/ref/fate/ffprobe_default old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_default rename to ffmpeg-y/tests/ref/fate/ffprobe_default diff --git a/tests/ref/fate/ffprobe_flat b/ffmpeg-y/tests/ref/fate/ffprobe_flat old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_flat rename to ffmpeg-y/tests/ref/fate/ffprobe_flat diff --git a/tests/ref/fate/ffprobe_ini b/ffmpeg-y/tests/ref/fate/ffprobe_ini old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_ini rename to ffmpeg-y/tests/ref/fate/ffprobe_ini diff --git a/tests/ref/fate/ffprobe_json b/ffmpeg-y/tests/ref/fate/ffprobe_json old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_json rename to ffmpeg-y/tests/ref/fate/ffprobe_json diff --git a/tests/ref/fate/ffprobe_xml b/ffmpeg-y/tests/ref/fate/ffprobe_xml old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ffprobe_xml rename to ffmpeg-y/tests/ref/fate/ffprobe_xml diff --git a/tests/ref/fate/fic-avi b/ffmpeg-y/tests/ref/fate/fic-avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fic-avi rename to ffmpeg-y/tests/ref/fate/fic-avi diff --git a/tests/ref/fate/fifo b/ffmpeg-y/tests/ref/fate/fifo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fifo rename to ffmpeg-y/tests/ref/fate/fifo diff --git a/tests/ref/fate/fifo-muxer-tst b/ffmpeg-y/tests/ref/fate/fifo-muxer-tst old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fifo-muxer-tst rename to ffmpeg-y/tests/ref/fate/fifo-muxer-tst diff --git a/tests/ref/fate/film-cvid b/ffmpeg-y/tests/ref/fate/film-cvid old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/film-cvid rename to ffmpeg-y/tests/ref/fate/film-cvid diff --git a/tests/ref/fate/filter-2xbr b/ffmpeg-y/tests/ref/fate/filter-2xbr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-2xbr rename to ffmpeg-y/tests/ref/fate/filter-2xbr diff --git a/tests/ref/fate/filter-3xbr b/ffmpeg-y/tests/ref/fate/filter-3xbr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-3xbr rename to ffmpeg-y/tests/ref/fate/filter-3xbr diff --git a/tests/ref/fate/filter-4xbr b/ffmpeg-y/tests/ref/fate/filter-4xbr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-4xbr rename to ffmpeg-y/tests/ref/fate/filter-4xbr diff --git a/tests/ref/fate/filter-acrossfade b/ffmpeg-y/tests/ref/fate/filter-acrossfade old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-acrossfade rename to ffmpeg-y/tests/ref/fate/filter-acrossfade diff --git a/tests/ref/fate/filter-adelay b/ffmpeg-y/tests/ref/fate/filter-adelay old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-adelay rename to ffmpeg-y/tests/ref/fate/filter-adelay diff --git a/tests/ref/fate/filter-aecho b/ffmpeg-y/tests/ref/fate/filter-aecho old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-aecho rename to ffmpeg-y/tests/ref/fate/filter-aecho diff --git a/tests/ref/fate/filter-aemphasis b/ffmpeg-y/tests/ref/fate/filter-aemphasis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-aemphasis rename to ffmpeg-y/tests/ref/fate/filter-aemphasis diff --git a/tests/ref/fate/filter-aemphasis-50fm b/ffmpeg-y/tests/ref/fate/filter-aemphasis-50fm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-aemphasis-50fm rename to ffmpeg-y/tests/ref/fate/filter-aemphasis-50fm diff --git a/tests/ref/fate/filter-aemphasis-75kf b/ffmpeg-y/tests/ref/fate/filter-aemphasis-75kf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-aemphasis-75kf rename to ffmpeg-y/tests/ref/fate/filter-aemphasis-75kf diff --git a/tests/ref/fate/filter-afade-esin b/ffmpeg-y/tests/ref/fate/filter-afade-esin old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-afade-esin rename to ffmpeg-y/tests/ref/fate/filter-afade-esin diff --git a/tests/ref/fate/filter-afade-exp b/ffmpeg-y/tests/ref/fate/filter-afade-exp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-afade-exp rename to ffmpeg-y/tests/ref/fate/filter-afade-exp diff --git a/tests/ref/fate/filter-afade-hsin b/ffmpeg-y/tests/ref/fate/filter-afade-hsin old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-afade-hsin rename to ffmpeg-y/tests/ref/fate/filter-afade-hsin diff --git a/tests/ref/fate/filter-afade-iqsin b/ffmpeg-y/tests/ref/fate/filter-afade-iqsin old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-afade-iqsin rename to ffmpeg-y/tests/ref/fate/filter-afade-iqsin diff --git a/tests/ref/fate/filter-afade-log b/ffmpeg-y/tests/ref/fate/filter-afade-log old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-afade-log rename to ffmpeg-y/tests/ref/fate/filter-afade-log diff --git a/tests/ref/fate/filter-afade-qsin b/ffmpeg-y/tests/ref/fate/filter-afade-qsin old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-afade-qsin rename to ffmpeg-y/tests/ref/fate/filter-afade-qsin diff --git a/tests/ref/fate/filter-agate b/ffmpeg-y/tests/ref/fate/filter-agate old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-agate rename to ffmpeg-y/tests/ref/fate/filter-agate diff --git a/tests/ref/fate/filter-alimiter b/ffmpeg-y/tests/ref/fate/filter-alimiter old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-alimiter rename to ffmpeg-y/tests/ref/fate/filter-alimiter diff --git a/tests/ref/fate/filter-allrgb b/ffmpeg-y/tests/ref/fate/filter-allrgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-allrgb rename to ffmpeg-y/tests/ref/fate/filter-allrgb diff --git a/tests/ref/fate/filter-allyuv b/ffmpeg-y/tests/ref/fate/filter-allyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-allyuv rename to ffmpeg-y/tests/ref/fate/filter-allyuv diff --git a/tests/ref/fate/filter-alphaextract_alphamerge_rgb b/ffmpeg-y/tests/ref/fate/filter-alphaextract_alphamerge_rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-alphaextract_alphamerge_rgb rename to ffmpeg-y/tests/ref/fate/filter-alphaextract_alphamerge_rgb diff --git a/tests/ref/fate/filter-alphaextract_alphamerge_yuv b/ffmpeg-y/tests/ref/fate/filter-alphaextract_alphamerge_yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-alphaextract_alphamerge_yuv rename to ffmpeg-y/tests/ref/fate/filter-alphaextract_alphamerge_yuv diff --git a/tests/ref/fate/filter-amerge b/ffmpeg-y/tests/ref/fate/filter-amerge old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-amerge rename to ffmpeg-y/tests/ref/fate/filter-amerge diff --git a/tests/ref/fate/filter-anequalizer b/ffmpeg-y/tests/ref/fate/filter-anequalizer old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-anequalizer rename to ffmpeg-y/tests/ref/fate/filter-anequalizer diff --git a/tests/ref/fate/filter-apad b/ffmpeg-y/tests/ref/fate/filter-apad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-apad rename to ffmpeg-y/tests/ref/fate/filter-apad diff --git a/tests/ref/fate/filter-asetnsamples-nopad b/ffmpeg-y/tests/ref/fate/filter-asetnsamples-nopad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-asetnsamples-nopad rename to ffmpeg-y/tests/ref/fate/filter-asetnsamples-nopad diff --git a/tests/ref/fate/filter-asetnsamples-pad b/ffmpeg-y/tests/ref/fate/filter-asetnsamples-pad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-asetnsamples-pad rename to ffmpeg-y/tests/ref/fate/filter-asetnsamples-pad diff --git a/tests/ref/fate/filter-asetrate b/ffmpeg-y/tests/ref/fate/filter-asetrate old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-asetrate rename to ffmpeg-y/tests/ref/fate/filter-asetrate diff --git a/tests/ref/fate/filter-atrim-duration b/ffmpeg-y/tests/ref/fate/filter-atrim-duration old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-atrim-duration rename to ffmpeg-y/tests/ref/fate/filter-atrim-duration diff --git a/tests/ref/fate/filter-atrim-mixed b/ffmpeg-y/tests/ref/fate/filter-atrim-mixed old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-atrim-mixed rename to ffmpeg-y/tests/ref/fate/filter-atrim-mixed diff --git a/tests/ref/fate/filter-atrim-samples b/ffmpeg-y/tests/ref/fate/filter-atrim-samples old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-atrim-samples rename to ffmpeg-y/tests/ref/fate/filter-atrim-samples diff --git a/tests/ref/fate/filter-atrim-time b/ffmpeg-y/tests/ref/fate/filter-atrim-time old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-atrim-time rename to ffmpeg-y/tests/ref/fate/filter-atrim-time diff --git a/tests/ref/fate/filter-boxblur b/ffmpeg-y/tests/ref/fate/filter-boxblur old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-boxblur rename to ffmpeg-y/tests/ref/fate/filter-boxblur diff --git a/tests/ref/fate/filter-chorus b/ffmpeg-y/tests/ref/fate/filter-chorus old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-chorus rename to ffmpeg-y/tests/ref/fate/filter-chorus diff --git a/tests/ref/fate/filter-codecview-mvs b/ffmpeg-y/tests/ref/fate/filter-codecview-mvs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-codecview-mvs rename to ffmpeg-y/tests/ref/fate/filter-codecview-mvs diff --git a/tests/ref/fate/filter-colorchannelmixer b/ffmpeg-y/tests/ref/fate/filter-colorchannelmixer old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-colorchannelmixer rename to ffmpeg-y/tests/ref/fate/filter-colorchannelmixer diff --git a/tests/ref/fate/filter-colormatrix1 b/ffmpeg-y/tests/ref/fate/filter-colormatrix1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-colormatrix1 rename to ffmpeg-y/tests/ref/fate/filter-colormatrix1 diff --git a/tests/ref/fate/filter-colormatrix2 b/ffmpeg-y/tests/ref/fate/filter-colormatrix2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-colormatrix2 rename to ffmpeg-y/tests/ref/fate/filter-colormatrix2 diff --git a/tests/ref/fate/filter-compand b/ffmpeg-y/tests/ref/fate/filter-compand old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-compand rename to ffmpeg-y/tests/ref/fate/filter-compand diff --git a/tests/ref/fate/filter-concat b/ffmpeg-y/tests/ref/fate/filter-concat old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-concat rename to ffmpeg-y/tests/ref/fate/filter-concat diff --git a/tests/ref/fate/filter-crop b/ffmpeg-y/tests/ref/fate/filter-crop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-crop rename to ffmpeg-y/tests/ref/fate/filter-crop diff --git a/tests/ref/fate/filter-crop_scale b/ffmpeg-y/tests/ref/fate/filter-crop_scale old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-crop_scale rename to ffmpeg-y/tests/ref/fate/filter-crop_scale diff --git a/tests/ref/fate/filter-crop_scale_vflip b/ffmpeg-y/tests/ref/fate/filter-crop_scale_vflip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-crop_scale_vflip rename to ffmpeg-y/tests/ref/fate/filter-crop_scale_vflip diff --git a/tests/ref/fate/filter-crop_vflip b/ffmpeg-y/tests/ref/fate/filter-crop_vflip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-crop_vflip rename to ffmpeg-y/tests/ref/fate/filter-crop_vflip diff --git a/tests/ref/fate/filter-curves b/ffmpeg-y/tests/ref/fate/filter-curves old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-curves rename to ffmpeg-y/tests/ref/fate/filter-curves diff --git a/tests/ref/fate/filter-dcshift b/ffmpeg-y/tests/ref/fate/filter-dcshift old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-dcshift rename to ffmpeg-y/tests/ref/fate/filter-dcshift diff --git a/tests/ref/fate/filter-delogo b/ffmpeg-y/tests/ref/fate/filter-delogo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-delogo rename to ffmpeg-y/tests/ref/fate/filter-delogo diff --git a/tests/ref/fate/filter-drawbox b/ffmpeg-y/tests/ref/fate/filter-drawbox old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-drawbox rename to ffmpeg-y/tests/ref/fate/filter-drawbox diff --git a/tests/ref/fate/filter-earwax b/ffmpeg-y/tests/ref/fate/filter-earwax old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-earwax rename to ffmpeg-y/tests/ref/fate/filter-earwax diff --git a/tests/ref/fate/filter-edgedetect b/ffmpeg-y/tests/ref/fate/filter-edgedetect old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-edgedetect rename to ffmpeg-y/tests/ref/fate/filter-edgedetect diff --git a/tests/ref/fate/filter-edgedetect-colormix b/ffmpeg-y/tests/ref/fate/filter-edgedetect-colormix old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-edgedetect-colormix rename to ffmpeg-y/tests/ref/fate/filter-edgedetect-colormix diff --git a/tests/ref/fate/filter-extrastereo b/ffmpeg-y/tests/ref/fate/filter-extrastereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-extrastereo rename to ffmpeg-y/tests/ref/fate/filter-extrastereo diff --git a/tests/ref/fate/filter-fade b/ffmpeg-y/tests/ref/fate/filter-fade old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fade rename to ffmpeg-y/tests/ref/fate/filter-fade diff --git a/tests/ref/fate/filter-fieldorder b/ffmpeg-y/tests/ref/fate/filter-fieldorder old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fieldorder rename to ffmpeg-y/tests/ref/fate/filter-fieldorder diff --git a/tests/ref/fate/filter-formats b/ffmpeg-y/tests/ref/fate/filter-formats old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-formats rename to ffmpeg-y/tests/ref/fate/filter-formats diff --git a/tests/ref/fate/filter-fps b/ffmpeg-y/tests/ref/fate/filter-fps old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps rename to ffmpeg-y/tests/ref/fate/filter-fps diff --git a/tests/ref/fate/filter-fps-cfr b/ffmpeg-y/tests/ref/fate/filter-fps-cfr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-cfr rename to ffmpeg-y/tests/ref/fate/filter-fps-cfr diff --git a/tests/ref/fate/filter-fps-down b/ffmpeg-y/tests/ref/fate/filter-fps-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-down rename to ffmpeg-y/tests/ref/fate/filter-fps-down diff --git a/tests/ref/fate/filter-fps-down-eof-pass b/ffmpeg-y/tests/ref/fate/filter-fps-down-eof-pass old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-down-eof-pass rename to ffmpeg-y/tests/ref/fate/filter-fps-down-eof-pass diff --git a/tests/ref/fate/filter-fps-down-round-down b/ffmpeg-y/tests/ref/fate/filter-fps-down-round-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-down-round-down rename to ffmpeg-y/tests/ref/fate/filter-fps-down-round-down diff --git a/tests/ref/fate/filter-fps-down-round-up b/ffmpeg-y/tests/ref/fate/filter-fps-down-round-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-down-round-up rename to ffmpeg-y/tests/ref/fate/filter-fps-down-round-up diff --git a/tests/ref/fate/filter-fps-r b/ffmpeg-y/tests/ref/fate/filter-fps-r old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-r rename to ffmpeg-y/tests/ref/fate/filter-fps-r diff --git a/tests/ref/fate/filter-fps-start-drop b/ffmpeg-y/tests/ref/fate/filter-fps-start-drop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-start-drop rename to ffmpeg-y/tests/ref/fate/filter-fps-start-drop diff --git a/tests/ref/fate/filter-fps-start-fill b/ffmpeg-y/tests/ref/fate/filter-fps-start-fill old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-start-fill rename to ffmpeg-y/tests/ref/fate/filter-fps-start-fill diff --git a/tests/ref/fate/filter-fps-up b/ffmpeg-y/tests/ref/fate/filter-fps-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-up rename to ffmpeg-y/tests/ref/fate/filter-fps-up diff --git a/tests/ref/fate/filter-fps-up-round-down b/ffmpeg-y/tests/ref/fate/filter-fps-up-round-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-up-round-down rename to ffmpeg-y/tests/ref/fate/filter-fps-up-round-down diff --git a/tests/ref/fate/filter-fps-up-round-up b/ffmpeg-y/tests/ref/fate/filter-fps-up-round-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-fps-up-round-up rename to ffmpeg-y/tests/ref/fate/filter-fps-up-round-up diff --git a/tests/ref/fate/filter-framepack-columns b/ffmpeg-y/tests/ref/fate/filter-framepack-columns old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framepack-columns rename to ffmpeg-y/tests/ref/fate/filter-framepack-columns diff --git a/tests/ref/fate/filter-framepack-frameseq b/ffmpeg-y/tests/ref/fate/filter-framepack-frameseq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framepack-frameseq rename to ffmpeg-y/tests/ref/fate/filter-framepack-frameseq diff --git a/tests/ref/fate/filter-framepack-lines b/ffmpeg-y/tests/ref/fate/filter-framepack-lines old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framepack-lines rename to ffmpeg-y/tests/ref/fate/filter-framepack-lines diff --git a/tests/ref/fate/filter-framepack-sbs b/ffmpeg-y/tests/ref/fate/filter-framepack-sbs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framepack-sbs rename to ffmpeg-y/tests/ref/fate/filter-framepack-sbs diff --git a/tests/ref/fate/filter-framepack-tab b/ffmpeg-y/tests/ref/fate/filter-framepack-tab old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framepack-tab rename to ffmpeg-y/tests/ref/fate/filter-framepack-tab diff --git a/tests/ref/fate/filter-framerate-12bit-down b/ffmpeg-y/tests/ref/fate/filter-framerate-12bit-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framerate-12bit-down rename to ffmpeg-y/tests/ref/fate/filter-framerate-12bit-down diff --git a/tests/ref/fate/filter-framerate-12bit-up b/ffmpeg-y/tests/ref/fate/filter-framerate-12bit-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framerate-12bit-up rename to ffmpeg-y/tests/ref/fate/filter-framerate-12bit-up diff --git a/tests/ref/fate/filter-framerate-down b/ffmpeg-y/tests/ref/fate/filter-framerate-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framerate-down rename to ffmpeg-y/tests/ref/fate/filter-framerate-down diff --git a/tests/ref/fate/filter-framerate-up b/ffmpeg-y/tests/ref/fate/filter-framerate-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-framerate-up rename to ffmpeg-y/tests/ref/fate/filter-framerate-up diff --git a/tests/ref/fate/filter-gradfun b/ffmpeg-y/tests/ref/fate/filter-gradfun old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-gradfun rename to ffmpeg-y/tests/ref/fate/filter-gradfun diff --git a/tests/ref/fate/filter-gradfun-sample b/ffmpeg-y/tests/ref/fate/filter-gradfun-sample old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-gradfun-sample rename to ffmpeg-y/tests/ref/fate/filter-gradfun-sample diff --git a/tests/ref/fate/filter-histogram-levels b/ffmpeg-y/tests/ref/fate/filter-histogram-levels old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-histogram-levels rename to ffmpeg-y/tests/ref/fate/filter-histogram-levels diff --git a/tests/ref/fate/filter-hls b/ffmpeg-y/tests/ref/fate/filter-hls old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hls rename to ffmpeg-y/tests/ref/fate/filter-hls diff --git a/tests/ref/fate/filter-hls-append b/ffmpeg-y/tests/ref/fate/filter-hls-append old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hls-append rename to ffmpeg-y/tests/ref/fate/filter-hls-append diff --git a/tests/ref/fate/filter-hq2x b/ffmpeg-y/tests/ref/fate/filter-hq2x old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hq2x rename to ffmpeg-y/tests/ref/fate/filter-hq2x diff --git a/tests/ref/fate/filter-hq3x b/ffmpeg-y/tests/ref/fate/filter-hq3x old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hq3x rename to ffmpeg-y/tests/ref/fate/filter-hq3x diff --git a/tests/ref/fate/filter-hq4x b/ffmpeg-y/tests/ref/fate/filter-hq4x old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hq4x rename to ffmpeg-y/tests/ref/fate/filter-hq4x diff --git a/tests/ref/fate/filter-hqdn3d b/ffmpeg-y/tests/ref/fate/filter-hqdn3d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hqdn3d rename to ffmpeg-y/tests/ref/fate/filter-hqdn3d diff --git a/tests/ref/fate/filter-hqdn3d-sample b/ffmpeg-y/tests/ref/fate/filter-hqdn3d-sample old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hqdn3d-sample rename to ffmpeg-y/tests/ref/fate/filter-hqdn3d-sample diff --git a/tests/ref/fate/filter-hstack b/ffmpeg-y/tests/ref/fate/filter-hstack old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hstack rename to ffmpeg-y/tests/ref/fate/filter-hstack diff --git a/tests/ref/fate/filter-hue1 b/ffmpeg-y/tests/ref/fate/filter-hue1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hue1 rename to ffmpeg-y/tests/ref/fate/filter-hue1 diff --git a/tests/ref/fate/filter-hue2 b/ffmpeg-y/tests/ref/fate/filter-hue2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hue2 rename to ffmpeg-y/tests/ref/fate/filter-hue2 diff --git a/tests/ref/fate/filter-hue3 b/ffmpeg-y/tests/ref/fate/filter-hue3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hue3 rename to ffmpeg-y/tests/ref/fate/filter-hue3 diff --git a/tests/ref/fate/filter-hue4 b/ffmpeg-y/tests/ref/fate/filter-hue4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-hue4 rename to ffmpeg-y/tests/ref/fate/filter-hue4 diff --git a/tests/ref/fate/filter-idet b/ffmpeg-y/tests/ref/fate/filter-idet old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-idet rename to ffmpeg-y/tests/ref/fate/filter-idet diff --git a/tests/ref/fate/filter-interlace b/ffmpeg-y/tests/ref/fate/filter-interlace old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-interlace rename to ffmpeg-y/tests/ref/fate/filter-interlace diff --git a/tests/ref/fate/filter-interlace-complex b/ffmpeg-y/tests/ref/fate/filter-interlace-complex old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-interlace-complex rename to ffmpeg-y/tests/ref/fate/filter-interlace-complex diff --git a/tests/ref/fate/filter-lavd-life b/ffmpeg-y/tests/ref/fate/filter-lavd-life old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-lavd-life rename to ffmpeg-y/tests/ref/fate/filter-lavd-life diff --git a/tests/ref/fate/filter-lavd-scalenorm b/ffmpeg-y/tests/ref/fate/filter-lavd-scalenorm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-lavd-scalenorm rename to ffmpeg-y/tests/ref/fate/filter-lavd-scalenorm diff --git a/tests/ref/fate/filter-lavd-testsrc b/ffmpeg-y/tests/ref/fate/filter-lavd-testsrc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-lavd-testsrc rename to ffmpeg-y/tests/ref/fate/filter-lavd-testsrc diff --git a/tests/ref/fate/filter-mcdeint-fast b/ffmpeg-y/tests/ref/fate/filter-mcdeint-fast old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-mcdeint-fast rename to ffmpeg-y/tests/ref/fate/filter-mcdeint-fast diff --git a/tests/ref/fate/filter-mcdeint-medium b/ffmpeg-y/tests/ref/fate/filter-mcdeint-medium old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-mcdeint-medium rename to ffmpeg-y/tests/ref/fate/filter-mcdeint-medium diff --git a/tests/ref/fate/filter-mergeplanes b/ffmpeg-y/tests/ref/fate/filter-mergeplanes old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-mergeplanes rename to ffmpeg-y/tests/ref/fate/filter-mergeplanes diff --git a/tests/ref/fate/filter-meta-4560-rotate0 b/ffmpeg-y/tests/ref/fate/filter-meta-4560-rotate0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-meta-4560-rotate0 rename to ffmpeg-y/tests/ref/fate/filter-meta-4560-rotate0 diff --git a/tests/ref/fate/filter-metadata-avf-aphase-meter-mono b/ffmpeg-y/tests/ref/fate/filter-metadata-avf-aphase-meter-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-avf-aphase-meter-mono rename to ffmpeg-y/tests/ref/fate/filter-metadata-avf-aphase-meter-mono diff --git a/tests/ref/fate/filter-metadata-avf-aphase-meter-out-of-phase b/ffmpeg-y/tests/ref/fate/filter-metadata-avf-aphase-meter-out-of-phase old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-avf-aphase-meter-out-of-phase rename to ffmpeg-y/tests/ref/fate/filter-metadata-avf-aphase-meter-out-of-phase diff --git a/tests/ref/fate/filter-metadata-cropdetect b/ffmpeg-y/tests/ref/fate/filter-metadata-cropdetect old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-cropdetect rename to ffmpeg-y/tests/ref/fate/filter-metadata-cropdetect diff --git a/tests/ref/fate/filter-metadata-ebur128 b/ffmpeg-y/tests/ref/fate/filter-metadata-ebur128 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-ebur128 rename to ffmpeg-y/tests/ref/fate/filter-metadata-ebur128 diff --git a/tests/ref/fate/filter-metadata-readvitc-def b/ffmpeg-y/tests/ref/fate/filter-metadata-readvitc-def old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-readvitc-def rename to ffmpeg-y/tests/ref/fate/filter-metadata-readvitc-def diff --git a/tests/ref/fate/filter-metadata-readvitc-thr b/ffmpeg-y/tests/ref/fate/filter-metadata-readvitc-thr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-readvitc-thr rename to ffmpeg-y/tests/ref/fate/filter-metadata-readvitc-thr diff --git a/tests/ref/fate/filter-metadata-scenedetect b/ffmpeg-y/tests/ref/fate/filter-metadata-scenedetect old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-scenedetect rename to ffmpeg-y/tests/ref/fate/filter-metadata-scenedetect diff --git a/tests/ref/fate/filter-metadata-silencedetect b/ffmpeg-y/tests/ref/fate/filter-metadata-silencedetect old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-metadata-silencedetect rename to ffmpeg-y/tests/ref/fate/filter-metadata-silencedetect diff --git a/tests/ref/fate/filter-mpdecimate b/ffmpeg-y/tests/ref/fate/filter-mpdecimate old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-mpdecimate rename to ffmpeg-y/tests/ref/fate/filter-mpdecimate diff --git a/tests/ref/fate/filter-negate b/ffmpeg-y/tests/ref/fate/filter-negate old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-negate rename to ffmpeg-y/tests/ref/fate/filter-negate diff --git a/tests/ref/fate/filter-null b/ffmpeg-y/tests/ref/fate/filter-null old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-null rename to ffmpeg-y/tests/ref/fate/filter-null diff --git a/tests/ref/fate/filter-overlay b/ffmpeg-y/tests/ref/fate/filter-overlay old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay rename to ffmpeg-y/tests/ref/fate/filter-overlay diff --git a/tests/ref/fate/filter-overlay-dvdsub-2397 b/ffmpeg-y/tests/ref/fate/filter-overlay-dvdsub-2397 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay-dvdsub-2397 rename to ffmpeg-y/tests/ref/fate/filter-overlay-dvdsub-2397 diff --git a/tests/ref/fate/filter-overlay_gbrap_gbrap b/ffmpeg-y/tests/ref/fate/filter-overlay_gbrap_gbrap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_gbrap_gbrap rename to ffmpeg-y/tests/ref/fate/filter-overlay_gbrap_gbrap diff --git a/tests/ref/fate/filter-overlay_gbrp_gbrap b/ffmpeg-y/tests/ref/fate/filter-overlay_gbrp_gbrap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_gbrp_gbrap rename to ffmpeg-y/tests/ref/fate/filter-overlay_gbrp_gbrap diff --git a/tests/ref/fate/filter-overlay_rgb b/ffmpeg-y/tests/ref/fate/filter-overlay_rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_rgb rename to ffmpeg-y/tests/ref/fate/filter-overlay_rgb diff --git a/tests/ref/fate/filter-overlay_rgb_rgba b/ffmpeg-y/tests/ref/fate/filter-overlay_rgb_rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_rgb_rgba rename to ffmpeg-y/tests/ref/fate/filter-overlay_rgb_rgba diff --git a/tests/ref/fate/filter-overlay_rgba_rgba b/ffmpeg-y/tests/ref/fate/filter-overlay_rgba_rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_rgba_rgba rename to ffmpeg-y/tests/ref/fate/filter-overlay_rgba_rgba diff --git a/tests/ref/fate/filter-overlay_yuv420 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuv420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuv420 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuv420 diff --git a/tests/ref/fate/filter-overlay_yuv420_yuva420 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuv420_yuva420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuv420_yuva420 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuv420_yuva420 diff --git a/tests/ref/fate/filter-overlay_yuv422 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuv422 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuv422 diff --git a/tests/ref/fate/filter-overlay_yuv422_yuva422 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuv422_yuva422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuv422_yuva422 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuv422_yuva422 diff --git a/tests/ref/fate/filter-overlay_yuv444 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuv444 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuv444 diff --git a/tests/ref/fate/filter-overlay_yuv444_yuva444 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuv444_yuva444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuv444_yuva444 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuv444_yuva444 diff --git a/tests/ref/fate/filter-overlay_yuva420_yuva420 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuva420_yuva420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuva420_yuva420 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuva420_yuva420 diff --git a/tests/ref/fate/filter-overlay_yuva422_yuva422 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuva422_yuva422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuva422_yuva422 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuva422_yuva422 diff --git a/tests/ref/fate/filter-overlay_yuva444_yuva444 b/ffmpeg-y/tests/ref/fate/filter-overlay_yuva444_yuva444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-overlay_yuva444_yuva444 rename to ffmpeg-y/tests/ref/fate/filter-overlay_yuva444_yuva444 diff --git a/tests/ref/fate/filter-pad b/ffmpeg-y/tests/ref/fate/filter-pad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pad rename to ffmpeg-y/tests/ref/fate/filter-pad diff --git a/tests/ref/fate/filter-pal100bars b/ffmpeg-y/tests/ref/fate/filter-pal100bars old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pal100bars rename to ffmpeg-y/tests/ref/fate/filter-pal100bars diff --git a/tests/ref/fate/filter-pal75bars b/ffmpeg-y/tests/ref/fate/filter-pal75bars old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pal75bars rename to ffmpeg-y/tests/ref/fate/filter-pal75bars diff --git a/tests/ref/fate/filter-palettegen-1 b/ffmpeg-y/tests/ref/fate/filter-palettegen-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-palettegen-1 rename to ffmpeg-y/tests/ref/fate/filter-palettegen-1 diff --git a/tests/ref/fate/filter-palettegen-2 b/ffmpeg-y/tests/ref/fate/filter-palettegen-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-palettegen-2 rename to ffmpeg-y/tests/ref/fate/filter-palettegen-2 diff --git a/tests/ref/fate/filter-paletteuse-bayer b/ffmpeg-y/tests/ref/fate/filter-paletteuse-bayer old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-paletteuse-bayer rename to ffmpeg-y/tests/ref/fate/filter-paletteuse-bayer diff --git a/tests/ref/fate/filter-paletteuse-nodither b/ffmpeg-y/tests/ref/fate/filter-paletteuse-nodither old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-paletteuse-nodither rename to ffmpeg-y/tests/ref/fate/filter-paletteuse-nodither diff --git a/tests/ref/fate/filter-paletteuse-sierra2_4a b/ffmpeg-y/tests/ref/fate/filter-paletteuse-sierra2_4a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-paletteuse-sierra2_4a rename to ffmpeg-y/tests/ref/fate/filter-paletteuse-sierra2_4a diff --git a/tests/ref/fate/filter-pan-downmix1 b/ffmpeg-y/tests/ref/fate/filter-pan-downmix1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-downmix1 rename to ffmpeg-y/tests/ref/fate/filter-pan-downmix1 diff --git a/tests/ref/fate/filter-pan-downmix2 b/ffmpeg-y/tests/ref/fate/filter-pan-downmix2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-downmix2 rename to ffmpeg-y/tests/ref/fate/filter-pan-downmix2 diff --git a/tests/ref/fate/filter-pan-mono1 b/ffmpeg-y/tests/ref/fate/filter-pan-mono1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-mono1 rename to ffmpeg-y/tests/ref/fate/filter-pan-mono1 diff --git a/tests/ref/fate/filter-pan-mono2 b/ffmpeg-y/tests/ref/fate/filter-pan-mono2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-mono2 rename to ffmpeg-y/tests/ref/fate/filter-pan-mono2 diff --git a/tests/ref/fate/filter-pan-stereo1 b/ffmpeg-y/tests/ref/fate/filter-pan-stereo1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-stereo1 rename to ffmpeg-y/tests/ref/fate/filter-pan-stereo1 diff --git a/tests/ref/fate/filter-pan-stereo2 b/ffmpeg-y/tests/ref/fate/filter-pan-stereo2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-stereo2 rename to ffmpeg-y/tests/ref/fate/filter-pan-stereo2 diff --git a/tests/ref/fate/filter-pan-stereo3 b/ffmpeg-y/tests/ref/fate/filter-pan-stereo3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-stereo3 rename to ffmpeg-y/tests/ref/fate/filter-pan-stereo3 diff --git a/tests/ref/fate/filter-pan-stereo4 b/ffmpeg-y/tests/ref/fate/filter-pan-stereo4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-stereo4 rename to ffmpeg-y/tests/ref/fate/filter-pan-stereo4 diff --git a/tests/ref/fate/filter-pan-upmix1 b/ffmpeg-y/tests/ref/fate/filter-pan-upmix1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-upmix1 rename to ffmpeg-y/tests/ref/fate/filter-pan-upmix1 diff --git a/tests/ref/fate/filter-pan-upmix2 b/ffmpeg-y/tests/ref/fate/filter-pan-upmix2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pan-upmix2 rename to ffmpeg-y/tests/ref/fate/filter-pan-upmix2 diff --git a/tests/ref/fate/filter-phase b/ffmpeg-y/tests/ref/fate/filter-phase old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-phase rename to ffmpeg-y/tests/ref/fate/filter-phase diff --git a/tests/ref/fate/filter-pixdesc-0bgr b/ffmpeg-y/tests/ref/fate/filter-pixdesc-0bgr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-0bgr rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-0bgr diff --git a/tests/ref/fate/filter-pixdesc-0rgb b/ffmpeg-y/tests/ref/fate/filter-pixdesc-0rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-0rgb rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-0rgb diff --git a/tests/ref/fate/filter-pixdesc-abgr b/ffmpeg-y/tests/ref/fate/filter-pixdesc-abgr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-abgr rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-abgr diff --git a/tests/ref/fate/filter-pixdesc-argb b/ffmpeg-y/tests/ref/fate/filter-pixdesc-argb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-argb rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-argb diff --git a/tests/ref/fate/filter-pixdesc-ayuv64le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-ayuv64le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-ayuv64le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-ayuv64le diff --git a/tests/ref/fate/filter-pixdesc-bgr0 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr0 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr0 diff --git a/tests/ref/fate/filter-pixdesc-bgr24 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr24 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr24 diff --git a/tests/ref/fate/filter-pixdesc-bgr444be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr444be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr444be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr444be diff --git a/tests/ref/fate/filter-pixdesc-bgr444le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr444le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr444le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr444le diff --git a/tests/ref/fate/filter-pixdesc-bgr48be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr48be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr48be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr48be diff --git a/tests/ref/fate/filter-pixdesc-bgr48le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr48le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr48le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr48le diff --git a/tests/ref/fate/filter-pixdesc-bgr4_byte b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr4_byte old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr4_byte rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr4_byte diff --git a/tests/ref/fate/filter-pixdesc-bgr555be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr555be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr555be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr555be diff --git a/tests/ref/fate/filter-pixdesc-bgr555le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr555le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr555le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr555le diff --git a/tests/ref/fate/filter-pixdesc-bgr565be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr565be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr565be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr565be diff --git a/tests/ref/fate/filter-pixdesc-bgr565le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr565le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr565le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr565le diff --git a/tests/ref/fate/filter-pixdesc-bgr8 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgr8 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgr8 diff --git a/tests/ref/fate/filter-pixdesc-bgra b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgra rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgra diff --git a/tests/ref/fate/filter-pixdesc-bgra64be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgra64be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgra64be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgra64be diff --git a/tests/ref/fate/filter-pixdesc-bgra64le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-bgra64le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-bgra64le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-bgra64le diff --git a/tests/ref/fate/filter-pixdesc-gbrap b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap diff --git a/tests/ref/fate/filter-pixdesc-gbrap10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap10be diff --git a/tests/ref/fate/filter-pixdesc-gbrap10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap10le diff --git a/tests/ref/fate/filter-pixdesc-gbrap12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap12be diff --git a/tests/ref/fate/filter-pixdesc-gbrap12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap12le diff --git a/tests/ref/fate/filter-pixdesc-gbrap16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap16be diff --git a/tests/ref/fate/filter-pixdesc-gbrap16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrap16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrap16le diff --git a/tests/ref/fate/filter-pixdesc-gbrp b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp diff --git a/tests/ref/fate/filter-pixdesc-gbrp10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp10be diff --git a/tests/ref/fate/filter-pixdesc-gbrp10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp10le diff --git a/tests/ref/fate/filter-pixdesc-gbrp12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp12be diff --git a/tests/ref/fate/filter-pixdesc-gbrp12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp12le diff --git a/tests/ref/fate/filter-pixdesc-gbrp14be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp14be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp14be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp14be diff --git a/tests/ref/fate/filter-pixdesc-gbrp14le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp14le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp14le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp14le diff --git a/tests/ref/fate/filter-pixdesc-gbrp16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp16be diff --git a/tests/ref/fate/filter-pixdesc-gbrp16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp16le diff --git a/tests/ref/fate/filter-pixdesc-gbrp9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp9be diff --git a/tests/ref/fate/filter-pixdesc-gbrp9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gbrp9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gbrp9le diff --git a/tests/ref/fate/filter-pixdesc-gray b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray diff --git a/tests/ref/fate/filter-pixdesc-gray10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray10be diff --git a/tests/ref/fate/filter-pixdesc-gray10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray10le diff --git a/tests/ref/fate/filter-pixdesc-gray12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray12be diff --git a/tests/ref/fate/filter-pixdesc-gray12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray12le diff --git a/tests/ref/fate/filter-pixdesc-gray14be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray14be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray14be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray14be diff --git a/tests/ref/fate/filter-pixdesc-gray14le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray14le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray14le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray14le diff --git a/tests/ref/fate/filter-pixdesc-gray16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray16be diff --git a/tests/ref/fate/filter-pixdesc-gray16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray16le diff --git a/tests/ref/fate/filter-pixdesc-gray9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray9be diff --git a/tests/ref/fate/filter-pixdesc-gray9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-gray9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-gray9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-gray9le diff --git a/tests/ref/fate/filter-pixdesc-grayf32be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-grayf32be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-grayf32be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-grayf32be diff --git a/tests/ref/fate/filter-pixdesc-grayf32le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-grayf32le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-grayf32le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-grayf32le diff --git a/tests/ref/fate/filter-pixdesc-monob b/ffmpeg-y/tests/ref/fate/filter-pixdesc-monob old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-monob rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-monob diff --git a/tests/ref/fate/filter-pixdesc-monow b/ffmpeg-y/tests/ref/fate/filter-pixdesc-monow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-monow rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-monow diff --git a/tests/ref/fate/filter-pixdesc-nv12 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-nv12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-nv12 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-nv12 diff --git a/tests/ref/fate/filter-pixdesc-nv21 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-nv21 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-nv21 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-nv21 diff --git a/tests/ref/fate/filter-pixdesc-nv24 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-nv24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-nv24 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-nv24 diff --git a/tests/ref/fate/filter-pixdesc-nv42 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-nv42 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-nv42 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-nv42 diff --git a/tests/ref/fate/filter-pixdesc-p010be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-p010be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-p010be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-p010be diff --git a/tests/ref/fate/filter-pixdesc-p010le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-p010le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-p010le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-p010le diff --git a/tests/ref/fate/filter-pixdesc-p016be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-p016be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-p016be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-p016be diff --git a/tests/ref/fate/filter-pixdesc-p016le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-p016le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-p016le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-p016le diff --git a/tests/ref/fate/filter-pixdesc-rgb0 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb0 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb0 diff --git a/tests/ref/fate/filter-pixdesc-rgb24 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb24 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb24 diff --git a/tests/ref/fate/filter-pixdesc-rgb444be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb444be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb444be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb444be diff --git a/tests/ref/fate/filter-pixdesc-rgb444le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb444le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb444le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb444le diff --git a/tests/ref/fate/filter-pixdesc-rgb48be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb48be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb48be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb48be diff --git a/tests/ref/fate/filter-pixdesc-rgb48le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb48le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb48le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb48le diff --git a/tests/ref/fate/filter-pixdesc-rgb4_byte b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb4_byte old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb4_byte rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb4_byte diff --git a/tests/ref/fate/filter-pixdesc-rgb555be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb555be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb555be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb555be diff --git a/tests/ref/fate/filter-pixdesc-rgb555le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb555le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb555le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb555le diff --git a/tests/ref/fate/filter-pixdesc-rgb565be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb565be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb565be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb565be diff --git a/tests/ref/fate/filter-pixdesc-rgb565le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb565le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb565le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb565le diff --git a/tests/ref/fate/filter-pixdesc-rgb8 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgb8 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgb8 diff --git a/tests/ref/fate/filter-pixdesc-rgba b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgba rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgba diff --git a/tests/ref/fate/filter-pixdesc-rgba64be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgba64be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgba64be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgba64be diff --git a/tests/ref/fate/filter-pixdesc-rgba64le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-rgba64le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-rgba64le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-rgba64le diff --git a/tests/ref/fate/filter-pixdesc-uyvy422 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-uyvy422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-uyvy422 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-uyvy422 diff --git a/tests/ref/fate/filter-pixdesc-xyz12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-xyz12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-xyz12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-xyz12be diff --git a/tests/ref/fate/filter-pixdesc-xyz12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-xyz12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-xyz12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-xyz12le diff --git a/tests/ref/fate/filter-pixdesc-ya16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-ya16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-ya16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-ya16be diff --git a/tests/ref/fate/filter-pixdesc-ya16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-ya16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-ya16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-ya16le diff --git a/tests/ref/fate/filter-pixdesc-ya8 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-ya8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-ya8 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-ya8 diff --git a/tests/ref/fate/filter-pixdesc-yuv410p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv410p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv410p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv410p diff --git a/tests/ref/fate/filter-pixdesc-yuv411p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv411p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv411p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv411p diff --git a/tests/ref/fate/filter-pixdesc-yuv420p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p diff --git a/tests/ref/fate/filter-pixdesc-yuv420p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p10be diff --git a/tests/ref/fate/filter-pixdesc-yuv420p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p10le diff --git a/tests/ref/fate/filter-pixdesc-yuv420p12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p12be diff --git a/tests/ref/fate/filter-pixdesc-yuv420p12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p12le diff --git a/tests/ref/fate/filter-pixdesc-yuv420p14be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p14be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p14be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p14be diff --git a/tests/ref/fate/filter-pixdesc-yuv420p14le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p14le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p14le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p14le diff --git a/tests/ref/fate/filter-pixdesc-yuv420p16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p16be diff --git a/tests/ref/fate/filter-pixdesc-yuv420p16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p16le diff --git a/tests/ref/fate/filter-pixdesc-yuv420p9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p9be diff --git a/tests/ref/fate/filter-pixdesc-yuv420p9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv420p9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv420p9le diff --git a/tests/ref/fate/filter-pixdesc-yuv422p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p diff --git a/tests/ref/fate/filter-pixdesc-yuv422p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p10be diff --git a/tests/ref/fate/filter-pixdesc-yuv422p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p10le diff --git a/tests/ref/fate/filter-pixdesc-yuv422p12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p12be diff --git a/tests/ref/fate/filter-pixdesc-yuv422p12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p12le diff --git a/tests/ref/fate/filter-pixdesc-yuv422p14be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p14be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p14be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p14be diff --git a/tests/ref/fate/filter-pixdesc-yuv422p14le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p14le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p14le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p14le diff --git a/tests/ref/fate/filter-pixdesc-yuv422p16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p16be diff --git a/tests/ref/fate/filter-pixdesc-yuv422p16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p16le diff --git a/tests/ref/fate/filter-pixdesc-yuv422p9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p9be diff --git a/tests/ref/fate/filter-pixdesc-yuv422p9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv422p9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv422p9le diff --git a/tests/ref/fate/filter-pixdesc-yuv440p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv440p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p diff --git a/tests/ref/fate/filter-pixdesc-yuv440p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv440p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p10be diff --git a/tests/ref/fate/filter-pixdesc-yuv440p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv440p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p10le diff --git a/tests/ref/fate/filter-pixdesc-yuv440p12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv440p12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p12be diff --git a/tests/ref/fate/filter-pixdesc-yuv440p12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv440p12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv440p12le diff --git a/tests/ref/fate/filter-pixdesc-yuv444p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p diff --git a/tests/ref/fate/filter-pixdesc-yuv444p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p10be diff --git a/tests/ref/fate/filter-pixdesc-yuv444p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p10le diff --git a/tests/ref/fate/filter-pixdesc-yuv444p12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p12be diff --git a/tests/ref/fate/filter-pixdesc-yuv444p12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p12le diff --git a/tests/ref/fate/filter-pixdesc-yuv444p14be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p14be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p14be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p14be diff --git a/tests/ref/fate/filter-pixdesc-yuv444p14le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p14le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p14le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p14le diff --git a/tests/ref/fate/filter-pixdesc-yuv444p16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p16be diff --git a/tests/ref/fate/filter-pixdesc-yuv444p16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p16le diff --git a/tests/ref/fate/filter-pixdesc-yuv444p9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p9be diff --git a/tests/ref/fate/filter-pixdesc-yuv444p9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuv444p9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuv444p9le diff --git a/tests/ref/fate/filter-pixdesc-yuva420p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p diff --git a/tests/ref/fate/filter-pixdesc-yuva420p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p10be diff --git a/tests/ref/fate/filter-pixdesc-yuva420p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p10le diff --git a/tests/ref/fate/filter-pixdesc-yuva420p16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p16be diff --git a/tests/ref/fate/filter-pixdesc-yuva420p16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p16le diff --git a/tests/ref/fate/filter-pixdesc-yuva420p9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p9be diff --git a/tests/ref/fate/filter-pixdesc-yuva420p9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva420p9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva420p9le diff --git a/tests/ref/fate/filter-pixdesc-yuva422p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p diff --git a/tests/ref/fate/filter-pixdesc-yuva422p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p10be diff --git a/tests/ref/fate/filter-pixdesc-yuva422p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p10le diff --git a/tests/ref/fate/filter-pixdesc-yuva422p12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p12be diff --git a/tests/ref/fate/filter-pixdesc-yuva422p12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p12le diff --git a/tests/ref/fate/filter-pixdesc-yuva422p16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p16be diff --git a/tests/ref/fate/filter-pixdesc-yuva422p16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p16le diff --git a/tests/ref/fate/filter-pixdesc-yuva422p9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p9be diff --git a/tests/ref/fate/filter-pixdesc-yuva422p9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva422p9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva422p9le diff --git a/tests/ref/fate/filter-pixdesc-yuva444p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p diff --git a/tests/ref/fate/filter-pixdesc-yuva444p10be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p10be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p10be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p10be diff --git a/tests/ref/fate/filter-pixdesc-yuva444p10le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p10le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p10le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p10le diff --git a/tests/ref/fate/filter-pixdesc-yuva444p12be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p12be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p12be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p12be diff --git a/tests/ref/fate/filter-pixdesc-yuva444p12le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p12le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p12le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p12le diff --git a/tests/ref/fate/filter-pixdesc-yuva444p16be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p16be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p16be diff --git a/tests/ref/fate/filter-pixdesc-yuva444p16le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p16le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p16le diff --git a/tests/ref/fate/filter-pixdesc-yuva444p9be b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p9be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p9be rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p9be diff --git a/tests/ref/fate/filter-pixdesc-yuva444p9le b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p9le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuva444p9le rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuva444p9le diff --git a/tests/ref/fate/filter-pixdesc-yuvj411p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj411p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuvj411p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj411p diff --git a/tests/ref/fate/filter-pixdesc-yuvj420p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuvj420p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj420p diff --git a/tests/ref/fate/filter-pixdesc-yuvj422p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuvj422p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj422p diff --git a/tests/ref/fate/filter-pixdesc-yuvj440p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj440p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuvj440p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj440p diff --git a/tests/ref/fate/filter-pixdesc-yuvj444p b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuvj444p rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuvj444p diff --git a/tests/ref/fate/filter-pixdesc-yuyv422 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yuyv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yuyv422 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yuyv422 diff --git a/tests/ref/fate/filter-pixdesc-yvyu422 b/ffmpeg-y/tests/ref/fate/filter-pixdesc-yvyu422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixdesc-yvyu422 rename to ffmpeg-y/tests/ref/fate/filter-pixdesc-yvyu422 diff --git a/tests/ref/fate/filter-pixfmts-copy b/ffmpeg-y/tests/ref/fate/filter-pixfmts-copy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-copy rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-copy diff --git a/tests/ref/fate/filter-pixfmts-crop b/ffmpeg-y/tests/ref/fate/filter-pixfmts-crop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-crop rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-crop diff --git a/tests/ref/fate/filter-pixfmts-field b/ffmpeg-y/tests/ref/fate/filter-pixfmts-field old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-field rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-field diff --git a/tests/ref/fate/filter-pixfmts-fieldmatch b/ffmpeg-y/tests/ref/fate/filter-pixfmts-fieldmatch old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-fieldmatch rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-fieldmatch diff --git a/tests/ref/fate/filter-pixfmts-fieldorder b/ffmpeg-y/tests/ref/fate/filter-pixfmts-fieldorder old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-fieldorder rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-fieldorder diff --git a/tests/ref/fate/filter-pixfmts-hflip b/ffmpeg-y/tests/ref/fate/filter-pixfmts-hflip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-hflip rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-hflip diff --git a/tests/ref/fate/filter-pixfmts-histeq b/ffmpeg-y/tests/ref/fate/filter-pixfmts-histeq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-histeq rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-histeq diff --git a/tests/ref/fate/filter-pixfmts-il b/ffmpeg-y/tests/ref/fate/filter-pixfmts-il old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-il rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-il diff --git a/tests/ref/fate/filter-pixfmts-kerndeint b/ffmpeg-y/tests/ref/fate/filter-pixfmts-kerndeint old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-kerndeint rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-kerndeint diff --git a/tests/ref/fate/filter-pixfmts-lut b/ffmpeg-y/tests/ref/fate/filter-pixfmts-lut old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-lut rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-lut diff --git a/tests/ref/fate/filter-pixfmts-null b/ffmpeg-y/tests/ref/fate/filter-pixfmts-null old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-null rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-null diff --git a/tests/ref/fate/filter-pixfmts-pad b/ffmpeg-y/tests/ref/fate/filter-pixfmts-pad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-pad rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-pad diff --git a/tests/ref/fate/filter-pixfmts-pullup b/ffmpeg-y/tests/ref/fate/filter-pixfmts-pullup old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-pullup rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-pullup diff --git a/tests/ref/fate/filter-pixfmts-rotate b/ffmpeg-y/tests/ref/fate/filter-pixfmts-rotate old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-rotate rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-rotate diff --git a/tests/ref/fate/filter-pixfmts-scale b/ffmpeg-y/tests/ref/fate/filter-pixfmts-scale old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-scale rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-scale diff --git a/tests/ref/fate/filter-pixfmts-super2xsai b/ffmpeg-y/tests/ref/fate/filter-pixfmts-super2xsai old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-super2xsai rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-super2xsai diff --git a/tests/ref/fate/filter-pixfmts-swapuv b/ffmpeg-y/tests/ref/fate/filter-pixfmts-swapuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-swapuv rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-swapuv diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf b/ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-tinterlace_cvlpf rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_merge b/ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_merge old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-tinterlace_merge rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_merge diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_pad b/ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_pad old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-tinterlace_pad rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_pad diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_vlpf b/ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_vlpf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-tinterlace_vlpf rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-tinterlace_vlpf diff --git a/tests/ref/fate/filter-pixfmts-transpose b/ffmpeg-y/tests/ref/fate/filter-pixfmts-transpose old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-transpose rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-transpose diff --git a/tests/ref/fate/filter-pixfmts-vflip b/ffmpeg-y/tests/ref/fate/filter-pixfmts-vflip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pixfmts-vflip rename to ffmpeg-y/tests/ref/fate/filter-pixfmts-vflip diff --git a/tests/ref/fate/filter-pp b/ffmpeg-y/tests/ref/fate/filter-pp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp rename to ffmpeg-y/tests/ref/fate/filter-pp diff --git a/tests/ref/fate/filter-pp1 b/ffmpeg-y/tests/ref/fate/filter-pp1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp1 rename to ffmpeg-y/tests/ref/fate/filter-pp1 diff --git a/tests/ref/fate/filter-pp2 b/ffmpeg-y/tests/ref/fate/filter-pp2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp2 rename to ffmpeg-y/tests/ref/fate/filter-pp2 diff --git a/tests/ref/fate/filter-pp3 b/ffmpeg-y/tests/ref/fate/filter-pp3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp3 rename to ffmpeg-y/tests/ref/fate/filter-pp3 diff --git a/tests/ref/fate/filter-pp4 b/ffmpeg-y/tests/ref/fate/filter-pp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp4 rename to ffmpeg-y/tests/ref/fate/filter-pp4 diff --git a/tests/ref/fate/filter-pp5 b/ffmpeg-y/tests/ref/fate/filter-pp5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp5 rename to ffmpeg-y/tests/ref/fate/filter-pp5 diff --git a/tests/ref/fate/filter-pp6 b/ffmpeg-y/tests/ref/fate/filter-pp6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-pp6 rename to ffmpeg-y/tests/ref/fate/filter-pp6 diff --git a/tests/ref/fate/filter-qp b/ffmpeg-y/tests/ref/fate/filter-qp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-qp rename to ffmpeg-y/tests/ref/fate/filter-qp diff --git a/tests/ref/fate/filter-refcmp-psnr-rgb b/ffmpeg-y/tests/ref/fate/filter-refcmp-psnr-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-refcmp-psnr-rgb rename to ffmpeg-y/tests/ref/fate/filter-refcmp-psnr-rgb diff --git a/tests/ref/fate/filter-refcmp-psnr-yuv b/ffmpeg-y/tests/ref/fate/filter-refcmp-psnr-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-refcmp-psnr-yuv rename to ffmpeg-y/tests/ref/fate/filter-refcmp-psnr-yuv diff --git a/tests/ref/fate/filter-refcmp-ssim-rgb b/ffmpeg-y/tests/ref/fate/filter-refcmp-ssim-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-refcmp-ssim-rgb rename to ffmpeg-y/tests/ref/fate/filter-refcmp-ssim-rgb diff --git a/tests/ref/fate/filter-refcmp-ssim-yuv b/ffmpeg-y/tests/ref/fate/filter-refcmp-ssim-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-refcmp-ssim-yuv rename to ffmpeg-y/tests/ref/fate/filter-refcmp-ssim-yuv diff --git a/tests/ref/fate/filter-removegrain-mode-00 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-00 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-00 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-00 diff --git a/tests/ref/fate/filter-removegrain-mode-01 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-01 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-01 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-01 diff --git a/tests/ref/fate/filter-removegrain-mode-02 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-02 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-02 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-02 diff --git a/tests/ref/fate/filter-removegrain-mode-03 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-03 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-03 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-03 diff --git a/tests/ref/fate/filter-removegrain-mode-04 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-04 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-04 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-04 diff --git a/tests/ref/fate/filter-removegrain-mode-05 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-05 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-05 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-05 diff --git a/tests/ref/fate/filter-removegrain-mode-06 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-06 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-06 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-06 diff --git a/tests/ref/fate/filter-removegrain-mode-07 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-07 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-07 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-07 diff --git a/tests/ref/fate/filter-removegrain-mode-08 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-08 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-08 diff --git a/tests/ref/fate/filter-removegrain-mode-09 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-09 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-09 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-09 diff --git a/tests/ref/fate/filter-removegrain-mode-10 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-10 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-10 diff --git a/tests/ref/fate/filter-removegrain-mode-11 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-11 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-11 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-11 diff --git a/tests/ref/fate/filter-removegrain-mode-12 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-12 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-12 diff --git a/tests/ref/fate/filter-removegrain-mode-13 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-13 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-13 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-13 diff --git a/tests/ref/fate/filter-removegrain-mode-14 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-14 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-14 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-14 diff --git a/tests/ref/fate/filter-removegrain-mode-15 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-15 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-15 diff --git a/tests/ref/fate/filter-removegrain-mode-16 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-16 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-16 diff --git a/tests/ref/fate/filter-removegrain-mode-17 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-17 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-17 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-17 diff --git a/tests/ref/fate/filter-removegrain-mode-18 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-18 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-18 diff --git a/tests/ref/fate/filter-removegrain-mode-19 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-19 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-19 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-19 diff --git a/tests/ref/fate/filter-removegrain-mode-20 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-20 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-20 diff --git a/tests/ref/fate/filter-removegrain-mode-21 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-21 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-21 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-21 diff --git a/tests/ref/fate/filter-removegrain-mode-22 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-22 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-22 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-22 diff --git a/tests/ref/fate/filter-removegrain-mode-23 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-23 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-23 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-23 diff --git a/tests/ref/fate/filter-removegrain-mode-24 b/ffmpeg-y/tests/ref/fate/filter-removegrain-mode-24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-removegrain-mode-24 rename to ffmpeg-y/tests/ref/fate/filter-removegrain-mode-24 diff --git a/tests/ref/fate/filter-rgbtestsrc b/ffmpeg-y/tests/ref/fate/filter-rgbtestsrc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-rgbtestsrc rename to ffmpeg-y/tests/ref/fate/filter-rgbtestsrc diff --git a/tests/ref/fate/filter-scale200 b/ffmpeg-y/tests/ref/fate/filter-scale200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-scale200 rename to ffmpeg-y/tests/ref/fate/filter-scale200 diff --git a/tests/ref/fate/filter-scale2ref_keep_aspect b/ffmpeg-y/tests/ref/fate/filter-scale2ref_keep_aspect old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-scale2ref_keep_aspect rename to ffmpeg-y/tests/ref/fate/filter-scale2ref_keep_aspect diff --git a/tests/ref/fate/filter-scale500 b/ffmpeg-y/tests/ref/fate/filter-scale500 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-scale500 rename to ffmpeg-y/tests/ref/fate/filter-scale500 diff --git a/tests/ref/fate/filter-scalechroma b/ffmpeg-y/tests/ref/fate/filter-scalechroma old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-scalechroma rename to ffmpeg-y/tests/ref/fate/filter-scalechroma diff --git a/tests/ref/fate/filter-select b/ffmpeg-y/tests/ref/fate/filter-select old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-select rename to ffmpeg-y/tests/ref/fate/filter-select diff --git a/tests/ref/fate/filter-select-alternate b/ffmpeg-y/tests/ref/fate/filter-select-alternate old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-select-alternate rename to ffmpeg-y/tests/ref/fate/filter-select-alternate diff --git a/tests/ref/fate/filter-separatefields b/ffmpeg-y/tests/ref/fate/filter-separatefields old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-separatefields rename to ffmpeg-y/tests/ref/fate/filter-separatefields diff --git a/tests/ref/fate/filter-setdar b/ffmpeg-y/tests/ref/fate/filter-setdar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-setdar rename to ffmpeg-y/tests/ref/fate/filter-setdar diff --git a/tests/ref/fate/filter-setpts b/ffmpeg-y/tests/ref/fate/filter-setpts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-setpts rename to ffmpeg-y/tests/ref/fate/filter-setpts diff --git a/tests/ref/fate/filter-setsar b/ffmpeg-y/tests/ref/fate/filter-setsar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-setsar rename to ffmpeg-y/tests/ref/fate/filter-setsar diff --git a/tests/ref/fate/filter-showpalette b/ffmpeg-y/tests/ref/fate/filter-showpalette old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-showpalette rename to ffmpeg-y/tests/ref/fate/filter-showpalette diff --git a/tests/ref/fate/filter-shuffleframes b/ffmpeg-y/tests/ref/fate/filter-shuffleframes old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-shuffleframes rename to ffmpeg-y/tests/ref/fate/filter-shuffleframes diff --git a/tests/ref/fate/filter-shuffleplanes-dup-luma b/ffmpeg-y/tests/ref/fate/filter-shuffleplanes-dup-luma old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-shuffleplanes-dup-luma rename to ffmpeg-y/tests/ref/fate/filter-shuffleplanes-dup-luma diff --git a/tests/ref/fate/filter-shuffleplanes-swapuv b/ffmpeg-y/tests/ref/fate/filter-shuffleplanes-swapuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-shuffleplanes-swapuv rename to ffmpeg-y/tests/ref/fate/filter-shuffleplanes-swapuv diff --git a/tests/ref/fate/filter-silenceremove b/ffmpeg-y/tests/ref/fate/filter-silenceremove old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-silenceremove rename to ffmpeg-y/tests/ref/fate/filter-silenceremove diff --git a/tests/ref/fate/filter-smptebars b/ffmpeg-y/tests/ref/fate/filter-smptebars old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-smptebars rename to ffmpeg-y/tests/ref/fate/filter-smptebars diff --git a/tests/ref/fate/filter-smptehdbars b/ffmpeg-y/tests/ref/fate/filter-smptehdbars old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-smptehdbars rename to ffmpeg-y/tests/ref/fate/filter-smptehdbars diff --git a/tests/ref/fate/filter-stereo3d-abr-ml b/ffmpeg-y/tests/ref/fate/filter-stereo3d-abr-ml old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-abr-ml rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-abr-ml diff --git a/tests/ref/fate/filter-stereo3d-abr-mr b/ffmpeg-y/tests/ref/fate/filter-stereo3d-abr-mr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-abr-mr rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-abr-mr diff --git a/tests/ref/fate/filter-stereo3d-al-sbsl b/ffmpeg-y/tests/ref/fate/filter-stereo3d-al-sbsl old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-al-sbsl rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-al-sbsl diff --git a/tests/ref/fate/filter-stereo3d-ar-abl b/ffmpeg-y/tests/ref/fate/filter-stereo3d-ar-abl old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-ar-abl rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-ar-abl diff --git a/tests/ref/fate/filter-stereo3d-sbsl-abl b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-abl old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-abl rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-abl diff --git a/tests/ref/fate/filter-stereo3d-sbsl-abr b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-abr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-abr rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-abr diff --git a/tests/ref/fate/filter-stereo3d-sbsl-agmc b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-agmc rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmc diff --git a/tests/ref/fate/filter-stereo3d-sbsl-agmd b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-agmd rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmd diff --git a/tests/ref/fate/filter-stereo3d-sbsl-agmg b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-agmg rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmg diff --git a/tests/ref/fate/filter-stereo3d-sbsl-agmh b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmh old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-agmh rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-agmh diff --git a/tests/ref/fate/filter-stereo3d-sbsl-al b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-al old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-al rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-al diff --git a/tests/ref/fate/filter-stereo3d-sbsl-arbg b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arbg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-arbg rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arbg diff --git a/tests/ref/fate/filter-stereo3d-sbsl-arcc b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arcc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-arcc rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arcc diff --git a/tests/ref/fate/filter-stereo3d-sbsl-arcd b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arcd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-arcd rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arcd diff --git a/tests/ref/fate/filter-stereo3d-sbsl-arcg b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arcg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-arcg rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arcg diff --git a/tests/ref/fate/filter-stereo3d-sbsl-arch b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arch old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-arch rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-arch diff --git a/tests/ref/fate/filter-stereo3d-sbsl-argg b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-argg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-argg rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-argg diff --git a/tests/ref/fate/filter-stereo3d-sbsl-aybc b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-aybc rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybc diff --git a/tests/ref/fate/filter-stereo3d-sbsl-aybd b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-aybd rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybd diff --git a/tests/ref/fate/filter-stereo3d-sbsl-aybg b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-aybg rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybg diff --git a/tests/ref/fate/filter-stereo3d-sbsl-aybh b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybh old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-aybh rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-aybh diff --git a/tests/ref/fate/filter-stereo3d-sbsl-sbsr b/ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-sbsr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereo3d-sbsl-sbsr rename to ffmpeg-y/tests/ref/fate/filter-stereo3d-sbsl-sbsr diff --git a/tests/ref/fate/filter-stereotools b/ffmpeg-y/tests/ref/fate/filter-stereotools old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-stereotools rename to ffmpeg-y/tests/ref/fate/filter-stereotools diff --git a/tests/ref/fate/filter-swaprect b/ffmpeg-y/tests/ref/fate/filter-swaprect old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-swaprect rename to ffmpeg-y/tests/ref/fate/filter-swaprect diff --git a/tests/ref/fate/filter-tblend b/ffmpeg-y/tests/ref/fate/filter-tblend old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-tblend rename to ffmpeg-y/tests/ref/fate/filter-tblend diff --git a/tests/ref/fate/filter-telecine b/ffmpeg-y/tests/ref/fate/filter-telecine old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-telecine rename to ffmpeg-y/tests/ref/fate/filter-telecine diff --git a/tests/ref/fate/filter-testsrc2-rgb24 b/ffmpeg-y/tests/ref/fate/filter-testsrc2-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-testsrc2-rgb24 rename to ffmpeg-y/tests/ref/fate/filter-testsrc2-rgb24 diff --git a/tests/ref/fate/filter-testsrc2-rgba b/ffmpeg-y/tests/ref/fate/filter-testsrc2-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-testsrc2-rgba rename to ffmpeg-y/tests/ref/fate/filter-testsrc2-rgba diff --git a/tests/ref/fate/filter-testsrc2-yuv420p b/ffmpeg-y/tests/ref/fate/filter-testsrc2-yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-testsrc2-yuv420p rename to ffmpeg-y/tests/ref/fate/filter-testsrc2-yuv420p diff --git a/tests/ref/fate/filter-testsrc2-yuv444p b/ffmpeg-y/tests/ref/fate/filter-testsrc2-yuv444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-testsrc2-yuv444p rename to ffmpeg-y/tests/ref/fate/filter-testsrc2-yuv444p diff --git a/tests/ref/fate/filter-thumbnail b/ffmpeg-y/tests/ref/fate/filter-thumbnail old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-thumbnail rename to ffmpeg-y/tests/ref/fate/filter-thumbnail diff --git a/tests/ref/fate/filter-tile b/ffmpeg-y/tests/ref/fate/filter-tile old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-tile rename to ffmpeg-y/tests/ref/fate/filter-tile diff --git a/tests/ref/fate/filter-transpose b/ffmpeg-y/tests/ref/fate/filter-transpose old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-transpose rename to ffmpeg-y/tests/ref/fate/filter-transpose diff --git a/tests/ref/fate/filter-tremolo b/ffmpeg-y/tests/ref/fate/filter-tremolo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-tremolo rename to ffmpeg-y/tests/ref/fate/filter-tremolo diff --git a/tests/ref/fate/filter-trim-duration b/ffmpeg-y/tests/ref/fate/filter-trim-duration old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-trim-duration rename to ffmpeg-y/tests/ref/fate/filter-trim-duration diff --git a/tests/ref/fate/filter-trim-frame b/ffmpeg-y/tests/ref/fate/filter-trim-frame old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-trim-frame rename to ffmpeg-y/tests/ref/fate/filter-trim-frame diff --git a/tests/ref/fate/filter-trim-mixed b/ffmpeg-y/tests/ref/fate/filter-trim-mixed old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-trim-mixed rename to ffmpeg-y/tests/ref/fate/filter-trim-mixed diff --git a/tests/ref/fate/filter-trim-time b/ffmpeg-y/tests/ref/fate/filter-trim-time old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-trim-time rename to ffmpeg-y/tests/ref/fate/filter-trim-time diff --git a/tests/ref/fate/filter-unsharp b/ffmpeg-y/tests/ref/fate/filter-unsharp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-unsharp rename to ffmpeg-y/tests/ref/fate/filter-unsharp diff --git a/tests/ref/fate/filter-vectorscope_color b/ffmpeg-y/tests/ref/fate/filter-vectorscope_color old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vectorscope_color rename to ffmpeg-y/tests/ref/fate/filter-vectorscope_color diff --git a/tests/ref/fate/filter-vectorscope_color2 b/ffmpeg-y/tests/ref/fate/filter-vectorscope_color2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vectorscope_color2 rename to ffmpeg-y/tests/ref/fate/filter-vectorscope_color2 diff --git a/tests/ref/fate/filter-vectorscope_color3 b/ffmpeg-y/tests/ref/fate/filter-vectorscope_color3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vectorscope_color3 rename to ffmpeg-y/tests/ref/fate/filter-vectorscope_color3 diff --git a/tests/ref/fate/filter-vectorscope_color4 b/ffmpeg-y/tests/ref/fate/filter-vectorscope_color4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vectorscope_color4 rename to ffmpeg-y/tests/ref/fate/filter-vectorscope_color4 diff --git a/tests/ref/fate/filter-vectorscope_gray b/ffmpeg-y/tests/ref/fate/filter-vectorscope_gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vectorscope_gray rename to ffmpeg-y/tests/ref/fate/filter-vectorscope_gray diff --git a/tests/ref/fate/filter-vectorscope_xy b/ffmpeg-y/tests/ref/fate/filter-vectorscope_xy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vectorscope_xy rename to ffmpeg-y/tests/ref/fate/filter-vectorscope_xy diff --git a/tests/ref/fate/filter-vflip b/ffmpeg-y/tests/ref/fate/filter-vflip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vflip rename to ffmpeg-y/tests/ref/fate/filter-vflip diff --git a/tests/ref/fate/filter-vflip_crop b/ffmpeg-y/tests/ref/fate/filter-vflip_crop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vflip_crop rename to ffmpeg-y/tests/ref/fate/filter-vflip_crop diff --git a/tests/ref/fate/filter-vflip_vflip b/ffmpeg-y/tests/ref/fate/filter-vflip_vflip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vflip_vflip rename to ffmpeg-y/tests/ref/fate/filter-vflip_vflip diff --git a/tests/ref/fate/filter-vstack b/ffmpeg-y/tests/ref/fate/filter-vstack old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-vstack rename to ffmpeg-y/tests/ref/fate/filter-vstack diff --git a/tests/ref/fate/filter-w3fdif-complex b/ffmpeg-y/tests/ref/fate/filter-w3fdif-complex old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-w3fdif-complex rename to ffmpeg-y/tests/ref/fate/filter-w3fdif-complex diff --git a/tests/ref/fate/filter-w3fdif-simple b/ffmpeg-y/tests/ref/fate/filter-w3fdif-simple old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-w3fdif-simple rename to ffmpeg-y/tests/ref/fate/filter-w3fdif-simple diff --git a/tests/ref/fate/filter-waveform_column b/ffmpeg-y/tests/ref/fate/filter-waveform_column old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-waveform_column rename to ffmpeg-y/tests/ref/fate/filter-waveform_column diff --git a/tests/ref/fate/filter-waveform_envelope b/ffmpeg-y/tests/ref/fate/filter-waveform_envelope old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-waveform_envelope rename to ffmpeg-y/tests/ref/fate/filter-waveform_envelope diff --git a/tests/ref/fate/filter-waveform_row b/ffmpeg-y/tests/ref/fate/filter-waveform_row old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-waveform_row rename to ffmpeg-y/tests/ref/fate/filter-waveform_row diff --git a/tests/ref/fate/filter-waveform_uv b/ffmpeg-y/tests/ref/fate/filter-waveform_uv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-waveform_uv rename to ffmpeg-y/tests/ref/fate/filter-waveform_uv diff --git a/tests/ref/fate/filter-weave b/ffmpeg-y/tests/ref/fate/filter-weave old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-weave rename to ffmpeg-y/tests/ref/fate/filter-weave diff --git a/tests/ref/fate/filter-yadif-mode0 b/ffmpeg-y/tests/ref/fate/filter-yadif-mode0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-yadif-mode0 rename to ffmpeg-y/tests/ref/fate/filter-yadif-mode0 diff --git a/tests/ref/fate/filter-yadif-mode1 b/ffmpeg-y/tests/ref/fate/filter-yadif-mode1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-yadif-mode1 rename to ffmpeg-y/tests/ref/fate/filter-yadif-mode1 diff --git a/tests/ref/fate/filter-yadif10 b/ffmpeg-y/tests/ref/fate/filter-yadif10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-yadif10 rename to ffmpeg-y/tests/ref/fate/filter-yadif10 diff --git a/tests/ref/fate/filter-yadif16 b/ffmpeg-y/tests/ref/fate/filter-yadif16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-yadif16 rename to ffmpeg-y/tests/ref/fate/filter-yadif16 diff --git a/tests/ref/fate/filter-yuvtestsrc-yuv444p b/ffmpeg-y/tests/ref/fate/filter-yuvtestsrc-yuv444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-yuvtestsrc-yuv444p rename to ffmpeg-y/tests/ref/fate/filter-yuvtestsrc-yuv444p diff --git a/tests/ref/fate/filter-yuvtestsrc-yuv444p12 b/ffmpeg-y/tests/ref/fate/filter-yuvtestsrc-yuv444p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/filter-yuvtestsrc-yuv444p12 rename to ffmpeg-y/tests/ref/fate/filter-yuvtestsrc-yuv444p12 diff --git a/tests/ref/fate/fits-demux b/ffmpeg-y/tests/ref/fate/fits-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fits-demux rename to ffmpeg-y/tests/ref/fate/fits-demux diff --git a/tests/ref/fate/fitsdec-bitpix-32 b/ffmpeg-y/tests/ref/fate/fitsdec-bitpix-32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-bitpix-32 rename to ffmpeg-y/tests/ref/fate/fitsdec-bitpix-32 diff --git a/tests/ref/fate/fitsdec-bitpix-64 b/ffmpeg-y/tests/ref/fate/fitsdec-bitpix-64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-bitpix-64 rename to ffmpeg-y/tests/ref/fate/fitsdec-bitpix-64 diff --git a/tests/ref/fate/fitsdec-blank_bitpix32 b/ffmpeg-y/tests/ref/fate/fitsdec-blank_bitpix32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-blank_bitpix32 rename to ffmpeg-y/tests/ref/fate/fitsdec-blank_bitpix32 diff --git a/tests/ref/fate/fitsdec-ext_data_min_max b/ffmpeg-y/tests/ref/fate/fitsdec-ext_data_min_max old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-ext_data_min_max rename to ffmpeg-y/tests/ref/fate/fitsdec-ext_data_min_max diff --git a/tests/ref/fate/fitsdec-gbrap16le b/ffmpeg-y/tests/ref/fate/fitsdec-gbrap16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-gbrap16le rename to ffmpeg-y/tests/ref/fate/fitsdec-gbrap16le diff --git a/tests/ref/fate/fitsdec-gbrp b/ffmpeg-y/tests/ref/fate/fitsdec-gbrp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-gbrp rename to ffmpeg-y/tests/ref/fate/fitsdec-gbrp diff --git a/tests/ref/fate/fitsdec-gbrp16 b/ffmpeg-y/tests/ref/fate/fitsdec-gbrp16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-gbrp16 rename to ffmpeg-y/tests/ref/fate/fitsdec-gbrp16 diff --git a/tests/ref/fate/fitsdec-gray b/ffmpeg-y/tests/ref/fate/fitsdec-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-gray rename to ffmpeg-y/tests/ref/fate/fitsdec-gray diff --git a/tests/ref/fate/fitsdec-multi b/ffmpeg-y/tests/ref/fate/fitsdec-multi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsdec-multi rename to ffmpeg-y/tests/ref/fate/fitsdec-multi diff --git a/tests/ref/fate/fitsenc-gbrap b/ffmpeg-y/tests/ref/fate/fitsenc-gbrap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsenc-gbrap rename to ffmpeg-y/tests/ref/fate/fitsenc-gbrap diff --git a/tests/ref/fate/fitsenc-gbrap16be b/ffmpeg-y/tests/ref/fate/fitsenc-gbrap16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsenc-gbrap16be rename to ffmpeg-y/tests/ref/fate/fitsenc-gbrap16be diff --git a/tests/ref/fate/fitsenc-gbrp b/ffmpeg-y/tests/ref/fate/fitsenc-gbrp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsenc-gbrp rename to ffmpeg-y/tests/ref/fate/fitsenc-gbrp diff --git a/tests/ref/fate/fitsenc-gbrp16be b/ffmpeg-y/tests/ref/fate/fitsenc-gbrp16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsenc-gbrp16be rename to ffmpeg-y/tests/ref/fate/fitsenc-gbrp16be diff --git a/tests/ref/fate/fitsenc-gray b/ffmpeg-y/tests/ref/fate/fitsenc-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsenc-gray rename to ffmpeg-y/tests/ref/fate/fitsenc-gray diff --git a/tests/ref/fate/fitsenc-gray16be b/ffmpeg-y/tests/ref/fate/fitsenc-gray16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fitsenc-gray16be rename to ffmpeg-y/tests/ref/fate/fitsenc-gray16be diff --git a/tests/ref/fate/flcl1905 b/ffmpeg-y/tests/ref/fate/flcl1905 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/flcl1905 rename to ffmpeg-y/tests/ref/fate/flcl1905 diff --git a/tests/ref/fate/flic-af11-palette-change b/ffmpeg-y/tests/ref/fate/flic-af11-palette-change old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/flic-af11-palette-change rename to ffmpeg-y/tests/ref/fate/flic-af11-palette-change diff --git a/tests/ref/fate/flic-af12 b/ffmpeg-y/tests/ref/fate/flic-af12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/flic-af12 rename to ffmpeg-y/tests/ref/fate/flic-af12 diff --git a/tests/ref/fate/flic-magiccarpet b/ffmpeg-y/tests/ref/fate/flic-magiccarpet old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/flic-magiccarpet rename to ffmpeg-y/tests/ref/fate/flic-magiccarpet diff --git a/tests/ref/fate/flv-add_keyframe_index b/ffmpeg-y/tests/ref/fate/flv-add_keyframe_index old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/flv-add_keyframe_index rename to ffmpeg-y/tests/ref/fate/flv-add_keyframe_index diff --git a/tests/ref/fate/flv-demux b/ffmpeg-y/tests/ref/fate/flv-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/flv-demux rename to ffmpeg-y/tests/ref/fate/flv-demux diff --git a/tests/ref/fate/fmvc-type1 b/ffmpeg-y/tests/ref/fate/fmvc-type1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fmvc-type1 rename to ffmpeg-y/tests/ref/fate/fmvc-type1 diff --git a/tests/ref/fate/fmvc-type2 b/ffmpeg-y/tests/ref/fate/fmvc-type2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fmvc-type2 rename to ffmpeg-y/tests/ref/fate/fmvc-type2 diff --git a/tests/ref/fate/force_key_frames b/ffmpeg-y/tests/ref/fate/force_key_frames old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/force_key_frames rename to ffmpeg-y/tests/ref/fate/force_key_frames diff --git a/tests/ref/fate/fraps-v0 b/ffmpeg-y/tests/ref/fate/fraps-v0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fraps-v0 rename to ffmpeg-y/tests/ref/fate/fraps-v0 diff --git a/tests/ref/fate/fraps-v1 b/ffmpeg-y/tests/ref/fate/fraps-v1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fraps-v1 rename to ffmpeg-y/tests/ref/fate/fraps-v1 diff --git a/tests/ref/fate/fraps-v2 b/ffmpeg-y/tests/ref/fate/fraps-v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fraps-v2 rename to ffmpeg-y/tests/ref/fate/fraps-v2 diff --git a/tests/ref/fate/fraps-v3 b/ffmpeg-y/tests/ref/fate/fraps-v3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fraps-v3 rename to ffmpeg-y/tests/ref/fate/fraps-v3 diff --git a/tests/ref/fate/fraps-v4 b/ffmpeg-y/tests/ref/fate/fraps-v4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fraps-v4 rename to ffmpeg-y/tests/ref/fate/fraps-v4 diff --git a/tests/ref/fate/fraps-v5 b/ffmpeg-y/tests/ref/fate/fraps-v5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/fraps-v5 rename to ffmpeg-y/tests/ref/fate/fraps-v5 diff --git a/tests/ref/fate/frwu b/ffmpeg-y/tests/ref/fate/frwu old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/frwu rename to ffmpeg-y/tests/ref/fate/frwu diff --git a/tests/ref/fate/g2m2 b/ffmpeg-y/tests/ref/fate/g2m2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g2m2 rename to ffmpeg-y/tests/ref/fate/g2m2 diff --git a/tests/ref/fate/g2m3 b/ffmpeg-y/tests/ref/fate/g2m3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g2m3 rename to ffmpeg-y/tests/ref/fate/g2m3 diff --git a/tests/ref/fate/g2m4 b/ffmpeg-y/tests/ref/fate/g2m4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g2m4 rename to ffmpeg-y/tests/ref/fate/g2m4 diff --git a/tests/ref/fate/g722-encode b/ffmpeg-y/tests/ref/fate/g722-encode old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g722-encode rename to ffmpeg-y/tests/ref/fate/g722-encode diff --git a/tests/ref/fate/g722dec-1 b/ffmpeg-y/tests/ref/fate/g722dec-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g722dec-1 rename to ffmpeg-y/tests/ref/fate/g722dec-1 diff --git a/tests/ref/fate/g723_1-dec-1 b/ffmpeg-y/tests/ref/fate/g723_1-dec-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-1 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-1 diff --git a/tests/ref/fate/g723_1-dec-2 b/ffmpeg-y/tests/ref/fate/g723_1-dec-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-2 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-2 diff --git a/tests/ref/fate/g723_1-dec-3 b/ffmpeg-y/tests/ref/fate/g723_1-dec-3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-3 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-3 diff --git a/tests/ref/fate/g723_1-dec-4 b/ffmpeg-y/tests/ref/fate/g723_1-dec-4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-4 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-4 diff --git a/tests/ref/fate/g723_1-dec-5 b/ffmpeg-y/tests/ref/fate/g723_1-dec-5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-5 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-5 diff --git a/tests/ref/fate/g723_1-dec-6 b/ffmpeg-y/tests/ref/fate/g723_1-dec-6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-6 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-6 diff --git a/tests/ref/fate/g723_1-dec-7 b/ffmpeg-y/tests/ref/fate/g723_1-dec-7 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-7 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-7 diff --git a/tests/ref/fate/g723_1-dec-8 b/ffmpeg-y/tests/ref/fate/g723_1-dec-8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g723_1-dec-8 rename to ffmpeg-y/tests/ref/fate/g723_1-dec-8 diff --git a/tests/ref/fate/g726-encode-2bit b/ffmpeg-y/tests/ref/fate/g726-encode-2bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g726-encode-2bit rename to ffmpeg-y/tests/ref/fate/g726-encode-2bit diff --git a/tests/ref/fate/g726-encode-3bit b/ffmpeg-y/tests/ref/fate/g726-encode-3bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g726-encode-3bit rename to ffmpeg-y/tests/ref/fate/g726-encode-3bit diff --git a/tests/ref/fate/g726-encode-4bit b/ffmpeg-y/tests/ref/fate/g726-encode-4bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g726-encode-4bit rename to ffmpeg-y/tests/ref/fate/g726-encode-4bit diff --git a/tests/ref/fate/g726-encode-5bit b/ffmpeg-y/tests/ref/fate/g726-encode-5bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g726-encode-5bit rename to ffmpeg-y/tests/ref/fate/g726-encode-5bit diff --git a/tests/ref/fate/g729-0 b/ffmpeg-y/tests/ref/fate/g729-0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g729-0 rename to ffmpeg-y/tests/ref/fate/g729-0 diff --git a/tests/ref/fate/g729-1 b/ffmpeg-y/tests/ref/fate/g729-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/g729-1 rename to ffmpeg-y/tests/ref/fate/g729-1 diff --git a/tests/ref/fate/gapless-mp3 b/ffmpeg-y/tests/ref/fate/gapless-mp3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gapless-mp3 rename to ffmpeg-y/tests/ref/fate/gapless-mp3 diff --git a/tests/ref/fate/gaplessenc-itunes-to-ipod-aac b/ffmpeg-y/tests/ref/fate/gaplessenc-itunes-to-ipod-aac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gaplessenc-itunes-to-ipod-aac rename to ffmpeg-y/tests/ref/fate/gaplessenc-itunes-to-ipod-aac diff --git a/tests/ref/fate/gaplessenc-pcm-to-mov-aac b/ffmpeg-y/tests/ref/fate/gaplessenc-pcm-to-mov-aac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gaplessenc-pcm-to-mov-aac rename to ffmpeg-y/tests/ref/fate/gaplessenc-pcm-to-mov-aac diff --git a/tests/ref/fate/gaplessinfo-itunes1 b/ffmpeg-y/tests/ref/fate/gaplessinfo-itunes1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gaplessinfo-itunes1 rename to ffmpeg-y/tests/ref/fate/gaplessinfo-itunes1 diff --git a/tests/ref/fate/gaplessinfo-itunes2 b/ffmpeg-y/tests/ref/fate/gaplessinfo-itunes2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gaplessinfo-itunes2 rename to ffmpeg-y/tests/ref/fate/gaplessinfo-itunes2 diff --git a/tests/ref/fate/gif-color b/ffmpeg-y/tests/ref/fate/gif-color old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gif-color rename to ffmpeg-y/tests/ref/fate/gif-color diff --git a/tests/ref/fate/gif-deal b/ffmpeg-y/tests/ref/fate/gif-deal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gif-deal rename to ffmpeg-y/tests/ref/fate/gif-deal diff --git a/tests/ref/fate/gif-demux b/ffmpeg-y/tests/ref/fate/gif-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gif-demux rename to ffmpeg-y/tests/ref/fate/gif-demux diff --git a/tests/ref/fate/gif-disposal-background b/ffmpeg-y/tests/ref/fate/gif-disposal-background old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gif-disposal-background rename to ffmpeg-y/tests/ref/fate/gif-disposal-background diff --git a/tests/ref/fate/gif-disposal-restore b/ffmpeg-y/tests/ref/fate/gif-disposal-restore old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gif-disposal-restore rename to ffmpeg-y/tests/ref/fate/gif-disposal-restore diff --git a/tests/ref/fate/gif-gray b/ffmpeg-y/tests/ref/fate/gif-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gif-gray rename to ffmpeg-y/tests/ref/fate/gif-gray diff --git a/tests/ref/fate/gifenc-bgr4_byte b/ffmpeg-y/tests/ref/fate/gifenc-bgr4_byte old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gifenc-bgr4_byte rename to ffmpeg-y/tests/ref/fate/gifenc-bgr4_byte diff --git a/tests/ref/fate/gifenc-bgr8 b/ffmpeg-y/tests/ref/fate/gifenc-bgr8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gifenc-bgr8 rename to ffmpeg-y/tests/ref/fate/gifenc-bgr8 diff --git a/tests/ref/fate/gifenc-gray b/ffmpeg-y/tests/ref/fate/gifenc-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gifenc-gray rename to ffmpeg-y/tests/ref/fate/gifenc-gray diff --git a/tests/ref/fate/gifenc-pal8 b/ffmpeg-y/tests/ref/fate/gifenc-pal8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gifenc-pal8 rename to ffmpeg-y/tests/ref/fate/gifenc-pal8 diff --git a/tests/ref/fate/gifenc-rgb4_byte b/ffmpeg-y/tests/ref/fate/gifenc-rgb4_byte old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gifenc-rgb4_byte rename to ffmpeg-y/tests/ref/fate/gifenc-rgb4_byte diff --git a/tests/ref/fate/gifenc-rgb8 b/ffmpeg-y/tests/ref/fate/gifenc-rgb8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gifenc-rgb8 rename to ffmpeg-y/tests/ref/fate/gifenc-rgb8 diff --git a/tests/ref/fate/gsm-ms b/ffmpeg-y/tests/ref/fate/gsm-ms old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gsm-ms rename to ffmpeg-y/tests/ref/fate/gsm-ms diff --git a/tests/ref/fate/gsm-toast b/ffmpeg-y/tests/ref/fate/gsm-toast old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/gsm-toast rename to ffmpeg-y/tests/ref/fate/gsm-toast diff --git a/tests/ref/fate/h264-3386 b/ffmpeg-y/tests/ref/fate/h264-3386 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-3386 rename to ffmpeg-y/tests/ref/fate/h264-3386 diff --git a/tests/ref/fate/h264-attachment-631 b/ffmpeg-y/tests/ref/fate/h264-attachment-631 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-attachment-631 rename to ffmpeg-y/tests/ref/fate/h264-attachment-631 diff --git a/tests/ref/fate/h264-brokensps-2580 b/ffmpeg-y/tests/ref/fate/h264-brokensps-2580 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-brokensps-2580 rename to ffmpeg-y/tests/ref/fate/h264-brokensps-2580 diff --git a/tests/ref/fate/h264-bsf-mp4toannexb b/ffmpeg-y/tests/ref/fate/h264-bsf-mp4toannexb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-bsf-mp4toannexb rename to ffmpeg-y/tests/ref/fate/h264-bsf-mp4toannexb diff --git a/tests/ref/fate/h264-conformance-aud_mw_e b/ffmpeg-y/tests/ref/fate/h264-conformance-aud_mw_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-aud_mw_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-aud_mw_e diff --git a/tests/ref/fate/h264-conformance-ba1_ft_c b/ffmpeg-y/tests/ref/fate/h264-conformance-ba1_ft_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ba1_ft_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-ba1_ft_c diff --git a/tests/ref/fate/h264-conformance-ba1_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-ba1_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ba1_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-ba1_sony_d diff --git a/tests/ref/fate/h264-conformance-ba2_sony_f b/ffmpeg-y/tests/ref/fate/h264-conformance-ba2_sony_f old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ba2_sony_f rename to ffmpeg-y/tests/ref/fate/h264-conformance-ba2_sony_f diff --git a/tests/ref/fate/h264-conformance-ba3_sva_c b/ffmpeg-y/tests/ref/fate/h264-conformance-ba3_sva_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ba3_sva_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-ba3_sva_c diff --git a/tests/ref/fate/h264-conformance-ba_mw_d b/ffmpeg-y/tests/ref/fate/h264-conformance-ba_mw_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ba_mw_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-ba_mw_d diff --git a/tests/ref/fate/h264-conformance-bamq1_jvc_c b/ffmpeg-y/tests/ref/fate/h264-conformance-bamq1_jvc_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-bamq1_jvc_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-bamq1_jvc_c diff --git a/tests/ref/fate/h264-conformance-bamq2_jvc_c b/ffmpeg-y/tests/ref/fate/h264-conformance-bamq2_jvc_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-bamq2_jvc_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-bamq2_jvc_c diff --git a/tests/ref/fate/h264-conformance-banm_mw_d b/ffmpeg-y/tests/ref/fate/h264-conformance-banm_mw_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-banm_mw_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-banm_mw_d diff --git a/tests/ref/fate/h264-conformance-basqp1_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-basqp1_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-basqp1_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-basqp1_sony_c diff --git a/tests/ref/fate/h264-conformance-caba1_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-caba1_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba1_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba1_sony_d diff --git a/tests/ref/fate/h264-conformance-caba1_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-caba1_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba1_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba1_sva_b diff --git a/tests/ref/fate/h264-conformance-caba2_sony_e b/ffmpeg-y/tests/ref/fate/h264-conformance-caba2_sony_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba2_sony_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba2_sony_e diff --git a/tests/ref/fate/h264-conformance-caba2_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-caba2_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba2_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba2_sva_b diff --git a/tests/ref/fate/h264-conformance-caba3_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-caba3_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba3_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba3_sony_c diff --git a/tests/ref/fate/h264-conformance-caba3_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-caba3_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba3_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba3_sva_b diff --git a/tests/ref/fate/h264-conformance-caba3_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-caba3_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caba3_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-caba3_toshiba_e diff --git a/tests/ref/fate/h264-conformance-cabac_mot_fld0_full b/ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_fld0_full old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabac_mot_fld0_full rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_fld0_full diff --git a/tests/ref/fate/h264-conformance-cabac_mot_frm0_full b/ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_frm0_full old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabac_mot_frm0_full rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_frm0_full diff --git a/tests/ref/fate/h264-conformance-cabac_mot_mbaff0_full b/ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_mbaff0_full old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabac_mot_mbaff0_full rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_mbaff0_full diff --git a/tests/ref/fate/h264-conformance-cabac_mot_picaff0_full b/ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_picaff0_full old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabac_mot_picaff0_full rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabac_mot_picaff0_full diff --git a/tests/ref/fate/h264-conformance-cabaci3_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cabaci3_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabaci3_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabaci3_sony_b diff --git a/tests/ref/fate/h264-conformance-cabast3_sony_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cabast3_sony_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabast3_sony_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabast3_sony_e diff --git a/tests/ref/fate/h264-conformance-cabastbr3_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cabastbr3_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabastbr3_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabastbr3_sony_b diff --git a/tests/ref/fate/h264-conformance-cabref3_sand_d b/ffmpeg-y/tests/ref/fate/h264-conformance-cabref3_sand_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cabref3_sand_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-cabref3_sand_d diff --git a/tests/ref/fate/h264-conformance-cacqp3_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-cacqp3_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cacqp3_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-cacqp3_sony_d diff --git a/tests/ref/fate/h264-conformance-cafi1_sva_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cafi1_sva_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cafi1_sva_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cafi1_sva_c diff --git a/tests/ref/fate/h264-conformance-cama1_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cama1_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cama1_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cama1_sony_c diff --git a/tests/ref/fate/h264-conformance-cama1_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cama1_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cama1_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cama1_toshiba_b diff --git a/tests/ref/fate/h264-conformance-cama1_vtc_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cama1_vtc_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cama1_vtc_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cama1_vtc_c diff --git a/tests/ref/fate/h264-conformance-cama2_vtc_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cama2_vtc_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cama2_vtc_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cama2_vtc_b diff --git a/tests/ref/fate/h264-conformance-cama3_sand_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cama3_sand_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cama3_sand_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cama3_sand_e diff --git a/tests/ref/fate/h264-conformance-cama3_vtc_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cama3_vtc_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cama3_vtc_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cama3_vtc_b diff --git a/tests/ref/fate/h264-conformance-camaci3_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-camaci3_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camaci3_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-camaci3_sony_c diff --git a/tests/ref/fate/h264-conformance-camanl1_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-camanl1_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camanl1_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-camanl1_toshiba_b diff --git a/tests/ref/fate/h264-conformance-camanl2_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-camanl2_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camanl2_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-camanl2_toshiba_b diff --git a/tests/ref/fate/h264-conformance-camanl3_sand_e b/ffmpeg-y/tests/ref/fate/h264-conformance-camanl3_sand_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camanl3_sand_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-camanl3_sand_e diff --git a/tests/ref/fate/h264-conformance-camasl3_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-camasl3_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camasl3_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-camasl3_sony_b diff --git a/tests/ref/fate/h264-conformance-camp_mot_mbaff_l30 b/ffmpeg-y/tests/ref/fate/h264-conformance-camp_mot_mbaff_l30 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camp_mot_mbaff_l30 rename to ffmpeg-y/tests/ref/fate/h264-conformance-camp_mot_mbaff_l30 diff --git a/tests/ref/fate/h264-conformance-camp_mot_mbaff_l31 b/ffmpeg-y/tests/ref/fate/h264-conformance-camp_mot_mbaff_l31 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-camp_mot_mbaff_l31 rename to ffmpeg-y/tests/ref/fate/h264-conformance-camp_mot_mbaff_l31 diff --git a/tests/ref/fate/h264-conformance-canl1_sony_e b/ffmpeg-y/tests/ref/fate/h264-conformance-canl1_sony_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl1_sony_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl1_sony_e diff --git a/tests/ref/fate/h264-conformance-canl1_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-canl1_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl1_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl1_sva_b diff --git a/tests/ref/fate/h264-conformance-canl1_toshiba_g b/ffmpeg-y/tests/ref/fate/h264-conformance-canl1_toshiba_g old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl1_toshiba_g rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl1_toshiba_g diff --git a/tests/ref/fate/h264-conformance-canl2_sony_e b/ffmpeg-y/tests/ref/fate/h264-conformance-canl2_sony_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl2_sony_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl2_sony_e diff --git a/tests/ref/fate/h264-conformance-canl2_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-canl2_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl2_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl2_sva_b diff --git a/tests/ref/fate/h264-conformance-canl3_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-canl3_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl3_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl3_sony_c diff --git a/tests/ref/fate/h264-conformance-canl3_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-canl3_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl3_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl3_sva_b diff --git a/tests/ref/fate/h264-conformance-canl4_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-canl4_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canl4_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-canl4_sva_b diff --git a/tests/ref/fate/h264-conformance-canlma2_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-canlma2_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canlma2_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-canlma2_sony_c diff --git a/tests/ref/fate/h264-conformance-canlma3_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-canlma3_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-canlma3_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-canlma3_sony_c diff --git a/tests/ref/fate/h264-conformance-capa1_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-capa1_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-capa1_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-capa1_toshiba_b diff --git a/tests/ref/fate/h264-conformance-capama3_sand_f b/ffmpeg-y/tests/ref/fate/h264-conformance-capama3_sand_f old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-capama3_sand_f rename to ffmpeg-y/tests/ref/fate/h264-conformance-capama3_sand_f diff --git a/tests/ref/fate/h264-conformance-capcm1_sand_e b/ffmpeg-y/tests/ref/fate/h264-conformance-capcm1_sand_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-capcm1_sand_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-capcm1_sand_e diff --git a/tests/ref/fate/h264-conformance-capcmnl1_sand_e b/ffmpeg-y/tests/ref/fate/h264-conformance-capcmnl1_sand_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-capcmnl1_sand_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-capcmnl1_sand_e diff --git a/tests/ref/fate/h264-conformance-capm3_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-capm3_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-capm3_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-capm3_sony_d diff --git a/tests/ref/fate/h264-conformance-caqp1_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-caqp1_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-caqp1_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-caqp1_sony_b diff --git a/tests/ref/fate/h264-conformance-cavlc_mot_fld0_full_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_fld0_full_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cavlc_mot_fld0_full_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_fld0_full_b diff --git a/tests/ref/fate/h264-conformance-cavlc_mot_frm0_full_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_frm0_full_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cavlc_mot_frm0_full_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_frm0_full_b diff --git a/tests/ref/fate/h264-conformance-cavlc_mot_mbaff0_full_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_mbaff0_full_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cavlc_mot_mbaff0_full_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_mbaff0_full_b diff --git a/tests/ref/fate/h264-conformance-cavlc_mot_picaff0_full_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_picaff0_full_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cavlc_mot_picaff0_full_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cavlc_mot_picaff0_full_b diff --git a/tests/ref/fate/h264-conformance-cawp1_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cawp1_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cawp1_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cawp1_toshiba_e diff --git a/tests/ref/fate/h264-conformance-cawp5_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cawp5_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cawp5_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cawp5_toshiba_e diff --git a/tests/ref/fate/h264-conformance-ci1_ft_b b/ffmpeg-y/tests/ref/fate/h264-conformance-ci1_ft_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ci1_ft_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-ci1_ft_b diff --git a/tests/ref/fate/h264-conformance-ci_mw_d b/ffmpeg-y/tests/ref/fate/h264-conformance-ci_mw_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ci_mw_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-ci_mw_d diff --git a/tests/ref/fate/h264-conformance-cvbs3_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvbs3_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvbs3_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvbs3_sony_c diff --git a/tests/ref/fate/h264-conformance-cvcanlma2_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvcanlma2_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvcanlma2_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvcanlma2_sony_c diff --git a/tests/ref/fate/h264-conformance-cvfc1_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvfc1_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvfc1_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvfc1_sony_c diff --git a/tests/ref/fate/h264-conformance-cvfi1_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-cvfi1_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvfi1_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvfi1_sony_d diff --git a/tests/ref/fate/h264-conformance-cvfi1_sva_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvfi1_sva_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvfi1_sva_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvfi1_sva_c diff --git a/tests/ref/fate/h264-conformance-cvfi2_sony_h b/ffmpeg-y/tests/ref/fate/h264-conformance-cvfi2_sony_h old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvfi2_sony_h rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvfi2_sony_h diff --git a/tests/ref/fate/h264-conformance-cvfi2_sva_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvfi2_sva_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvfi2_sva_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvfi2_sva_c diff --git a/tests/ref/fate/h264-conformance-cvma1_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-cvma1_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvma1_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvma1_sony_d diff --git a/tests/ref/fate/h264-conformance-cvma1_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cvma1_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvma1_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvma1_toshiba_b diff --git a/tests/ref/fate/h264-conformance-cvmanl1_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmanl1_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmanl1_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmanl1_toshiba_b diff --git a/tests/ref/fate/h264-conformance-cvmanl2_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmanl2_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmanl2_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmanl2_toshiba_b diff --git a/tests/ref/fate/h264-conformance-cvmapaqp3_sony_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmapaqp3_sony_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmapaqp3_sony_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmapaqp3_sony_e diff --git a/tests/ref/fate/h264-conformance-cvmaqp2_sony_g b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmaqp2_sony_g old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmaqp2_sony_g rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmaqp2_sony_g diff --git a/tests/ref/fate/h264-conformance-cvmaqp3_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmaqp3_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmaqp3_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmaqp3_sony_d diff --git a/tests/ref/fate/h264-conformance-cvmp_mot_fld_l30_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmp_mot_fld_l30_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmp_mot_fld_l30_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmp_mot_fld_l30_b diff --git a/tests/ref/fate/h264-conformance-cvmp_mot_frm_l31_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cvmp_mot_frm_l31_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvmp_mot_frm_l31_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvmp_mot_frm_l31_b diff --git a/tests/ref/fate/h264-conformance-cvnlfi1_sony_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvnlfi1_sony_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvnlfi1_sony_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvnlfi1_sony_c diff --git a/tests/ref/fate/h264-conformance-cvnlfi2_sony_h b/ffmpeg-y/tests/ref/fate/h264-conformance-cvnlfi2_sony_h old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvnlfi2_sony_h rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvnlfi2_sony_h diff --git a/tests/ref/fate/h264-conformance-cvpa1_toshiba_b b/ffmpeg-y/tests/ref/fate/h264-conformance-cvpa1_toshiba_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvpa1_toshiba_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvpa1_toshiba_b diff --git a/tests/ref/fate/h264-conformance-cvpcmnl1_sva_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvpcmnl1_sva_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvpcmnl1_sva_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvpcmnl1_sva_c diff --git a/tests/ref/fate/h264-conformance-cvpcmnl2_sva_c b/ffmpeg-y/tests/ref/fate/h264-conformance-cvpcmnl2_sva_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvpcmnl2_sva_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvpcmnl2_sva_c diff --git a/tests/ref/fate/h264-conformance-cvwp1_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cvwp1_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvwp1_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvwp1_toshiba_e diff --git a/tests/ref/fate/h264-conformance-cvwp2_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cvwp2_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvwp2_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvwp2_toshiba_e diff --git a/tests/ref/fate/h264-conformance-cvwp3_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cvwp3_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvwp3_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvwp3_toshiba_e diff --git a/tests/ref/fate/h264-conformance-cvwp5_toshiba_e b/ffmpeg-y/tests/ref/fate/h264-conformance-cvwp5_toshiba_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-cvwp5_toshiba_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-cvwp5_toshiba_e diff --git a/tests/ref/fate/h264-conformance-fi1_sony_e b/ffmpeg-y/tests/ref/fate/h264-conformance-fi1_sony_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-fi1_sony_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-fi1_sony_e diff --git a/tests/ref/fate/h264-conformance-frext-alphaconformanceg b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-alphaconformanceg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-alphaconformanceg rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-alphaconformanceg diff --git a/tests/ref/fate/h264-conformance-frext-bcrm_freh10 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-bcrm_freh10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-bcrm_freh10 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-bcrm_freh10 diff --git a/tests/ref/fate/h264-conformance-frext-brcm_freh11 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh11 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-brcm_freh11 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh11 diff --git a/tests/ref/fate/h264-conformance-frext-brcm_freh3 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-brcm_freh3 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh3 diff --git a/tests/ref/fate/h264-conformance-frext-brcm_freh4 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-brcm_freh4 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh4 diff --git a/tests/ref/fate/h264-conformance-frext-brcm_freh5 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-brcm_freh5 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh5 diff --git a/tests/ref/fate/h264-conformance-frext-brcm_freh8 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-brcm_freh8 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh8 diff --git a/tests/ref/fate/h264-conformance-frext-brcm_freh9 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-brcm_freh9 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-brcm_freh9 diff --git a/tests/ref/fate/h264-conformance-frext-freh12_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh12_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-freh12_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh12_b diff --git a/tests/ref/fate/h264-conformance-frext-freh1_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh1_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-freh1_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh1_b diff --git a/tests/ref/fate/h264-conformance-frext-freh2_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh2_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-freh2_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh2_b diff --git a/tests/ref/fate/h264-conformance-frext-freh6 b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-freh6 rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh6 diff --git a/tests/ref/fate/h264-conformance-frext-freh7_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh7_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-freh7_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-freh7_b diff --git a/tests/ref/fate/h264-conformance-frext-frext01_jvc_d b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext01_jvc_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext01_jvc_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext01_jvc_d diff --git a/tests/ref/fate/h264-conformance-frext-frext02_jvc_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext02_jvc_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext02_jvc_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext02_jvc_c diff --git a/tests/ref/fate/h264-conformance-frext-frext1_panasonic_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext1_panasonic_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext1_panasonic_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext1_panasonic_c diff --git a/tests/ref/fate/h264-conformance-frext-frext2_panasonic_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext2_panasonic_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext2_panasonic_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext2_panasonic_b diff --git a/tests/ref/fate/h264-conformance-frext-frext3_panasonic_d b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext3_panasonic_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext3_panasonic_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext3_panasonic_d diff --git a/tests/ref/fate/h264-conformance-frext-frext4_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext4_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext4_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext4_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-frext_mmco4_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext_mmco4_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-frext_mmco4_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-frext_mmco4_sony_b diff --git a/tests/ref/fate/h264-conformance-frext-hcaff1_hhi_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcaff1_hhi_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hcaff1_hhi_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcaff1_hhi_b diff --git a/tests/ref/fate/h264-conformance-frext-hcafr1_hhi_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr1_hhi_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hcafr1_hhi_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr1_hhi_c diff --git a/tests/ref/fate/h264-conformance-frext-hcafr2_hhi_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr2_hhi_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hcafr2_hhi_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr2_hhi_a diff --git a/tests/ref/fate/h264-conformance-frext-hcafr3_hhi_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr3_hhi_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hcafr3_hhi_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr3_hhi_a diff --git a/tests/ref/fate/h264-conformance-frext-hcafr4_hhi_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr4_hhi_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hcafr4_hhi_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcafr4_hhi_a diff --git a/tests/ref/fate/h264-conformance-frext-hcamff1_hhi_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcamff1_hhi_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hcamff1_hhi_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hcamff1_hhi_b diff --git a/tests/ref/fate/h264-conformance-frext-hi422fr10_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr10_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hi422fr10_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr10_sony_b diff --git a/tests/ref/fate/h264-conformance-frext-hi422fr13_sony_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr13_sony_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hi422fr13_sony_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr13_sony_b diff --git a/tests/ref/fate/h264-conformance-frext-hi422fr1_sony_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr1_sony_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hi422fr1_sony_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr1_sony_a diff --git a/tests/ref/fate/h264-conformance-frext-hi422fr6_sony_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr6_sony_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hi422fr6_sony_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hi422fr6_sony_a diff --git a/tests/ref/fate/h264-conformance-frext-hpca_brcm_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpca_brcm_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpca_brcm_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpca_brcm_c diff --git a/tests/ref/fate/h264-conformance-frext-hpcadq_brcm_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcadq_brcm_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcadq_brcm_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcadq_brcm_b diff --git a/tests/ref/fate/h264-conformance-frext-hpcafl_bcrm_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcafl_bcrm_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcafl_bcrm_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcafl_bcrm_c diff --git a/tests/ref/fate/h264-conformance-frext-hpcaflnl_bcrm_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcaflnl_bcrm_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcaflnl_bcrm_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcaflnl_bcrm_c diff --git a/tests/ref/fate/h264-conformance-frext-hpcalq_brcm_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcalq_brcm_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcalq_brcm_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcalq_brcm_b diff --git a/tests/ref/fate/h264-conformance-frext-hpcamapalq_bcrm_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcamapalq_bcrm_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcamapalq_bcrm_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcamapalq_bcrm_b diff --git a/tests/ref/fate/h264-conformance-frext-hpcamolq_brcm_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcamolq_brcm_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcamolq_brcm_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcamolq_brcm_b diff --git a/tests/ref/fate/h264-conformance-frext-hpcanl_brcm_c b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcanl_brcm_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcanl_brcm_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcanl_brcm_c diff --git a/tests/ref/fate/h264-conformance-frext-hpcaq2lq_brcm_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcaq2lq_brcm_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcaq2lq_brcm_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcaq2lq_brcm_b diff --git a/tests/ref/fate/h264-conformance-frext-hpcv_brcm_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcv_brcm_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcv_brcm_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcv_brcm_a diff --git a/tests/ref/fate/h264-conformance-frext-hpcvfl_bcrm_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvfl_bcrm_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcvfl_bcrm_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvfl_bcrm_a diff --git a/tests/ref/fate/h264-conformance-frext-hpcvflnl_bcrm_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvflnl_bcrm_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcvflnl_bcrm_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvflnl_bcrm_a diff --git a/tests/ref/fate/h264-conformance-frext-hpcvmolq_brcm_b b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvmolq_brcm_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcvmolq_brcm_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvmolq_brcm_b diff --git a/tests/ref/fate/h264-conformance-frext-hpcvnl_brcm_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvnl_brcm_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-hpcvnl_brcm_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-hpcvnl_brcm_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i1_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i1_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i1_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i1_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i2_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i2_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i2_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i2_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i3_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i3_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i3_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i3_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i4_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i4_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i4_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i4_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i5_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i5_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i5_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i5_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i6_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i6_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i6_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i6_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph10i7_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i7_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph10i7_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph10i7_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i1_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i1_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i1_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i1_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i2_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i2_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i2_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i2_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i3_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i3_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i3_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i3_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i4_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i4_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i4_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i4_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i5_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i5_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i5_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i5_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i6_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i6_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i6_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i6_panasonic_a diff --git a/tests/ref/fate/h264-conformance-frext-pph422i7_panasonic_a b/ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i7_panasonic_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-frext-pph422i7_panasonic_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-frext-pph422i7_panasonic_a diff --git a/tests/ref/fate/h264-conformance-hcbp2_hhi_a b/ffmpeg-y/tests/ref/fate/h264-conformance-hcbp2_hhi_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-hcbp2_hhi_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-hcbp2_hhi_a diff --git a/tests/ref/fate/h264-conformance-hcmp1_hhi_a b/ffmpeg-y/tests/ref/fate/h264-conformance-hcmp1_hhi_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-hcmp1_hhi_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-hcmp1_hhi_a diff --git a/tests/ref/fate/h264-conformance-ls_sva_d b/ffmpeg-y/tests/ref/fate/h264-conformance-ls_sva_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-ls_sva_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-ls_sva_d diff --git a/tests/ref/fate/h264-conformance-midr_mw_d b/ffmpeg-y/tests/ref/fate/h264-conformance-midr_mw_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-midr_mw_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-midr_mw_d diff --git a/tests/ref/fate/h264-conformance-mps_mw_a b/ffmpeg-y/tests/ref/fate/h264-conformance-mps_mw_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mps_mw_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-mps_mw_a diff --git a/tests/ref/fate/h264-conformance-mr1_bt_a b/ffmpeg-y/tests/ref/fate/h264-conformance-mr1_bt_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr1_bt_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr1_bt_a diff --git a/tests/ref/fate/h264-conformance-mr1_mw_a b/ffmpeg-y/tests/ref/fate/h264-conformance-mr1_mw_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr1_mw_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr1_mw_a diff --git a/tests/ref/fate/h264-conformance-mr2_mw_a b/ffmpeg-y/tests/ref/fate/h264-conformance-mr2_mw_a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr2_mw_a rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr2_mw_a diff --git a/tests/ref/fate/h264-conformance-mr2_tandberg_e b/ffmpeg-y/tests/ref/fate/h264-conformance-mr2_tandberg_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr2_tandberg_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr2_tandberg_e diff --git a/tests/ref/fate/h264-conformance-mr3_tandberg_b b/ffmpeg-y/tests/ref/fate/h264-conformance-mr3_tandberg_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr3_tandberg_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr3_tandberg_b diff --git a/tests/ref/fate/h264-conformance-mr4_tandberg_c b/ffmpeg-y/tests/ref/fate/h264-conformance-mr4_tandberg_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr4_tandberg_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr4_tandberg_c diff --git a/tests/ref/fate/h264-conformance-mr5_tandberg_c b/ffmpeg-y/tests/ref/fate/h264-conformance-mr5_tandberg_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr5_tandberg_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr5_tandberg_c diff --git a/tests/ref/fate/h264-conformance-mr6_bt_b b/ffmpeg-y/tests/ref/fate/h264-conformance-mr6_bt_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr6_bt_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr6_bt_b diff --git a/tests/ref/fate/h264-conformance-mr7_bt_b b/ffmpeg-y/tests/ref/fate/h264-conformance-mr7_bt_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr7_bt_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr7_bt_b diff --git a/tests/ref/fate/h264-conformance-mr8_bt_b b/ffmpeg-y/tests/ref/fate/h264-conformance-mr8_bt_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr8_bt_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr8_bt_b diff --git a/tests/ref/fate/h264-conformance-mr9_bt_b b/ffmpeg-y/tests/ref/fate/h264-conformance-mr9_bt_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mr9_bt_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-mr9_bt_b diff --git a/tests/ref/fate/h264-conformance-mv1_brcm_d b/ffmpeg-y/tests/ref/fate/h264-conformance-mv1_brcm_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-mv1_brcm_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-mv1_brcm_d diff --git a/tests/ref/fate/h264-conformance-nl1_sony_d b/ffmpeg-y/tests/ref/fate/h264-conformance-nl1_sony_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-nl1_sony_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-nl1_sony_d diff --git a/tests/ref/fate/h264-conformance-nl2_sony_h b/ffmpeg-y/tests/ref/fate/h264-conformance-nl2_sony_h old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-nl2_sony_h rename to ffmpeg-y/tests/ref/fate/h264-conformance-nl2_sony_h diff --git a/tests/ref/fate/h264-conformance-nl3_sva_e b/ffmpeg-y/tests/ref/fate/h264-conformance-nl3_sva_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-nl3_sva_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-nl3_sva_e diff --git a/tests/ref/fate/h264-conformance-nlmq1_jvc_c b/ffmpeg-y/tests/ref/fate/h264-conformance-nlmq1_jvc_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-nlmq1_jvc_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-nlmq1_jvc_c diff --git a/tests/ref/fate/h264-conformance-nlmq2_jvc_c b/ffmpeg-y/tests/ref/fate/h264-conformance-nlmq2_jvc_c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-nlmq2_jvc_c rename to ffmpeg-y/tests/ref/fate/h264-conformance-nlmq2_jvc_c diff --git a/tests/ref/fate/h264-conformance-nrf_mw_e b/ffmpeg-y/tests/ref/fate/h264-conformance-nrf_mw_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-nrf_mw_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-nrf_mw_e diff --git a/tests/ref/fate/h264-conformance-sharp_mp_field_1_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_field_1_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sharp_mp_field_1_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_field_1_b diff --git a/tests/ref/fate/h264-conformance-sharp_mp_field_2_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_field_2_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sharp_mp_field_2_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_field_2_b diff --git a/tests/ref/fate/h264-conformance-sharp_mp_field_3_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_field_3_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sharp_mp_field_3_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_field_3_b diff --git a/tests/ref/fate/h264-conformance-sharp_mp_paff_1r2 b/ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_paff_1r2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sharp_mp_paff_1r2 rename to ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_paff_1r2 diff --git a/tests/ref/fate/h264-conformance-sharp_mp_paff_2r b/ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_paff_2r old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sharp_mp_paff_2r rename to ffmpeg-y/tests/ref/fate/h264-conformance-sharp_mp_paff_2r diff --git a/tests/ref/fate/h264-conformance-sl1_sva_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sl1_sva_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sl1_sva_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sl1_sva_b diff --git a/tests/ref/fate/h264-conformance-sva_ba1_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_ba1_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_ba1_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_ba1_b diff --git a/tests/ref/fate/h264-conformance-sva_ba2_d b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_ba2_d old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_ba2_d rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_ba2_d diff --git a/tests/ref/fate/h264-conformance-sva_base_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_base_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_base_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_base_b diff --git a/tests/ref/fate/h264-conformance-sva_cl1_e b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_cl1_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_cl1_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_cl1_e diff --git a/tests/ref/fate/h264-conformance-sva_fm1_e b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_fm1_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_fm1_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_fm1_e diff --git a/tests/ref/fate/h264-conformance-sva_nl1_b b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_nl1_b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_nl1_b rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_nl1_b diff --git a/tests/ref/fate/h264-conformance-sva_nl2_e b/ffmpeg-y/tests/ref/fate/h264-conformance-sva_nl2_e old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-conformance-sva_nl2_e rename to ffmpeg-y/tests/ref/fate/h264-conformance-sva_nl2_e diff --git a/tests/ref/fate/h264-crop-to-container b/ffmpeg-y/tests/ref/fate/h264-crop-to-container old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-crop-to-container rename to ffmpeg-y/tests/ref/fate/h264-crop-to-container diff --git a/tests/ref/fate/h264-direct-bff b/ffmpeg-y/tests/ref/fate/h264-direct-bff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-direct-bff rename to ffmpeg-y/tests/ref/fate/h264-direct-bff diff --git a/tests/ref/fate/h264-dts_5frames b/ffmpeg-y/tests/ref/fate/h264-dts_5frames old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-dts_5frames rename to ffmpeg-y/tests/ref/fate/h264-dts_5frames diff --git a/tests/ref/fate/h264-extradata-reload b/ffmpeg-y/tests/ref/fate/h264-extradata-reload old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-extradata-reload rename to ffmpeg-y/tests/ref/fate/h264-extradata-reload diff --git a/tests/ref/fate/h264-extreme-plane-pred b/ffmpeg-y/tests/ref/fate/h264-extreme-plane-pred old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-extreme-plane-pred rename to ffmpeg-y/tests/ref/fate/h264-extreme-plane-pred diff --git a/tests/ref/fate/h264-interlace-crop b/ffmpeg-y/tests/ref/fate/h264-interlace-crop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-interlace-crop rename to ffmpeg-y/tests/ref/fate/h264-interlace-crop diff --git a/tests/ref/fate/h264-intra-refresh-recovery b/ffmpeg-y/tests/ref/fate/h264-intra-refresh-recovery old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-intra-refresh-recovery rename to ffmpeg-y/tests/ref/fate/h264-intra-refresh-recovery diff --git a/tests/ref/fate/h264-invalid-ref-mod b/ffmpeg-y/tests/ref/fate/h264-invalid-ref-mod old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-invalid-ref-mod rename to ffmpeg-y/tests/ref/fate/h264-invalid-ref-mod diff --git a/tests/ref/fate/h264-lossless b/ffmpeg-y/tests/ref/fate/h264-lossless old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-lossless rename to ffmpeg-y/tests/ref/fate/h264-lossless diff --git a/tests/ref/fate/h264-missing-frame b/ffmpeg-y/tests/ref/fate/h264-missing-frame old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-missing-frame rename to ffmpeg-y/tests/ref/fate/h264-missing-frame diff --git a/tests/ref/fate/h264-mixed-nal-coding b/ffmpeg-y/tests/ref/fate/h264-mixed-nal-coding old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-mixed-nal-coding rename to ffmpeg-y/tests/ref/fate/h264-mixed-nal-coding diff --git a/tests/ref/fate/h264-ref-pic-mod-overflow b/ffmpeg-y/tests/ref/fate/h264-ref-pic-mod-overflow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-ref-pic-mod-overflow rename to ffmpeg-y/tests/ref/fate/h264-ref-pic-mod-overflow diff --git a/tests/ref/fate/h264-reinit-large_420_8-to-small_420_8 b/ffmpeg-y/tests/ref/fate/h264-reinit-large_420_8-to-small_420_8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-reinit-large_420_8-to-small_420_8 rename to ffmpeg-y/tests/ref/fate/h264-reinit-large_420_8-to-small_420_8 diff --git a/tests/ref/fate/h264-reinit-small_420_8-to-large_444_10 b/ffmpeg-y/tests/ref/fate/h264-reinit-small_420_8-to-large_444_10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-reinit-small_420_8-to-large_444_10 rename to ffmpeg-y/tests/ref/fate/h264-reinit-small_420_8-to-large_444_10 diff --git a/tests/ref/fate/h264-reinit-small_420_9-to-small_420_8 b/ffmpeg-y/tests/ref/fate/h264-reinit-small_420_9-to-small_420_8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-reinit-small_420_9-to-small_420_8 rename to ffmpeg-y/tests/ref/fate/h264-reinit-small_420_9-to-small_420_8 diff --git a/tests/ref/fate/h264-reinit-small_422_9-to-small_420_9 b/ffmpeg-y/tests/ref/fate/h264-reinit-small_422_9-to-small_420_9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-reinit-small_422_9-to-small_420_9 rename to ffmpeg-y/tests/ref/fate/h264-reinit-small_422_9-to-small_420_9 diff --git a/tests/ref/fate/h264-skip-nointra b/ffmpeg-y/tests/ref/fate/h264-skip-nointra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-skip-nointra rename to ffmpeg-y/tests/ref/fate/h264-skip-nointra diff --git a/tests/ref/fate/h264-skip-nokey b/ffmpeg-y/tests/ref/fate/h264-skip-nokey old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-skip-nokey rename to ffmpeg-y/tests/ref/fate/h264-skip-nokey diff --git a/tests/ref/fate/h264-timecode b/ffmpeg-y/tests/ref/fate/h264-timecode old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-timecode rename to ffmpeg-y/tests/ref/fate/h264-timecode diff --git a/tests/ref/fate/h264-twofields-packet b/ffmpeg-y/tests/ref/fate/h264-twofields-packet old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-twofields-packet rename to ffmpeg-y/tests/ref/fate/h264-twofields-packet diff --git a/tests/ref/fate/h264-unescaped-extradata b/ffmpeg-y/tests/ref/fate/h264-unescaped-extradata old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-unescaped-extradata rename to ffmpeg-y/tests/ref/fate/h264-unescaped-extradata diff --git a/tests/ref/fate/h264-xavc-4389 b/ffmpeg-y/tests/ref/fate/h264-xavc-4389 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264-xavc-4389 rename to ffmpeg-y/tests/ref/fate/h264-xavc-4389 diff --git a/tests/ref/fate/h264_mp4toannexb_ticket2991 b/ffmpeg-y/tests/ref/fate/h264_mp4toannexb_ticket2991 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264_mp4toannexb_ticket2991 rename to ffmpeg-y/tests/ref/fate/h264_mp4toannexb_ticket2991 diff --git a/tests/ref/fate/h264_mp4toannexb_ticket5927 b/ffmpeg-y/tests/ref/fate/h264_mp4toannexb_ticket5927 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264_mp4toannexb_ticket5927 rename to ffmpeg-y/tests/ref/fate/h264_mp4toannexb_ticket5927 diff --git a/tests/ref/fate/h264_mp4toannexb_ticket5927_2 b/ffmpeg-y/tests/ref/fate/h264_mp4toannexb_ticket5927_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/h264_mp4toannexb_ticket5927_2 rename to ffmpeg-y/tests/ref/fate/h264_mp4toannexb_ticket5927_2 diff --git a/tests/ref/fate/hap-alpha-only-nosnappy-128x72 b/ffmpeg-y/tests/ref/fate/hap-alpha-only-nosnappy-128x72 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hap-alpha-only-nosnappy-128x72 rename to ffmpeg-y/tests/ref/fate/hap-alpha-only-nosnappy-128x72 diff --git a/tests/ref/fate/hap-alpha-only-snappy-127x71 b/ffmpeg-y/tests/ref/fate/hap-alpha-only-snappy-127x71 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hap-alpha-only-snappy-127x71 rename to ffmpeg-y/tests/ref/fate/hap-alpha-only-snappy-127x71 diff --git a/tests/ref/fate/hap-chunk b/ffmpeg-y/tests/ref/fate/hap-chunk old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hap-chunk rename to ffmpeg-y/tests/ref/fate/hap-chunk diff --git a/tests/ref/fate/hap1 b/ffmpeg-y/tests/ref/fate/hap1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hap1 rename to ffmpeg-y/tests/ref/fate/hap1 diff --git a/tests/ref/fate/hap5 b/ffmpeg-y/tests/ref/fate/hap5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hap5 rename to ffmpeg-y/tests/ref/fate/hap5 diff --git a/tests/ref/fate/hapenc-hap-none b/ffmpeg-y/tests/ref/fate/hapenc-hap-none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapenc-hap-none rename to ffmpeg-y/tests/ref/fate/hapenc-hap-none diff --git a/tests/ref/fate/hapenc-hapa-none b/ffmpeg-y/tests/ref/fate/hapenc-hapa-none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapenc-hapa-none rename to ffmpeg-y/tests/ref/fate/hapenc-hapa-none diff --git a/tests/ref/fate/hapenc-hapq-none b/ffmpeg-y/tests/ref/fate/hapenc-hapq-none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapenc-hapq-none rename to ffmpeg-y/tests/ref/fate/hapenc-hapq-none diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov b/ffmpeg-y/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov rename to ffmpeg-y/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov b/ffmpeg-y/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov rename to ffmpeg-y/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov diff --git a/tests/ref/fate/hapqa-extract-snappy1-to-hapalphaonly b/ffmpeg-y/tests/ref/fate/hapqa-extract-snappy1-to-hapalphaonly old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-extract-snappy1-to-hapalphaonly rename to ffmpeg-y/tests/ref/fate/hapqa-extract-snappy1-to-hapalphaonly diff --git a/tests/ref/fate/hapqa-extract-snappy1-to-hapq b/ffmpeg-y/tests/ref/fate/hapqa-extract-snappy1-to-hapq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-extract-snappy1-to-hapq rename to ffmpeg-y/tests/ref/fate/hapqa-extract-snappy1-to-hapq diff --git a/tests/ref/fate/hapqa-extract-snappy16-to-hapalphaonly b/ffmpeg-y/tests/ref/fate/hapqa-extract-snappy16-to-hapalphaonly old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-extract-snappy16-to-hapalphaonly rename to ffmpeg-y/tests/ref/fate/hapqa-extract-snappy16-to-hapalphaonly diff --git a/tests/ref/fate/hapqa-extract-snappy16-to-hapq b/ffmpeg-y/tests/ref/fate/hapqa-extract-snappy16-to-hapq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-extract-snappy16-to-hapq rename to ffmpeg-y/tests/ref/fate/hapqa-extract-snappy16-to-hapq diff --git a/tests/ref/fate/hapqa-nosnappy-127x71 b/ffmpeg-y/tests/ref/fate/hapqa-nosnappy-127x71 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-nosnappy-127x71 rename to ffmpeg-y/tests/ref/fate/hapqa-nosnappy-127x71 diff --git a/tests/ref/fate/hapqa-snappy1-127x71 b/ffmpeg-y/tests/ref/fate/hapqa-snappy1-127x71 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-snappy1-127x71 rename to ffmpeg-y/tests/ref/fate/hapqa-snappy1-127x71 diff --git a/tests/ref/fate/hapqa-snappy16-127x71 b/ffmpeg-y/tests/ref/fate/hapqa-snappy16-127x71 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapqa-snappy16-127x71 rename to ffmpeg-y/tests/ref/fate/hapqa-snappy16-127x71 diff --git a/tests/ref/fate/hapy b/ffmpeg-y/tests/ref/fate/hapy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hapy rename to ffmpeg-y/tests/ref/fate/hapy diff --git a/tests/ref/fate/hash b/ffmpeg-y/tests/ref/fate/hash old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hash rename to ffmpeg-y/tests/ref/fate/hash diff --git a/tests/ref/fate/hevc-conformance-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ADJUST_IPRED_ANGLE_A_RExt_Mitsubishi_1 diff --git a/tests/ref/fate/hevc-conformance-AMP_A_Samsung_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_A_Samsung_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_A_Samsung_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_A_Samsung_4 diff --git a/tests/ref/fate/hevc-conformance-AMP_A_Samsung_6 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_A_Samsung_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_A_Samsung_6 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_A_Samsung_6 diff --git a/tests/ref/fate/hevc-conformance-AMP_B_Samsung_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_B_Samsung_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_B_Samsung_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_B_Samsung_4 diff --git a/tests/ref/fate/hevc-conformance-AMP_B_Samsung_6 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_B_Samsung_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_B_Samsung_6 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_B_Samsung_6 diff --git a/tests/ref/fate/hevc-conformance-AMP_D_Hisilicon b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_D_Hisilicon old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_D_Hisilicon rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_D_Hisilicon diff --git a/tests/ref/fate/hevc-conformance-AMP_E_Hisilicon b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_E_Hisilicon old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_E_Hisilicon rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_E_Hisilicon diff --git a/tests/ref/fate/hevc-conformance-AMP_F_Hisilicon_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_F_Hisilicon_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMP_F_Hisilicon_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMP_F_Hisilicon_3 diff --git a/tests/ref/fate/hevc-conformance-AMVP_A_MTK_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_A_MTK_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMVP_A_MTK_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_A_MTK_4 diff --git a/tests/ref/fate/hevc-conformance-AMVP_B_MTK_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_B_MTK_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMVP_B_MTK_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_B_MTK_4 diff --git a/tests/ref/fate/hevc-conformance-AMVP_C_Samsung_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_C_Samsung_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMVP_C_Samsung_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_C_Samsung_4 diff --git a/tests/ref/fate/hevc-conformance-AMVP_C_Samsung_6 b/ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_C_Samsung_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-AMVP_C_Samsung_6 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-AMVP_C_Samsung_6 diff --git a/tests/ref/fate/hevc-conformance-BUMPING_A_ericsson_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-BUMPING_A_ericsson_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-BUMPING_A_ericsson_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-BUMPING_A_ericsson_1 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_A_SHARP_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_A_SHARP_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_A_SHARP_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_A_SHARP_4 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_B_SHARP_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_B_SHARP_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_B_SHARP_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_B_SHARP_4 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_C_SHARP_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_C_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_C_SHARP_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_C_SHARP_3 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_D_SHARP_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_D_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_D_SHARP_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_D_SHARP_3 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_E_SHARP_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_E_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_E_SHARP_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_E_SHARP_3 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_F_SHARP_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_F_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_F_SHARP_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_F_SHARP_3 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_G_SHARP_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_G_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_G_SHARP_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_G_SHARP_3 diff --git a/tests/ref/fate/hevc-conformance-CAINIT_H_SHARP_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_H_SHARP_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CAINIT_H_SHARP_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CAINIT_H_SHARP_3 diff --git a/tests/ref/fate/hevc-conformance-CIP_A_Panasonic_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CIP_A_Panasonic_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CIP_A_Panasonic_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CIP_A_Panasonic_3 diff --git a/tests/ref/fate/hevc-conformance-CIP_C_Panasonic_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CIP_C_Panasonic_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CIP_C_Panasonic_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CIP_C_Panasonic_2 diff --git a/tests/ref/fate/hevc-conformance-CONFWIN_A_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-CONFWIN_A_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-CONFWIN_A_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-CONFWIN_A_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-DBLK_A_MAIN10_VIXS_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_A_MAIN10_VIXS_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_A_MAIN10_VIXS_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_A_MAIN10_VIXS_3 diff --git a/tests/ref/fate/hevc-conformance-DBLK_A_SONY_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_A_SONY_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_A_SONY_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_A_SONY_3 diff --git a/tests/ref/fate/hevc-conformance-DBLK_B_SONY_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_B_SONY_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_B_SONY_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_B_SONY_3 diff --git a/tests/ref/fate/hevc-conformance-DBLK_C_SONY_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_C_SONY_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_C_SONY_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_C_SONY_3 diff --git a/tests/ref/fate/hevc-conformance-DBLK_D_VIXS_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_D_VIXS_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_D_VIXS_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_D_VIXS_2 diff --git a/tests/ref/fate/hevc-conformance-DBLK_E_VIXS_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_E_VIXS_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_E_VIXS_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_E_VIXS_2 diff --git a/tests/ref/fate/hevc-conformance-DBLK_F_VIXS_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_F_VIXS_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_F_VIXS_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_F_VIXS_2 diff --git a/tests/ref/fate/hevc-conformance-DBLK_G_VIXS_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_G_VIXS_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DBLK_G_VIXS_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DBLK_G_VIXS_2 diff --git a/tests/ref/fate/hevc-conformance-DELTAQP_A_BRCM_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DELTAQP_A_BRCM_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DELTAQP_A_BRCM_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DELTAQP_A_BRCM_4 diff --git a/tests/ref/fate/hevc-conformance-DELTAQP_B_SONY_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DELTAQP_B_SONY_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DELTAQP_B_SONY_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DELTAQP_B_SONY_3 diff --git a/tests/ref/fate/hevc-conformance-DELTAQP_C_SONY_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DELTAQP_C_SONY_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DELTAQP_C_SONY_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DELTAQP_C_SONY_3 diff --git a/tests/ref/fate/hevc-conformance-DSLICE_A_HHI_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DSLICE_A_HHI_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DSLICE_A_HHI_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DSLICE_A_HHI_5 diff --git a/tests/ref/fate/hevc-conformance-DSLICE_B_HHI_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DSLICE_B_HHI_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DSLICE_B_HHI_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DSLICE_B_HHI_5 diff --git a/tests/ref/fate/hevc-conformance-DSLICE_C_HHI_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-DSLICE_C_HHI_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-DSLICE_C_HHI_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-DSLICE_C_HHI_5 diff --git a/tests/ref/fate/hevc-conformance-ENTP_A_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ENTP_A_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ENTP_A_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ENTP_A_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-ENTP_B_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ENTP_B_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ENTP_B_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ENTP_B_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-ENTP_C_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ENTP_C_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ENTP_C_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ENTP_C_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-EXT_A_ericsson_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-EXT_A_ericsson_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-EXT_A_ericsson_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-EXT_A_ericsson_4 diff --git a/tests/ref/fate/hevc-conformance-FILLER_A_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-FILLER_A_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-FILLER_A_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-FILLER_A_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_2 diff --git a/tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-HRD_A_Fujitsu_3 diff --git a/tests/ref/fate/hevc-conformance-INITQP_A_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-INITQP_A_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-INITQP_A_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-INITQP_A_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-INITQP_B_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-INITQP_B_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-INITQP_B_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-INITQP_B_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-IPCM_A_RExt_NEC b/ffmpeg-y/tests/ref/fate/hevc-conformance-IPCM_A_RExt_NEC old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-IPCM_A_RExt_NEC rename to ffmpeg-y/tests/ref/fate/hevc-conformance-IPCM_A_RExt_NEC diff --git a/tests/ref/fate/hevc-conformance-IPCM_B_RExt_NEC b/ffmpeg-y/tests/ref/fate/hevc-conformance-IPCM_B_RExt_NEC old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-IPCM_B_RExt_NEC rename to ffmpeg-y/tests/ref/fate/hevc-conformance-IPCM_B_RExt_NEC diff --git a/tests/ref/fate/hevc-conformance-IPRED_A_docomo_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-IPRED_A_docomo_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-IPRED_A_docomo_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-IPRED_A_docomo_2 diff --git a/tests/ref/fate/hevc-conformance-IPRED_B_Nokia_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-IPRED_B_Nokia_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-IPRED_B_Nokia_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-IPRED_B_Nokia_3 diff --git a/tests/ref/fate/hevc-conformance-IPRED_C_Mitsubishi_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-IPRED_C_Mitsubishi_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-IPRED_C_Mitsubishi_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-IPRED_C_Mitsubishi_3 diff --git a/tests/ref/fate/hevc-conformance-LS_A_Orange_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-LS_A_Orange_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-LS_A_Orange_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-LS_A_Orange_2 diff --git a/tests/ref/fate/hevc-conformance-LS_B_ORANGE_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-LS_B_ORANGE_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-LS_B_ORANGE_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-LS_B_ORANGE_4 diff --git a/tests/ref/fate/hevc-conformance-LTRPSPS_A_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-LTRPSPS_A_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-LTRPSPS_A_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-LTRPSPS_A_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-MAXBINS_A_TI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MAXBINS_A_TI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MAXBINS_A_TI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MAXBINS_A_TI_4 diff --git a/tests/ref/fate/hevc-conformance-MAXBINS_B_TI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MAXBINS_B_TI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MAXBINS_B_TI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MAXBINS_B_TI_4 diff --git a/tests/ref/fate/hevc-conformance-MAXBINS_C_TI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MAXBINS_C_TI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MAXBINS_C_TI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MAXBINS_C_TI_4 diff --git a/tests/ref/fate/hevc-conformance-MERGE_A_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_A_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_A_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_A_TI_3 diff --git a/tests/ref/fate/hevc-conformance-MERGE_B_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_B_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_B_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_B_TI_3 diff --git a/tests/ref/fate/hevc-conformance-MERGE_C_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_C_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_C_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_C_TI_3 diff --git a/tests/ref/fate/hevc-conformance-MERGE_D_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_D_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_D_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_D_TI_3 diff --git a/tests/ref/fate/hevc-conformance-MERGE_E_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_E_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_E_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_E_TI_3 diff --git a/tests/ref/fate/hevc-conformance-MERGE_F_MTK_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_F_MTK_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_F_MTK_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_F_MTK_4 diff --git a/tests/ref/fate/hevc-conformance-MERGE_G_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_G_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MERGE_G_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MERGE_G_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-MVCLIP_A_qualcomm_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MVCLIP_A_qualcomm_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MVCLIP_A_qualcomm_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MVCLIP_A_qualcomm_3 diff --git a/tests/ref/fate/hevc-conformance-MVDL1ZERO_A_docomo_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MVDL1ZERO_A_docomo_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MVDL1ZERO_A_docomo_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MVDL1ZERO_A_docomo_3 diff --git a/tests/ref/fate/hevc-conformance-MVEDGE_A_qualcomm_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-MVEDGE_A_qualcomm_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-MVEDGE_A_qualcomm_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-MVEDGE_A_qualcomm_3 diff --git a/tests/ref/fate/hevc-conformance-Main_422_10_A_RExt_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-Main_422_10_A_RExt_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-Main_422_10_A_RExt_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-Main_422_10_A_RExt_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-Main_422_10_B_RExt_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-Main_422_10_B_RExt_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-Main_422_10_B_RExt_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-Main_422_10_B_RExt_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-NUT_A_ericsson_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-NUT_A_ericsson_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-NUT_A_ericsson_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-NUT_A_ericsson_5 diff --git a/tests/ref/fate/hevc-conformance-NoOutPrior_A_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-NoOutPrior_A_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-NoOutPrior_A_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-NoOutPrior_A_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-NoOutPrior_B_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-NoOutPrior_B_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-NoOutPrior_B_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-NoOutPrior_B_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-OPFLAG_A_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-OPFLAG_A_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-OPFLAG_A_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-OPFLAG_A_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-OPFLAG_B_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-OPFLAG_B_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-OPFLAG_B_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-OPFLAG_B_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-OPFLAG_C_Qualcomm_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-OPFLAG_C_Qualcomm_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-OPFLAG_C_Qualcomm_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-OPFLAG_C_Qualcomm_1 diff --git a/tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PERSIST_RPARAM_A_RExt_Sony_3 diff --git a/tests/ref/fate/hevc-conformance-PICSIZE_A_Bossen_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_A_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PICSIZE_A_Bossen_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_A_Bossen_1 diff --git a/tests/ref/fate/hevc-conformance-PICSIZE_B_Bossen_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_B_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PICSIZE_B_Bossen_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_B_Bossen_1 diff --git a/tests/ref/fate/hevc-conformance-PICSIZE_C_Bossen_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_C_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PICSIZE_C_Bossen_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_C_Bossen_1 diff --git a/tests/ref/fate/hevc-conformance-PICSIZE_D_Bossen_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_D_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PICSIZE_D_Bossen_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PICSIZE_D_Bossen_1 diff --git a/tests/ref/fate/hevc-conformance-PMERGE_A_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_A_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PMERGE_A_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_A_TI_3 diff --git a/tests/ref/fate/hevc-conformance-PMERGE_B_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_B_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PMERGE_B_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_B_TI_3 diff --git a/tests/ref/fate/hevc-conformance-PMERGE_C_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_C_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PMERGE_C_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_C_TI_3 diff --git a/tests/ref/fate/hevc-conformance-PMERGE_D_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_D_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PMERGE_D_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_D_TI_3 diff --git a/tests/ref/fate/hevc-conformance-PMERGE_E_TI_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_E_TI_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PMERGE_E_TI_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PMERGE_E_TI_3 diff --git a/tests/ref/fate/hevc-conformance-POC_A_Bossen_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-POC_A_Bossen_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-POC_A_Bossen_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-POC_A_Bossen_3 diff --git a/tests/ref/fate/hevc-conformance-PPS_A_qualcomm_7 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PPS_A_qualcomm_7 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PPS_A_qualcomm_7 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PPS_A_qualcomm_7 diff --git a/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PS_A_VIDYO_3 diff --git a/tests/ref/fate/hevc-conformance-PS_B_VIDYO_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-PS_B_VIDYO_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-PS_B_VIDYO_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-PS_B_VIDYO_3 diff --git a/tests/ref/fate/hevc-conformance-QMATRIX_A_RExt_Sony_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-QMATRIX_A_RExt_Sony_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-QMATRIX_A_RExt_Sony_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-QMATRIX_A_RExt_Sony_1 diff --git a/tests/ref/fate/hevc-conformance-RAP_A_docomo_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RAP_A_docomo_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RAP_A_docomo_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RAP_A_docomo_4 diff --git a/tests/ref/fate/hevc-conformance-RAP_B_Bossen_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RAP_B_Bossen_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RAP_B_Bossen_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RAP_B_Bossen_1 diff --git a/tests/ref/fate/hevc-conformance-RPLM_A_qualcomm_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPLM_A_qualcomm_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPLM_A_qualcomm_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPLM_A_qualcomm_4 diff --git a/tests/ref/fate/hevc-conformance-RPLM_B_qualcomm_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPLM_B_qualcomm_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPLM_B_qualcomm_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPLM_B_qualcomm_4 diff --git a/tests/ref/fate/hevc-conformance-RPS_A_docomo_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_A_docomo_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPS_A_docomo_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_A_docomo_4 diff --git a/tests/ref/fate/hevc-conformance-RPS_B_qualcomm_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_B_qualcomm_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPS_B_qualcomm_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_B_qualcomm_5 diff --git a/tests/ref/fate/hevc-conformance-RPS_C_ericsson_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_C_ericsson_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPS_C_ericsson_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_C_ericsson_5 diff --git a/tests/ref/fate/hevc-conformance-RPS_D_ericsson_6 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_D_ericsson_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPS_D_ericsson_6 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_D_ericsson_6 diff --git a/tests/ref/fate/hevc-conformance-RPS_E_qualcomm_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_E_qualcomm_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPS_E_qualcomm_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_E_qualcomm_5 diff --git a/tests/ref/fate/hevc-conformance-RPS_F_docomo_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_F_docomo_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RPS_F_docomo_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RPS_F_docomo_1 diff --git a/tests/ref/fate/hevc-conformance-RQT_A_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_A_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_A_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_A_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-RQT_B_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_B_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_B_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_B_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-RQT_C_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_C_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_C_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_C_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-RQT_D_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_D_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_D_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_D_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-RQT_E_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_E_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_E_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_E_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-RQT_F_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_F_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_F_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_F_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-RQT_G_HHI_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_G_HHI_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-RQT_G_HHI_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-RQT_G_HHI_4 diff --git a/tests/ref/fate/hevc-conformance-SAO_A_MediaTek_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_A_MediaTek_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_A_MediaTek_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_A_MediaTek_4 diff --git a/tests/ref/fate/hevc-conformance-SAO_A_RExt_MediaTek_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_A_RExt_MediaTek_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_A_RExt_MediaTek_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_A_RExt_MediaTek_1 diff --git a/tests/ref/fate/hevc-conformance-SAO_B_MediaTek_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_B_MediaTek_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_B_MediaTek_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_B_MediaTek_5 diff --git a/tests/ref/fate/hevc-conformance-SAO_C_Samsung_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_C_Samsung_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_C_Samsung_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_C_Samsung_4 diff --git a/tests/ref/fate/hevc-conformance-SAO_C_Samsung_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_C_Samsung_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_C_Samsung_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_C_Samsung_5 diff --git a/tests/ref/fate/hevc-conformance-SAO_D_Samsung_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_D_Samsung_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_D_Samsung_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_D_Samsung_4 diff --git a/tests/ref/fate/hevc-conformance-SAO_D_Samsung_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_D_Samsung_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_D_Samsung_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_D_Samsung_5 diff --git a/tests/ref/fate/hevc-conformance-SAO_E_Canon_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_E_Canon_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_E_Canon_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_E_Canon_4 diff --git a/tests/ref/fate/hevc-conformance-SAO_F_Canon_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_F_Canon_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_F_Canon_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_F_Canon_3 diff --git a/tests/ref/fate/hevc-conformance-SAO_G_Canon_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_G_Canon_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SAO_G_Canon_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SAO_G_Canon_3 diff --git a/tests/ref/fate/hevc-conformance-SDH_A_Orange_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SDH_A_Orange_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SDH_A_Orange_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SDH_A_Orange_3 diff --git a/tests/ref/fate/hevc-conformance-SLICES_A_Rovi_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLICES_A_Rovi_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLICES_A_Rovi_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLICES_A_Rovi_3 diff --git a/tests/ref/fate/hevc-conformance-SLIST_A_Sony_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_A_Sony_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLIST_A_Sony_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_A_Sony_4 diff --git a/tests/ref/fate/hevc-conformance-SLIST_B_Sony_8 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_B_Sony_8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLIST_B_Sony_8 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_B_Sony_8 diff --git a/tests/ref/fate/hevc-conformance-SLIST_C_Sony_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_C_Sony_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLIST_C_Sony_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_C_Sony_3 diff --git a/tests/ref/fate/hevc-conformance-SLIST_D_Sony_9 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_D_Sony_9 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLIST_D_Sony_9 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLIST_D_Sony_9 diff --git a/tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_1 diff --git a/tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-SLPPLP_A_VIDYO_2 diff --git a/tests/ref/fate/hevc-conformance-STRUCT_A_Samsung_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-STRUCT_A_Samsung_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-STRUCT_A_Samsung_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-STRUCT_A_Samsung_5 diff --git a/tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_4 diff --git a/tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_6 b/ffmpeg-y/tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_6 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-STRUCT_B_Samsung_6 diff --git a/tests/ref/fate/hevc-conformance-TILES_A_Cisco_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TILES_A_Cisco_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TILES_A_Cisco_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TILES_A_Cisco_2 diff --git a/tests/ref/fate/hevc-conformance-TILES_B_Cisco_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TILES_B_Cisco_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TILES_B_Cisco_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TILES_B_Cisco_1 diff --git a/tests/ref/fate/hevc-conformance-TMVP_A_MS_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TMVP_A_MS_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TMVP_A_MS_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TMVP_A_MS_3 diff --git a/tests/ref/fate/hevc-conformance-TSCL_A_VIDYO_5 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TSCL_A_VIDYO_5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TSCL_A_VIDYO_5 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TSCL_A_VIDYO_5 diff --git a/tests/ref/fate/hevc-conformance-TSCL_B_VIDYO_4 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TSCL_B_VIDYO_4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TSCL_B_VIDYO_4 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TSCL_B_VIDYO_4 diff --git a/tests/ref/fate/hevc-conformance-TSKIP_A_MS_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TSKIP_A_MS_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TSKIP_A_MS_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TSKIP_A_MS_3 diff --git a/tests/ref/fate/hevc-conformance-TUSIZE_A_Samsung_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-TUSIZE_A_Samsung_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-TUSIZE_A_Samsung_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-TUSIZE_A_Samsung_1 diff --git a/tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_1 b/ffmpeg-y/tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_1 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_1 diff --git a/tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-VPSID_A_VIDYO_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN10_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN10_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN10_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN10_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_A_ericsson_MAIN_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN10_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN10_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN10_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN10_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_B_ericsson_MAIN_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN10_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN10_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN10_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN10_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_C_ericsson_MAIN_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN10_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN10_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN10_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN10_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_D_ericsson_MAIN_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN10_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN10_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN10_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN10_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_E_ericsson_MAIN_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN10_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN10_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN10_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN10_2 diff --git a/tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WPP_F_ericsson_MAIN_2 diff --git a/tests/ref/fate/hevc-conformance-WP_A_MAIN10_Toshiba_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WP_A_MAIN10_Toshiba_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WP_A_MAIN10_Toshiba_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WP_A_MAIN10_Toshiba_3 diff --git a/tests/ref/fate/hevc-conformance-WP_A_Toshiba_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WP_A_Toshiba_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WP_A_Toshiba_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WP_A_Toshiba_3 diff --git a/tests/ref/fate/hevc-conformance-WP_B_Toshiba_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WP_B_Toshiba_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WP_B_Toshiba_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WP_B_Toshiba_3 diff --git a/tests/ref/fate/hevc-conformance-WP_MAIN10_B_Toshiba_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-WP_MAIN10_B_Toshiba_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-WP_MAIN10_B_Toshiba_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-WP_MAIN10_B_Toshiba_3 diff --git a/tests/ref/fate/hevc-conformance-cip_B_NEC_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-cip_B_NEC_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-cip_B_NEC_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-cip_B_NEC_3 diff --git a/tests/ref/fate/hevc-conformance-ipcm_A_NEC_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_A_NEC_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ipcm_A_NEC_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_A_NEC_3 diff --git a/tests/ref/fate/hevc-conformance-ipcm_B_NEC_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_B_NEC_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ipcm_B_NEC_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_B_NEC_3 diff --git a/tests/ref/fate/hevc-conformance-ipcm_C_NEC_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_C_NEC_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ipcm_C_NEC_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_C_NEC_3 diff --git a/tests/ref/fate/hevc-conformance-ipcm_D_NEC_3 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_D_NEC_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ipcm_D_NEC_3 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_D_NEC_3 diff --git a/tests/ref/fate/hevc-conformance-ipcm_E_NEC_2 b/ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_E_NEC_2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-conformance-ipcm_E_NEC_2 rename to ffmpeg-y/tests/ref/fate/hevc-conformance-ipcm_E_NEC_2 diff --git a/tests/ref/fate/hevc-extradata-reload b/ffmpeg-y/tests/ref/fate/hevc-extradata-reload old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-extradata-reload rename to ffmpeg-y/tests/ref/fate/hevc-extradata-reload diff --git a/tests/ref/fate/hevc-monochrome-crop b/ffmpeg-y/tests/ref/fate/hevc-monochrome-crop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-monochrome-crop rename to ffmpeg-y/tests/ref/fate/hevc-monochrome-crop diff --git a/tests/ref/fate/hevc-paired-fields b/ffmpeg-y/tests/ref/fate/hevc-paired-fields old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-paired-fields rename to ffmpeg-y/tests/ref/fate/hevc-paired-fields diff --git a/tests/ref/fate/hevc-paramchange-yuv420p-yuv420p10 b/ffmpeg-y/tests/ref/fate/hevc-paramchange-yuv420p-yuv420p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-paramchange-yuv420p-yuv420p10 rename to ffmpeg-y/tests/ref/fate/hevc-paramchange-yuv420p-yuv420p10 diff --git a/tests/ref/fate/hevc-skiploopfilter b/ffmpeg-y/tests/ref/fate/hevc-skiploopfilter old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-skiploopfilter rename to ffmpeg-y/tests/ref/fate/hevc-skiploopfilter diff --git a/tests/ref/fate/hevc-two-first-slice b/ffmpeg-y/tests/ref/fate/hevc-two-first-slice old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hevc-two-first-slice rename to ffmpeg-y/tests/ref/fate/hevc-two-first-slice diff --git a/tests/ref/fate/hls-fmp4 b/ffmpeg-y/tests/ref/fate/hls-fmp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hls-fmp4 rename to ffmpeg-y/tests/ref/fate/hls-fmp4 diff --git a/tests/ref/fate/hls-init-time b/ffmpeg-y/tests/ref/fate/hls-init-time old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hls-init-time rename to ffmpeg-y/tests/ref/fate/hls-init-time diff --git a/tests/ref/fate/hls-list-size b/ffmpeg-y/tests/ref/fate/hls-list-size old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hls-list-size rename to ffmpeg-y/tests/ref/fate/hls-list-size diff --git a/tests/ref/fate/hls-segment-size b/ffmpeg-y/tests/ref/fate/hls-segment-size old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hls-segment-size rename to ffmpeg-y/tests/ref/fate/hls-segment-size diff --git a/tests/ref/fate/hmac b/ffmpeg-y/tests/ref/fate/hmac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/hmac rename to ffmpeg-y/tests/ref/fate/hmac diff --git a/tests/ref/fate/id-cin-video b/ffmpeg-y/tests/ref/fate/id-cin-video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/id-cin-video rename to ffmpeg-y/tests/ref/fate/id-cin-video diff --git a/tests/ref/fate/id3v2-priv b/ffmpeg-y/tests/ref/fate/id3v2-priv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/id3v2-priv rename to ffmpeg-y/tests/ref/fate/id3v2-priv diff --git a/tests/ref/fate/idroq-video-encode b/ffmpeg-y/tests/ref/fate/idroq-video-encode old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/idroq-video-encode rename to ffmpeg-y/tests/ref/fate/idroq-video-encode diff --git a/tests/ref/fate/iff-byterun1 b/ffmpeg-y/tests/ref/fate/iff-byterun1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iff-byterun1 rename to ffmpeg-y/tests/ref/fate/iff-byterun1 diff --git a/tests/ref/fate/iff-fibonacci b/ffmpeg-y/tests/ref/fate/iff-fibonacci old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iff-fibonacci rename to ffmpeg-y/tests/ref/fate/iff-fibonacci diff --git a/tests/ref/fate/iff-ilbm b/ffmpeg-y/tests/ref/fate/iff-ilbm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iff-ilbm rename to ffmpeg-y/tests/ref/fate/iff-ilbm diff --git a/tests/ref/fate/iff-pcm b/ffmpeg-y/tests/ref/fate/iff-pcm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iff-pcm rename to ffmpeg-y/tests/ref/fate/iff-pcm diff --git a/tests/ref/fate/iirfilter b/ffmpeg-y/tests/ref/fate/iirfilter old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iirfilter rename to ffmpeg-y/tests/ref/fate/iirfilter diff --git a/tests/ref/fate/imgutils b/ffmpeg-y/tests/ref/fate/imgutils old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/imgutils rename to ffmpeg-y/tests/ref/fate/imgutils diff --git a/tests/ref/fate/indeo2-delta b/ffmpeg-y/tests/ref/fate/indeo2-delta old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/indeo2-delta rename to ffmpeg-y/tests/ref/fate/indeo2-delta diff --git a/tests/ref/fate/indeo2-intra b/ffmpeg-y/tests/ref/fate/indeo2-intra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/indeo2-intra rename to ffmpeg-y/tests/ref/fate/indeo2-intra diff --git a/tests/ref/fate/indeo3-1 b/ffmpeg-y/tests/ref/fate/indeo3-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/indeo3-1 rename to ffmpeg-y/tests/ref/fate/indeo3-1 diff --git a/tests/ref/fate/indeo3-2 b/ffmpeg-y/tests/ref/fate/indeo3-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/indeo3-2 rename to ffmpeg-y/tests/ref/fate/indeo3-2 diff --git a/tests/ref/fate/indeo4 b/ffmpeg-y/tests/ref/fate/indeo4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/indeo4 rename to ffmpeg-y/tests/ref/fate/indeo4 diff --git a/tests/ref/fate/indeo5 b/ffmpeg-y/tests/ref/fate/indeo5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/indeo5 rename to ffmpeg-y/tests/ref/fate/indeo5 diff --git a/tests/ref/fate/interplay-mve-16bit b/ffmpeg-y/tests/ref/fate/interplay-mve-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/interplay-mve-16bit rename to ffmpeg-y/tests/ref/fate/interplay-mve-16bit diff --git a/tests/ref/fate/interplay-mve-8bit b/ffmpeg-y/tests/ref/fate/interplay-mve-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/interplay-mve-8bit rename to ffmpeg-y/tests/ref/fate/interplay-mve-8bit diff --git a/tests/ref/fate/iscc b/ffmpeg-y/tests/ref/fate/iscc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iscc rename to ffmpeg-y/tests/ref/fate/iscc diff --git a/tests/ref/fate/iv8-demux b/ffmpeg-y/tests/ref/fate/iv8-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/iv8-demux rename to ffmpeg-y/tests/ref/fate/iv8-demux diff --git a/tests/ref/fate/j2k-dwt b/ffmpeg-y/tests/ref/fate/j2k-dwt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/j2k-dwt rename to ffmpeg-y/tests/ref/fate/j2k-dwt diff --git a/tests/ref/fate/jpeg2000-dcinema b/ffmpeg-y/tests/ref/fate/jpeg2000-dcinema old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/jpeg2000-dcinema rename to ffmpeg-y/tests/ref/fate/jpeg2000-dcinema diff --git a/tests/ref/fate/jpg-12bpp b/ffmpeg-y/tests/ref/fate/jpg-12bpp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/jpg-12bpp rename to ffmpeg-y/tests/ref/fate/jpg-12bpp diff --git a/tests/ref/fate/jpg-jfif b/ffmpeg-y/tests/ref/fate/jpg-jfif old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/jpg-jfif rename to ffmpeg-y/tests/ref/fate/jpg-jfif diff --git a/tests/ref/fate/jv b/ffmpeg-y/tests/ref/fate/jv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/jv rename to ffmpeg-y/tests/ref/fate/jv diff --git a/tests/ref/fate/jv-demux b/ffmpeg-y/tests/ref/fate/jv-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/jv-demux rename to ffmpeg-y/tests/ref/fate/jv-demux diff --git a/tests/ref/fate/kgv1 b/ffmpeg-y/tests/ref/fate/kgv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/kgv1 rename to ffmpeg-y/tests/ref/fate/kgv1 diff --git a/tests/ref/fate/kmvc b/ffmpeg-y/tests/ref/fate/kmvc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/kmvc rename to ffmpeg-y/tests/ref/fate/kmvc diff --git a/tests/ref/fate/lagarith-red b/ffmpeg-y/tests/ref/fate/lagarith-red old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-red rename to ffmpeg-y/tests/ref/fate/lagarith-red diff --git a/tests/ref/fate/lagarith-rgb24 b/ffmpeg-y/tests/ref/fate/lagarith-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-rgb24 rename to ffmpeg-y/tests/ref/fate/lagarith-rgb24 diff --git a/tests/ref/fate/lagarith-rgb32 b/ffmpeg-y/tests/ref/fate/lagarith-rgb32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-rgb32 rename to ffmpeg-y/tests/ref/fate/lagarith-rgb32 diff --git a/tests/ref/fate/lagarith-ticket4119 b/ffmpeg-y/tests/ref/fate/lagarith-ticket4119 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-ticket4119 rename to ffmpeg-y/tests/ref/fate/lagarith-ticket4119 diff --git a/tests/ref/fate/lagarith-ticket4119-cfr b/ffmpeg-y/tests/ref/fate/lagarith-ticket4119-cfr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-ticket4119-cfr rename to ffmpeg-y/tests/ref/fate/lagarith-ticket4119-cfr diff --git a/tests/ref/fate/lagarith-ticket4119-drop b/ffmpeg-y/tests/ref/fate/lagarith-ticket4119-drop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-ticket4119-drop rename to ffmpeg-y/tests/ref/fate/lagarith-ticket4119-drop diff --git a/tests/ref/fate/lagarith-ticket4119-pass b/ffmpeg-y/tests/ref/fate/lagarith-ticket4119-pass old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-ticket4119-pass rename to ffmpeg-y/tests/ref/fate/lagarith-ticket4119-pass diff --git a/tests/ref/fate/lagarith-ticket4119-vfr b/ffmpeg-y/tests/ref/fate/lagarith-ticket4119-vfr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-ticket4119-vfr rename to ffmpeg-y/tests/ref/fate/lagarith-ticket4119-vfr diff --git a/tests/ref/fate/lagarith-yuy2 b/ffmpeg-y/tests/ref/fate/lagarith-yuy2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-yuy2 rename to ffmpeg-y/tests/ref/fate/lagarith-yuy2 diff --git a/tests/ref/fate/lagarith-yv12 b/ffmpeg-y/tests/ref/fate/lagarith-yv12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lagarith-yv12 rename to ffmpeg-y/tests/ref/fate/lagarith-yv12 diff --git a/tests/ref/fate/lfg b/ffmpeg-y/tests/ref/fate/lfg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lfg rename to ffmpeg-y/tests/ref/fate/lfg diff --git a/tests/ref/fate/libavcodec-htmlsubtitles b/ffmpeg-y/tests/ref/fate/libavcodec-htmlsubtitles old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/libavcodec-htmlsubtitles rename to ffmpeg-y/tests/ref/fate/libavcodec-htmlsubtitles diff --git a/tests/ref/fate/libavcodec-options b/ffmpeg-y/tests/ref/fate/libavcodec-options old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/libavcodec-options rename to ffmpeg-y/tests/ref/fate/libavcodec-options diff --git a/tests/ref/fate/limited_input_seek b/ffmpeg-y/tests/ref/fate/limited_input_seek old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/limited_input_seek rename to ffmpeg-y/tests/ref/fate/limited_input_seek diff --git a/tests/ref/fate/limited_input_seek-copyts b/ffmpeg-y/tests/ref/fate/limited_input_seek-copyts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/limited_input_seek-copyts rename to ffmpeg-y/tests/ref/fate/limited_input_seek-copyts diff --git a/tests/ref/fate/lmlm4-demux b/ffmpeg-y/tests/ref/fate/lmlm4-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lmlm4-demux rename to ffmpeg-y/tests/ref/fate/lmlm4-demux diff --git a/tests/ref/fate/loco-rgb b/ffmpeg-y/tests/ref/fate/loco-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/loco-rgb rename to ffmpeg-y/tests/ref/fate/loco-rgb diff --git a/tests/ref/fate/loco-yuy2 b/ffmpeg-y/tests/ref/fate/loco-yuy2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/loco-yuy2 rename to ffmpeg-y/tests/ref/fate/loco-yuy2 diff --git a/tests/ref/fate/lossless-alac b/ffmpeg-y/tests/ref/fate/lossless-alac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-alac rename to ffmpeg-y/tests/ref/fate/lossless-alac diff --git a/tests/ref/fate/lossless-meridianaudio b/ffmpeg-y/tests/ref/fate/lossless-meridianaudio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-meridianaudio rename to ffmpeg-y/tests/ref/fate/lossless-meridianaudio diff --git a/tests/ref/fate/lossless-monkeysaudio-399 b/ffmpeg-y/tests/ref/fate/lossless-monkeysaudio-399 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-monkeysaudio-399 rename to ffmpeg-y/tests/ref/fate/lossless-monkeysaudio-399 diff --git a/tests/ref/fate/lossless-shorten b/ffmpeg-y/tests/ref/fate/lossless-shorten old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-shorten rename to ffmpeg-y/tests/ref/fate/lossless-shorten diff --git a/tests/ref/fate/lossless-tak b/ffmpeg-y/tests/ref/fate/lossless-tak old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-tak rename to ffmpeg-y/tests/ref/fate/lossless-tak diff --git a/tests/ref/fate/lossless-truehd-5.1 b/ffmpeg-y/tests/ref/fate/lossless-truehd-5.1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-truehd-5.1 rename to ffmpeg-y/tests/ref/fate/lossless-truehd-5.1 diff --git a/tests/ref/fate/lossless-truehd-5.1-downmix-2.0 b/ffmpeg-y/tests/ref/fate/lossless-truehd-5.1-downmix-2.0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-truehd-5.1-downmix-2.0 rename to ffmpeg-y/tests/ref/fate/lossless-truehd-5.1-downmix-2.0 diff --git a/tests/ref/fate/lossless-tta b/ffmpeg-y/tests/ref/fate/lossless-tta old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-tta rename to ffmpeg-y/tests/ref/fate/lossless-tta diff --git a/tests/ref/fate/lossless-tta-encrypted b/ffmpeg-y/tests/ref/fate/lossless-tta-encrypted old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-tta-encrypted rename to ffmpeg-y/tests/ref/fate/lossless-tta-encrypted diff --git a/tests/ref/fate/lossless-wma b/ffmpeg-y/tests/ref/fate/lossless-wma old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-wma rename to ffmpeg-y/tests/ref/fate/lossless-wma diff --git a/tests/ref/fate/lossless-wma24-1 b/ffmpeg-y/tests/ref/fate/lossless-wma24-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-wma24-1 rename to ffmpeg-y/tests/ref/fate/lossless-wma24-1 diff --git a/tests/ref/fate/lossless-wma24-2 b/ffmpeg-y/tests/ref/fate/lossless-wma24-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-wma24-2 rename to ffmpeg-y/tests/ref/fate/lossless-wma24-2 diff --git a/tests/ref/fate/lossless-wma24-rawtile b/ffmpeg-y/tests/ref/fate/lossless-wma24-rawtile old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/lossless-wma24-rawtile rename to ffmpeg-y/tests/ref/fate/lossless-wma24-rawtile diff --git a/tests/ref/fate/m4v b/ffmpeg-y/tests/ref/fate/m4v old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/m4v rename to ffmpeg-y/tests/ref/fate/m4v diff --git a/tests/ref/fate/m4v-cfr b/ffmpeg-y/tests/ref/fate/m4v-cfr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/m4v-cfr rename to ffmpeg-y/tests/ref/fate/m4v-cfr diff --git a/tests/ref/fate/magicyuv-rgb b/ffmpeg-y/tests/ref/fate/magicyuv-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-rgb rename to ffmpeg-y/tests/ref/fate/magicyuv-rgb diff --git a/tests/ref/fate/magicyuv-rgba b/ffmpeg-y/tests/ref/fate/magicyuv-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-rgba rename to ffmpeg-y/tests/ref/fate/magicyuv-rgba diff --git a/tests/ref/fate/magicyuv-y400i b/ffmpeg-y/tests/ref/fate/magicyuv-y400i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-y400i rename to ffmpeg-y/tests/ref/fate/magicyuv-y400i diff --git a/tests/ref/fate/magicyuv-y420 b/ffmpeg-y/tests/ref/fate/magicyuv-y420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-y420 rename to ffmpeg-y/tests/ref/fate/magicyuv-y420 diff --git a/tests/ref/fate/magicyuv-y422i b/ffmpeg-y/tests/ref/fate/magicyuv-y422i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-y422i rename to ffmpeg-y/tests/ref/fate/magicyuv-y422i diff --git a/tests/ref/fate/magicyuv-y444 b/ffmpeg-y/tests/ref/fate/magicyuv-y444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-y444 rename to ffmpeg-y/tests/ref/fate/magicyuv-y444 diff --git a/tests/ref/fate/magicyuv-y4444i b/ffmpeg-y/tests/ref/fate/magicyuv-y4444i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/magicyuv-y4444i rename to ffmpeg-y/tests/ref/fate/magicyuv-y4444i diff --git a/tests/ref/fate/mapchan-2ch-extract-ch0-ch2-trailing b/ffmpeg-y/tests/ref/fate/mapchan-2ch-extract-ch0-ch2-trailing old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mapchan-2ch-extract-ch0-ch2-trailing rename to ffmpeg-y/tests/ref/fate/mapchan-2ch-extract-ch0-ch2-trailing diff --git a/tests/ref/fate/mapchan-3ch-extract-ch0-ch2-trailing b/ffmpeg-y/tests/ref/fate/mapchan-3ch-extract-ch0-ch2-trailing old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mapchan-3ch-extract-ch0-ch2-trailing rename to ffmpeg-y/tests/ref/fate/mapchan-3ch-extract-ch0-ch2-trailing diff --git a/tests/ref/fate/mapchan-6ch-extract-2 b/ffmpeg-y/tests/ref/fate/mapchan-6ch-extract-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mapchan-6ch-extract-2 rename to ffmpeg-y/tests/ref/fate/mapchan-6ch-extract-2 diff --git a/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono b/ffmpeg-y/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mapchan-6ch-extract-2-downmix-mono rename to ffmpeg-y/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono diff --git a/tests/ref/fate/mapchan-silent-mono b/ffmpeg-y/tests/ref/fate/mapchan-silent-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mapchan-silent-mono rename to ffmpeg-y/tests/ref/fate/mapchan-silent-mono diff --git a/tests/ref/fate/matroska-spherical-mono b/ffmpeg-y/tests/ref/fate/matroska-spherical-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/matroska-spherical-mono rename to ffmpeg-y/tests/ref/fate/matroska-spherical-mono diff --git a/tests/ref/fate/maxis-xa b/ffmpeg-y/tests/ref/fate/maxis-xa old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/maxis-xa rename to ffmpeg-y/tests/ref/fate/maxis-xa diff --git a/tests/ref/fate/md5 b/ffmpeg-y/tests/ref/fate/md5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/md5 rename to ffmpeg-y/tests/ref/fate/md5 diff --git a/tests/ref/fate/mdec b/ffmpeg-y/tests/ref/fate/mdec old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mdec rename to ffmpeg-y/tests/ref/fate/mdec diff --git a/tests/ref/fate/mdec-v3 b/ffmpeg-y/tests/ref/fate/mdec-v3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mdec-v3 rename to ffmpeg-y/tests/ref/fate/mdec-v3 diff --git a/tests/ref/fate/mimic b/ffmpeg-y/tests/ref/fate/mimic old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mimic rename to ffmpeg-y/tests/ref/fate/mimic diff --git a/tests/ref/fate/mjpegb b/ffmpeg-y/tests/ref/fate/mjpegb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mjpegb rename to ffmpeg-y/tests/ref/fate/mjpegb diff --git a/tests/ref/fate/mkv b/ffmpeg-y/tests/ref/fate/mkv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mkv rename to ffmpeg-y/tests/ref/fate/mkv diff --git a/tests/ref/fate/mkv-1242 b/ffmpeg-y/tests/ref/fate/mkv-1242 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mkv-1242 rename to ffmpeg-y/tests/ref/fate/mkv-1242 diff --git a/tests/ref/fate/mlv-demux b/ffmpeg-y/tests/ref/fate/mlv-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mlv-demux rename to ffmpeg-y/tests/ref/fate/mlv-demux diff --git a/tests/ref/fate/motionpixels b/ffmpeg-y/tests/ref/fate/motionpixels old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/motionpixels rename to ffmpeg-y/tests/ref/fate/motionpixels diff --git a/tests/ref/fate/mov-1elist-1ctts b/ffmpeg-y/tests/ref/fate/mov-1elist-1ctts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-1elist-1ctts rename to ffmpeg-y/tests/ref/fate/mov-1elist-1ctts diff --git a/tests/ref/fate/mov-1elist-ends-last-bframe b/ffmpeg-y/tests/ref/fate/mov-1elist-ends-last-bframe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-1elist-ends-last-bframe rename to ffmpeg-y/tests/ref/fate/mov-1elist-ends-last-bframe diff --git a/tests/ref/fate/mov-1elist-noctts b/ffmpeg-y/tests/ref/fate/mov-1elist-noctts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-1elist-noctts rename to ffmpeg-y/tests/ref/fate/mov-1elist-noctts diff --git a/tests/ref/fate/mov-2elist-elist1-ends-bframe b/ffmpeg-y/tests/ref/fate/mov-2elist-elist1-ends-bframe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-2elist-elist1-ends-bframe rename to ffmpeg-y/tests/ref/fate/mov-2elist-elist1-ends-bframe diff --git a/tests/ref/fate/mov-3elist b/ffmpeg-y/tests/ref/fate/mov-3elist old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-3elist rename to ffmpeg-y/tests/ref/fate/mov-3elist diff --git a/tests/ref/fate/mov-3elist-1ctts b/ffmpeg-y/tests/ref/fate/mov-3elist-1ctts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-3elist-1ctts rename to ffmpeg-y/tests/ref/fate/mov-3elist-1ctts diff --git a/tests/ref/fate/mov-3elist-encrypted b/ffmpeg-y/tests/ref/fate/mov-3elist-encrypted old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-3elist-encrypted rename to ffmpeg-y/tests/ref/fate/mov-3elist-encrypted diff --git a/tests/ref/fate/mov-440hz-10ms b/ffmpeg-y/tests/ref/fate/mov-440hz-10ms old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-440hz-10ms rename to ffmpeg-y/tests/ref/fate/mov-440hz-10ms diff --git a/tests/ref/fate/mov-aac-2048-priming b/ffmpeg-y/tests/ref/fate/mov-aac-2048-priming old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-aac-2048-priming rename to ffmpeg-y/tests/ref/fate/mov-aac-2048-priming diff --git a/tests/ref/fate/mov-bbi-elst-starts-b b/ffmpeg-y/tests/ref/fate/mov-bbi-elst-starts-b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-bbi-elst-starts-b rename to ffmpeg-y/tests/ref/fate/mov-bbi-elst-starts-b diff --git a/tests/ref/fate/mov-displaymatrix b/ffmpeg-y/tests/ref/fate/mov-displaymatrix old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-displaymatrix rename to ffmpeg-y/tests/ref/fate/mov-displaymatrix diff --git a/tests/ref/fate/mov-elist-starts-ctts-2ndsample b/ffmpeg-y/tests/ref/fate/mov-elist-starts-ctts-2ndsample old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-elist-starts-ctts-2ndsample rename to ffmpeg-y/tests/ref/fate/mov-elist-starts-ctts-2ndsample diff --git a/tests/ref/fate/mov-elst-ends-betn-b-and-i b/ffmpeg-y/tests/ref/fate/mov-elst-ends-betn-b-and-i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-elst-ends-betn-b-and-i rename to ffmpeg-y/tests/ref/fate/mov-elst-ends-betn-b-and-i diff --git a/tests/ref/fate/mov-frag-encrypted b/ffmpeg-y/tests/ref/fate/mov-frag-encrypted old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-frag-encrypted rename to ffmpeg-y/tests/ref/fate/mov-frag-encrypted diff --git a/tests/ref/fate/mov-frag-overlap b/ffmpeg-y/tests/ref/fate/mov-frag-overlap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-frag-overlap rename to ffmpeg-y/tests/ref/fate/mov-frag-overlap diff --git a/tests/ref/fate/mov-guess-delay-1 b/ffmpeg-y/tests/ref/fate/mov-guess-delay-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-guess-delay-1 rename to ffmpeg-y/tests/ref/fate/mov-guess-delay-1 diff --git a/tests/ref/fate/mov-guess-delay-2 b/ffmpeg-y/tests/ref/fate/mov-guess-delay-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-guess-delay-2 rename to ffmpeg-y/tests/ref/fate/mov-guess-delay-2 diff --git a/tests/ref/fate/mov-guess-delay-3 b/ffmpeg-y/tests/ref/fate/mov-guess-delay-3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-guess-delay-3 rename to ffmpeg-y/tests/ref/fate/mov-guess-delay-3 diff --git a/tests/ref/fate/mov-ibi-elst-starts-b b/ffmpeg-y/tests/ref/fate/mov-ibi-elst-starts-b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-ibi-elst-starts-b rename to ffmpeg-y/tests/ref/fate/mov-ibi-elst-starts-b diff --git a/tests/ref/fate/mov-init-nonkeyframe b/ffmpeg-y/tests/ref/fate/mov-init-nonkeyframe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-init-nonkeyframe rename to ffmpeg-y/tests/ref/fate/mov-init-nonkeyframe diff --git a/tests/ref/fate/mov-invalid-elst-entry-count b/ffmpeg-y/tests/ref/fate/mov-invalid-elst-entry-count old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-invalid-elst-entry-count rename to ffmpeg-y/tests/ref/fate/mov-invalid-elst-entry-count diff --git a/tests/ref/fate/mov-mp3-demux b/ffmpeg-y/tests/ref/fate/mov-mp3-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-mp3-demux rename to ffmpeg-y/tests/ref/fate/mov-mp3-demux diff --git a/tests/ref/fate/mov-mp4-with-mov-in24-ver b/ffmpeg-y/tests/ref/fate/mov-mp4-with-mov-in24-ver old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-mp4-with-mov-in24-ver rename to ffmpeg-y/tests/ref/fate/mov-mp4-with-mov-in24-ver diff --git a/tests/ref/fate/mov-neg-firstpts-discard b/ffmpeg-y/tests/ref/fate/mov-neg-firstpts-discard old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-neg-firstpts-discard rename to ffmpeg-y/tests/ref/fate/mov-neg-firstpts-discard diff --git a/tests/ref/fate/mov-neg-firstpts-discard-frames b/ffmpeg-y/tests/ref/fate/mov-neg-firstpts-discard-frames old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-neg-firstpts-discard-frames rename to ffmpeg-y/tests/ref/fate/mov-neg-firstpts-discard-frames diff --git a/tests/ref/fate/mov-neg-firstpts-discard-vorbis b/ffmpeg-y/tests/ref/fate/mov-neg-firstpts-discard-vorbis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-neg-firstpts-discard-vorbis rename to ffmpeg-y/tests/ref/fate/mov-neg-firstpts-discard-vorbis diff --git a/tests/ref/fate/mov-spherical-mono b/ffmpeg-y/tests/ref/fate/mov-spherical-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-spherical-mono rename to ffmpeg-y/tests/ref/fate/mov-spherical-mono diff --git a/tests/ref/fate/mov-stream-shorter-than-movie b/ffmpeg-y/tests/ref/fate/mov-stream-shorter-than-movie old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-stream-shorter-than-movie rename to ffmpeg-y/tests/ref/fate/mov-stream-shorter-than-movie diff --git a/tests/ref/fate/mov-tenc-only-encrypted b/ffmpeg-y/tests/ref/fate/mov-tenc-only-encrypted old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-tenc-only-encrypted rename to ffmpeg-y/tests/ref/fate/mov-tenc-only-encrypted diff --git a/tests/ref/fate/mov-zombie b/ffmpeg-y/tests/ref/fate/mov-zombie old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mov-zombie rename to ffmpeg-y/tests/ref/fate/mov-zombie diff --git a/tests/ref/fate/movenc b/ffmpeg-y/tests/ref/fate/movenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/movenc rename to ffmpeg-y/tests/ref/fate/movenc diff --git a/tests/ref/fate/mpc7-demux b/ffmpeg-y/tests/ref/fate/mpc7-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpc7-demux rename to ffmpeg-y/tests/ref/fate/mpc7-demux diff --git a/tests/ref/fate/mpc8-demux b/ffmpeg-y/tests/ref/fate/mpc8-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpc8-demux rename to ffmpeg-y/tests/ref/fate/mpc8-demux diff --git a/tests/ref/fate/mpeg2-field-enc b/ffmpeg-y/tests/ref/fate/mpeg2-field-enc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg2-field-enc rename to ffmpeg-y/tests/ref/fate/mpeg2-field-enc diff --git a/tests/ref/fate/mpeg2-ticket186 b/ffmpeg-y/tests/ref/fate/mpeg2-ticket186 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg2-ticket186 rename to ffmpeg-y/tests/ref/fate/mpeg2-ticket186 diff --git a/tests/ref/fate/mpeg2-ticket6024 b/ffmpeg-y/tests/ref/fate/mpeg2-ticket6024 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg2-ticket6024 rename to ffmpeg-y/tests/ref/fate/mpeg2-ticket6024 diff --git a/tests/ref/fate/mpeg2-ticket6677 b/ffmpeg-y/tests/ref/fate/mpeg2-ticket6677 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg2-ticket6677 rename to ffmpeg-y/tests/ref/fate/mpeg2-ticket6677 diff --git a/tests/ref/fate/mpeg4-als-conformance-00 b/ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-00 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-als-conformance-00 rename to ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-00 diff --git a/tests/ref/fate/mpeg4-als-conformance-01 b/ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-01 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-als-conformance-01 rename to ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-01 diff --git a/tests/ref/fate/mpeg4-als-conformance-02 b/ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-02 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-als-conformance-02 rename to ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-02 diff --git a/tests/ref/fate/mpeg4-als-conformance-03 b/ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-03 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-als-conformance-03 rename to ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-03 diff --git a/tests/ref/fate/mpeg4-als-conformance-04 b/ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-04 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-als-conformance-04 rename to ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-04 diff --git a/tests/ref/fate/mpeg4-als-conformance-05 b/ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-05 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-als-conformance-05 rename to ffmpeg-y/tests/ref/fate/mpeg4-als-conformance-05 diff --git a/tests/ref/fate/mpeg4-bsf-unpack-bframes b/ffmpeg-y/tests/ref/fate/mpeg4-bsf-unpack-bframes old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-bsf-unpack-bframes rename to ffmpeg-y/tests/ref/fate/mpeg4-bsf-unpack-bframes diff --git a/tests/ref/fate/mpeg4-packed b/ffmpeg-y/tests/ref/fate/mpeg4-packed old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-packed rename to ffmpeg-y/tests/ref/fate/mpeg4-packed diff --git a/tests/ref/fate/mpeg4-resolution-change-down-down b/ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-down-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-resolution-change-down-down rename to ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-down-down diff --git a/tests/ref/fate/mpeg4-resolution-change-down-up b/ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-down-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-resolution-change-down-up rename to ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-down-up diff --git a/tests/ref/fate/mpeg4-resolution-change-up-down b/ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-up-down old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-resolution-change-up-down rename to ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-up-down diff --git a/tests/ref/fate/mpeg4-resolution-change-up-up b/ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-up-up old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpeg4-resolution-change-up-up rename to ffmpeg-y/tests/ref/fate/mpeg4-resolution-change-up-up diff --git a/tests/ref/fate/mpegps-remuxed-pcm-demux b/ffmpeg-y/tests/ref/fate/mpegps-remuxed-pcm-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpegps-remuxed-pcm-demux rename to ffmpeg-y/tests/ref/fate/mpegps-remuxed-pcm-demux diff --git a/tests/ref/fate/mpegts-probe-latm b/ffmpeg-y/tests/ref/fate/mpegts-probe-latm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpegts-probe-latm rename to ffmpeg-y/tests/ref/fate/mpegts-probe-latm diff --git a/tests/ref/fate/mpegts-probe-pmt-merge b/ffmpeg-y/tests/ref/fate/mpegts-probe-pmt-merge old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpegts-probe-pmt-merge rename to ffmpeg-y/tests/ref/fate/mpegts-probe-pmt-merge diff --git a/tests/ref/fate/mpegts-probe-program b/ffmpeg-y/tests/ref/fate/mpegts-probe-program old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mpegts-probe-program rename to ffmpeg-y/tests/ref/fate/mpegts-probe-program diff --git a/tests/ref/fate/msmpeg4v1 b/ffmpeg-y/tests/ref/fate/msmpeg4v1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/msmpeg4v1 rename to ffmpeg-y/tests/ref/fate/msmpeg4v1 diff --git a/tests/ref/fate/msrle-8bit b/ffmpeg-y/tests/ref/fate/msrle-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/msrle-8bit rename to ffmpeg-y/tests/ref/fate/msrle-8bit diff --git a/tests/ref/fate/mss1-pal b/ffmpeg-y/tests/ref/fate/mss1-pal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mss1-pal rename to ffmpeg-y/tests/ref/fate/mss1-pal diff --git a/tests/ref/fate/mss2-pal b/ffmpeg-y/tests/ref/fate/mss2-pal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mss2-pal rename to ffmpeg-y/tests/ref/fate/mss2-pal diff --git a/tests/ref/fate/mss2-pals b/ffmpeg-y/tests/ref/fate/mss2-pals old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mss2-pals rename to ffmpeg-y/tests/ref/fate/mss2-pals diff --git a/tests/ref/fate/mss2-rgb555 b/ffmpeg-y/tests/ref/fate/mss2-rgb555 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mss2-rgb555 rename to ffmpeg-y/tests/ref/fate/mss2-rgb555 diff --git a/tests/ref/fate/mss2-rgb555s b/ffmpeg-y/tests/ref/fate/mss2-rgb555s old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mss2-rgb555s rename to ffmpeg-y/tests/ref/fate/mss2-rgb555s diff --git a/tests/ref/fate/mss2-wmv b/ffmpeg-y/tests/ref/fate/mss2-wmv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mss2-wmv rename to ffmpeg-y/tests/ref/fate/mss2-wmv diff --git a/tests/ref/fate/msvideo1-16bit b/ffmpeg-y/tests/ref/fate/msvideo1-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/msvideo1-16bit rename to ffmpeg-y/tests/ref/fate/msvideo1-16bit diff --git a/tests/ref/fate/msvideo1-8bit b/ffmpeg-y/tests/ref/fate/msvideo1-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/msvideo1-8bit rename to ffmpeg-y/tests/ref/fate/msvideo1-8bit diff --git a/tests/ref/fate/mszh b/ffmpeg-y/tests/ref/fate/mszh old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mszh rename to ffmpeg-y/tests/ref/fate/mszh diff --git a/tests/ref/fate/mts2 b/ffmpeg-y/tests/ref/fate/mts2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mts2 rename to ffmpeg-y/tests/ref/fate/mts2 diff --git a/tests/ref/fate/mts2-xesc b/ffmpeg-y/tests/ref/fate/mts2-xesc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mts2-xesc rename to ffmpeg-y/tests/ref/fate/mts2-xesc diff --git a/tests/ref/fate/mtv b/ffmpeg-y/tests/ref/fate/mtv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mtv rename to ffmpeg-y/tests/ref/fate/mtv diff --git a/tests/ref/fate/murmur3 b/ffmpeg-y/tests/ref/fate/murmur3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/murmur3 rename to ffmpeg-y/tests/ref/fate/murmur3 diff --git a/tests/ref/fate/mv-mvc1 b/ffmpeg-y/tests/ref/fate/mv-mvc1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mv-mvc1 rename to ffmpeg-y/tests/ref/fate/mv-mvc1 diff --git a/tests/ref/fate/mv-mvc2 b/ffmpeg-y/tests/ref/fate/mv-mvc2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mv-mvc2 rename to ffmpeg-y/tests/ref/fate/mv-mvc2 diff --git a/tests/ref/fate/mv-sgirle b/ffmpeg-y/tests/ref/fate/mv-sgirle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mv-sgirle rename to ffmpeg-y/tests/ref/fate/mv-sgirle diff --git a/tests/ref/fate/mxf-d10-user-comments b/ffmpeg-y/tests/ref/fate/mxf-d10-user-comments old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-d10-user-comments rename to ffmpeg-y/tests/ref/fate/mxf-d10-user-comments diff --git a/tests/ref/fate/mxf-demux b/ffmpeg-y/tests/ref/fate/mxf-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-demux rename to ffmpeg-y/tests/ref/fate/mxf-demux diff --git a/tests/ref/fate/mxf-essencegroup-demux b/ffmpeg-y/tests/ref/fate/mxf-essencegroup-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-essencegroup-demux rename to ffmpeg-y/tests/ref/fate/mxf-essencegroup-demux diff --git a/tests/ref/fate/mxf-metadata-source-ref1 b/ffmpeg-y/tests/ref/fate/mxf-metadata-source-ref1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-metadata-source-ref1 rename to ffmpeg-y/tests/ref/fate/mxf-metadata-source-ref1 diff --git a/tests/ref/fate/mxf-metadata-source-ref2 b/ffmpeg-y/tests/ref/fate/mxf-metadata-source-ref2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-metadata-source-ref2 rename to ffmpeg-y/tests/ref/fate/mxf-metadata-source-ref2 diff --git a/tests/ref/fate/mxf-missing-index-demux b/ffmpeg-y/tests/ref/fate/mxf-missing-index-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-missing-index-demux rename to ffmpeg-y/tests/ref/fate/mxf-missing-index-demux diff --git a/tests/ref/fate/mxf-multiple-components-demux b/ffmpeg-y/tests/ref/fate/mxf-multiple-components-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-multiple-components-demux rename to ffmpeg-y/tests/ref/fate/mxf-multiple-components-demux diff --git a/tests/ref/fate/mxf-opatom-user-comments b/ffmpeg-y/tests/ref/fate/mxf-opatom-user-comments old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-opatom-user-comments rename to ffmpeg-y/tests/ref/fate/mxf-opatom-user-comments diff --git a/tests/ref/fate/mxf-probe-d10 b/ffmpeg-y/tests/ref/fate/mxf-probe-d10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-probe-d10 rename to ffmpeg-y/tests/ref/fate/mxf-probe-d10 diff --git a/tests/ref/fate/mxf-probe-dnxhd b/ffmpeg-y/tests/ref/fate/mxf-probe-dnxhd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-probe-dnxhd rename to ffmpeg-y/tests/ref/fate/mxf-probe-dnxhd diff --git a/tests/ref/fate/mxf-probe-dv25 b/ffmpeg-y/tests/ref/fate/mxf-probe-dv25 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-probe-dv25 rename to ffmpeg-y/tests/ref/fate/mxf-probe-dv25 diff --git a/tests/ref/fate/mxf-reel_name b/ffmpeg-y/tests/ref/fate/mxf-reel_name old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-reel_name rename to ffmpeg-y/tests/ref/fate/mxf-reel_name diff --git a/tests/ref/fate/mxf-user-comments b/ffmpeg-y/tests/ref/fate/mxf-user-comments old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxf-user-comments rename to ffmpeg-y/tests/ref/fate/mxf-user-comments diff --git a/tests/ref/fate/mxpeg b/ffmpeg-y/tests/ref/fate/mxpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/mxpeg rename to ffmpeg-y/tests/ref/fate/mxpeg diff --git a/tests/ref/fate/nc-demux b/ffmpeg-y/tests/ref/fate/nc-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/nc-demux rename to ffmpeg-y/tests/ref/fate/nc-demux diff --git a/tests/ref/fate/nistsphere-demux b/ffmpeg-y/tests/ref/fate/nistsphere-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/nistsphere-demux rename to ffmpeg-y/tests/ref/fate/nistsphere-demux diff --git a/tests/ref/fate/noproxy b/ffmpeg-y/tests/ref/fate/noproxy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/noproxy rename to ffmpeg-y/tests/ref/fate/noproxy diff --git a/tests/ref/fate/nsv-demux b/ffmpeg-y/tests/ref/fate/nsv-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/nsv-demux rename to ffmpeg-y/tests/ref/fate/nsv-demux diff --git a/tests/ref/fate/nuv-rtjpeg b/ffmpeg-y/tests/ref/fate/nuv-rtjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/nuv-rtjpeg rename to ffmpeg-y/tests/ref/fate/nuv-rtjpeg diff --git a/tests/ref/fate/nuv-rtjpeg-fh b/ffmpeg-y/tests/ref/fate/nuv-rtjpeg-fh old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/nuv-rtjpeg-fh rename to ffmpeg-y/tests/ref/fate/nuv-rtjpeg-fh diff --git a/tests/ref/fate/oggopus-demux b/ffmpeg-y/tests/ref/fate/oggopus-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/oggopus-demux rename to ffmpeg-y/tests/ref/fate/oggopus-demux diff --git a/tests/ref/fate/oggvp8-demux b/ffmpeg-y/tests/ref/fate/oggvp8-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/oggvp8-demux rename to ffmpeg-y/tests/ref/fate/oggvp8-demux diff --git a/tests/ref/fate/oma-demux b/ffmpeg-y/tests/ref/fate/oma-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/oma-demux rename to ffmpeg-y/tests/ref/fate/oma-demux diff --git a/tests/ref/fate/on2avc b/ffmpeg-y/tests/ref/fate/on2avc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/on2avc rename to ffmpeg-y/tests/ref/fate/on2avc diff --git a/tests/ref/fate/opt b/ffmpeg-y/tests/ref/fate/opt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/opt rename to ffmpeg-y/tests/ref/fate/opt diff --git a/tests/ref/fate/paf-audio b/ffmpeg-y/tests/ref/fate/paf-audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/paf-audio rename to ffmpeg-y/tests/ref/fate/paf-audio diff --git a/tests/ref/fate/paf-demux b/ffmpeg-y/tests/ref/fate/paf-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/paf-demux rename to ffmpeg-y/tests/ref/fate/paf-demux diff --git a/tests/ref/fate/paf-video b/ffmpeg-y/tests/ref/fate/paf-video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/paf-video rename to ffmpeg-y/tests/ref/fate/paf-video diff --git a/tests/ref/fate/parseutils b/ffmpeg-y/tests/ref/fate/parseutils old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/parseutils rename to ffmpeg-y/tests/ref/fate/parseutils diff --git a/tests/ref/fate/pcm-planar b/ffmpeg-y/tests/ref/fate/pcm-planar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pcm-planar rename to ffmpeg-y/tests/ref/fate/pcm-planar diff --git a/tests/ref/fate/pcm_dvd b/ffmpeg-y/tests/ref/fate/pcm_dvd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pcm_dvd rename to ffmpeg-y/tests/ref/fate/pcm_dvd diff --git a/tests/ref/fate/pcm_s16be-stereo b/ffmpeg-y/tests/ref/fate/pcm_s16be-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pcm_s16be-stereo rename to ffmpeg-y/tests/ref/fate/pcm_s16be-stereo diff --git a/tests/ref/fate/pcm_s16le-stereo b/ffmpeg-y/tests/ref/fate/pcm_s16le-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pcm_s16le-stereo rename to ffmpeg-y/tests/ref/fate/pcm_s16le-stereo diff --git a/tests/ref/fate/pcm_u8-mono b/ffmpeg-y/tests/ref/fate/pcm_u8-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pcm_u8-mono rename to ffmpeg-y/tests/ref/fate/pcm_u8-mono diff --git a/tests/ref/fate/pcm_u8-stereo b/ffmpeg-y/tests/ref/fate/pcm_u8-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pcm_u8-stereo rename to ffmpeg-y/tests/ref/fate/pcm_u8-stereo diff --git a/tests/ref/fate/pict b/ffmpeg-y/tests/ref/fate/pict old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pict rename to ffmpeg-y/tests/ref/fate/pict diff --git a/tests/ref/fate/pictor b/ffmpeg-y/tests/ref/fate/pictor old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pictor rename to ffmpeg-y/tests/ref/fate/pictor diff --git a/tests/ref/fate/pixelutils b/ffmpeg-y/tests/ref/fate/pixelutils old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pixelutils rename to ffmpeg-y/tests/ref/fate/pixelutils diff --git a/tests/ref/fate/pixfmt_best b/ffmpeg-y/tests/ref/fate/pixfmt_best old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pixfmt_best rename to ffmpeg-y/tests/ref/fate/pixfmt_best diff --git a/tests/ref/fate/pixlet-rgb b/ffmpeg-y/tests/ref/fate/pixlet-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pixlet-rgb rename to ffmpeg-y/tests/ref/fate/pixlet-rgb diff --git a/tests/ref/fate/pmp-demux b/ffmpeg-y/tests/ref/fate/pmp-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pmp-demux rename to ffmpeg-y/tests/ref/fate/pmp-demux diff --git a/tests/ref/fate/png-gray16 b/ffmpeg-y/tests/ref/fate/png-gray16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-gray16 rename to ffmpeg-y/tests/ref/fate/png-gray16 diff --git a/tests/ref/fate/png-gray8 b/ffmpeg-y/tests/ref/fate/png-gray8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-gray8 rename to ffmpeg-y/tests/ref/fate/png-gray8 diff --git a/tests/ref/fate/png-int-rgb24 b/ffmpeg-y/tests/ref/fate/png-int-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-int-rgb24 rename to ffmpeg-y/tests/ref/fate/png-int-rgb24 diff --git a/tests/ref/fate/png-rgb24 b/ffmpeg-y/tests/ref/fate/png-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-rgb24 rename to ffmpeg-y/tests/ref/fate/png-rgb24 diff --git a/tests/ref/fate/png-rgb48 b/ffmpeg-y/tests/ref/fate/png-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-rgb48 rename to ffmpeg-y/tests/ref/fate/png-rgb48 diff --git a/tests/ref/fate/png-rgba b/ffmpeg-y/tests/ref/fate/png-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-rgba rename to ffmpeg-y/tests/ref/fate/png-rgba diff --git a/tests/ref/fate/png-rgba64 b/ffmpeg-y/tests/ref/fate/png-rgba64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-rgba64 rename to ffmpeg-y/tests/ref/fate/png-rgba64 diff --git a/tests/ref/fate/png-ya16 b/ffmpeg-y/tests/ref/fate/png-ya16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-ya16 rename to ffmpeg-y/tests/ref/fate/png-ya16 diff --git a/tests/ref/fate/png-ya8 b/ffmpeg-y/tests/ref/fate/png-ya8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/png-ya8 rename to ffmpeg-y/tests/ref/fate/png-ya8 diff --git a/tests/ref/fate/pngparser b/ffmpeg-y/tests/ref/fate/pngparser old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pngparser rename to ffmpeg-y/tests/ref/fate/pngparser diff --git a/tests/ref/fate/prores-422 b/ffmpeg-y/tests/ref/fate/prores-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-422 rename to ffmpeg-y/tests/ref/fate/prores-422 diff --git a/tests/ref/fate/prores-422_hq b/ffmpeg-y/tests/ref/fate/prores-422_hq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-422_hq rename to ffmpeg-y/tests/ref/fate/prores-422_hq diff --git a/tests/ref/fate/prores-422_lt b/ffmpeg-y/tests/ref/fate/prores-422_lt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-422_lt rename to ffmpeg-y/tests/ref/fate/prores-422_lt diff --git a/tests/ref/fate/prores-422_proxy b/ffmpeg-y/tests/ref/fate/prores-422_proxy old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-422_proxy rename to ffmpeg-y/tests/ref/fate/prores-422_proxy diff --git a/tests/ref/fate/prores-alpha b/ffmpeg-y/tests/ref/fate/prores-alpha old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-alpha rename to ffmpeg-y/tests/ref/fate/prores-alpha diff --git a/tests/ref/fate/prores-alpha_skip b/ffmpeg-y/tests/ref/fate/prores-alpha_skip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-alpha_skip rename to ffmpeg-y/tests/ref/fate/prores-alpha_skip diff --git a/tests/ref/fate/prores-gray b/ffmpeg-y/tests/ref/fate/prores-gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-gray rename to ffmpeg-y/tests/ref/fate/prores-gray diff --git a/tests/ref/fate/prores-metadata b/ffmpeg-y/tests/ref/fate/prores-metadata old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-metadata rename to ffmpeg-y/tests/ref/fate/prores-metadata diff --git a/tests/ref/fate/prores-transparency b/ffmpeg-y/tests/ref/fate/prores-transparency old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-transparency rename to ffmpeg-y/tests/ref/fate/prores-transparency diff --git a/tests/ref/fate/prores-transparency_skip b/ffmpeg-y/tests/ref/fate/prores-transparency_skip old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/prores-transparency_skip rename to ffmpeg-y/tests/ref/fate/prores-transparency_skip diff --git a/tests/ref/fate/psd-duo-tone-color b/ffmpeg-y/tests/ref/fate/psd-duo-tone-color old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-duo-tone-color rename to ffmpeg-y/tests/ref/fate/psd-duo-tone-color diff --git a/tests/ref/fate/psd-gray16 b/ffmpeg-y/tests/ref/fate/psd-gray16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-gray16 rename to ffmpeg-y/tests/ref/fate/psd-gray16 diff --git a/tests/ref/fate/psd-gray8 b/ffmpeg-y/tests/ref/fate/psd-gray8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-gray8 rename to ffmpeg-y/tests/ref/fate/psd-gray8 diff --git a/tests/ref/fate/psd-lena-127x127-rgb24 b/ffmpeg-y/tests/ref/fate/psd-lena-127x127-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-lena-127x127-rgb24 rename to ffmpeg-y/tests/ref/fate/psd-lena-127x127-rgb24 diff --git a/tests/ref/fate/psd-lena-256c b/ffmpeg-y/tests/ref/fate/psd-lena-256c old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-lena-256c rename to ffmpeg-y/tests/ref/fate/psd-lena-256c diff --git a/tests/ref/fate/psd-lena-bitmap b/ffmpeg-y/tests/ref/fate/psd-lena-bitmap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-lena-bitmap rename to ffmpeg-y/tests/ref/fate/psd-lena-bitmap diff --git a/tests/ref/fate/psd-lena-rgb-rle-127x127-16b b/ffmpeg-y/tests/ref/fate/psd-lena-rgb-rle-127x127-16b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-lena-rgb-rle-127x127-16b rename to ffmpeg-y/tests/ref/fate/psd-lena-rgb-rle-127x127-16b diff --git a/tests/ref/fate/psd-lena-rgb-rle-127x127-8b b/ffmpeg-y/tests/ref/fate/psd-lena-rgb-rle-127x127-8b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-lena-rgb-rle-127x127-8b rename to ffmpeg-y/tests/ref/fate/psd-lena-rgb-rle-127x127-8b diff --git a/tests/ref/fate/psd-lena-rgba-rle-128x128-8b b/ffmpeg-y/tests/ref/fate/psd-lena-rgba-rle-128x128-8b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-lena-rgba-rle-128x128-8b rename to ffmpeg-y/tests/ref/fate/psd-lena-rgba-rle-128x128-8b diff --git a/tests/ref/fate/psd-rgb24 b/ffmpeg-y/tests/ref/fate/psd-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-rgb24 rename to ffmpeg-y/tests/ref/fate/psd-rgb24 diff --git a/tests/ref/fate/psd-rgb48 b/ffmpeg-y/tests/ref/fate/psd-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-rgb48 rename to ffmpeg-y/tests/ref/fate/psd-rgb48 diff --git a/tests/ref/fate/psd-rgba b/ffmpeg-y/tests/ref/fate/psd-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-rgba rename to ffmpeg-y/tests/ref/fate/psd-rgba diff --git a/tests/ref/fate/psd-rgba64 b/ffmpeg-y/tests/ref/fate/psd-rgba64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-rgba64 rename to ffmpeg-y/tests/ref/fate/psd-rgba64 diff --git a/tests/ref/fate/psd-ya16 b/ffmpeg-y/tests/ref/fate/psd-ya16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-ya16 rename to ffmpeg-y/tests/ref/fate/psd-ya16 diff --git a/tests/ref/fate/psd-ya8 b/ffmpeg-y/tests/ref/fate/psd-ya8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psd-ya8 rename to ffmpeg-y/tests/ref/fate/psd-ya8 diff --git a/tests/ref/fate/psx-str-demux b/ffmpeg-y/tests/ref/fate/psx-str-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/psx-str-demux rename to ffmpeg-y/tests/ref/fate/psx-str-demux diff --git a/tests/ref/fate/ptx b/ffmpeg-y/tests/ref/fate/ptx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ptx rename to ffmpeg-y/tests/ref/fate/ptx diff --git a/tests/ref/fate/pva-demux b/ffmpeg-y/tests/ref/fate/pva-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/pva-demux rename to ffmpeg-y/tests/ref/fate/pva-demux diff --git a/tests/ref/fate/qcp-demux b/ffmpeg-y/tests/ref/fate/qcp-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qcp-demux rename to ffmpeg-y/tests/ref/fate/qcp-demux diff --git a/tests/ref/fate/qpeg b/ffmpeg-y/tests/ref/fate/qpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qpeg rename to ffmpeg-y/tests/ref/fate/qpeg diff --git a/tests/ref/fate/qt-alaw-mono b/ffmpeg-y/tests/ref/fate/qt-alaw-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-alaw-mono rename to ffmpeg-y/tests/ref/fate/qt-alaw-mono diff --git a/tests/ref/fate/qt-alaw-stereo b/ffmpeg-y/tests/ref/fate/qt-alaw-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-alaw-stereo rename to ffmpeg-y/tests/ref/fate/qt-alaw-stereo diff --git a/tests/ref/fate/qt-ima4-mono b/ffmpeg-y/tests/ref/fate/qt-ima4-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-ima4-mono rename to ffmpeg-y/tests/ref/fate/qt-ima4-mono diff --git a/tests/ref/fate/qt-ima4-stereo b/ffmpeg-y/tests/ref/fate/qt-ima4-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-ima4-stereo rename to ffmpeg-y/tests/ref/fate/qt-ima4-stereo diff --git a/tests/ref/fate/qt-mac3-mono b/ffmpeg-y/tests/ref/fate/qt-mac3-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-mac3-mono rename to ffmpeg-y/tests/ref/fate/qt-mac3-mono diff --git a/tests/ref/fate/qt-mac3-stereo b/ffmpeg-y/tests/ref/fate/qt-mac3-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-mac3-stereo rename to ffmpeg-y/tests/ref/fate/qt-mac3-stereo diff --git a/tests/ref/fate/qt-mac6-mono b/ffmpeg-y/tests/ref/fate/qt-mac6-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-mac6-mono rename to ffmpeg-y/tests/ref/fate/qt-mac6-mono diff --git a/tests/ref/fate/qt-mac6-stereo b/ffmpeg-y/tests/ref/fate/qt-mac6-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-mac6-stereo rename to ffmpeg-y/tests/ref/fate/qt-mac6-stereo diff --git a/tests/ref/fate/qt-ulaw-mono b/ffmpeg-y/tests/ref/fate/qt-ulaw-mono old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-ulaw-mono rename to ffmpeg-y/tests/ref/fate/qt-ulaw-mono diff --git a/tests/ref/fate/qt-ulaw-stereo b/ffmpeg-y/tests/ref/fate/qt-ulaw-stereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qt-ulaw-stereo rename to ffmpeg-y/tests/ref/fate/qt-ulaw-stereo diff --git a/tests/ref/fate/qtrle-16bit b/ffmpeg-y/tests/ref/fate/qtrle-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-16bit rename to ffmpeg-y/tests/ref/fate/qtrle-16bit diff --git a/tests/ref/fate/qtrle-1bit b/ffmpeg-y/tests/ref/fate/qtrle-1bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-1bit rename to ffmpeg-y/tests/ref/fate/qtrle-1bit diff --git a/tests/ref/fate/qtrle-24bit b/ffmpeg-y/tests/ref/fate/qtrle-24bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-24bit rename to ffmpeg-y/tests/ref/fate/qtrle-24bit diff --git a/tests/ref/fate/qtrle-2bit b/ffmpeg-y/tests/ref/fate/qtrle-2bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-2bit rename to ffmpeg-y/tests/ref/fate/qtrle-2bit diff --git a/tests/ref/fate/qtrle-32bit b/ffmpeg-y/tests/ref/fate/qtrle-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-32bit rename to ffmpeg-y/tests/ref/fate/qtrle-32bit diff --git a/tests/ref/fate/qtrle-4bit b/ffmpeg-y/tests/ref/fate/qtrle-4bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-4bit rename to ffmpeg-y/tests/ref/fate/qtrle-4bit diff --git a/tests/ref/fate/qtrle-8bit b/ffmpeg-y/tests/ref/fate/qtrle-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/qtrle-8bit rename to ffmpeg-y/tests/ref/fate/qtrle-8bit diff --git a/tests/ref/fate/quickdraw b/ffmpeg-y/tests/ref/fate/quickdraw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/quickdraw rename to ffmpeg-y/tests/ref/fate/quickdraw diff --git a/tests/ref/fate/r210 b/ffmpeg-y/tests/ref/fate/r210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/r210 rename to ffmpeg-y/tests/ref/fate/r210 diff --git a/tests/ref/fate/ra-144 b/ffmpeg-y/tests/ref/fate/ra-144 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ra-144 rename to ffmpeg-y/tests/ref/fate/ra-144 diff --git a/tests/ref/fate/ra3-144 b/ffmpeg-y/tests/ref/fate/ra3-144 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ra3-144 rename to ffmpeg-y/tests/ref/fate/ra3-144 diff --git a/tests/ref/fate/ralf b/ffmpeg-y/tests/ref/fate/ralf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ralf rename to ffmpeg-y/tests/ref/fate/ralf diff --git a/tests/ref/fate/random_seed b/ffmpeg-y/tests/ref/fate/random_seed old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/random_seed rename to ffmpeg-y/tests/ref/fate/random_seed diff --git a/tests/ref/fate/redcode-demux b/ffmpeg-y/tests/ref/fate/redcode-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/redcode-demux rename to ffmpeg-y/tests/ref/fate/redcode-demux diff --git a/tests/ref/fate/redspark-demux b/ffmpeg-y/tests/ref/fate/redspark-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/redspark-demux rename to ffmpeg-y/tests/ref/fate/redspark-demux diff --git a/tests/ref/fate/rgb24-mkv b/ffmpeg-y/tests/ref/fate/rgb24-mkv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rgb24-mkv rename to ffmpeg-y/tests/ref/fate/rgb24-mkv diff --git a/tests/ref/fate/rgbapng-4816 b/ffmpeg-y/tests/ref/fate/rgbapng-4816 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rgbapng-4816 rename to ffmpeg-y/tests/ref/fate/rgbapng-4816 diff --git a/tests/ref/fate/ripemd b/ffmpeg-y/tests/ref/fate/ripemd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ripemd rename to ffmpeg-y/tests/ref/fate/ripemd diff --git a/tests/ref/fate/rl2 b/ffmpeg-y/tests/ref/fate/rl2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rl2 rename to ffmpeg-y/tests/ref/fate/rl2 diff --git a/tests/ref/fate/roqvideo b/ffmpeg-y/tests/ref/fate/roqvideo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/roqvideo rename to ffmpeg-y/tests/ref/fate/roqvideo diff --git a/tests/ref/fate/rpza b/ffmpeg-y/tests/ref/fate/rpza old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rpza rename to ffmpeg-y/tests/ref/fate/rpza diff --git a/tests/ref/fate/rscc-16bit b/ffmpeg-y/tests/ref/fate/rscc-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rscc-16bit rename to ffmpeg-y/tests/ref/fate/rscc-16bit diff --git a/tests/ref/fate/rscc-24bit b/ffmpeg-y/tests/ref/fate/rscc-24bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rscc-24bit rename to ffmpeg-y/tests/ref/fate/rscc-24bit diff --git a/tests/ref/fate/rscc-32bit b/ffmpeg-y/tests/ref/fate/rscc-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rscc-32bit rename to ffmpeg-y/tests/ref/fate/rscc-32bit diff --git a/tests/ref/fate/rscc-8bit b/ffmpeg-y/tests/ref/fate/rscc-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rscc-8bit rename to ffmpeg-y/tests/ref/fate/rscc-8bit diff --git a/tests/ref/fate/rsd-demux b/ffmpeg-y/tests/ref/fate/rsd-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rsd-demux rename to ffmpeg-y/tests/ref/fate/rsd-demux diff --git a/tests/ref/fate/rtmpdh b/ffmpeg-y/tests/ref/fate/rtmpdh old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rtmpdh rename to ffmpeg-y/tests/ref/fate/rtmpdh diff --git a/tests/ref/fate/rv20-1239 b/ffmpeg-y/tests/ref/fate/rv20-1239 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rv20-1239 rename to ffmpeg-y/tests/ref/fate/rv20-1239 diff --git a/tests/ref/fate/rv30 b/ffmpeg-y/tests/ref/fate/rv30 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rv30 rename to ffmpeg-y/tests/ref/fate/rv30 diff --git a/tests/ref/fate/rv40 b/ffmpeg-y/tests/ref/fate/rv40 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/rv40 rename to ffmpeg-y/tests/ref/fate/rv40 diff --git a/tests/ref/fate/sanm b/ffmpeg-y/tests/ref/fate/sanm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sanm rename to ffmpeg-y/tests/ref/fate/sanm diff --git a/tests/ref/fate/screenpresso-16bit b/ffmpeg-y/tests/ref/fate/screenpresso-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/screenpresso-16bit rename to ffmpeg-y/tests/ref/fate/screenpresso-16bit diff --git a/tests/ref/fate/screenpresso-24bit b/ffmpeg-y/tests/ref/fate/screenpresso-24bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/screenpresso-24bit rename to ffmpeg-y/tests/ref/fate/screenpresso-24bit diff --git a/tests/ref/fate/screenpresso-32bit b/ffmpeg-y/tests/ref/fate/screenpresso-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/screenpresso-32bit rename to ffmpeg-y/tests/ref/fate/screenpresso-32bit diff --git a/tests/ref/fate/segment-adts-to-mkv-header-000 b/ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-000 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/segment-adts-to-mkv-header-000 rename to ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-000 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-001 b/ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-001 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/segment-adts-to-mkv-header-001 rename to ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-001 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-002 b/ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-002 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/segment-adts-to-mkv-header-002 rename to ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-002 diff --git a/tests/ref/fate/segment-adts-to-mkv-header-all b/ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-all old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/segment-adts-to-mkv-header-all rename to ffmpeg-y/tests/ref/fate/segment-adts-to-mkv-header-all diff --git a/tests/ref/fate/segment-mp4-to-ts b/ffmpeg-y/tests/ref/fate/segment-mp4-to-ts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/segment-mp4-to-ts rename to ffmpeg-y/tests/ref/fate/segment-mp4-to-ts diff --git a/tests/ref/fate/sgi-gray16 b/ffmpeg-y/tests/ref/fate/sgi-gray16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-gray16 rename to ffmpeg-y/tests/ref/fate/sgi-gray16 diff --git a/tests/ref/fate/sgi-gray16-rle b/ffmpeg-y/tests/ref/fate/sgi-gray16-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-gray16-rle rename to ffmpeg-y/tests/ref/fate/sgi-gray16-rle diff --git a/tests/ref/fate/sgi-gray8 b/ffmpeg-y/tests/ref/fate/sgi-gray8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-gray8 rename to ffmpeg-y/tests/ref/fate/sgi-gray8 diff --git a/tests/ref/fate/sgi-gray8-rle b/ffmpeg-y/tests/ref/fate/sgi-gray8-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-gray8-rle rename to ffmpeg-y/tests/ref/fate/sgi-gray8-rle diff --git a/tests/ref/fate/sgi-rgb24 b/ffmpeg-y/tests/ref/fate/sgi-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgb24 rename to ffmpeg-y/tests/ref/fate/sgi-rgb24 diff --git a/tests/ref/fate/sgi-rgb24-rle b/ffmpeg-y/tests/ref/fate/sgi-rgb24-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgb24-rle rename to ffmpeg-y/tests/ref/fate/sgi-rgb24-rle diff --git a/tests/ref/fate/sgi-rgb48 b/ffmpeg-y/tests/ref/fate/sgi-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgb48 rename to ffmpeg-y/tests/ref/fate/sgi-rgb48 diff --git a/tests/ref/fate/sgi-rgb48-rle b/ffmpeg-y/tests/ref/fate/sgi-rgb48-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgb48-rle rename to ffmpeg-y/tests/ref/fate/sgi-rgb48-rle diff --git a/tests/ref/fate/sgi-rgba b/ffmpeg-y/tests/ref/fate/sgi-rgba old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgba rename to ffmpeg-y/tests/ref/fate/sgi-rgba diff --git a/tests/ref/fate/sgi-rgba-rle b/ffmpeg-y/tests/ref/fate/sgi-rgba-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgba-rle rename to ffmpeg-y/tests/ref/fate/sgi-rgba-rle diff --git a/tests/ref/fate/sgi-rgba64 b/ffmpeg-y/tests/ref/fate/sgi-rgba64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgba64 rename to ffmpeg-y/tests/ref/fate/sgi-rgba64 diff --git a/tests/ref/fate/sgi-rgba64-rle b/ffmpeg-y/tests/ref/fate/sgi-rgba64-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sgi-rgba64-rle rename to ffmpeg-y/tests/ref/fate/sgi-rgba64-rle diff --git a/tests/ref/fate/sha b/ffmpeg-y/tests/ref/fate/sha old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sha rename to ffmpeg-y/tests/ref/fate/sha diff --git a/tests/ref/fate/sha512 b/ffmpeg-y/tests/ref/fate/sha512 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sha512 rename to ffmpeg-y/tests/ref/fate/sha512 diff --git a/tests/ref/fate/sierra-vmd-audio b/ffmpeg-y/tests/ref/fate/sierra-vmd-audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sierra-vmd-audio rename to ffmpeg-y/tests/ref/fate/sierra-vmd-audio diff --git a/tests/ref/fate/sierra-vmd-video b/ffmpeg-y/tests/ref/fate/sierra-vmd-video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sierra-vmd-video rename to ffmpeg-y/tests/ref/fate/sierra-vmd-video diff --git a/tests/ref/fate/siff-demux b/ffmpeg-y/tests/ref/fate/siff-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/siff-demux rename to ffmpeg-y/tests/ref/fate/siff-demux diff --git a/tests/ref/fate/smacker-audio b/ffmpeg-y/tests/ref/fate/smacker-audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/smacker-audio rename to ffmpeg-y/tests/ref/fate/smacker-audio diff --git a/tests/ref/fate/smacker-video b/ffmpeg-y/tests/ref/fate/smacker-video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/smacker-video rename to ffmpeg-y/tests/ref/fate/smacker-video diff --git a/tests/ref/fate/smc b/ffmpeg-y/tests/ref/fate/smc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/smc rename to ffmpeg-y/tests/ref/fate/smc diff --git a/tests/ref/fate/smjpeg b/ffmpeg-y/tests/ref/fate/smjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/smjpeg rename to ffmpeg-y/tests/ref/fate/smjpeg diff --git a/tests/ref/fate/smjpeg-demux b/ffmpeg-y/tests/ref/fate/smjpeg-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/smjpeg-demux rename to ffmpeg-y/tests/ref/fate/smjpeg-demux diff --git a/tests/ref/fate/smvjpeg b/ffmpeg-y/tests/ref/fate/smvjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/smvjpeg rename to ffmpeg-y/tests/ref/fate/smvjpeg diff --git a/tests/ref/fate/source b/ffmpeg-y/tests/ref/fate/source old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/source rename to ffmpeg-y/tests/ref/fate/source diff --git a/tests/ref/fate/sp5x b/ffmpeg-y/tests/ref/fate/sp5x old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sp5x rename to ffmpeg-y/tests/ref/fate/sp5x diff --git a/tests/ref/fate/speedhq-422 b/ffmpeg-y/tests/ref/fate/speedhq-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/speedhq-422 rename to ffmpeg-y/tests/ref/fate/speedhq-422 diff --git a/tests/ref/fate/speedhq-422-singlefield b/ffmpeg-y/tests/ref/fate/speedhq-422-singlefield old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/speedhq-422-singlefield rename to ffmpeg-y/tests/ref/fate/speedhq-422-singlefield diff --git a/tests/ref/fate/srtp b/ffmpeg-y/tests/ref/fate/srtp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/srtp rename to ffmpeg-y/tests/ref/fate/srtp diff --git a/tests/ref/fate/sub-aqtitle b/ffmpeg-y/tests/ref/fate/sub-aqtitle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-aqtitle rename to ffmpeg-y/tests/ref/fate/sub-aqtitle diff --git a/tests/ref/fate/sub-ass-to-ass-transcode b/ffmpeg-y/tests/ref/fate/sub-ass-to-ass-transcode old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-ass-to-ass-transcode rename to ffmpeg-y/tests/ref/fate/sub-ass-to-ass-transcode diff --git a/tests/ref/fate/sub-cc b/ffmpeg-y/tests/ref/fate/sub-cc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-cc rename to ffmpeg-y/tests/ref/fate/sub-cc diff --git a/tests/ref/fate/sub-cc-realtime b/ffmpeg-y/tests/ref/fate/sub-cc-realtime old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-cc-realtime rename to ffmpeg-y/tests/ref/fate/sub-cc-realtime diff --git a/tests/ref/fate/sub-cc-scte20 b/ffmpeg-y/tests/ref/fate/sub-cc-scte20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-cc-scte20 rename to ffmpeg-y/tests/ref/fate/sub-cc-scte20 diff --git a/tests/ref/fate/sub-charenc b/ffmpeg-y/tests/ref/fate/sub-charenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-charenc rename to ffmpeg-y/tests/ref/fate/sub-charenc diff --git a/tests/ref/fate/sub-jacosub b/ffmpeg-y/tests/ref/fate/sub-jacosub old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-jacosub rename to ffmpeg-y/tests/ref/fate/sub-jacosub diff --git a/tests/ref/fate/sub-microdvd b/ffmpeg-y/tests/ref/fate/sub-microdvd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-microdvd rename to ffmpeg-y/tests/ref/fate/sub-microdvd diff --git a/tests/ref/fate/sub-microdvd-remux b/ffmpeg-y/tests/ref/fate/sub-microdvd-remux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-microdvd-remux rename to ffmpeg-y/tests/ref/fate/sub-microdvd-remux diff --git a/tests/ref/fate/sub-movtext b/ffmpeg-y/tests/ref/fate/sub-movtext old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-movtext rename to ffmpeg-y/tests/ref/fate/sub-movtext diff --git a/tests/ref/fate/sub-mpl2 b/ffmpeg-y/tests/ref/fate/sub-mpl2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-mpl2 rename to ffmpeg-y/tests/ref/fate/sub-mpl2 diff --git a/tests/ref/fate/sub-mpsub b/ffmpeg-y/tests/ref/fate/sub-mpsub old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-mpsub rename to ffmpeg-y/tests/ref/fate/sub-mpsub diff --git a/tests/ref/fate/sub-mpsub-frames b/ffmpeg-y/tests/ref/fate/sub-mpsub-frames old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-mpsub-frames rename to ffmpeg-y/tests/ref/fate/sub-mpsub-frames diff --git a/tests/ref/fate/sub-pjs b/ffmpeg-y/tests/ref/fate/sub-pjs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-pjs rename to ffmpeg-y/tests/ref/fate/sub-pjs diff --git a/tests/ref/fate/sub-realtext b/ffmpeg-y/tests/ref/fate/sub-realtext old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-realtext rename to ffmpeg-y/tests/ref/fate/sub-realtext diff --git a/tests/ref/fate/sub-sami b/ffmpeg-y/tests/ref/fate/sub-sami old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-sami rename to ffmpeg-y/tests/ref/fate/sub-sami diff --git a/tests/ref/fate/sub-sami2 b/ffmpeg-y/tests/ref/fate/sub-sami2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-sami2 rename to ffmpeg-y/tests/ref/fate/sub-sami2 diff --git a/tests/ref/fate/sub-scc b/ffmpeg-y/tests/ref/fate/sub-scc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-scc rename to ffmpeg-y/tests/ref/fate/sub-scc diff --git a/tests/ref/fate/sub-srt b/ffmpeg-y/tests/ref/fate/sub-srt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-srt rename to ffmpeg-y/tests/ref/fate/sub-srt diff --git a/tests/ref/fate/sub-srt-badsyntax b/ffmpeg-y/tests/ref/fate/sub-srt-badsyntax old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-srt-badsyntax rename to ffmpeg-y/tests/ref/fate/sub-srt-badsyntax diff --git a/tests/ref/fate/sub-srt-empty-events b/ffmpeg-y/tests/ref/fate/sub-srt-empty-events old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-srt-empty-events rename to ffmpeg-y/tests/ref/fate/sub-srt-empty-events diff --git a/tests/ref/fate/sub-srt-madness-timeshift b/ffmpeg-y/tests/ref/fate/sub-srt-madness-timeshift old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-srt-madness-timeshift rename to ffmpeg-y/tests/ref/fate/sub-srt-madness-timeshift diff --git a/tests/ref/fate/sub-srt-rrn-remux b/ffmpeg-y/tests/ref/fate/sub-srt-rrn-remux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-srt-rrn-remux rename to ffmpeg-y/tests/ref/fate/sub-srt-rrn-remux diff --git a/tests/ref/fate/sub-ssa-to-ass-remux b/ffmpeg-y/tests/ref/fate/sub-ssa-to-ass-remux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-ssa-to-ass-remux rename to ffmpeg-y/tests/ref/fate/sub-ssa-to-ass-remux diff --git a/tests/ref/fate/sub-stl b/ffmpeg-y/tests/ref/fate/sub-stl old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-stl rename to ffmpeg-y/tests/ref/fate/sub-stl diff --git a/tests/ref/fate/sub-subripenc b/ffmpeg-y/tests/ref/fate/sub-subripenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-subripenc rename to ffmpeg-y/tests/ref/fate/sub-subripenc diff --git a/tests/ref/fate/sub-subviewer b/ffmpeg-y/tests/ref/fate/sub-subviewer old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-subviewer rename to ffmpeg-y/tests/ref/fate/sub-subviewer diff --git a/tests/ref/fate/sub-subviewer1 b/ffmpeg-y/tests/ref/fate/sub-subviewer1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-subviewer1 rename to ffmpeg-y/tests/ref/fate/sub-subviewer1 diff --git a/tests/ref/fate/sub-textenc b/ffmpeg-y/tests/ref/fate/sub-textenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-textenc rename to ffmpeg-y/tests/ref/fate/sub-textenc diff --git a/tests/ref/fate/sub-vplayer b/ffmpeg-y/tests/ref/fate/sub-vplayer old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-vplayer rename to ffmpeg-y/tests/ref/fate/sub-vplayer diff --git a/tests/ref/fate/sub-webvtt b/ffmpeg-y/tests/ref/fate/sub-webvtt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-webvtt rename to ffmpeg-y/tests/ref/fate/sub-webvtt diff --git a/tests/ref/fate/sub-webvtt2 b/ffmpeg-y/tests/ref/fate/sub-webvtt2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-webvtt2 rename to ffmpeg-y/tests/ref/fate/sub-webvtt2 diff --git a/tests/ref/fate/sub-webvttenc b/ffmpeg-y/tests/ref/fate/sub-webvttenc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub-webvttenc rename to ffmpeg-y/tests/ref/fate/sub-webvttenc diff --git a/tests/ref/fate/sub2video b/ffmpeg-y/tests/ref/fate/sub2video old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sub2video rename to ffmpeg-y/tests/ref/fate/sub2video diff --git a/tests/ref/fate/sunraster-1bit-raw b/ffmpeg-y/tests/ref/fate/sunraster-1bit-raw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-1bit-raw rename to ffmpeg-y/tests/ref/fate/sunraster-1bit-raw diff --git a/tests/ref/fate/sunraster-1bit-rle b/ffmpeg-y/tests/ref/fate/sunraster-1bit-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-1bit-rle rename to ffmpeg-y/tests/ref/fate/sunraster-1bit-rle diff --git a/tests/ref/fate/sunraster-24bit-raw b/ffmpeg-y/tests/ref/fate/sunraster-24bit-raw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-24bit-raw rename to ffmpeg-y/tests/ref/fate/sunraster-24bit-raw diff --git a/tests/ref/fate/sunraster-24bit-rle b/ffmpeg-y/tests/ref/fate/sunraster-24bit-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-24bit-rle rename to ffmpeg-y/tests/ref/fate/sunraster-24bit-rle diff --git a/tests/ref/fate/sunraster-8bit-raw b/ffmpeg-y/tests/ref/fate/sunraster-8bit-raw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-8bit-raw rename to ffmpeg-y/tests/ref/fate/sunraster-8bit-raw diff --git a/tests/ref/fate/sunraster-8bit-rle b/ffmpeg-y/tests/ref/fate/sunraster-8bit-rle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-8bit-rle rename to ffmpeg-y/tests/ref/fate/sunraster-8bit-rle diff --git a/tests/ref/fate/sunraster-8bit_gray-raw b/ffmpeg-y/tests/ref/fate/sunraster-8bit_gray-raw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sunraster-8bit_gray-raw rename to ffmpeg-y/tests/ref/fate/sunraster-8bit_gray-raw diff --git a/tests/ref/fate/svq1 b/ffmpeg-y/tests/ref/fate/svq1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/svq1 rename to ffmpeg-y/tests/ref/fate/svq1 diff --git a/tests/ref/fate/svq1-headerswap b/ffmpeg-y/tests/ref/fate/svq1-headerswap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/svq1-headerswap rename to ffmpeg-y/tests/ref/fate/svq1-headerswap diff --git a/tests/ref/fate/svq3-1 b/ffmpeg-y/tests/ref/fate/svq3-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/svq3-1 rename to ffmpeg-y/tests/ref/fate/svq3-1 diff --git a/tests/ref/fate/svq3-2 b/ffmpeg-y/tests/ref/fate/svq3-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/svq3-2 rename to ffmpeg-y/tests/ref/fate/svq3-2 diff --git a/tests/ref/fate/svq3-watermark b/ffmpeg-y/tests/ref/fate/svq3-watermark old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/svq3-watermark rename to ffmpeg-y/tests/ref/fate/svq3-watermark diff --git a/tests/ref/fate/sws-pixdesc-query b/ffmpeg-y/tests/ref/fate/sws-pixdesc-query old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/sws-pixdesc-query rename to ffmpeg-y/tests/ref/fate/sws-pixdesc-query diff --git a/tests/ref/fate/targa-conformance-CBW8 b/ffmpeg-y/tests/ref/fate/targa-conformance-CBW8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-CBW8 rename to ffmpeg-y/tests/ref/fate/targa-conformance-CBW8 diff --git a/tests/ref/fate/targa-conformance-CCM8 b/ffmpeg-y/tests/ref/fate/targa-conformance-CCM8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-CCM8 rename to ffmpeg-y/tests/ref/fate/targa-conformance-CCM8 diff --git a/tests/ref/fate/targa-conformance-CTC16 b/ffmpeg-y/tests/ref/fate/targa-conformance-CTC16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-CTC16 rename to ffmpeg-y/tests/ref/fate/targa-conformance-CTC16 diff --git a/tests/ref/fate/targa-conformance-CTC24 b/ffmpeg-y/tests/ref/fate/targa-conformance-CTC24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-CTC24 rename to ffmpeg-y/tests/ref/fate/targa-conformance-CTC24 diff --git a/tests/ref/fate/targa-conformance-CTC32 b/ffmpeg-y/tests/ref/fate/targa-conformance-CTC32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-CTC32 rename to ffmpeg-y/tests/ref/fate/targa-conformance-CTC32 diff --git a/tests/ref/fate/targa-conformance-UBW8 b/ffmpeg-y/tests/ref/fate/targa-conformance-UBW8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-UBW8 rename to ffmpeg-y/tests/ref/fate/targa-conformance-UBW8 diff --git a/tests/ref/fate/targa-conformance-UCM8 b/ffmpeg-y/tests/ref/fate/targa-conformance-UCM8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-UCM8 rename to ffmpeg-y/tests/ref/fate/targa-conformance-UCM8 diff --git a/tests/ref/fate/targa-conformance-UTC16 b/ffmpeg-y/tests/ref/fate/targa-conformance-UTC16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-UTC16 rename to ffmpeg-y/tests/ref/fate/targa-conformance-UTC16 diff --git a/tests/ref/fate/targa-conformance-UTC24 b/ffmpeg-y/tests/ref/fate/targa-conformance-UTC24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-UTC24 rename to ffmpeg-y/tests/ref/fate/targa-conformance-UTC24 diff --git a/tests/ref/fate/targa-conformance-UTC32 b/ffmpeg-y/tests/ref/fate/targa-conformance-UTC32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-conformance-UTC32 rename to ffmpeg-y/tests/ref/fate/targa-conformance-UTC32 diff --git a/tests/ref/fate/targa-top-to-bottom b/ffmpeg-y/tests/ref/fate/targa-top-to-bottom old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/targa-top-to-bottom rename to ffmpeg-y/tests/ref/fate/targa-top-to-bottom diff --git a/tests/ref/fate/tdsc b/ffmpeg-y/tests/ref/fate/tdsc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tdsc rename to ffmpeg-y/tests/ref/fate/tdsc diff --git a/tests/ref/fate/tea b/ffmpeg-y/tests/ref/fate/tea old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tea rename to ffmpeg-y/tests/ref/fate/tea diff --git a/tests/ref/fate/theora-coeff-level64 b/ffmpeg-y/tests/ref/fate/theora-coeff-level64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/theora-coeff-level64 rename to ffmpeg-y/tests/ref/fate/theora-coeff-level64 diff --git a/tests/ref/fate/theora-offset b/ffmpeg-y/tests/ref/fate/theora-offset old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/theora-offset rename to ffmpeg-y/tests/ref/fate/theora-offset diff --git a/tests/ref/fate/thp b/ffmpeg-y/tests/ref/fate/thp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/thp rename to ffmpeg-y/tests/ref/fate/thp diff --git a/tests/ref/fate/tiertex-seq b/ffmpeg-y/tests/ref/fate/tiertex-seq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tiertex-seq rename to ffmpeg-y/tests/ref/fate/tiertex-seq diff --git a/tests/ref/fate/tiff-fax-g3 b/ffmpeg-y/tests/ref/fate/tiff-fax-g3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tiff-fax-g3 rename to ffmpeg-y/tests/ref/fate/tiff-fax-g3 diff --git a/tests/ref/fate/tiff-fax-g3s b/ffmpeg-y/tests/ref/fate/tiff-fax-g3s old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tiff-fax-g3s rename to ffmpeg-y/tests/ref/fate/tiff-fax-g3s diff --git a/tests/ref/fate/time_base b/ffmpeg-y/tests/ref/fate/time_base old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/time_base rename to ffmpeg-y/tests/ref/fate/time_base diff --git a/tests/ref/fate/timefilter b/ffmpeg-y/tests/ref/fate/timefilter old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/timefilter rename to ffmpeg-y/tests/ref/fate/timefilter diff --git a/tests/ref/fate/tmv b/ffmpeg-y/tests/ref/fate/tmv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tmv rename to ffmpeg-y/tests/ref/fate/tmv diff --git a/tests/ref/fate/truemotion1-15 b/ffmpeg-y/tests/ref/fate/truemotion1-15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/truemotion1-15 rename to ffmpeg-y/tests/ref/fate/truemotion1-15 diff --git a/tests/ref/fate/truemotion1-24 b/ffmpeg-y/tests/ref/fate/truemotion1-24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/truemotion1-24 rename to ffmpeg-y/tests/ref/fate/truemotion1-24 diff --git a/tests/ref/fate/truemotion2 b/ffmpeg-y/tests/ref/fate/truemotion2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/truemotion2 rename to ffmpeg-y/tests/ref/fate/truemotion2 diff --git a/tests/ref/fate/truemotion2rt-high b/ffmpeg-y/tests/ref/fate/truemotion2rt-high old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/truemotion2rt-high rename to ffmpeg-y/tests/ref/fate/truemotion2rt-high diff --git a/tests/ref/fate/truemotion2rt-low b/ffmpeg-y/tests/ref/fate/truemotion2rt-low old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/truemotion2rt-low rename to ffmpeg-y/tests/ref/fate/truemotion2rt-low diff --git a/tests/ref/fate/truemotion2rt-mid b/ffmpeg-y/tests/ref/fate/truemotion2rt-mid old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/truemotion2rt-mid rename to ffmpeg-y/tests/ref/fate/truemotion2rt-mid diff --git a/tests/ref/fate/ts-demux b/ffmpeg-y/tests/ref/fate/ts-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ts-demux rename to ffmpeg-y/tests/ref/fate/ts-demux diff --git a/tests/ref/fate/ts-opus-demux b/ffmpeg-y/tests/ref/fate/ts-opus-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ts-opus-demux rename to ffmpeg-y/tests/ref/fate/ts-opus-demux diff --git a/tests/ref/fate/ts-small-demux b/ffmpeg-y/tests/ref/fate/ts-small-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ts-small-demux rename to ffmpeg-y/tests/ref/fate/ts-small-demux diff --git a/tests/ref/fate/tscc-15bit b/ffmpeg-y/tests/ref/fate/tscc-15bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tscc-15bit rename to ffmpeg-y/tests/ref/fate/tscc-15bit diff --git a/tests/ref/fate/tscc-32bit b/ffmpeg-y/tests/ref/fate/tscc-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tscc-32bit rename to ffmpeg-y/tests/ref/fate/tscc-32bit diff --git a/tests/ref/fate/tscc2-avi b/ffmpeg-y/tests/ref/fate/tscc2-avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tscc2-avi rename to ffmpeg-y/tests/ref/fate/tscc2-avi diff --git a/tests/ref/fate/tscc2-mov b/ffmpeg-y/tests/ref/fate/tscc2-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/tscc2-mov rename to ffmpeg-y/tests/ref/fate/tscc2-mov diff --git a/tests/ref/fate/txd-16bpp b/ffmpeg-y/tests/ref/fate/txd-16bpp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/txd-16bpp rename to ffmpeg-y/tests/ref/fate/txd-16bpp diff --git a/tests/ref/fate/txd-odd b/ffmpeg-y/tests/ref/fate/txd-odd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/txd-odd rename to ffmpeg-y/tests/ref/fate/txd-odd diff --git a/tests/ref/fate/txd-pal8 b/ffmpeg-y/tests/ref/fate/txd-pal8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/txd-pal8 rename to ffmpeg-y/tests/ref/fate/txd-pal8 diff --git a/tests/ref/fate/ulti b/ffmpeg-y/tests/ref/fate/ulti old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ulti rename to ffmpeg-y/tests/ref/fate/ulti diff --git a/tests/ref/fate/unknown_layout-ac3 b/ffmpeg-y/tests/ref/fate/unknown_layout-ac3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/unknown_layout-ac3 rename to ffmpeg-y/tests/ref/fate/unknown_layout-ac3 diff --git a/tests/ref/fate/unknown_layout-pcm b/ffmpeg-y/tests/ref/fate/unknown_layout-pcm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/unknown_layout-pcm rename to ffmpeg-y/tests/ref/fate/unknown_layout-pcm diff --git a/tests/ref/fate/url b/ffmpeg-y/tests/ref/fate/url old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/url rename to ffmpeg-y/tests/ref/fate/url diff --git a/tests/ref/fate/utvideo_rgb_int_gradient b/ffmpeg-y/tests/ref/fate/utvideo_rgb_int_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgb_int_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_rgb_int_gradient diff --git a/tests/ref/fate/utvideo_rgb_int_median b/ffmpeg-y/tests/ref/fate/utvideo_rgb_int_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgb_int_median rename to ffmpeg-y/tests/ref/fate/utvideo_rgb_int_median diff --git a/tests/ref/fate/utvideo_rgb_left b/ffmpeg-y/tests/ref/fate/utvideo_rgb_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgb_left rename to ffmpeg-y/tests/ref/fate/utvideo_rgb_left diff --git a/tests/ref/fate/utvideo_rgb_median b/ffmpeg-y/tests/ref/fate/utvideo_rgb_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgb_median rename to ffmpeg-y/tests/ref/fate/utvideo_rgb_median diff --git a/tests/ref/fate/utvideo_rgba_gradient b/ffmpeg-y/tests/ref/fate/utvideo_rgba_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgba_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_rgba_gradient diff --git a/tests/ref/fate/utvideo_rgba_left b/ffmpeg-y/tests/ref/fate/utvideo_rgba_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgba_left rename to ffmpeg-y/tests/ref/fate/utvideo_rgba_left diff --git a/tests/ref/fate/utvideo_rgba_median b/ffmpeg-y/tests/ref/fate/utvideo_rgba_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgba_median rename to ffmpeg-y/tests/ref/fate/utvideo_rgba_median diff --git a/tests/ref/fate/utvideo_rgba_single_symbol b/ffmpeg-y/tests/ref/fate/utvideo_rgba_single_symbol old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_rgba_single_symbol rename to ffmpeg-y/tests/ref/fate/utvideo_rgba_single_symbol diff --git a/tests/ref/fate/utvideo_yuv420_gradient b/ffmpeg-y/tests/ref/fate/utvideo_yuv420_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv420_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_yuv420_gradient diff --git a/tests/ref/fate/utvideo_yuv420_int_gradient b/ffmpeg-y/tests/ref/fate/utvideo_yuv420_int_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv420_int_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_yuv420_int_gradient diff --git a/tests/ref/fate/utvideo_yuv420_int_median b/ffmpeg-y/tests/ref/fate/utvideo_yuv420_int_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv420_int_median rename to ffmpeg-y/tests/ref/fate/utvideo_yuv420_int_median diff --git a/tests/ref/fate/utvideo_yuv420_left b/ffmpeg-y/tests/ref/fate/utvideo_yuv420_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv420_left rename to ffmpeg-y/tests/ref/fate/utvideo_yuv420_left diff --git a/tests/ref/fate/utvideo_yuv420_median b/ffmpeg-y/tests/ref/fate/utvideo_yuv420_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv420_median rename to ffmpeg-y/tests/ref/fate/utvideo_yuv420_median diff --git a/tests/ref/fate/utvideo_yuv422_gradient b/ffmpeg-y/tests/ref/fate/utvideo_yuv422_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv422_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_yuv422_gradient diff --git a/tests/ref/fate/utvideo_yuv422_int_gradient b/ffmpeg-y/tests/ref/fate/utvideo_yuv422_int_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv422_int_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_yuv422_int_gradient diff --git a/tests/ref/fate/utvideo_yuv422_int_median b/ffmpeg-y/tests/ref/fate/utvideo_yuv422_int_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv422_int_median rename to ffmpeg-y/tests/ref/fate/utvideo_yuv422_int_median diff --git a/tests/ref/fate/utvideo_yuv422_left b/ffmpeg-y/tests/ref/fate/utvideo_yuv422_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv422_left rename to ffmpeg-y/tests/ref/fate/utvideo_yuv422_left diff --git a/tests/ref/fate/utvideo_yuv422_median b/ffmpeg-y/tests/ref/fate/utvideo_yuv422_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv422_median rename to ffmpeg-y/tests/ref/fate/utvideo_yuv422_median diff --git a/tests/ref/fate/utvideo_yuv444_709_gradient b/ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv444_709_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_gradient diff --git a/tests/ref/fate/utvideo_yuv444_709_int_gradient b/ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_int_gradient old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv444_709_int_gradient rename to ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_int_gradient diff --git a/tests/ref/fate/utvideo_yuv444_709_int_median b/ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_int_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv444_709_int_median rename to ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_int_median diff --git a/tests/ref/fate/utvideo_yuv444_709_median b/ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideo_yuv444_709_median rename to ffmpeg-y/tests/ref/fate/utvideo_yuv444_709_median diff --git a/tests/ref/fate/utvideoenc_rgb_left b/ffmpeg-y/tests/ref/fate/utvideoenc_rgb_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_rgb_left rename to ffmpeg-y/tests/ref/fate/utvideoenc_rgb_left diff --git a/tests/ref/fate/utvideoenc_rgb_median b/ffmpeg-y/tests/ref/fate/utvideoenc_rgb_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_rgb_median rename to ffmpeg-y/tests/ref/fate/utvideoenc_rgb_median diff --git a/tests/ref/fate/utvideoenc_rgb_none b/ffmpeg-y/tests/ref/fate/utvideoenc_rgb_none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_rgb_none rename to ffmpeg-y/tests/ref/fate/utvideoenc_rgb_none diff --git a/tests/ref/fate/utvideoenc_rgba_left b/ffmpeg-y/tests/ref/fate/utvideoenc_rgba_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_rgba_left rename to ffmpeg-y/tests/ref/fate/utvideoenc_rgba_left diff --git a/tests/ref/fate/utvideoenc_rgba_median b/ffmpeg-y/tests/ref/fate/utvideoenc_rgba_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_rgba_median rename to ffmpeg-y/tests/ref/fate/utvideoenc_rgba_median diff --git a/tests/ref/fate/utvideoenc_rgba_none b/ffmpeg-y/tests/ref/fate/utvideoenc_rgba_none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_rgba_none rename to ffmpeg-y/tests/ref/fate/utvideoenc_rgba_none diff --git a/tests/ref/fate/utvideoenc_yuv420_left b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv420_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv420_left rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv420_left diff --git a/tests/ref/fate/utvideoenc_yuv420_median b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv420_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv420_median rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv420_median diff --git a/tests/ref/fate/utvideoenc_yuv420_none b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv420_none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv420_none rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv420_none diff --git a/tests/ref/fate/utvideoenc_yuv422_left b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv422_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv422_left rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv422_left diff --git a/tests/ref/fate/utvideoenc_yuv422_median b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv422_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv422_median rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv422_median diff --git a/tests/ref/fate/utvideoenc_yuv422_none b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv422_none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv422_none rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv422_none diff --git a/tests/ref/fate/utvideoenc_yuv444_left b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv444_left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv444_left rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv444_left diff --git a/tests/ref/fate/utvideoenc_yuv444_median b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv444_median old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv444_median rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv444_median diff --git a/tests/ref/fate/utvideoenc_yuv444_none b/ffmpeg-y/tests/ref/fate/utvideoenc_yuv444_none old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/utvideoenc_yuv444_none rename to ffmpeg-y/tests/ref/fate/utvideoenc_yuv444_none diff --git a/tests/ref/fate/v210 b/ffmpeg-y/tests/ref/fate/v210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/v210 rename to ffmpeg-y/tests/ref/fate/v210 diff --git a/tests/ref/fate/v410dec b/ffmpeg-y/tests/ref/fate/v410dec old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/v410dec rename to ffmpeg-y/tests/ref/fate/v410dec diff --git a/tests/ref/fate/v410enc b/ffmpeg-y/tests/ref/fate/v410enc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/v410enc rename to ffmpeg-y/tests/ref/fate/v410enc diff --git a/tests/ref/fate/vb b/ffmpeg-y/tests/ref/fate/vb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vb rename to ffmpeg-y/tests/ref/fate/vb diff --git a/tests/ref/fate/vble b/ffmpeg-y/tests/ref/fate/vble old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vble rename to ffmpeg-y/tests/ref/fate/vble diff --git a/tests/ref/fate/vc1-ism b/ffmpeg-y/tests/ref/fate/vc1-ism old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1-ism rename to ffmpeg-y/tests/ref/fate/vc1-ism diff --git a/tests/ref/fate/vc1_ilaced_twomv b/ffmpeg-y/tests/ref/fate/vc1_ilaced_twomv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1_ilaced_twomv rename to ffmpeg-y/tests/ref/fate/vc1_ilaced_twomv diff --git a/tests/ref/fate/vc1_sa00040 b/ffmpeg-y/tests/ref/fate/vc1_sa00040 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1_sa00040 rename to ffmpeg-y/tests/ref/fate/vc1_sa00040 diff --git a/tests/ref/fate/vc1_sa00050 b/ffmpeg-y/tests/ref/fate/vc1_sa00050 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1_sa00050 rename to ffmpeg-y/tests/ref/fate/vc1_sa00050 diff --git a/tests/ref/fate/vc1_sa10091 b/ffmpeg-y/tests/ref/fate/vc1_sa10091 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1_sa10091 rename to ffmpeg-y/tests/ref/fate/vc1_sa10091 diff --git a/tests/ref/fate/vc1_sa10143 b/ffmpeg-y/tests/ref/fate/vc1_sa10143 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1_sa10143 rename to ffmpeg-y/tests/ref/fate/vc1_sa10143 diff --git a/tests/ref/fate/vc1_sa20021 b/ffmpeg-y/tests/ref/fate/vc1_sa20021 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1_sa20021 rename to ffmpeg-y/tests/ref/fate/vc1_sa20021 diff --git a/tests/ref/fate/vc1test_smm0005 b/ffmpeg-y/tests/ref/fate/vc1test_smm0005 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1test_smm0005 rename to ffmpeg-y/tests/ref/fate/vc1test_smm0005 diff --git a/tests/ref/fate/vc1test_smm0015 b/ffmpeg-y/tests/ref/fate/vc1test_smm0015 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vc1test_smm0015 rename to ffmpeg-y/tests/ref/fate/vc1test_smm0015 diff --git a/tests/ref/fate/vcr1 b/ffmpeg-y/tests/ref/fate/vcr1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vcr1 rename to ffmpeg-y/tests/ref/fate/vcr1 diff --git a/tests/ref/fate/vcr2 b/ffmpeg-y/tests/ref/fate/vcr2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vcr2 rename to ffmpeg-y/tests/ref/fate/vcr2 diff --git a/tests/ref/fate/videoxl b/ffmpeg-y/tests/ref/fate/videoxl old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/videoxl rename to ffmpeg-y/tests/ref/fate/videoxl diff --git a/tests/ref/fate/vmnc-16bit b/ffmpeg-y/tests/ref/fate/vmnc-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vmnc-16bit rename to ffmpeg-y/tests/ref/fate/vmnc-16bit diff --git a/tests/ref/fate/vmnc-32bit b/ffmpeg-y/tests/ref/fate/vmnc-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vmnc-32bit rename to ffmpeg-y/tests/ref/fate/vmnc-32bit diff --git a/tests/ref/fate/vorbis-1833-chapters b/ffmpeg-y/tests/ref/fate/vorbis-1833-chapters old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vorbis-1833-chapters rename to ffmpeg-y/tests/ref/fate/vorbis-1833-chapters diff --git a/tests/ref/fate/vp31 b/ffmpeg-y/tests/ref/fate/vp31 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp31 rename to ffmpeg-y/tests/ref/fate/vp31 diff --git a/tests/ref/fate/vp4 b/ffmpeg-y/tests/ref/fate/vp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp4 rename to ffmpeg-y/tests/ref/fate/vp4 diff --git a/tests/ref/fate/vp5 b/ffmpeg-y/tests/ref/fate/vp5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp5 rename to ffmpeg-y/tests/ref/fate/vp5 diff --git a/tests/ref/fate/vp60 b/ffmpeg-y/tests/ref/fate/vp60 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp60 rename to ffmpeg-y/tests/ref/fate/vp60 diff --git a/tests/ref/fate/vp61 b/ffmpeg-y/tests/ref/fate/vp61 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp61 rename to ffmpeg-y/tests/ref/fate/vp61 diff --git a/tests/ref/fate/vp6a b/ffmpeg-y/tests/ref/fate/vp6a old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp6a rename to ffmpeg-y/tests/ref/fate/vp6a diff --git a/tests/ref/fate/vp6a-skip_alpha b/ffmpeg-y/tests/ref/fate/vp6a-skip_alpha old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp6a-skip_alpha rename to ffmpeg-y/tests/ref/fate/vp6a-skip_alpha diff --git a/tests/ref/fate/vp6f b/ffmpeg-y/tests/ref/fate/vp6f old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp6f rename to ffmpeg-y/tests/ref/fate/vp6f diff --git a/tests/ref/fate/vp7 b/ffmpeg-y/tests/ref/fate/vp7 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp7 rename to ffmpeg-y/tests/ref/fate/vp7 diff --git a/tests/ref/fate/vp8-2451 b/ffmpeg-y/tests/ref/fate/vp8-2451 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-2451 rename to ffmpeg-y/tests/ref/fate/vp8-2451 diff --git a/tests/ref/fate/vp8-alpha b/ffmpeg-y/tests/ref/fate/vp8-alpha old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-alpha rename to ffmpeg-y/tests/ref/fate/vp8-alpha diff --git a/tests/ref/fate/vp8-sign-bias b/ffmpeg-y/tests/ref/fate/vp8-sign-bias old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-sign-bias rename to ffmpeg-y/tests/ref/fate/vp8-sign-bias diff --git a/tests/ref/fate/vp8-size-change b/ffmpeg-y/tests/ref/fate/vp8-size-change old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-size-change rename to ffmpeg-y/tests/ref/fate/vp8-size-change diff --git a/tests/ref/fate/vp8-test-vector-001 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-001 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-001 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-001 diff --git a/tests/ref/fate/vp8-test-vector-002 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-002 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-002 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-002 diff --git a/tests/ref/fate/vp8-test-vector-003 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-003 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-003 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-003 diff --git a/tests/ref/fate/vp8-test-vector-004 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-004 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-004 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-004 diff --git a/tests/ref/fate/vp8-test-vector-005 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-005 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-005 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-005 diff --git a/tests/ref/fate/vp8-test-vector-006 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-006 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-006 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-006 diff --git a/tests/ref/fate/vp8-test-vector-007 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-007 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-007 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-007 diff --git a/tests/ref/fate/vp8-test-vector-008 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-008 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-008 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-008 diff --git a/tests/ref/fate/vp8-test-vector-009 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-009 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-009 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-009 diff --git a/tests/ref/fate/vp8-test-vector-010 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-010 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-010 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-010 diff --git a/tests/ref/fate/vp8-test-vector-011 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-011 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-011 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-011 diff --git a/tests/ref/fate/vp8-test-vector-012 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-012 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-012 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-012 diff --git a/tests/ref/fate/vp8-test-vector-013 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-013 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-013 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-013 diff --git a/tests/ref/fate/vp8-test-vector-014 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-014 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-014 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-014 diff --git a/tests/ref/fate/vp8-test-vector-015 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-015 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-015 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-015 diff --git a/tests/ref/fate/vp8-test-vector-016 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-016 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-016 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-016 diff --git a/tests/ref/fate/vp8-test-vector-017 b/ffmpeg-y/tests/ref/fate/vp8-test-vector-017 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp8-test-vector-017 rename to ffmpeg-y/tests/ref/fate/vp8-test-vector-017 diff --git a/tests/ref/fate/vp9-00-quantizer-00 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-00 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-00 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-00 diff --git a/tests/ref/fate/vp9-00-quantizer-01 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-01 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-01 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-01 diff --git a/tests/ref/fate/vp9-00-quantizer-02 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-02 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-02 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-02 diff --git a/tests/ref/fate/vp9-00-quantizer-03 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-03 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-03 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-03 diff --git a/tests/ref/fate/vp9-00-quantizer-04 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-04 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-04 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-04 diff --git a/tests/ref/fate/vp9-00-quantizer-05 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-05 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-05 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-05 diff --git a/tests/ref/fate/vp9-00-quantizer-06 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-06 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-06 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-06 diff --git a/tests/ref/fate/vp9-00-quantizer-07 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-07 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-07 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-07 diff --git a/tests/ref/fate/vp9-00-quantizer-08 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-08 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-08 diff --git a/tests/ref/fate/vp9-00-quantizer-09 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-09 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-09 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-09 diff --git a/tests/ref/fate/vp9-00-quantizer-10 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-10 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-10 diff --git a/tests/ref/fate/vp9-00-quantizer-11 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-11 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-11 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-11 diff --git a/tests/ref/fate/vp9-00-quantizer-12 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-12 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-12 diff --git a/tests/ref/fate/vp9-00-quantizer-13 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-13 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-13 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-13 diff --git a/tests/ref/fate/vp9-00-quantizer-14 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-14 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-14 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-14 diff --git a/tests/ref/fate/vp9-00-quantizer-15 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-15 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-15 diff --git a/tests/ref/fate/vp9-00-quantizer-16 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-16 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-16 diff --git a/tests/ref/fate/vp9-00-quantizer-17 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-17 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-17 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-17 diff --git a/tests/ref/fate/vp9-00-quantizer-18 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-18 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-18 diff --git a/tests/ref/fate/vp9-00-quantizer-19 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-19 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-19 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-19 diff --git a/tests/ref/fate/vp9-00-quantizer-20 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-20 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-20 diff --git a/tests/ref/fate/vp9-00-quantizer-21 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-21 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-21 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-21 diff --git a/tests/ref/fate/vp9-00-quantizer-22 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-22 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-22 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-22 diff --git a/tests/ref/fate/vp9-00-quantizer-23 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-23 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-23 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-23 diff --git a/tests/ref/fate/vp9-00-quantizer-24 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-24 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-24 diff --git a/tests/ref/fate/vp9-00-quantizer-25 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-25 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-25 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-25 diff --git a/tests/ref/fate/vp9-00-quantizer-26 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-26 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-26 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-26 diff --git a/tests/ref/fate/vp9-00-quantizer-27 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-27 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-27 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-27 diff --git a/tests/ref/fate/vp9-00-quantizer-28 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-28 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-28 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-28 diff --git a/tests/ref/fate/vp9-00-quantizer-29 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-29 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-29 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-29 diff --git a/tests/ref/fate/vp9-00-quantizer-30 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-30 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-30 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-30 diff --git a/tests/ref/fate/vp9-00-quantizer-31 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-31 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-31 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-31 diff --git a/tests/ref/fate/vp9-00-quantizer-32 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-32 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-32 diff --git a/tests/ref/fate/vp9-00-quantizer-33 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-33 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-33 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-33 diff --git a/tests/ref/fate/vp9-00-quantizer-34 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-34 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-34 diff --git a/tests/ref/fate/vp9-00-quantizer-35 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-35 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-35 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-35 diff --git a/tests/ref/fate/vp9-00-quantizer-36 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-36 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-36 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-36 diff --git a/tests/ref/fate/vp9-00-quantizer-37 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-37 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-37 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-37 diff --git a/tests/ref/fate/vp9-00-quantizer-38 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-38 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-38 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-38 diff --git a/tests/ref/fate/vp9-00-quantizer-39 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-39 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-39 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-39 diff --git a/tests/ref/fate/vp9-00-quantizer-40 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-40 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-40 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-40 diff --git a/tests/ref/fate/vp9-00-quantizer-41 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-41 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-41 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-41 diff --git a/tests/ref/fate/vp9-00-quantizer-42 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-42 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-42 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-42 diff --git a/tests/ref/fate/vp9-00-quantizer-43 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-43 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-43 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-43 diff --git a/tests/ref/fate/vp9-00-quantizer-44 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-44 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-44 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-44 diff --git a/tests/ref/fate/vp9-00-quantizer-45 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-45 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-45 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-45 diff --git a/tests/ref/fate/vp9-00-quantizer-46 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-46 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-46 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-46 diff --git a/tests/ref/fate/vp9-00-quantizer-47 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-47 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-47 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-47 diff --git a/tests/ref/fate/vp9-00-quantizer-48 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-48 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-48 diff --git a/tests/ref/fate/vp9-00-quantizer-49 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-49 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-49 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-49 diff --git a/tests/ref/fate/vp9-00-quantizer-50 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-50 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-50 diff --git a/tests/ref/fate/vp9-00-quantizer-51 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-51 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-51 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-51 diff --git a/tests/ref/fate/vp9-00-quantizer-52 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-52 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-52 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-52 diff --git a/tests/ref/fate/vp9-00-quantizer-53 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-53 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-53 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-53 diff --git a/tests/ref/fate/vp9-00-quantizer-54 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-54 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-54 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-54 diff --git a/tests/ref/fate/vp9-00-quantizer-55 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-55 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-55 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-55 diff --git a/tests/ref/fate/vp9-00-quantizer-56 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-56 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-56 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-56 diff --git a/tests/ref/fate/vp9-00-quantizer-57 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-57 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-57 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-57 diff --git a/tests/ref/fate/vp9-00-quantizer-58 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-58 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-58 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-58 diff --git a/tests/ref/fate/vp9-00-quantizer-59 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-59 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-59 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-59 diff --git a/tests/ref/fate/vp9-00-quantizer-60 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-60 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-60 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-60 diff --git a/tests/ref/fate/vp9-00-quantizer-61 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-61 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-61 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-61 diff --git a/tests/ref/fate/vp9-00-quantizer-62 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-62 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-62 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-62 diff --git a/tests/ref/fate/vp9-00-quantizer-63 b/ffmpeg-y/tests/ref/fate/vp9-00-quantizer-63 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-00-quantizer-63 rename to ffmpeg-y/tests/ref/fate/vp9-00-quantizer-63 diff --git a/tests/ref/fate/vp9-01-sharpness-1 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-1 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-1 diff --git a/tests/ref/fate/vp9-01-sharpness-2 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-2 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-2 diff --git a/tests/ref/fate/vp9-01-sharpness-3 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-3 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-3 diff --git a/tests/ref/fate/vp9-01-sharpness-4 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-4 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-4 diff --git a/tests/ref/fate/vp9-01-sharpness-5 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-5 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-5 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-5 diff --git a/tests/ref/fate/vp9-01-sharpness-6 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-6 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-6 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-6 diff --git a/tests/ref/fate/vp9-01-sharpness-7 b/ffmpeg-y/tests/ref/fate/vp9-01-sharpness-7 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-01-sharpness-7 rename to ffmpeg-y/tests/ref/fate/vp9-01-sharpness-7 diff --git a/tests/ref/fate/vp9-02-size-08x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x08 diff --git a/tests/ref/fate/vp9-02-size-08x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x10 diff --git a/tests/ref/fate/vp9-02-size-08x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x16 diff --git a/tests/ref/fate/vp9-02-size-08x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x18 diff --git a/tests/ref/fate/vp9-02-size-08x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x32 diff --git a/tests/ref/fate/vp9-02-size-08x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x34 diff --git a/tests/ref/fate/vp9-02-size-08x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x64 diff --git a/tests/ref/fate/vp9-02-size-08x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-08x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-08x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-08x66 diff --git a/tests/ref/fate/vp9-02-size-10x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x08 diff --git a/tests/ref/fate/vp9-02-size-10x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x10 diff --git a/tests/ref/fate/vp9-02-size-10x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x16 diff --git a/tests/ref/fate/vp9-02-size-10x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x18 diff --git a/tests/ref/fate/vp9-02-size-10x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x32 diff --git a/tests/ref/fate/vp9-02-size-10x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x34 diff --git a/tests/ref/fate/vp9-02-size-10x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x64 diff --git a/tests/ref/fate/vp9-02-size-10x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-10x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-10x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-10x66 diff --git a/tests/ref/fate/vp9-02-size-16x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x08 diff --git a/tests/ref/fate/vp9-02-size-16x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x10 diff --git a/tests/ref/fate/vp9-02-size-16x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x16 diff --git a/tests/ref/fate/vp9-02-size-16x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x18 diff --git a/tests/ref/fate/vp9-02-size-16x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x32 diff --git a/tests/ref/fate/vp9-02-size-16x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x34 diff --git a/tests/ref/fate/vp9-02-size-16x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x64 diff --git a/tests/ref/fate/vp9-02-size-16x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-16x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-16x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-16x66 diff --git a/tests/ref/fate/vp9-02-size-18x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x08 diff --git a/tests/ref/fate/vp9-02-size-18x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x10 diff --git a/tests/ref/fate/vp9-02-size-18x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x16 diff --git a/tests/ref/fate/vp9-02-size-18x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x18 diff --git a/tests/ref/fate/vp9-02-size-18x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x32 diff --git a/tests/ref/fate/vp9-02-size-18x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x34 diff --git a/tests/ref/fate/vp9-02-size-18x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x64 diff --git a/tests/ref/fate/vp9-02-size-18x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-18x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-18x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-18x66 diff --git a/tests/ref/fate/vp9-02-size-32x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x08 diff --git a/tests/ref/fate/vp9-02-size-32x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x10 diff --git a/tests/ref/fate/vp9-02-size-32x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x16 diff --git a/tests/ref/fate/vp9-02-size-32x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x18 diff --git a/tests/ref/fate/vp9-02-size-32x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x32 diff --git a/tests/ref/fate/vp9-02-size-32x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x34 diff --git a/tests/ref/fate/vp9-02-size-32x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x64 diff --git a/tests/ref/fate/vp9-02-size-32x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-32x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-32x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-32x66 diff --git a/tests/ref/fate/vp9-02-size-34x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x08 diff --git a/tests/ref/fate/vp9-02-size-34x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x10 diff --git a/tests/ref/fate/vp9-02-size-34x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x16 diff --git a/tests/ref/fate/vp9-02-size-34x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x18 diff --git a/tests/ref/fate/vp9-02-size-34x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x32 diff --git a/tests/ref/fate/vp9-02-size-34x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x34 diff --git a/tests/ref/fate/vp9-02-size-34x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x64 diff --git a/tests/ref/fate/vp9-02-size-34x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-34x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-34x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-34x66 diff --git a/tests/ref/fate/vp9-02-size-64x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x08 diff --git a/tests/ref/fate/vp9-02-size-64x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x10 diff --git a/tests/ref/fate/vp9-02-size-64x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x16 diff --git a/tests/ref/fate/vp9-02-size-64x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x18 diff --git a/tests/ref/fate/vp9-02-size-64x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x32 diff --git a/tests/ref/fate/vp9-02-size-64x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x34 diff --git a/tests/ref/fate/vp9-02-size-64x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x64 diff --git a/tests/ref/fate/vp9-02-size-64x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-64x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-64x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-64x66 diff --git a/tests/ref/fate/vp9-02-size-66x08 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x08 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x08 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x08 diff --git a/tests/ref/fate/vp9-02-size-66x10 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x10 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x10 diff --git a/tests/ref/fate/vp9-02-size-66x16 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x16 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x16 diff --git a/tests/ref/fate/vp9-02-size-66x18 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x18 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x18 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x18 diff --git a/tests/ref/fate/vp9-02-size-66x32 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x32 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x32 diff --git a/tests/ref/fate/vp9-02-size-66x34 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x34 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x34 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x34 diff --git a/tests/ref/fate/vp9-02-size-66x64 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x64 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x64 diff --git a/tests/ref/fate/vp9-02-size-66x66 b/ffmpeg-y/tests/ref/fate/vp9-02-size-66x66 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-02-size-66x66 rename to ffmpeg-y/tests/ref/fate/vp9-02-size-66x66 diff --git a/tests/ref/fate/vp9-03-deltaq b/ffmpeg-y/tests/ref/fate/vp9-03-deltaq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-deltaq rename to ffmpeg-y/tests/ref/fate/vp9-03-deltaq diff --git a/tests/ref/fate/vp9-03-size-196x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x196 diff --git a/tests/ref/fate/vp9-03-size-196x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x198 diff --git a/tests/ref/fate/vp9-03-size-196x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x200 diff --git a/tests/ref/fate/vp9-03-size-196x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x202 diff --git a/tests/ref/fate/vp9-03-size-196x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x208 diff --git a/tests/ref/fate/vp9-03-size-196x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x210 diff --git a/tests/ref/fate/vp9-03-size-196x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x224 diff --git a/tests/ref/fate/vp9-03-size-196x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-196x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-196x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-196x226 diff --git a/tests/ref/fate/vp9-03-size-198x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x196 diff --git a/tests/ref/fate/vp9-03-size-198x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x198 diff --git a/tests/ref/fate/vp9-03-size-198x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x200 diff --git a/tests/ref/fate/vp9-03-size-198x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x202 diff --git a/tests/ref/fate/vp9-03-size-198x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x208 diff --git a/tests/ref/fate/vp9-03-size-198x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x210 diff --git a/tests/ref/fate/vp9-03-size-198x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x224 diff --git a/tests/ref/fate/vp9-03-size-198x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-198x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-198x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-198x226 diff --git a/tests/ref/fate/vp9-03-size-200x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x196 diff --git a/tests/ref/fate/vp9-03-size-200x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x198 diff --git a/tests/ref/fate/vp9-03-size-200x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x200 diff --git a/tests/ref/fate/vp9-03-size-200x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x202 diff --git a/tests/ref/fate/vp9-03-size-200x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x208 diff --git a/tests/ref/fate/vp9-03-size-200x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x210 diff --git a/tests/ref/fate/vp9-03-size-200x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x224 diff --git a/tests/ref/fate/vp9-03-size-200x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-200x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-200x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-200x226 diff --git a/tests/ref/fate/vp9-03-size-202x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x196 diff --git a/tests/ref/fate/vp9-03-size-202x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x198 diff --git a/tests/ref/fate/vp9-03-size-202x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x200 diff --git a/tests/ref/fate/vp9-03-size-202x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x202 diff --git a/tests/ref/fate/vp9-03-size-202x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x208 diff --git a/tests/ref/fate/vp9-03-size-202x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x210 diff --git a/tests/ref/fate/vp9-03-size-202x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x224 diff --git a/tests/ref/fate/vp9-03-size-202x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-202x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-202x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-202x226 diff --git a/tests/ref/fate/vp9-03-size-208x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x196 diff --git a/tests/ref/fate/vp9-03-size-208x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x198 diff --git a/tests/ref/fate/vp9-03-size-208x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x200 diff --git a/tests/ref/fate/vp9-03-size-208x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x202 diff --git a/tests/ref/fate/vp9-03-size-208x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x208 diff --git a/tests/ref/fate/vp9-03-size-208x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x210 diff --git a/tests/ref/fate/vp9-03-size-208x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x224 diff --git a/tests/ref/fate/vp9-03-size-208x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-208x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-208x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-208x226 diff --git a/tests/ref/fate/vp9-03-size-210x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x196 diff --git a/tests/ref/fate/vp9-03-size-210x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x198 diff --git a/tests/ref/fate/vp9-03-size-210x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x200 diff --git a/tests/ref/fate/vp9-03-size-210x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x202 diff --git a/tests/ref/fate/vp9-03-size-210x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x208 diff --git a/tests/ref/fate/vp9-03-size-210x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x210 diff --git a/tests/ref/fate/vp9-03-size-210x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x224 diff --git a/tests/ref/fate/vp9-03-size-210x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-210x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-210x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-210x226 diff --git a/tests/ref/fate/vp9-03-size-224x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x196 diff --git a/tests/ref/fate/vp9-03-size-224x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x198 diff --git a/tests/ref/fate/vp9-03-size-224x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x200 diff --git a/tests/ref/fate/vp9-03-size-224x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x202 diff --git a/tests/ref/fate/vp9-03-size-224x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x208 diff --git a/tests/ref/fate/vp9-03-size-224x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x210 diff --git a/tests/ref/fate/vp9-03-size-224x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x224 diff --git a/tests/ref/fate/vp9-03-size-224x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-224x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-224x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-224x226 diff --git a/tests/ref/fate/vp9-03-size-226x196 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x196 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x196 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x196 diff --git a/tests/ref/fate/vp9-03-size-226x198 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x198 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x198 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x198 diff --git a/tests/ref/fate/vp9-03-size-226x200 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x200 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x200 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x200 diff --git a/tests/ref/fate/vp9-03-size-226x202 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x202 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x202 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x202 diff --git a/tests/ref/fate/vp9-03-size-226x208 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x208 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x208 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x208 diff --git a/tests/ref/fate/vp9-03-size-226x210 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x210 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x210 diff --git a/tests/ref/fate/vp9-03-size-226x224 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x224 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x224 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x224 diff --git a/tests/ref/fate/vp9-03-size-226x226 b/ffmpeg-y/tests/ref/fate/vp9-03-size-226x226 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-03-size-226x226 rename to ffmpeg-y/tests/ref/fate/vp9-03-size-226x226 diff --git a/tests/ref/fate/vp9-05-resize b/ffmpeg-y/tests/ref/fate/vp9-05-resize old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-05-resize rename to ffmpeg-y/tests/ref/fate/vp9-05-resize diff --git a/tests/ref/fate/vp9-06-bilinear b/ffmpeg-y/tests/ref/fate/vp9-06-bilinear old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-06-bilinear rename to ffmpeg-y/tests/ref/fate/vp9-06-bilinear diff --git a/tests/ref/fate/vp9-09-lf_deltas b/ffmpeg-y/tests/ref/fate/vp9-09-lf_deltas old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-09-lf_deltas rename to ffmpeg-y/tests/ref/fate/vp9-09-lf_deltas diff --git a/tests/ref/fate/vp9-10-show-existing-frame b/ffmpeg-y/tests/ref/fate/vp9-10-show-existing-frame old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-10-show-existing-frame rename to ffmpeg-y/tests/ref/fate/vp9-10-show-existing-frame diff --git a/tests/ref/fate/vp9-10-show-existing-frame2 b/ffmpeg-y/tests/ref/fate/vp9-10-show-existing-frame2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-10-show-existing-frame2 rename to ffmpeg-y/tests/ref/fate/vp9-10-show-existing-frame2 diff --git a/tests/ref/fate/vp9-15-segkey_adpq b/ffmpeg-y/tests/ref/fate/vp9-15-segkey_adpq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-15-segkey_adpq rename to ffmpeg-y/tests/ref/fate/vp9-15-segkey_adpq diff --git a/tests/ref/fate/vp9-16-intra-only b/ffmpeg-y/tests/ref/fate/vp9-16-intra-only old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-16-intra-only rename to ffmpeg-y/tests/ref/fate/vp9-16-intra-only diff --git a/tests/ref/fate/vp9-2pass-akiyo b/ffmpeg-y/tests/ref/fate/vp9-2pass-akiyo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-2pass-akiyo rename to ffmpeg-y/tests/ref/fate/vp9-2pass-akiyo diff --git a/tests/ref/fate/vp9-parallelmode-akiyo b/ffmpeg-y/tests/ref/fate/vp9-parallelmode-akiyo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-parallelmode-akiyo rename to ffmpeg-y/tests/ref/fate/vp9-parallelmode-akiyo diff --git a/tests/ref/fate/vp9-segmentation-aq-akiyo b/ffmpeg-y/tests/ref/fate/vp9-segmentation-aq-akiyo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-segmentation-aq-akiyo rename to ffmpeg-y/tests/ref/fate/vp9-segmentation-aq-akiyo diff --git a/tests/ref/fate/vp9-segmentation-sf-akiyo b/ffmpeg-y/tests/ref/fate/vp9-segmentation-sf-akiyo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-segmentation-sf-akiyo rename to ffmpeg-y/tests/ref/fate/vp9-segmentation-sf-akiyo diff --git a/tests/ref/fate/vp9-tiling-pedestrian b/ffmpeg-y/tests/ref/fate/vp9-tiling-pedestrian old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-tiling-pedestrian rename to ffmpeg-y/tests/ref/fate/vp9-tiling-pedestrian diff --git a/tests/ref/fate/vp9-trac3849 b/ffmpeg-y/tests/ref/fate/vp9-trac3849 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-trac3849 rename to ffmpeg-y/tests/ref/fate/vp9-trac3849 diff --git a/tests/ref/fate/vp9-trac4359 b/ffmpeg-y/tests/ref/fate/vp9-trac4359 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9-trac4359 rename to ffmpeg-y/tests/ref/fate/vp9-trac4359 diff --git a/tests/ref/fate/vp9p1-04-yuv422 b/ffmpeg-y/tests/ref/fate/vp9p1-04-yuv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p1-04-yuv422 rename to ffmpeg-y/tests/ref/fate/vp9p1-04-yuv422 diff --git a/tests/ref/fate/vp9p1-04-yuv440 b/ffmpeg-y/tests/ref/fate/vp9p1-04-yuv440 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p1-04-yuv440 rename to ffmpeg-y/tests/ref/fate/vp9p1-04-yuv440 diff --git a/tests/ref/fate/vp9p1-04-yuv444 b/ffmpeg-y/tests/ref/fate/vp9p1-04-yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p1-04-yuv444 rename to ffmpeg-y/tests/ref/fate/vp9p1-04-yuv444 diff --git a/tests/ref/fate/vp9p2-20-10bit-yuv420 b/ffmpeg-y/tests/ref/fate/vp9p2-20-10bit-yuv420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p2-20-10bit-yuv420 rename to ffmpeg-y/tests/ref/fate/vp9p2-20-10bit-yuv420 diff --git a/tests/ref/fate/vp9p2-20-12bit-yuv420 b/ffmpeg-y/tests/ref/fate/vp9p2-20-12bit-yuv420 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p2-20-12bit-yuv420 rename to ffmpeg-y/tests/ref/fate/vp9p2-20-12bit-yuv420 diff --git a/tests/ref/fate/vp9p3-20-10bit-yuv422 b/ffmpeg-y/tests/ref/fate/vp9p3-20-10bit-yuv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p3-20-10bit-yuv422 rename to ffmpeg-y/tests/ref/fate/vp9p3-20-10bit-yuv422 diff --git a/tests/ref/fate/vp9p3-20-10bit-yuv440 b/ffmpeg-y/tests/ref/fate/vp9p3-20-10bit-yuv440 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p3-20-10bit-yuv440 rename to ffmpeg-y/tests/ref/fate/vp9p3-20-10bit-yuv440 diff --git a/tests/ref/fate/vp9p3-20-10bit-yuv444 b/ffmpeg-y/tests/ref/fate/vp9p3-20-10bit-yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p3-20-10bit-yuv444 rename to ffmpeg-y/tests/ref/fate/vp9p3-20-10bit-yuv444 diff --git a/tests/ref/fate/vp9p3-20-12bit-yuv422 b/ffmpeg-y/tests/ref/fate/vp9p3-20-12bit-yuv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p3-20-12bit-yuv422 rename to ffmpeg-y/tests/ref/fate/vp9p3-20-12bit-yuv422 diff --git a/tests/ref/fate/vp9p3-20-12bit-yuv440 b/ffmpeg-y/tests/ref/fate/vp9p3-20-12bit-yuv440 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p3-20-12bit-yuv440 rename to ffmpeg-y/tests/ref/fate/vp9p3-20-12bit-yuv440 diff --git a/tests/ref/fate/vp9p3-20-12bit-yuv444 b/ffmpeg-y/tests/ref/fate/vp9p3-20-12bit-yuv444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vp9p3-20-12bit-yuv444 rename to ffmpeg-y/tests/ref/fate/vp9p3-20-12bit-yuv444 diff --git a/tests/ref/fate/vqa-cc b/ffmpeg-y/tests/ref/fate/vqa-cc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vqa-cc rename to ffmpeg-y/tests/ref/fate/vqa-cc diff --git a/tests/ref/fate/vqf-demux b/ffmpeg-y/tests/ref/fate/vqf-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/vqf-demux rename to ffmpeg-y/tests/ref/fate/vqf-demux diff --git a/tests/ref/fate/w64 b/ffmpeg-y/tests/ref/fate/w64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/w64 rename to ffmpeg-y/tests/ref/fate/w64 diff --git a/tests/ref/fate/wav-ac3 b/ffmpeg-y/tests/ref/fate/wav-ac3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wav-ac3 rename to ffmpeg-y/tests/ref/fate/wav-ac3 diff --git a/tests/ref/fate/wavpack-channels-4.0 b/ffmpeg-y/tests/ref/fate/wavpack-channels-4.0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-channels-4.0 rename to ffmpeg-y/tests/ref/fate/wavpack-channels-4.0 diff --git a/tests/ref/fate/wavpack-channels-5.1 b/ffmpeg-y/tests/ref/fate/wavpack-channels-5.1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-channels-5.1 rename to ffmpeg-y/tests/ref/fate/wavpack-channels-5.1 diff --git a/tests/ref/fate/wavpack-channels-6.1 b/ffmpeg-y/tests/ref/fate/wavpack-channels-6.1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-channels-6.1 rename to ffmpeg-y/tests/ref/fate/wavpack-channels-6.1 diff --git a/tests/ref/fate/wavpack-channels-7.1 b/ffmpeg-y/tests/ref/fate/wavpack-channels-7.1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-channels-7.1 rename to ffmpeg-y/tests/ref/fate/wavpack-channels-7.1 diff --git a/tests/ref/fate/wavpack-channels-monofloat b/ffmpeg-y/tests/ref/fate/wavpack-channels-monofloat old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-channels-monofloat rename to ffmpeg-y/tests/ref/fate/wavpack-channels-monofloat diff --git a/tests/ref/fate/wavpack-channels-monoint b/ffmpeg-y/tests/ref/fate/wavpack-channels-monoint old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-channels-monoint rename to ffmpeg-y/tests/ref/fate/wavpack-channels-monoint diff --git a/tests/ref/fate/wavpack-clipping b/ffmpeg-y/tests/ref/fate/wavpack-clipping old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-clipping rename to ffmpeg-y/tests/ref/fate/wavpack-clipping diff --git a/tests/ref/fate/wavpack-cuesheet b/ffmpeg-y/tests/ref/fate/wavpack-cuesheet old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-cuesheet rename to ffmpeg-y/tests/ref/fate/wavpack-cuesheet diff --git a/tests/ref/fate/wavpack-falsestereo b/ffmpeg-y/tests/ref/fate/wavpack-falsestereo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-falsestereo rename to ffmpeg-y/tests/ref/fate/wavpack-falsestereo diff --git a/tests/ref/fate/wavpack-lossless-12bit b/ffmpeg-y/tests/ref/fate/wavpack-lossless-12bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossless-12bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossless-12bit diff --git a/tests/ref/fate/wavpack-lossless-16bit b/ffmpeg-y/tests/ref/fate/wavpack-lossless-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossless-16bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossless-16bit diff --git a/tests/ref/fate/wavpack-lossless-24bit b/ffmpeg-y/tests/ref/fate/wavpack-lossless-24bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossless-24bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossless-24bit diff --git a/tests/ref/fate/wavpack-lossless-32bit b/ffmpeg-y/tests/ref/fate/wavpack-lossless-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossless-32bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossless-32bit diff --git a/tests/ref/fate/wavpack-lossless-8bit b/ffmpeg-y/tests/ref/fate/wavpack-lossless-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossless-8bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossless-8bit diff --git a/tests/ref/fate/wavpack-lossless-float b/ffmpeg-y/tests/ref/fate/wavpack-lossless-float old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossless-float rename to ffmpeg-y/tests/ref/fate/wavpack-lossless-float diff --git a/tests/ref/fate/wavpack-lossy-16bit b/ffmpeg-y/tests/ref/fate/wavpack-lossy-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossy-16bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossy-16bit diff --git a/tests/ref/fate/wavpack-lossy-24bit b/ffmpeg-y/tests/ref/fate/wavpack-lossy-24bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossy-24bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossy-24bit diff --git a/tests/ref/fate/wavpack-lossy-32bit b/ffmpeg-y/tests/ref/fate/wavpack-lossy-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossy-32bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossy-32bit diff --git a/tests/ref/fate/wavpack-lossy-8bit b/ffmpeg-y/tests/ref/fate/wavpack-lossy-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossy-8bit rename to ffmpeg-y/tests/ref/fate/wavpack-lossy-8bit diff --git a/tests/ref/fate/wavpack-lossy-float b/ffmpeg-y/tests/ref/fate/wavpack-lossy-float old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-lossy-float rename to ffmpeg-y/tests/ref/fate/wavpack-lossy-float diff --git a/tests/ref/fate/wavpack-matroskamode b/ffmpeg-y/tests/ref/fate/wavpack-matroskamode old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-matroskamode rename to ffmpeg-y/tests/ref/fate/wavpack-matroskamode diff --git a/tests/ref/fate/wavpack-speed-default b/ffmpeg-y/tests/ref/fate/wavpack-speed-default old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-speed-default rename to ffmpeg-y/tests/ref/fate/wavpack-speed-default diff --git a/tests/ref/fate/wavpack-speed-fast b/ffmpeg-y/tests/ref/fate/wavpack-speed-fast old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-speed-fast rename to ffmpeg-y/tests/ref/fate/wavpack-speed-fast diff --git a/tests/ref/fate/wavpack-speed-high b/ffmpeg-y/tests/ref/fate/wavpack-speed-high old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-speed-high rename to ffmpeg-y/tests/ref/fate/wavpack-speed-high diff --git a/tests/ref/fate/wavpack-speed-vhigh b/ffmpeg-y/tests/ref/fate/wavpack-speed-vhigh old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-speed-vhigh rename to ffmpeg-y/tests/ref/fate/wavpack-speed-vhigh diff --git a/tests/ref/fate/wavpack-zerolsbs b/ffmpeg-y/tests/ref/fate/wavpack-zerolsbs old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wavpack-zerolsbs rename to ffmpeg-y/tests/ref/fate/wavpack-zerolsbs diff --git a/tests/ref/fate/wc3movie-xan b/ffmpeg-y/tests/ref/fate/wc3movie-xan old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wc3movie-xan rename to ffmpeg-y/tests/ref/fate/wc3movie-xan diff --git a/tests/ref/fate/webm-dash-manifest b/ffmpeg-y/tests/ref/fate/webm-dash-manifest old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webm-dash-manifest rename to ffmpeg-y/tests/ref/fate/webm-dash-manifest diff --git a/tests/ref/fate/webm-dash-manifest-live b/ffmpeg-y/tests/ref/fate/webm-dash-manifest-live old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webm-dash-manifest-live rename to ffmpeg-y/tests/ref/fate/webm-dash-manifest-live diff --git a/tests/ref/fate/webm-dash-manifest-live-bandwidth b/ffmpeg-y/tests/ref/fate/webm-dash-manifest-live-bandwidth old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webm-dash-manifest-live-bandwidth rename to ffmpeg-y/tests/ref/fate/webm-dash-manifest-live-bandwidth diff --git a/tests/ref/fate/webm-dash-manifest-representations b/ffmpeg-y/tests/ref/fate/webm-dash-manifest-representations old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webm-dash-manifest-representations rename to ffmpeg-y/tests/ref/fate/webm-dash-manifest-representations diff --git a/tests/ref/fate/webm-dash-manifest-unaligned-audio-streams b/ffmpeg-y/tests/ref/fate/webm-dash-manifest-unaligned-audio-streams old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webm-dash-manifest-unaligned-audio-streams rename to ffmpeg-y/tests/ref/fate/webm-dash-manifest-unaligned-audio-streams diff --git a/tests/ref/fate/webm-dash-manifest-unaligned-video-streams b/ffmpeg-y/tests/ref/fate/webm-dash-manifest-unaligned-video-streams old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webm-dash-manifest-unaligned-video-streams rename to ffmpeg-y/tests/ref/fate/webm-dash-manifest-unaligned-video-streams diff --git a/tests/ref/fate/webp-rgb-lena-lossless b/ffmpeg-y/tests/ref/fate/webp-rgb-lena-lossless old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webp-rgb-lena-lossless rename to ffmpeg-y/tests/ref/fate/webp-rgb-lena-lossless diff --git a/tests/ref/fate/webp-rgb-lena-lossless-rgb24 b/ffmpeg-y/tests/ref/fate/webp-rgb-lena-lossless-rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webp-rgb-lena-lossless-rgb24 rename to ffmpeg-y/tests/ref/fate/webp-rgb-lena-lossless-rgb24 diff --git a/tests/ref/fate/webp-rgb-lossless b/ffmpeg-y/tests/ref/fate/webp-rgb-lossless old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webp-rgb-lossless rename to ffmpeg-y/tests/ref/fate/webp-rgb-lossless diff --git a/tests/ref/fate/webp-rgb-lossy-q80 b/ffmpeg-y/tests/ref/fate/webp-rgb-lossy-q80 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webp-rgb-lossy-q80 rename to ffmpeg-y/tests/ref/fate/webp-rgb-lossy-q80 diff --git a/tests/ref/fate/webp-rgba-lossless b/ffmpeg-y/tests/ref/fate/webp-rgba-lossless old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webp-rgba-lossless rename to ffmpeg-y/tests/ref/fate/webp-rgba-lossless diff --git a/tests/ref/fate/webp-rgba-lossy-q80 b/ffmpeg-y/tests/ref/fate/webp-rgba-lossy-q80 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/webp-rgba-lossy-q80 rename to ffmpeg-y/tests/ref/fate/webp-rgba-lossy-q80 diff --git a/tests/ref/fate/westwood-aud b/ffmpeg-y/tests/ref/fate/westwood-aud old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/westwood-aud rename to ffmpeg-y/tests/ref/fate/westwood-aud diff --git a/tests/ref/fate/wmv3-drm-dec b/ffmpeg-y/tests/ref/fate/wmv3-drm-dec old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wmv3-drm-dec rename to ffmpeg-y/tests/ref/fate/wmv3-drm-dec diff --git a/tests/ref/fate/wmv3-drm-nodec b/ffmpeg-y/tests/ref/fate/wmv3-drm-nodec old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wmv3-drm-nodec rename to ffmpeg-y/tests/ref/fate/wmv3-drm-nodec diff --git a/tests/ref/fate/wmv8-x8intra b/ffmpeg-y/tests/ref/fate/wmv8-x8intra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wmv8-x8intra rename to ffmpeg-y/tests/ref/fate/wmv8-x8intra diff --git a/tests/ref/fate/wnv1 b/ffmpeg-y/tests/ref/fate/wnv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wnv1 rename to ffmpeg-y/tests/ref/fate/wnv1 diff --git a/tests/ref/fate/ws_snd b/ffmpeg-y/tests/ref/fate/ws_snd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/ws_snd rename to ffmpeg-y/tests/ref/fate/ws_snd diff --git a/tests/ref/fate/wtv-demux b/ffmpeg-y/tests/ref/fate/wtv-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/wtv-demux rename to ffmpeg-y/tests/ref/fate/wtv-demux diff --git a/tests/ref/fate/xbm10 b/ffmpeg-y/tests/ref/fate/xbm10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xbm10 rename to ffmpeg-y/tests/ref/fate/xbm10 diff --git a/tests/ref/fate/xbm11 b/ffmpeg-y/tests/ref/fate/xbm11 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xbm11 rename to ffmpeg-y/tests/ref/fate/xbm11 diff --git a/tests/ref/fate/xface b/ffmpeg-y/tests/ref/fate/xface old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xface rename to ffmpeg-y/tests/ref/fate/xface diff --git a/tests/ref/fate/xmv-demux b/ffmpeg-y/tests/ref/fate/xmv-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xmv-demux rename to ffmpeg-y/tests/ref/fate/xmv-demux diff --git a/tests/ref/fate/xtea b/ffmpeg-y/tests/ref/fate/xtea old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xtea rename to ffmpeg-y/tests/ref/fate/xtea diff --git a/tests/ref/fate/xvid-custom-matrix b/ffmpeg-y/tests/ref/fate/xvid-custom-matrix old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xvid-custom-matrix rename to ffmpeg-y/tests/ref/fate/xvid-custom-matrix diff --git a/tests/ref/fate/xvid-idct b/ffmpeg-y/tests/ref/fate/xvid-idct old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xvid-idct rename to ffmpeg-y/tests/ref/fate/xvid-idct diff --git a/tests/ref/fate/xwma-demux b/ffmpeg-y/tests/ref/fate/xwma-demux old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xwma-demux rename to ffmpeg-y/tests/ref/fate/xwma-demux diff --git a/tests/ref/fate/xxan-wc4 b/ffmpeg-y/tests/ref/fate/xxan-wc4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/xxan-wc4 rename to ffmpeg-y/tests/ref/fate/xxan-wc4 diff --git a/tests/ref/fate/yop b/ffmpeg-y/tests/ref/fate/yop old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/yop rename to ffmpeg-y/tests/ref/fate/yop diff --git a/tests/ref/fate/zerocodec b/ffmpeg-y/tests/ref/fate/zerocodec old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/zerocodec rename to ffmpeg-y/tests/ref/fate/zerocodec diff --git a/tests/ref/fate/zlib b/ffmpeg-y/tests/ref/fate/zlib old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/zlib rename to ffmpeg-y/tests/ref/fate/zlib diff --git a/tests/ref/fate/zmbv-15bit b/ffmpeg-y/tests/ref/fate/zmbv-15bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/zmbv-15bit rename to ffmpeg-y/tests/ref/fate/zmbv-15bit diff --git a/tests/ref/fate/zmbv-16bit b/ffmpeg-y/tests/ref/fate/zmbv-16bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/zmbv-16bit rename to ffmpeg-y/tests/ref/fate/zmbv-16bit diff --git a/tests/ref/fate/zmbv-32bit b/ffmpeg-y/tests/ref/fate/zmbv-32bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/zmbv-32bit rename to ffmpeg-y/tests/ref/fate/zmbv-32bit diff --git a/tests/ref/fate/zmbv-8bit b/ffmpeg-y/tests/ref/fate/zmbv-8bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/fate/zmbv-8bit rename to ffmpeg-y/tests/ref/fate/zmbv-8bit diff --git a/tests/ref/lavf-fate/cram.avi b/ffmpeg-y/tests/ref/lavf-fate/cram.avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf-fate/cram.avi rename to ffmpeg-y/tests/ref/lavf-fate/cram.avi diff --git a/tests/ref/lavf-fate/latm b/ffmpeg-y/tests/ref/lavf-fate/latm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf-fate/latm rename to ffmpeg-y/tests/ref/lavf-fate/latm diff --git a/tests/ref/lavf-fate/mp3 b/ffmpeg-y/tests/ref/lavf-fate/mp3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf-fate/mp3 rename to ffmpeg-y/tests/ref/lavf-fate/mp3 diff --git a/tests/ref/lavf-fate/qtrle_mace6.mov b/ffmpeg-y/tests/ref/lavf-fate/qtrle_mace6.mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf-fate/qtrle_mace6.mov rename to ffmpeg-y/tests/ref/lavf-fate/qtrle_mace6.mov diff --git a/tests/ref/lavf-fate/vp3.ogg b/ffmpeg-y/tests/ref/lavf-fate/vp3.ogg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf-fate/vp3.ogg rename to ffmpeg-y/tests/ref/lavf-fate/vp3.ogg diff --git a/tests/ref/lavf-fate/vp8.ogg b/ffmpeg-y/tests/ref/lavf-fate/vp8.ogg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf-fate/vp8.ogg rename to ffmpeg-y/tests/ref/lavf-fate/vp8.ogg diff --git a/tests/ref/lavf/aiff b/ffmpeg-y/tests/ref/lavf/aiff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/aiff rename to ffmpeg-y/tests/ref/lavf/aiff diff --git a/tests/ref/lavf/al b/ffmpeg-y/tests/ref/lavf/al old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/al rename to ffmpeg-y/tests/ref/lavf/al diff --git a/tests/ref/lavf/apng b/ffmpeg-y/tests/ref/lavf/apng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/apng rename to ffmpeg-y/tests/ref/lavf/apng diff --git a/tests/ref/lavf/apng.png b/ffmpeg-y/tests/ref/lavf/apng.png old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/apng.png rename to ffmpeg-y/tests/ref/lavf/apng.png diff --git a/tests/ref/lavf/asf b/ffmpeg-y/tests/ref/lavf/asf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/asf rename to ffmpeg-y/tests/ref/lavf/asf diff --git a/tests/ref/lavf/ast b/ffmpeg-y/tests/ref/lavf/ast old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ast rename to ffmpeg-y/tests/ref/lavf/ast diff --git a/tests/ref/lavf/au b/ffmpeg-y/tests/ref/lavf/au old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/au rename to ffmpeg-y/tests/ref/lavf/au diff --git a/tests/ref/lavf/avi b/ffmpeg-y/tests/ref/lavf/avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/avi rename to ffmpeg-y/tests/ref/lavf/avi diff --git a/tests/ref/lavf/bmp b/ffmpeg-y/tests/ref/lavf/bmp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/bmp rename to ffmpeg-y/tests/ref/lavf/bmp diff --git a/tests/ref/lavf/caf b/ffmpeg-y/tests/ref/lavf/caf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/caf rename to ffmpeg-y/tests/ref/lavf/caf diff --git a/tests/ref/lavf/dpx b/ffmpeg-y/tests/ref/lavf/dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/dpx rename to ffmpeg-y/tests/ref/lavf/dpx diff --git a/tests/ref/lavf/dv b/ffmpeg-y/tests/ref/lavf/dv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/dv rename to ffmpeg-y/tests/ref/lavf/dv diff --git a/tests/ref/lavf/dv_ntsc b/ffmpeg-y/tests/ref/lavf/dv_ntsc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/dv_ntsc rename to ffmpeg-y/tests/ref/lavf/dv_ntsc diff --git a/tests/ref/lavf/dv_pal b/ffmpeg-y/tests/ref/lavf/dv_pal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/dv_pal rename to ffmpeg-y/tests/ref/lavf/dv_pal diff --git a/tests/ref/lavf/fits b/ffmpeg-y/tests/ref/lavf/fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/fits rename to ffmpeg-y/tests/ref/lavf/fits diff --git a/tests/ref/lavf/flm b/ffmpeg-y/tests/ref/lavf/flm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/flm rename to ffmpeg-y/tests/ref/lavf/flm diff --git a/tests/ref/lavf/flv b/ffmpeg-y/tests/ref/lavf/flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/flv rename to ffmpeg-y/tests/ref/lavf/flv diff --git a/tests/ref/lavf/gbrap.fits b/ffmpeg-y/tests/ref/lavf/gbrap.fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gbrap.fits rename to ffmpeg-y/tests/ref/lavf/gbrap.fits diff --git a/tests/ref/lavf/gbrap16be.fits b/ffmpeg-y/tests/ref/lavf/gbrap16be.fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gbrap16be.fits rename to ffmpeg-y/tests/ref/lavf/gbrap16be.fits diff --git a/tests/ref/lavf/gbrp.fits b/ffmpeg-y/tests/ref/lavf/gbrp.fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gbrp.fits rename to ffmpeg-y/tests/ref/lavf/gbrp.fits diff --git a/tests/ref/lavf/gbrp10le.dpx b/ffmpeg-y/tests/ref/lavf/gbrp10le.dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gbrp10le.dpx rename to ffmpeg-y/tests/ref/lavf/gbrp10le.dpx diff --git a/tests/ref/lavf/gbrp12le.dpx b/ffmpeg-y/tests/ref/lavf/gbrp12le.dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gbrp12le.dpx rename to ffmpeg-y/tests/ref/lavf/gbrp12le.dpx diff --git a/tests/ref/lavf/gbrp16be.fits b/ffmpeg-y/tests/ref/lavf/gbrp16be.fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gbrp16be.fits rename to ffmpeg-y/tests/ref/lavf/gbrp16be.fits diff --git a/tests/ref/lavf/gif b/ffmpeg-y/tests/ref/lavf/gif old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gif rename to ffmpeg-y/tests/ref/lavf/gif diff --git a/tests/ref/lavf/gray.fits b/ffmpeg-y/tests/ref/lavf/gray.fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gray.fits rename to ffmpeg-y/tests/ref/lavf/gray.fits diff --git a/tests/ref/lavf/gray.pam b/ffmpeg-y/tests/ref/lavf/gray.pam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gray.pam rename to ffmpeg-y/tests/ref/lavf/gray.pam diff --git a/tests/ref/lavf/gray.xwd b/ffmpeg-y/tests/ref/lavf/gray.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gray.xwd rename to ffmpeg-y/tests/ref/lavf/gray.xwd diff --git a/tests/ref/lavf/gray16be.fits b/ffmpeg-y/tests/ref/lavf/gray16be.fits old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gray16be.fits rename to ffmpeg-y/tests/ref/lavf/gray16be.fits diff --git a/tests/ref/lavf/gray16be.pam b/ffmpeg-y/tests/ref/lavf/gray16be.pam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gray16be.pam rename to ffmpeg-y/tests/ref/lavf/gray16be.pam diff --git a/tests/ref/lavf/gray16be.png b/ffmpeg-y/tests/ref/lavf/gray16be.png old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gray16be.png rename to ffmpeg-y/tests/ref/lavf/gray16be.png diff --git a/tests/ref/lavf/gxf b/ffmpeg-y/tests/ref/lavf/gxf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gxf rename to ffmpeg-y/tests/ref/lavf/gxf diff --git a/tests/ref/lavf/gxf_ntsc b/ffmpeg-y/tests/ref/lavf/gxf_ntsc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gxf_ntsc rename to ffmpeg-y/tests/ref/lavf/gxf_ntsc diff --git a/tests/ref/lavf/gxf_pal b/ffmpeg-y/tests/ref/lavf/gxf_pal old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/gxf_pal rename to ffmpeg-y/tests/ref/lavf/gxf_pal diff --git a/tests/ref/lavf/ircam b/ffmpeg-y/tests/ref/lavf/ircam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ircam rename to ffmpeg-y/tests/ref/lavf/ircam diff --git a/tests/ref/lavf/ismv b/ffmpeg-y/tests/ref/lavf/ismv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ismv rename to ffmpeg-y/tests/ref/lavf/ismv diff --git a/tests/ref/lavf/jpg b/ffmpeg-y/tests/ref/lavf/jpg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/jpg rename to ffmpeg-y/tests/ref/lavf/jpg diff --git a/tests/ref/lavf/mka b/ffmpeg-y/tests/ref/lavf/mka old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mka rename to ffmpeg-y/tests/ref/lavf/mka diff --git a/tests/ref/lavf/mkv b/ffmpeg-y/tests/ref/lavf/mkv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mkv rename to ffmpeg-y/tests/ref/lavf/mkv diff --git a/tests/ref/lavf/mkv_attachment b/ffmpeg-y/tests/ref/lavf/mkv_attachment old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mkv_attachment rename to ffmpeg-y/tests/ref/lavf/mkv_attachment diff --git a/tests/ref/lavf/mmf b/ffmpeg-y/tests/ref/lavf/mmf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mmf rename to ffmpeg-y/tests/ref/lavf/mmf diff --git a/tests/ref/lavf/monob.pam b/ffmpeg-y/tests/ref/lavf/monob.pam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/monob.pam rename to ffmpeg-y/tests/ref/lavf/monob.pam diff --git a/tests/ref/lavf/monow.xwd b/ffmpeg-y/tests/ref/lavf/monow.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/monow.xwd rename to ffmpeg-y/tests/ref/lavf/monow.xwd diff --git a/tests/ref/lavf/mov b/ffmpeg-y/tests/ref/lavf/mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mov rename to ffmpeg-y/tests/ref/lavf/mov diff --git a/tests/ref/lavf/mov_rtphint b/ffmpeg-y/tests/ref/lavf/mov_rtphint old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mov_rtphint rename to ffmpeg-y/tests/ref/lavf/mov_rtphint diff --git a/tests/ref/lavf/mp4 b/ffmpeg-y/tests/ref/lavf/mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mp4 rename to ffmpeg-y/tests/ref/lavf/mp4 diff --git a/tests/ref/lavf/mpg b/ffmpeg-y/tests/ref/lavf/mpg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mpg rename to ffmpeg-y/tests/ref/lavf/mpg diff --git a/tests/ref/lavf/mxf b/ffmpeg-y/tests/ref/lavf/mxf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mxf rename to ffmpeg-y/tests/ref/lavf/mxf diff --git a/tests/ref/lavf/mxf_d10 b/ffmpeg-y/tests/ref/lavf/mxf_d10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mxf_d10 rename to ffmpeg-y/tests/ref/lavf/mxf_d10 diff --git a/tests/ref/lavf/mxf_dv25 b/ffmpeg-y/tests/ref/lavf/mxf_dv25 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mxf_dv25 rename to ffmpeg-y/tests/ref/lavf/mxf_dv25 diff --git a/tests/ref/lavf/mxf_dvcpro50 b/ffmpeg-y/tests/ref/lavf/mxf_dvcpro50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mxf_dvcpro50 rename to ffmpeg-y/tests/ref/lavf/mxf_dvcpro50 diff --git a/tests/ref/lavf/mxf_opatom b/ffmpeg-y/tests/ref/lavf/mxf_opatom old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mxf_opatom rename to ffmpeg-y/tests/ref/lavf/mxf_opatom diff --git a/tests/ref/lavf/mxf_opatom_audio b/ffmpeg-y/tests/ref/lavf/mxf_opatom_audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/mxf_opatom_audio rename to ffmpeg-y/tests/ref/lavf/mxf_opatom_audio diff --git a/tests/ref/lavf/nut b/ffmpeg-y/tests/ref/lavf/nut old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/nut rename to ffmpeg-y/tests/ref/lavf/nut diff --git a/tests/ref/lavf/ogg b/ffmpeg-y/tests/ref/lavf/ogg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ogg rename to ffmpeg-y/tests/ref/lavf/ogg diff --git a/tests/ref/lavf/pam b/ffmpeg-y/tests/ref/lavf/pam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/pam rename to ffmpeg-y/tests/ref/lavf/pam diff --git a/tests/ref/lavf/pbmpipe b/ffmpeg-y/tests/ref/lavf/pbmpipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/pbmpipe rename to ffmpeg-y/tests/ref/lavf/pbmpipe diff --git a/tests/ref/lavf/pcx b/ffmpeg-y/tests/ref/lavf/pcx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/pcx rename to ffmpeg-y/tests/ref/lavf/pcx diff --git a/tests/ref/lavf/peak.wav b/ffmpeg-y/tests/ref/lavf/peak.wav old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/peak.wav rename to ffmpeg-y/tests/ref/lavf/peak.wav diff --git a/tests/ref/lavf/peak_only.wav b/ffmpeg-y/tests/ref/lavf/peak_only.wav old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/peak_only.wav rename to ffmpeg-y/tests/ref/lavf/peak_only.wav diff --git a/tests/ref/lavf/pgm b/ffmpeg-y/tests/ref/lavf/pgm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/pgm rename to ffmpeg-y/tests/ref/lavf/pgm diff --git a/tests/ref/lavf/pgmpipe b/ffmpeg-y/tests/ref/lavf/pgmpipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/pgmpipe rename to ffmpeg-y/tests/ref/lavf/pgmpipe diff --git a/tests/ref/lavf/png b/ffmpeg-y/tests/ref/lavf/png old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/png rename to ffmpeg-y/tests/ref/lavf/png diff --git a/tests/ref/lavf/ppm b/ffmpeg-y/tests/ref/lavf/ppm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ppm rename to ffmpeg-y/tests/ref/lavf/ppm diff --git a/tests/ref/lavf/ppmpipe b/ffmpeg-y/tests/ref/lavf/ppmpipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ppmpipe rename to ffmpeg-y/tests/ref/lavf/ppmpipe diff --git a/tests/ref/lavf/rgb48be.pam b/ffmpeg-y/tests/ref/lavf/rgb48be.pam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb48be.pam rename to ffmpeg-y/tests/ref/lavf/rgb48be.pam diff --git a/tests/ref/lavf/rgb48be.png b/ffmpeg-y/tests/ref/lavf/rgb48be.png old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb48be.png rename to ffmpeg-y/tests/ref/lavf/rgb48be.png diff --git a/tests/ref/lavf/rgb48le.dpx b/ffmpeg-y/tests/ref/lavf/rgb48le.dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb48le.dpx rename to ffmpeg-y/tests/ref/lavf/rgb48le.dpx diff --git a/tests/ref/lavf/rgb48le_10.dpx b/ffmpeg-y/tests/ref/lavf/rgb48le_10.dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb48le_10.dpx rename to ffmpeg-y/tests/ref/lavf/rgb48le_10.dpx diff --git a/tests/ref/lavf/rgb4_byte.xwd b/ffmpeg-y/tests/ref/lavf/rgb4_byte.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb4_byte.xwd rename to ffmpeg-y/tests/ref/lavf/rgb4_byte.xwd diff --git a/tests/ref/lavf/rgb555be.xwd b/ffmpeg-y/tests/ref/lavf/rgb555be.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb555be.xwd rename to ffmpeg-y/tests/ref/lavf/rgb555be.xwd diff --git a/tests/ref/lavf/rgb565be.xwd b/ffmpeg-y/tests/ref/lavf/rgb565be.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb565be.xwd rename to ffmpeg-y/tests/ref/lavf/rgb565be.xwd diff --git a/tests/ref/lavf/rgb8.xwd b/ffmpeg-y/tests/ref/lavf/rgb8.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgb8.xwd rename to ffmpeg-y/tests/ref/lavf/rgb8.xwd diff --git a/tests/ref/lavf/rgba.pam b/ffmpeg-y/tests/ref/lavf/rgba.pam old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgba.pam rename to ffmpeg-y/tests/ref/lavf/rgba.pam diff --git a/tests/ref/lavf/rgba.xwd b/ffmpeg-y/tests/ref/lavf/rgba.xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgba.xwd rename to ffmpeg-y/tests/ref/lavf/rgba.xwd diff --git a/tests/ref/lavf/rgba64le.dpx b/ffmpeg-y/tests/ref/lavf/rgba64le.dpx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rgba64le.dpx rename to ffmpeg-y/tests/ref/lavf/rgba64le.dpx diff --git a/tests/ref/lavf/rm b/ffmpeg-y/tests/ref/lavf/rm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rm rename to ffmpeg-y/tests/ref/lavf/rm diff --git a/tests/ref/lavf/rso b/ffmpeg-y/tests/ref/lavf/rso old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/rso rename to ffmpeg-y/tests/ref/lavf/rso diff --git a/tests/ref/lavf/s16.voc b/ffmpeg-y/tests/ref/lavf/s16.voc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/s16.voc rename to ffmpeg-y/tests/ref/lavf/s16.voc diff --git a/tests/ref/lavf/sgi b/ffmpeg-y/tests/ref/lavf/sgi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/sgi rename to ffmpeg-y/tests/ref/lavf/sgi diff --git a/tests/ref/lavf/smjpeg b/ffmpeg-y/tests/ref/lavf/smjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/smjpeg rename to ffmpeg-y/tests/ref/lavf/smjpeg diff --git a/tests/ref/lavf/sox b/ffmpeg-y/tests/ref/lavf/sox old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/sox rename to ffmpeg-y/tests/ref/lavf/sox diff --git a/tests/ref/lavf/sun b/ffmpeg-y/tests/ref/lavf/sun old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/sun rename to ffmpeg-y/tests/ref/lavf/sun diff --git a/tests/ref/lavf/swf b/ffmpeg-y/tests/ref/lavf/swf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/swf rename to ffmpeg-y/tests/ref/lavf/swf diff --git a/tests/ref/lavf/tga b/ffmpeg-y/tests/ref/lavf/tga old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/tga rename to ffmpeg-y/tests/ref/lavf/tga diff --git a/tests/ref/lavf/tiff b/ffmpeg-y/tests/ref/lavf/tiff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/tiff rename to ffmpeg-y/tests/ref/lavf/tiff diff --git a/tests/ref/lavf/ts b/ffmpeg-y/tests/ref/lavf/ts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ts rename to ffmpeg-y/tests/ref/lavf/ts diff --git a/tests/ref/lavf/tta b/ffmpeg-y/tests/ref/lavf/tta old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/tta rename to ffmpeg-y/tests/ref/lavf/tta diff --git a/tests/ref/lavf/ul b/ffmpeg-y/tests/ref/lavf/ul old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/ul rename to ffmpeg-y/tests/ref/lavf/ul diff --git a/tests/ref/lavf/voc b/ffmpeg-y/tests/ref/lavf/voc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/voc rename to ffmpeg-y/tests/ref/lavf/voc diff --git a/tests/ref/lavf/w64 b/ffmpeg-y/tests/ref/lavf/w64 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/w64 rename to ffmpeg-y/tests/ref/lavf/w64 diff --git a/tests/ref/lavf/wav b/ffmpeg-y/tests/ref/lavf/wav old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/wav rename to ffmpeg-y/tests/ref/lavf/wav diff --git a/tests/ref/lavf/wtv b/ffmpeg-y/tests/ref/lavf/wtv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/wtv rename to ffmpeg-y/tests/ref/lavf/wtv diff --git a/tests/ref/lavf/wv b/ffmpeg-y/tests/ref/lavf/wv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/wv rename to ffmpeg-y/tests/ref/lavf/wv diff --git a/tests/ref/lavf/xbm b/ffmpeg-y/tests/ref/lavf/xbm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/xbm rename to ffmpeg-y/tests/ref/lavf/xbm diff --git a/tests/ref/lavf/xwd b/ffmpeg-y/tests/ref/lavf/xwd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/xwd rename to ffmpeg-y/tests/ref/lavf/xwd diff --git a/tests/ref/lavf/y4m b/ffmpeg-y/tests/ref/lavf/y4m old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/lavf/y4m rename to ffmpeg-y/tests/ref/lavf/y4m diff --git a/tests/ref/pixfmt/bgr24 b/ffmpeg-y/tests/ref/pixfmt/bgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/bgr24 rename to ffmpeg-y/tests/ref/pixfmt/bgr24 diff --git a/tests/ref/pixfmt/gray b/ffmpeg-y/tests/ref/pixfmt/gray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/gray rename to ffmpeg-y/tests/ref/pixfmt/gray diff --git a/tests/ref/pixfmt/monob b/ffmpeg-y/tests/ref/pixfmt/monob old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/monob rename to ffmpeg-y/tests/ref/pixfmt/monob diff --git a/tests/ref/pixfmt/monow b/ffmpeg-y/tests/ref/pixfmt/monow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/monow rename to ffmpeg-y/tests/ref/pixfmt/monow diff --git a/tests/ref/pixfmt/rgb24 b/ffmpeg-y/tests/ref/pixfmt/rgb24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/rgb24 rename to ffmpeg-y/tests/ref/pixfmt/rgb24 diff --git a/tests/ref/pixfmt/rgb32 b/ffmpeg-y/tests/ref/pixfmt/rgb32 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/rgb32 rename to ffmpeg-y/tests/ref/pixfmt/rgb32 diff --git a/tests/ref/pixfmt/rgb555 b/ffmpeg-y/tests/ref/pixfmt/rgb555 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/rgb555 rename to ffmpeg-y/tests/ref/pixfmt/rgb555 diff --git a/tests/ref/pixfmt/rgb565 b/ffmpeg-y/tests/ref/pixfmt/rgb565 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/rgb565 rename to ffmpeg-y/tests/ref/pixfmt/rgb565 diff --git a/tests/ref/pixfmt/yuv410p b/ffmpeg-y/tests/ref/pixfmt/yuv410p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuv410p rename to ffmpeg-y/tests/ref/pixfmt/yuv410p diff --git a/tests/ref/pixfmt/yuv411p b/ffmpeg-y/tests/ref/pixfmt/yuv411p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuv411p rename to ffmpeg-y/tests/ref/pixfmt/yuv411p diff --git a/tests/ref/pixfmt/yuv420p b/ffmpeg-y/tests/ref/pixfmt/yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuv420p rename to ffmpeg-y/tests/ref/pixfmt/yuv420p diff --git a/tests/ref/pixfmt/yuv422p b/ffmpeg-y/tests/ref/pixfmt/yuv422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuv422p rename to ffmpeg-y/tests/ref/pixfmt/yuv422p diff --git a/tests/ref/pixfmt/yuv440p b/ffmpeg-y/tests/ref/pixfmt/yuv440p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuv440p rename to ffmpeg-y/tests/ref/pixfmt/yuv440p diff --git a/tests/ref/pixfmt/yuv444p b/ffmpeg-y/tests/ref/pixfmt/yuv444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuv444p rename to ffmpeg-y/tests/ref/pixfmt/yuv444p diff --git a/tests/ref/pixfmt/yuvj420p b/ffmpeg-y/tests/ref/pixfmt/yuvj420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuvj420p rename to ffmpeg-y/tests/ref/pixfmt/yuvj420p diff --git a/tests/ref/pixfmt/yuvj422p b/ffmpeg-y/tests/ref/pixfmt/yuvj422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuvj422p rename to ffmpeg-y/tests/ref/pixfmt/yuvj422p diff --git a/tests/ref/pixfmt/yuvj440p b/ffmpeg-y/tests/ref/pixfmt/yuvj440p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuvj440p rename to ffmpeg-y/tests/ref/pixfmt/yuvj440p diff --git a/tests/ref/pixfmt/yuvj444p b/ffmpeg-y/tests/ref/pixfmt/yuvj444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuvj444p rename to ffmpeg-y/tests/ref/pixfmt/yuvj444p diff --git a/tests/ref/pixfmt/yuyv422 b/ffmpeg-y/tests/ref/pixfmt/yuyv422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/pixfmt/yuyv422 rename to ffmpeg-y/tests/ref/pixfmt/yuyv422 diff --git a/tests/ref/seek/acodec-adpcm-ima_qt b/ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_qt old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-ima_qt rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_qt diff --git a/tests/ref/seek/acodec-adpcm-ima_qt-trellis b/ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_qt-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-ima_qt-trellis rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_qt-trellis diff --git a/tests/ref/seek/acodec-adpcm-ima_wav b/ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_wav old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-ima_wav rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_wav diff --git a/tests/ref/seek/acodec-adpcm-ima_wav-trellis b/ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_wav-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-ima_wav-trellis rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-ima_wav-trellis diff --git a/tests/ref/seek/acodec-adpcm-ms b/ffmpeg-y/tests/ref/seek/acodec-adpcm-ms old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-ms rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-ms diff --git a/tests/ref/seek/acodec-adpcm-ms-trellis b/ffmpeg-y/tests/ref/seek/acodec-adpcm-ms-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-ms-trellis rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-ms-trellis diff --git a/tests/ref/seek/acodec-adpcm-swf b/ffmpeg-y/tests/ref/seek/acodec-adpcm-swf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-swf rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-swf diff --git a/tests/ref/seek/acodec-adpcm-swf-trellis b/ffmpeg-y/tests/ref/seek/acodec-adpcm-swf-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-swf-trellis rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-swf-trellis diff --git a/tests/ref/seek/acodec-adpcm-yamaha b/ffmpeg-y/tests/ref/seek/acodec-adpcm-yamaha old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-yamaha rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-yamaha diff --git a/tests/ref/seek/acodec-adpcm-yamaha-trellis b/ffmpeg-y/tests/ref/seek/acodec-adpcm-yamaha-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-adpcm-yamaha-trellis rename to ffmpeg-y/tests/ref/seek/acodec-adpcm-yamaha-trellis diff --git a/tests/ref/seek/acodec-alac b/ffmpeg-y/tests/ref/seek/acodec-alac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-alac rename to ffmpeg-y/tests/ref/seek/acodec-alac diff --git a/tests/ref/seek/acodec-flac b/ffmpeg-y/tests/ref/seek/acodec-flac old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-flac rename to ffmpeg-y/tests/ref/seek/acodec-flac diff --git a/tests/ref/seek/acodec-mp2 b/ffmpeg-y/tests/ref/seek/acodec-mp2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-mp2 rename to ffmpeg-y/tests/ref/seek/acodec-mp2 diff --git a/tests/ref/seek/acodec-pcm-alaw b/ffmpeg-y/tests/ref/seek/acodec-pcm-alaw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-alaw rename to ffmpeg-y/tests/ref/seek/acodec-pcm-alaw diff --git a/tests/ref/seek/acodec-pcm-f32be b/ffmpeg-y/tests/ref/seek/acodec-pcm-f32be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-f32be rename to ffmpeg-y/tests/ref/seek/acodec-pcm-f32be diff --git a/tests/ref/seek/acodec-pcm-f32le b/ffmpeg-y/tests/ref/seek/acodec-pcm-f32le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-f32le rename to ffmpeg-y/tests/ref/seek/acodec-pcm-f32le diff --git a/tests/ref/seek/acodec-pcm-f64be b/ffmpeg-y/tests/ref/seek/acodec-pcm-f64be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-f64be rename to ffmpeg-y/tests/ref/seek/acodec-pcm-f64be diff --git a/tests/ref/seek/acodec-pcm-f64le b/ffmpeg-y/tests/ref/seek/acodec-pcm-f64le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-f64le rename to ffmpeg-y/tests/ref/seek/acodec-pcm-f64le diff --git a/tests/ref/seek/acodec-pcm-mulaw b/ffmpeg-y/tests/ref/seek/acodec-pcm-mulaw old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-mulaw rename to ffmpeg-y/tests/ref/seek/acodec-pcm-mulaw diff --git a/tests/ref/seek/acodec-pcm-s16be b/ffmpeg-y/tests/ref/seek/acodec-pcm-s16be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s16be rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s16be diff --git a/tests/ref/seek/acodec-pcm-s16le b/ffmpeg-y/tests/ref/seek/acodec-pcm-s16le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s16le rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s16le diff --git a/tests/ref/seek/acodec-pcm-s24be b/ffmpeg-y/tests/ref/seek/acodec-pcm-s24be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s24be rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s24be diff --git a/tests/ref/seek/acodec-pcm-s24le b/ffmpeg-y/tests/ref/seek/acodec-pcm-s24le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s24le rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s24le diff --git a/tests/ref/seek/acodec-pcm-s32be b/ffmpeg-y/tests/ref/seek/acodec-pcm-s32be old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s32be rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s32be diff --git a/tests/ref/seek/acodec-pcm-s32le b/ffmpeg-y/tests/ref/seek/acodec-pcm-s32le old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s32le rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s32le diff --git a/tests/ref/seek/acodec-pcm-s8 b/ffmpeg-y/tests/ref/seek/acodec-pcm-s8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-s8 rename to ffmpeg-y/tests/ref/seek/acodec-pcm-s8 diff --git a/tests/ref/seek/acodec-pcm-u8 b/ffmpeg-y/tests/ref/seek/acodec-pcm-u8 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/acodec-pcm-u8 rename to ffmpeg-y/tests/ref/seek/acodec-pcm-u8 diff --git a/tests/ref/seek/cache-pipe b/ffmpeg-y/tests/ref/seek/cache-pipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/cache-pipe rename to ffmpeg-y/tests/ref/seek/cache-pipe diff --git a/tests/ref/seek/empty-edit-mp4 b/ffmpeg-y/tests/ref/seek/empty-edit-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/empty-edit-mp4 rename to ffmpeg-y/tests/ref/seek/empty-edit-mp4 diff --git a/tests/ref/seek/extra-mp3 b/ffmpeg-y/tests/ref/seek/extra-mp3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/extra-mp3 rename to ffmpeg-y/tests/ref/seek/extra-mp3 diff --git a/tests/ref/seek/extra-mp4 b/ffmpeg-y/tests/ref/seek/extra-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/extra-mp4 rename to ffmpeg-y/tests/ref/seek/extra-mp4 diff --git a/tests/ref/seek/lavf-aiff b/ffmpeg-y/tests/ref/seek/lavf-aiff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-aiff rename to ffmpeg-y/tests/ref/seek/lavf-aiff diff --git a/tests/ref/seek/lavf-al b/ffmpeg-y/tests/ref/seek/lavf-al old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-al rename to ffmpeg-y/tests/ref/seek/lavf-al diff --git a/tests/ref/seek/lavf-asf b/ffmpeg-y/tests/ref/seek/lavf-asf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-asf rename to ffmpeg-y/tests/ref/seek/lavf-asf diff --git a/tests/ref/seek/lavf-au b/ffmpeg-y/tests/ref/seek/lavf-au old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-au rename to ffmpeg-y/tests/ref/seek/lavf-au diff --git a/tests/ref/seek/lavf-avi b/ffmpeg-y/tests/ref/seek/lavf-avi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-avi rename to ffmpeg-y/tests/ref/seek/lavf-avi diff --git a/tests/ref/seek/lavf-bmp b/ffmpeg-y/tests/ref/seek/lavf-bmp old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-bmp rename to ffmpeg-y/tests/ref/seek/lavf-bmp diff --git a/tests/ref/seek/lavf-dv b/ffmpeg-y/tests/ref/seek/lavf-dv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-dv rename to ffmpeg-y/tests/ref/seek/lavf-dv diff --git a/tests/ref/seek/lavf-flv b/ffmpeg-y/tests/ref/seek/lavf-flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-flv rename to ffmpeg-y/tests/ref/seek/lavf-flv diff --git a/tests/ref/seek/lavf-gif b/ffmpeg-y/tests/ref/seek/lavf-gif old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-gif rename to ffmpeg-y/tests/ref/seek/lavf-gif diff --git a/tests/ref/seek/lavf-gxf b/ffmpeg-y/tests/ref/seek/lavf-gxf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-gxf rename to ffmpeg-y/tests/ref/seek/lavf-gxf diff --git a/tests/ref/seek/lavf-jpg b/ffmpeg-y/tests/ref/seek/lavf-jpg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-jpg rename to ffmpeg-y/tests/ref/seek/lavf-jpg diff --git a/tests/ref/seek/lavf-mkv b/ffmpeg-y/tests/ref/seek/lavf-mkv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mkv rename to ffmpeg-y/tests/ref/seek/lavf-mkv diff --git a/tests/ref/seek/lavf-mmf b/ffmpeg-y/tests/ref/seek/lavf-mmf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mmf rename to ffmpeg-y/tests/ref/seek/lavf-mmf diff --git a/tests/ref/seek/lavf-mov b/ffmpeg-y/tests/ref/seek/lavf-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mov rename to ffmpeg-y/tests/ref/seek/lavf-mov diff --git a/tests/ref/seek/lavf-mpg b/ffmpeg-y/tests/ref/seek/lavf-mpg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mpg rename to ffmpeg-y/tests/ref/seek/lavf-mpg diff --git a/tests/ref/seek/lavf-mxf b/ffmpeg-y/tests/ref/seek/lavf-mxf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mxf rename to ffmpeg-y/tests/ref/seek/lavf-mxf diff --git a/tests/ref/seek/lavf-mxf_d10 b/ffmpeg-y/tests/ref/seek/lavf-mxf_d10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mxf_d10 rename to ffmpeg-y/tests/ref/seek/lavf-mxf_d10 diff --git a/tests/ref/seek/lavf-mxf_dv25 b/ffmpeg-y/tests/ref/seek/lavf-mxf_dv25 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mxf_dv25 rename to ffmpeg-y/tests/ref/seek/lavf-mxf_dv25 diff --git a/tests/ref/seek/lavf-mxf_dvcpro50 b/ffmpeg-y/tests/ref/seek/lavf-mxf_dvcpro50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mxf_dvcpro50 rename to ffmpeg-y/tests/ref/seek/lavf-mxf_dvcpro50 diff --git a/tests/ref/seek/lavf-mxf_opatom b/ffmpeg-y/tests/ref/seek/lavf-mxf_opatom old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mxf_opatom rename to ffmpeg-y/tests/ref/seek/lavf-mxf_opatom diff --git a/tests/ref/seek/lavf-mxf_opatom_audio b/ffmpeg-y/tests/ref/seek/lavf-mxf_opatom_audio old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-mxf_opatom_audio rename to ffmpeg-y/tests/ref/seek/lavf-mxf_opatom_audio diff --git a/tests/ref/seek/lavf-nut b/ffmpeg-y/tests/ref/seek/lavf-nut old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-nut rename to ffmpeg-y/tests/ref/seek/lavf-nut diff --git a/tests/ref/seek/lavf-ogg b/ffmpeg-y/tests/ref/seek/lavf-ogg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-ogg rename to ffmpeg-y/tests/ref/seek/lavf-ogg diff --git a/tests/ref/seek/lavf-pbmpipe b/ffmpeg-y/tests/ref/seek/lavf-pbmpipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-pbmpipe rename to ffmpeg-y/tests/ref/seek/lavf-pbmpipe diff --git a/tests/ref/seek/lavf-pcx b/ffmpeg-y/tests/ref/seek/lavf-pcx old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-pcx rename to ffmpeg-y/tests/ref/seek/lavf-pcx diff --git a/tests/ref/seek/lavf-pgm b/ffmpeg-y/tests/ref/seek/lavf-pgm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-pgm rename to ffmpeg-y/tests/ref/seek/lavf-pgm diff --git a/tests/ref/seek/lavf-pgmpipe b/ffmpeg-y/tests/ref/seek/lavf-pgmpipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-pgmpipe rename to ffmpeg-y/tests/ref/seek/lavf-pgmpipe diff --git a/tests/ref/seek/lavf-ppm b/ffmpeg-y/tests/ref/seek/lavf-ppm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-ppm rename to ffmpeg-y/tests/ref/seek/lavf-ppm diff --git a/tests/ref/seek/lavf-ppmpipe b/ffmpeg-y/tests/ref/seek/lavf-ppmpipe old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-ppmpipe rename to ffmpeg-y/tests/ref/seek/lavf-ppmpipe diff --git a/tests/ref/seek/lavf-rm b/ffmpeg-y/tests/ref/seek/lavf-rm old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-rm rename to ffmpeg-y/tests/ref/seek/lavf-rm diff --git a/tests/ref/seek/lavf-sgi b/ffmpeg-y/tests/ref/seek/lavf-sgi old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-sgi rename to ffmpeg-y/tests/ref/seek/lavf-sgi diff --git a/tests/ref/seek/lavf-swf b/ffmpeg-y/tests/ref/seek/lavf-swf old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-swf rename to ffmpeg-y/tests/ref/seek/lavf-swf diff --git a/tests/ref/seek/lavf-tga b/ffmpeg-y/tests/ref/seek/lavf-tga old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-tga rename to ffmpeg-y/tests/ref/seek/lavf-tga diff --git a/tests/ref/seek/lavf-tiff b/ffmpeg-y/tests/ref/seek/lavf-tiff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-tiff rename to ffmpeg-y/tests/ref/seek/lavf-tiff diff --git a/tests/ref/seek/lavf-ts b/ffmpeg-y/tests/ref/seek/lavf-ts old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-ts rename to ffmpeg-y/tests/ref/seek/lavf-ts diff --git a/tests/ref/seek/lavf-ul b/ffmpeg-y/tests/ref/seek/lavf-ul old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-ul rename to ffmpeg-y/tests/ref/seek/lavf-ul diff --git a/tests/ref/seek/lavf-voc b/ffmpeg-y/tests/ref/seek/lavf-voc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-voc rename to ffmpeg-y/tests/ref/seek/lavf-voc diff --git a/tests/ref/seek/lavf-wav b/ffmpeg-y/tests/ref/seek/lavf-wav old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-wav rename to ffmpeg-y/tests/ref/seek/lavf-wav diff --git a/tests/ref/seek/lavf-wtv b/ffmpeg-y/tests/ref/seek/lavf-wtv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-wtv rename to ffmpeg-y/tests/ref/seek/lavf-wtv diff --git a/tests/ref/seek/lavf-y4m b/ffmpeg-y/tests/ref/seek/lavf-y4m old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/lavf-y4m rename to ffmpeg-y/tests/ref/seek/lavf-y4m diff --git a/tests/ref/seek/mkv-codec-delay b/ffmpeg-y/tests/ref/seek/mkv-codec-delay old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/mkv-codec-delay rename to ffmpeg-y/tests/ref/seek/mkv-codec-delay diff --git a/tests/ref/seek/test-iibbibb-mp4 b/ffmpeg-y/tests/ref/seek/test-iibbibb-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/test-iibbibb-mp4 rename to ffmpeg-y/tests/ref/seek/test-iibbibb-mp4 diff --git a/tests/ref/seek/test-iibbibb-neg-ctts-mp4 b/ffmpeg-y/tests/ref/seek/test-iibbibb-neg-ctts-mp4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/test-iibbibb-neg-ctts-mp4 rename to ffmpeg-y/tests/ref/seek/test-iibbibb-neg-ctts-mp4 diff --git a/tests/ref/seek/vsynth_lena-asv1 b/ffmpeg-y/tests/ref/seek/vsynth_lena-asv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-asv1 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-asv1 diff --git a/tests/ref/seek/vsynth_lena-asv2 b/ffmpeg-y/tests/ref/seek/vsynth_lena-asv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-asv2 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-asv2 diff --git a/tests/ref/seek/vsynth_lena-dnxhd-1080i b/ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-1080i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dnxhd-1080i rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-1080i diff --git a/tests/ref/seek/vsynth_lena-dnxhd-4k-hr-lb b/ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-4k-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dnxhd-4k-hr-lb rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-4k-hr-lb diff --git a/tests/ref/seek/vsynth_lena-dnxhd-720p b/ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-720p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dnxhd-720p rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-720p diff --git a/tests/ref/seek/vsynth_lena-dnxhd-720p-rd b/ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-720p-rd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dnxhd-720p-rd rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dnxhd-720p-rd diff --git a/tests/ref/seek/vsynth_lena-dv b/ffmpeg-y/tests/ref/seek/vsynth_lena-dv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dv rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dv diff --git a/tests/ref/seek/vsynth_lena-dv-411 b/ffmpeg-y/tests/ref/seek/vsynth_lena-dv-411 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dv-411 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dv-411 diff --git a/tests/ref/seek/vsynth_lena-dv-50 b/ffmpeg-y/tests/ref/seek/vsynth_lena-dv-50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-dv-50 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-dv-50 diff --git a/tests/ref/seek/vsynth_lena-ffv1 b/ffmpeg-y/tests/ref/seek/vsynth_lena-ffv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-ffv1 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-ffv1 diff --git a/tests/ref/seek/vsynth_lena-flashsv b/ffmpeg-y/tests/ref/seek/vsynth_lena-flashsv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-flashsv rename to ffmpeg-y/tests/ref/seek/vsynth_lena-flashsv diff --git a/tests/ref/seek/vsynth_lena-flv b/ffmpeg-y/tests/ref/seek/vsynth_lena-flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-flv rename to ffmpeg-y/tests/ref/seek/vsynth_lena-flv diff --git a/tests/ref/seek/vsynth_lena-h261 b/ffmpeg-y/tests/ref/seek/vsynth_lena-h261 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-h261 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-h261 diff --git a/tests/ref/seek/vsynth_lena-h263 b/ffmpeg-y/tests/ref/seek/vsynth_lena-h263 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-h263 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-h263 diff --git a/tests/ref/seek/vsynth_lena-h263p b/ffmpeg-y/tests/ref/seek/vsynth_lena-h263p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-h263p rename to ffmpeg-y/tests/ref/seek/vsynth_lena-h263p diff --git a/tests/ref/seek/vsynth_lena-huffyuv b/ffmpeg-y/tests/ref/seek/vsynth_lena-huffyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-huffyuv rename to ffmpeg-y/tests/ref/seek/vsynth_lena-huffyuv diff --git a/tests/ref/seek/vsynth_lena-jpegls b/ffmpeg-y/tests/ref/seek/vsynth_lena-jpegls old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-jpegls rename to ffmpeg-y/tests/ref/seek/vsynth_lena-jpegls diff --git a/tests/ref/seek/vsynth_lena-ljpeg b/ffmpeg-y/tests/ref/seek/vsynth_lena-ljpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-ljpeg rename to ffmpeg-y/tests/ref/seek/vsynth_lena-ljpeg diff --git a/tests/ref/seek/vsynth_lena-mjpeg b/ffmpeg-y/tests/ref/seek/vsynth_lena-mjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mjpeg rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mjpeg diff --git a/tests/ref/seek/vsynth_lena-mpeg1 b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg1 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg1 diff --git a/tests/ref/seek/vsynth_lena-mpeg1b b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg1b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg1b rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg1b diff --git a/tests/ref/seek/vsynth_lena-mpeg2-422 b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg2-422 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-422 diff --git a/tests/ref/seek/vsynth_lena-mpeg2-idct-int b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-idct-int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg2-idct-int rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-idct-int diff --git a/tests/ref/seek/vsynth_lena-mpeg2-ilace b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-ilace old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg2-ilace rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-ilace diff --git a/tests/ref/seek/vsynth_lena-mpeg2-ivlc-qprd b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-ivlc-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg2-ivlc-qprd rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-ivlc-qprd diff --git a/tests/ref/seek/vsynth_lena-mpeg2-thread b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg2-thread rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-thread diff --git a/tests/ref/seek/vsynth_lena-mpeg2-thread-ivlc b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-thread-ivlc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg2-thread-ivlc rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg2-thread-ivlc diff --git a/tests/ref/seek/vsynth_lena-mpeg4 b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4 diff --git a/tests/ref/seek/vsynth_lena-mpeg4-adap b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-adap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-adap rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-adap diff --git a/tests/ref/seek/vsynth_lena-mpeg4-adv b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-adv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-adv rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-adv diff --git a/tests/ref/seek/vsynth_lena-mpeg4-error b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-error old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-error rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-error diff --git a/tests/ref/seek/vsynth_lena-mpeg4-nr b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-nr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-nr rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-nr diff --git a/tests/ref/seek/vsynth_lena-mpeg4-nsse b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-nsse old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-nsse rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-nsse diff --git a/tests/ref/seek/vsynth_lena-mpeg4-qpel b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-qpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-qpel rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-qpel diff --git a/tests/ref/seek/vsynth_lena-mpeg4-qprd b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-qprd rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-qprd diff --git a/tests/ref/seek/vsynth_lena-mpeg4-rc b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-rc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-rc rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-rc diff --git a/tests/ref/seek/vsynth_lena-mpeg4-thread b/ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-mpeg4-thread rename to ffmpeg-y/tests/ref/seek/vsynth_lena-mpeg4-thread diff --git a/tests/ref/seek/vsynth_lena-msmpeg4 b/ffmpeg-y/tests/ref/seek/vsynth_lena-msmpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-msmpeg4 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-msmpeg4 diff --git a/tests/ref/seek/vsynth_lena-msmpeg4v2 b/ffmpeg-y/tests/ref/seek/vsynth_lena-msmpeg4v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-msmpeg4v2 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-msmpeg4v2 diff --git a/tests/ref/seek/vsynth_lena-rgb b/ffmpeg-y/tests/ref/seek/vsynth_lena-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-rgb rename to ffmpeg-y/tests/ref/seek/vsynth_lena-rgb diff --git a/tests/ref/seek/vsynth_lena-roqvideo b/ffmpeg-y/tests/ref/seek/vsynth_lena-roqvideo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-roqvideo rename to ffmpeg-y/tests/ref/seek/vsynth_lena-roqvideo diff --git a/tests/ref/seek/vsynth_lena-rv10 b/ffmpeg-y/tests/ref/seek/vsynth_lena-rv10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-rv10 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-rv10 diff --git a/tests/ref/seek/vsynth_lena-rv20 b/ffmpeg-y/tests/ref/seek/vsynth_lena-rv20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-rv20 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-rv20 diff --git a/tests/ref/seek/vsynth_lena-snow b/ffmpeg-y/tests/ref/seek/vsynth_lena-snow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-snow rename to ffmpeg-y/tests/ref/seek/vsynth_lena-snow diff --git a/tests/ref/seek/vsynth_lena-snow-ll b/ffmpeg-y/tests/ref/seek/vsynth_lena-snow-ll old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-snow-ll rename to ffmpeg-y/tests/ref/seek/vsynth_lena-snow-ll diff --git a/tests/ref/seek/vsynth_lena-svq1 b/ffmpeg-y/tests/ref/seek/vsynth_lena-svq1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-svq1 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-svq1 diff --git a/tests/ref/seek/vsynth_lena-wmv1 b/ffmpeg-y/tests/ref/seek/vsynth_lena-wmv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-wmv1 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-wmv1 diff --git a/tests/ref/seek/vsynth_lena-wmv2 b/ffmpeg-y/tests/ref/seek/vsynth_lena-wmv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-wmv2 rename to ffmpeg-y/tests/ref/seek/vsynth_lena-wmv2 diff --git a/tests/ref/seek/vsynth_lena-yuv b/ffmpeg-y/tests/ref/seek/vsynth_lena-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/seek/vsynth_lena-yuv rename to ffmpeg-y/tests/ref/seek/vsynth_lena-yuv diff --git a/tests/ref/vsynth/vsynth1-amv b/ffmpeg-y/tests/ref/vsynth/vsynth1-amv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-amv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-amv diff --git a/tests/ref/vsynth/vsynth1-asv1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-asv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-asv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-asv1 diff --git a/tests/ref/vsynth/vsynth1-asv2 b/ffmpeg-y/tests/ref/vsynth/vsynth1-asv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-asv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-asv2 diff --git a/tests/ref/vsynth/vsynth1-avui b/ffmpeg-y/tests/ref/vsynth/vsynth1-avui old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-avui rename to ffmpeg-y/tests/ref/vsynth/vsynth1-avui diff --git a/tests/ref/vsynth/vsynth1-bpp1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-bpp1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-bpp1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-bpp1 diff --git a/tests/ref/vsynth/vsynth1-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth1-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-bpp15 diff --git a/tests/ref/vsynth/vsynth1-cinepak b/ffmpeg-y/tests/ref/vsynth/vsynth1-cinepak old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-cinepak rename to ffmpeg-y/tests/ref/vsynth/vsynth1-cinepak diff --git a/tests/ref/vsynth/vsynth1-cljr b/ffmpeg-y/tests/ref/vsynth/vsynth1-cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-cljr rename to ffmpeg-y/tests/ref/vsynth/vsynth1-cljr diff --git a/tests/ref/vsynth/vsynth1-dnxhd-1080i b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-1080i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-1080i rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-1080i diff --git a/tests/ref/vsynth/vsynth1-dnxhd-1080i-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-1080i-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-1080i-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-1080i-10bit diff --git a/tests/ref/vsynth/vsynth1-dnxhd-1080i-colr b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-1080i-colr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-1080i-colr rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-1080i-colr diff --git a/tests/ref/vsynth/vsynth1-dnxhd-2k-hr-hq b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-2k-hr-hq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-2k-hr-hq rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-2k-hr-hq diff --git a/tests/ref/vsynth/vsynth1-dnxhd-4k-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-4k-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-4k-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-4k-hr-lb diff --git a/tests/ref/vsynth/vsynth1-dnxhd-720p b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-720p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p diff --git a/tests/ref/vsynth/vsynth1-dnxhd-720p-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-720p-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p-10bit diff --git a/tests/ref/vsynth/vsynth1-dnxhd-720p-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-720p-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p-hr-lb diff --git a/tests/ref/vsynth/vsynth1-dnxhd-720p-rd b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p-rd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-720p-rd rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-720p-rd diff --git a/tests/ref/vsynth/vsynth1-dnxhd-edge1-hr b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-edge1-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-edge1-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-edge1-hr diff --git a/tests/ref/vsynth/vsynth1-dnxhd-edge2-hr b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-edge2-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-edge2-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-edge2-hr diff --git a/tests/ref/vsynth/vsynth1-dnxhd-edge3-hr b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-edge3-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-edge3-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-edge3-hr diff --git a/tests/ref/vsynth/vsynth1-dnxhd-hr-hq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-hr-hq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-hr-hq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-hr-hq-mov diff --git a/tests/ref/vsynth/vsynth1-dnxhd-hr-lb-mov b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-hr-lb-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-hr-lb-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-hr-lb-mov diff --git a/tests/ref/vsynth/vsynth1-dnxhd-hr-sq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-hr-sq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-hr-sq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-hr-sq-mov diff --git a/tests/ref/vsynth/vsynth1-dnxhd-uhd-hr-sq b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-uhd-hr-sq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd-uhd-hr-sq rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd-uhd-hr-sq diff --git a/tests/ref/vsynth/vsynth1-dnxhd_1080i b/ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd_1080i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dnxhd_1080i rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dnxhd_1080i diff --git a/tests/ref/vsynth/vsynth1-dv b/ffmpeg-y/tests/ref/vsynth/vsynth1-dv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dv diff --git a/tests/ref/vsynth/vsynth1-dv-411 b/ffmpeg-y/tests/ref/vsynth/vsynth1-dv-411 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dv-411 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dv-411 diff --git a/tests/ref/vsynth/vsynth1-dv-50 b/ffmpeg-y/tests/ref/vsynth/vsynth1-dv-50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dv-50 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dv-50 diff --git a/tests/ref/vsynth/vsynth1-dv_411 b/ffmpeg-y/tests/ref/vsynth/vsynth1-dv_411 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-dv_411 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-dv_411 diff --git a/tests/ref/vsynth/vsynth1-ffv1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1 diff --git a/tests/ref/vsynth/vsynth1-ffv1-v0 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1-v0 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v0 diff --git a/tests/ref/vsynth/vsynth1-ffv1-v3-bgr0 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-bgr0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1-v3-bgr0 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-bgr0 diff --git a/tests/ref/vsynth/vsynth1-ffv1-v3-rgb48 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1-v3-rgb48 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-rgb48 diff --git a/tests/ref/vsynth/vsynth1-ffv1-v3-yuv420p b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1-v3-yuv420p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-yuv420p diff --git a/tests/ref/vsynth/vsynth1-ffv1-v3-yuv422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-yuv422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1-v3-yuv422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-yuv422p10 diff --git a/tests/ref/vsynth/vsynth1-ffv1-v3-yuv444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-yuv444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffv1-v3-yuv444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffv1-v3-yuv444p16 diff --git a/tests/ref/vsynth/vsynth1-ffvhuff b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffvhuff rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff diff --git a/tests/ref/vsynth/vsynth1-ffvhuff420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffvhuff420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff420p12 diff --git a/tests/ref/vsynth/vsynth1-ffvhuff422p10left b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff422p10left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffvhuff422p10left rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff422p10left diff --git a/tests/ref/vsynth/vsynth1-ffvhuff444 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffvhuff444 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff444 diff --git a/tests/ref/vsynth/vsynth1-ffvhuff444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ffvhuff444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ffvhuff444p16 diff --git a/tests/ref/vsynth/vsynth1-flashsv b/ffmpeg-y/tests/ref/vsynth/vsynth1-flashsv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-flashsv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-flashsv diff --git a/tests/ref/vsynth/vsynth1-flashsv2 b/ffmpeg-y/tests/ref/vsynth/vsynth1-flashsv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-flashsv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-flashsv2 diff --git a/tests/ref/vsynth/vsynth1-flv b/ffmpeg-y/tests/ref/vsynth/vsynth1-flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-flv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-flv diff --git a/tests/ref/vsynth/vsynth1-h261 b/ffmpeg-y/tests/ref/vsynth/vsynth1-h261 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-h261 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-h261 diff --git a/tests/ref/vsynth/vsynth1-h261-trellis b/ffmpeg-y/tests/ref/vsynth/vsynth1-h261-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-h261-trellis rename to ffmpeg-y/tests/ref/vsynth/vsynth1-h261-trellis diff --git a/tests/ref/vsynth/vsynth1-h263 b/ffmpeg-y/tests/ref/vsynth/vsynth1-h263 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-h263 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-h263 diff --git a/tests/ref/vsynth/vsynth1-h263-obmc b/ffmpeg-y/tests/ref/vsynth/vsynth1-h263-obmc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-h263-obmc rename to ffmpeg-y/tests/ref/vsynth/vsynth1-h263-obmc diff --git a/tests/ref/vsynth/vsynth1-h263p b/ffmpeg-y/tests/ref/vsynth/vsynth1-h263p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-h263p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-h263p diff --git a/tests/ref/vsynth/vsynth1-huffyuv b/ffmpeg-y/tests/ref/vsynth/vsynth1-huffyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-huffyuv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-huffyuv diff --git a/tests/ref/vsynth/vsynth1-huffyuvbgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth1-huffyuvbgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-huffyuvbgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-huffyuvbgr24 diff --git a/tests/ref/vsynth/vsynth1-huffyuvbgra b/ffmpeg-y/tests/ref/vsynth/vsynth1-huffyuvbgra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-huffyuvbgra rename to ffmpeg-y/tests/ref/vsynth/vsynth1-huffyuvbgra diff --git a/tests/ref/vsynth/vsynth1-jpeg2000 b/ffmpeg-y/tests/ref/vsynth/vsynth1-jpeg2000 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-jpeg2000 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-jpeg2000 diff --git a/tests/ref/vsynth/vsynth1-jpeg2000-97 b/ffmpeg-y/tests/ref/vsynth/vsynth1-jpeg2000-97 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-jpeg2000-97 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-jpeg2000-97 diff --git a/tests/ref/vsynth/vsynth1-jpegls b/ffmpeg-y/tests/ref/vsynth/vsynth1-jpegls old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-jpegls rename to ffmpeg-y/tests/ref/vsynth/vsynth1-jpegls diff --git a/tests/ref/vsynth/vsynth1-ljpeg b/ffmpeg-y/tests/ref/vsynth/vsynth1-ljpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-ljpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth1-ljpeg diff --git a/tests/ref/vsynth/vsynth1-mjpeg b/ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mjpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg diff --git a/tests/ref/vsynth/vsynth1-mjpeg-422 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mjpeg-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-422 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-444 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mjpeg-444 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-444 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mjpeg-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-huffman diff --git a/tests/ref/vsynth/vsynth1-mjpeg-trell b/ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-trell old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mjpeg-trell rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-trell diff --git a/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mjpeg-trell-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mjpeg-trell-huffman diff --git a/tests/ref/vsynth/vsynth1-mov-bgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mov-bgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mov-bgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mov-bgr24 diff --git a/tests/ref/vsynth/vsynth1-mov-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mov-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mov-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mov-bpp15 diff --git a/tests/ref/vsynth/vsynth1-mov-bpp16 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mov-bpp16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mov-bpp16 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mov-bpp16 diff --git a/tests/ref/vsynth/vsynth1-mpeg1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg1 diff --git a/tests/ref/vsynth/vsynth1-mpeg1b b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg1b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg1b rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg1b diff --git a/tests/ref/vsynth/vsynth1-mpeg2 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2 diff --git a/tests/ref/vsynth/vsynth1-mpeg2-422 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-422 diff --git a/tests/ref/vsynth/vsynth1-mpeg2-idct-int b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-idct-int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2-idct-int rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-idct-int diff --git a/tests/ref/vsynth/vsynth1-mpeg2-ilace b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-ilace old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2-ilace rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-ilace diff --git a/tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd diff --git a/tests/ref/vsynth/vsynth1-mpeg2-thread b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-thread diff --git a/tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc diff --git a/tests/ref/vsynth/vsynth1-mpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4 diff --git a/tests/ref/vsynth/vsynth1-mpeg4-adap b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-adap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-adap rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-adap diff --git a/tests/ref/vsynth/vsynth1-mpeg4-adv b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-adv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-adv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-adv diff --git a/tests/ref/vsynth/vsynth1-mpeg4-error b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-error old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-error rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-error diff --git a/tests/ref/vsynth/vsynth1-mpeg4-nr b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-nr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-nr rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-nr diff --git a/tests/ref/vsynth/vsynth1-mpeg4-nsse b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-nsse old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-nsse rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-nsse diff --git a/tests/ref/vsynth/vsynth1-mpeg4-qpel b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-qpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-qpel rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-qpel diff --git a/tests/ref/vsynth/vsynth1-mpeg4-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-qprd diff --git a/tests/ref/vsynth/vsynth1-mpeg4-rc b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-rc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-rc rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-rc diff --git a/tests/ref/vsynth/vsynth1-mpeg4-thread b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpeg4-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpeg4-thread diff --git a/tests/ref/vsynth/vsynth1-mpng b/ffmpeg-y/tests/ref/vsynth/vsynth1-mpng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-mpng rename to ffmpeg-y/tests/ref/vsynth/vsynth1-mpng diff --git a/tests/ref/vsynth/vsynth1-msmpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth1-msmpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-msmpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-msmpeg4 diff --git a/tests/ref/vsynth/vsynth1-msmpeg4v2 b/ffmpeg-y/tests/ref/vsynth/vsynth1-msmpeg4v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-msmpeg4v2 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-msmpeg4v2 diff --git a/tests/ref/vsynth/vsynth1-msvideo1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-msvideo1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-msvideo1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-msvideo1 diff --git a/tests/ref/vsynth/vsynth1-prores b/ffmpeg-y/tests/ref/vsynth/vsynth1-prores old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-prores rename to ffmpeg-y/tests/ref/vsynth/vsynth1-prores diff --git a/tests/ref/vsynth/vsynth1-prores_444 b/ffmpeg-y/tests/ref/vsynth/vsynth1-prores_444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-prores_444 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-prores_444 diff --git a/tests/ref/vsynth/vsynth1-prores_444_int b/ffmpeg-y/tests/ref/vsynth/vsynth1-prores_444_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-prores_444_int rename to ffmpeg-y/tests/ref/vsynth/vsynth1-prores_444_int diff --git a/tests/ref/vsynth/vsynth1-prores_int b/ffmpeg-y/tests/ref/vsynth/vsynth1-prores_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-prores_int rename to ffmpeg-y/tests/ref/vsynth/vsynth1-prores_int diff --git a/tests/ref/vsynth/vsynth1-prores_ks b/ffmpeg-y/tests/ref/vsynth/vsynth1-prores_ks old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-prores_ks rename to ffmpeg-y/tests/ref/vsynth/vsynth1-prores_ks diff --git a/tests/ref/vsynth/vsynth1-qtrle b/ffmpeg-y/tests/ref/vsynth/vsynth1-qtrle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-qtrle rename to ffmpeg-y/tests/ref/vsynth/vsynth1-qtrle diff --git a/tests/ref/vsynth/vsynth1-qtrlegray b/ffmpeg-y/tests/ref/vsynth/vsynth1-qtrlegray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-qtrlegray rename to ffmpeg-y/tests/ref/vsynth/vsynth1-qtrlegray diff --git a/tests/ref/vsynth/vsynth1-r210 b/ffmpeg-y/tests/ref/vsynth/vsynth1-r210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-r210 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-r210 diff --git a/tests/ref/vsynth/vsynth1-rgb b/ffmpeg-y/tests/ref/vsynth/vsynth1-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-rgb rename to ffmpeg-y/tests/ref/vsynth/vsynth1-rgb diff --git a/tests/ref/vsynth/vsynth1-roqvideo b/ffmpeg-y/tests/ref/vsynth/vsynth1-roqvideo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-roqvideo rename to ffmpeg-y/tests/ref/vsynth/vsynth1-roqvideo diff --git a/tests/ref/vsynth/vsynth1-rv10 b/ffmpeg-y/tests/ref/vsynth/vsynth1-rv10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-rv10 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-rv10 diff --git a/tests/ref/vsynth/vsynth1-rv20 b/ffmpeg-y/tests/ref/vsynth/vsynth1-rv20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-rv20 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-rv20 diff --git a/tests/ref/vsynth/vsynth1-snow b/ffmpeg-y/tests/ref/vsynth/vsynth1-snow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-snow rename to ffmpeg-y/tests/ref/vsynth/vsynth1-snow diff --git a/tests/ref/vsynth/vsynth1-snow-hpel b/ffmpeg-y/tests/ref/vsynth/vsynth1-snow-hpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-snow-hpel rename to ffmpeg-y/tests/ref/vsynth/vsynth1-snow-hpel diff --git a/tests/ref/vsynth/vsynth1-snow-ll b/ffmpeg-y/tests/ref/vsynth/vsynth1-snow-ll old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-snow-ll rename to ffmpeg-y/tests/ref/vsynth/vsynth1-snow-ll diff --git a/tests/ref/vsynth/vsynth1-svq1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-svq1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-svq1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-svq1 diff --git a/tests/ref/vsynth/vsynth1-v210 b/ffmpeg-y/tests/ref/vsynth/vsynth1-v210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-v210 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-v210 diff --git a/tests/ref/vsynth/vsynth1-v210-10 b/ffmpeg-y/tests/ref/vsynth/vsynth1-v210-10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-v210-10 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-v210-10 diff --git a/tests/ref/vsynth/vsynth1-v308 b/ffmpeg-y/tests/ref/vsynth/vsynth1-v308 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-v308 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-v308 diff --git a/tests/ref/vsynth/vsynth1-v408 b/ffmpeg-y/tests/ref/vsynth/vsynth1-v408 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-v408 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-v408 diff --git a/tests/ref/vsynth/vsynth1-vc2-420p b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-420p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-420p diff --git a/tests/ref/vsynth/vsynth1-vc2-420p10 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-420p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-420p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-420p10 diff --git a/tests/ref/vsynth/vsynth1-vc2-420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-420p12 diff --git a/tests/ref/vsynth/vsynth1-vc2-422p b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-422p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-422p diff --git a/tests/ref/vsynth/vsynth1-vc2-422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-422p10 diff --git a/tests/ref/vsynth/vsynth1-vc2-422p12 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-422p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-422p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-422p12 diff --git a/tests/ref/vsynth/vsynth1-vc2-444p b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-444p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-444p diff --git a/tests/ref/vsynth/vsynth1-vc2-444p10 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-444p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-444p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-444p10 diff --git a/tests/ref/vsynth/vsynth1-vc2-444p12 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-444p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-444p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-444p12 diff --git a/tests/ref/vsynth/vsynth1-vc2-t5_3 b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-t5_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-t5_3 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-t5_3 diff --git a/tests/ref/vsynth/vsynth1-vc2-thaar b/ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-thaar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-vc2-thaar rename to ffmpeg-y/tests/ref/vsynth/vsynth1-vc2-thaar diff --git a/tests/ref/vsynth/vsynth1-wmv1 b/ffmpeg-y/tests/ref/vsynth/vsynth1-wmv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-wmv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-wmv1 diff --git a/tests/ref/vsynth/vsynth1-wmv2 b/ffmpeg-y/tests/ref/vsynth/vsynth1-wmv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-wmv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-wmv2 diff --git a/tests/ref/vsynth/vsynth1-xface b/ffmpeg-y/tests/ref/vsynth/vsynth1-xface old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-xface rename to ffmpeg-y/tests/ref/vsynth/vsynth1-xface diff --git a/tests/ref/vsynth/vsynth1-y41p b/ffmpeg-y/tests/ref/vsynth/vsynth1-y41p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-y41p rename to ffmpeg-y/tests/ref/vsynth/vsynth1-y41p diff --git a/tests/ref/vsynth/vsynth1-yuv b/ffmpeg-y/tests/ref/vsynth/vsynth1-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-yuv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-yuv diff --git a/tests/ref/vsynth/vsynth1-yuv4 b/ffmpeg-y/tests/ref/vsynth/vsynth1-yuv4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-yuv4 rename to ffmpeg-y/tests/ref/vsynth/vsynth1-yuv4 diff --git a/tests/ref/vsynth/vsynth1-zlib b/ffmpeg-y/tests/ref/vsynth/vsynth1-zlib old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-zlib rename to ffmpeg-y/tests/ref/vsynth/vsynth1-zlib diff --git a/tests/ref/vsynth/vsynth1-zmbv b/ffmpeg-y/tests/ref/vsynth/vsynth1-zmbv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth1-zmbv rename to ffmpeg-y/tests/ref/vsynth/vsynth1-zmbv diff --git a/tests/ref/vsynth/vsynth2-amv b/ffmpeg-y/tests/ref/vsynth/vsynth2-amv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-amv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-amv diff --git a/tests/ref/vsynth/vsynth2-asv1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-asv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-asv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-asv1 diff --git a/tests/ref/vsynth/vsynth2-asv2 b/ffmpeg-y/tests/ref/vsynth/vsynth2-asv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-asv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-asv2 diff --git a/tests/ref/vsynth/vsynth2-avui b/ffmpeg-y/tests/ref/vsynth/vsynth2-avui old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-avui rename to ffmpeg-y/tests/ref/vsynth/vsynth2-avui diff --git a/tests/ref/vsynth/vsynth2-bpp1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-bpp1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-bpp1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-bpp1 diff --git a/tests/ref/vsynth/vsynth2-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth2-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-bpp15 diff --git a/tests/ref/vsynth/vsynth2-cinepak b/ffmpeg-y/tests/ref/vsynth/vsynth2-cinepak old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-cinepak rename to ffmpeg-y/tests/ref/vsynth/vsynth2-cinepak diff --git a/tests/ref/vsynth/vsynth2-cljr b/ffmpeg-y/tests/ref/vsynth/vsynth2-cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-cljr rename to ffmpeg-y/tests/ref/vsynth/vsynth2-cljr diff --git a/tests/ref/vsynth/vsynth2-dnxhd-1080i b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-1080i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-1080i rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-1080i diff --git a/tests/ref/vsynth/vsynth2-dnxhd-1080i-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-1080i-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-1080i-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-1080i-10bit diff --git a/tests/ref/vsynth/vsynth2-dnxhd-1080i-colr b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-1080i-colr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-1080i-colr rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-1080i-colr diff --git a/tests/ref/vsynth/vsynth2-dnxhd-2k-hr-hq b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-2k-hr-hq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-2k-hr-hq rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-2k-hr-hq diff --git a/tests/ref/vsynth/vsynth2-dnxhd-4k-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-4k-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-4k-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-4k-hr-lb diff --git a/tests/ref/vsynth/vsynth2-dnxhd-720p b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-720p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p diff --git a/tests/ref/vsynth/vsynth2-dnxhd-720p-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-720p-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p-10bit diff --git a/tests/ref/vsynth/vsynth2-dnxhd-720p-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-720p-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p-hr-lb diff --git a/tests/ref/vsynth/vsynth2-dnxhd-720p-rd b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p-rd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-720p-rd rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-720p-rd diff --git a/tests/ref/vsynth/vsynth2-dnxhd-edge1-hr b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-edge1-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-edge1-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-edge1-hr diff --git a/tests/ref/vsynth/vsynth2-dnxhd-edge2-hr b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-edge2-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-edge2-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-edge2-hr diff --git a/tests/ref/vsynth/vsynth2-dnxhd-edge3-hr b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-edge3-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-edge3-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-edge3-hr diff --git a/tests/ref/vsynth/vsynth2-dnxhd-hr-hq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-hr-hq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-hr-hq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-hr-hq-mov diff --git a/tests/ref/vsynth/vsynth2-dnxhd-hr-lb-mov b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-hr-lb-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-hr-lb-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-hr-lb-mov diff --git a/tests/ref/vsynth/vsynth2-dnxhd-hr-sq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-hr-sq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-hr-sq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-hr-sq-mov diff --git a/tests/ref/vsynth/vsynth2-dnxhd-uhd-hr-sq b/ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-uhd-hr-sq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dnxhd-uhd-hr-sq rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dnxhd-uhd-hr-sq diff --git a/tests/ref/vsynth/vsynth2-dv b/ffmpeg-y/tests/ref/vsynth/vsynth2-dv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dv diff --git a/tests/ref/vsynth/vsynth2-dv-411 b/ffmpeg-y/tests/ref/vsynth/vsynth2-dv-411 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dv-411 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dv-411 diff --git a/tests/ref/vsynth/vsynth2-dv-50 b/ffmpeg-y/tests/ref/vsynth/vsynth2-dv-50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-dv-50 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-dv-50 diff --git a/tests/ref/vsynth/vsynth2-ffv1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1 diff --git a/tests/ref/vsynth/vsynth2-ffv1-v0 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1-v0 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v0 diff --git a/tests/ref/vsynth/vsynth2-ffv1-v3-bgr0 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-bgr0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1-v3-bgr0 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-bgr0 diff --git a/tests/ref/vsynth/vsynth2-ffv1-v3-rgb48 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1-v3-rgb48 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-rgb48 diff --git a/tests/ref/vsynth/vsynth2-ffv1-v3-yuv420p b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1-v3-yuv420p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-yuv420p diff --git a/tests/ref/vsynth/vsynth2-ffv1-v3-yuv422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-yuv422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1-v3-yuv422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-yuv422p10 diff --git a/tests/ref/vsynth/vsynth2-ffv1-v3-yuv444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-yuv444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffv1-v3-yuv444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffv1-v3-yuv444p16 diff --git a/tests/ref/vsynth/vsynth2-ffvhuff b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffvhuff rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff diff --git a/tests/ref/vsynth/vsynth2-ffvhuff420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffvhuff420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff420p12 diff --git a/tests/ref/vsynth/vsynth2-ffvhuff422p10left b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff422p10left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffvhuff422p10left rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff422p10left diff --git a/tests/ref/vsynth/vsynth2-ffvhuff444 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffvhuff444 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff444 diff --git a/tests/ref/vsynth/vsynth2-ffvhuff444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ffvhuff444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ffvhuff444p16 diff --git a/tests/ref/vsynth/vsynth2-flashsv b/ffmpeg-y/tests/ref/vsynth/vsynth2-flashsv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-flashsv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-flashsv diff --git a/tests/ref/vsynth/vsynth2-flashsv2 b/ffmpeg-y/tests/ref/vsynth/vsynth2-flashsv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-flashsv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-flashsv2 diff --git a/tests/ref/vsynth/vsynth2-flv b/ffmpeg-y/tests/ref/vsynth/vsynth2-flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-flv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-flv diff --git a/tests/ref/vsynth/vsynth2-h261 b/ffmpeg-y/tests/ref/vsynth/vsynth2-h261 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-h261 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-h261 diff --git a/tests/ref/vsynth/vsynth2-h261-trellis b/ffmpeg-y/tests/ref/vsynth/vsynth2-h261-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-h261-trellis rename to ffmpeg-y/tests/ref/vsynth/vsynth2-h261-trellis diff --git a/tests/ref/vsynth/vsynth2-h263 b/ffmpeg-y/tests/ref/vsynth/vsynth2-h263 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-h263 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-h263 diff --git a/tests/ref/vsynth/vsynth2-h263-obmc b/ffmpeg-y/tests/ref/vsynth/vsynth2-h263-obmc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-h263-obmc rename to ffmpeg-y/tests/ref/vsynth/vsynth2-h263-obmc diff --git a/tests/ref/vsynth/vsynth2-h263p b/ffmpeg-y/tests/ref/vsynth/vsynth2-h263p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-h263p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-h263p diff --git a/tests/ref/vsynth/vsynth2-huffyuv b/ffmpeg-y/tests/ref/vsynth/vsynth2-huffyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-huffyuv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-huffyuv diff --git a/tests/ref/vsynth/vsynth2-huffyuvbgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth2-huffyuvbgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-huffyuvbgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-huffyuvbgr24 diff --git a/tests/ref/vsynth/vsynth2-huffyuvbgra b/ffmpeg-y/tests/ref/vsynth/vsynth2-huffyuvbgra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-huffyuvbgra rename to ffmpeg-y/tests/ref/vsynth/vsynth2-huffyuvbgra diff --git a/tests/ref/vsynth/vsynth2-jpeg2000 b/ffmpeg-y/tests/ref/vsynth/vsynth2-jpeg2000 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-jpeg2000 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-jpeg2000 diff --git a/tests/ref/vsynth/vsynth2-jpeg2000-97 b/ffmpeg-y/tests/ref/vsynth/vsynth2-jpeg2000-97 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-jpeg2000-97 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-jpeg2000-97 diff --git a/tests/ref/vsynth/vsynth2-jpegls b/ffmpeg-y/tests/ref/vsynth/vsynth2-jpegls old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-jpegls rename to ffmpeg-y/tests/ref/vsynth/vsynth2-jpegls diff --git a/tests/ref/vsynth/vsynth2-ljpeg b/ffmpeg-y/tests/ref/vsynth/vsynth2-ljpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-ljpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth2-ljpeg diff --git a/tests/ref/vsynth/vsynth2-mjpeg b/ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mjpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg diff --git a/tests/ref/vsynth/vsynth2-mjpeg-422 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mjpeg-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-422 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-444 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mjpeg-444 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-444 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mjpeg-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-huffman diff --git a/tests/ref/vsynth/vsynth2-mjpeg-trell b/ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-trell old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mjpeg-trell rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-trell diff --git a/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mjpeg-trell-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mjpeg-trell-huffman diff --git a/tests/ref/vsynth/vsynth2-mov-bgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mov-bgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mov-bgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mov-bgr24 diff --git a/tests/ref/vsynth/vsynth2-mov-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mov-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mov-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mov-bpp15 diff --git a/tests/ref/vsynth/vsynth2-mov-bpp16 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mov-bpp16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mov-bpp16 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mov-bpp16 diff --git a/tests/ref/vsynth/vsynth2-mpeg1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg1 diff --git a/tests/ref/vsynth/vsynth2-mpeg1b b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg1b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg1b rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg1b diff --git a/tests/ref/vsynth/vsynth2-mpeg2 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2 diff --git a/tests/ref/vsynth/vsynth2-mpeg2-422 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-422 diff --git a/tests/ref/vsynth/vsynth2-mpeg2-idct-int b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-idct-int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2-idct-int rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-idct-int diff --git a/tests/ref/vsynth/vsynth2-mpeg2-ilace b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-ilace old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2-ilace rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-ilace diff --git a/tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd diff --git a/tests/ref/vsynth/vsynth2-mpeg2-thread b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-thread diff --git a/tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc diff --git a/tests/ref/vsynth/vsynth2-mpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4 diff --git a/tests/ref/vsynth/vsynth2-mpeg4-adap b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-adap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-adap rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-adap diff --git a/tests/ref/vsynth/vsynth2-mpeg4-adv b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-adv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-adv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-adv diff --git a/tests/ref/vsynth/vsynth2-mpeg4-error b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-error old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-error rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-error diff --git a/tests/ref/vsynth/vsynth2-mpeg4-nr b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-nr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-nr rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-nr diff --git a/tests/ref/vsynth/vsynth2-mpeg4-nsse b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-nsse old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-nsse rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-nsse diff --git a/tests/ref/vsynth/vsynth2-mpeg4-qpel b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-qpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-qpel rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-qpel diff --git a/tests/ref/vsynth/vsynth2-mpeg4-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-qprd diff --git a/tests/ref/vsynth/vsynth2-mpeg4-rc b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-rc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-rc rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-rc diff --git a/tests/ref/vsynth/vsynth2-mpeg4-thread b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpeg4-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpeg4-thread diff --git a/tests/ref/vsynth/vsynth2-mpng b/ffmpeg-y/tests/ref/vsynth/vsynth2-mpng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-mpng rename to ffmpeg-y/tests/ref/vsynth/vsynth2-mpng diff --git a/tests/ref/vsynth/vsynth2-msmpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth2-msmpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-msmpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-msmpeg4 diff --git a/tests/ref/vsynth/vsynth2-msmpeg4v2 b/ffmpeg-y/tests/ref/vsynth/vsynth2-msmpeg4v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-msmpeg4v2 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-msmpeg4v2 diff --git a/tests/ref/vsynth/vsynth2-msvideo1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-msvideo1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-msvideo1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-msvideo1 diff --git a/tests/ref/vsynth/vsynth2-prores b/ffmpeg-y/tests/ref/vsynth/vsynth2-prores old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-prores rename to ffmpeg-y/tests/ref/vsynth/vsynth2-prores diff --git a/tests/ref/vsynth/vsynth2-prores_444 b/ffmpeg-y/tests/ref/vsynth/vsynth2-prores_444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-prores_444 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-prores_444 diff --git a/tests/ref/vsynth/vsynth2-prores_444_int b/ffmpeg-y/tests/ref/vsynth/vsynth2-prores_444_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-prores_444_int rename to ffmpeg-y/tests/ref/vsynth/vsynth2-prores_444_int diff --git a/tests/ref/vsynth/vsynth2-prores_int b/ffmpeg-y/tests/ref/vsynth/vsynth2-prores_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-prores_int rename to ffmpeg-y/tests/ref/vsynth/vsynth2-prores_int diff --git a/tests/ref/vsynth/vsynth2-prores_ks b/ffmpeg-y/tests/ref/vsynth/vsynth2-prores_ks old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-prores_ks rename to ffmpeg-y/tests/ref/vsynth/vsynth2-prores_ks diff --git a/tests/ref/vsynth/vsynth2-qtrle b/ffmpeg-y/tests/ref/vsynth/vsynth2-qtrle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-qtrle rename to ffmpeg-y/tests/ref/vsynth/vsynth2-qtrle diff --git a/tests/ref/vsynth/vsynth2-qtrlegray b/ffmpeg-y/tests/ref/vsynth/vsynth2-qtrlegray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-qtrlegray rename to ffmpeg-y/tests/ref/vsynth/vsynth2-qtrlegray diff --git a/tests/ref/vsynth/vsynth2-r210 b/ffmpeg-y/tests/ref/vsynth/vsynth2-r210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-r210 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-r210 diff --git a/tests/ref/vsynth/vsynth2-rgb b/ffmpeg-y/tests/ref/vsynth/vsynth2-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-rgb rename to ffmpeg-y/tests/ref/vsynth/vsynth2-rgb diff --git a/tests/ref/vsynth/vsynth2-roqvideo b/ffmpeg-y/tests/ref/vsynth/vsynth2-roqvideo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-roqvideo rename to ffmpeg-y/tests/ref/vsynth/vsynth2-roqvideo diff --git a/tests/ref/vsynth/vsynth2-rv10 b/ffmpeg-y/tests/ref/vsynth/vsynth2-rv10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-rv10 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-rv10 diff --git a/tests/ref/vsynth/vsynth2-rv20 b/ffmpeg-y/tests/ref/vsynth/vsynth2-rv20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-rv20 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-rv20 diff --git a/tests/ref/vsynth/vsynth2-snow b/ffmpeg-y/tests/ref/vsynth/vsynth2-snow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-snow rename to ffmpeg-y/tests/ref/vsynth/vsynth2-snow diff --git a/tests/ref/vsynth/vsynth2-snow-hpel b/ffmpeg-y/tests/ref/vsynth/vsynth2-snow-hpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-snow-hpel rename to ffmpeg-y/tests/ref/vsynth/vsynth2-snow-hpel diff --git a/tests/ref/vsynth/vsynth2-snow-ll b/ffmpeg-y/tests/ref/vsynth/vsynth2-snow-ll old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-snow-ll rename to ffmpeg-y/tests/ref/vsynth/vsynth2-snow-ll diff --git a/tests/ref/vsynth/vsynth2-svq1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-svq1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-svq1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-svq1 diff --git a/tests/ref/vsynth/vsynth2-v210 b/ffmpeg-y/tests/ref/vsynth/vsynth2-v210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-v210 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-v210 diff --git a/tests/ref/vsynth/vsynth2-v210-10 b/ffmpeg-y/tests/ref/vsynth/vsynth2-v210-10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-v210-10 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-v210-10 diff --git a/tests/ref/vsynth/vsynth2-v308 b/ffmpeg-y/tests/ref/vsynth/vsynth2-v308 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-v308 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-v308 diff --git a/tests/ref/vsynth/vsynth2-v408 b/ffmpeg-y/tests/ref/vsynth/vsynth2-v408 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-v408 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-v408 diff --git a/tests/ref/vsynth/vsynth2-vc2-420p b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-420p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-420p diff --git a/tests/ref/vsynth/vsynth2-vc2-420p10 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-420p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-420p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-420p10 diff --git a/tests/ref/vsynth/vsynth2-vc2-420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-420p12 diff --git a/tests/ref/vsynth/vsynth2-vc2-422p b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-422p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-422p diff --git a/tests/ref/vsynth/vsynth2-vc2-422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-422p10 diff --git a/tests/ref/vsynth/vsynth2-vc2-422p12 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-422p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-422p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-422p12 diff --git a/tests/ref/vsynth/vsynth2-vc2-444p b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-444p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-444p diff --git a/tests/ref/vsynth/vsynth2-vc2-444p10 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-444p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-444p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-444p10 diff --git a/tests/ref/vsynth/vsynth2-vc2-444p12 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-444p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-444p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-444p12 diff --git a/tests/ref/vsynth/vsynth2-vc2-t5_3 b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-t5_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-t5_3 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-t5_3 diff --git a/tests/ref/vsynth/vsynth2-vc2-thaar b/ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-thaar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-vc2-thaar rename to ffmpeg-y/tests/ref/vsynth/vsynth2-vc2-thaar diff --git a/tests/ref/vsynth/vsynth2-wmv1 b/ffmpeg-y/tests/ref/vsynth/vsynth2-wmv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-wmv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-wmv1 diff --git a/tests/ref/vsynth/vsynth2-wmv2 b/ffmpeg-y/tests/ref/vsynth/vsynth2-wmv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-wmv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-wmv2 diff --git a/tests/ref/vsynth/vsynth2-xface b/ffmpeg-y/tests/ref/vsynth/vsynth2-xface old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-xface rename to ffmpeg-y/tests/ref/vsynth/vsynth2-xface diff --git a/tests/ref/vsynth/vsynth2-y41p b/ffmpeg-y/tests/ref/vsynth/vsynth2-y41p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-y41p rename to ffmpeg-y/tests/ref/vsynth/vsynth2-y41p diff --git a/tests/ref/vsynth/vsynth2-yuv b/ffmpeg-y/tests/ref/vsynth/vsynth2-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-yuv rename to ffmpeg-y/tests/ref/vsynth/vsynth2-yuv diff --git a/tests/ref/vsynth/vsynth2-yuv4 b/ffmpeg-y/tests/ref/vsynth/vsynth2-yuv4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-yuv4 rename to ffmpeg-y/tests/ref/vsynth/vsynth2-yuv4 diff --git a/tests/ref/vsynth/vsynth2-zlib b/ffmpeg-y/tests/ref/vsynth/vsynth2-zlib old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth2-zlib rename to ffmpeg-y/tests/ref/vsynth/vsynth2-zlib diff --git a/tests/ref/vsynth/vsynth3-amv b/ffmpeg-y/tests/ref/vsynth/vsynth3-amv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-amv rename to ffmpeg-y/tests/ref/vsynth/vsynth3-amv diff --git a/tests/ref/vsynth/vsynth3-asv1 b/ffmpeg-y/tests/ref/vsynth/vsynth3-asv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-asv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-asv1 diff --git a/tests/ref/vsynth/vsynth3-asv2 b/ffmpeg-y/tests/ref/vsynth/vsynth3-asv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-asv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-asv2 diff --git a/tests/ref/vsynth/vsynth3-bpp1 b/ffmpeg-y/tests/ref/vsynth/vsynth3-bpp1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-bpp1 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-bpp1 diff --git a/tests/ref/vsynth/vsynth3-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth3-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-bpp15 diff --git a/tests/ref/vsynth/vsynth3-cljr b/ffmpeg-y/tests/ref/vsynth/vsynth3-cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-cljr rename to ffmpeg-y/tests/ref/vsynth/vsynth3-cljr diff --git a/tests/ref/vsynth/vsynth3-dnxhd-1080i-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-1080i-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-1080i-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-1080i-10bit diff --git a/tests/ref/vsynth/vsynth3-dnxhd-1080i-colr b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-1080i-colr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-1080i-colr rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-1080i-colr diff --git a/tests/ref/vsynth/vsynth3-dnxhd-2k-hr-hq b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-2k-hr-hq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-2k-hr-hq rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-2k-hr-hq diff --git a/tests/ref/vsynth/vsynth3-dnxhd-4k-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-4k-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-4k-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-4k-hr-lb diff --git a/tests/ref/vsynth/vsynth3-dnxhd-720p-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-720p-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-720p-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-720p-hr-lb diff --git a/tests/ref/vsynth/vsynth3-dnxhd-edge1-hr b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-edge1-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-edge1-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-edge1-hr diff --git a/tests/ref/vsynth/vsynth3-dnxhd-edge2-hr b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-edge2-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-edge2-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-edge2-hr diff --git a/tests/ref/vsynth/vsynth3-dnxhd-edge3-hr b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-edge3-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-edge3-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-edge3-hr diff --git a/tests/ref/vsynth/vsynth3-dnxhd-hr-hq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-hr-hq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-hr-hq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-hr-hq-mov diff --git a/tests/ref/vsynth/vsynth3-dnxhd-hr-lb-mov b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-hr-lb-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-hr-lb-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-hr-lb-mov diff --git a/tests/ref/vsynth/vsynth3-dnxhd-hr-sq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-hr-sq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-hr-sq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-hr-sq-mov diff --git a/tests/ref/vsynth/vsynth3-dnxhd-uhd-hr-sq b/ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-uhd-hr-sq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-dnxhd-uhd-hr-sq rename to ffmpeg-y/tests/ref/vsynth/vsynth3-dnxhd-uhd-hr-sq diff --git a/tests/ref/vsynth/vsynth3-ffv1 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1 diff --git a/tests/ref/vsynth/vsynth3-ffv1-v0 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1-v0 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v0 diff --git a/tests/ref/vsynth/vsynth3-ffv1-v3-bgr0 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-bgr0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1-v3-bgr0 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-bgr0 diff --git a/tests/ref/vsynth/vsynth3-ffv1-v3-rgb48 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1-v3-rgb48 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-rgb48 diff --git a/tests/ref/vsynth/vsynth3-ffv1-v3-yuv420p b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1-v3-yuv420p rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-yuv420p diff --git a/tests/ref/vsynth/vsynth3-ffv1-v3-yuv422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-yuv422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1-v3-yuv422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-yuv422p10 diff --git a/tests/ref/vsynth/vsynth3-ffv1-v3-yuv444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-yuv444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffv1-v3-yuv444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffv1-v3-yuv444p16 diff --git a/tests/ref/vsynth/vsynth3-ffvhuff b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffvhuff rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff diff --git a/tests/ref/vsynth/vsynth3-ffvhuff420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffvhuff420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff420p12 diff --git a/tests/ref/vsynth/vsynth3-ffvhuff422p10left b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff422p10left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffvhuff422p10left rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff422p10left diff --git a/tests/ref/vsynth/vsynth3-ffvhuff444 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffvhuff444 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff444 diff --git a/tests/ref/vsynth/vsynth3-ffvhuff444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ffvhuff444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ffvhuff444p16 diff --git a/tests/ref/vsynth/vsynth3-flashsv b/ffmpeg-y/tests/ref/vsynth/vsynth3-flashsv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-flashsv rename to ffmpeg-y/tests/ref/vsynth/vsynth3-flashsv diff --git a/tests/ref/vsynth/vsynth3-flashsv2 b/ffmpeg-y/tests/ref/vsynth/vsynth3-flashsv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-flashsv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-flashsv2 diff --git a/tests/ref/vsynth/vsynth3-flv b/ffmpeg-y/tests/ref/vsynth/vsynth3-flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-flv rename to ffmpeg-y/tests/ref/vsynth/vsynth3-flv diff --git a/tests/ref/vsynth/vsynth3-huffyuv b/ffmpeg-y/tests/ref/vsynth/vsynth3-huffyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-huffyuv rename to ffmpeg-y/tests/ref/vsynth/vsynth3-huffyuv diff --git a/tests/ref/vsynth/vsynth3-huffyuvbgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth3-huffyuvbgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-huffyuvbgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-huffyuvbgr24 diff --git a/tests/ref/vsynth/vsynth3-huffyuvbgra b/ffmpeg-y/tests/ref/vsynth/vsynth3-huffyuvbgra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-huffyuvbgra rename to ffmpeg-y/tests/ref/vsynth/vsynth3-huffyuvbgra diff --git a/tests/ref/vsynth/vsynth3-jpeg2000 b/ffmpeg-y/tests/ref/vsynth/vsynth3-jpeg2000 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-jpeg2000 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-jpeg2000 diff --git a/tests/ref/vsynth/vsynth3-jpeg2000-97 b/ffmpeg-y/tests/ref/vsynth/vsynth3-jpeg2000-97 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-jpeg2000-97 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-jpeg2000-97 diff --git a/tests/ref/vsynth/vsynth3-jpegls b/ffmpeg-y/tests/ref/vsynth/vsynth3-jpegls old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-jpegls rename to ffmpeg-y/tests/ref/vsynth/vsynth3-jpegls diff --git a/tests/ref/vsynth/vsynth3-ljpeg b/ffmpeg-y/tests/ref/vsynth/vsynth3-ljpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-ljpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth3-ljpeg diff --git a/tests/ref/vsynth/vsynth3-mjpeg b/ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mjpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg diff --git a/tests/ref/vsynth/vsynth3-mjpeg-422 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mjpeg-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-422 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-444 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mjpeg-444 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-444 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mjpeg-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-huffman diff --git a/tests/ref/vsynth/vsynth3-mjpeg-trell b/ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-trell old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mjpeg-trell rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-trell diff --git a/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mjpeg-trell-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mjpeg-trell-huffman diff --git a/tests/ref/vsynth/vsynth3-mov-bgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mov-bgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mov-bgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mov-bgr24 diff --git a/tests/ref/vsynth/vsynth3-mov-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mov-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mov-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mov-bpp15 diff --git a/tests/ref/vsynth/vsynth3-mov-bpp16 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mov-bpp16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mov-bpp16 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mov-bpp16 diff --git a/tests/ref/vsynth/vsynth3-mpeg1 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg1 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg1 diff --git a/tests/ref/vsynth/vsynth3-mpeg1b b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg1b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg1b rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg1b diff --git a/tests/ref/vsynth/vsynth3-mpeg2 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2 diff --git a/tests/ref/vsynth/vsynth3-mpeg2-422 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-422 diff --git a/tests/ref/vsynth/vsynth3-mpeg2-idct-int b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-idct-int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2-idct-int rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-idct-int diff --git a/tests/ref/vsynth/vsynth3-mpeg2-ilace b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-ilace old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2-ilace rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-ilace diff --git a/tests/ref/vsynth/vsynth3-mpeg2-ivlc-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-ivlc-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2-ivlc-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-ivlc-qprd diff --git a/tests/ref/vsynth/vsynth3-mpeg2-thread b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-thread diff --git a/tests/ref/vsynth/vsynth3-mpeg2-thread-ivlc b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-thread-ivlc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg2-thread-ivlc rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg2-thread-ivlc diff --git a/tests/ref/vsynth/vsynth3-mpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4 diff --git a/tests/ref/vsynth/vsynth3-mpeg4-adap b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-adap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-adap rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-adap diff --git a/tests/ref/vsynth/vsynth3-mpeg4-adv b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-adv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-adv rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-adv diff --git a/tests/ref/vsynth/vsynth3-mpeg4-error b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-error old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-error rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-error diff --git a/tests/ref/vsynth/vsynth3-mpeg4-nr b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-nr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-nr rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-nr diff --git a/tests/ref/vsynth/vsynth3-mpeg4-nsse b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-nsse old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-nsse rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-nsse diff --git a/tests/ref/vsynth/vsynth3-mpeg4-qpel b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-qpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-qpel rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-qpel diff --git a/tests/ref/vsynth/vsynth3-mpeg4-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-qprd diff --git a/tests/ref/vsynth/vsynth3-mpeg4-rc b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-rc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-rc rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-rc diff --git a/tests/ref/vsynth/vsynth3-mpeg4-thread b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpeg4-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpeg4-thread diff --git a/tests/ref/vsynth/vsynth3-mpng b/ffmpeg-y/tests/ref/vsynth/vsynth3-mpng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-mpng rename to ffmpeg-y/tests/ref/vsynth/vsynth3-mpng diff --git a/tests/ref/vsynth/vsynth3-msmpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth3-msmpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-msmpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-msmpeg4 diff --git a/tests/ref/vsynth/vsynth3-msmpeg4v2 b/ffmpeg-y/tests/ref/vsynth/vsynth3-msmpeg4v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-msmpeg4v2 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-msmpeg4v2 diff --git a/tests/ref/vsynth/vsynth3-prores b/ffmpeg-y/tests/ref/vsynth/vsynth3-prores old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-prores rename to ffmpeg-y/tests/ref/vsynth/vsynth3-prores diff --git a/tests/ref/vsynth/vsynth3-prores_444 b/ffmpeg-y/tests/ref/vsynth/vsynth3-prores_444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-prores_444 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-prores_444 diff --git a/tests/ref/vsynth/vsynth3-prores_444_int b/ffmpeg-y/tests/ref/vsynth/vsynth3-prores_444_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-prores_444_int rename to ffmpeg-y/tests/ref/vsynth/vsynth3-prores_444_int diff --git a/tests/ref/vsynth/vsynth3-prores_int b/ffmpeg-y/tests/ref/vsynth/vsynth3-prores_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-prores_int rename to ffmpeg-y/tests/ref/vsynth/vsynth3-prores_int diff --git a/tests/ref/vsynth/vsynth3-prores_ks b/ffmpeg-y/tests/ref/vsynth/vsynth3-prores_ks old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-prores_ks rename to ffmpeg-y/tests/ref/vsynth/vsynth3-prores_ks diff --git a/tests/ref/vsynth/vsynth3-qtrle b/ffmpeg-y/tests/ref/vsynth/vsynth3-qtrle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-qtrle rename to ffmpeg-y/tests/ref/vsynth/vsynth3-qtrle diff --git a/tests/ref/vsynth/vsynth3-r210 b/ffmpeg-y/tests/ref/vsynth/vsynth3-r210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-r210 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-r210 diff --git a/tests/ref/vsynth/vsynth3-rgb b/ffmpeg-y/tests/ref/vsynth/vsynth3-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-rgb rename to ffmpeg-y/tests/ref/vsynth/vsynth3-rgb diff --git a/tests/ref/vsynth/vsynth3-svq1 b/ffmpeg-y/tests/ref/vsynth/vsynth3-svq1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-svq1 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-svq1 diff --git a/tests/ref/vsynth/vsynth3-v210 b/ffmpeg-y/tests/ref/vsynth/vsynth3-v210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-v210 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-v210 diff --git a/tests/ref/vsynth/vsynth3-v210-10 b/ffmpeg-y/tests/ref/vsynth/vsynth3-v210-10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-v210-10 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-v210-10 diff --git a/tests/ref/vsynth/vsynth3-v308 b/ffmpeg-y/tests/ref/vsynth/vsynth3-v308 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-v308 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-v308 diff --git a/tests/ref/vsynth/vsynth3-v408 b/ffmpeg-y/tests/ref/vsynth/vsynth3-v408 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-v408 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-v408 diff --git a/tests/ref/vsynth/vsynth3-wmv1 b/ffmpeg-y/tests/ref/vsynth/vsynth3-wmv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-wmv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-wmv1 diff --git a/tests/ref/vsynth/vsynth3-wmv2 b/ffmpeg-y/tests/ref/vsynth/vsynth3-wmv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-wmv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-wmv2 diff --git a/tests/ref/vsynth/vsynth3-xface b/ffmpeg-y/tests/ref/vsynth/vsynth3-xface old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-xface rename to ffmpeg-y/tests/ref/vsynth/vsynth3-xface diff --git a/tests/ref/vsynth/vsynth3-yuv b/ffmpeg-y/tests/ref/vsynth/vsynth3-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-yuv rename to ffmpeg-y/tests/ref/vsynth/vsynth3-yuv diff --git a/tests/ref/vsynth/vsynth3-yuv4 b/ffmpeg-y/tests/ref/vsynth/vsynth3-yuv4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-yuv4 rename to ffmpeg-y/tests/ref/vsynth/vsynth3-yuv4 diff --git a/tests/ref/vsynth/vsynth3-zlib b/ffmpeg-y/tests/ref/vsynth/vsynth3-zlib old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth3-zlib rename to ffmpeg-y/tests/ref/vsynth/vsynth3-zlib diff --git a/tests/ref/vsynth/vsynth_lena-amv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-amv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-amv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-amv diff --git a/tests/ref/vsynth/vsynth_lena-asv1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-asv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-asv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-asv1 diff --git a/tests/ref/vsynth/vsynth_lena-asv2 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-asv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-asv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-asv2 diff --git a/tests/ref/vsynth/vsynth_lena-avui b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-avui old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-avui rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-avui diff --git a/tests/ref/vsynth/vsynth_lena-bpp1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-bpp1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-bpp1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-bpp1 diff --git a/tests/ref/vsynth/vsynth_lena-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-bpp15 diff --git a/tests/ref/vsynth/vsynth_lena-cinepak b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-cinepak old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-cinepak rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-cinepak diff --git a/tests/ref/vsynth/vsynth_lena-cljr b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-cljr rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-cljr diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-1080i b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-1080i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-1080i rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-1080i diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-1080i-colr b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-1080i-colr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-1080i-colr rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-1080i-colr diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-2k-hr-hq b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-2k-hr-hq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-2k-hr-hq rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-2k-hr-hq diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-4k-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-4k-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-4k-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-4k-hr-lb diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-720p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-720p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-720p-10bit b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p-10bit old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-720p-10bit rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p-10bit diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-720p-hr-lb b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p-hr-lb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-720p-hr-lb rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p-hr-lb diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-720p-rd b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p-rd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-720p-rd rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-720p-rd diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-edge1-hr b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-edge1-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-edge1-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-edge1-hr diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-edge2-hr b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-edge2-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-edge2-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-edge2-hr diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-edge3-hr b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-edge3-hr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-edge3-hr rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-edge3-hr diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd-uhd-hr-sq b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-uhd-hr-sq old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd-uhd-hr-sq rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd-uhd-hr-sq diff --git a/tests/ref/vsynth/vsynth_lena-dnxhd_1080i b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd_1080i old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dnxhd_1080i rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dnxhd_1080i diff --git a/tests/ref/vsynth/vsynth_lena-dv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv diff --git a/tests/ref/vsynth/vsynth_lena-dv-411 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv-411 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dv-411 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv-411 diff --git a/tests/ref/vsynth/vsynth_lena-dv-50 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv-50 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dv-50 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv-50 diff --git a/tests/ref/vsynth/vsynth_lena-dv_411 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv_411 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-dv_411 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-dv_411 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-v0 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1-v0 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v0 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-v3-bgr0 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-bgr0 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1-v3-bgr0 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-bgr0 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-v3-rgb48 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-rgb48 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1-v3-rgb48 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-rgb48 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv420p diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv422p10 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffv1-v3-yuv444p16 diff --git a/tests/ref/vsynth/vsynth_lena-ffvhuff b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffvhuff rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff diff --git a/tests/ref/vsynth/vsynth_lena-ffvhuff420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffvhuff420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff420p12 diff --git a/tests/ref/vsynth/vsynth_lena-ffvhuff422p10left b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff422p10left old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffvhuff422p10left rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff422p10left diff --git a/tests/ref/vsynth/vsynth_lena-ffvhuff444 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffvhuff444 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff444 diff --git a/tests/ref/vsynth/vsynth_lena-ffvhuff444p16 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff444p16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ffvhuff444p16 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ffvhuff444p16 diff --git a/tests/ref/vsynth/vsynth_lena-flashsv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-flashsv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-flashsv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-flashsv diff --git a/tests/ref/vsynth/vsynth_lena-flashsv2 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-flashsv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-flashsv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-flashsv2 diff --git a/tests/ref/vsynth/vsynth_lena-flv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-flv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-flv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-flv diff --git a/tests/ref/vsynth/vsynth_lena-h261 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-h261 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-h261 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-h261 diff --git a/tests/ref/vsynth/vsynth_lena-h261-trellis b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-h261-trellis old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-h261-trellis rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-h261-trellis diff --git a/tests/ref/vsynth/vsynth_lena-h263 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-h263 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-h263 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-h263 diff --git a/tests/ref/vsynth/vsynth_lena-h263-obmc b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-h263-obmc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-h263-obmc rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-h263-obmc diff --git a/tests/ref/vsynth/vsynth_lena-h263p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-h263p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-h263p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-h263p diff --git a/tests/ref/vsynth/vsynth_lena-huffyuv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-huffyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-huffyuv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-huffyuv diff --git a/tests/ref/vsynth/vsynth_lena-huffyuvbgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-huffyuvbgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-huffyuvbgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-huffyuvbgr24 diff --git a/tests/ref/vsynth/vsynth_lena-huffyuvbgra b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-huffyuvbgra old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-huffyuvbgra rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-huffyuvbgra diff --git a/tests/ref/vsynth/vsynth_lena-jpeg2000 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-jpeg2000 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-jpeg2000 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-jpeg2000 diff --git a/tests/ref/vsynth/vsynth_lena-jpeg2000-97 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-jpeg2000-97 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-jpeg2000-97 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-jpeg2000-97 diff --git a/tests/ref/vsynth/vsynth_lena-jpegls b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-jpegls old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-jpegls rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-jpegls diff --git a/tests/ref/vsynth/vsynth_lena-ljpeg b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-ljpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-ljpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-ljpeg diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mjpeg rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-422 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mjpeg-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-422 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-444 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mjpeg-444 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-444 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mjpeg-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-huffman diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-trell b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-trell old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mjpeg-trell rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-trell diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mjpeg-trell-huffman diff --git a/tests/ref/vsynth/vsynth_lena-mov-bgr24 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mov-bgr24 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mov-bgr24 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mov-bgr24 diff --git a/tests/ref/vsynth/vsynth_lena-mov-bpp15 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mov-bpp15 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mov-bpp15 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mov-bpp15 diff --git a/tests/ref/vsynth/vsynth_lena-mov-bpp16 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mov-bpp16 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mov-bpp16 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mov-bpp16 diff --git a/tests/ref/vsynth/vsynth_lena-mpeg1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg1 diff --git a/tests/ref/vsynth/vsynth_lena-mpeg1b b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg1b old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg1b rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg1b diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2 diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2-422 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-422 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2-422 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-422 diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2-idct-int b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-idct-int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2-idct-int rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-idct-int diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2-ilace b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-ilace old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2-ilace rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-ilace diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2-ivlc-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-ivlc-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2-ivlc-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-ivlc-qprd diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2-thread b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-thread diff --git a/tests/ref/vsynth/vsynth_lena-mpeg2-thread-ivlc b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-thread-ivlc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg2-thread-ivlc rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg2-thread-ivlc diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4 diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-adap b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-adap old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-adap rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-adap diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-adv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-adv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-adv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-adv diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-error b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-error old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-error rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-error diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-nr b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-nr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-nr rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-nr diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-nsse b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-nsse old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-nsse rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-nsse diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-qpel b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-qpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-qpel rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-qpel diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-qprd b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-qprd old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-qprd rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-qprd diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-rc b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-rc old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-rc rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-rc diff --git a/tests/ref/vsynth/vsynth_lena-mpeg4-thread b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-thread old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpeg4-thread rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpeg4-thread diff --git a/tests/ref/vsynth/vsynth_lena-mpng b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpng old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-mpng rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-mpng diff --git a/tests/ref/vsynth/vsynth_lena-msmpeg4 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-msmpeg4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-msmpeg4 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-msmpeg4 diff --git a/tests/ref/vsynth/vsynth_lena-msmpeg4v2 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-msmpeg4v2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-msmpeg4v2 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-msmpeg4v2 diff --git a/tests/ref/vsynth/vsynth_lena-msvideo1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-msvideo1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-msvideo1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-msvideo1 diff --git a/tests/ref/vsynth/vsynth_lena-prores b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-prores rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores diff --git a/tests/ref/vsynth/vsynth_lena-prores_444 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_444 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-prores_444 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_444 diff --git a/tests/ref/vsynth/vsynth_lena-prores_444_int b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_444_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-prores_444_int rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_444_int diff --git a/tests/ref/vsynth/vsynth_lena-prores_int b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_int old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-prores_int rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_int diff --git a/tests/ref/vsynth/vsynth_lena-prores_ks b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_ks old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-prores_ks rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-prores_ks diff --git a/tests/ref/vsynth/vsynth_lena-qtrle b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-qtrle old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-qtrle rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-qtrle diff --git a/tests/ref/vsynth/vsynth_lena-qtrlegray b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-qtrlegray old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-qtrlegray rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-qtrlegray diff --git a/tests/ref/vsynth/vsynth_lena-r210 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-r210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-r210 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-r210 diff --git a/tests/ref/vsynth/vsynth_lena-rgb b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-rgb old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-rgb rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-rgb diff --git a/tests/ref/vsynth/vsynth_lena-roqvideo b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-roqvideo old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-roqvideo rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-roqvideo diff --git a/tests/ref/vsynth/vsynth_lena-rv10 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-rv10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-rv10 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-rv10 diff --git a/tests/ref/vsynth/vsynth_lena-rv20 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-rv20 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-rv20 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-rv20 diff --git a/tests/ref/vsynth/vsynth_lena-snow b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-snow old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-snow rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-snow diff --git a/tests/ref/vsynth/vsynth_lena-snow-hpel b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-snow-hpel old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-snow-hpel rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-snow-hpel diff --git a/tests/ref/vsynth/vsynth_lena-snow-ll b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-snow-ll old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-snow-ll rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-snow-ll diff --git a/tests/ref/vsynth/vsynth_lena-svq1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-svq1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-svq1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-svq1 diff --git a/tests/ref/vsynth/vsynth_lena-v210 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-v210 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-v210 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-v210 diff --git a/tests/ref/vsynth/vsynth_lena-v210-10 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-v210-10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-v210-10 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-v210-10 diff --git a/tests/ref/vsynth/vsynth_lena-v308 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-v308 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-v308 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-v308 diff --git a/tests/ref/vsynth/vsynth_lena-v408 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-v408 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-v408 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-v408 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-420p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-420p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-420p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-420p diff --git a/tests/ref/vsynth/vsynth_lena-vc2-420p10 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-420p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-420p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-420p10 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-420p12 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-420p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-420p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-420p12 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-422p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-422p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-422p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-422p diff --git a/tests/ref/vsynth/vsynth_lena-vc2-422p10 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-422p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-422p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-422p10 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-422p12 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-422p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-422p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-422p12 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-444p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-444p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-444p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-444p diff --git a/tests/ref/vsynth/vsynth_lena-vc2-444p10 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-444p10 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-444p10 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-444p10 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-444p12 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-444p12 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-444p12 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-444p12 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-t5_3 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-t5_3 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-t5_3 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-t5_3 diff --git a/tests/ref/vsynth/vsynth_lena-vc2-thaar b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-thaar old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-vc2-thaar rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-vc2-thaar diff --git a/tests/ref/vsynth/vsynth_lena-wmv1 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-wmv1 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-wmv1 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-wmv1 diff --git a/tests/ref/vsynth/vsynth_lena-wmv2 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-wmv2 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-wmv2 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-wmv2 diff --git a/tests/ref/vsynth/vsynth_lena-xface b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-xface old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-xface rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-xface diff --git a/tests/ref/vsynth/vsynth_lena-y41p b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-y41p old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-y41p rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-y41p diff --git a/tests/ref/vsynth/vsynth_lena-yuv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-yuv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-yuv diff --git a/tests/ref/vsynth/vsynth_lena-yuv4 b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-yuv4 old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-yuv4 rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-yuv4 diff --git a/tests/ref/vsynth/vsynth_lena-zlib b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-zlib old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-zlib rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-zlib diff --git a/tests/ref/vsynth/vsynth_lena-zmbv b/ffmpeg-y/tests/ref/vsynth/vsynth_lena-zmbv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth/vsynth_lena-zmbv rename to ffmpeg-y/tests/ref/vsynth/vsynth_lena-zmbv diff --git a/tests/ref/vsynth1/cljr b/ffmpeg-y/tests/ref/vsynth1/cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth1/cljr rename to ffmpeg-y/tests/ref/vsynth1/cljr diff --git a/tests/ref/vsynth1/yuv b/ffmpeg-y/tests/ref/vsynth1/yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth1/yuv rename to ffmpeg-y/tests/ref/vsynth1/yuv diff --git a/tests/ref/vsynth_lena/cljr b/ffmpeg-y/tests/ref/vsynth_lena/cljr old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth_lena/cljr rename to ffmpeg-y/tests/ref/vsynth_lena/cljr diff --git a/tests/ref/vsynth_lena/huffyuv b/ffmpeg-y/tests/ref/vsynth_lena/huffyuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth_lena/huffyuv rename to ffmpeg-y/tests/ref/vsynth_lena/huffyuv diff --git a/tests/ref/vsynth_lena/yuv b/ffmpeg-y/tests/ref/vsynth_lena/yuv old mode 100644 new mode 100755 similarity index 100% rename from tests/ref/vsynth_lena/yuv rename to ffmpeg-y/tests/ref/vsynth_lena/yuv diff --git a/tests/refcmp-metadata.awk b/ffmpeg-y/tests/refcmp-metadata.awk old mode 100644 new mode 100755 similarity index 100% rename from tests/refcmp-metadata.awk rename to ffmpeg-y/tests/refcmp-metadata.awk diff --git a/tests/reference.pnm b/ffmpeg-y/tests/reference.pnm old mode 100644 new mode 100755 similarity index 100% rename from tests/reference.pnm rename to ffmpeg-y/tests/reference.pnm diff --git a/tests/rotozoom.c b/ffmpeg-y/tests/rotozoom.c old mode 100644 new mode 100755 similarity index 100% rename from tests/rotozoom.c rename to ffmpeg-y/tests/rotozoom.c diff --git a/tests/simple1.ffconcat b/ffmpeg-y/tests/simple1.ffconcat old mode 100644 new mode 100755 similarity index 100% rename from tests/simple1.ffconcat rename to ffmpeg-y/tests/simple1.ffconcat diff --git a/tests/simple2.ffconcat b/ffmpeg-y/tests/simple2.ffconcat old mode 100644 new mode 100755 similarity index 100% rename from tests/simple2.ffconcat rename to ffmpeg-y/tests/simple2.ffconcat diff --git a/tests/test.ffmeta b/ffmpeg-y/tests/test.ffmeta old mode 100644 new mode 100755 similarity index 100% rename from tests/test.ffmeta rename to ffmpeg-y/tests/test.ffmeta diff --git a/tests/tiny_psnr.c b/ffmpeg-y/tests/tiny_psnr.c old mode 100644 new mode 100755 similarity index 100% rename from tests/tiny_psnr.c rename to ffmpeg-y/tests/tiny_psnr.c diff --git a/tests/tiny_ssim.c b/ffmpeg-y/tests/tiny_ssim.c old mode 100644 new mode 100755 similarity index 100% rename from tests/tiny_ssim.c rename to ffmpeg-y/tests/tiny_ssim.c diff --git a/tests/utils.c b/ffmpeg-y/tests/utils.c old mode 100644 new mode 100755 similarity index 100% rename from tests/utils.c rename to ffmpeg-y/tests/utils.c diff --git a/tests/videogen.c b/ffmpeg-y/tests/videogen.c old mode 100644 new mode 100755 similarity index 100% rename from tests/videogen.c rename to ffmpeg-y/tests/videogen.c diff --git a/tools/Makefile b/ffmpeg-y/tools/Makefile old mode 100644 new mode 100755 similarity index 100% rename from tools/Makefile rename to ffmpeg-y/tools/Makefile diff --git a/tools/aviocat.c b/ffmpeg-y/tools/aviocat.c old mode 100644 new mode 100755 similarity index 100% rename from tools/aviocat.c rename to ffmpeg-y/tools/aviocat.c diff --git a/tools/bisect-create b/ffmpeg-y/tools/bisect-create similarity index 100% rename from tools/bisect-create rename to ffmpeg-y/tools/bisect-create diff --git a/tools/bookmarklets.html b/ffmpeg-y/tools/bookmarklets.html old mode 100644 new mode 100755 similarity index 100% rename from tools/bookmarklets.html rename to ffmpeg-y/tools/bookmarklets.html diff --git a/tools/cl2c b/ffmpeg-y/tools/cl2c similarity index 100% rename from tools/cl2c rename to ffmpeg-y/tools/cl2c diff --git a/tools/clean-diff b/ffmpeg-y/tools/clean-diff similarity index 100% rename from tools/clean-diff rename to ffmpeg-y/tools/clean-diff diff --git a/tools/coverity.c b/ffmpeg-y/tools/coverity.c old mode 100644 new mode 100755 similarity index 100% rename from tools/coverity.c rename to ffmpeg-y/tools/coverity.c diff --git a/tools/crypto_bench.c b/ffmpeg-y/tools/crypto_bench.c old mode 100644 new mode 100755 similarity index 100% rename from tools/crypto_bench.c rename to ffmpeg-y/tools/crypto_bench.c diff --git a/tools/cws2fws.c b/ffmpeg-y/tools/cws2fws.c old mode 100644 new mode 100755 similarity index 100% rename from tools/cws2fws.c rename to ffmpeg-y/tools/cws2fws.c diff --git a/tools/dvd2concat b/ffmpeg-y/tools/dvd2concat similarity index 100% rename from tools/dvd2concat rename to ffmpeg-y/tools/dvd2concat diff --git a/tools/enum_options.c b/ffmpeg-y/tools/enum_options.c old mode 100644 new mode 100755 similarity index 100% rename from tools/enum_options.c rename to ffmpeg-y/tools/enum_options.c diff --git a/tools/ffescape.c b/ffmpeg-y/tools/ffescape.c old mode 100644 new mode 100755 similarity index 100% rename from tools/ffescape.c rename to ffmpeg-y/tools/ffescape.c diff --git a/tools/ffeval.c b/ffmpeg-y/tools/ffeval.c old mode 100644 new mode 100755 similarity index 100% rename from tools/ffeval.c rename to ffmpeg-y/tools/ffeval.c diff --git a/tools/ffhash.c b/ffmpeg-y/tools/ffhash.c old mode 100644 new mode 100755 similarity index 100% rename from tools/ffhash.c rename to ffmpeg-y/tools/ffhash.c diff --git a/tools/fourcc2pixfmt.c b/ffmpeg-y/tools/fourcc2pixfmt.c old mode 100644 new mode 100755 similarity index 100% rename from tools/fourcc2pixfmt.c rename to ffmpeg-y/tools/fourcc2pixfmt.c diff --git a/tools/gen-rc b/ffmpeg-y/tools/gen-rc similarity index 100% rename from tools/gen-rc rename to ffmpeg-y/tools/gen-rc diff --git a/tools/graph2dot.c b/ffmpeg-y/tools/graph2dot.c old mode 100644 new mode 100755 similarity index 100% rename from tools/graph2dot.c rename to ffmpeg-y/tools/graph2dot.c diff --git a/tools/ismindex.c b/ffmpeg-y/tools/ismindex.c old mode 100644 new mode 100755 similarity index 100% rename from tools/ismindex.c rename to ffmpeg-y/tools/ismindex.c diff --git a/tools/libav-merge-next-commit b/ffmpeg-y/tools/libav-merge-next-commit similarity index 100% rename from tools/libav-merge-next-commit rename to ffmpeg-y/tools/libav-merge-next-commit diff --git a/tools/loudnorm.rb b/ffmpeg-y/tools/loudnorm.rb similarity index 100% rename from tools/loudnorm.rb rename to ffmpeg-y/tools/loudnorm.rb diff --git a/tools/make_chlayout_test b/ffmpeg-y/tools/make_chlayout_test similarity index 100% rename from tools/make_chlayout_test rename to ffmpeg-y/tools/make_chlayout_test diff --git a/tools/missing_codec_desc b/ffmpeg-y/tools/missing_codec_desc similarity index 100% rename from tools/missing_codec_desc rename to ffmpeg-y/tools/missing_codec_desc diff --git a/tools/murge b/ffmpeg-y/tools/murge similarity index 100% rename from tools/murge rename to ffmpeg-y/tools/murge diff --git a/tools/normalize.py b/ffmpeg-y/tools/normalize.py similarity index 100% rename from tools/normalize.py rename to ffmpeg-y/tools/normalize.py diff --git a/tools/patcheck b/ffmpeg-y/tools/patcheck similarity index 100% rename from tools/patcheck rename to ffmpeg-y/tools/patcheck diff --git a/tools/pktdumper.c b/ffmpeg-y/tools/pktdumper.c old mode 100644 new mode 100755 similarity index 100% rename from tools/pktdumper.c rename to ffmpeg-y/tools/pktdumper.c diff --git a/tools/plotframes b/ffmpeg-y/tools/plotframes similarity index 100% rename from tools/plotframes rename to ffmpeg-y/tools/plotframes diff --git a/tools/probetest.c b/ffmpeg-y/tools/probetest.c old mode 100644 new mode 100755 similarity index 100% rename from tools/probetest.c rename to ffmpeg-y/tools/probetest.c diff --git a/tools/python/convert.py b/ffmpeg-y/tools/python/convert.py old mode 100644 new mode 100755 similarity index 100% rename from tools/python/convert.py rename to ffmpeg-y/tools/python/convert.py diff --git a/tools/python/convert_from_tensorflow.py b/ffmpeg-y/tools/python/convert_from_tensorflow.py old mode 100644 new mode 100755 similarity index 100% rename from tools/python/convert_from_tensorflow.py rename to ffmpeg-y/tools/python/convert_from_tensorflow.py diff --git a/tools/qt-faststart.c b/ffmpeg-y/tools/qt-faststart.c old mode 100644 new mode 100755 similarity index 100% rename from tools/qt-faststart.c rename to ffmpeg-y/tools/qt-faststart.c diff --git a/tools/seek_print.c b/ffmpeg-y/tools/seek_print.c old mode 100644 new mode 100755 similarity index 100% rename from tools/seek_print.c rename to ffmpeg-y/tools/seek_print.c diff --git a/tools/sidxindex.c b/ffmpeg-y/tools/sidxindex.c old mode 100644 new mode 100755 similarity index 100% rename from tools/sidxindex.c rename to ffmpeg-y/tools/sidxindex.c diff --git a/tools/sofa2wavs.c b/ffmpeg-y/tools/sofa2wavs.c old mode 100644 new mode 100755 similarity index 100% rename from tools/sofa2wavs.c rename to ffmpeg-y/tools/sofa2wavs.c diff --git a/tools/target_dec_fate.list b/ffmpeg-y/tools/target_dec_fate.list old mode 100644 new mode 100755 similarity index 100% rename from tools/target_dec_fate.list rename to ffmpeg-y/tools/target_dec_fate.list diff --git a/tools/target_dec_fate.sh b/ffmpeg-y/tools/target_dec_fate.sh similarity index 100% rename from tools/target_dec_fate.sh rename to ffmpeg-y/tools/target_dec_fate.sh diff --git a/tools/target_dec_fuzzer.c b/ffmpeg-y/tools/target_dec_fuzzer.c old mode 100644 new mode 100755 similarity index 100% rename from tools/target_dec_fuzzer.c rename to ffmpeg-y/tools/target_dec_fuzzer.c diff --git a/tools/target_dem_fuzzer.c b/ffmpeg-y/tools/target_dem_fuzzer.c old mode 100644 new mode 100755 similarity index 100% rename from tools/target_dem_fuzzer.c rename to ffmpeg-y/tools/target_dem_fuzzer.c diff --git a/tools/trasher.c b/ffmpeg-y/tools/trasher.c old mode 100644 new mode 100755 similarity index 100% rename from tools/trasher.c rename to ffmpeg-y/tools/trasher.c diff --git a/tools/uncoded_frame.c b/ffmpeg-y/tools/uncoded_frame.c old mode 100644 new mode 100755 similarity index 100% rename from tools/uncoded_frame.c rename to ffmpeg-y/tools/uncoded_frame.c diff --git a/tools/unwrap-diff b/ffmpeg-y/tools/unwrap-diff similarity index 100% rename from tools/unwrap-diff rename to ffmpeg-y/tools/unwrap-diff diff --git a/tools/yuvcmp.c b/ffmpeg-y/tools/yuvcmp.c old mode 100644 new mode 100755 similarity index 100% rename from tools/yuvcmp.c rename to ffmpeg-y/tools/yuvcmp.c diff --git a/tools/zmqsend.c b/ffmpeg-y/tools/zmqsend.c old mode 100644 new mode 100755 similarity index 100% rename from tools/zmqsend.c rename to ffmpeg-y/tools/zmqsend.c diff --git a/tools/zmqshell.py b/ffmpeg-y/tools/zmqshell.py similarity index 100% rename from tools/zmqshell.py rename to ffmpeg-y/tools/zmqshell.py diff --git a/libavcodec/.gitignore b/libavcodec/.gitignore deleted file mode 100644 index 28814f7233..0000000000 --- a/libavcodec/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/*_tablegen -/*_tables.c -/*_tables.h -/bsf_list.c -/codec_list.c -/parser_list.c diff --git a/libavcodec/tests/.gitignore b/libavcodec/tests/.gitignore deleted file mode 100644 index 56ddb2cbeb..0000000000 --- a/libavcodec/tests/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -/avfft -/avpacket -/cabac -/celp_math -/codec_desc -/dct -/fft -/fft-fixed -/fft-fixed32 -/golomb -/h264_levels -/htmlsubtitles -/iirfilter -/imgconvert -/jpeg2000dwt -/mathops -/mjpegenc_huffman -/motion -/mpeg12framerate -/options -/rangecoder -/snowenc -/utils diff --git a/libavcodec/x86/aacencdsp.asm b/libavcodec/x86/aacencdsp.asm deleted file mode 100644 index 97af571ec8..0000000000 --- a/libavcodec/x86/aacencdsp.asm +++ /dev/null @@ -1,86 +0,0 @@ -;****************************************************************************** -;* SIMD optimized AAC encoder DSP functions -;* -;* Copyright (C) 2016 Rostislav Pehlivanov -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -float_abs_mask: times 4 dd 0x7fffffff - -SECTION .text - -;******************************************************************* -;void ff_abs_pow34(float *out, const float *in, const int size); -;******************************************************************* -INIT_XMM sse -cglobal abs_pow34, 3, 3, 3, out, in, size - mova m2, [float_abs_mask] - shl sizeq, 2 - add inq, sizeq - add outq, sizeq - neg sizeq -.loop: - andps m0, m2, [inq+sizeq] - sqrtps m1, m0 - mulps m0, m1 - sqrtps m0, m0 - mova [outq+sizeq], m0 - add sizeq, mmsize - jl .loop - RET - -;******************************************************************* -;void ff_aac_quantize_bands(int *out, const float *in, const float *scaled, -; int size, int is_signed, int maxval, const float Q34, -; const float rounding) -;******************************************************************* -INIT_XMM sse2 -cglobal aac_quantize_bands, 5, 5, 6, out, in, scaled, size, is_signed, maxval, Q34, rounding -%if UNIX64 == 0 - movss m0, Q34m - movss m1, roundingm - cvtsi2ss m3, dword maxvalm -%else - cvtsi2ss m3, maxvald -%endif - shufps m0, m0, 0 - shufps m1, m1, 0 - shufps m3, m3, 0 - shl is_signedd, 31 - movd m4, is_signedd - shufps m4, m4, 0 - shl sized, 2 - add inq, sizeq - add outq, sizeq - add scaledq, sizeq - neg sizeq -.loop: - mulps m2, m0, [scaledq+sizeq] - addps m2, m1 - minps m2, m3 - andps m5, m4, [inq+sizeq] - orps m2, m5 - cvttps2dq m2, m2 - mova [outq+sizeq], m2 - add sizeq, mmsize - jl .loop - RET diff --git a/libavcodec/x86/aacpsdsp.asm b/libavcodec/x86/aacpsdsp.asm deleted file mode 100644 index 4acd087c85..0000000000 --- a/libavcodec/x86/aacpsdsp.asm +++ /dev/null @@ -1,487 +0,0 @@ -;****************************************************************************** -;* SIMD optimized MPEG-4 Parametric Stereo decoding functions -;* -;* Copyright (C) 2015 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -ps_p1m1p1m1: dd 0, 0x80000000, 0, 0x80000000 - -SECTION .text - -;************************************************************************* -;void ff_ps_add_squares_(float *dst, const float (*src)[2], int n); -;************************************************************************* -%macro PS_ADD_SQUARES 1 -cglobal ps_add_squares, 3, 3, %1, dst, src, n - shl nd, 3 - add srcq, nq - neg nq - -align 16 -.loop: - movaps m0, [srcq+nq] - movaps m1, [srcq+nq+mmsize] - mulps m0, m0 - mulps m1, m1 - HADDPS m0, m1, m2 - addps m0, [dstq] - movaps [dstq], m0 - add dstq, mmsize - add nq, mmsize*2 - jl .loop - REP_RET -%endmacro - -INIT_XMM sse -PS_ADD_SQUARES 2 -INIT_XMM sse3 -PS_ADD_SQUARES 3 - -;******************************************************************* -;void ff_ps_mul_pair_single_sse(float (*dst)[2], float (*src0)[2], -; float *src1, int n); -;******************************************************************* -INIT_XMM sse -cglobal ps_mul_pair_single, 4, 4, 4, dst, src1, src2, n - shl nd, 3 - add src1q, nq - add dstq, nq - neg nq - -align 16 -.loop: - movu m0, [src1q+nq] - movu m1, [src1q+nq+mmsize] - mova m2, [src2q] - mova m3, m2 - unpcklps m2, m2 - unpckhps m3, m3 - mulps m0, m2 - mulps m1, m3 - mova [dstq+nq], m0 - mova [dstq+nq+mmsize], m1 - add src2q, mmsize - add nq, mmsize*2 - jl .loop - REP_RET - -;*********************************************************************** -;void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2], -; float h[2][4], float h_step[2][4], -; int len); -;*********************************************************************** -INIT_XMM sse3 -cglobal ps_stereo_interpolate, 5, 5, 6, l, r, h, h_step, n - movaps m0, [hq] - movaps m1, [h_stepq] - unpcklps m4, m0, m0 - unpckhps m0, m0 - unpcklps m5, m1, m1 - unpckhps m1, m1 - shl nd, 3 - add lq, nq - add rq, nq - neg nq - -align 16 -.loop: - addps m4, m5 - addps m0, m1 - movddup m2, [lq+nq] - movddup m3, [rq+nq] - mulps m2, m4 - mulps m3, m0 - addps m2, m3 - movsd [lq+nq], m2 - movhps [rq+nq], m2 - add nq, 8 - jl .loop - REP_RET - -;*************************************************************************** -;void ps_stereo_interpolate_ipdopd_sse3(float (*l)[2], float (*r)[2], -; float h[2][4], float h_step[2][4], -; int len); -;*************************************************************************** -INIT_XMM sse3 -cglobal ps_stereo_interpolate_ipdopd, 5, 5, 10, l, r, h, h_step, n - movaps m0, [hq] - movaps m1, [hq+mmsize] -%if ARCH_X86_64 - movaps m8, [h_stepq] - movaps m9, [h_stepq+mmsize] - %define H_STEP0 m8 - %define H_STEP1 m9 -%else - %define H_STEP0 [h_stepq] - %define H_STEP1 [h_stepq+mmsize] -%endif - shl nd, 3 - add lq, nq - add rq, nq - neg nq - -align 16 -.loop: - addps m0, H_STEP0 - addps m1, H_STEP1 - movddup m2, [lq+nq] - movddup m3, [rq+nq] - shufps m4, m2, m2, q2301 - shufps m5, m3, m3, q2301 - unpcklps m6, m0, m0 - unpckhps m7, m0, m0 - mulps m2, m6 - mulps m3, m7 - unpcklps m6, m1, m1 - unpckhps m7, m1, m1 - mulps m4, m6 - mulps m5, m7 - addps m2, m3 - addsubps m2, m4 - addsubps m2, m5 - movsd [lq+nq], m2 - movhps [rq+nq], m2 - add nq, 8 - jl .loop - REP_RET - -;********************************************************** -;void ps_hybrid_analysis_ileave_sse(float out[2][38][64], -; float (*in)[32][2], -; int i, int len) -;********************************************************** -INIT_XMM sse -cglobal ps_hybrid_analysis_ileave, 3, 7, 5, out, in, i, len, in0, in1, tmp - movsxdifnidn iq, id - mov lend, 32 << 3 - lea inq, [inq+iq*4] - mov tmpd, id - shl tmpd, 8 - add outq, tmpq - mov tmpd, 64 - sub tmpd, id - mov id, tmpd - - test id, 1 - jne .loop4 - test id, 2 - jne .loop8 - -align 16 -.loop16: - mov in0q, inq - mov in1q, 38*64*4 - add in1q, in0q - mov tmpd, lend - -.inner_loop16: - movaps m0, [in0q] - movaps m1, [in1q] - movaps m2, [in0q+lenq] - movaps m3, [in1q+lenq] - TRANSPOSE4x4PS 0, 1, 2, 3, 4 - movaps [outq], m0 - movaps [outq+lenq], m1 - movaps [outq+lenq*2], m2 - movaps [outq+3*32*2*4], m3 - lea in0q, [in0q+lenq*2] - lea in1q, [in1q+lenq*2] - add outq, mmsize - sub tmpd, mmsize - jg .inner_loop16 - add inq, 16 - add outq, 3*32*2*4 - sub id, 4 - jg .loop16 - RET - -align 16 -.loop8: - mov in0q, inq - mov in1q, 38*64*4 - add in1q, in0q - mov tmpd, lend - -.inner_loop8: - movlps m0, [in0q] - movlps m1, [in1q] - movhps m0, [in0q+lenq] - movhps m1, [in1q+lenq] - SBUTTERFLYPS 0, 1, 2 - SBUTTERFLYPD 0, 1, 2 - movaps [outq], m0 - movaps [outq+lenq], m1 - lea in0q, [in0q+lenq*2] - lea in1q, [in1q+lenq*2] - add outq, mmsize - sub tmpd, mmsize - jg .inner_loop8 - add inq, 8 - add outq, lenq - sub id, 2 - jg .loop16 - RET - -align 16 -.loop4: - mov in0q, inq - mov in1q, 38*64*4 - add in1q, in0q - mov tmpd, lend - -.inner_loop4: - movss m0, [in0q] - movss m1, [in1q] - movss m2, [in0q+lenq] - movss m3, [in1q+lenq] - movlhps m0, m1 - movlhps m2, m3 - shufps m0, m2, q2020 - movaps [outq], m0 - lea in0q, [in0q+lenq*2] - lea in1q, [in1q+lenq*2] - add outq, mmsize - sub tmpd, mmsize - jg .inner_loop4 - add inq, 4 - sub id, 1 - test id, 2 - jne .loop8 - cmp id, 4 - jge .loop16 - RET - -;*********************************************************** -;void ps_hybrid_synthesis_deint_sse4(float out[2][38][64], -; float (*in)[32][2], -; int i, int len) -;*********************************************************** -%macro HYBRID_SYNTHESIS_DEINT 0 -cglobal ps_hybrid_synthesis_deint, 3, 7, 5, out, in, i, len, out0, out1, tmp -%if cpuflag(sse4) -%define MOVH movsd -%else -%define MOVH movlps -%endif - movsxdifnidn iq, id - mov lend, 32 << 3 - lea outq, [outq+iq*4] - mov tmpd, id - shl tmpd, 8 - add inq, tmpq - mov tmpd, 64 - sub tmpd, id - mov id, tmpd - - test id, 1 - jne .loop4 - test id, 2 - jne .loop8 - -align 16 -.loop16: - mov out0q, outq - mov out1q, 38*64*4 - add out1q, out0q - mov tmpd, lend - -.inner_loop16: - movaps m0, [inq] - movaps m1, [inq+lenq] - movaps m2, [inq+lenq*2] - movaps m3, [inq+3*32*2*4] - TRANSPOSE4x4PS 0, 1, 2, 3, 4 - movaps [out0q], m0 - movaps [out1q], m1 - movaps [out0q+lenq], m2 - movaps [out1q+lenq], m3 - lea out0q, [out0q+lenq*2] - lea out1q, [out1q+lenq*2] - add inq, mmsize - sub tmpd, mmsize - jg .inner_loop16 - add outq, 16 - add inq, 3*32*2*4 - sub id, 4 - jg .loop16 - RET - -align 16 -.loop8: - mov out0q, outq - mov out1q, 38*64*4 - add out1q, out0q - mov tmpd, lend - -.inner_loop8: - movaps m0, [inq] - movaps m1, [inq+lenq] - SBUTTERFLYPS 0, 1, 2 - SBUTTERFLYPD 0, 1, 2 - MOVH [out0q], m0 - MOVH [out1q], m1 - movhps [out0q+lenq], m0 - movhps [out1q+lenq], m1 - lea out0q, [out0q+lenq*2] - lea out1q, [out1q+lenq*2] - add inq, mmsize - sub tmpd, mmsize - jg .inner_loop8 - add outq, 8 - add inq, lenq - sub id, 2 - jg .loop16 - RET - -align 16 -.loop4: - mov out0q, outq - mov out1q, 38*64*4 - add out1q, out0q - mov tmpd, lend - -.inner_loop4: - movaps m0, [inq] - movss [out0q], m0 -%if cpuflag(sse4) - extractps [out1q], m0, 1 - extractps [out0q+lenq], m0, 2 - extractps [out1q+lenq], m0, 3 -%else - movhlps m1, m0 - movss [out0q+lenq], m1 - shufps m0, m0, 0xb1 - movss [out1q], m0 - movhlps m1, m0 - movss [out1q+lenq], m1 -%endif - lea out0q, [out0q+lenq*2] - lea out1q, [out1q+lenq*2] - add inq, mmsize - sub tmpd, mmsize - jg .inner_loop4 - add outq, 4 - sub id, 1 - test id, 2 - jne .loop8 - cmp id, 4 - jge .loop16 - RET -%endmacro - -INIT_XMM sse -HYBRID_SYNTHESIS_DEINT -INIT_XMM sse4 -HYBRID_SYNTHESIS_DEINT - -;******************************************************************* -;void ff_ps_hybrid_analysis_(float (*out)[2], float (*in)[2], -; const float (*filter)[8][2], -; ptrdiff_t stride, int n); -;******************************************************************* -%macro PS_HYBRID_ANALYSIS_LOOP 3 - movu %1, [inq+mmsize*%3] - movu m1, [inq+mmsize*(5-%3)+8] -%if cpuflag(sse3) - pshufd %2, %1, q2301 - pshufd m4, m1, q0123 - pshufd m1, m1, q1032 - pshufd m2, [filterq+nq+mmsize*%3], q2301 - addsubps %2, m4 - addsubps %1, m1 -%else - mova m2, [filterq+nq+mmsize*%3] - mova %2, %1 - mova m4, m1 - shufps %2, %2, q2301 - shufps m4, m4, q0123 - shufps m1, m1, q1032 - shufps m2, m2, q2301 - xorps m4, m7 - xorps m1, m7 - subps %2, m4 - subps %1, m1 -%endif - mulps %2, m2 - mulps %1, m2 -%if %3 - addps m3, %2 - addps m0, %1 -%endif -%endmacro - -%macro PS_HYBRID_ANALYSIS 0 -cglobal ps_hybrid_analysis, 5, 5, 8, out, in, filter, stride, n -%if cpuflag(sse3) -%define MOVH movsd -%else -%define MOVH movlps -%endif - shl strideq, 3 - shl nd, 6 - add filterq, nq - neg nq - mova m7, [ps_p1m1p1m1] - -align 16 -.loop: - PS_HYBRID_ANALYSIS_LOOP m0, m3, 0 - PS_HYBRID_ANALYSIS_LOOP m5, m6, 1 - PS_HYBRID_ANALYSIS_LOOP m5, m6, 2 - -%if cpuflag(sse3) - pshufd m3, m3, q2301 - xorps m0, m7 - hsubps m3, m0 - pshufd m1, m3, q0020 - pshufd m3, m3, q0031 - addps m1, m3 - movsd m2, [inq+6*8] -%else - mova m1, m3 - mova m2, m0 - shufps m1, m1, q2301 - shufps m2, m2, q2301 - subps m1, m3 - addps m2, m0 - unpcklps m3, m1, m2 - unpckhps m1, m2 - addps m1, m3 - movu m2, [inq+6*8] ; faster than movlps and no risk of overread -%endif - movss m3, [filterq+nq+8*6] - SPLATD m3 - mulps m2, m3 - addps m1, m2 - MOVH [outq], m1 - add outq, strideq - add nq, 64 - jl .loop - REP_RET -%endmacro - -INIT_XMM sse -PS_HYBRID_ANALYSIS -INIT_XMM sse3 -PS_HYBRID_ANALYSIS diff --git a/libavcodec/x86/ac3dsp.asm b/libavcodec/x86/ac3dsp.asm deleted file mode 100644 index 675ade3101..0000000000 --- a/libavcodec/x86/ac3dsp.asm +++ /dev/null @@ -1,552 +0,0 @@ -;***************************************************************************** -;* x86-optimized AC-3 DSP functions -;* Copyright (c) 2011 Justin Ruggles -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -; 16777216.0f - used in ff_float_to_fixed24() -pf_1_24: times 4 dd 0x4B800000 - -; used in ff_ac3_compute_mantissa_size() -cextern ac3_bap_bits -pw_bap_mul1: dw 21846, 21846, 0, 32768, 21846, 21846, 0, 32768 -pw_bap_mul2: dw 5, 7, 0, 7, 5, 7, 0, 7 - -; used in ff_ac3_extract_exponents() -cextern pd_1 -pd_151: times 4 dd 151 - -; used in ff_apply_window_int16() -pb_revwords: SHUFFLE_MASK_W 7, 6, 5, 4, 3, 2, 1, 0 -pd_16384: times 4 dd 16384 - -SECTION .text - -;----------------------------------------------------------------------------- -; void ff_ac3_exponent_min(uint8_t *exp, int num_reuse_blocks, int nb_coefs) -;----------------------------------------------------------------------------- - -%macro AC3_EXPONENT_MIN 0 -cglobal ac3_exponent_min, 3, 4, 2, exp, reuse_blks, expn, offset - shl reuse_blksq, 8 - jz .end - LOOP_ALIGN -.nextexp: - mov offsetq, reuse_blksq - mova m0, [expq+offsetq] - sub offsetq, 256 - LOOP_ALIGN -.nextblk: - PMINUB m0, [expq+offsetq], m1 - sub offsetq, 256 - jae .nextblk - mova [expq], m0 - add expq, mmsize - sub expnq, mmsize - jg .nextexp -.end: - REP_RET -%endmacro - -%define LOOP_ALIGN -INIT_MMX mmx -AC3_EXPONENT_MIN -%if HAVE_MMXEXT_EXTERNAL -%define LOOP_ALIGN ALIGN 16 -INIT_MMX mmxext -AC3_EXPONENT_MIN -%endif -%if HAVE_SSE2_EXTERNAL -INIT_XMM sse2 -AC3_EXPONENT_MIN -%endif -%undef LOOP_ALIGN - -;----------------------------------------------------------------------------- -; int ff_ac3_max_msb_abs_int16(const int16_t *src, int len) -; -; This function uses 2 different methods to calculate a valid result. -; 1) logical 'or' of abs of each element -; This is used for ssse3 because of the pabsw instruction. -; It is also used for mmx because of the lack of min/max instructions. -; 2) calculate min/max for the array, then or(abs(min),abs(max)) -; This is used for mmxext and sse2 because they have pminsw/pmaxsw. -;----------------------------------------------------------------------------- - -; logical 'or' of 4 or 8 words in an mmx or xmm register into the low word -%macro OR_WORDS_HORIZ 2 ; src, tmp -%if cpuflag(sse2) - movhlps %2, %1 - por %1, %2 - pshuflw %2, %1, q0032 - por %1, %2 - pshuflw %2, %1, q0001 - por %1, %2 -%elif cpuflag(mmxext) - pshufw %2, %1, q0032 - por %1, %2 - pshufw %2, %1, q0001 - por %1, %2 -%else ; mmx - movq %2, %1 - psrlq %2, 32 - por %1, %2 - movq %2, %1 - psrlq %2, 16 - por %1, %2 -%endif -%endmacro - -%macro AC3_MAX_MSB_ABS_INT16 1 -cglobal ac3_max_msb_abs_int16, 2,2,5, src, len - pxor m2, m2 - pxor m3, m3 -.loop: -%ifidn %1, min_max - mova m0, [srcq] - mova m1, [srcq+mmsize] - pminsw m2, m0 - pminsw m2, m1 - pmaxsw m3, m0 - pmaxsw m3, m1 -%else ; or_abs -%if notcpuflag(ssse3) - mova m0, [srcq] - mova m1, [srcq+mmsize] - ABS2 m0, m1, m3, m4 -%else ; ssse3 - ; using memory args is faster for ssse3 - pabsw m0, [srcq] - pabsw m1, [srcq+mmsize] -%endif - por m2, m0 - por m2, m1 -%endif - add srcq, mmsize*2 - sub lend, mmsize - ja .loop -%ifidn %1, min_max - ABS2 m2, m3, m0, m1 - por m2, m3 -%endif - OR_WORDS_HORIZ m2, m0 - movd eax, m2 - and eax, 0xFFFF - RET -%endmacro - -INIT_MMX mmx -AC3_MAX_MSB_ABS_INT16 or_abs -INIT_MMX mmxext -AC3_MAX_MSB_ABS_INT16 min_max -INIT_XMM sse2 -AC3_MAX_MSB_ABS_INT16 min_max -INIT_XMM ssse3 -AC3_MAX_MSB_ABS_INT16 or_abs - -;----------------------------------------------------------------------------- -; macro used for ff_ac3_lshift_int16() and ff_ac3_rshift_int32() -;----------------------------------------------------------------------------- - -%macro AC3_SHIFT 3 ; l/r, 16/32, shift instruction, instruction set -cglobal ac3_%1shift_int%2, 3, 3, 5, src, len, shift - movd m0, shiftd -.loop: - mova m1, [srcq ] - mova m2, [srcq+mmsize ] - mova m3, [srcq+mmsize*2] - mova m4, [srcq+mmsize*3] - %3 m1, m0 - %3 m2, m0 - %3 m3, m0 - %3 m4, m0 - mova [srcq ], m1 - mova [srcq+mmsize ], m2 - mova [srcq+mmsize*2], m3 - mova [srcq+mmsize*3], m4 - add srcq, mmsize*4 - sub lend, mmsize*32/%2 - ja .loop -.end: - REP_RET -%endmacro - -;----------------------------------------------------------------------------- -; void ff_ac3_lshift_int16(int16_t *src, unsigned int len, unsigned int shift) -;----------------------------------------------------------------------------- - -INIT_MMX mmx -AC3_SHIFT l, 16, psllw -INIT_XMM sse2 -AC3_SHIFT l, 16, psllw - -;----------------------------------------------------------------------------- -; void ff_ac3_rshift_int32(int32_t *src, unsigned int len, unsigned int shift) -;----------------------------------------------------------------------------- - -INIT_MMX mmx -AC3_SHIFT r, 32, psrad -INIT_XMM sse2 -AC3_SHIFT r, 32, psrad - -;----------------------------------------------------------------------------- -; void ff_float_to_fixed24(int32_t *dst, const float *src, unsigned int len) -;----------------------------------------------------------------------------- - -; The 3DNow! version is not bit-identical because pf2id uses truncation rather -; than round-to-nearest. -INIT_MMX 3dnow -cglobal float_to_fixed24, 3, 3, 0, dst, src, len - movq m0, [pf_1_24] -.loop: - movq m1, [srcq ] - movq m2, [srcq+8 ] - movq m3, [srcq+16] - movq m4, [srcq+24] - pfmul m1, m0 - pfmul m2, m0 - pfmul m3, m0 - pfmul m4, m0 - pf2id m1, m1 - pf2id m2, m2 - pf2id m3, m3 - pf2id m4, m4 - movq [dstq ], m1 - movq [dstq+8 ], m2 - movq [dstq+16], m3 - movq [dstq+24], m4 - add srcq, 32 - add dstq, 32 - sub lend, 8 - ja .loop - femms - RET - -INIT_XMM sse -cglobal float_to_fixed24, 3, 3, 3, dst, src, len - movaps m0, [pf_1_24] -.loop: - movaps m1, [srcq ] - movaps m2, [srcq+16] - mulps m1, m0 - mulps m2, m0 - cvtps2pi mm0, m1 - movhlps m1, m1 - cvtps2pi mm1, m1 - cvtps2pi mm2, m2 - movhlps m2, m2 - cvtps2pi mm3, m2 - movq [dstq ], mm0 - movq [dstq+ 8], mm1 - movq [dstq+16], mm2 - movq [dstq+24], mm3 - add srcq, 32 - add dstq, 32 - sub lend, 8 - ja .loop - emms - RET - -INIT_XMM sse2 -cglobal float_to_fixed24, 3, 3, 9, dst, src, len - movaps m0, [pf_1_24] -.loop: - movaps m1, [srcq ] - movaps m2, [srcq+16 ] - movaps m3, [srcq+32 ] - movaps m4, [srcq+48 ] -%ifdef m8 - movaps m5, [srcq+64 ] - movaps m6, [srcq+80 ] - movaps m7, [srcq+96 ] - movaps m8, [srcq+112] -%endif - mulps m1, m0 - mulps m2, m0 - mulps m3, m0 - mulps m4, m0 -%ifdef m8 - mulps m5, m0 - mulps m6, m0 - mulps m7, m0 - mulps m8, m0 -%endif - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - cvtps2dq m4, m4 -%ifdef m8 - cvtps2dq m5, m5 - cvtps2dq m6, m6 - cvtps2dq m7, m7 - cvtps2dq m8, m8 -%endif - movdqa [dstq ], m1 - movdqa [dstq+16 ], m2 - movdqa [dstq+32 ], m3 - movdqa [dstq+48 ], m4 -%ifdef m8 - movdqa [dstq+64 ], m5 - movdqa [dstq+80 ], m6 - movdqa [dstq+96 ], m7 - movdqa [dstq+112], m8 - add srcq, 128 - add dstq, 128 - sub lenq, 32 -%else - add srcq, 64 - add dstq, 64 - sub lenq, 16 -%endif - ja .loop - REP_RET - -;------------------------------------------------------------------------------ -; int ff_ac3_compute_mantissa_size(uint16_t mant_cnt[6][16]) -;------------------------------------------------------------------------------ - -%macro PHADDD4 2 ; xmm src, xmm tmp - movhlps %2, %1 - paddd %1, %2 - pshufd %2, %1, 0x1 - paddd %1, %2 -%endmacro - -INIT_XMM sse2 -cglobal ac3_compute_mantissa_size, 1, 2, 4, mant_cnt, sum - movdqa m0, [mant_cntq ] - movdqa m1, [mant_cntq+ 1*16] - paddw m0, [mant_cntq+ 2*16] - paddw m1, [mant_cntq+ 3*16] - paddw m0, [mant_cntq+ 4*16] - paddw m1, [mant_cntq+ 5*16] - paddw m0, [mant_cntq+ 6*16] - paddw m1, [mant_cntq+ 7*16] - paddw m0, [mant_cntq+ 8*16] - paddw m1, [mant_cntq+ 9*16] - paddw m0, [mant_cntq+10*16] - paddw m1, [mant_cntq+11*16] - pmaddwd m0, [ac3_bap_bits ] - pmaddwd m1, [ac3_bap_bits+16] - paddd m0, m1 - PHADDD4 m0, m1 - movd sumd, m0 - movdqa m3, [pw_bap_mul1] - movhpd m0, [mant_cntq +2] - movlpd m0, [mant_cntq+1*32+2] - movhpd m1, [mant_cntq+2*32+2] - movlpd m1, [mant_cntq+3*32+2] - movhpd m2, [mant_cntq+4*32+2] - movlpd m2, [mant_cntq+5*32+2] - pmulhuw m0, m3 - pmulhuw m1, m3 - pmulhuw m2, m3 - paddusw m0, m1 - paddusw m0, m2 - pmaddwd m0, [pw_bap_mul2] - PHADDD4 m0, m1 - movd eax, m0 - add eax, sumd - RET - -;------------------------------------------------------------------------------ -; void ff_ac3_extract_exponents(uint8_t *exp, int32_t *coef, int nb_coefs) -;------------------------------------------------------------------------------ - -%macro PABSD 1-2 ; src/dst, unused -%if cpuflag(ssse3) - pabsd %1, %1 -%else ; src/dst, tmp - pxor %2, %2 - pcmpgtd %2, %1 - pxor %1, %2 - psubd %1, %2 -%endif -%endmacro - -%macro AC3_EXTRACT_EXPONENTS 0 -cglobal ac3_extract_exponents, 3, 3, 4, exp, coef, len - add expq, lenq - lea coefq, [coefq+4*lenq] - neg lenq - mova m2, [pd_1] - mova m3, [pd_151] -.loop: - ; move 4 32-bit coefs to xmm0 - mova m0, [coefq+4*lenq] - ; absolute value - PABSD m0, m1 - ; convert to float and extract exponents - pslld m0, 1 - por m0, m2 - cvtdq2ps m1, m0 - psrld m1, 23 - mova m0, m3 - psubd m0, m1 - ; move the lowest byte in each of 4 dwords to the low dword - ; NOTE: We cannot just extract the low bytes with pshufb because the dword - ; result for 16777215 is -1 due to float inaccuracy. Using packuswb - ; clips this to 0, which is the correct exponent. - packssdw m0, m0 - packuswb m0, m0 - movd [expq+lenq], m0 - - add lenq, 4 - jl .loop - REP_RET -%endmacro - -%if HAVE_SSE2_EXTERNAL -INIT_XMM sse2 -AC3_EXTRACT_EXPONENTS -%endif -%if HAVE_SSSE3_EXTERNAL -INIT_XMM ssse3 -AC3_EXTRACT_EXPONENTS -%endif - -;----------------------------------------------------------------------------- -; void ff_apply_window_int16(int16_t *output, const int16_t *input, -; const int16_t *window, unsigned int len) -;----------------------------------------------------------------------------- - -%macro REVERSE_WORDS 1-2 -%if cpuflag(ssse3) && notcpuflag(atom) - pshufb %1, %2 -%elif cpuflag(sse2) - pshuflw %1, %1, 0x1B - pshufhw %1, %1, 0x1B - pshufd %1, %1, 0x4E -%elif cpuflag(mmxext) - pshufw %1, %1, 0x1B -%endif -%endmacro - -%macro MUL16FIXED 3 -%if cpuflag(ssse3) ; dst, src, unused -; dst = ((dst * src) + (1<<14)) >> 15 - pmulhrsw %1, %2 -%elif cpuflag(mmxext) ; dst, src, temp -; dst = (dst * src) >> 15 -; pmulhw cuts off the bottom bit, so we have to lshift by 1 and add it back -; in from the pmullw result. - mova %3, %1 - pmulhw %1, %2 - pmullw %3, %2 - psrlw %3, 15 - psllw %1, 1 - por %1, %3 -%endif -%endmacro - -%macro APPLY_WINDOW_INT16 1 ; %1 bitexact version -%if %1 -cglobal apply_window_int16, 4,5,6, output, input, window, offset, offset2 -%else -cglobal apply_window_int16_round, 4,5,6, output, input, window, offset, offset2 -%endif - lea offset2q, [offsetq-mmsize] -%if cpuflag(ssse3) && notcpuflag(atom) - mova m5, [pb_revwords] - ALIGN 16 -%elif %1 - mova m5, [pd_16384] -%endif -.loop: -%if cpuflag(ssse3) - ; This version does the 16x16->16 multiplication in-place without expanding - ; to 32-bit. The ssse3 version is bit-identical. - mova m0, [windowq+offset2q] - mova m1, [ inputq+offset2q] - pmulhrsw m1, m0 - REVERSE_WORDS m0, m5 - pmulhrsw m0, [ inputq+offsetq ] - mova [outputq+offset2q], m1 - mova [outputq+offsetq ], m0 -%elif %1 - ; This version expands 16-bit to 32-bit, multiplies by the window, - ; adds 16384 for rounding, right shifts 15, then repacks back to words to - ; save to the output. The window is reversed for the second half. - mova m3, [windowq+offset2q] - mova m4, [ inputq+offset2q] - pxor m0, m0 - punpcklwd m0, m3 - punpcklwd m1, m4 - pmaddwd m0, m1 - paddd m0, m5 - psrad m0, 15 - pxor m2, m2 - punpckhwd m2, m3 - punpckhwd m1, m4 - pmaddwd m2, m1 - paddd m2, m5 - psrad m2, 15 - packssdw m0, m2 - mova [outputq+offset2q], m0 - REVERSE_WORDS m3 - mova m4, [ inputq+offsetq] - pxor m0, m0 - punpcklwd m0, m3 - punpcklwd m1, m4 - pmaddwd m0, m1 - paddd m0, m5 - psrad m0, 15 - pxor m2, m2 - punpckhwd m2, m3 - punpckhwd m1, m4 - pmaddwd m2, m1 - paddd m2, m5 - psrad m2, 15 - packssdw m0, m2 - mova [outputq+offsetq], m0 -%else - ; This version does the 16x16->16 multiplication in-place without expanding - ; to 32-bit. The mmxext and sse2 versions do not use rounding, and - ; therefore are not bit-identical to the C version. - mova m0, [windowq+offset2q] - mova m1, [ inputq+offset2q] - mova m2, [ inputq+offsetq ] - MUL16FIXED m1, m0, m3 - REVERSE_WORDS m0 - MUL16FIXED m2, m0, m3 - mova [outputq+offset2q], m1 - mova [outputq+offsetq ], m2 -%endif - add offsetd, mmsize - sub offset2d, mmsize - jae .loop - REP_RET -%endmacro - -INIT_MMX mmxext -APPLY_WINDOW_INT16 0 -INIT_XMM sse2 -APPLY_WINDOW_INT16 0 - -INIT_MMX mmxext -APPLY_WINDOW_INT16 1 -INIT_XMM sse2 -APPLY_WINDOW_INT16 1 -INIT_XMM ssse3 -APPLY_WINDOW_INT16 1 -INIT_XMM ssse3, atom -APPLY_WINDOW_INT16 1 diff --git a/libavcodec/x86/ac3dsp_downmix.asm b/libavcodec/x86/ac3dsp_downmix.asm deleted file mode 100644 index 057cc6061c..0000000000 --- a/libavcodec/x86/ac3dsp_downmix.asm +++ /dev/null @@ -1,187 +0,0 @@ -;***************************************************************************** -;* x86-optimized AC-3 downmixing -;* Copyright (c) 2012 Justin Ruggles -;* -;* 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 is based on the channel mixing asm in libavresample, but it is -;* simplified for only float coefficients and only 3 to 6 channels. -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION .text - -;----------------------------------------------------------------------------- -; functions to downmix from 3 to 6 channels to mono or stereo -; void ff_ac3_downmix_*(float **samples, float **matrix, int len); -;----------------------------------------------------------------------------- - -%macro AC3_DOWNMIX 2 ; %1 = in channels, %2 = out channels -; define some names to make the code clearer -%assign in_channels %1 -%assign out_channels %2 -%assign stereo out_channels - 1 - -; determine how many matrix elements must go on the stack vs. mmregs -%assign matrix_elements in_channels * out_channels -%if stereo - %assign needed_mmregs 4 -%else - %assign needed_mmregs 3 -%endif -%assign matrix_elements_mm num_mmregs - needed_mmregs -%if matrix_elements < matrix_elements_mm - %assign matrix_elements_mm matrix_elements -%endif -%assign total_mmregs needed_mmregs+matrix_elements_mm -%if matrix_elements_mm < matrix_elements - %assign matrix_elements_stack matrix_elements - matrix_elements_mm -%else - %assign matrix_elements_stack 0 -%endif - -cglobal ac3_downmix_%1_to_%2, 3,in_channels+1,total_mmregs,0-matrix_elements_stack*mmsize, src0, src1, len, src2, src3, src4, src5 - -; load matrix pointers -%define matrix0q r1q -%define matrix1q r3q -%if stereo - mov matrix1q, [matrix0q+gprsize] -%endif - mov matrix0q, [matrix0q] - -; define matrix coeff names -%assign %%i 0 -%assign %%j needed_mmregs -%rep in_channels - %if %%i >= matrix_elements_mm - CAT_XDEFINE mx_stack_0_, %%i, 1 - CAT_XDEFINE mx_0_, %%i, [rsp+(%%i-matrix_elements_mm)*mmsize] - %else - CAT_XDEFINE mx_stack_0_, %%i, 0 - CAT_XDEFINE mx_0_, %%i, m %+ %%j - %assign %%j %%j+1 - %endif - %assign %%i %%i+1 -%endrep -%if stereo -%assign %%i 0 -%rep in_channels - %if in_channels + %%i >= matrix_elements_mm - CAT_XDEFINE mx_stack_1_, %%i, 1 - CAT_XDEFINE mx_1_, %%i, [rsp+(in_channels+%%i-matrix_elements_mm)*mmsize] - %else - CAT_XDEFINE mx_stack_1_, %%i, 0 - CAT_XDEFINE mx_1_, %%i, m %+ %%j - %assign %%j %%j+1 - %endif - %assign %%i %%i+1 -%endrep -%endif - -; load/splat matrix coeffs -%assign %%i 0 -%rep in_channels - %if mx_stack_0_ %+ %%i - VBROADCASTSS m0, [matrix0q+4*%%i] - mova mx_0_ %+ %%i, m0 - %else - VBROADCASTSS mx_0_ %+ %%i, [matrix0q+4*%%i] - %endif - %if stereo - %if mx_stack_1_ %+ %%i - VBROADCASTSS m0, [matrix1q+4*%%i] - mova mx_1_ %+ %%i, m0 - %else - VBROADCASTSS mx_1_ %+ %%i, [matrix1q+4*%%i] - %endif - %endif - %assign %%i %%i+1 -%endrep - - lea lenq, [4*r2d] - ; load channel pointers to registers -%assign %%i 1 -%rep (in_channels - 1) - mov src %+ %%i %+ q, [src0q+%%i*gprsize] - add src %+ %%i %+ q, lenq - %assign %%i %%i+1 -%endrep - mov src0q, [src0q] - add src0q, lenq - neg lenq -.loop: - %if stereo || mx_stack_0_0 - mova m0, [src0q+lenq] - %endif - %if stereo - mulps m1, m0, mx_1_0 - %endif - %if stereo || mx_stack_0_0 - mulps m0, m0, mx_0_0 - %else - mulps m0, mx_0_0, [src0q+lenq] - %endif -%assign %%i 1 -%rep (in_channels - 1) - %define src_ptr src %+ %%i %+ q - ; avoid extra load for mono if matrix is in a mm register - %if stereo || mx_stack_0_ %+ %%i - mova m2, [src_ptr+lenq] - %endif - %if stereo - FMULADD_PS m1, m2, mx_1_ %+ %%i, m1, m3 - %endif - %if stereo || mx_stack_0_ %+ %%i - FMULADD_PS m0, m2, mx_0_ %+ %%i, m0, m2 - %else - FMULADD_PS m0, mx_0_ %+ %%i, [src_ptr+lenq], m0, m1 - %endif - %assign %%i %%i+1 -%endrep - mova [src0q+lenq], m0 - %if stereo - mova [src1q+lenq], m1 - %endif - - add lenq, mmsize - jl .loop - RET -%endmacro - -%macro AC3_DOWNMIX_FUNCS 0 -%assign %%i 3 -%rep 4 - INIT_XMM sse - AC3_DOWNMIX %%i, 1 - AC3_DOWNMIX %%i, 2 - INIT_YMM avx - AC3_DOWNMIX %%i, 1 - AC3_DOWNMIX %%i, 2 - %if HAVE_FMA3_EXTERNAL - INIT_YMM fma3 - AC3_DOWNMIX %%i, 1 - AC3_DOWNMIX %%i, 2 - %endif - %assign %%i %%i+1 -%endrep -%endmacro - -AC3_DOWNMIX_FUNCS diff --git a/libavcodec/x86/alacdsp.asm b/libavcodec/x86/alacdsp.asm deleted file mode 100644 index bb2069f785..0000000000 --- a/libavcodec/x86/alacdsp.asm +++ /dev/null @@ -1,133 +0,0 @@ -;****************************************************************************** -;* ALAC DSP SIMD optimizations -;* -;* Copyright (C) 2015 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_XMM sse4 -%if ARCH_X86_64 -cglobal alac_decorrelate_stereo, 2, 5, 8, buf0, len, shift, weight, buf1 -%else -cglobal alac_decorrelate_stereo, 2, 3, 8, buf0, len, shift, weight -%define buf1q r2q -%endif - movd m6, shiftm - movd m7, weightm - SPLATD m7 - shl lend, 2 - mov buf1q, [buf0q + gprsize] - mov buf0q, [buf0q] - add buf1q, lenq - add buf0q, lenq - neg lenq - -align 16 -.loop: - mova m0, [buf0q + lenq] - mova m1, [buf0q + lenq + mmsize] - mova m2, [buf1q + lenq] - mova m3, [buf1q + lenq + mmsize] - pmulld m4, m2, m7 - pmulld m5, m3, m7 - psrad m4, m6 - psrad m5, m6 - psubd m0, m4 - psubd m1, m5 - paddd m2, m0 - paddd m3, m1 - mova [buf1q + lenq], m0 - mova [buf1q + lenq + mmsize], m1 - mova [buf0q + lenq], m2 - mova [buf0q + lenq + mmsize], m3 - - add lenq, mmsize*2 - jl .loop - RET - -INIT_XMM sse2 -cglobal alac_append_extra_bits_stereo, 2, 5, 5, buf0, exbuf0, buf1, exbuf1, len - movifnidn lend, lenm - movd m4, r2m ; exbits - shl lend, 2 - mov buf1q, [buf0q + gprsize] - mov buf0q, [buf0q] - mov exbuf1q, [exbuf0q + gprsize] - mov exbuf0q, [exbuf0q] - add buf1q, lenq - add buf0q, lenq - add exbuf1q, lenq - add exbuf0q, lenq - neg lenq - -align 16 -.loop: - mova m0, [buf0q + lenq] - mova m1, [buf0q + lenq + mmsize] - pslld m0, m4 - pslld m1, m4 - mova m2, [buf1q + lenq] - mova m3, [buf1q + lenq + mmsize] - pslld m2, m4 - pslld m3, m4 - por m0, [exbuf0q + lenq] - por m1, [exbuf0q + lenq + mmsize] - por m2, [exbuf1q + lenq] - por m3, [exbuf1q + lenq + mmsize] - mova [buf0q + lenq ], m0 - mova [buf0q + lenq + mmsize], m1 - mova [buf1q + lenq ], m2 - mova [buf1q + lenq + mmsize], m3 - - add lenq, mmsize*2 - jl .loop - REP_RET - -%if ARCH_X86_64 -cglobal alac_append_extra_bits_mono, 2, 5, 3, buf, exbuf, exbits, ch, len -%else -cglobal alac_append_extra_bits_mono, 2, 3, 3, buf, exbuf, len -%define exbitsm r2m -%endif - movifnidn lend, r4m - movd m2, exbitsm - shl lend, 2 - mov bufq, [bufq] - mov exbufq, [exbufq] - add bufq, lenq - add exbufq, lenq - neg lenq - -align 16 -.loop: - mova m0, [bufq + lenq] - mova m1, [bufq + lenq + mmsize] - pslld m0, m2 - pslld m1, m2 - por m0, [exbufq + lenq] - por m1, [exbufq + lenq + mmsize] - mova [bufq + lenq], m0 - mova [bufq + lenq + mmsize], m1 - - add lenq, mmsize*2 - jl .loop - REP_RET diff --git a/libavcodec/x86/audiodsp.asm b/libavcodec/x86/audiodsp.asm deleted file mode 100644 index de395e5fa8..0000000000 --- a/libavcodec/x86/audiodsp.asm +++ /dev/null @@ -1,174 +0,0 @@ -;****************************************************************************** -;* optimized audio functions -;* Copyright (c) 2008 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro SCALARPRODUCT 0 -; int ff_scalarproduct_int16(int16_t *v1, int16_t *v2, int order) -cglobal scalarproduct_int16, 3,3,3, v1, v2, order - add orderd, orderd - add v1q, orderq - add v2q, orderq - neg orderq - pxor m2, m2 -.loop: - movu m0, [v1q + orderq] - movu m1, [v1q + orderq + mmsize] - pmaddwd m0, [v2q + orderq] - pmaddwd m1, [v2q + orderq + mmsize] - paddd m2, m0 - paddd m2, m1 - add orderq, mmsize*2 - jl .loop - HADDD m2, m0 - movd eax, m2 -%if mmsize == 8 - emms -%endif - RET -%endmacro - -INIT_MMX mmxext -SCALARPRODUCT -INIT_XMM sse2 -SCALARPRODUCT - - -;----------------------------------------------------------------------------- -; void ff_vector_clip_int32(int32_t *dst, const int32_t *src, int32_t min, -; int32_t max, unsigned int len) -;----------------------------------------------------------------------------- - -; %1 = number of xmm registers used -; %2 = number of inline load/process/store loops per asm loop -; %3 = process 4*mmsize (%3=0) or 8*mmsize (%3=1) bytes per loop -; %4 = CLIPD function takes min/max as float instead of int (SSE2 version) -; %5 = suffix -%macro VECTOR_CLIP_INT32 4-5 -cglobal vector_clip_int32%5, 5,5,%1, dst, src, min, max, len -%if %4 - cvtsi2ss m4, minm - cvtsi2ss m5, maxm -%else - movd m4, minm - movd m5, maxm -%endif - SPLATD m4 - SPLATD m5 -.loop: -%assign %%i 0 -%rep %2 - mova m0, [srcq + mmsize * (0 + %%i)] - mova m1, [srcq + mmsize * (1 + %%i)] - mova m2, [srcq + mmsize * (2 + %%i)] - mova m3, [srcq + mmsize * (3 + %%i)] -%if %3 - mova m7, [srcq + mmsize * (4 + %%i)] - mova m8, [srcq + mmsize * (5 + %%i)] - mova m9, [srcq + mmsize * (6 + %%i)] - mova m10, [srcq + mmsize * (7 + %%i)] -%endif - CLIPD m0, m4, m5, m6 - CLIPD m1, m4, m5, m6 - CLIPD m2, m4, m5, m6 - CLIPD m3, m4, m5, m6 -%if %3 - CLIPD m7, m4, m5, m6 - CLIPD m8, m4, m5, m6 - CLIPD m9, m4, m5, m6 - CLIPD m10, m4, m5, m6 -%endif - mova [dstq + mmsize * (0 + %%i)], m0 - mova [dstq + mmsize * (1 + %%i)], m1 - mova [dstq + mmsize * (2 + %%i)], m2 - mova [dstq + mmsize * (3 + %%i)], m3 -%if %3 - mova [dstq + mmsize * (4 + %%i)], m7 - mova [dstq + mmsize * (5 + %%i)], m8 - mova [dstq + mmsize * (6 + %%i)], m9 - mova [dstq + mmsize * (7 + %%i)], m10 -%endif -%assign %%i (%%i + 4 * (1 + %3)) -%endrep - add srcq, mmsize*4*(%2+%3) - add dstq, mmsize*4*(%2+%3) - sub lend, mmsize*(%2+%3) - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -VECTOR_CLIP_INT32 0, 1, 0, 0 -INIT_XMM sse2 -VECTOR_CLIP_INT32 6, 1, 0, 0, _int -VECTOR_CLIP_INT32 6, 2, 0, 1 -INIT_XMM sse4 -%ifdef m8 -VECTOR_CLIP_INT32 11, 1, 1, 0 -%else -VECTOR_CLIP_INT32 6, 1, 0, 0 -%endif - -; void ff_vector_clipf_sse(float *dst, const float *src, -; int len, float min, float max) -INIT_XMM sse -cglobal vector_clipf, 3, 3, 6, dst, src, len, min, max -%if ARCH_X86_32 - VBROADCASTSS m0, minm - VBROADCASTSS m1, maxm -%elif WIN64 - SWAP 0, 3 - VBROADCASTSS m0, m0 - VBROADCASTSS m1, maxm -%else ; 64bit sysv - VBROADCASTSS m0, m0 - VBROADCASTSS m1, m1 -%endif - - movsxdifnidn lenq, lend - -.loop: - mova m2, [srcq + 4 * lenq - 4 * mmsize] - mova m3, [srcq + 4 * lenq - 3 * mmsize] - mova m4, [srcq + 4 * lenq - 2 * mmsize] - mova m5, [srcq + 4 * lenq - 1 * mmsize] - - maxps m2, m0 - maxps m3, m0 - maxps m4, m0 - maxps m5, m0 - - minps m2, m1 - minps m3, m1 - minps m4, m1 - minps m5, m1 - - mova [dstq + 4 * lenq - 4 * mmsize], m2 - mova [dstq + 4 * lenq - 3 * mmsize], m3 - mova [dstq + 4 * lenq - 2 * mmsize], m4 - mova [dstq + 4 * lenq - 1 * mmsize], m5 - - sub lenq, mmsize - jg .loop - - RET diff --git a/libavcodec/x86/blockdsp.asm b/libavcodec/x86/blockdsp.asm deleted file mode 100644 index 9d203df8f5..0000000000 --- a/libavcodec/x86/blockdsp.asm +++ /dev/null @@ -1,88 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized clear block functions -;* Copyright (c) 2002 Michael Niedermayer -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2009 Fiona Glaser -;* -;* AVX version by Jokyo Images -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -;---------------------------------------- -; void ff_clear_block(int16_t *blocks); -;---------------------------------------- -; %1 = number of xmm registers used -; %2 = number of inline store loops -%macro CLEAR_BLOCK 2 -cglobal clear_block, 1, 1, %1, blocks - ZERO m0, m0, m0 -%assign %%i 0 -%rep %2 - mova [blocksq+mmsize*(0+%%i)], m0 - mova [blocksq+mmsize*(1+%%i)], m0 - mova [blocksq+mmsize*(2+%%i)], m0 - mova [blocksq+mmsize*(3+%%i)], m0 -%assign %%i %%i+4 -%endrep - RET -%endmacro - -INIT_MMX mmx -%define ZERO pxor -CLEAR_BLOCK 0, 4 -INIT_XMM sse -%define ZERO xorps -CLEAR_BLOCK 1, 2 -INIT_YMM avx -CLEAR_BLOCK 1, 1 - -;----------------------------------------- -; void ff_clear_blocks(int16_t *blocks); -;----------------------------------------- -; %1 = number of xmm registers used -%macro CLEAR_BLOCKS 1 -cglobal clear_blocks, 1, 2, %1, blocks, len - add blocksq, 768 - mov lenq, -768 - ZERO m0, m0, m0 -.loop: - mova [blocksq+lenq+mmsize*0], m0 - mova [blocksq+lenq+mmsize*1], m0 - mova [blocksq+lenq+mmsize*2], m0 - mova [blocksq+lenq+mmsize*3], m0 - mova [blocksq+lenq+mmsize*4], m0 - mova [blocksq+lenq+mmsize*5], m0 - mova [blocksq+lenq+mmsize*6], m0 - mova [blocksq+lenq+mmsize*7], m0 - add lenq, mmsize*8 - js .loop - RET -%endmacro - -INIT_MMX mmx -%define ZERO pxor -CLEAR_BLOCKS 0 -INIT_XMM sse -%define ZERO xorps -CLEAR_BLOCKS 1 -INIT_YMM avx -CLEAR_BLOCKS 1 diff --git a/libavcodec/x86/bswapdsp.asm b/libavcodec/x86/bswapdsp.asm deleted file mode 100644 index 31c6c48a21..0000000000 --- a/libavcodec/x86/bswapdsp.asm +++ /dev/null @@ -1,159 +0,0 @@ -;****************************************************************************** -;* optimized bswap buffer functions -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2003-2013 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -pb_bswap32: db 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 - -cextern pb_80 - -SECTION .text - -; %1 = aligned/unaligned -%macro BSWAP_LOOPS 1 - mov r3d, r2d - sar r2d, 3 - jz .left4_%1 -%if cpuflag(avx2) - sar r2d, 1 - jz .left8_%1 -%endif -.loop8_%1: - mov%1 m0, [r1 + 0] - mov%1 m1, [r1 + mmsize] -%if cpuflag(ssse3)||cpuflag(avx2) - pshufb m0, m2 - pshufb m1, m2 - mov%1 [r0 + 0], m0 - mov%1 [r0 + mmsize], m1 -%else - pshuflw m0, m0, 10110001b - pshuflw m1, m1, 10110001b - pshufhw m0, m0, 10110001b - pshufhw m1, m1, 10110001b - mova m2, m0 - mova m3, m1 - psllw m0, 8 - psllw m1, 8 - psrlw m2, 8 - psrlw m3, 8 - por m2, m0 - por m3, m1 - mov%1 [r0 + 0], m2 - mov%1 [r0 + 16], m3 -%endif - add r0, mmsize*2 - add r1, mmsize*2 - dec r2d - jnz .loop8_%1 -%if cpuflag(avx2) -.left8_%1: - mov r2d, r3d - test r3d, 8 - jz .left4_%1 - mov%1 m0, [r1] - pshufb m0, m2 - mov%1 [r0 + 0], m0 - add r1, mmsize - add r0, mmsize -%endif -.left4_%1: - mov r2d, r3d - test r3d, 4 - jz .left - mov%1 xm0, [r1] -%if cpuflag(ssse3) - pshufb xm0, xm2 - mov%1 [r0], xm0 -%else - pshuflw m0, m0, 10110001b - pshufhw m0, m0, 10110001b - mova m2, m0 - psllw m0, 8 - psrlw m2, 8 - por m2, m0 - mov%1 [r0], m2 -%endif - add r1, 16 - add r0, 16 -%endmacro - -; void ff_bswap_buf(uint32_t *dst, const uint32_t *src, int w); -%macro BSWAP32_BUF 0 -%if cpuflag(ssse3)||cpuflag(avx2) -cglobal bswap32_buf, 3,4,3 - mov r3, r1 - VBROADCASTI128 m2, [pb_bswap32] -%else -cglobal bswap32_buf, 3,4,5 - mov r3, r1 -%endif - or r3, r0 - test r3, mmsize - 1 - jz .start_align - BSWAP_LOOPS u - jmp .left -.start_align: - BSWAP_LOOPS a -.left: -%if cpuflag(ssse3) - test r2d, 2 - jz .left1 - movq xm0, [r1] - pshufb xm0, xm2 - movq [r0], xm0 - add r1, 8 - add r0, 8 -.left1: - test r2d, 1 - jz .end - mov r2d, [r1] - bswap r2d - mov [r0], r2d -%else - and r2d, 3 - jz .end -.loop2: - mov r3d, [r1] - bswap r3d - mov [r0], r3d - add r1, 4 - add r0, 4 - dec r2d - jnz .loop2 -%endif -.end: - RET -%endmacro - -INIT_XMM sse2 -BSWAP32_BUF - -INIT_XMM ssse3 -BSWAP32_BUF - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -BSWAP32_BUF -%endif diff --git a/libavcodec/x86/cavsidct.asm b/libavcodec/x86/cavsidct.asm deleted file mode 100644 index 6c768c2646..0000000000 --- a/libavcodec/x86/cavsidct.asm +++ /dev/null @@ -1,211 +0,0 @@ -; Chinese AVS video (AVS1-P2, JiZhun profile) decoder -; Copyright (c) 2006 Stefan Gehrer -; -; MMX-optimized DSP functions, based on H.264 optimizations by -; Michael Niedermayer and Loren Merritt -; Conversion from gcc syntax to x264asm syntax with modifications -; by 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 "libavutil/x86/x86util.asm" - -cextern pw_4 -cextern pw_64 - -SECTION .text - -%macro CAVS_IDCT8_1D 2-3 1 ; source, round, init_load -%if %3 == 1 - mova m4, [%1+7*16] ; m4 = src7 - mova m5, [%1+1*16] ; m5 = src1 - mova m2, [%1+5*16] ; m2 = src5 - mova m7, [%1+3*16] ; m7 = src3 -%else - SWAP 1, 7 - SWAP 4, 6 -%endif - mova m0, m4 - mova m3, m5 - mova m6, m2 - mova m1, m7 - - paddw m4, m4 ; m4 = 2*src7 - paddw m3, m3 ; m3 = 2*src1 - paddw m6, m6 ; m6 = 2*src5 - paddw m1, m1 ; m1 = 2*src3 - paddw m0, m4 ; m0 = 3*src7 - paddw m5, m3 ; m5 = 3*src1 - paddw m2, m6 ; m2 = 3*src5 - paddw m7, m1 ; m7 = 3*src3 - psubw m5, m4 ; m5 = 3*src1 - 2*src7 = a0 - paddw m7, m6 ; m7 = 3*src3 - 2*src5 = a1 - psubw m1, m2 ; m1 = 2*src3 - 3*src5 = a2 - paddw m3, m0 ; m3 = 2*src1 - 3*src7 = a3 - - mova m4, m5 - mova m6, m7 - mova m0, m3 - mova m2, m1 - SUMSUB_BA w, 7, 5 ; m7 = a0 + a1, m5 = a0 - a1 - paddw m7, m3 ; m7 = a0 + a1 + a3 - paddw m5, m1 ; m5 = a0 - a1 + a2 - paddw m7, m7 - paddw m5, m5 - paddw m7, m6 ; m7 = b4 - paddw m5, m4 ; m5 = b5 - - SUMSUB_BA w, 1, 3 ; m1 = a3 + a2, m3 = a3 - a2 - psubw m4, m1 ; m4 = a0 - a2 - a3 - mova m1, m4 ; m1 = a0 - a2 - a3 - psubw m3, m6 ; m3 = a3 - a2 - a1 - paddw m1, m1 - paddw m3, m3 - psubw m1, m2 ; m1 = b7 - paddw m3, m0 ; m3 = b6 - - mova m2, [%1+2*16] ; m2 = src2 - mova m6, [%1+6*16] ; m6 = src6 - mova m4, m2 - mova m0, m6 - psllw m4, 2 ; m4 = 4*src2 - psllw m6, 2 ; m6 = 4*src6 - paddw m2, m4 ; m2 = 5*src2 - paddw m0, m6 ; m0 = 5*src6 - paddw m2, m2 - paddw m0, m0 - psubw m4, m0 ; m4 = 4*src2 - 10*src6 = a7 - paddw m6, m2 ; m6 = 4*src6 + 10*src2 = a6 - - mova m2, [%1+0*16] ; m2 = src0 - mova m0, [%1+4*16] ; m0 = src4 - SUMSUB_BA w, 0, 2 ; m0 = src0 + src4, m2 = src0 - src4 - psllw m0, 3 - psllw m2, 3 - paddw m0, %2 ; add rounding bias - paddw m2, %2 ; add rounding bias - - SUMSUB_BA w, 6, 0 ; m6 = a4 + a6, m0 = a4 - a6 - SUMSUB_BA w, 4, 2 ; m4 = a5 + a7, m2 = a5 - a7 - SUMSUB_BA w, 7, 6 ; m7 = dst0, m6 = dst7 - SUMSUB_BA w, 5, 4 ; m5 = dst1, m4 = dst6 - SUMSUB_BA w, 3, 2 ; m3 = dst2, m2 = dst5 - SUMSUB_BA w, 1, 0 ; m1 = dst3, m0 = dst4 -%endmacro - -INIT_MMX mmx -cglobal cavs_idct8, 2, 4, 8, 8 * 16, out, in, cnt, tmp - mov cntd, 2 - mov tmpq, rsp - -.loop_1: - CAVS_IDCT8_1D inq, [pw_4] - psraw m7, 3 - psraw m6, 3 - psraw m5, 3 - psraw m4, 3 - psraw m3, 3 - psraw m2, 3 - psraw m1, 3 - psraw m0, 3 - mova [tmpq], m7 - TRANSPOSE4x4W 0, 2, 4, 6, 7 - mova [tmpq+1*8], m0 - mova [tmpq+3*8], m2 - mova [tmpq+5*8], m4 - mova [tmpq+7*8], m6 - mova m7, [tmpq] - TRANSPOSE4x4W 7, 5, 3, 1, 0 - mova [tmpq+0*8], m7 - mova [tmpq+2*8], m5 - mova [tmpq+4*8], m3 - mova [tmpq+6*8], m1 - - add inq, mmsize - add tmpq, 64 - dec cntd - jg .loop_1 - - mov cntd, 2 - mov tmpq, rsp -.loop_2: - CAVS_IDCT8_1D tmpq, [pw_64] - psraw m7, 7 - psraw m6, 7 - psraw m5, 7 - psraw m4, 7 - psraw m3, 7 - psraw m2, 7 - psraw m1, 7 - psraw m0, 7 - - mova [outq+0*16], m7 - mova [outq+1*16], m5 - mova [outq+2*16], m3 - mova [outq+3*16], m1 - mova [outq+4*16], m0 - mova [outq+5*16], m2 - mova [outq+6*16], m4 - mova [outq+7*16], m6 - - add outq, mmsize - add tmpq, mmsize - dec cntd - jg .loop_2 - - RET - -INIT_XMM sse2 -cglobal cavs_idct8, 2, 2, 8 + ARCH_X86_64, 0 - 8 * 16, out, in - CAVS_IDCT8_1D inq, [pw_4] - psraw m7, 3 - psraw m6, 3 - psraw m5, 3 - psraw m4, 3 - psraw m3, 3 - psraw m2, 3 - psraw m1, 3 - psraw m0, 3 -%if ARCH_X86_64 - TRANSPOSE8x8W 7, 5, 3, 1, 0, 2, 4, 6, 8 - mova [rsp+4*16], m0 -%else - mova [rsp+0*16], m4 - TRANSPOSE8x8W 7, 5, 3, 1, 0, 2, 4, 6, [rsp+0*16], [rsp+4*16], 1 -%endif - mova [rsp+0*16], m7 - mova [rsp+2*16], m3 - mova [rsp+6*16], m4 - CAVS_IDCT8_1D rsp, [pw_64], 0 - psraw m7, 7 - psraw m6, 7 - psraw m5, 7 - psraw m4, 7 - psraw m3, 7 - psraw m2, 7 - psraw m1, 7 - psraw m0, 7 - - mova [outq+0*16], m7 - mova [outq+1*16], m5 - mova [outq+2*16], m3 - mova [outq+3*16], m1 - mova [outq+4*16], m0 - mova [outq+5*16], m2 - mova [outq+6*16], m4 - mova [outq+7*16], m6 - RET diff --git a/libavcodec/x86/celt_pvq_search.asm b/libavcodec/x86/celt_pvq_search.asm deleted file mode 100644 index 5c1e6d6174..0000000000 --- a/libavcodec/x86/celt_pvq_search.asm +++ /dev/null @@ -1,385 +0,0 @@ -;****************************************************************************** -;* SIMD optimized Opus encoder DSP function -;* -;* Copyright (C) 2017 Ivan Kalvachev -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg is free software; you can redistribute it and/or -;* modify it under the terms of the GNU Lesser General Public -;* License as published by the Free Software Foundation; either -;* version 2.1 of the License, or (at your option) any later version. -;* -;* FFmpeg is distributed in the hope that it will be useful, -;* but WITHOUT ANY WARRANTY; without even the implied warranty of -;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;* Lesser General Public License for more details. -;* -;* You should have received a copy of the GNU Lesser General Public -;* License along with FFmpeg; if not, write to the Free Software -;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "config.asm" -%include "libavutil/x86/x86util.asm" - -%ifdef __NASM_VER__ -%use "smartalign" -ALIGNMODE p6 -%endif - -SECTION_RODATA 64 - -const_float_abs_mask: times 8 dd 0x7fffffff -const_align_abs_edge: times 8 dd 0 - -const_float_0_5: times 8 dd 0.5 -const_float_1: times 8 dd 1.0 -const_float_sign_mask: times 8 dd 0x80000000 - -const_int32_offsets: - %rep 8 - dd $-const_int32_offsets - %endrep -SECTION .text - -; -; Setup High Register to be used -; for holding memory constants -; -; %1 - the register to be used, assmues it is >= mm8 -; %2 - name of the constant. -; -; Subsequent opcodes are going to use the constant in the form -; "addps m0, mm_const_name" and it would be turned into: -; "addps m0, [const_name]" on 32 bit arch or -; "addps m0, m8" on 64 bit arch -%macro SET_HI_REG_MM_CONSTANT 3 ; movop, reg, const_name -%if num_mmregs > 8 - %define mm_%3 %2 - %{1} %2, [%3] ; movaps m8, [const_name] -%else - %define mm_%3 [%3] -%endif -%endmacro - -; -; Set Position Independent Code -; Base address of a constant -; %1 - the register to be used, if PIC is set -; %2 - name of the constant. -; -; Subsequent opcode are going to use the base address in the form -; "movaps m0, [pic_base_constant_name+r4]" and it would be turned into -; "movaps m0, [r5 + r4]" if PIC is enabled -; "movaps m0, [constant_name + r4]" if texrel are used -%macro SET_PIC_BASE 3; reg, const_label -%ifdef PIC - %{1} %2, [%3] ; lea r5, [rip+const] - %define pic_base_%3 %2 -%else - %define pic_base_%3 %3 -%endif -%endmacro - -%macro PULSES_SEARCH 1 -; m6 Syy_norm -; m7 Sxy_norm - addps m6, mm_const_float_0_5 ; Syy_norm += 1.0/2 - pxor m1, m1 ; max_idx - xorps m3, m3 ; p_max - xor r4d, r4d -align 16 -%%distortion_search: - movd xm2, dword r4d ; movd zero extends -%ifidn %1,add - movaps m4, [tmpY + r4] ; y[i] - movaps m5, [tmpX + r4] ; X[i] - - %if USE_APPROXIMATION == 1 - xorps m0, m0 - cmpps m0, m0, m5, 4 ; m0 = (X[i] != 0.0) - %endif - - addps m4, m6 ; m4 = Syy_new = y[i] + Syy_norm - addps m5, m7 ; m5 = Sxy_new = X[i] + Sxy_norm - - %if USE_APPROXIMATION == 1 - andps m5, m0 ; if(X[i] == 0) Sxy_new = 0; Prevent aproximation error from setting pulses in array padding. - %endif - -%else - movaps m5, [tmpY + r4] ; m5 = y[i] - - xorps m0, m0 ; m0 = 0; - cmpps m0, m0, m5, 1 ; m0 = (0 p_max) - maxps m3, m5 ; m3=max(p_max,p) - ; maxps here is faster than blendvps, despite blend having lower latency. - - pand m2, m0 ; This version seems faster than sse41 pblendvb - pmaxsw m1, m2 ; SSE2 signed word, so it would work for N < 32768/4 - - add r4d, mmsize - cmp r4d, Nd - jb %%distortion_search - - por m1, mm_const_int32_offsets ; max_idx offsets per individual lane (skipped in the inner loop) - movdqa m4, m1 ; needed for the aligned y[max_idx]+=1; processing - -%if mmsize >= 32 -; Merge parallel maximums round 8 (4 vs 4) - - vextractf128 xm5, ym3, 1 ; xmm5 = ymm3[1x128] = ymm3[255..128b] - cmpps xm0, xm3, xm5, 1 ; m0 = (m3 < m5) = ( p[0x128] < p[1x128] ) - - vextracti128 xm2, ym1, 1 ; xmm2 = ymm1[1x128] = ymm1[255..128b] - BLENDVPS xm3, xm5, xm0 ; max_idx = m0 ? max_idx[1x128] : max_idx[0x128] - PBLENDVB xm1, xm2, xm0 ; p = m0 ? p[1x128] : p[0x128] -%endif - -; Merge parallel maximums round 4 (2 vs 2) - ; m3=p[3210] - movhlps xm5, xm3 ; m5=p[xx32] - cmpps xm0, xm3, xm5, 1 ; m0 = (m3 < m5) = ( p[1,0] < p[3,2] ) - - pshufd xm2, xm1, q3232 - BLENDVPS xm3, xm5, xm0 ; max_idx = m0 ? max_idx[3,2] : max_idx[1,0] - PBLENDVB xm1, xm2, xm0 ; p = m0 ? p[3,2] : p[1,0] - -; Merge parallel maximums final round (1 vs 1) - shufps xm0, xm3, xm3, q1111 ; m0 = m3[1] = p[1] - cmpss xm0, xm3, 5 ; m0 = !(m0 >= m3) = !( p[1] >= p[0] ) - - pshufd xm2, xm1, q1111 - PBLENDVB xm1, xm2, xm0 - - movd dword r4d, xm1 ; zero extends to the rest of r4q - - VBROADCASTSS m3, [tmpX + r4] - %{1}ps m7, m3 ; Sxy += X[max_idx] - - VBROADCASTSS m5, [tmpY + r4] - %{1}ps m6, m5 ; Syy += Y[max_idx] - - ; We have to update a single element in Y[i] - ; However writing 4 bytes and then doing 16 byte load in the inner loop - ; could cause a stall due to breaking write forwarding. - VPBROADCASTD m1, xm1 - pcmpeqd m1, m1, m4 ; exactly 1 element matches max_idx and this finds it - - and r4d, ~(mmsize-1) ; align address down, so the value pointed by max_idx is inside a mmsize load - movaps m5, [tmpY + r4] ; m5 = Y[y3...ym...y0] - andps m1, mm_const_float_1 ; m1 = [ 0...1.0...0] - %{1}ps m5, m1 ; m5 = Y[y3...ym...y0] +/- [0...1.0...0] - movaps [tmpY + r4], m5 ; Y[max_idx] +-= 1.0; -%endmacro - -; -; We need one more register for -; PIC relative addressing. Use this -; to count it in cglobal -; -%ifdef PIC - %define num_pic_regs 1 -%else - %define num_pic_regs 0 -%endif - -; -; Pyramid Vector Quantization Search implementation -; -; float * inX - Unaligned (SIMD) access, it will be overread, -; but extra data is masked away. -; int32 * outY - Should be aligned and padded buffer. -; It is used as temp buffer. -; uint32 K - Number of pulses to have after quantizations. -; uint32 N - Number of vector elements. Must be 0 < N < 256 -; -%macro PVQ_FAST_SEARCH 1 -cglobal pvq_search%1, 4, 5+num_pic_regs, 11, 256*4, inX, outY, K, N -%define tmpX rsp -%define tmpY outYq - - movaps m0, [const_float_abs_mask] - shl Nd, 2 ; N *= sizeof(float); also 32 bit operation zeroes the high 32 bits in 64 bit mode. - mov r4d, Nd - - neg r4d - and r4d, mmsize-1 - - SET_PIC_BASE lea, r5, const_align_abs_edge ; rip+const - movups m2, [pic_base_const_align_abs_edge + r4 - mmsize] - - add Nd, r4d ; N = align(N, mmsize) - - lea r4d, [Nd - mmsize] ; N is rounded up (aligned up) to mmsize, so r4 can't become negative here, unless N=0. - movups m1, [inXq + r4] - andps m1, m2 - movaps [tmpX + r4], m1 ; Sx = abs( X[N-1] ) - -align 16 -%%loop_abs_sum: - sub r4d, mmsize - jc %%end_loop_abs_sum - - movups m2, [inXq + r4] - andps m2, m0 - - movaps [tmpX + r4], m2 ; tmpX[i]=abs(X[i]) - addps m1, m2 ; Sx += abs(X[i]) - jmp %%loop_abs_sum - -align 16 -%%end_loop_abs_sum: - - HSUMPS m1, m2 ; m1 = Sx - - xorps m0, m0 - comiss xm0, xm1 ; - jz %%zero_input ; if (Sx==0) goto zero_input - - cvtsi2ss xm0, dword Kd ; m0 = K -%if USE_APPROXIMATION == 1 - rcpss xm1, xm1 ; m1 = approx(1/Sx) - mulss xm0, xm1 ; m0 = K*(1/Sx) -%else - divss xm0, xm1 ; b = K/Sx - ; b = K/max_x -%endif - - VBROADCASTSS m0, xm0 - - lea r4d, [Nd - mmsize] - pxor m5, m5 ; Sy ( Sum of abs( y[i]) ) - xorps m6, m6 ; Syy ( Sum of y[i]*y[i] ) - xorps m7, m7 ; Sxy ( Sum of X[i]*y[i] ) -align 16 -%%loop_guess: - movaps m1, [tmpX + r4] ; m1 = X[i] - mulps m2, m0, m1 ; m2 = res*X[i] - cvtps2dq m2, m2 ; yt = (int)lrintf( res*X[i] ) - paddd m5, m2 ; Sy += yt - cvtdq2ps m2, m2 ; yt = (float)yt - mulps m1, m2 ; m1 = X[i]*yt - movaps [tmpY + r4], m2 ; y[i] = m2 - addps m7, m1 ; Sxy += m1; - mulps m2, m2 ; m2 = yt*yt - addps m6, m2 ; Syy += m2 - - sub r4d, mmsize - jnc %%loop_guess - - HSUMPS m6, m1 ; Syy_norm - HADDD m5, m4 ; pulses - - movd dword r4d, xm5 ; zero extends to the rest of r4q - - sub Kd, r4d ; K -= pulses , also 32 bit operation zeroes high 32 bit in 64 bit mode. - jz %%finish ; K - pulses == 0 - - SET_HI_REG_MM_CONSTANT movaps, m8, const_float_0_5 - SET_HI_REG_MM_CONSTANT movaps, m9, const_float_1 - SET_HI_REG_MM_CONSTANT movdqa, m10, const_int32_offsets - ; Use Syy/2 in distortion parameter calculations. - ; Saves pre and post-caclulation to correct Y[] values. - ; Same precision, since float mantisa is normalized. - ; The SQRT approximation does differ. - HSUMPS m7, m0 ; Sxy_norm - mulps m6, mm_const_float_0_5 - - jc %%remove_pulses_loop ; K - pulses < 0 - -align 16 ; K - pulses > 0 -%%add_pulses_loop: - - PULSES_SEARCH add ; m6 Syy_norm ; m7 Sxy_norm - - sub Kd, 1 - jnz %%add_pulses_loop - - addps m6, m6 ; Syy*=2 - - jmp %%finish - -align 16 -%%remove_pulses_loop: - - PULSES_SEARCH sub ; m6 Syy_norm ; m7 Sxy_norm - - add Kd, 1 - jnz %%remove_pulses_loop - - addps m6, m6 ; Syy*=2 - -align 16 -%%finish: - lea r4d, [Nd - mmsize] - movaps m2, [const_float_sign_mask] - -align 16 -%%restore_sign_loop: - movaps m0, [tmpY + r4] ; m0 = Y[i] - movups m1, [inXq + r4] ; m1 = X[i] - andps m1, m2 ; m1 = sign(X[i]) - orps m0, m1 ; m0 = Y[i]*sign - cvtps2dq m3, m0 ; m3 = (int)m0 - movaps [outYq + r4], m3 - - sub r4d, mmsize - jnc %%restore_sign_loop -%%return: - -%if ARCH_X86_64 == 0 ; sbrdsp - movss r0m, xm6 ; return (float)Syy_norm - fld dword r0m -%else - movaps m0, m6 ; return (float)Syy_norm -%endif - - RET - -align 16 -%%zero_input: - lea r4d, [Nd - mmsize] - xorps m0, m0 -%%zero_loop: - movaps [outYq + r4], m0 - sub r4d, mmsize - jnc %%zero_loop - - movaps m6, [const_float_1] - jmp %%return -%endmacro - -; if 1, use a float op that give half precision but execute for around 3 cycles. -; On Skylake & Ryzen the division is much faster (around 11c/3), -; that makes the full precision code about 2% slower. -; Opus also does use rsqrt approximation in their intrinsics code. -%define USE_APPROXIMATION 1 - -INIT_XMM sse2 -PVQ_FAST_SEARCH _approx - -INIT_XMM sse4 -PVQ_FAST_SEARCH _approx - -%define USE_APPROXIMATION 0 - -INIT_XMM avx -PVQ_FAST_SEARCH _exact diff --git a/libavcodec/x86/dcadsp.asm b/libavcodec/x86/dcadsp.asm deleted file mode 100644 index 055361a765..0000000000 --- a/libavcodec/x86/dcadsp.asm +++ /dev/null @@ -1,301 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized functions for the DCA decoder -;* Copyright (C) 2016 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%define sizeof_float 4 -%define FMA3_OFFSET (8 * cpuflag(fma3)) - -%macro LFE_FIR0_FLOAT 0 -cglobal lfe_fir0_float, 4, 6, 12 + cpuflag(fma3)*4, samples, lfe, coeff, nblocks, cnt1, cnt2 - shr nblocksd, 1 - sub lfeq, 7*sizeof_float - mov cnt1d, 32*sizeof_float - mov cnt2d, 32*sizeof_float-8-FMA3_OFFSET - lea coeffq, [coeffq+cnt1q*8] - add samplesq, cnt1q - neg cnt1q - -.loop: -%if cpuflag(avx) - cvtdq2ps m4, [lfeq+16] - cvtdq2ps m5, [lfeq ] - shufps m7, m4, m4, q0123 - shufps m6, m5, m5, q0123 -%elif cpuflag(sse2) - movu m4, [lfeq+16] - movu m5, [lfeq ] - cvtdq2ps m4, m4 - cvtdq2ps m5, m5 - pshufd m7, m4, q0123 - pshufd m6, m5, q0123 -%else - cvtpi2ps m4, [lfeq+16] - cvtpi2ps m0, [lfeq+24] - cvtpi2ps m5, [lfeq ] - cvtpi2ps m1, [lfeq+8 ] - shufps m4, m0, q1010 - shufps m5, m1, q1010 - shufps m7, m4, m4, q0123 - shufps m6, m5, m5, q0123 -%endif - -.inner_loop: -%if ARCH_X86_64 - movaps m8, [coeffq+cnt1q*8 ] - movaps m9, [coeffq+cnt1q*8+16] - movaps m10, [coeffq+cnt1q*8+32] - movaps m11, [coeffq+cnt1q*8+48] -%if cpuflag(fma3) - movaps m12, [coeffq+cnt1q*8+64] - movaps m13, [coeffq+cnt1q*8+80] - movaps m14, [coeffq+cnt1q*8+96] - movaps m15, [coeffq+cnt1q*8+112] - mulps m0, m7, m8 - mulps m1, m7, m10 - mulps m2, m7, m12 - mulps m3, m7, m14 - fmaddps m0, m6, m9, m0 - fmaddps m1, m6, m11, m1 - fmaddps m2, m6, m13, m2 - fmaddps m3, m6, m15, m3 - - haddps m0, m1 - haddps m2, m3 - haddps m0, m2 - movaps [samplesq+cnt1q], m0 -%else - mulps m0, m7, m8 - mulps m1, m6, m9 - mulps m2, m7, m10 - mulps m3, m6, m11 - addps m0, m1 - addps m2, m3 - - unpckhps m3, m0, m2 - unpcklps m0, m2 - addps m3, m0 - movhlps m2, m3 - addps m2, m3 - movlps [samplesq+cnt1q], m2 -%endif -%else ; ARCH_X86_32 -%if cpuflag(fma3) - mulps m0, m7, [coeffq+cnt1q*8 ] - mulps m1, m7, [coeffq+cnt1q*8+32 ] - mulps m2, m7, [coeffq+cnt1q*8+64 ] - mulps m3, m7, [coeffq+cnt1q*8+96 ] - fmaddps m0, m6, [coeffq+cnt1q*8+16 ], m0 - fmaddps m1, m6, [coeffq+cnt1q*8+48 ], m1 - fmaddps m2, m6, [coeffq+cnt1q*8+80 ], m2 - fmaddps m3, m6, [coeffq+cnt1q*8+112], m3 - - haddps m0, m1 - haddps m2, m3 - haddps m0, m2 - movaps [samplesq+cnt1q], m0 -%else - mulps m0, m7, [coeffq+cnt1q*8 ] - mulps m1, m6, [coeffq+cnt1q*8+16] - mulps m2, m7, [coeffq+cnt1q*8+32] - mulps m3, m6, [coeffq+cnt1q*8+48] - addps m0, m1 - addps m2, m3 - - unpckhps m3, m0, m2 - unpcklps m0, m2 - addps m3, m0 - movhlps m2, m3 - addps m2, m3 - movlps [samplesq+cnt1q], m2 -%endif -%endif; ARCH - -%if ARCH_X86_64 -%if cpuflag(fma3) - mulps m8, m5 - mulps m10, m5 - mulps m12, m5 - mulps m14, m5 - fmaddps m8, m4, m9, m8 - fmaddps m10, m4, m11, m10 - fmaddps m12, m4, m13, m12 - fmaddps m14, m4, m15, m14 - - haddps m10, m8 - haddps m14, m12 - haddps m14, m10 - movaps [samplesq+cnt2q], m14 -%else - mulps m8, m5 - mulps m9, m4 - mulps m10, m5 - mulps m11, m4 - addps m8, m9 - addps m10, m11 - - unpckhps m11, m10, m8 - unpcklps m10, m8 - addps m11, m10 - movhlps m8, m11 - addps m8, m11 - movlps [samplesq+cnt2q], m8 -%endif -%else ; ARCH_X86_32 -%if cpuflag(fma3) - mulps m0, m5, [coeffq+cnt1q*8 ] - mulps m1, m5, [coeffq+cnt1q*8+32 ] - mulps m2, m5, [coeffq+cnt1q*8+64 ] - mulps m3, m5, [coeffq+cnt1q*8+96 ] - fmaddps m0, m4, [coeffq+cnt1q*8+16 ], m0 - fmaddps m1, m4, [coeffq+cnt1q*8+48 ], m1 - fmaddps m2, m4, [coeffq+cnt1q*8+80 ], m2 - fmaddps m3, m4, [coeffq+cnt1q*8+112], m3 - - haddps m1, m0 - haddps m3, m2 - haddps m3, m1 - movaps [samplesq+cnt2q], m3 -%else - mulps m0, m5, [coeffq+cnt1q*8 ] - mulps m1, m4, [coeffq+cnt1q*8+16] - mulps m2, m5, [coeffq+cnt1q*8+32] - mulps m3, m4, [coeffq+cnt1q*8+48] - addps m0, m1 - addps m2, m3 - - unpckhps m3, m2, m0 - unpcklps m2, m0 - addps m3, m2 - movhlps m0, m3 - addps m0, m3 - movlps [samplesq+cnt2q], m0 -%endif -%endif; ARCH - - sub cnt2d, 8 + FMA3_OFFSET - add cnt1q, 8 + FMA3_OFFSET - jl .inner_loop - - add lfeq, 4 - add samplesq, 64*sizeof_float - mov cnt1q, -32*sizeof_float - mov cnt2d, 32*sizeof_float-8-FMA3_OFFSET - sub nblocksd, 1 - jg .loop - RET -%endmacro - -%if ARCH_X86_32 -INIT_XMM sse -LFE_FIR0_FLOAT -%endif -INIT_XMM sse2 -LFE_FIR0_FLOAT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -LFE_FIR0_FLOAT -%endif -%if HAVE_FMA3_EXTERNAL -INIT_XMM fma3 -LFE_FIR0_FLOAT -%endif - -%macro LFE_FIR1_FLOAT 0 -cglobal lfe_fir1_float, 4, 6, 10, samples, lfe, coeff, nblocks, cnt1, cnt2 - shr nblocksd, 2 - sub lfeq, 3*sizeof_float - mov cnt1d, 64*sizeof_float - mov cnt2d, 64*sizeof_float-16 - lea coeffq, [coeffq+cnt1q*4] - add samplesq, cnt1q - neg cnt1q - -.loop: -%if cpuflag(avx) - cvtdq2ps m4, [lfeq] - shufps m5, m4, m4, q0123 -%elif cpuflag(sse2) - movu m4, [lfeq] - cvtdq2ps m4, m4 - pshufd m5, m4, q0123 -%endif - -.inner_loop: - movaps m6, [coeffq+cnt1q*4 ] - movaps m7, [coeffq+cnt1q*4+16] - mulps m0, m5, m6 - mulps m1, m5, m7 -%if ARCH_X86_64 - movaps m8, [coeffq+cnt1q*4+32] - movaps m9, [coeffq+cnt1q*4+48] - mulps m2, m5, m8 - mulps m3, m5, m9 -%else - mulps m2, m5, [coeffq+cnt1q*4+32] - mulps m3, m5, [coeffq+cnt1q*4+48] -%endif - - haddps m0, m1 - haddps m2, m3 - haddps m0, m2 - movaps [samplesq+cnt1q], m0 - - mulps m6, m4 - mulps m7, m4 -%if ARCH_X86_64 - mulps m8, m4 - mulps m9, m4 - - haddps m6, m7 - haddps m8, m9 - haddps m6, m8 -%else - mulps m2, m4, [coeffq+cnt1q*4+32] - mulps m3, m4, [coeffq+cnt1q*4+48] - - haddps m6, m7 - haddps m2, m3 - haddps m6, m2 -%endif - movaps [samplesq+cnt2q], m6 - - sub cnt2d, 16 - add cnt1q, 16 - jl .inner_loop - - add lfeq, sizeof_float - add samplesq, 128*sizeof_float - mov cnt1q, -64*sizeof_float - mov cnt2d, 64*sizeof_float-16 - sub nblocksd, 1 - jg .loop - RET -%endmacro - -INIT_XMM sse3 -LFE_FIR1_FLOAT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -LFE_FIR1_FLOAT -%endif diff --git a/libavcodec/x86/dct32.asm b/libavcodec/x86/dct32.asm deleted file mode 100644 index 21e2f21c97..0000000000 --- a/libavcodec/x86/dct32.asm +++ /dev/null @@ -1,491 +0,0 @@ -;****************************************************************************** -;* 32 point SSE-optimized DCT transform -;* Copyright (c) 2010 Vitor Sessak -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -ps_p1p1m1m1: dd 0, 0, 0x80000000, 0x80000000, 0, 0, 0x80000000, 0x80000000 - -ps_cos_vec: dd 0.500603, 0.505471, 0.515447, 0.531043 - dd 0.553104, 0.582935, 0.622504, 0.674808 - dd -10.190008, -3.407609, -2.057781, -1.484165 - dd -1.169440, -0.972568, -0.839350, -0.744536 - dd 0.502419, 0.522499, 0.566944, 0.646822 - dd 0.788155, 1.060678, 1.722447, 5.101149 - dd 0.509796, 0.601345, 0.899976, 2.562916 - dd 0.509796, 0.601345, 0.899976, 2.562916 - dd 1.000000, 1.000000, 1.306563, 0.541196 - dd 1.000000, 1.000000, 1.306563, 0.541196 - dd 1.000000, 0.707107, 1.000000, -0.707107 - dd 1.000000, 0.707107, 1.000000, -0.707107 - dd 0.707107, 0.707107, 0.707107, 0.707107 - -%macro BUTTERFLY 4 - subps %4, %1, %2 - addps %2, %2, %1 - mulps %1, %4, %3 -%endmacro - -%macro BUTTERFLY0 5 -%if cpuflag(sse2) && notcpuflag(avx) - pshufd %4, %1, %5 - xorps %1, %2 - addps %1, %4 - mulps %1, %3 -%else - shufps %4, %1, %1, %5 - xorps %1, %1, %2 - addps %4, %4, %1 - mulps %1, %4, %3 -%endif -%endmacro - -%macro BUTTERFLY2 4 - BUTTERFLY0 %1, %2, %3, %4, 0x1b -%endmacro - -%macro BUTTERFLY3 4 - BUTTERFLY0 %1, %2, %3, %4, 0xb1 -%endmacro - -%macro BUTTERFLY3V 5 - movaps m%5, m%1 - addps m%1, m%2 - subps m%5, m%2 - SWAP %2, %5 - mulps m%2, [ps_cos_vec+192] - movaps m%5, m%3 - addps m%3, m%4 - subps m%4, m%5 - mulps m%4, [ps_cos_vec+192] -%endmacro - -%macro PASS6_AND_PERMUTE 0 - mov tmpd, [outq+4] - movss m7, [outq+72] - addss m7, [outq+76] - movss m3, [outq+56] - addss m3, [outq+60] - addss m4, m3 - movss m2, [outq+52] - addss m2, m3 - movss m3, [outq+104] - addss m3, [outq+108] - addss m1, m3 - addss m5, m4 - movss [outq+ 16], m1 - movss m1, [outq+100] - addss m1, m3 - movss m3, [outq+40] - movss [outq+ 48], m1 - addss m3, [outq+44] - movss m1, [outq+100] - addss m4, m3 - addss m3, m2 - addss m1, [outq+108] - movss [outq+ 40], m3 - addss m2, [outq+36] - movss m3, [outq+8] - movss [outq+ 56], m2 - addss m3, [outq+12] - movss [outq+ 32], m3 - movss m3, [outq+80] - movss [outq+ 8], m5 - movss [outq+ 80], m1 - movss m2, [outq+52] - movss m5, [outq+120] - addss m5, [outq+124] - movss m1, [outq+64] - addss m2, [outq+60] - addss m0, m5 - addss m5, [outq+116] - mov [outq+64], tmpd - addss m6, m0 - addss m1, m6 - mov tmpd, [outq+12] - mov [outq+ 96], tmpd - movss [outq+ 4], m1 - movss m1, [outq+24] - movss [outq+ 24], m4 - movss m4, [outq+88] - addss m4, [outq+92] - addss m3, m4 - addss m4, [outq+84] - mov tmpd, [outq+108] - addss m1, [outq+28] - addss m0, m1 - addss m1, m5 - addss m6, m3 - addss m3, m0 - addss m0, m7 - addss m5, [outq+20] - addss m7, m1 - movss [outq+ 12], m6 - mov [outq+112], tmpd - movss m6, [outq+28] - movss [outq+ 28], m0 - movss m0, [outq+36] - movss [outq+ 36], m7 - addss m1, m4 - movss m7, [outq+116] - addss m0, m2 - addss m7, [outq+124] - movss [outq+ 72], m0 - movss m0, [outq+44] - addss m2, m0 - movss [outq+ 44], m1 - movss [outq+ 88], m2 - addss m0, [outq+60] - mov tmpd, [outq+60] - mov [outq+120], tmpd - movss [outq+104], m0 - addss m4, m5 - addss m5, [outq+68] - movss [outq+52], m4 - movss [outq+60], m5 - movss m4, [outq+68] - movss m5, [outq+20] - movss [outq+ 20], m3 - addss m5, m7 - addss m7, m6 - addss m4, m5 - movss m2, [outq+84] - addss m2, [outq+92] - addss m5, m2 - movss [outq+ 68], m4 - addss m2, m7 - movss m4, [outq+76] - movss [outq+ 84], m2 - movss [outq+ 76], m5 - addss m7, m4 - addss m6, [outq+124] - addss m4, m6 - addss m6, [outq+92] - movss [outq+100], m4 - movss [outq+108], m6 - movss m6, [outq+92] - movss [outq+92], m7 - addss m6, [outq+124] - movss [outq+116], m6 -%endmacro - -INIT_YMM avx -SECTION .text -%if HAVE_AVX_EXTERNAL -; void ff_dct32_float_avx(FFTSample *out, const FFTSample *in) -cglobal dct32_float, 2,3,8, out, in, tmp - ; pass 1 - vmovaps m4, [inq+0] - vinsertf128 m5, m5, [inq+96], 1 - vinsertf128 m5, m5, [inq+112], 0 - vshufps m5, m5, m5, 0x1b - BUTTERFLY m4, m5, [ps_cos_vec], m6 - - vmovaps m2, [inq+64] - vinsertf128 m6, m6, [inq+32], 1 - vinsertf128 m6, m6, [inq+48], 0 - vshufps m6, m6, m6, 0x1b - BUTTERFLY m2, m6, [ps_cos_vec+32], m0 - - ; pass 2 - - BUTTERFLY m5, m6, [ps_cos_vec+64], m0 - BUTTERFLY m4, m2, [ps_cos_vec+64], m7 - - - ; pass 3 - vperm2f128 m3, m6, m4, 0x31 - vperm2f128 m1, m6, m4, 0x20 - vshufps m3, m3, m3, 0x1b - - BUTTERFLY m1, m3, [ps_cos_vec+96], m6 - - - vperm2f128 m4, m5, m2, 0x20 - vperm2f128 m5, m5, m2, 0x31 - vshufps m5, m5, m5, 0x1b - - BUTTERFLY m4, m5, [ps_cos_vec+96], m6 - - ; pass 4 - vmovaps m6, [ps_p1p1m1m1+0] - vmovaps m2, [ps_cos_vec+128] - - BUTTERFLY2 m5, m6, m2, m7 - BUTTERFLY2 m4, m6, m2, m7 - BUTTERFLY2 m1, m6, m2, m7 - BUTTERFLY2 m3, m6, m2, m7 - - - ; pass 5 - vshufps m6, m6, m6, 0xcc - vmovaps m2, [ps_cos_vec+160] - - BUTTERFLY3 m5, m6, m2, m7 - BUTTERFLY3 m4, m6, m2, m7 - BUTTERFLY3 m1, m6, m2, m7 - BUTTERFLY3 m3, m6, m2, m7 - - vperm2f128 m6, m3, m3, 0x31 - vmovaps [outq], m3 - - vextractf128 [outq+64], m5, 1 - vextractf128 [outq+32], m5, 0 - - vextractf128 [outq+80], m4, 1 - vextractf128 [outq+48], m4, 0 - - vperm2f128 m0, m1, m1, 0x31 - vmovaps [outq+96], m1 - - vzeroupper - - ; pass 6, no SIMD... -INIT_XMM - PASS6_AND_PERMUTE - RET -%endif - -%if ARCH_X86_64 -%define SPILL SWAP -%define UNSPILL SWAP - -%macro PASS5 0 - nop ; FIXME code alignment - SWAP 5, 8 - SWAP 4, 12 - SWAP 6, 14 - SWAP 7, 13 - SWAP 0, 15 - PERMUTE 9,10, 10,12, 11,14, 12,9, 13,11, 14,13 - TRANSPOSE4x4PS 8, 9, 10, 11, 0 - BUTTERFLY3V 8, 9, 10, 11, 0 - addps m10, m11 - TRANSPOSE4x4PS 12, 13, 14, 15, 0 - BUTTERFLY3V 12, 13, 14, 15, 0 - addps m14, m15 - addps m12, m14 - addps m14, m13 - addps m13, m15 -%endmacro - -%macro PASS6 0 - SWAP 9, 12 - SWAP 11, 14 - movss [outq+0x00], m8 - pshuflw m0, m8, 0xe - movss [outq+0x10], m9 - pshuflw m1, m9, 0xe - movss [outq+0x20], m10 - pshuflw m2, m10, 0xe - movss [outq+0x30], m11 - pshuflw m3, m11, 0xe - movss [outq+0x40], m12 - pshuflw m4, m12, 0xe - movss [outq+0x50], m13 - pshuflw m5, m13, 0xe - movss [outq+0x60], m14 - pshuflw m6, m14, 0xe - movaps [outq+0x70], m15 - pshuflw m7, m15, 0xe - addss m0, m1 - addss m1, m2 - movss [outq+0x08], m0 - addss m2, m3 - movss [outq+0x18], m1 - addss m3, m4 - movss [outq+0x28], m2 - addss m4, m5 - movss [outq+0x38], m3 - addss m5, m6 - movss [outq+0x48], m4 - addss m6, m7 - movss [outq+0x58], m5 - movss [outq+0x68], m6 - movss [outq+0x78], m7 - - PERMUTE 1,8, 3,9, 5,10, 7,11, 9,12, 11,13, 13,14, 8,1, 10,3, 12,5, 14,7 - movhlps m0, m1 - pshufd m1, m1, 3 - SWAP 0, 2, 4, 6, 8, 10, 12, 14 - SWAP 1, 3, 5, 7, 9, 11, 13, 15 -%rep 7 - movhlps m0, m1 - pshufd m1, m1, 3 - addss m15, m1 - SWAP 0, 2, 4, 6, 8, 10, 12, 14 - SWAP 1, 3, 5, 7, 9, 11, 13, 15 -%endrep -%assign i 4 -%rep 15 - addss m0, m1 - movss [outq+i], m0 - SWAP 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - %assign i i+8 -%endrep -%endmacro - -%else ; ARCH_X86_32 -%macro SPILL 2 ; xmm#, mempos - movaps [outq+(%2-8)*16], m%1 -%endmacro -%macro UNSPILL 2 - movaps m%1, [outq+(%2-8)*16] -%endmacro - -%define PASS6 PASS6_AND_PERMUTE -%macro PASS5 0 - movaps m2, [ps_cos_vec+160] - shufps m3, m3, 0xcc - - BUTTERFLY3 m5, m3, m2, m1 - SPILL 5, 8 - - UNSPILL 1, 9 - BUTTERFLY3 m1, m3, m2, m5 - SPILL 1, 14 - - BUTTERFLY3 m4, m3, m2, m5 - SPILL 4, 12 - - BUTTERFLY3 m7, m3, m2, m5 - SPILL 7, 13 - - UNSPILL 5, 10 - BUTTERFLY3 m5, m3, m2, m7 - SPILL 5, 10 - - UNSPILL 4, 11 - BUTTERFLY3 m4, m3, m2, m7 - SPILL 4, 11 - - BUTTERFLY3 m6, m3, m2, m7 - SPILL 6, 9 - - BUTTERFLY3 m0, m3, m2, m7 - SPILL 0, 15 -%endmacro -%endif - - -; void ff_dct32_float_sse(FFTSample *out, const FFTSample *in) -%macro DCT32_FUNC 0 -cglobal dct32_float, 2, 3, 16, out, in, tmp - ; pass 1 - - movaps m0, [inq+0] - LOAD_INV m1, [inq+112] - BUTTERFLY m0, m1, [ps_cos_vec], m3 - - movaps m7, [inq+64] - LOAD_INV m4, [inq+48] - BUTTERFLY m7, m4, [ps_cos_vec+32], m3 - - ; pass 2 - movaps m2, [ps_cos_vec+64] - BUTTERFLY m1, m4, m2, m3 - SPILL 1, 11 - SPILL 4, 8 - - ; pass 1 - movaps m1, [inq+16] - LOAD_INV m6, [inq+96] - BUTTERFLY m1, m6, [ps_cos_vec+16], m3 - - movaps m4, [inq+80] - LOAD_INV m5, [inq+32] - BUTTERFLY m4, m5, [ps_cos_vec+48], m3 - - ; pass 2 - BUTTERFLY m0, m7, m2, m3 - - movaps m2, [ps_cos_vec+80] - BUTTERFLY m6, m5, m2, m3 - - BUTTERFLY m1, m4, m2, m3 - - ; pass 3 - movaps m2, [ps_cos_vec+96] - shufps m1, m1, 0x1b - BUTTERFLY m0, m1, m2, m3 - SPILL 0, 15 - SPILL 1, 14 - - UNSPILL 0, 8 - shufps m5, m5, 0x1b - BUTTERFLY m0, m5, m2, m3 - - UNSPILL 1, 11 - shufps m6, m6, 0x1b - BUTTERFLY m1, m6, m2, m3 - SPILL 1, 11 - - shufps m4, m4, 0x1b - BUTTERFLY m7, m4, m2, m3 - - ; pass 4 - movaps m3, [ps_p1p1m1m1+0] - movaps m2, [ps_cos_vec+128] - - BUTTERFLY2 m5, m3, m2, m1 - - BUTTERFLY2 m0, m3, m2, m1 - SPILL 0, 9 - - BUTTERFLY2 m6, m3, m2, m1 - SPILL 6, 10 - - UNSPILL 0, 11 - BUTTERFLY2 m0, m3, m2, m1 - SPILL 0, 11 - - BUTTERFLY2 m4, m3, m2, m1 - - BUTTERFLY2 m7, m3, m2, m1 - - UNSPILL 6, 14 - BUTTERFLY2 m6, m3, m2, m1 - - UNSPILL 0, 15 - BUTTERFLY2 m0, m3, m2, m1 - - PASS5 - PASS6 - RET -%endmacro - -%macro LOAD_INV 2 -%if cpuflag(sse2) - pshufd %1, %2, 0x1b -%elif cpuflag(sse) - movaps %1, %2 - shufps %1, %1, 0x1b -%endif -%endmacro - -%if ARCH_X86_32 -INIT_XMM sse -DCT32_FUNC -%endif - -INIT_XMM sse2 -DCT32_FUNC diff --git a/libavcodec/x86/dirac_dwt.asm b/libavcodec/x86/dirac_dwt.asm deleted file mode 100644 index 22a5c2bbbb..0000000000 --- a/libavcodec/x86/dirac_dwt.asm +++ /dev/null @@ -1,307 +0,0 @@ -;****************************************************************************** -;* x86 optimized discrete wavelet trasnform -;* Copyright (c) 2010 David Conrad -;* -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION_RODATA -pw_1991: times 4 dw 9,-1 - -cextern pw_1 -cextern pw_2 -cextern pw_8 -cextern pw_16 - -SECTION .text - -; %1 -= (%2 + %3 + 2)>>2 %4 is pw_2 -%macro COMPOSE_53iL0 4 - paddw %2, %3 - paddw %2, %4 - psraw %2, 2 - psubw %1, %2 -%endm - -; m1 = %1 + (-m0 + 9*m1 + 9*%2 -%3 + 8)>>4 -; if %4 is supplied, %1 is loaded unaligned from there -; m2: clobbered m3: pw_8 m4: pw_1991 -%macro COMPOSE_DD97iH0 3-4 - paddw m0, %3 - paddw m1, %2 - psubw m0, m3 - mova m2, m1 - punpcklwd m1, m0 - punpckhwd m2, m0 - pmaddwd m1, m4 - pmaddwd m2, m4 -%if %0 > 3 - movu %1, %4 -%endif - psrad m1, 4 - psrad m2, 4 - packssdw m1, m2 - paddw m1, %1 -%endm - -%macro COMPOSE_VERTICAL 1 -; void vertical_compose53iL0(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, -; int width) -cglobal vertical_compose53iL0_%1, 4,4,1, b0, b1, b2, width - mova m2, [pw_2] -%if ARCH_X86_64 - mov widthd, widthd -%endif -.loop: - sub widthq, mmsize/2 - mova m1, [b0q+2*widthq] - mova m0, [b1q+2*widthq] - COMPOSE_53iL0 m0, m1, [b2q+2*widthq], m2 - mova [b1q+2*widthq], m0 - jg .loop - REP_RET - -; void vertical_compose_dirac53iH0(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, -; int width) -cglobal vertical_compose_dirac53iH0_%1, 4,4,1, b0, b1, b2, width - mova m1, [pw_1] -%if ARCH_X86_64 - mov widthd, widthd -%endif -.loop: - sub widthq, mmsize/2 - mova m0, [b0q+2*widthq] - paddw m0, [b2q+2*widthq] - paddw m0, m1 - psraw m0, 1 - paddw m0, [b1q+2*widthq] - mova [b1q+2*widthq], m0 - jg .loop - REP_RET - -; void vertical_compose_dd97iH0(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, -; IDWTELEM *b3, IDWTELEM *b4, int width) -cglobal vertical_compose_dd97iH0_%1, 6,6,5, b0, b1, b2, b3, b4, width - mova m3, [pw_8] - mova m4, [pw_1991] -%if ARCH_X86_64 - mov widthd, widthd -%endif -.loop: - sub widthq, mmsize/2 - mova m0, [b0q+2*widthq] - mova m1, [b1q+2*widthq] - COMPOSE_DD97iH0 [b2q+2*widthq], [b3q+2*widthq], [b4q+2*widthq] - mova [b2q+2*widthq], m1 - jg .loop - REP_RET - -; void vertical_compose_dd137iL0(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, -; IDWTELEM *b3, IDWTELEM *b4, int width) -cglobal vertical_compose_dd137iL0_%1, 6,6,6, b0, b1, b2, b3, b4, width - mova m3, [pw_16] - mova m4, [pw_1991] -%if ARCH_X86_64 - mov widthd, widthd -%endif -.loop: - sub widthq, mmsize/2 - mova m0, [b0q+2*widthq] - mova m1, [b1q+2*widthq] - mova m5, [b2q+2*widthq] - paddw m0, [b4q+2*widthq] - paddw m1, [b3q+2*widthq] - psubw m0, m3 - mova m2, m1 - punpcklwd m1, m0 - punpckhwd m2, m0 - pmaddwd m1, m4 - pmaddwd m2, m4 - psrad m1, 5 - psrad m2, 5 - packssdw m1, m2 - psubw m5, m1 - mova [b2q+2*widthq], m5 - jg .loop - REP_RET - -; void vertical_compose_haar(IDWTELEM *b0, IDWTELEM *b1, int width) -cglobal vertical_compose_haar_%1, 3,4,3, b0, b1, width - mova m3, [pw_1] -%if ARCH_X86_64 - mov widthd, widthd -%endif -.loop: - sub widthq, mmsize/2 - mova m1, [b1q+2*widthq] - mova m0, [b0q+2*widthq] - mova m2, m1 - paddw m1, m3 - psraw m1, 1 - psubw m0, m1 - mova [b0q+2*widthq], m0 - paddw m2, m0 - mova [b1q+2*widthq], m2 - jg .loop - REP_RET -%endmacro - -; extend the left and right edges of the tmp array by %1 and %2 respectively -%macro EDGE_EXTENSION 3 - mov %3, [tmpq] -%assign %%i 1 -%rep %1 - mov [tmpq-2*%%i], %3 - %assign %%i %%i+1 -%endrep - mov %3, [tmpq+2*w2q-2] -%assign %%i 0 -%rep %2 - mov [tmpq+2*w2q+2*%%i], %3 - %assign %%i %%i+1 -%endrep -%endmacro - - -%macro HAAR_HORIZONTAL 2 -; void horizontal_compose_haari(IDWTELEM *b, IDWTELEM *tmp, int width) -cglobal horizontal_compose_haar%2i_%1, 3,6,4, b, tmp, w, x, w2, b_w2 - mov w2d, wd - xor xq, xq - shr w2d, 1 - lea b_w2q, [bq+wq] - mova m3, [pw_1] -.lowpass_loop: - movu m1, [b_w2q + 2*xq] - mova m0, [bq + 2*xq] - paddw m1, m3 - psraw m1, 1 - psubw m0, m1 - mova [tmpq + 2*xq], m0 - add xq, mmsize/2 - cmp xq, w2q - jl .lowpass_loop - - xor xq, xq - and w2q, ~(mmsize/2 - 1) - cmp w2q, mmsize/2 - jl .end - -.highpass_loop: - movu m1, [b_w2q + 2*xq] - mova m0, [tmpq + 2*xq] - paddw m1, m0 - - ; shift and interleave -%if %2 == 1 - paddw m0, m3 - paddw m1, m3 - psraw m0, 1 - psraw m1, 1 -%endif - mova m2, m0 - punpcklwd m0, m1 - punpckhwd m2, m1 - mova [bq+4*xq], m0 - mova [bq+4*xq+mmsize], m2 - - add xq, mmsize/2 - cmp xq, w2q - jl .highpass_loop -.end: - REP_RET -%endmacro - - -INIT_XMM -; void horizontal_compose_dd97i(IDWTELEM *b, IDWTELEM *tmp, int width) -cglobal horizontal_compose_dd97i_ssse3, 3,6,8, b, tmp, w, x, w2, b_w2 - mov w2d, wd - xor xd, xd - shr w2d, 1 - lea b_w2q, [bq+wq] - movu m4, [bq+wq] - mova m7, [pw_2] - pslldq m4, 14 -.lowpass_loop: - movu m1, [b_w2q + 2*xq] - mova m0, [bq + 2*xq] - mova m2, m1 - palignr m1, m4, 14 - mova m4, m2 - COMPOSE_53iL0 m0, m1, m2, m7 - mova [tmpq + 2*xq], m0 - add xd, mmsize/2 - cmp xd, w2d - jl .lowpass_loop - - EDGE_EXTENSION 1, 2, xw - ; leave the last up to 7 (sse) or 3 (mmx) values for C - xor xd, xd - and w2d, ~(mmsize/2 - 1) - cmp w2d, mmsize/2 - jl .end - - mova m7, [tmpq-mmsize] - mova m0, [tmpq] - mova m5, [pw_1] - mova m3, [pw_8] - mova m4, [pw_1991] -.highpass_loop: - mova m6, m0 - palignr m0, m7, 14 - mova m7, [tmpq + 2*xq + 16] - mova m1, m7 - mova m2, m7 - palignr m1, m6, 2 - palignr m2, m6, 4 - COMPOSE_DD97iH0 m0, m6, m2, [b_w2q + 2*xq] - mova m0, m7 - mova m7, m6 - - ; shift and interleave - paddw m6, m5 - paddw m1, m5 - psraw m6, 1 - psraw m1, 1 - mova m2, m6 - punpcklwd m6, m1 - punpckhwd m2, m1 - mova [bq+4*xq], m6 - mova [bq+4*xq+mmsize], m2 - - add xd, mmsize/2 - cmp xd, w2d - jl .highpass_loop -.end: - REP_RET - - -%if ARCH_X86_64 == 0 -INIT_MMX -COMPOSE_VERTICAL mmx -HAAR_HORIZONTAL mmx, 0 -HAAR_HORIZONTAL mmx, 1 -%endif - -;;INIT_XMM -INIT_XMM -COMPOSE_VERTICAL sse2 -HAAR_HORIZONTAL sse2, 0 -HAAR_HORIZONTAL sse2, 1 diff --git a/libavcodec/x86/diracdsp.asm b/libavcodec/x86/diracdsp.asm deleted file mode 100644 index cc8a26fca5..0000000000 --- a/libavcodec/x86/diracdsp.asm +++ /dev/null @@ -1,347 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2010 David Conrad -;* -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION_RODATA -pw_7: times 8 dw 7 -convert_to_unsigned_10bit: times 4 dd 0x200 -clip_10bit: times 8 dw 0x3ff - -cextern pw_3 -cextern pw_16 -cextern pw_32 -cextern pb_80 - -SECTION .text - -%macro UNPACK_ADD 6 - mov%5 %1, %3 - mov%6 m5, %4 - mova m4, %1 - mova %2, m5 - punpcklbw %1, m7 - punpcklbw m5, m7 - punpckhbw m4, m7 - punpckhbw %2, m7 - paddw %1, m5 - paddw %2, m4 -%endmacro - -%macro HPEL_FILTER 1 -; dirac_hpel_filter_v_sse2(uint8_t *dst, uint8_t *src, int stride, int width); -cglobal dirac_hpel_filter_v_%1, 4,6,8, dst, src, stride, width, src0, stridex3 - mov src0q, srcq - lea stridex3q, [3*strideq] - sub src0q, stridex3q - pxor m7, m7 -.loop: - ; 7*(src[0] + src[1]) - UNPACK_ADD m0, m1, [srcq], [srcq + strideq], a,a - pmullw m0, [pw_7] - pmullw m1, [pw_7] - - ; 3*( ... + src[-2] + src[3]) - UNPACK_ADD m2, m3, [src0q + strideq], [srcq + stridex3q], a,a - paddw m0, m2 - paddw m1, m3 - pmullw m0, [pw_3] - pmullw m1, [pw_3] - - ; ... - 7*(src[-1] + src[2]) - UNPACK_ADD m2, m3, [src0q + strideq*2], [srcq + strideq*2], a,a - pmullw m2, [pw_7] - pmullw m3, [pw_7] - psubw m0, m2 - psubw m1, m3 - - ; ... - (src[-3] + src[4]) - UNPACK_ADD m2, m3, [src0q], [srcq + strideq*4], a,a - psubw m0, m2 - psubw m1, m3 - - paddw m0, [pw_16] - paddw m1, [pw_16] - psraw m0, 5 - psraw m1, 5 - packuswb m0, m1 - mova [dstq], m0 - add dstq, mmsize - add srcq, mmsize - add src0q, mmsize - sub widthd, mmsize - jg .loop - RET - -; dirac_hpel_filter_h_sse2(uint8_t *dst, uint8_t *src, int width); -cglobal dirac_hpel_filter_h_%1, 3,3,8, dst, src, width - dec widthd - pxor m7, m7 - and widthd, ~(mmsize-1) -.loop: - ; 7*(src[0] + src[1]) - UNPACK_ADD m0, m1, [srcq + widthq], [srcq + widthq + 1], u,u - pmullw m0, [pw_7] - pmullw m1, [pw_7] - - ; 3*( ... + src[-2] + src[3]) - UNPACK_ADD m2, m3, [srcq + widthq - 2], [srcq + widthq + 3], u,u - paddw m0, m2 - paddw m1, m3 - pmullw m0, [pw_3] - pmullw m1, [pw_3] - - ; ... - 7*(src[-1] + src[2]) - UNPACK_ADD m2, m3, [srcq + widthq - 1], [srcq + widthq + 2], u,u - pmullw m2, [pw_7] - pmullw m3, [pw_7] - psubw m0, m2 - psubw m1, m3 - - ; ... - (src[-3] + src[4]) - UNPACK_ADD m2, m3, [srcq + widthq - 3], [srcq + widthq + 4], u,u - psubw m0, m2 - psubw m1, m3 - - paddw m0, [pw_16] - paddw m1, [pw_16] - psraw m0, 5 - psraw m1, 5 - packuswb m0, m1 - mova [dstq + widthq], m0 - sub widthd, mmsize - jge .loop - RET -%endmacro - -%macro PUT_RECT 1 -; void put_rect_clamped(uint8_t *dst, int dst_stride, int16_t *src, int src_stride, int width, int height) -cglobal put_signed_rect_clamped_%1, 5,9,3, dst, dst_stride, src, src_stride, w, dst2, src2 - mova m0, [pb_80] - add wd, (mmsize-1) - and wd, ~(mmsize-1) - -%if ARCH_X86_64 - movsxd dst_strideq, dst_strided - movsxd src_strideq, src_strided - mov r7d, r5m - mov r8d, wd - %define wspill r8d - %define hd r7d -%else - mov r4m, wd - %define wspill r4m - %define hd r5mp -%endif - -.loopy: - lea src2q, [srcq+src_strideq] - lea dst2q, [dstq+dst_strideq] -.loopx: - sub wd, mmsize - mova m1, [srcq +2*wq] - mova m2, [src2q+2*wq] - packsswb m1, [srcq +2*wq+mmsize] - packsswb m2, [src2q+2*wq+mmsize] - paddb m1, m0 - paddb m2, m0 - mova [dstq +wq], m1 - mova [dst2q+wq], m2 - jg .loopx - - lea srcq, [srcq+src_strideq*2] - lea dstq, [dstq+dst_strideq*2] - sub hd, 2 - mov wd, wspill - jg .loopy - RET -%endm - -%macro ADD_RECT 1 -; void add_rect_clamped(uint8_t *dst, uint16_t *src, int stride, int16_t *idwt, int idwt_stride, int width, int height) -cglobal add_rect_clamped_%1, 7,9,3, dst, src, stride, idwt, idwt_stride, w, h - mova m0, [pw_32] - add wd, (mmsize-1) - and wd, ~(mmsize-1) - -%if ARCH_X86_64 - movsxd strideq, strided - movsxd idwt_strideq, idwt_strided - mov r8d, wd - %define wspill r8d -%else - mov r5m, wd - %define wspill r5m -%endif - -.loop: - sub wd, mmsize - movu m1, [srcq +2*wq] ; FIXME: ensure alignment - paddw m1, m0 - psraw m1, 6 - movu m2, [srcq +2*wq+mmsize] ; FIXME: ensure alignment - paddw m2, m0 - psraw m2, 6 - paddw m1, [idwtq+2*wq] - paddw m2, [idwtq+2*wq+mmsize] - packuswb m1, m2 - mova [dstq +wq], m1 - jg .loop - - lea srcq, [srcq + 2*strideq] - add dstq, strideq - lea idwtq, [idwtq+ 2*idwt_strideq] - sub hd, 1 - mov wd, wspill - jg .loop - RET -%endm - -%macro ADD_OBMC 2 -; void add_obmc(uint16_t *dst, uint8_t *src, int stride, uint8_t *obmc_weight, int yblen) -cglobal add_dirac_obmc%1_%2, 6,6,5, dst, src, stride, obmc, yblen - pxor m4, m4 -.loop: -%assign i 0 -%rep %1 / mmsize - mova m0, [srcq+i] - mova m1, m0 - punpcklbw m0, m4 - punpckhbw m1, m4 - mova m2, [obmcq+i] - mova m3, m2 - punpcklbw m2, m4 - punpckhbw m3, m4 - pmullw m0, m2 - pmullw m1, m3 - movu m2, [dstq+2*i] - movu m3, [dstq+2*i+mmsize] - paddw m0, m2 - paddw m1, m3 - movu [dstq+2*i], m0 - movu [dstq+2*i+mmsize], m1 -%assign i i+mmsize -%endrep - lea srcq, [srcq+strideq] - lea dstq, [dstq+2*strideq] - add obmcq, 32 - sub yblend, 1 - jg .loop - RET -%endm - -INIT_MMX -%if ARCH_X86_64 == 0 -PUT_RECT mmx -ADD_RECT mmx - -HPEL_FILTER mmx -ADD_OBMC 32, mmx -ADD_OBMC 16, mmx -%endif -ADD_OBMC 8, mmx - -INIT_XMM -PUT_RECT sse2 -ADD_RECT sse2 - -HPEL_FILTER sse2 -ADD_OBMC 32, sse2 -ADD_OBMC 16, sse2 - -INIT_XMM sse4 - -; void dequant_subband_32(uint8_t *src, uint8_t *dst, ptrdiff_t stride, const int qf, const int qs, int tot_v, int tot_h) -cglobal dequant_subband_32, 7, 7, 4, src, dst, stride, qf, qs, tot_v, tot_h - movd m2, qfd - movd m3, qsd - SPLATD m2 - SPLATD m3 - mov r4, tot_hq - mov r3, dstq - - .loop_v: - mov tot_hq, r4 - mov dstq, r3 - - .loop_h: - movu m0, [srcq] - - pabsd m1, m0 - pmulld m1, m2 - paddd m1, m3 - psrld m1, 2 - psignd m1, m0 - - movu [dstq], m1 - - add srcq, mmsize - add dstq, mmsize - sub tot_hd, 4 - jg .loop_h - - add r3, strideq - dec tot_vd - jg .loop_v - - RET - -INIT_XMM sse4 -; void put_signed_rect_clamped_10(uint8_t *dst, int dst_stride, const uint8_t *src, int src_stride, int width, int height) -%if ARCH_X86_64 -cglobal put_signed_rect_clamped_10, 6, 8, 5, dst, dst_stride, src, src_stride, w, h, t1, t2 -%else -cglobal put_signed_rect_clamped_10, 5, 7, 5, dst, dst_stride, src, src_stride, w, t1, t2 - %define hd r5mp -%endif - shl wd, 2 - add srcq, wq - neg wq - mov t2q, dstq - mov t1q, wq - pxor m2, m2 - mova m3, [clip_10bit] - mova m4, [convert_to_unsigned_10bit] - - .loop_h: - mov dstq, t2q - mov wq, t1q - - .loop_w: - movu m0, [srcq+wq+0*mmsize] - movu m1, [srcq+wq+1*mmsize] - - paddd m0, m4 - paddd m1, m4 - packusdw m0, m0, m1 - CLIPW m0, m2, m3 ; packusdw saturates so it's fine - - movu [dstq], m0 - - add dstq, 1*mmsize - add wq, 2*mmsize - jl .loop_w - - add srcq, src_strideq - add t2q, dst_strideq - sub hd, 1 - jg .loop_h - - RET diff --git a/libavcodec/x86/dnxhdenc.asm b/libavcodec/x86/dnxhdenc.asm deleted file mode 100644 index b4f759552e..0000000000 --- a/libavcodec/x86/dnxhdenc.asm +++ /dev/null @@ -1,49 +0,0 @@ -;************************************************************************ -;* VC3/DNxHD SIMD functions -;* Copyright (c) 2007 Baptiste Coudurier -;* Copyright (c) 2014 Tiancheng "Timothy" Gu -;* -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION .text - -; void get_pixels_8x4_sym_sse2(int16_t *block, const uint8_t *pixels, -; ptrdiff_t line_size) -INIT_XMM sse2 -cglobal get_pixels_8x4_sym, 3,3,5, block, pixels, linesize - pxor m4, m4 - movq m0, [pixelsq] - add pixelsq, linesizeq - movq m1, [pixelsq] - movq m2, [pixelsq+linesizeq] - movq m3, [pixelsq+linesizeq*2] - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpcklbw m3, m4 - mova [blockq ], m0 - mova [blockq+16 ], m1 - mova [blockq+32 ], m2 - mova [blockq+48 ], m3 - mova [blockq+64 ], m3 - mova [blockq+80 ], m2 - mova [blockq+96 ], m1 - mova [blockq+112], m0 - RET diff --git a/libavcodec/x86/exrdsp.asm b/libavcodec/x86/exrdsp.asm deleted file mode 100644 index 3bf240c8b1..0000000000 --- a/libavcodec/x86/exrdsp.asm +++ /dev/null @@ -1,118 +0,0 @@ -;****************************************************************************** -;* X86 Optimized functions for Open Exr Decoder -;* Copyright (c) 2006 Industrial Light & Magic, a division of Lucas Digital Ltd. LLC -;* -;* reorder_pixels, predictor based on patch by John Loy -;* port to ASM by Jokyo Images support by CNC - French National Center for Cinema -;* -;* predictor AVX/AVX2 by Henrik Gramner -;* -;* 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 "libavutil/x86/x86util.asm" - -cextern pb_15 -cextern pb_80 - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_reorder_pixels(uint8_t *dst, const uint8_t *src, ptrdiff_t size); -;------------------------------------------------------------------------------ - -%macro REORDER_PIXELS 0 -cglobal reorder_pixels, 3,4,3, dst, src1, size, src2 - lea src2q, [src1q+sizeq] ; src2 = src + 2 * half_size - add dstq, sizeq ; dst offset by size - shr sizeq, 1 ; half_size - add src1q, sizeq ; offset src by half_size - neg sizeq ; size = offset for dst, src1, src2 -.loop: - - mova m0, [src1q+sizeq] ; load first part - movu m1, [src2q+sizeq] ; load second part - SBUTTERFLY bw, 0, 1, 2 ; interleaved - mova [dstq+2*sizeq ], xm0 ; copy to dst - mova [dstq+2*sizeq+16], xm1 -%if cpuflag(avx2) - vperm2i128 m0, m0, m1, q0301 - mova [dstq+2*sizeq+32], m0 -%endif - add sizeq, mmsize - jl .loop - RET -%endmacro - -INIT_XMM sse2 -REORDER_PIXELS - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -REORDER_PIXELS -%endif - - -;------------------------------------------------------------------------------ -; void ff_predictor(uint8_t *src, ptrdiff_t size); -;------------------------------------------------------------------------------ - -%macro PREDICTOR 0 -cglobal predictor, 2,2,5, src, size - mova m0, [pb_80] - mova xm1, [pb_15] - mova xm2, xm0 - add srcq, sizeq - neg sizeq -.loop: - pxor m3, m0, [srcq + sizeq] - pslldq m4, m3, 1 - paddb m3, m4 - pslldq m4, m3, 2 - paddb m3, m4 - pslldq m4, m3, 4 - paddb m3, m4 - pslldq m4, m3, 8 -%if mmsize == 32 - paddb m3, m4 - paddb xm2, xm3 - vextracti128 xm4, m3, 1 - mova [srcq + sizeq], xm2 - pshufb xm2, xm1 - paddb xm2, xm4 - mova [srcq + sizeq + 16], xm2 -%else - paddb m2, m3 - paddb m2, m4 - mova [srcq + sizeq], m2 -%endif - pshufb xm2, xm1 - add sizeq, mmsize - jl .loop - RET -%endmacro - -INIT_XMM ssse3 -PREDICTOR - -INIT_XMM avx -PREDICTOR - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -PREDICTOR -%endif diff --git a/libavcodec/x86/fft.asm b/libavcodec/x86/fft.asm deleted file mode 100644 index a671e8f48e..0000000000 --- a/libavcodec/x86/fft.asm +++ /dev/null @@ -1,1085 +0,0 @@ -;****************************************************************************** -;* FFT transform with SSE/3DNow optimizations -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2011 Vitor Sessak -;* -;* This algorithm (though not any of the implementation details) is -;* based on libdjbfft by D. J. Bernstein. -;* -;* 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 -;****************************************************************************** - -; These functions are not individually interchangeable with the C versions. -; While C takes arrays of FFTComplex, SSE/3DNow leave intermediate results -; in blocks as conventient to the vector size. -; i.e. {4x real, 4x imaginary, 4x real, ...} (or 2x respectively) - -%include "libavutil/x86/x86util.asm" - -%if ARCH_X86_64 -%define pointer resq -%else -%define pointer resd -%endif - -struc FFTContext - .nbits: resd 1 - .reverse: resd 1 - .revtab: pointer 1 - .tmpbuf: pointer 1 - .mdctsize: resd 1 - .mdctbits: resd 1 - .tcos: pointer 1 - .tsin: pointer 1 - .fftperm: pointer 1 - .fftcalc: pointer 1 - .imdctcalc:pointer 1 - .imdcthalf:pointer 1 -endstruc - -SECTION_RODATA 32 - -%define M_SQRT1_2 0.70710678118654752440 -%define M_COS_PI_1_8 0.923879532511287 -%define M_COS_PI_3_8 0.38268343236509 - -ps_cos16_1: dd 1.0, M_COS_PI_1_8, M_SQRT1_2, M_COS_PI_3_8, 1.0, M_COS_PI_1_8, M_SQRT1_2, M_COS_PI_3_8 -ps_cos16_2: dd 0, M_COS_PI_3_8, M_SQRT1_2, M_COS_PI_1_8, 0, -M_COS_PI_3_8, -M_SQRT1_2, -M_COS_PI_1_8 - -ps_root2: times 8 dd M_SQRT1_2 -ps_root2mppm: dd -M_SQRT1_2, M_SQRT1_2, M_SQRT1_2, -M_SQRT1_2, -M_SQRT1_2, M_SQRT1_2, M_SQRT1_2, -M_SQRT1_2 -ps_p1p1m1p1: dd 0, 0, 1<<31, 0, 0, 0, 1<<31, 0 - -perm1: dd 0x00, 0x02, 0x03, 0x01, 0x03, 0x00, 0x02, 0x01 -perm2: dd 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x02, 0x03 -ps_p1p1m1p1root2: dd 1.0, 1.0, -1.0, 1.0, M_SQRT1_2, M_SQRT1_2, M_SQRT1_2, M_SQRT1_2 -ps_m1m1p1m1p1m1m1m1: dd 1<<31, 1<<31, 0, 1<<31, 0, 1<<31, 1<<31, 1<<31 -ps_m1p1: dd 1<<31, 0 - -cextern ps_neg - -%assign i 16 -%rep 14 -cextern cos_ %+ i -%assign i i<<1 -%endrep - -%if ARCH_X86_64 - %define pointer dq -%else - %define pointer dd -%endif - -%macro IF0 1+ -%endmacro -%macro IF1 1+ - %1 -%endmacro - -SECTION .text - -%macro T2_3DNOW 4 ; z0, z1, mem0, mem1 - mova %1, %3 - mova %2, %1 - pfadd %1, %4 - pfsub %2, %4 -%endmacro - -%macro T4_3DNOW 6 ; z0, z1, z2, z3, tmp0, tmp1 - mova %5, %3 - pfsub %3, %4 - pfadd %5, %4 ; {t6,t5} - pxor %3, [ps_m1p1] ; {t8,t7} - mova %6, %1 - movd [r0+12], %3 - punpckhdq %3, [r0+8] - pfadd %1, %5 ; {r0,i0} - pfsub %6, %5 ; {r2,i2} - mova %4, %2 - pfadd %2, %3 ; {r1,i1} - pfsub %4, %3 ; {r3,i3} - SWAP %3, %6 -%endmacro - -; in: %1 = {r0,i0,r2,i2,r4,i4,r6,i6} -; %2 = {r1,i1,r3,i3,r5,i5,r7,i7} -; %3, %4, %5 tmp -; out: %1 = {r0,r1,r2,r3,i0,i1,i2,i3} -; %2 = {r4,r5,r6,r7,i4,i5,i6,i7} -%macro T8_AVX 5 - vsubps %5, %1, %2 ; v = %1 - %2 - vaddps %3, %1, %2 ; w = %1 + %2 - vmulps %2, %5, [ps_p1p1m1p1root2] ; v *= vals1 - vpermilps %2, %2, [perm1] - vblendps %1, %2, %3, 0x33 ; q = {w1,w2,v4,v2,w5,w6,v7,v6} - vshufps %5, %3, %2, 0x4e ; r = {w3,w4,v1,v3,w7,w8,v8,v5} - vsubps %4, %5, %1 ; s = r - q - vaddps %1, %5, %1 ; u = r + q - vpermilps %1, %1, [perm2] ; k = {u1,u2,u3,u4,u6,u5,u7,u8} - vshufps %5, %4, %1, 0xbb - vshufps %3, %4, %1, 0xee - vperm2f128 %3, %3, %5, 0x13 - vxorps %4, %4, [ps_m1m1p1m1p1m1m1m1] ; s *= {1,1,-1,-1,1,-1,-1,-1} - vshufps %2, %1, %4, 0xdd - vshufps %1, %1, %4, 0x88 - vperm2f128 %4, %2, %1, 0x02 ; v = {k1,k3,s1,s3,k2,k4,s2,s4} - vperm2f128 %1, %1, %2, 0x13 ; w = {k6,k8,s6,s8,k5,k7,s5,s7} - vsubps %5, %1, %3 - vblendps %1, %5, %1, 0x55 ; w -= {0,s7,0,k7,0,s8,0,k8} - vsubps %2, %4, %1 ; %2 = v - w - vaddps %1, %4, %1 ; %1 = v + w -%endmacro - -; In SSE mode do one fft4 transforms -; in: %1={r0,i0,r2,i2} %2={r1,i1,r3,i3} -; out: %1={r0,r1,r2,r3} %2={i0,i1,i2,i3} -; -; In AVX mode do two fft4 transforms -; in: %1={r0,i0,r2,i2,r4,i4,r6,i6} %2={r1,i1,r3,i3,r5,i5,r7,i7} -; out: %1={r0,r1,r2,r3,r4,r5,r6,r7} %2={i0,i1,i2,i3,i4,i5,i6,i7} -%macro T4_SSE 3 - subps %3, %1, %2 ; {t3,t4,-t8,t7} - addps %1, %1, %2 ; {t1,t2,t6,t5} - xorps %3, %3, [ps_p1p1m1p1] - shufps %2, %1, %3, 0xbe ; {t6,t5,t7,t8} - shufps %1, %1, %3, 0x44 ; {t1,t2,t3,t4} - subps %3, %1, %2 ; {r2,i2,r3,i3} - addps %1, %1, %2 ; {r0,i0,r1,i1} - shufps %2, %1, %3, 0xdd ; {i0,i1,i2,i3} - shufps %1, %1, %3, 0x88 ; {r0,r1,r2,r3} -%endmacro - -; In SSE mode do one FFT8 -; in: %1={r0,r1,r2,r3} %2={i0,i1,i2,i3} %3={r4,i4,r6,i6} %4={r5,i5,r7,i7} -; out: %1={r0,r1,r2,r3} %2={i0,i1,i2,i3} %1={r4,r5,r6,r7} %2={i4,i5,i6,i7} -; -; In AVX mode do two FFT8 -; in: %1={r0,i0,r2,i2,r8, i8, r10,i10} %2={r1,i1,r3,i3,r9, i9, r11,i11} -; %3={r4,i4,r6,i6,r12,i12,r14,i14} %4={r5,i5,r7,i7,r13,i13,r15,i15} -; out: %1={r0,r1,r2,r3,r8, r9, r10,r11} %2={i0,i1,i2,i3,i8, i9, i10,i11} -; %3={r4,r5,r6,r7,r12,r13,r14,r15} %4={i4,i5,i6,i7,i12,i13,i14,i15} -%macro T8_SSE 6 - addps %6, %3, %4 ; {t1,t2,t3,t4} - subps %3, %3, %4 ; {r5,i5,r7,i7} - shufps %4, %3, %3, 0xb1 ; {i5,r5,i7,r7} - mulps %3, %3, [ps_root2mppm] ; {-r5,i5,r7,-i7} - mulps %4, %4, [ps_root2] - addps %3, %3, %4 ; {t8,t7,ta,t9} - shufps %4, %6, %3, 0x9c ; {t1,t4,t7,ta} - shufps %6, %6, %3, 0x36 ; {t3,t2,t9,t8} - subps %3, %6, %4 ; {t6,t5,tc,tb} - addps %6, %6, %4 ; {t1,t2,t9,ta} - shufps %5, %6, %3, 0x8d ; {t2,ta,t6,tc} - shufps %6, %6, %3, 0xd8 ; {t1,t9,t5,tb} - subps %3, %1, %6 ; {r4,r5,r6,r7} - addps %1, %1, %6 ; {r0,r1,r2,r3} - subps %4, %2, %5 ; {i4,i5,i6,i7} - addps %2, %2, %5 ; {i0,i1,i2,i3} -%endmacro - -%macro INTERL 5 -%if cpuflag(avx) - vunpckhps %3, %2, %1 - vunpcklps %2, %2, %1 - vextractf128 %4(%5), %2, 0 - vextractf128 %4 %+ H(%5), %3, 0 - vextractf128 %4(%5 + 1), %2, 1 - vextractf128 %4 %+ H(%5 + 1), %3, 1 -%elif cpuflag(sse) || cpuflag(3dnow) - mova %3, %2 - unpcklps %2, %1 - unpckhps %3, %1 - mova %4(%5), %2 - mova %4(%5+1), %3 -%endif -%endmacro - -; scheduled for cpu-bound sizes -%macro PASS_SMALL 3 ; (to load m4-m7), wre, wim -IF%1 mova m4, Z(4) -IF%1 mova m5, Z(5) - mova m0, %2 ; wre - mova m1, %3 ; wim - mulps m2, m4, m0 ; r2*wre -IF%1 mova m6, Z2(6) - mulps m3, m5, m1 ; i2*wim -IF%1 mova m7, Z2(7) - mulps m4, m4, m1 ; r2*wim - mulps m5, m5, m0 ; i2*wre - addps m2, m2, m3 ; r2*wre + i2*wim - mulps m3, m1, m7 ; i3*wim - subps m5, m5, m4 ; i2*wre - r2*wim - mulps m1, m1, m6 ; r3*wim - mulps m4, m0, m6 ; r3*wre - mulps m0, m0, m7 ; i3*wre - subps m4, m4, m3 ; r3*wre - i3*wim - mova m3, Z(0) - addps m0, m0, m1 ; i3*wre + r3*wim - subps m1, m4, m2 ; t3 - addps m4, m4, m2 ; t5 - subps m3, m3, m4 ; r2 - addps m4, m4, Z(0) ; r0 - mova m6, Z(2) - mova Z(4), m3 - mova Z(0), m4 - subps m3, m5, m0 ; t4 - subps m4, m6, m3 ; r3 - addps m3, m3, m6 ; r1 - mova Z2(6), m4 - mova Z(2), m3 - mova m2, Z(3) - addps m3, m5, m0 ; t6 - subps m2, m2, m1 ; i3 - mova m7, Z(1) - addps m1, m1, Z(3) ; i1 - mova Z2(7), m2 - mova Z(3), m1 - subps m4, m7, m3 ; i2 - addps m3, m3, m7 ; i0 - mova Z(5), m4 - mova Z(1), m3 -%endmacro - -; scheduled to avoid store->load aliasing -%macro PASS_BIG 1 ; (!interleave) - mova m4, Z(4) ; r2 - mova m5, Z(5) ; i2 - mova m0, [wq] ; wre - mova m1, [wq+o1q] ; wim - mulps m2, m4, m0 ; r2*wre - mova m6, Z2(6) ; r3 - mulps m3, m5, m1 ; i2*wim - mova m7, Z2(7) ; i3 - mulps m4, m4, m1 ; r2*wim - mulps m5, m5, m0 ; i2*wre - addps m2, m2, m3 ; r2*wre + i2*wim - mulps m3, m1, m7 ; i3*wim - mulps m1, m1, m6 ; r3*wim - subps m5, m5, m4 ; i2*wre - r2*wim - mulps m4, m0, m6 ; r3*wre - mulps m0, m0, m7 ; i3*wre - subps m4, m4, m3 ; r3*wre - i3*wim - mova m3, Z(0) - addps m0, m0, m1 ; i3*wre + r3*wim - subps m1, m4, m2 ; t3 - addps m4, m4, m2 ; t5 - subps m3, m3, m4 ; r2 - addps m4, m4, Z(0) ; r0 - mova m6, Z(2) - mova Z(4), m3 - mova Z(0), m4 - subps m3, m5, m0 ; t4 - subps m4, m6, m3 ; r3 - addps m3, m3, m6 ; r1 -IF%1 mova Z2(6), m4 -IF%1 mova Z(2), m3 - mova m2, Z(3) - addps m5, m5, m0 ; t6 - subps m2, m2, m1 ; i3 - mova m7, Z(1) - addps m1, m1, Z(3) ; i1 -IF%1 mova Z2(7), m2 -IF%1 mova Z(3), m1 - subps m6, m7, m5 ; i2 - addps m5, m5, m7 ; i0 -IF%1 mova Z(5), m6 -IF%1 mova Z(1), m5 -%if %1==0 - INTERL m1, m3, m7, Z, 2 - INTERL m2, m4, m0, Z2, 6 - - mova m1, Z(0) - mova m2, Z(4) - - INTERL m5, m1, m3, Z, 0 - INTERL m6, m2, m7, Z, 4 -%endif -%endmacro - -%macro PUNPCK 3 - mova %3, %1 - punpckldq %1, %2 - punpckhdq %3, %2 -%endmacro - -%define Z(x) [r0+mmsize*x] -%define Z2(x) [r0+mmsize*x] -%define ZH(x) [r0+mmsize*x+mmsize/2] - -INIT_YMM avx - -%if HAVE_AVX_EXTERNAL -align 16 -fft8_avx: - mova m0, Z(0) - mova m1, Z(1) - T8_AVX m0, m1, m2, m3, m4 - mova Z(0), m0 - mova Z(1), m1 - ret - - -align 16 -fft16_avx: - mova m2, Z(2) - mova m3, Z(3) - T4_SSE m2, m3, m7 - - mova m0, Z(0) - mova m1, Z(1) - T8_AVX m0, m1, m4, m5, m7 - - mova m4, [ps_cos16_1] - mova m5, [ps_cos16_2] - vmulps m6, m2, m4 - vmulps m7, m3, m5 - vaddps m7, m7, m6 - vmulps m2, m2, m5 - vmulps m3, m3, m4 - vsubps m3, m3, m2 - vblendps m2, m7, m3, 0xf0 - vperm2f128 m3, m7, m3, 0x21 - vaddps m4, m2, m3 - vsubps m2, m3, m2 - vperm2f128 m2, m2, m2, 0x01 - vsubps m3, m1, m2 - vaddps m1, m1, m2 - vsubps m5, m0, m4 - vaddps m0, m0, m4 - vextractf128 Z(0), m0, 0 - vextractf128 ZH(0), m1, 0 - vextractf128 Z(1), m0, 1 - vextractf128 ZH(1), m1, 1 - vextractf128 Z(2), m5, 0 - vextractf128 ZH(2), m3, 0 - vextractf128 Z(3), m5, 1 - vextractf128 ZH(3), m3, 1 - ret - -align 16 -fft32_avx: - call fft16_avx - - mova m0, Z(4) - mova m1, Z(5) - - T4_SSE m0, m1, m4 - - mova m2, Z(6) - mova m3, Z(7) - - T8_SSE m0, m1, m2, m3, m4, m6 - ; m0={r0,r1,r2,r3,r8, r9, r10,r11} m1={i0,i1,i2,i3,i8, i9, i10,i11} - ; m2={r4,r5,r6,r7,r12,r13,r14,r15} m3={i4,i5,i6,i7,i12,i13,i14,i15} - - vperm2f128 m4, m0, m2, 0x20 - vperm2f128 m5, m1, m3, 0x20 - vperm2f128 m6, m0, m2, 0x31 - vperm2f128 m7, m1, m3, 0x31 - - PASS_SMALL 0, [cos_32], [cos_32+32] - - ret - -fft32_interleave_avx: - call fft32_avx - mov r2d, 32 -.deint_loop: - mova m2, Z(0) - mova m3, Z(1) - vunpcklps m0, m2, m3 - vunpckhps m1, m2, m3 - vextractf128 Z(0), m0, 0 - vextractf128 ZH(0), m1, 0 - vextractf128 Z(1), m0, 1 - vextractf128 ZH(1), m1, 1 - add r0, mmsize*2 - sub r2d, mmsize/4 - jg .deint_loop - ret - -%endif - -INIT_XMM sse - -align 16 -fft4_avx: -fft4_sse: - mova m0, Z(0) - mova m1, Z(1) - T4_SSE m0, m1, m2 - mova Z(0), m0 - mova Z(1), m1 - ret - -align 16 -fft8_sse: - mova m0, Z(0) - mova m1, Z(1) - T4_SSE m0, m1, m2 - mova m2, Z(2) - mova m3, Z(3) - T8_SSE m0, m1, m2, m3, m4, m5 - mova Z(0), m0 - mova Z(1), m1 - mova Z(2), m2 - mova Z(3), m3 - ret - -align 16 -fft16_sse: - mova m0, Z(0) - mova m1, Z(1) - T4_SSE m0, m1, m2 - mova m2, Z(2) - mova m3, Z(3) - T8_SSE m0, m1, m2, m3, m4, m5 - mova m4, Z(4) - mova m5, Z(5) - mova Z(0), m0 - mova Z(1), m1 - mova Z(2), m2 - mova Z(3), m3 - T4_SSE m4, m5, m6 - mova m6, Z2(6) - mova m7, Z2(7) - T4_SSE m6, m7, m0 - PASS_SMALL 0, [cos_16], [cos_16+16] - ret - - -%macro FFT48_3DNOW 0 -align 16 -fft4 %+ SUFFIX: - T2_3DNOW m0, m1, Z(0), Z(1) - mova m2, Z(2) - mova m3, Z(3) - T4_3DNOW m0, m1, m2, m3, m4, m5 - PUNPCK m0, m1, m4 - PUNPCK m2, m3, m5 - mova Z(0), m0 - mova Z(1), m4 - mova Z(2), m2 - mova Z(3), m5 - ret - -align 16 -fft8 %+ SUFFIX: - T2_3DNOW m0, m1, Z(0), Z(1) - mova m2, Z(2) - mova m3, Z(3) - T4_3DNOW m0, m1, m2, m3, m4, m5 - mova Z(0), m0 - mova Z(2), m2 - T2_3DNOW m4, m5, Z(4), Z(5) - T2_3DNOW m6, m7, Z2(6), Z2(7) - PSWAPD m0, m5 - PSWAPD m2, m7 - pxor m0, [ps_m1p1] - pxor m2, [ps_m1p1] - pfsub m5, m0 - pfadd m7, m2 - pfmul m5, [ps_root2] - pfmul m7, [ps_root2] - T4_3DNOW m1, m3, m5, m7, m0, m2 - mova Z(5), m5 - mova Z2(7), m7 - mova m0, Z(0) - mova m2, Z(2) - T4_3DNOW m0, m2, m4, m6, m5, m7 - PUNPCK m0, m1, m5 - PUNPCK m2, m3, m7 - mova Z(0), m0 - mova Z(1), m5 - mova Z(2), m2 - mova Z(3), m7 - PUNPCK m4, Z(5), m5 - PUNPCK m6, Z2(7), m7 - mova Z(4), m4 - mova Z(5), m5 - mova Z2(6), m6 - mova Z2(7), m7 - ret -%endmacro - -%if ARCH_X86_32 -INIT_MMX 3dnowext -FFT48_3DNOW - -INIT_MMX 3dnow -FFT48_3DNOW -%endif - -%define Z(x) [zcq + o1q*(x&6) + mmsize*(x&1)] -%define Z2(x) [zcq + o3q + mmsize*(x&1)] -%define ZH(x) [zcq + o1q*(x&6) + mmsize*(x&1) + mmsize/2] -%define Z2H(x) [zcq + o3q + mmsize*(x&1) + mmsize/2] - -%macro DECL_PASS 2+ ; name, payload -align 16 -%1: -DEFINE_ARGS zc, w, n, o1, o3 - lea o3q, [nq*3] - lea o1q, [nq*8] - shl o3q, 4 -.loop: - %2 - add zcq, mmsize*2 - add wq, mmsize - sub nd, mmsize/8 - jg .loop - rep ret -%endmacro - -%macro FFT_DISPATCH 2; clobbers 5 GPRs, 8 XMMs - lea r2, [dispatch_tab%1] - mov r2, [r2 + (%2q-2)*gprsize] -%ifdef PIC - lea r3, [$$] - add r2, r3 -%endif - call r2 -%endmacro ; FFT_DISPATCH - -INIT_YMM avx - -%if HAVE_AVX_EXTERNAL -DECL_PASS pass_avx, PASS_BIG 1 -DECL_PASS pass_interleave_avx, PASS_BIG 0 - -cglobal fft_calc, 2,5,8 - mov r3d, [r0 + FFTContext.nbits] - mov r0, r1 - mov r1, r3 - FFT_DISPATCH _interleave %+ SUFFIX, r1 - REP_RET - -%endif - -INIT_XMM sse - -DECL_PASS pass_sse, PASS_BIG 1 -DECL_PASS pass_interleave_sse, PASS_BIG 0 - -%macro FFT_CALC_FUNC 0 -cglobal fft_calc, 2,5,8 - mov r3d, [r0 + FFTContext.nbits] - PUSH r1 - PUSH r3 - mov r0, r1 - mov r1, r3 - FFT_DISPATCH _interleave %+ SUFFIX, r1 - POP rcx - POP r4 - cmp rcx, 3+(mmsize/16) - jg .end - mov r2, -1 - add rcx, 3 - shl r2, cl - sub r4, r2 -.loop: -%if mmsize == 8 - PSWAPD m0, [r4 + r2 + 4] - mova [r4 + r2 + 4], m0 -%else - movaps xmm0, [r4 + r2] - movaps xmm1, xmm0 - unpcklps xmm0, [r4 + r2 + 16] - unpckhps xmm1, [r4 + r2 + 16] - movaps [r4 + r2], xmm0 - movaps [r4 + r2 + 16], xmm1 -%endif - add r2, mmsize*2 - jl .loop -.end: -%if cpuflag(3dnow) - femms - RET -%else - REP_RET -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX 3dnow -FFT_CALC_FUNC -INIT_MMX 3dnowext -FFT_CALC_FUNC -%endif -INIT_XMM sse -FFT_CALC_FUNC - -cglobal fft_permute, 2,7,1 - mov r4, [r0 + FFTContext.revtab] - mov r5, [r0 + FFTContext.tmpbuf] - mov ecx, [r0 + FFTContext.nbits] - mov r2, 1 - shl r2, cl - xor r0, r0 -%if ARCH_X86_32 - mov r1, r1m -%endif -.loop: - movaps xmm0, [r1 + 8*r0] - movzx r6, word [r4 + 2*r0] - movzx r3, word [r4 + 2*r0 + 2] - movlps [r5 + 8*r6], xmm0 - movhps [r5 + 8*r3], xmm0 - add r0, 2 - cmp r0, r2 - jl .loop - shl r2, 3 - add r1, r2 - add r5, r2 - neg r2 -; nbits >= 2 (FFT4) and sizeof(FFTComplex)=8 => at least 32B -.loopcopy: - movaps xmm0, [r5 + r2] - movaps xmm1, [r5 + r2 + 16] - movaps [r1 + r2], xmm0 - movaps [r1 + r2 + 16], xmm1 - add r2, 32 - jl .loopcopy - REP_RET - -%macro IMDCT_CALC_FUNC 0 -cglobal imdct_calc, 3,5,3 - mov r3d, [r0 + FFTContext.mdctsize] - mov r4, [r0 + FFTContext.imdcthalf] - add r1, r3 - PUSH r3 - PUSH r1 -%if ARCH_X86_32 - push r2 - push r1 - push r0 -%else - sub rsp, 8+32*WIN64 ; allocate win64 shadow space -%endif - call r4 -%if ARCH_X86_32 - add esp, 12 -%else - add rsp, 8+32*WIN64 -%endif - POP r1 - POP r3 - lea r0, [r1 + 2*r3] - mov r2, r3 - sub r3, mmsize - neg r2 - mova m2, [ps_neg] -.loop: -%if mmsize == 8 - PSWAPD m0, [r1 + r3] - PSWAPD m1, [r0 + r2] - pxor m0, m2 -%else - mova m0, [r1 + r3] - mova m1, [r0 + r2] - shufps m0, m0, 0x1b - shufps m1, m1, 0x1b - xorps m0, m2 -%endif - mova [r0 + r3], m1 - mova [r1 + r2], m0 - sub r3, mmsize - add r2, mmsize - jl .loop -%if cpuflag(3dnow) - femms - RET -%else - REP_RET -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX 3dnow -IMDCT_CALC_FUNC -INIT_MMX 3dnowext -IMDCT_CALC_FUNC -%endif - -INIT_XMM sse -IMDCT_CALC_FUNC - -%if ARCH_X86_32 -INIT_MMX 3dnow -%define mulps pfmul -%define addps pfadd -%define subps pfsub -%define unpcklps punpckldq -%define unpckhps punpckhdq -DECL_PASS pass_3dnow, PASS_SMALL 1, [wq], [wq+o1q] -DECL_PASS pass_interleave_3dnow, PASS_BIG 0 -%define pass_3dnowext pass_3dnow -%define pass_interleave_3dnowext pass_interleave_3dnow -%endif - -%ifdef PIC -%define SECTION_REL - $$ -%else -%define SECTION_REL -%endif - -%macro DECL_FFT 1-2 ; nbits, suffix -%ifidn %0, 1 -%xdefine fullsuffix SUFFIX -%else -%xdefine fullsuffix %2 %+ SUFFIX -%endif -%xdefine list_of_fft fft4 %+ SUFFIX SECTION_REL, fft8 %+ SUFFIX SECTION_REL -%if %1>=5 -%xdefine list_of_fft list_of_fft, fft16 %+ SUFFIX SECTION_REL -%endif -%if %1>=6 -%xdefine list_of_fft list_of_fft, fft32 %+ fullsuffix SECTION_REL -%endif - -%assign n 1<<%1 -%rep 18-%1 -%assign n2 n/2 -%assign n4 n/4 -%xdefine list_of_fft list_of_fft, fft %+ n %+ fullsuffix SECTION_REL - -align 16 -fft %+ n %+ fullsuffix: - call fft %+ n2 %+ SUFFIX - add r0, n*4 - (n&(-2<<%1)) - call fft %+ n4 %+ SUFFIX - add r0, n*2 - (n2&(-2<<%1)) - call fft %+ n4 %+ SUFFIX - sub r0, n*6 + (n2&(-2<<%1)) - lea r1, [cos_ %+ n] - mov r2d, n4/2 - jmp pass %+ fullsuffix - -%assign n n*2 -%endrep -%undef n - -align 8 -dispatch_tab %+ fullsuffix: pointer list_of_fft -%endmacro ; DECL_FFT - -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -DECL_FFT 6 -DECL_FFT 6, _interleave -%endif -INIT_XMM sse -DECL_FFT 5 -DECL_FFT 5, _interleave -%if ARCH_X86_32 -INIT_MMX 3dnow -DECL_FFT 4 -DECL_FFT 4, _interleave -INIT_MMX 3dnowext -DECL_FFT 4 -DECL_FFT 4, _interleave -%endif - -INIT_XMM sse -%undef mulps -%undef addps -%undef subps -%undef unpcklps -%undef unpckhps - -%macro PREROTATER 5 ;-2*k, 2*k, input+n4, tcos+n8, tsin+n8 -%if mmsize == 8 ; j*2+2-n4, n4-2-j*2, input+n4, tcos+n8, tsin+n8 - PSWAPD m0, [%3+%2*4] - movq m2, [%3+%1*4-8] - movq m3, m0 - punpckldq m0, m2 - punpckhdq m2, m3 - movd m1, [%4+%1*2-4] ; tcos[j] - movd m3, [%4+%2*2] ; tcos[n4-j-1] - punpckldq m1, [%5+%1*2-4] ; tsin[j] - punpckldq m3, [%5+%2*2] ; tsin[n4-j-1] - - mova m4, m0 - PSWAPD m5, m1 - pfmul m0, m1 - pfmul m4, m5 - mova m6, m2 - PSWAPD m5, m3 - pfmul m2, m3 - pfmul m6, m5 -%if cpuflag(3dnowext) - pfpnacc m0, m4 - pfpnacc m2, m6 -%else - SBUTTERFLY dq, 0, 4, 1 - SBUTTERFLY dq, 2, 6, 3 - pxor m4, m7 - pxor m6, m7 - pfadd m0, m4 - pfadd m2, m6 -%endif -%else - movaps xmm0, [%3+%2*4] - movaps xmm1, [%3+%1*4-0x10] - movaps xmm2, xmm0 - shufps xmm0, xmm1, 0x88 - shufps xmm1, xmm2, 0x77 - movlps xmm4, [%4+%2*2] - movlps xmm5, [%5+%2*2+0x0] - movhps xmm4, [%4+%1*2-0x8] - movhps xmm5, [%5+%1*2-0x8] - movaps xmm2, xmm0 - movaps xmm3, xmm1 - mulps xmm0, xmm5 - mulps xmm1, xmm4 - mulps xmm2, xmm4 - mulps xmm3, xmm5 - subps xmm1, xmm0 - addps xmm2, xmm3 - movaps xmm0, xmm1 - unpcklps xmm1, xmm2 - unpckhps xmm0, xmm2 -%endif -%endmacro - -%macro CMUL 6 ;j, xmm0, xmm1, 3, 4, 5 -%if cpuflag(sse) - mulps m6, %3, [%5+%1] - mulps m7, %2, [%5+%1] - mulps %2, %2, [%6+%1] - mulps %3, %3, [%6+%1] - subps %2, %2, m6 - addps %3, %3, m7 -%elif cpuflag(3dnow) - mova m6, [%1+%2*2] - mova %3, [%1+%2*2+8] - mova %4, m6 - mova m7, %3 - pfmul m6, [%5+%2] - pfmul %3, [%6+%2] - pfmul %4, [%6+%2] - pfmul m7, [%5+%2] - pfsub %3, m6 - pfadd %4, m7 -%endif -%endmacro - -%macro POSROTATESHUF 5 ;j, k, z+n8, tcos+n8, tsin+n8 -.post: -%if cpuflag(avx) - vmovaps ymm1, [%3+%1*2] - vmovaps ymm0, [%3+%1*2+0x20] - vmovaps ymm3, [%3+%2*2] - vmovaps ymm2, [%3+%2*2+0x20] - - CMUL %1, ymm0, ymm1, %3, %4, %5 - CMUL %2, ymm2, ymm3, %3, %4, %5 - vshufps ymm1, ymm1, ymm1, 0x1b - vshufps ymm3, ymm3, ymm3, 0x1b - vperm2f128 ymm1, ymm1, ymm1, 0x01 - vperm2f128 ymm3, ymm3, ymm3, 0x01 - vunpcklps ymm6, ymm2, ymm1 - vunpckhps ymm4, ymm2, ymm1 - vunpcklps ymm7, ymm0, ymm3 - vunpckhps ymm5, ymm0, ymm3 - - vextractf128 [%3+%1*2], ymm7, 0 - vextractf128 [%3+%1*2+0x10], ymm5, 0 - vextractf128 [%3+%1*2+0x20], ymm7, 1 - vextractf128 [%3+%1*2+0x30], ymm5, 1 - - vextractf128 [%3+%2*2], ymm6, 0 - vextractf128 [%3+%2*2+0x10], ymm4, 0 - vextractf128 [%3+%2*2+0x20], ymm6, 1 - vextractf128 [%3+%2*2+0x30], ymm4, 1 - sub %2, 0x20 - add %1, 0x20 - jl .post -%elif cpuflag(sse) - movaps xmm1, [%3+%1*2] - movaps xmm0, [%3+%1*2+0x10] - CMUL %1, xmm0, xmm1, %3, %4, %5 - movaps xmm5, [%3+%2*2] - movaps xmm4, [%3+%2*2+0x10] - CMUL %2, xmm4, xmm5, %3, %4, %5 - shufps xmm1, xmm1, 0x1b - shufps xmm5, xmm5, 0x1b - movaps xmm6, xmm4 - unpckhps xmm4, xmm1 - unpcklps xmm6, xmm1 - movaps xmm2, xmm0 - unpcklps xmm0, xmm5 - unpckhps xmm2, xmm5 - movaps [%3+%2*2], xmm6 - movaps [%3+%2*2+0x10], xmm4 - movaps [%3+%1*2], xmm0 - movaps [%3+%1*2+0x10], xmm2 - sub %2, 0x10 - add %1, 0x10 - jl .post -%elif cpuflag(3dnow) - CMUL %3, %1, m0, m1, %4, %5 - CMUL %3, %2, m2, m3, %4, %5 - movd [%3+%1*2+ 0], m0 - movd [%3+%2*2+12], m1 - movd [%3+%2*2+ 0], m2 - movd [%3+%1*2+12], m3 - psrlq m0, 32 - psrlq m1, 32 - psrlq m2, 32 - psrlq m3, 32 - movd [%3+%1*2+ 8], m0 - movd [%3+%2*2+ 4], m1 - movd [%3+%2*2+ 8], m2 - movd [%3+%1*2+ 4], m3 - sub %2, 8 - add %1, 8 - jl .post -%endif -%endmacro - -%macro DECL_IMDCT 0 -cglobal imdct_half, 3,12,8; FFTContext *s, FFTSample *output, const FFTSample *input -%if ARCH_X86_64 -%define rrevtab r7 -%define rtcos r8 -%define rtsin r9 -%else -%define rrevtab r6 -%define rtsin r6 -%define rtcos r5 -%endif - mov r3d, [r0+FFTContext.mdctsize] - add r2, r3 - shr r3, 1 - mov rtcos, [r0+FFTContext.tcos] - mov rtsin, [r0+FFTContext.tsin] - add rtcos, r3 - add rtsin, r3 -%if ARCH_X86_64 == 0 - push rtcos - push rtsin -%endif - shr r3, 1 - mov rrevtab, [r0+FFTContext.revtab] - add rrevtab, r3 -%if ARCH_X86_64 == 0 - push rrevtab -%endif - -%if mmsize == 8 - sub r3, 2 -%else - sub r3, 4 -%endif -%if ARCH_X86_64 || mmsize == 8 - xor r4, r4 - sub r4, r3 -%endif -%if notcpuflag(3dnowext) && mmsize == 8 - movd m7, [ps_neg] -%endif -.pre: -%if ARCH_X86_64 == 0 -;unspill -%if mmsize != 8 - xor r4, r4 - sub r4, r3 -%endif - mov rtcos, [esp+8] - mov rtsin, [esp+4] -%endif - - PREROTATER r4, r3, r2, rtcos, rtsin -%if mmsize == 8 - mov r6, [esp] ; rrevtab = ptr+n8 - movzx r5, word [rrevtab+r4-2] ; rrevtab[j] - movzx r6, word [rrevtab+r3] ; rrevtab[n4-j-1] - mova [r1+r5*8], m0 - mova [r1+r6*8], m2 - add r4, 2 - sub r3, 2 -%else -%if ARCH_X86_64 - movzx r5, word [rrevtab+r4-4] - movzx r6, word [rrevtab+r4-2] - movzx r10, word [rrevtab+r3] - movzx r11, word [rrevtab+r3+2] - movlps [r1+r5 *8], xmm0 - movhps [r1+r6 *8], xmm0 - movlps [r1+r10*8], xmm1 - movhps [r1+r11*8], xmm1 - add r4, 4 -%else - mov r6, [esp] - movzx r5, word [r6+r4-4] - movzx r4, word [r6+r4-2] - movlps [r1+r5*8], xmm0 - movhps [r1+r4*8], xmm0 - movzx r5, word [r6+r3] - movzx r4, word [r6+r3+2] - movlps [r1+r5*8], xmm1 - movhps [r1+r4*8], xmm1 -%endif - sub r3, 4 -%endif - jns .pre - - mov r5, r0 - mov r6, r1 - mov r0, r1 - mov r1d, [r5+FFTContext.nbits] - - FFT_DISPATCH SUFFIX, r1 - - mov r0d, [r5+FFTContext.mdctsize] - add r6, r0 - shr r0, 1 -%if ARCH_X86_64 == 0 -%define rtcos r2 -%define rtsin r3 - mov rtcos, [esp+8] - mov rtsin, [esp+4] -%endif - neg r0 - mov r1, -mmsize - sub r1, r0 - POSROTATESHUF r0, r1, r6, rtcos, rtsin -%if ARCH_X86_64 == 0 - add esp, 12 -%endif -%if mmsize == 8 - femms -%endif - RET -%endmacro - -DECL_IMDCT - -%if ARCH_X86_32 -INIT_MMX 3dnow -DECL_IMDCT - -INIT_MMX 3dnowext -DECL_IMDCT -%endif - -INIT_YMM avx - -%if HAVE_AVX_EXTERNAL -DECL_IMDCT -%endif diff --git a/libavcodec/x86/flac_dsp_gpl.asm b/libavcodec/x86/flac_dsp_gpl.asm deleted file mode 100644 index e285158185..0000000000 --- a/libavcodec/x86/flac_dsp_gpl.asm +++ /dev/null @@ -1,101 +0,0 @@ -;****************************************************************************** -;* FLAC DSP functions -;* -;* Copyright (c) 2014 James Darnley -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg 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. -;* -;* 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 General Public License for more details. -;* -;* You should have received a copy of the GNU 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_XMM sse4 -%if ARCH_X86_64 - cglobal flac_enc_lpc_16, 5, 7, 8, 0, res, smp, len, order, coefs - DECLARE_REG_TMP 5, 6 - %define length r2d - - movsxd orderq, orderd -%else - cglobal flac_enc_lpc_16, 5, 6, 8, 0, res, smp, len, order, coefs - DECLARE_REG_TMP 2, 5 - %define length r2mp -%endif - -; Here we assume that the maximum order value is 32. This means that we only -; need to copy a maximum of 32 samples. Therefore we let the preprocessor -; unroll this loop and copy all 32. -%assign iter 0 -%rep 32/(mmsize/4) - movu m0, [smpq+iter] - movu [resq+iter], m0 - %assign iter iter+mmsize -%endrep - -lea resq, [resq+orderq*4] -lea smpq, [smpq+orderq*4] -lea coefsq, [coefsq+orderq*4] -sub length, orderd -movd m3, r5m -neg orderq - -%define posj t0q -%define negj t1q - -.looplen: - pxor m0, m0 - pxor m4, m4 - pxor m6, m6 - mov posj, orderq - xor negj, negj - - .looporder: - movd m2, [coefsq+posj*4] ; c = coefs[j] - SPLATD m2 - movu m1, [smpq+negj*4-4] ; s = smp[i-j-1] - movu m5, [smpq+negj*4-4+mmsize] - movu m7, [smpq+negj*4-4+mmsize*2] - pmulld m1, m2 - pmulld m5, m2 - pmulld m7, m2 - paddd m0, m1 ; p += c * s - paddd m4, m5 - paddd m6, m7 - - dec negj - inc posj - jnz .looporder - - psrad m0, m3 ; p >>= shift - psrad m4, m3 - psrad m6, m3 - movu m1, [smpq] - movu m5, [smpq+mmsize] - movu m7, [smpq+mmsize*2] - psubd m1, m0 ; smp[i] - p - psubd m5, m4 - psubd m7, m6 - movu [resq], m1 ; res[i] = smp[i] - (p >> shift) - movu [resq+mmsize], m5 - movu [resq+mmsize*2], m7 - - add resq, 3*mmsize - add smpq, 3*mmsize - sub length, (3*mmsize)/4 -jg .looplen -RET diff --git a/libavcodec/x86/flacdsp.asm b/libavcodec/x86/flacdsp.asm deleted file mode 100644 index 7138611526..0000000000 --- a/libavcodec/x86/flacdsp.asm +++ /dev/null @@ -1,313 +0,0 @@ -;****************************************************************************** -;* FLAC DSP SIMD optimizations -;* -;* Copyright (C) 2014 Loren Merritt -;* Copyright (C) 2014 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro PMACSDQL 5 -%if cpuflag(xop) - pmacsdql %1, %2, %3, %1 -%else - pmuldq %2, %3 - paddq %1, %2 -%endif -%endmacro - -%macro LPC_32 1 -INIT_XMM %1 -cglobal flac_lpc_32, 5,6,5, decoded, coeffs, pred_order, qlevel, len, j - sub lend, pred_orderd - jle .ret - lea decodedq, [decodedq+pred_orderq*4-8] - lea coeffsq, [coeffsq+pred_orderq*4] - neg pred_orderq - movd m4, qlevelm -ALIGN 16 -.loop_sample: - movd m0, [decodedq+pred_orderq*4+8] - add decodedq, 8 - movd m1, [coeffsq+pred_orderq*4] - pxor m2, m2 - pxor m3, m3 - lea jq, [pred_orderq+1] - test jq, jq - jz .end_order -.loop_order: - PMACSDQL m2, m0, m1, m2, m0 - movd m0, [decodedq+jq*4] - PMACSDQL m3, m1, m0, m3, m1 - movd m1, [coeffsq+jq*4] - inc jq - jl .loop_order -.end_order: - PMACSDQL m2, m0, m1, m2, m0 - psrlq m2, m4 - movd m0, [decodedq] - paddd m0, m2 - movd [decodedq], m0 - sub lend, 2 - jl .ret - PMACSDQL m3, m1, m0, m3, m1 - psrlq m3, m4 - movd m1, [decodedq+4] - paddd m1, m3 - movd [decodedq+4], m1 - jg .loop_sample -.ret: - REP_RET -%endmacro - -%if HAVE_XOP_EXTERNAL -LPC_32 xop -%endif -LPC_32 sse4 - -;---------------------------------------------------------------------------------- -;void ff_flac_decorrelate_[lrm]s_16_sse2(uint8_t **out, int32_t **in, int channels, -; int len, int shift); -;---------------------------------------------------------------------------------- -%macro FLAC_DECORRELATE_16 3-4 -cglobal flac_decorrelate_%1_16, 2, 4, 4, out, in0, in1, len -%if ARCH_X86_32 - mov lend, lenm -%endif - movd m3, r4m - shl lend, 2 - mov in1q, [in0q + gprsize] - mov in0q, [in0q] - mov outq, [outq] - add in1q, lenq - add in0q, lenq - add outq, lenq - neg lenq - -align 16 -.loop: - mova m0, [in0q + lenq] - mova m1, [in1q + lenq] -%ifidn %1, ms - psrad m2, m1, 1 - psubd m0, m2 -%endif -%ifnidn %1, indep2 - p%4d m2, m0, m1 -%endif - packssdw m%2, m%2 - packssdw m%3, m%3 - punpcklwd m%2, m%3 - psllw m%2, m3 - mova [outq + lenq], m%2 - add lenq, 16 - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -FLAC_DECORRELATE_16 ls, 0, 2, sub -FLAC_DECORRELATE_16 rs, 2, 1, add -FLAC_DECORRELATE_16 ms, 2, 0, add - -;---------------------------------------------------------------------------------- -;void ff_flac_decorrelate_[lrm]s_32_sse2(uint8_t **out, int32_t **in, int channels, -; int len, int shift); -;---------------------------------------------------------------------------------- -%macro FLAC_DECORRELATE_32 5 -cglobal flac_decorrelate_%1_32, 2, 4, 4, out, in0, in1, len -%if ARCH_X86_32 - mov lend, lenm -%endif - movd m3, r4m - mov in1q, [in0q + gprsize] - mov in0q, [in0q] - mov outq, [outq] - sub in1q, in0q - -align 16 -.loop: - mova m0, [in0q] - mova m1, [in0q + in1q] -%ifidn %1, ms - psrad m2, m1, 1 - psubd m0, m2 -%endif - p%5d m2, m0, m1 - pslld m%2, m3 - pslld m%3, m3 - - SBUTTERFLY dq, %2, %3, %4 - - mova [outq ], m%2 - mova [outq + mmsize], m%3 - - add in0q, mmsize - add outq, mmsize*2 - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -FLAC_DECORRELATE_32 ls, 0, 2, 1, sub -FLAC_DECORRELATE_32 rs, 2, 1, 0, add -FLAC_DECORRELATE_32 ms, 2, 0, 1, add - -;----------------------------------------------------------------------------------------- -;void ff_flac_decorrelate_indep__(uint8_t **out, int32_t **in, int channels, -; int len, int shift); -;----------------------------------------------------------------------------------------- -;%1 = bps -;%2 = channels -;%3 = last xmm reg used -;%4 = word/dword (shift instruction) -%macro FLAC_DECORRELATE_INDEP 4 -%define REPCOUNT %2/(32/%1) ; 16bits = channels / 2; 32bits = channels -cglobal flac_decorrelate_indep%2_%1, 2, %2+2, %3+1, out, in0, in1, len, in2, in3, in4, in5, in6, in7 -%if ARCH_X86_32 -%if %2 == 6 - DEFINE_ARGS out, in0, in1, in2, in3, in4, in5 - %define lend dword r3m -%else - mov lend, lenm -%endif -%endif - movd m%3, r4m - -%assign %%i 1 -%rep %2-1 - mov in %+ %%i %+ q, [in0q+%%i*gprsize] -%assign %%i %%i+1 -%endrep - - mov in0q, [in0q] - mov outq, [outq] - -%assign %%i 1 -%rep %2-1 - sub in %+ %%i %+ q, in0q -%assign %%i %%i+1 -%endrep - -align 16 -.loop: - mova m0, [in0q] - -%assign %%i 1 -%rep REPCOUNT-1 - mova m %+ %%i, [in0q + in %+ %%i %+ q] -%assign %%i %%i+1 -%endrep - -%if %1 == 32 - -%if %2 == 8 - TRANSPOSE8x4D 0, 1, 2, 3, 4, 5, 6, 7, 8 -%elif %2 == 6 - SBUTTERFLY dq, 0, 1, 6 - SBUTTERFLY dq, 2, 3, 6 - SBUTTERFLY dq, 4, 5, 6 - - punpcklqdq m6, m0, m2 - punpckhqdq m2, m4 - shufps m4, m0, 0xe4 - punpcklqdq m0, m1, m3 - punpckhqdq m3, m5 - shufps m5, m1, 0xe4 - SWAP 0,6,1,4,5,3 -%elif %2 == 4 - TRANSPOSE4x4D 0, 1, 2, 3, 4 -%else ; %2 == 2 - SBUTTERFLY dq, 0, 1, 2 -%endif - -%else ; %1 == 16 - -%if %2 == 8 - packssdw m0, [in0q + in4q] - packssdw m1, [in0q + in5q] - packssdw m2, [in0q + in6q] - packssdw m3, [in0q + in7q] - TRANSPOSE2x4x4W 0, 1, 2, 3, 4 -%elif %2 == 6 - packssdw m0, [in0q + in3q] - packssdw m1, [in0q + in4q] - packssdw m2, [in0q + in5q] - pshufd m3, m0, q1032 - punpcklwd m0, m1 - punpckhwd m1, m2 - punpcklwd m2, m3 - - shufps m3, m0, m2, q2020 - shufps m0, m1, q2031 - shufps m2, m1, q3131 - shufps m1, m2, m3, q3120 - shufps m3, m0, q0220 - shufps m0, m2, q3113 - SWAP 2, 0, 3 -%else ; %2 == 4 - packssdw m0, [in0q + in2q] - packssdw m1, [in0q + in3q] - SBUTTERFLY wd, 0, 1, 2 - SBUTTERFLY dq, 0, 1, 2 -%endif - -%endif - -%assign %%i 0 -%rep REPCOUNT - psll%4 m %+ %%i, m%3 -%assign %%i %%i+1 -%endrep - -%assign %%i 0 -%rep REPCOUNT - mova [outq + %%i*mmsize], m %+ %%i -%assign %%i %%i+1 -%endrep - - add in0q, mmsize - add outq, mmsize*REPCOUNT - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -FLAC_DECORRELATE_16 indep2, 0, 1 ; Reuse stereo 16bits macro -FLAC_DECORRELATE_INDEP 32, 2, 3, d -FLAC_DECORRELATE_INDEP 16, 4, 3, w -FLAC_DECORRELATE_INDEP 32, 4, 5, d -FLAC_DECORRELATE_INDEP 16, 6, 4, w -FLAC_DECORRELATE_INDEP 32, 6, 7, d -%if ARCH_X86_64 -FLAC_DECORRELATE_INDEP 16, 8, 5, w -FLAC_DECORRELATE_INDEP 32, 8, 9, d -%endif - -INIT_XMM avx -FLAC_DECORRELATE_INDEP 32, 4, 5, d -FLAC_DECORRELATE_INDEP 32, 6, 7, d -%if ARCH_X86_64 -FLAC_DECORRELATE_INDEP 16, 8, 5, w -FLAC_DECORRELATE_INDEP 32, 8, 9, d -%endif diff --git a/libavcodec/x86/fmtconvert.asm b/libavcodec/x86/fmtconvert.asm deleted file mode 100644 index 8f62a0a093..0000000000 --- a/libavcodec/x86/fmtconvert.asm +++ /dev/null @@ -1,124 +0,0 @@ -;****************************************************************************** -;* x86 optimized Format Conversion Utils -;* Copyright (c) 2008 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_int32_to_float_fmul_scalar(float *dst, const int32_t *src, float mul, -; int len); -;------------------------------------------------------------------------------ -%macro INT32_TO_FLOAT_FMUL_SCALAR 1 -%if UNIX64 -cglobal int32_to_float_fmul_scalar, 3, 3, %1, dst, src, len -%else -cglobal int32_to_float_fmul_scalar, 4, 4, %1, dst, src, mul, len -%endif -%if WIN64 - SWAP 0, 2 -%elif ARCH_X86_32 - movss m0, mulm -%endif - SPLATD m0 - shl lend, 2 - add srcq, lenq - add dstq, lenq - neg lenq -.loop: -%if cpuflag(sse2) - cvtdq2ps m1, [srcq+lenq ] - cvtdq2ps m2, [srcq+lenq+16] -%else - cvtpi2ps m1, [srcq+lenq ] - cvtpi2ps m3, [srcq+lenq+ 8] - cvtpi2ps m2, [srcq+lenq+16] - cvtpi2ps m4, [srcq+lenq+24] - movlhps m1, m3 - movlhps m2, m4 -%endif - mulps m1, m0 - mulps m2, m0 - mova [dstq+lenq ], m1 - mova [dstq+lenq+16], m2 - add lenq, 32 - jl .loop -%if notcpuflag(sse2) - ;; cvtpi2ps switches to MMX even if the source is a memory location - ;; possible an error in documentation since every tested CPU disagrees with - ;; that. Use emms anyway since the vast majority of machines will use the - ;; SSE2 variant - emms -%endif - RET -%endmacro - -INIT_XMM sse -INT32_TO_FLOAT_FMUL_SCALAR 5 -INIT_XMM sse2 -INT32_TO_FLOAT_FMUL_SCALAR 3 - -;------------------------------------------------------------------------------ -; void ff_int32_to_float_fmul_array8(FmtConvertContext *c, float *dst, const int32_t *src, -; const float *mul, int len); -;------------------------------------------------------------------------------ -%macro INT32_TO_FLOAT_FMUL_ARRAY8 0 -cglobal int32_to_float_fmul_array8, 5, 5, 5, c, dst, src, mul, len - shl lend, 2 - add srcq, lenq - add dstq, lenq - neg lenq -.loop: - movss m0, [mulq] - SPLATD m0 -%if cpuflag(sse2) - cvtdq2ps m1, [srcq+lenq ] - cvtdq2ps m2, [srcq+lenq+16] -%else - cvtpi2ps m1, [srcq+lenq ] - cvtpi2ps m3, [srcq+lenq+ 8] - cvtpi2ps m2, [srcq+lenq+16] - cvtpi2ps m4, [srcq+lenq+24] - movlhps m1, m3 - movlhps m2, m4 -%endif - mulps m1, m0 - mulps m2, m0 - mova [dstq+lenq ], m1 - mova [dstq+lenq+16], m2 - add mulq, 4 - add lenq, 32 - jl .loop -%if notcpuflag(sse2) - ;; cvtpi2ps switches to MMX even if the source is a memory location - ;; possible an error in documentation since every tested CPU disagrees with - ;; that. Use emms anyway since the vast majority of machines will use the - ;; SSE2 variant - emms -%endif - RET -%endmacro - -INIT_XMM sse -INT32_TO_FLOAT_FMUL_ARRAY8 -INIT_XMM sse2 -INT32_TO_FLOAT_FMUL_ARRAY8 - diff --git a/libavcodec/x86/fpel.asm b/libavcodec/x86/fpel.asm deleted file mode 100644 index 961a1587a7..0000000000 --- a/libavcodec/x86/fpel.asm +++ /dev/null @@ -1,106 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized fullpel functions -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2003-2013 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro PAVGB_MMX 4 - LOAD %3, %1 - por %3, %2 - pxor %2, %1 - pand %2, %4 - psrlq %2, 1 - psubb %3, %2 - SWAP %2, %3 -%endmacro - -; void ff_put/avg_pixels(uint8_t *block, const uint8_t *pixels, -; ptrdiff_t line_size, int h) -%macro OP_PIXELS 2 -%if %2 == mmsize/2 -%define LOAD movh -%define SAVE movh -%define LEN mmsize -%else -%define LOAD movu -%define SAVE mova -%define LEN %2 -%endif -cglobal %1_pixels%2, 4,5,4 - lea r4, [r2*3] -%ifidn %1, avg -%if notcpuflag(mmxext) - pcmpeqd m6, m6 - paddb m6, m6 -%endif -%endif -.loop: -%assign %%i 0 -%rep LEN/mmsize - LOAD m0, [r1 + %%i] - LOAD m1, [r1+r2 + %%i] - LOAD m2, [r1+r2*2 + %%i] - LOAD m3, [r1+r4 + %%i] -%ifidn %1, avg -%if notcpuflag(mmxext) - PAVGB_MMX [r0 + %%i], m0, m4, m6 - PAVGB_MMX [r0+r2 + %%i], m1, m5, m6 - PAVGB_MMX [r0+r2*2 + %%i], m2, m4, m6 - PAVGB_MMX [r0+r4 + %%i], m3, m5, m6 -%else - pavgb m0, [r0 + %%i] - pavgb m1, [r0+r2 + %%i] - pavgb m2, [r0+r2*2 + %%i] - pavgb m3, [r0+r4 + %%i] -%endif -%endif - SAVE [r0 + %%i], m0 - SAVE [r0+r2 + %%i], m1 - SAVE [r0+r2*2 + %%i], m2 - SAVE [r0+r4 + %%i], m3 -%assign %%i %%i+mmsize -%endrep - sub r3d, 4 - lea r1, [r1+r2*4] - lea r0, [r0+r2*4] - jne .loop - RET -%endmacro - -INIT_MMX mmx -OP_PIXELS put, 4 -OP_PIXELS avg, 4 -OP_PIXELS put, 8 -OP_PIXELS avg, 8 -OP_PIXELS put, 16 -OP_PIXELS avg, 16 - -INIT_MMX mmxext -OP_PIXELS avg, 4 -OP_PIXELS avg, 8 -OP_PIXELS avg, 16 - -INIT_XMM sse2 -OP_PIXELS put, 16 -OP_PIXELS avg, 16 diff --git a/libavcodec/x86/g722dsp.asm b/libavcodec/x86/g722dsp.asm deleted file mode 100644 index a529422262..0000000000 --- a/libavcodec/x86/g722dsp.asm +++ /dev/null @@ -1,54 +0,0 @@ -;****************************************************************************** -;* SIMD optimized DSP functions for G722 coding -;* -;* Copyright (c) 2014 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_qmf_coeffs: dw 3, -210, -11, -805, -11, 951, 53, 3876 -pw_qmf_coeffs2: dw 12, 3876, -156, 951, 32, -805, 362, -210 -pw_qmf_coeffs3: dw 362, 0 , 32, 0, -156, 0, 12, 0 -pw_qmf_coeffs4: dw 53, 0, -11, 0, -11, 0, 3, 0 - -SECTION .text - -INIT_XMM sse2 -cglobal g722_apply_qmf, 2, 2, 5, prev, out - movu m0, [prevq+mmsize*0] - movu m1, [prevq+mmsize*1] - movu m2, [prevq+mmsize*2] - punpcklwd m3, m0, m1 - punpckhwd m0, m1 - punpcklwd m4, m2, m2 - punpckhwd m2, m2 - pmaddwd m3, [pw_qmf_coeffs ] - pmaddwd m0, [pw_qmf_coeffs2] - pmaddwd m4, [pw_qmf_coeffs3] - pmaddwd m2, [pw_qmf_coeffs4] - paddd m0, m3 - paddd m2, m4 - paddd m0, m2 - pshufd m2, m0, q0032 - paddd m0, m2 - pshufd m0, m0, q0001 - movq [outq], m0 - RET diff --git a/libavcodec/x86/h263_loopfilter.asm b/libavcodec/x86/h263_loopfilter.asm deleted file mode 100644 index 77c8cf154d..0000000000 --- a/libavcodec/x86/h263_loopfilter.asm +++ /dev/null @@ -1,189 +0,0 @@ -;****************************************************************************** -;* MMX-optimized H.263 loop filter -;* Copyright (c) 2003-2013 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -cextern pb_FC -cextern h263_loop_filter_strength - -SECTION .text - -%macro H263_LOOP_FILTER 5 - pxor m7, m7 - mova m0, [%1] - mova m1, [%1] - mova m2, [%4] - mova m3, [%4] - punpcklbw m0, m7 - punpckhbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - psubw m0, m2 - psubw m1, m3 - mova m2, [%2] - mova m3, [%2] - mova m4, [%3] - mova m5, [%3] - punpcklbw m2, m7 - punpckhbw m3, m7 - punpcklbw m4, m7 - punpckhbw m5, m7 - psubw m4, m2 - psubw m5, m3 - psllw m4, 2 - psllw m5, 2 - paddw m4, m0 - paddw m5, m1 - pxor m6, m6 - pcmpgtw m6, m4 - pcmpgtw m7, m5 - pxor m4, m6 - pxor m5, m7 - psubw m4, m6 - psubw m5, m7 - psrlw m4, 3 - psrlw m5, 3 - packuswb m4, m5 - packsswb m6, m7 - pxor m7, m7 - movd m2, %5 - punpcklbw m2, m2 - punpcklbw m2, m2 - punpcklbw m2, m2 - psubusb m2, m4 - mova m3, m2 - psubusb m3, m4 - psubb m2, m3 - mova m3, [%2] - mova m4, [%3] - pxor m3, m6 - pxor m4, m6 - paddusb m3, m2 - psubusb m4, m2 - pxor m3, m6 - pxor m4, m6 - paddusb m2, m2 - packsswb m0, m1 - pcmpgtb m7, m0 - pxor m0, m7 - psubb m0, m7 - mova m1, m0 - psubusb m0, m2 - psubb m1, m0 - pand m1, [pb_FC] - psrlw m1, 2 - pxor m1, m7 - psubb m1, m7 - mova m5, [%1] - mova m6, [%4] - psubb m5, m1 - paddb m6, m1 -%endmacro - -INIT_MMX mmx -; void ff_h263_v_loop_filter_mmx(uint8_t *src, int stride, int qscale) -cglobal h263_v_loop_filter, 3,5 - movsxdifnidn r1, r1d - movsxdifnidn r2, r2d - - lea r4, [h263_loop_filter_strength] - movzx r3d, BYTE [r4+r2] - movsx r2, r3b - shl r2, 1 - - mov r3, r0 - sub r3, r1 - mov r4, r3 - sub r4, r1 - H263_LOOP_FILTER r4, r3, r0, r0+r1, r2d - - mova [r3], m3 - mova [r0], m4 - mova [r4], m5 - mova [r0+r1], m6 - RET - -%macro TRANSPOSE4X4 2 - movd m0, [%1] - movd m1, [%1+r1] - movd m2, [%1+r1*2] - movd m3, [%1+r3] - punpcklbw m0, m1 - punpcklbw m2, m3 - mova m1, m0 - punpcklwd m0, m2 - punpckhwd m1, m2 - movd [%2+ 0], m0 - punpckhdq m0, m0 - movd [%2+ 8], m0 - movd [%2+16], m1 - punpckhdq m1, m1 - movd [%2+24], m1 -%endmacro - - -; void ff_h263_h_loop_filter_mmx(uint8_t *src, int stride, int qscale) -INIT_MMX mmx -cglobal h263_h_loop_filter, 3,5,0,32 - movsxdifnidn r1, r1d - movsxdifnidn r2, r2d - - lea r4, [h263_loop_filter_strength] - movzx r3d, BYTE [r4+r2] - movsx r2, r3b - shl r2, 1 - - sub r0, 2 - lea r3, [r1*3] - - TRANSPOSE4X4 r0, rsp - lea r4, [r0+r1*4] - TRANSPOSE4X4 r4, rsp+4 - - H263_LOOP_FILTER rsp, rsp+8, rsp+16, rsp+24, r2d - - mova m1, m5 - mova m0, m4 - punpcklbw m5, m3 - punpcklbw m4, m6 - punpckhbw m1, m3 - punpckhbw m0, m6 - mova m3, m5 - mova m6, m1 - punpcklwd m5, m4 - punpcklwd m1, m0 - punpckhwd m3, m4 - punpckhwd m6, m0 - movd [r0], m5 - punpckhdq m5, m5 - movd [r0+r1*1], m5 - movd [r0+r1*2], m3 - punpckhdq m3, m3 - movd [r0+r3], m3 - movd [r4], m1 - punpckhdq m1, m1 - movd [r4+r1*1], m1 - movd [r4+r1*2], m6 - punpckhdq m6, m6 - movd [r4+r3], m6 - RET diff --git a/libavcodec/x86/h264_chromamc.asm b/libavcodec/x86/h264_chromamc.asm deleted file mode 100644 index b5a78b537d..0000000000 --- a/libavcodec/x86/h264_chromamc.asm +++ /dev/null @@ -1,663 +0,0 @@ -;****************************************************************************** -;* MMX/SSSE3-optimized functions for H.264 chroma MC -;* Copyright (c) 2005 Zoltan Hidvegi , -;* 2005-2008 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -rnd_rv40_2d_tbl: times 4 dw 0 - times 4 dw 16 - times 4 dw 32 - times 4 dw 16 - times 4 dw 32 - times 4 dw 28 - times 4 dw 32 - times 4 dw 28 - times 4 dw 0 - times 4 dw 32 - times 4 dw 16 - times 4 dw 32 - times 4 dw 32 - times 4 dw 28 - times 4 dw 32 - times 4 dw 28 -rnd_rv40_1d_tbl: times 4 dw 0 - times 4 dw 2 - times 4 dw 4 - times 4 dw 2 - times 4 dw 4 - times 4 dw 3 - times 4 dw 4 - times 4 dw 3 - times 4 dw 0 - times 4 dw 4 - times 4 dw 2 - times 4 dw 4 - times 4 dw 4 - times 4 dw 3 - times 4 dw 4 - times 4 dw 3 - -cextern pw_3 -cextern pw_4 -cextern pw_8 -pw_28: times 8 dw 28 -cextern pw_32 -cextern pw_64 - -SECTION .text - -%macro mv0_pixels_mc8 0 - lea r4, [r2*2 ] -.next4rows: - movq mm0, [r1 ] - movq mm1, [r1+r2] - add r1, r4 - CHROMAMC_AVG mm0, [r0 ] - CHROMAMC_AVG mm1, [r0+r2] - movq [r0 ], mm0 - movq [r0+r2], mm1 - add r0, r4 - movq mm0, [r1 ] - movq mm1, [r1+r2] - add r1, r4 - CHROMAMC_AVG mm0, [r0 ] - CHROMAMC_AVG mm1, [r0+r2] - movq [r0 ], mm0 - movq [r0+r2], mm1 - add r0, r4 - sub r3d, 4 - jne .next4rows -%endmacro - -%macro chroma_mc8_mmx_func 2-3 -%ifidn %2, rv40 -%ifdef PIC -%define rnd_1d_rv40 r8 -%define rnd_2d_rv40 r8 -%define extra_regs 2 -%else ; no-PIC -%define rnd_1d_rv40 rnd_rv40_1d_tbl -%define rnd_2d_rv40 rnd_rv40_2d_tbl -%define extra_regs 1 -%endif ; PIC -%else -%define extra_regs 0 -%endif ; rv40 -; void ff_put/avg_h264_chroma_mc8_*(uint8_t *dst /* align 8 */, -; uint8_t *src /* align 1 */, -; ptrdiff_t stride, int h, int mx, int my) -cglobal %1_%2_chroma_mc8%3, 6, 7 + extra_regs, 0 - mov r6d, r5d - or r6d, r4d - jne .at_least_one_non_zero - ; mx == 0 AND my == 0 - no filter needed - mv0_pixels_mc8 - REP_RET - -.at_least_one_non_zero: -%ifidn %2, rv40 -%if ARCH_X86_64 - mov r7, r5 - and r7, 6 ; &~1 for mx/my=[0,7] - lea r7, [r7*4+r4] - sar r7d, 1 -%define rnd_bias r7 -%define dest_reg r0 -%else ; x86-32 - mov r0, r5 - and r0, 6 ; &~1 for mx/my=[0,7] - lea r0, [r0*4+r4] - sar r0d, 1 -%define rnd_bias r0 -%define dest_reg r5 -%endif -%else ; vc1, h264 -%define rnd_bias 0 -%define dest_reg r0 -%endif - - test r5d, r5d - mov r6, 1 - je .my_is_zero - test r4d, r4d - mov r6, r2 ; dxy = x ? 1 : stride - jne .both_non_zero -.my_is_zero: - ; mx == 0 XOR my == 0 - 1 dimensional filter only - or r4d, r5d ; x + y - -%ifidn %2, rv40 -%ifdef PIC - lea r8, [rnd_rv40_1d_tbl] -%endif -%if ARCH_X86_64 == 0 - mov r5, r0m -%endif -%endif - - movd m5, r4d - movq m4, [pw_8] - movq m6, [rnd_1d_%2+rnd_bias*8] ; mm6 = rnd >> 3 - punpcklwd m5, m5 - punpckldq m5, m5 ; mm5 = B = x - pxor m7, m7 - psubw m4, m5 ; mm4 = A = 8-x - -.next1drow: - movq m0, [r1 ] ; mm0 = src[0..7] - movq m2, [r1+r6] ; mm1 = src[1..8] - - movq m1, m0 - movq m3, m2 - punpcklbw m0, m7 - punpckhbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - pmullw m0, m4 ; [mm0,mm1] = A * src[0..7] - pmullw m1, m4 - pmullw m2, m5 ; [mm2,mm3] = B * src[1..8] - pmullw m3, m5 - - paddw m0, m6 - paddw m1, m6 - paddw m0, m2 - paddw m1, m3 - psrlw m0, 3 - psrlw m1, 3 - packuswb m0, m1 - CHROMAMC_AVG m0, [dest_reg] - movq [dest_reg], m0 ; dst[0..7] = (A * src[0..7] + B * src[1..8] + (rnd >> 3)) >> 3 - - add dest_reg, r2 - add r1, r2 - dec r3d - jne .next1drow - REP_RET - -.both_non_zero: ; general case, bilinear - movd m4, r4d ; x - movd m6, r5d ; y -%ifidn %2, rv40 -%ifdef PIC - lea r8, [rnd_rv40_2d_tbl] -%endif -%if ARCH_X86_64 == 0 - mov r5, r0m -%endif -%endif - mov r6, rsp ; backup stack pointer - and rsp, ~(mmsize-1) ; align stack - sub rsp, 16 ; AA and DD - - punpcklwd m4, m4 - punpcklwd m6, m6 - punpckldq m4, m4 ; mm4 = x words - punpckldq m6, m6 ; mm6 = y words - movq m5, m4 - pmullw m4, m6 ; mm4 = x * y - psllw m5, 3 - psllw m6, 3 - movq m7, m5 - paddw m7, m6 - movq [rsp+8], m4 ; DD = x * y - psubw m5, m4 ; mm5 = B = 8x - xy - psubw m6, m4 ; mm6 = C = 8y - xy - paddw m4, [pw_64] - psubw m4, m7 ; mm4 = A = xy - (8x+8y) + 64 - pxor m7, m7 - movq [rsp ], m4 - - movq m0, [r1 ] ; mm0 = src[0..7] - movq m1, [r1+1] ; mm1 = src[1..8] -.next2drow: - add r1, r2 - - movq m2, m0 - movq m3, m1 - punpckhbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - pmullw m0, [rsp] - pmullw m2, [rsp] - pmullw m1, m5 - pmullw m3, m5 - paddw m2, m1 ; mm2 = A * src[0..3] + B * src[1..4] - paddw m3, m0 ; mm3 = A * src[4..7] + B * src[5..8] - - movq m0, [r1] - movq m1, m0 - punpcklbw m0, m7 - punpckhbw m1, m7 - pmullw m0, m6 - pmullw m1, m6 - paddw m2, m0 - paddw m3, m1 ; [mm2,mm3] += C * src[0..7] - - movq m1, [r1+1] - movq m0, m1 - movq m4, m1 - punpcklbw m0, m7 - punpckhbw m4, m7 - pmullw m0, [rsp+8] - pmullw m4, [rsp+8] - paddw m2, m0 - paddw m3, m4 ; [mm2,mm3] += D * src[1..8] - movq m0, [r1] - - paddw m2, [rnd_2d_%2+rnd_bias*8] - paddw m3, [rnd_2d_%2+rnd_bias*8] - psrlw m2, 6 - psrlw m3, 6 - packuswb m2, m3 - CHROMAMC_AVG m2, [dest_reg] - movq [dest_reg], m2 ; dst[0..7] = ([mm2,mm3] + rnd) >> 6 - - add dest_reg, r2 - dec r3d - jne .next2drow - mov rsp, r6 ; restore stack pointer - RET -%endmacro - -%macro chroma_mc4_mmx_func 2 -%define extra_regs 0 -%ifidn %2, rv40 -%ifdef PIC -%define extra_regs 1 -%endif ; PIC -%endif ; rv40 -cglobal %1_%2_chroma_mc4, 6, 6 + extra_regs, 0 - pxor m7, m7 - movd m2, r4d ; x - movd m3, r5d ; y - movq m4, [pw_8] - movq m5, [pw_8] - punpcklwd m2, m2 - punpcklwd m3, m3 - punpcklwd m2, m2 - punpcklwd m3, m3 - psubw m4, m2 - psubw m5, m3 - -%ifidn %2, rv40 -%ifdef PIC - lea r6, [rnd_rv40_2d_tbl] -%define rnd_2d_rv40 r6 -%else -%define rnd_2d_rv40 rnd_rv40_2d_tbl -%endif - and r5, 6 ; &~1 for mx/my=[0,7] - lea r5, [r5*4+r4] - sar r5d, 1 -%define rnd_bias r5 -%else ; vc1, h264 -%define rnd_bias 0 -%endif - - movd m0, [r1 ] - movd m6, [r1+1] - add r1, r2 - punpcklbw m0, m7 - punpcklbw m6, m7 - pmullw m0, m4 - pmullw m6, m2 - paddw m6, m0 - -.next2rows: - movd m0, [r1 ] - movd m1, [r1+1] - add r1, r2 - punpcklbw m0, m7 - punpcklbw m1, m7 - pmullw m0, m4 - pmullw m1, m2 - paddw m1, m0 - movq m0, m1 - - pmullw m6, m5 - pmullw m1, m3 - paddw m6, [rnd_2d_%2+rnd_bias*8] - paddw m1, m6 - psrlw m1, 6 - packuswb m1, m1 - CHROMAMC_AVG4 m1, m6, [r0] - movd [r0], m1 - add r0, r2 - - movd m6, [r1 ] - movd m1, [r1+1] - add r1, r2 - punpcklbw m6, m7 - punpcklbw m1, m7 - pmullw m6, m4 - pmullw m1, m2 - paddw m1, m6 - movq m6, m1 - pmullw m0, m5 - pmullw m1, m3 - paddw m0, [rnd_2d_%2+rnd_bias*8] - paddw m1, m0 - psrlw m1, 6 - packuswb m1, m1 - CHROMAMC_AVG4 m1, m0, [r0] - movd [r0], m1 - add r0, r2 - sub r3d, 2 - jnz .next2rows - REP_RET -%endmacro - -%macro chroma_mc2_mmx_func 2 -cglobal %1_%2_chroma_mc2, 6, 7, 0 - mov r6d, r4d - shl r4d, 16 - sub r4d, r6d - add r4d, 8 - imul r5d, r4d ; x*y<<16 | y*(8-x) - shl r4d, 3 - sub r4d, r5d ; x*(8-y)<<16 | (8-x)*(8-y) - - movd m5, r4d - movd m6, r5d - punpckldq m5, m5 ; mm5 = {A,B,A,B} - punpckldq m6, m6 ; mm6 = {C,D,C,D} - pxor m7, m7 - movd m2, [r1] - punpcklbw m2, m7 - pshufw m2, m2, 0x94 ; mm0 = src[0,1,1,2] - -.nextrow: - add r1, r2 - movq m1, m2 - pmaddwd m1, m5 ; mm1 = A * src[0,1] + B * src[1,2] - movd m0, [r1] - punpcklbw m0, m7 - pshufw m0, m0, 0x94 ; mm0 = src[0,1,1,2] - movq m2, m0 - pmaddwd m0, m6 - paddw m1, [rnd_2d_%2] - paddw m1, m0 ; mm1 += C * src[0,1] + D * src[1,2] - psrlw m1, 6 - packssdw m1, m7 - packuswb m1, m7 - CHROMAMC_AVG4 m1, m3, [r0] - movd r5d, m1 - mov [r0], r5w - add r0, r2 - sub r3d, 1 - jnz .nextrow - REP_RET -%endmacro - -%define rnd_1d_h264 pw_4 -%define rnd_2d_h264 pw_32 -%define rnd_1d_vc1 pw_3 -%define rnd_2d_vc1 pw_28 - -%macro NOTHING 2-3 -%endmacro -%macro DIRECT_AVG 2 - PAVGB %1, %2 -%endmacro -%macro COPY_AVG 3 - movd %2, %3 - PAVGB %1, %2 -%endmacro - -INIT_MMX mmx -%define CHROMAMC_AVG NOTHING -%define CHROMAMC_AVG4 NOTHING -chroma_mc8_mmx_func put, h264, _rnd -chroma_mc8_mmx_func put, vc1, _nornd -chroma_mc8_mmx_func put, rv40 -chroma_mc4_mmx_func put, h264 -chroma_mc4_mmx_func put, rv40 - -INIT_MMX mmxext -chroma_mc2_mmx_func put, h264 - -%define CHROMAMC_AVG DIRECT_AVG -%define CHROMAMC_AVG4 COPY_AVG -chroma_mc8_mmx_func avg, h264, _rnd -chroma_mc8_mmx_func avg, vc1, _nornd -chroma_mc8_mmx_func avg, rv40 -chroma_mc4_mmx_func avg, h264 -chroma_mc4_mmx_func avg, rv40 -chroma_mc2_mmx_func avg, h264 - -INIT_MMX 3dnow -chroma_mc8_mmx_func avg, h264, _rnd -chroma_mc8_mmx_func avg, vc1, _nornd -chroma_mc8_mmx_func avg, rv40 -chroma_mc4_mmx_func avg, h264 -chroma_mc4_mmx_func avg, rv40 - -%macro chroma_mc8_ssse3_func 2-3 -cglobal %1_%2_chroma_mc8%3, 6, 7, 8 - mov r6d, r5d - or r6d, r4d - jne .at_least_one_non_zero - ; mx == 0 AND my == 0 - no filter needed - mv0_pixels_mc8 - REP_RET - -.at_least_one_non_zero: - test r5d, r5d - je .my_is_zero - test r4d, r4d - je .mx_is_zero - - ; general case, bilinear - mov r6d, r4d - shl r4d, 8 - sub r4, r6 - mov r6, 8 - add r4, 8 ; x*288+8 = x<<8 | (8-x) - sub r6d, r5d - imul r6, r4 ; (8-y)*(x*255+8) = (8-y)*x<<8 | (8-y)*(8-x) - imul r4d, r5d ; y *(x*255+8) = y *x<<8 | y *(8-x) - - movd m7, r6d - movd m6, r4d - movdqa m5, [rnd_2d_%2] - movq m0, [r1 ] - movq m1, [r1+1] - pshuflw m7, m7, 0 - pshuflw m6, m6, 0 - punpcklbw m0, m1 - movlhps m7, m7 - movlhps m6, m6 - -.next2rows: - movq m1, [r1+r2*1 ] - movq m2, [r1+r2*1+1] - movq m3, [r1+r2*2 ] - movq m4, [r1+r2*2+1] - lea r1, [r1+r2*2] - punpcklbw m1, m2 - movdqa m2, m1 - punpcklbw m3, m4 - movdqa m4, m3 - pmaddubsw m0, m7 - pmaddubsw m1, m6 - pmaddubsw m2, m7 - pmaddubsw m3, m6 - paddw m0, m5 - paddw m2, m5 - paddw m1, m0 - paddw m3, m2 - psrlw m1, 6 - movdqa m0, m4 - psrlw m3, 6 -%ifidn %1, avg - movq m2, [r0 ] - movhps m2, [r0+r2] -%endif - packuswb m1, m3 - CHROMAMC_AVG m1, m2 - movq [r0 ], m1 - movhps [r0+r2], m1 - sub r3d, 2 - lea r0, [r0+r2*2] - jg .next2rows - REP_RET - -.my_is_zero: - mov r5d, r4d - shl r4d, 8 - add r4, 8 - sub r4, r5 ; 255*x+8 = x<<8 | (8-x) - movd m7, r4d - movdqa m6, [rnd_1d_%2] - pshuflw m7, m7, 0 - movlhps m7, m7 - -.next2xrows: - movq m0, [r1 ] - movq m1, [r1 +1] - movq m2, [r1+r2 ] - movq m3, [r1+r2+1] - punpcklbw m0, m1 - punpcklbw m2, m3 - pmaddubsw m0, m7 - pmaddubsw m2, m7 -%ifidn %1, avg - movq m4, [r0 ] - movhps m4, [r0+r2] -%endif - paddw m0, m6 - paddw m2, m6 - psrlw m0, 3 - psrlw m2, 3 - packuswb m0, m2 - CHROMAMC_AVG m0, m4 - movq [r0 ], m0 - movhps [r0+r2], m0 - sub r3d, 2 - lea r0, [r0+r2*2] - lea r1, [r1+r2*2] - jg .next2xrows - REP_RET - -.mx_is_zero: - mov r4d, r5d - shl r5d, 8 - add r5, 8 - sub r5, r4 ; 255*y+8 = y<<8 | (8-y) - movd m7, r5d - movdqa m6, [rnd_1d_%2] - pshuflw m7, m7, 0 - movlhps m7, m7 - -.next2yrows: - movq m0, [r1 ] - movq m1, [r1+r2 ] - movdqa m2, m1 - movq m3, [r1+r2*2] - lea r1, [r1+r2*2] - punpcklbw m0, m1 - punpcklbw m2, m3 - pmaddubsw m0, m7 - pmaddubsw m2, m7 -%ifidn %1, avg - movq m4, [r0 ] - movhps m4, [r0+r2] -%endif - paddw m0, m6 - paddw m2, m6 - psrlw m0, 3 - psrlw m2, 3 - packuswb m0, m2 - CHROMAMC_AVG m0, m4 - movq [r0 ], m0 - movhps [r0+r2], m0 - sub r3d, 2 - lea r0, [r0+r2*2] - jg .next2yrows - REP_RET -%endmacro - -%macro chroma_mc4_ssse3_func 2 -cglobal %1_%2_chroma_mc4, 6, 7, 0 - mov r6, r4 - shl r4d, 8 - sub r4d, r6d - mov r6, 8 - add r4d, 8 ; x*288+8 - sub r6d, r5d - imul r6d, r4d ; (8-y)*(x*255+8) = (8-y)*x<<8 | (8-y)*(8-x) - imul r4d, r5d ; y *(x*255+8) = y *x<<8 | y *(8-x) - - movd m7, r6d - movd m6, r4d - movq m5, [pw_32] - movd m0, [r1 ] - pshufw m7, m7, 0 - punpcklbw m0, [r1+1] - pshufw m6, m6, 0 - -.next2rows: - movd m1, [r1+r2*1 ] - movd m3, [r1+r2*2 ] - punpcklbw m1, [r1+r2*1+1] - punpcklbw m3, [r1+r2*2+1] - lea r1, [r1+r2*2] - movq m2, m1 - movq m4, m3 - pmaddubsw m0, m7 - pmaddubsw m1, m6 - pmaddubsw m2, m7 - pmaddubsw m3, m6 - paddw m0, m5 - paddw m2, m5 - paddw m1, m0 - paddw m3, m2 - psrlw m1, 6 - movq m0, m4 - psrlw m3, 6 - packuswb m1, m1 - packuswb m3, m3 - CHROMAMC_AVG m1, [r0 ] - CHROMAMC_AVG m3, [r0+r2] - movd [r0 ], m1 - movd [r0+r2], m3 - sub r3d, 2 - lea r0, [r0+r2*2] - jg .next2rows - REP_RET -%endmacro - -%define CHROMAMC_AVG NOTHING -INIT_XMM ssse3 -chroma_mc8_ssse3_func put, h264, _rnd -chroma_mc8_ssse3_func put, vc1, _nornd -INIT_MMX ssse3 -chroma_mc4_ssse3_func put, h264 - -%define CHROMAMC_AVG DIRECT_AVG -INIT_XMM ssse3 -chroma_mc8_ssse3_func avg, h264, _rnd -chroma_mc8_ssse3_func avg, vc1, _nornd -INIT_MMX ssse3 -chroma_mc4_ssse3_func avg, h264 diff --git a/libavcodec/x86/h264_chromamc_10bit.asm b/libavcodec/x86/h264_chromamc_10bit.asm deleted file mode 100644 index 34bc41969b..0000000000 --- a/libavcodec/x86/h264_chromamc_10bit.asm +++ /dev/null @@ -1,269 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized 10-bit H.264 chroma MC code -;***************************************************************************** -;* Copyright (C) 2005-2011 x264 project -;* -;* Authors: Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pw_4 -cextern pw_8 -cextern pw_32 -cextern pw_64 - -SECTION .text - - -%macro MV0_PIXELS_MC8 0 - lea r4, [r2*3 ] - lea r5, [r2*4 ] -.next4rows: - movu m0, [r1 ] - movu m1, [r1+r2 ] - CHROMAMC_AVG m0, [r0 ] - CHROMAMC_AVG m1, [r0+r2 ] - mova [r0 ], m0 - mova [r0+r2 ], m1 - movu m0, [r1+r2*2] - movu m1, [r1+r4 ] - CHROMAMC_AVG m0, [r0+r2*2] - CHROMAMC_AVG m1, [r0+r4 ] - mova [r0+r2*2], m0 - mova [r0+r4 ], m1 - add r1, r5 - add r0, r5 - sub r3d, 4 - jne .next4rows -%endmacro - -;----------------------------------------------------------------------------- -; void ff_put/avg_h264_chroma_mc8(pixel *dst, pixel *src, ptrdiff_t stride, -; int h, int mx, int my) -;----------------------------------------------------------------------------- -%macro CHROMA_MC8 1 -cglobal %1_h264_chroma_mc8_10, 6,7,8 - mov r6d, r5d - or r6d, r4d - jne .at_least_one_non_zero - ; mx == 0 AND my == 0 - no filter needed - MV0_PIXELS_MC8 - REP_RET - -.at_least_one_non_zero: - mov r6d, 2 - test r5d, r5d - je .x_interpolation - mov r6, r2 ; dxy = x ? 1 : stride - test r4d, r4d - jne .xy_interpolation -.x_interpolation: - ; mx == 0 XOR my == 0 - 1 dimensional filter only - or r4d, r5d ; x + y - movd m5, r4d - mova m4, [pw_8] - mova m6, [pw_4] ; mm6 = rnd >> 3 - SPLATW m5, m5 ; mm5 = B = x - psubw m4, m5 ; mm4 = A = 8-x - -.next1drow: - movu m0, [r1 ] ; mm0 = src[0..7] - movu m2, [r1+r6] ; mm2 = src[1..8] - - pmullw m0, m4 ; mm0 = A * src[0..7] - pmullw m2, m5 ; mm2 = B * src[1..8] - - paddw m0, m6 - paddw m0, m2 - psrlw m0, 3 - CHROMAMC_AVG m0, [r0] - mova [r0], m0 ; dst[0..7] = (A * src[0..7] + B * src[1..8] + (rnd >> 3)) >> 3 - - add r0, r2 - add r1, r2 - dec r3d - jne .next1drow - REP_RET - -.xy_interpolation: ; general case, bilinear - movd m4, r4m ; x - movd m6, r5m ; y - - SPLATW m4, m4 ; mm4 = x words - SPLATW m6, m6 ; mm6 = y words - psllw m5, m4, 3 ; mm5 = 8x - pmullw m4, m6 ; mm4 = x * y - psllw m6, 3 ; mm6 = 8y - paddw m1, m5, m6 ; mm7 = 8x+8y - mova m7, m4 ; DD = x * y - psubw m5, m4 ; mm5 = B = 8x - xy - psubw m6, m4 ; mm6 = C = 8y - xy - paddw m4, [pw_64] - psubw m4, m1 ; mm4 = A = xy - (8x+8y) + 64 - - movu m0, [r1 ] ; mm0 = src[0..7] - movu m1, [r1+2] ; mm1 = src[1..8] -.next2drow: - add r1, r2 - - pmullw m2, m0, m4 - pmullw m1, m5 - paddw m2, m1 ; mm2 = A * src[0..7] + B * src[1..8] - - movu m0, [r1] - movu m1, [r1+2] - pmullw m3, m0, m6 - paddw m2, m3 ; mm2 += C * src[0..7+strde] - pmullw m3, m1, m7 - paddw m2, m3 ; mm2 += D * src[1..8+strde] - - paddw m2, [pw_32] - psrlw m2, 6 - CHROMAMC_AVG m2, [r0] - mova [r0], m2 ; dst[0..7] = (mm2 + 32) >> 6 - - add r0, r2 - dec r3d - jne .next2drow - REP_RET -%endmacro - -;----------------------------------------------------------------------------- -; void ff_put/avg_h264_chroma_mc4(pixel *dst, pixel *src, ptrdiff_t stride, -; int h, int mx, int my) -;----------------------------------------------------------------------------- -;TODO: xmm mc4 -%macro MC4_OP 2 - movq %1, [r1 ] - movq m1, [r1+2] - add r1, r2 - pmullw %1, m4 - pmullw m1, m2 - paddw m1, %1 - mova %1, m1 - - pmullw %2, m5 - pmullw m1, m3 - paddw %2, [pw_32] - paddw m1, %2 - psrlw m1, 6 - CHROMAMC_AVG m1, %2, [r0] - movq [r0], m1 - add r0, r2 -%endmacro - -%macro CHROMA_MC4 1 -cglobal %1_h264_chroma_mc4_10, 6,6,7 - movd m2, r4m ; x - movd m3, r5m ; y - mova m4, [pw_8] - mova m5, m4 - SPLATW m2, m2 - SPLATW m3, m3 - psubw m4, m2 - psubw m5, m3 - - movq m0, [r1 ] - movq m6, [r1+2] - add r1, r2 - pmullw m0, m4 - pmullw m6, m2 - paddw m6, m0 - -.next2rows: - MC4_OP m0, m6 - MC4_OP m6, m0 - sub r3d, 2 - jnz .next2rows - REP_RET -%endmacro - -;----------------------------------------------------------------------------- -; void ff_put/avg_h264_chroma_mc2(pixel *dst, pixel *src, ptrdiff_t stride, -; int h, int mx, int my) -;----------------------------------------------------------------------------- -%macro CHROMA_MC2 1 -cglobal %1_h264_chroma_mc2_10, 6,7 - mov r6d, r4d - shl r4d, 16 - sub r4d, r6d - add r4d, 8 - imul r5d, r4d ; x*y<<16 | y*(8-x) - shl r4d, 3 - sub r4d, r5d ; x*(8-y)<<16 | (8-x)*(8-y) - - movd m5, r4d - movd m6, r5d - punpckldq m5, m5 ; mm5 = {A,B,A,B} - punpckldq m6, m6 ; mm6 = {C,D,C,D} - pxor m7, m7 - pshufw m2, [r1], 0x94 ; mm0 = src[0,1,1,2] - -.nextrow: - add r1, r2 - movq m1, m2 - pmaddwd m1, m5 ; mm1 = A * src[0,1] + B * src[1,2] - pshufw m0, [r1], 0x94 ; mm0 = src[0,1,1,2] - movq m2, m0 - pmaddwd m0, m6 - paddw m1, [pw_32] - paddw m1, m0 ; mm1 += C * src[0,1] + D * src[1,2] - psrlw m1, 6 - packssdw m1, m7 - CHROMAMC_AVG m1, m3, [r0] - movd [r0], m1 - add r0, r2 - dec r3d - jnz .nextrow - REP_RET -%endmacro - -%macro NOTHING 2-3 -%endmacro -%macro AVG 2-3 -%if %0==3 - movq %2, %3 -%endif - pavgw %1, %2 -%endmacro - -%define CHROMAMC_AVG NOTHING -INIT_XMM sse2 -CHROMA_MC8 put -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CHROMA_MC8 put -%endif -INIT_MMX mmxext -CHROMA_MC4 put -CHROMA_MC2 put - -%define CHROMAMC_AVG AVG -INIT_XMM sse2 -CHROMA_MC8 avg -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CHROMA_MC8 avg -%endif -INIT_MMX mmxext -CHROMA_MC4 avg -CHROMA_MC2 avg diff --git a/libavcodec/x86/h264_deblock.asm b/libavcodec/x86/h264_deblock.asm deleted file mode 100644 index 6702ae98d4..0000000000 --- a/libavcodec/x86/h264_deblock.asm +++ /dev/null @@ -1,1420 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized H.264 deblocking code -;***************************************************************************** -;* Copyright (C) 2005-2011 x264 project -;* -;* Authors: Loren Merritt -;* Fiona Glaser -;* Oskar Arvidsson -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_A1: times 16 db 0xA1 -pb_3_1: times 4 db 3, 1 - -SECTION .text - -cextern pb_0 -cextern pb_1 -cextern pb_3 - -%define PASS8ROWS(base, base3, stride, stride3, offset) \ - PASS8ROWS(base+offset, base3+offset, stride, stride3) - -; in: 8 rows of 4 bytes in %4..%11 -; out: 4 rows of 8 bytes in m0..m3 -%macro TRANSPOSE4x8_LOAD 11 - movh m0, %4 - movh m2, %5 - movh m1, %6 - movh m3, %7 - punpckl%1 m0, m2 - punpckl%1 m1, m3 - mova m2, m0 - punpckl%2 m0, m1 - punpckh%2 m2, m1 - - movh m4, %8 - movh m6, %9 - movh m5, %10 - movh m7, %11 - punpckl%1 m4, m6 - punpckl%1 m5, m7 - mova m6, m4 - punpckl%2 m4, m5 - punpckh%2 m6, m5 - - punpckh%3 m1, m0, m4 - punpckh%3 m3, m2, m6 - punpckl%3 m0, m4 - punpckl%3 m2, m6 -%endmacro - -; in: 4 rows of 8 bytes in m0..m3 -; out: 8 rows of 4 bytes in %1..%8 -%macro TRANSPOSE8x4B_STORE 8 - punpckhdq m4, m0, m0 - punpckhdq m5, m1, m1 - punpckhdq m6, m2, m2 - - punpcklbw m0, m1 - punpcklbw m2, m3 - punpcklwd m1, m0, m2 - punpckhwd m0, m2 - movh %1, m1 - punpckhdq m1, m1 - movh %2, m1 - movh %3, m0 - punpckhdq m0, m0 - movh %4, m0 - - punpckhdq m3, m3 - punpcklbw m4, m5 - punpcklbw m6, m3 - punpcklwd m5, m4, m6 - punpckhwd m4, m6 - movh %5, m5 - punpckhdq m5, m5 - movh %6, m5 - movh %7, m4 - punpckhdq m4, m4 - movh %8, m4 -%endmacro - -%macro TRANSPOSE4x8B_LOAD 8 - TRANSPOSE4x8_LOAD bw, wd, dq, %1, %2, %3, %4, %5, %6, %7, %8 -%endmacro - -%macro SBUTTERFLY3 4 - punpckh%1 %4, %2, %3 - punpckl%1 %2, %3 -%endmacro - -; in: 8 rows of 8 (only the middle 6 pels are used) in %1..%8 -; out: 6 rows of 8 in [%9+0*16] .. [%9+5*16] -%macro TRANSPOSE6x8_MEM 9 - RESET_MM_PERMUTATION - movq m0, %1 - movq m1, %2 - movq m2, %3 - movq m3, %4 - movq m4, %5 - movq m5, %6 - movq m6, %7 - SBUTTERFLY bw, 0, 1, 7 - SBUTTERFLY bw, 2, 3, 7 - SBUTTERFLY bw, 4, 5, 7 - movq [%9+0x10], m3 - SBUTTERFLY3 bw, m6, %8, m7 - SBUTTERFLY wd, 0, 2, 3 - SBUTTERFLY wd, 4, 6, 3 - punpckhdq m0, m4 - movq [%9+0x00], m0 - SBUTTERFLY3 wd, m1, [%9+0x10], m3 - SBUTTERFLY wd, 5, 7, 0 - SBUTTERFLY dq, 1, 5, 0 - SBUTTERFLY dq, 2, 6, 0 - punpckldq m3, m7 - movq [%9+0x10], m2 - movq [%9+0x20], m6 - movq [%9+0x30], m1 - movq [%9+0x40], m5 - movq [%9+0x50], m3 - RESET_MM_PERMUTATION -%endmacro - -; in: 8 rows of 8 in %1..%8 -; out: 8 rows of 8 in %9..%16 -%macro TRANSPOSE8x8_MEM 16 - RESET_MM_PERMUTATION - movq m0, %1 - movq m1, %2 - movq m2, %3 - movq m3, %4 - movq m4, %5 - movq m5, %6 - movq m6, %7 - SBUTTERFLY bw, 0, 1, 7 - SBUTTERFLY bw, 2, 3, 7 - SBUTTERFLY bw, 4, 5, 7 - SBUTTERFLY3 bw, m6, %8, m7 - movq %9, m5 - SBUTTERFLY wd, 0, 2, 5 - SBUTTERFLY wd, 4, 6, 5 - SBUTTERFLY wd, 1, 3, 5 - movq %11, m6 - movq m6, %9 - SBUTTERFLY wd, 6, 7, 5 - SBUTTERFLY dq, 0, 4, 5 - SBUTTERFLY dq, 1, 6, 5 - movq %9, m0 - movq %10, m4 - movq %13, m1 - movq %14, m6 - SBUTTERFLY3 dq, m2, %11, m0 - SBUTTERFLY dq, 3, 7, 4 - movq %11, m2 - movq %12, m0 - movq %15, m3 - movq %16, m7 - RESET_MM_PERMUTATION -%endmacro - -; out: %4 = |%1-%2|>%3 -; clobbers: %5 -%macro DIFF_GT 5 -%if avx_enabled == 0 - mova %5, %2 - mova %4, %1 - psubusb %5, %1 - psubusb %4, %2 -%else - psubusb %5, %2, %1 - psubusb %4, %1, %2 -%endif - por %4, %5 - psubusb %4, %3 -%endmacro - -; out: %4 = |%1-%2|>%3 -; clobbers: %5 -%macro DIFF_GT2 5 -%if ARCH_X86_64 - psubusb %5, %2, %1 - psubusb %4, %1, %2 -%else - mova %5, %2 - mova %4, %1 - psubusb %5, %1 - psubusb %4, %2 -%endif - psubusb %5, %3 - psubusb %4, %3 - pcmpeqb %4, %5 -%endmacro - -; in: m0=p1 m1=p0 m2=q0 m3=q1 %1=alpha-1 %2=beta-1 -; out: m5=beta-1, m7=mask, %3=alpha-1 -; clobbers: m4,m6 -%macro LOAD_MASK 2-3 - movd m4, %1 - movd m5, %2 - SPLATW m4, m4 - SPLATW m5, m5 - packuswb m4, m4 ; 16x alpha-1 - packuswb m5, m5 ; 16x beta-1 -%if %0>2 - mova %3, m4 -%endif - DIFF_GT m1, m2, m4, m7, m6 ; |p0-q0| > alpha-1 - DIFF_GT m0, m1, m5, m4, m6 ; |p1-p0| > beta-1 - por m7, m4 - DIFF_GT m3, m2, m5, m4, m6 ; |q1-q0| > beta-1 - por m7, m4 - pxor m6, m6 - pcmpeqb m7, m6 -%endmacro - -; in: m0=p1 m1=p0 m2=q0 m3=q1 m7=(tc&mask) -; out: m1=p0' m2=q0' -; clobbers: m0,3-6 -%macro DEBLOCK_P0_Q0 0 - pcmpeqb m4, m4 - pxor m5, m1, m2 ; p0^q0 - pxor m3, m4 - pand m5, [pb_1] ; (p0^q0)&1 - pavgb m3, m0 ; (p1 - q1 + 256)>>1 - pxor m4, m1 - pavgb m3, [pb_3] ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2 - pavgb m4, m2 ; (q0 - p0 + 256)>>1 - pavgb m3, m5 - mova m6, [pb_A1] - paddusb m3, m4 ; d+128+33 - psubusb m6, m3 - psubusb m3, [pb_A1] - pminub m6, m7 - pminub m3, m7 - psubusb m1, m6 - psubusb m2, m3 - paddusb m1, m3 - paddusb m2, m6 -%endmacro - -; in: m1=p0 m2=q0 -; %1=p1 %2=q2 %3=[q2] %4=[q1] %5=tc0 %6=tmp -; out: [q1] = clip( (q2+((p0+q0+1)>>1))>>1, q1-tc0, q1+tc0 ) -; clobbers: q2, tmp, tc0 -%macro LUMA_Q1 6 - pavgb %6, m1, m2 - pavgb %2, %6 ; avg(p2,avg(p0,q0)) - pxor %6, %3 - pand %6, [pb_1] ; (p2^avg(p0,q0))&1 - psubusb %2, %6 ; (p2+((p0+q0+1)>>1))>>1 - psubusb %6, %1, %5 - paddusb %5, %1 - pmaxub %2, %6 - pminub %2, %5 - mova %4, %2 -%endmacro - -%if ARCH_X86_64 -;----------------------------------------------------------------------------- -; void ff_deblock_v_luma(uint8_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -%macro DEBLOCK_LUMA 0 -cglobal deblock_v_luma_8, 5,5,10, pix_, stride_, alpha_, beta_, base3_ - movd m8, [r4] ; tc0 - lea r4, [stride_q*3] - dec alpha_d ; alpha-1 - neg r4 - dec beta_d ; beta-1 - add base3_q, pix_q ; pix-3*stride - - mova m0, [base3_q + stride_q] ; p1 - mova m1, [base3_q + 2*stride_q] ; p0 - mova m2, [pix_q] ; q0 - mova m3, [pix_q + stride_q] ; q1 - LOAD_MASK r2d, r3d - - punpcklbw m8, m8 - punpcklbw m8, m8 ; tc = 4x tc0[3], 4x tc0[2], 4x tc0[1], 4x tc0[0] - pcmpeqb m9, m9 - pcmpeqb m9, m8 - pandn m9, m7 - pand m8, m9 - - movdqa m3, [base3_q] ; p2 - DIFF_GT2 m1, m3, m5, m6, m7 ; |p2-p0| > beta-1 - pand m6, m9 - psubb m7, m8, m6 - pand m6, m8 - LUMA_Q1 m0, m3, [base3_q], [base3_q + stride_q], m6, m4 - - movdqa m4, [pix_q + 2*stride_q] ; q2 - DIFF_GT2 m2, m4, m5, m6, m3 ; |q2-q0| > beta-1 - pand m6, m9 - pand m8, m6 - psubb m7, m6 - mova m3, [pix_q + stride_q] - LUMA_Q1 m3, m4, [pix_q + 2*stride_q], [pix_q + stride_q], m8, m6 - - DEBLOCK_P0_Q0 - mova [base3_q + 2*stride_q], m1 - mova [pix_q], m2 - RET - -;----------------------------------------------------------------------------- -; void ff_deblock_h_luma(uint8_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -INIT_MMX cpuname -cglobal deblock_h_luma_8, 5,9,0,0x60+16*WIN64 - movsxd r7, r1d - lea r8, [r7+r7*2] - lea r6, [r0-4] - lea r5, [r0-4+r8] -%if WIN64 - %define pix_tmp rsp+0x30 ; shadow space + r4 -%else - %define pix_tmp rsp -%endif - - ; transpose 6x16 -> tmp space - TRANSPOSE6x8_MEM PASS8ROWS(r6, r5, r7, r8), pix_tmp - lea r6, [r6+r7*8] - lea r5, [r5+r7*8] - TRANSPOSE6x8_MEM PASS8ROWS(r6, r5, r7, r8), pix_tmp+8 - - ; vertical filter - ; alpha, beta, tc0 are still in r2d, r3d, r4 - ; don't backup r6, r5, r7, r8 because deblock_v_luma_sse2 doesn't use them - lea r0, [pix_tmp+0x30] - mov r1d, 0x10 -%if WIN64 - mov [rsp+0x20], r4 -%endif - call deblock_v_luma_8 - - ; transpose 16x4 -> original space (only the middle 4 rows were changed by the filter) - add r6, 2 - add r5, 2 - movq m0, [pix_tmp+0x18] - movq m1, [pix_tmp+0x28] - movq m2, [pix_tmp+0x38] - movq m3, [pix_tmp+0x48] - TRANSPOSE8x4B_STORE PASS8ROWS(r6, r5, r7, r8) - - shl r7, 3 - sub r6, r7 - sub r5, r7 - shr r7, 3 - movq m0, [pix_tmp+0x10] - movq m1, [pix_tmp+0x20] - movq m2, [pix_tmp+0x30] - movq m3, [pix_tmp+0x40] - TRANSPOSE8x4B_STORE PASS8ROWS(r6, r5, r7, r8) - - RET -%endmacro - -%macro DEBLOCK_H_LUMA_MBAFF 0 - -cglobal deblock_h_luma_mbaff_8, 5, 9, 10, 8*16, pix_, stride_, alpha_, beta_, tc0_, base3_, stride3_ - movsxd stride_q, stride_d - dec alpha_d - dec beta_d - mov base3_q, pix_q - lea stride3_q, [3*stride_q] - add base3_q, stride3_q - - movq m0, [pix_q - 4] - movq m1, [pix_q + stride_q - 4] - movq m2, [pix_q + 2*stride_q - 4] - movq m3, [base3_q - 4] - movq m4, [base3_q + stride_q - 4] - movq m5, [base3_q + 2*stride_q - 4] - movq m6, [base3_q + stride3_q - 4] - movq m7, [base3_q + 4*stride_q - 4] - - TRANSPOSE_8X8B 0,1,2,3,4,5,6,7 - - %assign i 0 - %rep 8 - movq [rsp + 16*i], m %+ i - %assign i i+1 - %endrep - - ; p2 = m1 [rsp + 16] - ; p1 = m2 [rsp + 32] - ; p0 = m3 [rsp + 48] - ; q0 = m4 [rsp + 64] - ; q1 = m5 [rsp + 80] - ; q2 = m6 [rsp + 96] - - SWAP 0, 2 - SWAP 1, 3 - SWAP 2, 4 - SWAP 3, 5 - - LOAD_MASK alpha_d, beta_d - movd m8, [tc0_q] - punpcklbw m8, m8 - pcmpeqb m9, m9 - pcmpeqb m9, m8 - pandn m9, m7 - pand m8, m9 - - movdqa m3, [rsp + 16] ; p2 - DIFF_GT2 m1, m3, m5, m6, m7 ; |p2-p0| > beta-1 - pand m6, m9 - psubb m7, m8, m6 - pand m6, m8 - LUMA_Q1 m0, m3, [rsp + 16], [rsp + 32], m6, m4 - - movdqa m4, [rsp + 96] ; q2 - DIFF_GT2 m2, m4, m5, m6, m3 ; |q2-q0| > beta-1 - pand m6, m9 - pand m8, m6 - psubb m7, m6 - mova m3, [rsp + 80] - LUMA_Q1 m3, m4, [rsp + 96], [rsp + 80], m8, m6 - - DEBLOCK_P0_Q0 - SWAP 1, 3 - SWAP 2, 4 - movq m0, [rsp] - movq m1, [rsp + 16] - movq m2, [rsp + 32] - movq m5, [rsp + 80] - movq m6, [rsp + 96] - movq m7, [rsp + 112] - - TRANSPOSE_8X8B 0,1,2,3,4,5,6,7 - movq [pix_q - 4], m0 - movq [pix_q + stride_q - 4], m1 - movq [pix_q + 2*stride_q - 4], m2 - movq [base3_q - 4], m3 - movq [base3_q + stride_q - 4], m4 - movq [base3_q + 2*stride_q - 4], m5 - movq [base3_q + stride3_q - 4], m6 - movq [base3_q + 4*stride_q - 4], m7 - -RET - -%endmacro - -INIT_XMM sse2 -DEBLOCK_H_LUMA_MBAFF -DEBLOCK_LUMA - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_H_LUMA_MBAFF -DEBLOCK_LUMA -%endif - -%else - -%macro DEBLOCK_LUMA 2 -;----------------------------------------------------------------------------- -; void ff_deblock_v8_luma(uint8_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_%1_luma_8, 5,5,8,2*%2 - lea r4, [r1*3] - dec r2 ; alpha-1 - neg r4 - dec r3 ; beta-1 - add r4, r0 ; pix-3*stride - - mova m0, [r4+r1] ; p1 - mova m1, [r4+2*r1] ; p0 - mova m2, [r0] ; q0 - mova m3, [r0+r1] ; q1 - LOAD_MASK r2, r3 - - mov r3, r4mp - pcmpeqb m3, m3 - movd m4, [r3] ; tc0 - punpcklbw m4, m4 - punpcklbw m4, m4 ; tc = 4x tc0[3], 4x tc0[2], 4x tc0[1], 4x tc0[0] - mova [esp+%2], m4 ; tc - pcmpgtb m4, m3 - mova m3, [r4] ; p2 - pand m4, m7 - mova [esp], m4 ; mask - - DIFF_GT2 m1, m3, m5, m6, m7 ; |p2-p0| > beta-1 - pand m6, m4 - pand m4, [esp+%2] ; tc - psubb m7, m4, m6 - pand m6, m4 - LUMA_Q1 m0, m3, [r4], [r4+r1], m6, m4 - - mova m4, [r0+2*r1] ; q2 - DIFF_GT2 m2, m4, m5, m6, m3 ; |q2-q0| > beta-1 - pand m6, [esp] ; mask - mova m5, [esp+%2] ; tc - psubb m7, m6 - pand m5, m6 - mova m3, [r0+r1] - LUMA_Q1 m3, m4, [r0+2*r1], [r0+r1], m5, m6 - - DEBLOCK_P0_Q0 - mova [r4+2*r1], m1 - mova [r0], m2 - RET - -;----------------------------------------------------------------------------- -; void ff_deblock_h_luma(uint8_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -INIT_MMX cpuname -cglobal deblock_h_luma_8, 0,5,8,0x60+12 - mov r0, r0mp - mov r3, r1m - lea r4, [r3*3] - sub r0, 4 - lea r1, [r0+r4] -%define pix_tmp esp+12 - - ; transpose 6x16 -> tmp space - TRANSPOSE6x8_MEM PASS8ROWS(r0, r1, r3, r4), pix_tmp - lea r0, [r0+r3*8] - lea r1, [r1+r3*8] - TRANSPOSE6x8_MEM PASS8ROWS(r0, r1, r3, r4), pix_tmp+8 - - ; vertical filter - lea r0, [pix_tmp+0x30] - PUSH dword r4m - PUSH dword r3m - PUSH dword r2m - PUSH dword 16 - PUSH dword r0 - call deblock_%1_luma_8 -%ifidn %1, v8 - add dword [esp ], 8 ; pix_tmp+0x38 - add dword [esp+16], 2 ; tc0+2 - call deblock_%1_luma_8 -%endif - ADD esp, 20 - - ; transpose 16x4 -> original space (only the middle 4 rows were changed by the filter) - mov r0, r0mp - sub r0, 2 - - movq m0, [pix_tmp+0x10] - movq m1, [pix_tmp+0x20] - lea r1, [r0+r4] - movq m2, [pix_tmp+0x30] - movq m3, [pix_tmp+0x40] - TRANSPOSE8x4B_STORE PASS8ROWS(r0, r1, r3, r4) - - lea r0, [r0+r3*8] - lea r1, [r1+r3*8] - movq m0, [pix_tmp+0x18] - movq m1, [pix_tmp+0x28] - movq m2, [pix_tmp+0x38] - movq m3, [pix_tmp+0x48] - TRANSPOSE8x4B_STORE PASS8ROWS(r0, r1, r3, r4) - - RET -%endmacro ; DEBLOCK_LUMA - -INIT_MMX mmxext -DEBLOCK_LUMA v8, 8 -INIT_XMM sse2 -DEBLOCK_LUMA v, 16 -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_LUMA v, 16 -%endif - -%endif ; ARCH - - - -%macro LUMA_INTRA_P012 4 ; p0..p3 in memory -%if ARCH_X86_64 - pavgb t0, p2, p1 - pavgb t1, p0, q0 -%else - mova t0, p2 - mova t1, p0 - pavgb t0, p1 - pavgb t1, q0 -%endif - pavgb t0, t1 ; ((p2+p1+1)/2 + (p0+q0+1)/2 + 1)/2 - mova t5, t1 -%if ARCH_X86_64 - paddb t2, p2, p1 - paddb t3, p0, q0 -%else - mova t2, p2 - mova t3, p0 - paddb t2, p1 - paddb t3, q0 -%endif - paddb t2, t3 - mova t3, t2 - mova t4, t2 - psrlw t2, 1 - pavgb t2, mpb_0 - pxor t2, t0 - pand t2, mpb_1 - psubb t0, t2 ; p1' = (p2+p1+p0+q0+2)/4; - -%if ARCH_X86_64 - pavgb t1, p2, q1 - psubb t2, p2, q1 -%else - mova t1, p2 - mova t2, p2 - pavgb t1, q1 - psubb t2, q1 -%endif - paddb t3, t3 - psubb t3, t2 ; p2+2*p1+2*p0+2*q0+q1 - pand t2, mpb_1 - psubb t1, t2 - pavgb t1, p1 - pavgb t1, t5 ; (((p2+q1)/2 + p1+1)/2 + (p0+q0+1)/2 + 1)/2 - psrlw t3, 2 - pavgb t3, mpb_0 - pxor t3, t1 - pand t3, mpb_1 - psubb t1, t3 ; p0'a = (p2+2*p1+2*p0+2*q0+q1+4)/8 - - pxor t3, p0, q1 - pavgb t2, p0, q1 - pand t3, mpb_1 - psubb t2, t3 - pavgb t2, p1 ; p0'b = (2*p1+p0+q0+2)/4 - - pxor t1, t2 - pxor t2, p0 - pand t1, mask1p - pand t2, mask0 - pxor t1, t2 - pxor t1, p0 - mova %1, t1 ; store p0 - - mova t1, %4 ; p3 - paddb t2, t1, p2 - pavgb t1, p2 - pavgb t1, t0 ; (p3+p2+1)/2 + (p2+p1+p0+q0+2)/4 - paddb t2, t2 - paddb t2, t4 ; 2*p3+3*p2+p1+p0+q0 - psrlw t2, 2 - pavgb t2, mpb_0 - pxor t2, t1 - pand t2, mpb_1 - psubb t1, t2 ; p2' = (2*p3+3*p2+p1+p0+q0+4)/8 - - pxor t0, p1 - pxor t1, p2 - pand t0, mask1p - pand t1, mask1p - pxor t0, p1 - pxor t1, p2 - mova %2, t0 ; store p1 - mova %3, t1 ; store p2 -%endmacro - -%macro LUMA_INTRA_SWAP_PQ 0 - %define q1 m0 - %define q0 m1 - %define p0 m2 - %define p1 m3 - %define p2 q2 - %define mask1p mask1q -%endmacro - -%macro DEBLOCK_LUMA_INTRA 1 - %define p1 m0 - %define p0 m1 - %define q0 m2 - %define q1 m3 - %define t0 m4 - %define t1 m5 - %define t2 m6 - %define t3 m7 -%if ARCH_X86_64 - %define p2 m8 - %define q2 m9 - %define t4 m10 - %define t5 m11 - %define mask0 m12 - %define mask1p m13 -%if WIN64 - %define mask1q [rsp] -%else - %define mask1q [rsp-24] -%endif - %define mpb_0 m14 - %define mpb_1 m15 -%else - %define spill(x) [esp+16*x] - %define p2 [r4+r1] - %define q2 [r0+2*r1] - %define t4 spill(0) - %define t5 spill(1) - %define mask0 spill(2) - %define mask1p spill(3) - %define mask1q spill(4) - %define mpb_0 [pb_0] - %define mpb_1 [pb_1] -%endif - -;----------------------------------------------------------------------------- -; void ff_deblock_v_luma_intra(uint8_t *pix, int stride, int alpha, int beta) -;----------------------------------------------------------------------------- -%if WIN64 -cglobal deblock_%1_luma_intra_8, 4,6,16,0x10 -%else -cglobal deblock_%1_luma_intra_8, 4,6,16,ARCH_X86_64*0x50-0x50 -%endif - lea r4, [r1*4] - lea r5, [r1*3] ; 3*stride - dec r2d ; alpha-1 - jl .end - neg r4 - dec r3d ; beta-1 - jl .end - add r4, r0 ; pix-4*stride - mova p1, [r4+2*r1] - mova p0, [r4+r5] - mova q0, [r0] - mova q1, [r0+r1] -%if ARCH_X86_64 - pxor mpb_0, mpb_0 - mova mpb_1, [pb_1] - LOAD_MASK r2d, r3d, t5 ; m5=beta-1, t5=alpha-1, m7=mask0 - SWAP 7, 12 ; m12=mask0 - pavgb t5, mpb_0 - pavgb t5, mpb_1 ; alpha/4+1 - movdqa p2, [r4+r1] - movdqa q2, [r0+2*r1] - DIFF_GT2 p0, q0, t5, t0, t3 ; t0 = |p0-q0| > alpha/4+1 - DIFF_GT2 p0, p2, m5, t2, t5 ; mask1 = |p2-p0| > beta-1 - DIFF_GT2 q0, q2, m5, t4, t5 ; t4 = |q2-q0| > beta-1 - pand t0, mask0 - pand t4, t0 - pand t2, t0 - mova mask1q, t4 - mova mask1p, t2 -%else - LOAD_MASK r2d, r3d, t5 ; m5=beta-1, t5=alpha-1, m7=mask0 - mova m4, t5 - mova mask0, m7 - pavgb m4, [pb_0] - pavgb m4, [pb_1] ; alpha/4+1 - DIFF_GT2 p0, q0, m4, m6, m7 ; m6 = |p0-q0| > alpha/4+1 - pand m6, mask0 - DIFF_GT2 p0, p2, m5, m4, m7 ; m4 = |p2-p0| > beta-1 - pand m4, m6 - mova mask1p, m4 - DIFF_GT2 q0, q2, m5, m4, m7 ; m4 = |q2-q0| > beta-1 - pand m4, m6 - mova mask1q, m4 -%endif - LUMA_INTRA_P012 [r4+r5], [r4+2*r1], [r4+r1], [r4] - LUMA_INTRA_SWAP_PQ - LUMA_INTRA_P012 [r0], [r0+r1], [r0+2*r1], [r0+r5] -.end: - RET - -INIT_MMX cpuname -%if ARCH_X86_64 -;----------------------------------------------------------------------------- -; void ff_deblock_h_luma_intra(uint8_t *pix, int stride, int alpha, int beta) -;----------------------------------------------------------------------------- -cglobal deblock_h_luma_intra_8, 4,9,0,0x80 - movsxd r7, r1d - lea r8, [r7*3] - lea r6, [r0-4] - lea r5, [r0-4+r8] -%if WIN64 - %define pix_tmp rsp+0x20 ; shadow space -%else - %define pix_tmp rsp -%endif - - ; transpose 8x16 -> tmp space - TRANSPOSE8x8_MEM PASS8ROWS(r6, r5, r7, r8), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30) - lea r6, [r6+r7*8] - lea r5, [r5+r7*8] - TRANSPOSE8x8_MEM PASS8ROWS(r6, r5, r7, r8), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30) - - lea r0, [pix_tmp+0x40] - mov r1, 0x10 - call deblock_v_luma_intra_8 - - ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8) - lea r5, [r6+r8] - TRANSPOSE8x8_MEM PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8) - shl r7, 3 - sub r6, r7 - sub r5, r7 - shr r7, 3 - TRANSPOSE8x8_MEM PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8) - RET -%else -cglobal deblock_h_luma_intra_8, 2,4,8,0x80 - lea r3, [r1*3] - sub r0, 4 - lea r2, [r0+r3] - %define pix_tmp rsp - - ; transpose 8x16 -> tmp space - TRANSPOSE8x8_MEM PASS8ROWS(r0, r2, r1, r3), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30) - lea r0, [r0+r1*8] - lea r2, [r2+r1*8] - TRANSPOSE8x8_MEM PASS8ROWS(r0, r2, r1, r3), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30) - - lea r0, [pix_tmp+0x40] - PUSH dword r3m - PUSH dword r2m - PUSH dword 16 - PUSH r0 - call deblock_%1_luma_intra_8 -%ifidn %1, v8 - add dword [rsp], 8 ; pix_tmp+8 - call deblock_%1_luma_intra_8 -%endif - ADD esp, 16 - - mov r1, r1m - mov r0, r0mp - lea r3, [r1*3] - sub r0, 4 - lea r2, [r0+r3] - ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8) - TRANSPOSE8x8_MEM PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(r0, r2, r1, r3) - lea r0, [r0+r1*8] - lea r2, [r2+r1*8] - TRANSPOSE8x8_MEM PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(r0, r2, r1, r3) - RET -%endif ; ARCH_X86_64 -%endmacro ; DEBLOCK_LUMA_INTRA - -INIT_XMM sse2 -DEBLOCK_LUMA_INTRA v -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_LUMA_INTRA v -%endif -%if ARCH_X86_64 == 0 -INIT_MMX mmxext -DEBLOCK_LUMA_INTRA v8 -%endif - -INIT_MMX mmxext - -%macro CHROMA_V_START 0 - dec r2d ; alpha-1 - dec r3d ; beta-1 - mov t5, r0 - sub t5, r1 - sub t5, r1 -%endmacro - -%macro CHROMA_H_START 0 - dec r2d - dec r3d - sub r0, 2 - lea t6, [r1*3] - mov t5, r0 - add r0, t6 -%endmacro - -%define t5 r5 -%define t6 r6 - -;----------------------------------------------------------------------------- -; void ff_deblock_v_chroma(uint8_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_v_chroma_8, 5,6 - CHROMA_V_START - movq m0, [t5] - movq m1, [t5+r1] - movq m2, [r0] - movq m3, [r0+r1] - call ff_chroma_inter_body_mmxext - movq [t5+r1], m1 - movq [r0], m2 - RET - -;----------------------------------------------------------------------------- -; void ff_deblock_h_chroma(uint8_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_h_chroma_8, 5,7 -%if ARCH_X86_64 - ; This could use the red zone on 64 bit unix to avoid the stack pointer - ; readjustment, but valgrind assumes the red zone is clobbered on - ; function calls and returns. - sub rsp, 16 - %define buf0 [rsp] - %define buf1 [rsp+8] -%else - %define buf0 r0m - %define buf1 r2m -%endif - CHROMA_H_START - TRANSPOSE4x8_LOAD bw, wd, dq, PASS8ROWS(t5, r0, r1, t6) - movq buf0, m0 - movq buf1, m3 - LOAD_MASK r2d, r3d - movd m6, [r4] ; tc0 - punpcklbw m6, m6 - pand m7, m6 - DEBLOCK_P0_Q0 - movq m0, buf0 - movq m3, buf1 - TRANSPOSE8x4B_STORE PASS8ROWS(t5, r0, r1, t6) -%if ARCH_X86_64 - add rsp, 16 -%endif - RET - -ALIGN 16 -ff_chroma_inter_body_mmxext: - LOAD_MASK r2d, r3d - movd m6, [r4] ; tc0 - punpcklbw m6, m6 - pand m7, m6 - DEBLOCK_P0_Q0 - ret - -%define t5 r4 -%define t6 r5 - -cglobal deblock_h_chroma422_8, 5, 6 - SUB rsp, (1+ARCH_X86_64*2)*mmsize - %if ARCH_X86_64 - %define buf0 [rsp+16] - %define buf1 [rsp+8] - %else - %define buf0 r0m - %define buf1 r2m - %endif - - movd m6, [r4] - punpcklbw m6, m6 - movq [rsp], m6 - CHROMA_H_START - - TRANSPOSE4x8B_LOAD PASS8ROWS(t5, r0, r1, t6) - movq buf0, m0 - movq buf1, m3 - LOAD_MASK r2d, r3d - movd m6, [rsp] - punpcklwd m6, m6 - pand m7, m6 - DEBLOCK_P0_Q0 - movq m0, buf0 - movq m3, buf1 - TRANSPOSE8x4B_STORE PASS8ROWS(t5, r0, r1, t6) - - lea r0, [r0+r1*8] - lea t5, [t5+r1*8] - - TRANSPOSE4x8B_LOAD PASS8ROWS(t5, r0, r1, t6) - movq buf0, m0 - movq buf1, m3 - LOAD_MASK r2d, r3d - movd m6, [rsp+4] - punpcklwd m6, m6 - pand m7, m6 - DEBLOCK_P0_Q0 - movq m0, buf0 - movq m3, buf1 - TRANSPOSE8x4B_STORE PASS8ROWS(t5, r0, r1, t6) - ADD rsp, (1+ARCH_X86_64*2)*mmsize -RET - -; in: %1=p0 %2=p1 %3=q1 -; out: p0 = (p0 + q1 + 2*p1 + 2) >> 2 -%macro CHROMA_INTRA_P0 3 - movq m4, %1 - pxor m4, %3 - pand m4, [pb_1] ; m4 = (p0^q1)&1 - pavgb %1, %3 - psubusb %1, m4 - pavgb %1, %2 ; dst = avg(p1, avg(p0,q1) - ((p0^q1)&1)) -%endmacro - -;------------------------------------------------------------------------------ -; void ff_deblock_v_chroma_intra(uint8_t *pix, int stride, int alpha, int beta) -;------------------------------------------------------------------------------ -cglobal deblock_v_chroma_intra_8, 4,5 - CHROMA_V_START - movq m0, [t5] - movq m1, [t5+r1] - movq m2, [r0] - movq m3, [r0+r1] - call ff_chroma_intra_body_mmxext - movq [t5+r1], m1 - movq [r0], m2 - RET - -;------------------------------------------------------------------------------ -; void ff_deblock_h_chroma_intra(uint8_t *pix, int stride, int alpha, int beta) -;------------------------------------------------------------------------------ -cglobal deblock_h_chroma_intra_8, 4,6 - CHROMA_H_START - TRANSPOSE4x8_LOAD bw, wd, dq, PASS8ROWS(t5, r0, r1, t6) - call ff_chroma_intra_body_mmxext - TRANSPOSE8x4B_STORE PASS8ROWS(t5, r0, r1, t6) - RET - -cglobal deblock_h_chroma422_intra_8, 4, 6 - CHROMA_H_START - TRANSPOSE4x8_LOAD bw, wd, dq, PASS8ROWS(t5, r0, r1, t6) - call ff_chroma_intra_body_mmxext - TRANSPOSE8x4B_STORE PASS8ROWS(t5, r0, r1, t6) - - lea r0, [r0+r1*8] - lea t5, [t5+r1*8] - - TRANSPOSE4x8_LOAD bw, wd, dq, PASS8ROWS(t5, r0, r1, t6) - call ff_chroma_intra_body_mmxext - TRANSPOSE8x4B_STORE PASS8ROWS(t5, r0, r1, t6) -RET - -ALIGN 16 -ff_chroma_intra_body_mmxext: - LOAD_MASK r2d, r3d - movq m5, m1 - movq m6, m2 - CHROMA_INTRA_P0 m1, m0, m3 - CHROMA_INTRA_P0 m2, m3, m0 - psubb m1, m5 - psubb m2, m6 - pand m1, m7 - pand m2, m7 - paddb m1, m5 - paddb m2, m6 - ret - -%macro LOAD_8_ROWS 8 - movd m0, %1 - movd m1, %2 - movd m2, %3 - movd m3, %4 - movd m4, %5 - movd m5, %6 - movd m6, %7 - movd m7, %8 -%endmacro - -%macro STORE_8_ROWS 8 - movd %1, m0 - movd %2, m1 - movd %3, m2 - movd %4, m3 - movd %5, m4 - movd %6, m5 - movd %7, m6 - movd %8, m7 -%endmacro - -%macro TRANSPOSE_8x4B_XMM 0 - punpcklbw m0, m1 - punpcklbw m2, m3 - punpcklbw m4, m5 - punpcklbw m6, m7 - punpcklwd m0, m2 - punpcklwd m4, m6 - punpckhdq m2, m0, m4 - punpckldq m0, m4 - MOVHL m1, m0 - MOVHL m3, m2 -%endmacro - -%macro TRANSPOSE_4x8B_XMM 0 - punpcklbw m0, m1 - punpcklbw m2, m3 - punpckhwd m4, m0, m2 - punpcklwd m0, m2 - MOVHL m6, m4 - MOVHL m2, m0 - pshufd m1, m0, 1 - pshufd m3, m2, 1 - pshufd m5, m4, 1 - pshufd m7, m6, 1 -%endmacro - -%macro CHROMA_INTER_BODY_XMM 1 - LOAD_MASK alpha_d, beta_d - movd m6, [tc0_q] - %rep %1 - punpcklbw m6, m6 - %endrep - pand m7, m6 - DEBLOCK_P0_Q0 -%endmacro - -%macro CHROMA_INTRA_BODY_XMM 0 - LOAD_MASK alpha_d, beta_d - mova m5, m1 - mova m6, m2 - pxor m4, m1, m3 - pand m4, [pb_1] - pavgb m1, m3 - psubusb m1, m4 - pavgb m1, m0 - pxor m4, m2, m0 - pand m4, [pb_1] - pavgb m2, m0 - psubusb m2, m4 - pavgb m2, m3 - psubb m1, m5 - psubb m2, m6 - pand m1, m7 - pand m2, m7 - paddb m1, m5 - paddb m2, m6 -%endmacro - -%macro CHROMA_V_START_XMM 1 - movsxdifnidn stride_q, stride_d - dec alpha_d - dec beta_d - mov %1, pix_q - sub %1, stride_q - sub %1, stride_q -%endmacro - -%macro CHROMA_H_START_XMM 2 - movsxdifnidn stride_q, stride_d - dec alpha_d - dec beta_d - lea %2, [3*stride_q] - mov %1, pix_q - add %1, %2 -%endmacro - -%macro DEBLOCK_CHROMA_XMM 1 - -INIT_XMM %1 - -cglobal deblock_v_chroma_8, 5, 6, 8, pix_, stride_, alpha_, beta_, tc0_ - CHROMA_V_START_XMM r5 - movq m0, [r5] - movq m1, [r5 + stride_q] - movq m2, [pix_q] - movq m3, [pix_q + stride_q] - CHROMA_INTER_BODY_XMM 1 - movq [r5 + stride_q], m1 - movq [pix_q], m2 -RET - -cglobal deblock_h_chroma_8, 5, 7, 8, 0-16, pix_, stride_, alpha_, beta_, tc0_ - CHROMA_H_START_XMM r5, r6 - LOAD_8_ROWS PASS8ROWS(pix_q - 2, r5 - 2, stride_q, r6) - TRANSPOSE_8x4B_XMM - movq [rsp], m0 - movq [rsp + 8], m3 - CHROMA_INTER_BODY_XMM 1 - movq m0, [rsp] - movq m3, [rsp + 8] - TRANSPOSE_4x8B_XMM - STORE_8_ROWS PASS8ROWS(pix_q - 2, r5 - 2, stride_q, r6) -RET - -cglobal deblock_h_chroma422_8, 5, 7, 8, 0-16, pix_, stride_, alpha_, beta_, tc0_, - CHROMA_H_START_XMM r5, r6 - LOAD_8_ROWS PASS8ROWS(pix_q - 2, r5 - 2, stride_q, r6) - TRANSPOSE_8x4B_XMM - movq [rsp], m0 - movq [rsp + 8], m3 - CHROMA_INTER_BODY_XMM 2 - movq m0, [rsp] - movq m3, [rsp + 8] - TRANSPOSE_4x8B_XMM - STORE_8_ROWS PASS8ROWS(pix_q - 2, r5 - 2, stride_q, r6) - - lea pix_q, [pix_q + 8*stride_q] - lea r5, [r5 + 8*stride_q] - add tc0_q, 2 - - LOAD_8_ROWS PASS8ROWS(pix_q - 2, r5 - 2, stride_q, r6) - TRANSPOSE_8x4B_XMM - movq [rsp], m0 - movq [rsp + 8], m3 - CHROMA_INTER_BODY_XMM 2 - movq m0, [rsp] - movq m3, [rsp + 8] - TRANSPOSE_4x8B_XMM - STORE_8_ROWS PASS8ROWS(pix_q - 2, r5 - 2, stride_q, r6) -RET - -cglobal deblock_v_chroma_intra_8, 4, 5, 8, pix_, stride_, alpha_, beta_ - CHROMA_V_START_XMM r4 - movq m0, [r4] - movq m1, [r4 + stride_q] - movq m2, [pix_q] - movq m3, [pix_q + stride_q] - CHROMA_INTRA_BODY_XMM - movq [r4 + stride_q], m1 - movq [pix_q], m2 -RET - -cglobal deblock_h_chroma_intra_8, 4, 6, 8, pix_, stride_, alpha_, beta_ - CHROMA_H_START_XMM r4, r5 - LOAD_8_ROWS PASS8ROWS(pix_q - 2, r4 - 2, stride_q, r5) - TRANSPOSE_8x4B_XMM - CHROMA_INTRA_BODY_XMM - TRANSPOSE_4x8B_XMM - STORE_8_ROWS PASS8ROWS(pix_q - 2, r4 - 2, stride_q, r5) -RET - -cglobal deblock_h_chroma422_intra_8, 4, 6, 8, pix_, stride_, alpha_, beta_ - CHROMA_H_START_XMM r4, r5 - LOAD_8_ROWS PASS8ROWS(pix_q - 2, r4 - 2, stride_q, r5) - TRANSPOSE_8x4B_XMM - CHROMA_INTRA_BODY_XMM - TRANSPOSE_4x8B_XMM - STORE_8_ROWS PASS8ROWS(pix_q - 2, r4 - 2, stride_q, r5) - - lea pix_q, [pix_q + 8*stride_q] - lea r4, [r4 + 8*stride_q] - - LOAD_8_ROWS PASS8ROWS(pix_q - 2, r4 - 2, stride_q, r5) - TRANSPOSE_8x4B_XMM - CHROMA_INTRA_BODY_XMM - TRANSPOSE_4x8B_XMM - STORE_8_ROWS PASS8ROWS(pix_q - 2, r4 - 2, stride_q, r5) -RET - -%endmacro ; DEBLOCK_CHROMA_XMM - -DEBLOCK_CHROMA_XMM sse2 -DEBLOCK_CHROMA_XMM avx - -;----------------------------------------------------------------------------- -; void ff_h264_loop_filter_strength(int16_t bs[2][4][4], uint8_t nnz[40], -; int8_t ref[2][40], int16_t mv[2][40][2], -; int bidir, int edges, int step, -; int mask_mv0, int mask_mv1, int field); -; -; bidir is 0 or 1 -; edges is 1 or 4 -; step is 1 or 2 -; mask_mv0 is 0 or 3 -; mask_mv1 is 0 or 1 -; field is 0 or 1 -;----------------------------------------------------------------------------- -%macro loop_filter_strength_iteration 7 ; edges, step, mask_mv, - ; dir, d_idx, mask_dir, bidir -%define edgesd %1 -%define stepd %2 -%define mask_mvd %3 -%define dir %4 -%define d_idx %5 -%define mask_dir %6 -%define bidir %7 - xor b_idxd, b_idxd ; for (b_idx = 0; b_idx < edges; b_idx += step) -%%.b_idx_loop: -%if mask_dir == 0 - pxor m0, m0 -%endif - test b_idxd, dword mask_mvd - jnz %%.skip_loop_iter ; if (!(b_idx & mask_mv)) -%if bidir == 1 - movd m2, [refq+b_idxq+d_idx+12] ; { ref0[bn] } - punpckldq m2, [refq+b_idxq+d_idx+52] ; { ref0[bn], ref1[bn] } - pshufw m0, [refq+b_idxq+12], 0x44 ; { ref0[b], ref0[b] } - pshufw m1, [refq+b_idxq+52], 0x44 ; { ref1[b], ref1[b] } - pshufw m3, m2, 0x4E ; { ref1[bn], ref0[bn] } - psubb m0, m2 ; { ref0[b] != ref0[bn], - ; ref0[b] != ref1[bn] } - psubb m1, m3 ; { ref1[b] != ref1[bn], - ; ref1[b] != ref0[bn] } - - por m0, m1 - mova m1, [mvq+b_idxq*4+(d_idx+12)*4] - mova m2, [mvq+b_idxq*4+(d_idx+12)*4+mmsize] - mova m3, m1 - mova m4, m2 - psubw m1, [mvq+b_idxq*4+12*4] - psubw m2, [mvq+b_idxq*4+12*4+mmsize] - psubw m3, [mvq+b_idxq*4+52*4] - psubw m4, [mvq+b_idxq*4+52*4+mmsize] - packsswb m1, m2 - packsswb m3, m4 - paddb m1, m6 - paddb m3, m6 - psubusb m1, m5 ; abs(mv[b] - mv[bn]) >= limit - psubusb m3, m5 - packsswb m1, m3 - - por m0, m1 - mova m1, [mvq+b_idxq*4+(d_idx+52)*4] - mova m2, [mvq+b_idxq*4+(d_idx+52)*4+mmsize] - mova m3, m1 - mova m4, m2 - psubw m1, [mvq+b_idxq*4+12*4] - psubw m2, [mvq+b_idxq*4+12*4+mmsize] - psubw m3, [mvq+b_idxq*4+52*4] - psubw m4, [mvq+b_idxq*4+52*4+mmsize] - packsswb m1, m2 - packsswb m3, m4 - paddb m1, m6 - paddb m3, m6 - psubusb m1, m5 ; abs(mv[b] - mv[bn]) >= limit - psubusb m3, m5 - packsswb m1, m3 - - pshufw m1, m1, 0x4E - por m0, m1 - pshufw m1, m0, 0x4E - pminub m0, m1 -%else ; bidir == 0 - movd m0, [refq+b_idxq+12] - psubb m0, [refq+b_idxq+d_idx+12] ; ref[b] != ref[bn] - - mova m1, [mvq+b_idxq*4+12*4] - mova m2, [mvq+b_idxq*4+12*4+mmsize] - psubw m1, [mvq+b_idxq*4+(d_idx+12)*4] - psubw m2, [mvq+b_idxq*4+(d_idx+12)*4+mmsize] - packsswb m1, m2 - paddb m1, m6 - psubusb m1, m5 ; abs(mv[b] - mv[bn]) >= limit - packsswb m1, m1 - por m0, m1 -%endif ; bidir == 1/0 - -%%.skip_loop_iter: - movd m1, [nnzq+b_idxq+12] - por m1, [nnzq+b_idxq+d_idx+12] ; nnz[b] || nnz[bn] - - pminub m1, m7 - pminub m0, m7 - psllw m1, 1 - pxor m2, m2 - pmaxub m1, m0 - punpcklbw m1, m2 - movq [bsq+b_idxq+32*dir], m1 - - add b_idxd, dword stepd - cmp b_idxd, dword edgesd - jl %%.b_idx_loop -%endmacro - -INIT_MMX mmxext -cglobal h264_loop_filter_strength, 9, 9, 0, bs, nnz, ref, mv, bidir, edges, \ - step, mask_mv0, mask_mv1, field -%define b_idxq bidirq -%define b_idxd bidird - cmp dword fieldm, 0 - mova m7, [pb_1] - mova m5, [pb_3] - je .nofield - mova m5, [pb_3_1] -.nofield: - mova m6, m5 - paddb m5, m5 - - shl dword stepd, 3 - shl dword edgesd, 3 -%if ARCH_X86_32 -%define mask_mv0d mask_mv0m -%define mask_mv1d mask_mv1m -%endif - shl dword mask_mv1d, 3 - shl dword mask_mv0d, 3 - - cmp dword bidird, 0 - jne .bidir - loop_filter_strength_iteration edgesd, stepd, mask_mv1d, 1, -8, 0, 0 - loop_filter_strength_iteration 32, 8, mask_mv0d, 0, -1, -1, 0 - - mova m0, [bsq+mmsize*0] - mova m1, [bsq+mmsize*1] - mova m2, [bsq+mmsize*2] - mova m3, [bsq+mmsize*3] - TRANSPOSE4x4W 0, 1, 2, 3, 4 - mova [bsq+mmsize*0], m0 - mova [bsq+mmsize*1], m1 - mova [bsq+mmsize*2], m2 - mova [bsq+mmsize*3], m3 - RET - -.bidir: - loop_filter_strength_iteration edgesd, stepd, mask_mv1d, 1, -8, 0, 1 - loop_filter_strength_iteration 32, 8, mask_mv0d, 0, -1, -1, 1 - - mova m0, [bsq+mmsize*0] - mova m1, [bsq+mmsize*1] - mova m2, [bsq+mmsize*2] - mova m3, [bsq+mmsize*3] - TRANSPOSE4x4W 0, 1, 2, 3, 4 - mova [bsq+mmsize*0], m0 - mova [bsq+mmsize*1], m1 - mova [bsq+mmsize*2], m2 - mova [bsq+mmsize*3], m3 - RET diff --git a/libavcodec/x86/h264_deblock_10bit.asm b/libavcodec/x86/h264_deblock_10bit.asm deleted file mode 100644 index 1af3257a67..0000000000 --- a/libavcodec/x86/h264_deblock_10bit.asm +++ /dev/null @@ -1,1080 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized 10-bit H.264 deblocking code -;***************************************************************************** -;* Copyright (C) 2005-2011 x264 project -;* -;* Authors: Oskar Arvidsson -;* Loren Merritt -;* Fiona Glaser -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -cextern pw_2 -cextern pw_3 -cextern pw_4 -cextern pw_1023 -%define pw_pixel_max pw_1023 - -; out: %4 = |%1-%2|-%3 -; clobbers: %5 -%macro ABS_SUB 5 - psubusw %5, %2, %1 - psubusw %4, %1, %2 - por %4, %5 - psubw %4, %3 -%endmacro - -; out: %4 = |%1-%2|<%3 -%macro DIFF_LT 5 - psubusw %4, %2, %1 - psubusw %5, %1, %2 - por %5, %4 ; |%1-%2| - pxor %4, %4 - psubw %5, %3 ; |%1-%2|-%3 - pcmpgtw %4, %5 ; 0 > |%1-%2|-%3 -%endmacro - -%macro LOAD_AB 4 - movd %1, %3 - movd %2, %4 - SPLATW %1, %1 - SPLATW %2, %2 -%endmacro - -; in: %2=tc reg -; out: %1=splatted tc -%macro LOAD_TC 2 - movd %1, [%2] - punpcklbw %1, %1 -%if mmsize == 8 - pshufw %1, %1, 0 -%else - pshuflw %1, %1, 01010000b - pshufd %1, %1, 01010000b -%endif - psraw %1, 6 -%endmacro - -; in: %1=p1, %2=p0, %3=q0, %4=q1 -; %5=alpha, %6=beta, %7-%9=tmp -; out: %7=mask -%macro LOAD_MASK 9 - ABS_SUB %2, %3, %5, %8, %7 ; |p0-q0| - alpha - ABS_SUB %1, %2, %6, %9, %7 ; |p1-p0| - beta - pand %8, %9 - ABS_SUB %3, %4, %6, %9, %7 ; |q1-q0| - beta - pxor %7, %7 - pand %8, %9 - pcmpgtw %7, %8 -%endmacro - -; in: %1=p0, %2=q0, %3=p1, %4=q1, %5=mask, %6=tmp, %7=tmp -; out: %1=p0', m2=q0' -%macro DEBLOCK_P0_Q0 7 - psubw %3, %4 - pxor %7, %7 - paddw %3, [pw_4] - psubw %7, %5 - psubw %6, %2, %1 - psllw %6, 2 - paddw %3, %6 - psraw %3, 3 - mova %6, [pw_pixel_max] - CLIPW %3, %7, %5 - pxor %7, %7 - paddw %1, %3 - psubw %2, %3 - CLIPW %1, %7, %6 - CLIPW %2, %7, %6 -%endmacro - -; in: %1=x2, %2=x1, %3=p0, %4=q0 %5=mask&tc, %6=tmp -%macro LUMA_Q1 6 - pavgw %6, %3, %4 ; (p0+q0+1)>>1 - paddw %1, %6 - pxor %6, %6 - psraw %1, 1 - psubw %6, %5 - psubw %1, %2 - CLIPW %1, %6, %5 - paddw %1, %2 -%endmacro - -%macro LUMA_DEBLOCK_ONE 3 - DIFF_LT m5, %1, bm, m4, m6 - pxor m6, m6 - mova %3, m4 - pcmpgtw m6, tcm - pand m4, tcm - pandn m6, m7 - pand m4, m6 - LUMA_Q1 m5, %2, m1, m2, m4, m6 -%endmacro - -%macro LUMA_H_STORE 2 -%if mmsize == 8 - movq [r0-4], m0 - movq [r0+r1-4], m1 - movq [r0+r1*2-4], m2 - movq [r0+%2-4], m3 -%else - movq [r0-4], m0 - movhps [r0+r1-4], m0 - movq [r0+r1*2-4], m1 - movhps [%1-4], m1 - movq [%1+r1-4], m2 - movhps [%1+r1*2-4], m2 - movq [%1+%2-4], m3 - movhps [%1+r1*4-4], m3 -%endif -%endmacro - -%macro DEBLOCK_LUMA 0 -;----------------------------------------------------------------------------- -; void ff_deblock_v_luma_10(uint16_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_v_luma_10, 5,5,8*(mmsize/16) - %assign pad 5*mmsize+12-(stack_offset&15) - %define tcm [rsp] - %define ms1 [rsp+mmsize] - %define ms2 [rsp+mmsize*2] - %define am [rsp+mmsize*3] - %define bm [rsp+mmsize*4] - SUB rsp, pad - shl r2d, 2 - shl r3d, 2 - LOAD_AB m4, m5, r2d, r3d - mov r3, 32/mmsize - mov r2, r0 - sub r0, r1 - mova am, m4 - sub r0, r1 - mova bm, m5 - sub r0, r1 -.loop: - mova m0, [r0+r1] - mova m1, [r0+r1*2] - mova m2, [r2] - mova m3, [r2+r1] - - LOAD_MASK m0, m1, m2, m3, am, bm, m7, m4, m6 - LOAD_TC m6, r4 - mova tcm, m6 - - mova m5, [r0] - LUMA_DEBLOCK_ONE m1, m0, ms1 - mova [r0+r1], m5 - - mova m5, [r2+r1*2] - LUMA_DEBLOCK_ONE m2, m3, ms2 - mova [r2+r1], m5 - - pxor m5, m5 - mova m6, tcm - pcmpgtw m5, tcm - psubw m6, ms1 - pandn m5, m7 - psubw m6, ms2 - pand m5, m6 - DEBLOCK_P0_Q0 m1, m2, m0, m3, m5, m7, m6 - mova [r0+r1*2], m1 - mova [r2], m2 - - add r0, mmsize - add r2, mmsize - add r4, mmsize/8 - dec r3 - jg .loop - ADD rsp, pad - RET - -cglobal deblock_h_luma_10, 5,6,8*(mmsize/16) - %assign pad 7*mmsize+12-(stack_offset&15) - %define tcm [rsp] - %define ms1 [rsp+mmsize] - %define ms2 [rsp+mmsize*2] - %define p1m [rsp+mmsize*3] - %define p2m [rsp+mmsize*4] - %define am [rsp+mmsize*5] - %define bm [rsp+mmsize*6] - SUB rsp, pad - shl r2d, 2 - shl r3d, 2 - LOAD_AB m4, m5, r2d, r3d - mov r3, r1 - mova am, m4 - add r3, r1 - mov r5, 32/mmsize - mova bm, m5 - add r3, r1 -%if mmsize == 16 - mov r2, r0 - add r2, r3 -%endif -.loop: -%if mmsize == 8 - movq m2, [r0-8] ; y q2 q1 q0 - movq m7, [r0+0] - movq m5, [r0+r1-8] - movq m3, [r0+r1+0] - movq m0, [r0+r1*2-8] - movq m6, [r0+r1*2+0] - movq m1, [r0+r3-8] - TRANSPOSE4x4W 2, 5, 0, 1, 4 - SWAP 2, 7 - movq m7, [r0+r3] - TRANSPOSE4x4W 2, 3, 6, 7, 4 -%else - movu m5, [r0-8] ; y q2 q1 q0 p0 p1 p2 x - movu m0, [r0+r1-8] - movu m2, [r0+r1*2-8] - movu m3, [r2-8] - TRANSPOSE4x4W 5, 0, 2, 3, 6 - mova tcm, m3 - - movu m4, [r2+r1-8] - movu m1, [r2+r1*2-8] - movu m3, [r2+r3-8] - movu m7, [r2+r1*4-8] - TRANSPOSE4x4W 4, 1, 3, 7, 6 - - mova m6, tcm - punpcklqdq m6, m7 - punpckhqdq m5, m4 - SBUTTERFLY qdq, 0, 1, 7 - SBUTTERFLY qdq, 2, 3, 7 -%endif - - mova p2m, m6 - LOAD_MASK m0, m1, m2, m3, am, bm, m7, m4, m6 - LOAD_TC m6, r4 - mova tcm, m6 - - LUMA_DEBLOCK_ONE m1, m0, ms1 - mova p1m, m5 - - mova m5, p2m - LUMA_DEBLOCK_ONE m2, m3, ms2 - mova p2m, m5 - - pxor m5, m5 - mova m6, tcm - pcmpgtw m5, tcm - psubw m6, ms1 - pandn m5, m7 - psubw m6, ms2 - pand m5, m6 - DEBLOCK_P0_Q0 m1, m2, m0, m3, m5, m7, m6 - mova m0, p1m - mova m3, p2m - TRANSPOSE4x4W 0, 1, 2, 3, 4 - LUMA_H_STORE r2, r3 - - add r4, mmsize/8 - lea r0, [r0+r1*(mmsize/2)] - lea r2, [r2+r1*(mmsize/2)] - dec r5 - jg .loop - ADD rsp, pad - RET -%endmacro - -%if ARCH_X86_64 -; in: m0=p1, m1=p0, m2=q0, m3=q1, m8=p2, m9=q2 -; m12=alpha, m13=beta -; out: m0=p1', m3=q1', m1=p0', m2=q0' -; clobbers: m4, m5, m6, m7, m10, m11, m14 -%macro DEBLOCK_LUMA_INTER_SSE2 0 - LOAD_MASK m0, m1, m2, m3, m12, m13, m7, m4, m6 - LOAD_TC m6, r4 - DIFF_LT m8, m1, m13, m10, m4 - DIFF_LT m9, m2, m13, m11, m4 - pand m6, m7 - - mova m14, m6 - pxor m4, m4 - pcmpgtw m6, m4 - pand m6, m14 - - mova m5, m10 - pand m5, m6 - LUMA_Q1 m8, m0, m1, m2, m5, m4 - - mova m5, m11 - pand m5, m6 - LUMA_Q1 m9, m3, m1, m2, m5, m4 - - pxor m4, m4 - psubw m6, m10 - pcmpgtw m4, m14 - pandn m4, m7 - psubw m6, m11 - pand m4, m6 - DEBLOCK_P0_Q0 m1, m2, m0, m3, m4, m5, m6 - - SWAP 0, 8 - SWAP 3, 9 -%endmacro - -%macro DEBLOCK_LUMA_64 0 -cglobal deblock_v_luma_10, 5,5,15 - %define p2 m8 - %define p1 m0 - %define p0 m1 - %define q0 m2 - %define q1 m3 - %define q2 m9 - %define mask0 m7 - %define mask1 m10 - %define mask2 m11 - shl r2d, 2 - shl r3d, 2 - LOAD_AB m12, m13, r2d, r3d - mov r2, r0 - sub r0, r1 - sub r0, r1 - sub r0, r1 - mov r3, 2 -.loop: - mova p2, [r0] - mova p1, [r0+r1] - mova p0, [r0+r1*2] - mova q0, [r2] - mova q1, [r2+r1] - mova q2, [r2+r1*2] - DEBLOCK_LUMA_INTER_SSE2 - mova [r0+r1], p1 - mova [r0+r1*2], p0 - mova [r2], q0 - mova [r2+r1], q1 - add r0, mmsize - add r2, mmsize - add r4, 2 - dec r3 - jg .loop - REP_RET - -cglobal deblock_h_luma_10, 5,7,15 - shl r2d, 2 - shl r3d, 2 - LOAD_AB m12, m13, r2d, r3d - mov r2, r1 - add r2, r1 - add r2, r1 - mov r5, r0 - add r5, r2 - mov r6, 2 -.loop: - movu m8, [r0-8] ; y q2 q1 q0 p0 p1 p2 x - movu m0, [r0+r1-8] - movu m2, [r0+r1*2-8] - movu m9, [r5-8] - movu m5, [r5+r1-8] - movu m1, [r5+r1*2-8] - movu m3, [r5+r2-8] - movu m7, [r5+r1*4-8] - - TRANSPOSE4x4W 8, 0, 2, 9, 10 - TRANSPOSE4x4W 5, 1, 3, 7, 10 - - punpckhqdq m8, m5 - SBUTTERFLY qdq, 0, 1, 10 - SBUTTERFLY qdq, 2, 3, 10 - punpcklqdq m9, m7 - - DEBLOCK_LUMA_INTER_SSE2 - - TRANSPOSE4x4W 0, 1, 2, 3, 4 - LUMA_H_STORE r5, r2 - add r4, 2 - lea r0, [r0+r1*8] - lea r5, [r5+r1*8] - dec r6 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -DEBLOCK_LUMA_64 -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_LUMA_64 -%endif -%endif - -%macro SWAPMOVA 2 -%ifid %1 - SWAP %1, %2 -%else - mova %1, %2 -%endif -%endmacro - -; in: t0-t2: tmp registers -; %1=p0 %2=p1 %3=p2 %4=p3 %5=q0 %6=q1 %7=mask0 -; %8=mask1p %9=2 %10=p0' %11=p1' %12=p2' -%macro LUMA_INTRA_P012 12 ; p0..p3 in memory -%if ARCH_X86_64 - paddw t0, %3, %2 - mova t2, %4 - paddw t2, %3 -%else - mova t0, %3 - mova t2, %4 - paddw t0, %2 - paddw t2, %3 -%endif - paddw t0, %1 - paddw t2, t2 - paddw t0, %5 - paddw t2, %9 - paddw t0, %9 ; (p2 + p1 + p0 + q0 + 2) - paddw t2, t0 ; (2*p3 + 3*p2 + p1 + p0 + q0 + 4) - - psrlw t2, 3 - psrlw t1, t0, 2 - psubw t2, %3 - psubw t1, %2 - pand t2, %8 - pand t1, %8 - paddw t2, %3 - paddw t1, %2 - SWAPMOVA %11, t1 - - psubw t1, t0, %3 - paddw t0, t0 - psubw t1, %5 - psubw t0, %3 - paddw t1, %6 - paddw t1, %2 - paddw t0, %6 - psrlw t1, 2 ; (2*p1 + p0 + q1 + 2)/4 - psrlw t0, 3 ; (p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4)>>3 - - pxor t0, t1 - pxor t1, %1 - pand t0, %8 - pand t1, %7 - pxor t0, t1 - pxor t0, %1 - SWAPMOVA %10, t0 - SWAPMOVA %12, t2 -%endmacro - -%macro LUMA_INTRA_INIT 1 - %xdefine pad %1*mmsize+((gprsize*3) % mmsize)-(stack_offset&15) - %define t0 m4 - %define t1 m5 - %define t2 m6 - %define t3 m7 - %assign i 4 -%rep %1 - CAT_XDEFINE t, i, [rsp+mmsize*(i-4)] - %assign i i+1 -%endrep - SUB rsp, pad -%endmacro - -; in: %1-%3=tmp, %4=p2, %5=q2 -%macro LUMA_INTRA_INTER 5 - LOAD_AB t0, t1, r2d, r3d - mova %1, t0 - LOAD_MASK m0, m1, m2, m3, %1, t1, t0, t2, t3 -%if ARCH_X86_64 - mova %2, t0 ; mask0 - psrlw t3, %1, 2 -%else - mova t3, %1 - mova %2, t0 ; mask0 - psrlw t3, 2 -%endif - paddw t3, [pw_2] ; alpha/4+2 - DIFF_LT m1, m2, t3, t2, t0 ; t2 = |p0-q0| < alpha/4+2 - pand t2, %2 - mova t3, %5 ; q2 - mova %1, t2 ; mask1 - DIFF_LT t3, m2, t1, t2, t0 ; t2 = |q2-q0| < beta - pand t2, %1 - mova t3, %4 ; p2 - mova %3, t2 ; mask1q - DIFF_LT t3, m1, t1, t2, t0 ; t2 = |p2-p0| < beta - pand t2, %1 - mova %1, t2 ; mask1p -%endmacro - -%macro LUMA_H_INTRA_LOAD 0 -%if mmsize == 8 - movu t0, [r0-8] - movu t1, [r0+r1-8] - movu m0, [r0+r1*2-8] - movu m1, [r0+r4-8] - TRANSPOSE4x4W 4, 5, 0, 1, 2 - mova t4, t0 ; p3 - mova t5, t1 ; p2 - - movu m2, [r0] - movu m3, [r0+r1] - movu t0, [r0+r1*2] - movu t1, [r0+r4] - TRANSPOSE4x4W 2, 3, 4, 5, 6 - mova t6, t0 ; q2 - mova t7, t1 ; q3 -%else - movu t0, [r0-8] - movu t1, [r0+r1-8] - movu m0, [r0+r1*2-8] - movu m1, [r0+r5-8] - movu m2, [r4-8] - movu m3, [r4+r1-8] - movu t2, [r4+r1*2-8] - movu t3, [r4+r5-8] - TRANSPOSE8x8W 4, 5, 0, 1, 2, 3, 6, 7, t4, t5 - mova t4, t0 ; p3 - mova t5, t1 ; p2 - mova t6, t2 ; q2 - mova t7, t3 ; q3 -%endif -%endmacro - -; in: %1=q3 %2=q2' %3=q1' %4=q0' %5=p0' %6=p1' %7=p2' %8=p3 %9=tmp -%macro LUMA_H_INTRA_STORE 9 -%if mmsize == 8 - TRANSPOSE4x4W %1, %2, %3, %4, %9 - movq [r0-8], m%1 - movq [r0+r1-8], m%2 - movq [r0+r1*2-8], m%3 - movq [r0+r4-8], m%4 - movq m%1, %8 - TRANSPOSE4x4W %5, %6, %7, %1, %9 - movq [r0], m%5 - movq [r0+r1], m%6 - movq [r0+r1*2], m%7 - movq [r0+r4], m%1 -%else - TRANSPOSE2x4x4W %1, %2, %3, %4, %9 - movq [r0-8], m%1 - movq [r0+r1-8], m%2 - movq [r0+r1*2-8], m%3 - movq [r0+r5-8], m%4 - movhps [r4-8], m%1 - movhps [r4+r1-8], m%2 - movhps [r4+r1*2-8], m%3 - movhps [r4+r5-8], m%4 -%ifnum %8 - SWAP %1, %8 -%else - mova m%1, %8 -%endif - TRANSPOSE2x4x4W %5, %6, %7, %1, %9 - movq [r0], m%5 - movq [r0+r1], m%6 - movq [r0+r1*2], m%7 - movq [r0+r5], m%1 - movhps [r4], m%5 - movhps [r4+r1], m%6 - movhps [r4+r1*2], m%7 - movhps [r4+r5], m%1 -%endif -%endmacro - -%if ARCH_X86_64 -;----------------------------------------------------------------------------- -; void ff_deblock_v_luma_intra_10(uint16_t *pix, int stride, int alpha, -; int beta) -;----------------------------------------------------------------------------- -%macro DEBLOCK_LUMA_INTRA_64 0 -cglobal deblock_v_luma_intra_10, 4,7,16 - %define t0 m1 - %define t1 m2 - %define t2 m4 - %define p2 m8 - %define p1 m9 - %define p0 m10 - %define q0 m11 - %define q1 m12 - %define q2 m13 - %define aa m5 - %define bb m14 - lea r4, [r1*4] - lea r5, [r1*3] ; 3*stride - neg r4 - add r4, r0 ; pix-4*stride - mov r6, 2 - mova m0, [pw_2] - shl r2d, 2 - shl r3d, 2 - LOAD_AB aa, bb, r2d, r3d -.loop: - mova p2, [r4+r1] - mova p1, [r4+2*r1] - mova p0, [r4+r5] - mova q0, [r0] - mova q1, [r0+r1] - mova q2, [r0+2*r1] - - LOAD_MASK p1, p0, q0, q1, aa, bb, m3, t0, t1 - mova t2, aa - psrlw t2, 2 - paddw t2, m0 ; alpha/4+2 - DIFF_LT p0, q0, t2, m6, t0 ; m6 = |p0-q0| < alpha/4+2 - DIFF_LT p2, p0, bb, t1, t0 ; m7 = |p2-p0| < beta - DIFF_LT q2, q0, bb, m7, t0 ; t1 = |q2-q0| < beta - pand m6, m3 - pand m7, m6 - pand m6, t1 - LUMA_INTRA_P012 p0, p1, p2, [r4], q0, q1, m3, m6, m0, [r4+r5], [r4+2*r1], [r4+r1] - LUMA_INTRA_P012 q0, q1, q2, [r0+r5], p0, p1, m3, m7, m0, [r0], [r0+r1], [r0+2*r1] - add r0, mmsize - add r4, mmsize - dec r6 - jg .loop - REP_RET - -;----------------------------------------------------------------------------- -; void ff_deblock_h_luma_intra_10(uint16_t *pix, int stride, int alpha, -; int beta) -;----------------------------------------------------------------------------- -cglobal deblock_h_luma_intra_10, 4,7,16 - %define t0 m15 - %define t1 m14 - %define t2 m2 - %define q3 m5 - %define q2 m8 - %define q1 m9 - %define q0 m10 - %define p0 m11 - %define p1 m12 - %define p2 m13 - %define p3 m4 - %define spill [rsp] - %assign pad 24-(stack_offset&15) - SUB rsp, pad - lea r4, [r1*4] - lea r5, [r1*3] ; 3*stride - add r4, r0 ; pix+4*stride - mov r6, 2 - mova m0, [pw_2] - shl r2d, 2 - shl r3d, 2 -.loop: - movu q3, [r0-8] - movu q2, [r0+r1-8] - movu q1, [r0+r1*2-8] - movu q0, [r0+r5-8] - movu p0, [r4-8] - movu p1, [r4+r1-8] - movu p2, [r4+r1*2-8] - movu p3, [r4+r5-8] - TRANSPOSE8x8W 5, 8, 9, 10, 11, 12, 13, 4, 1 - - LOAD_AB m1, m2, r2d, r3d - LOAD_MASK q1, q0, p0, p1, m1, m2, m3, t0, t1 - psrlw m1, 2 - paddw m1, m0 ; alpha/4+2 - DIFF_LT p0, q0, m1, m6, t0 ; m6 = |p0-q0| < alpha/4+2 - DIFF_LT q2, q0, m2, t1, t0 ; t1 = |q2-q0| < beta - DIFF_LT p0, p2, m2, m7, t0 ; m7 = |p2-p0| < beta - pand m6, m3 - pand m7, m6 - pand m6, t1 - - mova spill, q3 - LUMA_INTRA_P012 q0, q1, q2, q3, p0, p1, m3, m6, m0, m5, m1, q2 - LUMA_INTRA_P012 p0, p1, p2, p3, q0, q1, m3, m7, m0, p0, m6, p2 - mova m7, spill - - LUMA_H_INTRA_STORE 7, 8, 1, 5, 11, 6, 13, 4, 14 - - lea r0, [r0+r1*8] - lea r4, [r4+r1*8] - dec r6 - jg .loop - ADD rsp, pad - RET -%endmacro - -INIT_XMM sse2 -DEBLOCK_LUMA_INTRA_64 -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_LUMA_INTRA_64 -%endif - -%endif - -%macro DEBLOCK_LUMA_INTRA 0 -;----------------------------------------------------------------------------- -; void ff_deblock_v_luma_intra_10(uint16_t *pix, int stride, int alpha, -; int beta) -;----------------------------------------------------------------------------- -cglobal deblock_v_luma_intra_10, 4,7,8*(mmsize/16) - LUMA_INTRA_INIT 3 - lea r4, [r1*4] - lea r5, [r1*3] - neg r4 - add r4, r0 - mov r6, 32/mmsize - shl r2d, 2 - shl r3d, 2 -.loop: - mova m0, [r4+r1*2] ; p1 - mova m1, [r4+r5] ; p0 - mova m2, [r0] ; q0 - mova m3, [r0+r1] ; q1 - LUMA_INTRA_INTER t4, t5, t6, [r4+r1], [r0+r1*2] - LUMA_INTRA_P012 m1, m0, t3, [r4], m2, m3, t5, t4, [pw_2], [r4+r5], [r4+2*r1], [r4+r1] - mova t3, [r0+r1*2] ; q2 - LUMA_INTRA_P012 m2, m3, t3, [r0+r5], m1, m0, t5, t6, [pw_2], [r0], [r0+r1], [r0+2*r1] - add r0, mmsize - add r4, mmsize - dec r6 - jg .loop - ADD rsp, pad - RET - -;----------------------------------------------------------------------------- -; void ff_deblock_h_luma_intra_10(uint16_t *pix, int stride, int alpha, -; int beta) -;----------------------------------------------------------------------------- -cglobal deblock_h_luma_intra_10, 4,7,8*(mmsize/16) - LUMA_INTRA_INIT 8 -%if mmsize == 8 - lea r4, [r1*3] - mov r5, 32/mmsize -%else - lea r4, [r1*4] - lea r5, [r1*3] ; 3*stride - add r4, r0 ; pix+4*stride - mov r6, 32/mmsize -%endif - shl r2d, 2 - shl r3d, 2 -.loop: - LUMA_H_INTRA_LOAD - LUMA_INTRA_INTER t8, t9, t10, t5, t6 - - LUMA_INTRA_P012 m1, m0, t3, t4, m2, m3, t9, t8, [pw_2], t8, t5, t11 - mova t3, t6 ; q2 - LUMA_INTRA_P012 m2, m3, t3, t7, m1, m0, t9, t10, [pw_2], m4, t6, m5 - - mova m2, t4 - mova m0, t11 - mova m1, t5 - mova m3, t8 - mova m6, t6 - - LUMA_H_INTRA_STORE 2, 0, 1, 3, 4, 6, 5, t7, 7 - - lea r0, [r0+r1*(mmsize/2)] -%if mmsize == 8 - dec r5 -%else - lea r4, [r4+r1*(mmsize/2)] - dec r6 -%endif - jg .loop - ADD rsp, pad - RET -%endmacro - -%if ARCH_X86_64 == 0 -INIT_MMX mmxext -DEBLOCK_LUMA -DEBLOCK_LUMA_INTRA -INIT_XMM sse2 -DEBLOCK_LUMA -DEBLOCK_LUMA_INTRA -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_LUMA -DEBLOCK_LUMA_INTRA -%endif -%endif - -; in: %1=p0, %2=q0, %3=p1, %4=q1, %5=mask, %6=tmp, %7=tmp -; out: %1=p0', %2=q0' -%macro CHROMA_DEBLOCK_P0_Q0_INTRA 7 - mova %6, [pw_2] - paddw %6, %3 - paddw %6, %4 - paddw %7, %6, %2 - paddw %6, %1 - paddw %6, %3 - paddw %7, %4 - psraw %6, 2 - psraw %7, 2 - psubw %6, %1 - psubw %7, %2 - pand %6, %5 - pand %7, %5 - paddw %1, %6 - paddw %2, %7 -%endmacro - -%macro CHROMA_V_LOAD 1 - mova m0, [r0] ; p1 - mova m1, [r0+r1] ; p0 - mova m2, [%1] ; q0 - mova m3, [%1+r1] ; q1 -%endmacro - -%macro CHROMA_V_STORE 0 - mova [r0+1*r1], m1 - mova [r0+2*r1], m2 -%endmacro - -; in: 8 rows of 4 words in %4..%11 -; out: 4 rows of 8 words in m0..m3 -%macro TRANSPOSE4x8W_LOAD 8 - movq m0, %1 - movq m2, %2 - movq m1, %3 - movq m3, %4 - - punpcklwd m0, m2 - punpcklwd m1, m3 - punpckhdq m2, m0, m1 - punpckldq m0, m1 - - movq m4, %5 - movq m6, %6 - movq m5, %7 - movq m3, %8 - - punpcklwd m4, m6 - punpcklwd m5, m3 - punpckhdq m6, m4, m5 - punpckldq m4, m5 - - punpckhqdq m1, m0, m4 - punpcklqdq m0, m4 - punpckhqdq m3, m2, m6 - punpcklqdq m2, m6 -%endmacro - -; in: 4 rows of 8 words in m0..m3 -; out: 8 rows of 4 words in %1..%8 -%macro TRANSPOSE8x4W_STORE 8 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - movq %1, m0 - movhps %2, m0 - movq %3, m1 - movhps %4, m1 - movq %5, m2 - movhps %6, m2 - movq %7, m3 - movhps %8, m3 -%endmacro - -; %1 = base + 3*stride -; %2 = 3*stride (unused on mmx) -; %3, %4 = place to store p1 and q1 values -%macro CHROMA_H_LOAD 4 - %if mmsize == 8 - movq m0, [pix_q - 4] - movq m1, [pix_q + stride_q - 4] - movq m2, [pix_q + 2*stride_q - 4] - movq m3, [%1 - 4] - TRANSPOSE4x4W 0, 1, 2, 3, 4 - %else - TRANSPOSE4x8W_LOAD PASS8ROWS(pix_q-4, %1-4, stride_q, %2) - %endif - mova %3, m0 - mova %4, m3 -%endmacro - -; %1 = base + 3*stride -; %2 = 3*stride (unused on mmx) -; %3, %4 = place to load p1 and q1 values -%macro CHROMA_H_STORE 4 - mova m0, %3 - mova m3, %4 - %if mmsize == 8 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - movq [pix_q - 4], m0 - movq [pix_q + stride_q - 4], m1 - movq [pix_q + 2*stride_q - 4], m2 - movq [%1 - 4], m3 - %else - TRANSPOSE8x4W_STORE PASS8ROWS(pix_q-4, %1-4, stride_q, %2) - %endif -%endmacro - -%macro CHROMA_V_LOAD_TC 2 - movd %1, [%2] - punpcklbw %1, %1 - punpcklwd %1, %1 - psraw %1, 6 -%endmacro - -%macro DEBLOCK_CHROMA 0 -;----------------------------------------------------------------------------- -; void ff_deblock_v_chroma_10(uint16_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_v_chroma_10, 5,7-(mmsize/16),8*(mmsize/16) - mov r5, r0 - sub r0, r1 - sub r0, r1 - shl r2d, 2 - shl r3d, 2 -%if mmsize < 16 - mov r6, 16/mmsize -.loop: -%endif - CHROMA_V_LOAD r5 - LOAD_AB m4, m5, r2d, r3d - LOAD_MASK m0, m1, m2, m3, m4, m5, m7, m6, m4 - pxor m4, m4 - CHROMA_V_LOAD_TC m6, r4 - psubw m6, [pw_3] - pmaxsw m6, m4 - pand m7, m6 - DEBLOCK_P0_Q0 m1, m2, m0, m3, m7, m5, m6 - CHROMA_V_STORE -%if mmsize < 16 - add r0, mmsize - add r5, mmsize - add r4, mmsize/4 - dec r6 - jg .loop - REP_RET -%else - RET -%endif - -;----------------------------------------------------------------------------- -; void ff_deblock_v_chroma_intra_10(uint16_t *pix, int stride, int alpha, -; int beta) -;----------------------------------------------------------------------------- -cglobal deblock_v_chroma_intra_10, 4,6-(mmsize/16),8*(mmsize/16) - mov r4, r0 - sub r0, r1 - sub r0, r1 - shl r2d, 2 - shl r3d, 2 -%if mmsize < 16 - mov r5, 16/mmsize -.loop: -%endif - CHROMA_V_LOAD r4 - LOAD_AB m4, m5, r2d, r3d - LOAD_MASK m0, m1, m2, m3, m4, m5, m7, m6, m4 - CHROMA_DEBLOCK_P0_Q0_INTRA m1, m2, m0, m3, m7, m5, m6 - CHROMA_V_STORE -%if mmsize < 16 - add r0, mmsize - add r4, mmsize - dec r5 - jg .loop - REP_RET -%else - RET -%endif - -;----------------------------------------------------------------------------- -; void ff_deblock_h_chroma_10(uint16_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_h_chroma_10, 5, 7, 8, 0-2*mmsize, pix_, stride_, alpha_, beta_, tc0_ - shl alpha_d, 2 - shl beta_d, 2 - mov r5, pix_q - lea r6, [3*stride_q] - add r5, r6 -%if mmsize == 8 - mov r6d, 2 - .loop: -%endif - - CHROMA_H_LOAD r5, r6, [rsp], [rsp + mmsize] - LOAD_AB m4, m5, alpha_d, beta_d - LOAD_MASK m0, m1, m2, m3, m4, m5, m7, m6, m4 - pxor m4, m4 - CHROMA_V_LOAD_TC m6, tc0_q - psubw m6, [pw_3] - pmaxsw m6, m4 - pand m7, m6 - DEBLOCK_P0_Q0 m1, m2, m0, m3, m7, m5, m6 - CHROMA_H_STORE r5, r6, [rsp], [rsp + mmsize] - -%if mmsize == 8 - lea pix_q, [pix_q + 4*stride_q] - lea r5, [r5 + 4*stride_q] - add tc0_q, 2 - dec r6d - jg .loop -%endif -RET - -;----------------------------------------------------------------------------- -; void ff_deblock_h_chroma422_10(uint16_t *pix, int stride, int alpha, int beta, -; int8_t *tc0) -;----------------------------------------------------------------------------- -cglobal deblock_h_chroma422_10, 5, 7, 8, 0-3*mmsize, pix_, stride_, alpha_, beta_, tc0_ - shl alpha_d, 2 - shl beta_d, 2 - - movd m0, [tc0_q] - punpcklbw m0, m0 - psraw m0, 6 - movq [rsp], m0 - - mov r5, pix_q - lea r6, [3*stride_q] - add r5, r6 - - mov r4, -8 - .loop: - - CHROMA_H_LOAD r5, r6, [rsp + 1*mmsize], [rsp + 2*mmsize] - LOAD_AB m4, m5, alpha_d, beta_d - LOAD_MASK m0, m1, m2, m3, m4, m5, m7, m6, m4 - pxor m4, m4 - movd m6, [rsp + r4 + 8] - punpcklwd m6, m6 - punpcklwd m6, m6 - psubw m6, [pw_3] - pmaxsw m6, m4 - pand m7, m6 - DEBLOCK_P0_Q0 m1, m2, m0, m3, m7, m5, m6 - CHROMA_H_STORE r5, r6, [rsp + 1*mmsize], [rsp + 2*mmsize] - - lea pix_q, [pix_q + (mmsize/2)*stride_q] - lea r5, [r5 + (mmsize/2)*stride_q] - add r4, (mmsize/4) - jl .loop -RET - -%endmacro - -%if ARCH_X86_64 == 0 -INIT_MMX mmxext -DEBLOCK_CHROMA -%endif -INIT_XMM sse2 -DEBLOCK_CHROMA -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEBLOCK_CHROMA -%endif diff --git a/libavcodec/x86/h264_idct.asm b/libavcodec/x86/h264_idct.asm deleted file mode 100644 index c54f9f1a68..0000000000 --- a/libavcodec/x86/h264_idct.asm +++ /dev/null @@ -1,1199 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2-optimized H.264 iDCT -;***************************************************************************** -;* Copyright (C) 2004-2005 Michael Niedermayer, Loren Merritt -;* Copyright (C) 2003-2008 x264 project -;* -;* Authors: Laurent Aimar -;* Loren Merritt -;* Holger Lubitz -;* Min Chen -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -scan8_mem: db 4+ 1*8, 5+ 1*8, 4+ 2*8, 5+ 2*8 - db 6+ 1*8, 7+ 1*8, 6+ 2*8, 7+ 2*8 - db 4+ 3*8, 5+ 3*8, 4+ 4*8, 5+ 4*8 - db 6+ 3*8, 7+ 3*8, 6+ 4*8, 7+ 4*8 - db 4+ 6*8, 5+ 6*8, 4+ 7*8, 5+ 7*8 - db 6+ 6*8, 7+ 6*8, 6+ 7*8, 7+ 7*8 - db 4+ 8*8, 5+ 8*8, 4+ 9*8, 5+ 9*8 - db 6+ 8*8, 7+ 8*8, 6+ 9*8, 7+ 9*8 - db 4+11*8, 5+11*8, 4+12*8, 5+12*8 - db 6+11*8, 7+11*8, 6+12*8, 7+12*8 - db 4+13*8, 5+13*8, 4+14*8, 5+14*8 - db 6+13*8, 7+13*8, 6+14*8, 7+14*8 -%ifdef PIC -%define npicregs 1 -%define scan8 picregq -%else -%define npicregs 0 -%define scan8 scan8_mem -%endif - -cextern pw_32 -cextern pw_1 - -SECTION .text - -; %1=uint8_t *dst, %2=int16_t *block, %3=int stride -%macro IDCT4_ADD 3 - ; Load dct coeffs - movq m0, [%2] - movq m1, [%2+8] - movq m2, [%2+16] - movq m3, [%2+24] - - IDCT4_1D w, 0, 1, 2, 3, 4, 5 - mova m6, [pw_32] - %if mmsize == 8 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - %else - punpcklwd m0, m1 - punpcklwd m2, m3 - SBUTTERFLY dq, 0, 2, 4 - MOVHL m1, m0 - MOVHL m3, m2 - %endif - paddw m0, m6 - IDCT4_1D w, 0, 1, 2, 3, 4, 5 - pxor m7, m7 - movq [%2+ 0], m7 - movq [%2+ 8], m7 - movq [%2+16], m7 - movq [%2+24], m7 - - STORE_DIFFx2 m0, m1, m4, m5, m7, 6, %1, %3 - lea %1, [%1+%3*2] - STORE_DIFFx2 m2, m3, m4, m5, m7, 6, %1, %3 -%endmacro - -INIT_MMX mmx -; void ff_h264_idct_add_8_mmx(uint8_t *dst, int16_t *block, int stride) -cglobal h264_idct_add_8, 3, 3, 0 - movsxdifnidn r2, r2d - IDCT4_ADD r0, r1, r2 - RET - -%macro IDCT8_1D 2 - psraw m0, m1, 1 - SWAP 0, 1 - psraw m4, m5, 1 - paddw m4, m5 - paddw m1, m0 - paddw m4, m7 - paddw m1, m5 - psubw m4, m0 - paddw m1, m3 - - psubw m0, m3 - psubw m5, m3 - psraw m3, 1 - paddw m0, m7 - psubw m5, m7 - psraw m7, 1 - psubw m0, m3 - psubw m5, m7 - - psraw m7, m1, 2 - SWAP 7,1 - psraw m3, m4, 2 - paddw m3, m0 - psraw m0, 2 - paddw m1, m5 - psraw m5, 2 - psubw m0, m4 - psubw m7, m5 - - psraw m5, m6, 1 - SWAP 5,6 - psraw m4, m2, 1 - paddw m6, m2 - psubw m4, m5 - - mova m2, %1 - mova m5, %2 - SUMSUB_BA w, 5, 2 - SUMSUB_BA w, 6, 5 - SUMSUB_BA w, 4, 2 - SUMSUB_BA w, 7, 6 - SUMSUB_BA w, 0, 4 - SUMSUB_BA w, 3, 2 - SUMSUB_BA w, 1, 5 - SWAP 7, 6, 4, 5, 2, 3, 1, 0 ; 70315246 -> 01234567 -%endmacro - -%macro IDCT8_1D_FULL 1 - mova m7, [%1+112] - mova m6, [%1+ 96] - mova m5, [%1+ 80] - mova m3, [%1+ 48] - mova m2, [%1+ 32] - mova m1, [%1+ 16] - IDCT8_1D [%1], [%1+ 64] -%endmacro - -; %1=int16_t *block, %2=int16_t *dstblock -%macro IDCT8_ADD_MMX_START 2 - IDCT8_1D_FULL %1 - mova [%1], m7 - TRANSPOSE4x4W 0, 1, 2, 3, 7 - mova m7, [%1] - mova [%2 ], m0 - mova [%2+16], m1 - mova [%2+32], m2 - mova [%2+48], m3 - TRANSPOSE4x4W 4, 5, 6, 7, 3 - mova [%2+ 8], m4 - mova [%2+24], m5 - mova [%2+40], m6 - mova [%2+56], m7 -%endmacro - -; %1=uint8_t *dst, %2=int16_t *block, %3=int stride -%macro IDCT8_ADD_MMX_END 3-4 - IDCT8_1D_FULL %2 - mova [%2 ], m5 - mova [%2+16], m6 - mova [%2+32], m7 - - pxor m7, m7 -%if %0 == 4 - movq [%4+ 0], m7 - movq [%4+ 8], m7 - movq [%4+ 16], m7 - movq [%4+ 24], m7 - movq [%4+ 32], m7 - movq [%4+ 40], m7 - movq [%4+ 48], m7 - movq [%4+ 56], m7 - movq [%4+ 64], m7 - movq [%4+ 72], m7 - movq [%4+ 80], m7 - movq [%4+ 88], m7 - movq [%4+ 96], m7 - movq [%4+104], m7 - movq [%4+112], m7 - movq [%4+120], m7 -%endif - STORE_DIFFx2 m0, m1, m5, m6, m7, 6, %1, %3 - lea %1, [%1+%3*2] - STORE_DIFFx2 m2, m3, m5, m6, m7, 6, %1, %3 - mova m0, [%2 ] - mova m1, [%2+16] - mova m2, [%2+32] - lea %1, [%1+%3*2] - STORE_DIFFx2 m4, m0, m5, m6, m7, 6, %1, %3 - lea %1, [%1+%3*2] - STORE_DIFFx2 m1, m2, m5, m6, m7, 6, %1, %3 -%endmacro - -INIT_MMX mmx -; void ff_h264_idct8_add_8_mmx(uint8_t *dst, int16_t *block, int stride) -cglobal h264_idct8_add_8, 3, 4, 0 - movsxdifnidn r2, r2d - %assign pad 128+4-(stack_offset&7) - SUB rsp, pad - - add word [r1], 32 - IDCT8_ADD_MMX_START r1 , rsp - IDCT8_ADD_MMX_START r1+8, rsp+64 - lea r3, [r0+4] - IDCT8_ADD_MMX_END r0 , rsp, r2, r1 - IDCT8_ADD_MMX_END r3 , rsp+8, r2 - - ADD rsp, pad - RET - -; %1=uint8_t *dst, %2=int16_t *block, %3=int stride -%macro IDCT8_ADD_SSE 4 - IDCT8_1D_FULL %2 -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [%2], [%2+16] -%endif - paddw m0, [pw_32] - -%if ARCH_X86_64 == 0 - mova [%2 ], m0 - mova [%2+16], m4 - IDCT8_1D [%2], [%2+ 16] - mova [%2 ], m6 - mova [%2+16], m7 -%else - SWAP 0, 8 - SWAP 4, 9 - IDCT8_1D m8, m9 - SWAP 6, 8 - SWAP 7, 9 -%endif - - pxor m7, m7 - lea %4, [%3*3] - STORE_DIFF m0, m6, m7, [%1 ] - STORE_DIFF m1, m6, m7, [%1+%3 ] - STORE_DIFF m2, m6, m7, [%1+%3*2] - STORE_DIFF m3, m6, m7, [%1+%4 ] -%if ARCH_X86_64 == 0 - mova m0, [%2 ] - mova m1, [%2+16] -%else - SWAP 0, 8 - SWAP 1, 9 -%endif - mova [%2+ 0], m7 - mova [%2+ 16], m7 - mova [%2+ 32], m7 - mova [%2+ 48], m7 - mova [%2+ 64], m7 - mova [%2+ 80], m7 - mova [%2+ 96], m7 - mova [%2+112], m7 - lea %1, [%1+%3*4] - STORE_DIFF m4, m6, m7, [%1 ] - STORE_DIFF m5, m6, m7, [%1+%3 ] - STORE_DIFF m0, m6, m7, [%1+%3*2] - STORE_DIFF m1, m6, m7, [%1+%4 ] -%endmacro - -INIT_XMM sse2 -; void ff_h264_idct8_add_8_sse2(uint8_t *dst, int16_t *block, int stride) -cglobal h264_idct8_add_8, 3, 4, 10 - movsxdifnidn r2, r2d - IDCT8_ADD_SSE r0, r1, r2, r3 - RET - -%macro DC_ADD_MMXEXT_INIT 2 - add %1, 32 - sar %1, 6 - movd m0, %1d - lea %1, [%2*3] - pshufw m0, m0, 0 - pxor m1, m1 - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 -%endmacro - -%macro DC_ADD_MMXEXT_OP 4 - %1 m2, [%2 ] - %1 m3, [%2+%3 ] - %1 m4, [%2+%3*2] - %1 m5, [%2+%4 ] - paddusb m2, m0 - paddusb m3, m0 - paddusb m4, m0 - paddusb m5, m0 - psubusb m2, m1 - psubusb m3, m1 - psubusb m4, m1 - psubusb m5, m1 - %1 [%2 ], m2 - %1 [%2+%3 ], m3 - %1 [%2+%3*2], m4 - %1 [%2+%4 ], m5 -%endmacro - -INIT_MMX mmxext -; void ff_h264_idct_dc_add_8_mmxext(uint8_t *dst, int16_t *block, int stride) -%if ARCH_X86_64 -cglobal h264_idct_dc_add_8, 3, 4, 0 - movsxd r2, r2d - movsx r3, word [r1] - mov dword [r1], 0 - DC_ADD_MMXEXT_INIT r3, r2 - DC_ADD_MMXEXT_OP movh, r0, r2, r3 - RET - -; void ff_h264_idct8_dc_add_8_mmxext(uint8_t *dst, int16_t *block, int stride) -cglobal h264_idct8_dc_add_8, 3, 4, 0 - movsxd r2, r2d - movsx r3, word [r1] - mov dword [r1], 0 - DC_ADD_MMXEXT_INIT r3, r2 - DC_ADD_MMXEXT_OP mova, r0, r2, r3 - lea r0, [r0+r2*4] - DC_ADD_MMXEXT_OP mova, r0, r2, r3 - RET -%else -; void ff_h264_idct_dc_add_8_mmxext(uint8_t *dst, int16_t *block, int stride) -cglobal h264_idct_dc_add_8, 2, 3, 0 - movsx r2, word [r1] - mov dword [r1], 0 - mov r1, r2m - DC_ADD_MMXEXT_INIT r2, r1 - DC_ADD_MMXEXT_OP movh, r0, r1, r2 - RET - -; void ff_h264_idct8_dc_add_8_mmxext(uint8_t *dst, int16_t *block, int stride) -cglobal h264_idct8_dc_add_8, 2, 3, 0 - movsx r2, word [r1] - mov dword [r1], 0 - mov r1, r2m - DC_ADD_MMXEXT_INIT r2, r1 - DC_ADD_MMXEXT_OP mova, r0, r1, r2 - lea r0, [r0+r1*4] - DC_ADD_MMXEXT_OP mova, r0, r1, r2 - RET -%endif - -INIT_MMX mmx -; void ff_h264_idct_add16_8_mmx(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add16_8, 5, 7 + npicregs, 0, dst, block_offset, block, stride, nnzc, cntr, coeff, picreg - movsxdifnidn r3, r3d - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .skipblock - mov r6d, dword [r1+r5*4] - lea r6, [r0+r6] - IDCT4_ADD r6, r2, r3 -.skipblock: - inc r5 - add r2, 32 - cmp r5, 16 - jl .nextblock - REP_RET - -; void ff_h264_idct8_add4_8_mmx(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct8_add4_8, 5, 7 + npicregs, 0, dst, block_offset, block, stride, nnzc, cntr, coeff, picreg - movsxdifnidn r3, r3d - %assign pad 128+4-(stack_offset&7) - SUB rsp, pad - - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .skipblock - mov r6d, dword [r1+r5*4] - add r6, r0 - add word [r2], 32 - IDCT8_ADD_MMX_START r2 , rsp - IDCT8_ADD_MMX_START r2+8, rsp+64 - IDCT8_ADD_MMX_END r6 , rsp, r3, r2 - mov r6d, dword [r1+r5*4] - lea r6, [r0+r6+4] - IDCT8_ADD_MMX_END r6 , rsp+8, r3 -.skipblock: - add r5, 4 - add r2, 128 - cmp r5, 16 - jl .nextblock - ADD rsp, pad - RET - -INIT_MMX mmxext -; void ff_h264_idct_add16_8_mmxext(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add16_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .skipblock - cmp r6, 1 - jnz .no_dc - movsx r6, word [r2] - test r6, r6 - jz .no_dc - mov word [r2], 0 - DC_ADD_MMXEXT_INIT r6, r3 -%if ARCH_X86_64 == 0 -%define dst2q r1 -%define dst2d r1d -%endif - mov dst2d, dword [r1+r5*4] - lea dst2q, [r0+dst2q] - DC_ADD_MMXEXT_OP movh, dst2q, r3, r6 -%if ARCH_X86_64 == 0 - mov r1, r1m -%endif - inc r5 - add r2, 32 - cmp r5, 16 - jl .nextblock - REP_RET -.no_dc: - mov r6d, dword [r1+r5*4] - add r6, r0 - IDCT4_ADD r6, r2, r3 -.skipblock: - inc r5 - add r2, 32 - cmp r5, 16 - jl .nextblock - REP_RET - -INIT_MMX mmx -; void ff_h264_idct_add16intra_8_mmx(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add16intra_8, 5, 7 + npicregs, 0, dst, block_offset, block, stride, nnzc, cntr, coeff, picreg - movsxdifnidn r3, r3d - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - or r6w, word [r2] - test r6, r6 - jz .skipblock - mov r6d, dword [r1+r5*4] - add r6, r0 - IDCT4_ADD r6, r2, r3 -.skipblock: - inc r5 - add r2, 32 - cmp r5, 16 - jl .nextblock - REP_RET - -INIT_MMX mmxext -; void ff_h264_idct_add16intra_8_mmxext(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add16intra_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .try_dc - mov r6d, dword [r1+r5*4] - lea r6, [r0+r6] - IDCT4_ADD r6, r2, r3 - inc r5 - add r2, 32 - cmp r5, 16 - jl .nextblock - REP_RET -.try_dc: - movsx r6, word [r2] - test r6, r6 - jz .skipblock - mov word [r2], 0 - DC_ADD_MMXEXT_INIT r6, r3 -%if ARCH_X86_64 == 0 -%define dst2q r1 -%define dst2d r1d -%endif - mov dst2d, dword [r1+r5*4] - add dst2q, r0 - DC_ADD_MMXEXT_OP movh, dst2q, r3, r6 -%if ARCH_X86_64 == 0 - mov r1, r1m -%endif -.skipblock: - inc r5 - add r2, 32 - cmp r5, 16 - jl .nextblock - REP_RET - -; void ff_h264_idct8_add4_8_mmxext(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct8_add4_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d - %assign pad 128+4-(stack_offset&7) - SUB rsp, pad - - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .skipblock - cmp r6, 1 - jnz .no_dc - movsx r6, word [r2] - test r6, r6 - jz .no_dc - mov word [r2], 0 - DC_ADD_MMXEXT_INIT r6, r3 -%if ARCH_X86_64 == 0 -%define dst2q r1 -%define dst2d r1d -%endif - mov dst2d, dword [r1+r5*4] - lea dst2q, [r0+dst2q] - DC_ADD_MMXEXT_OP mova, dst2q, r3, r6 - lea dst2q, [dst2q+r3*4] - DC_ADD_MMXEXT_OP mova, dst2q, r3, r6 -%if ARCH_X86_64 == 0 - mov r1, r1m -%endif - add r5, 4 - add r2, 128 - cmp r5, 16 - jl .nextblock - - ADD rsp, pad - RET -.no_dc: - mov r6d, dword [r1+r5*4] - add r6, r0 - add word [r2], 32 - IDCT8_ADD_MMX_START r2 , rsp - IDCT8_ADD_MMX_START r2+8, rsp+64 - IDCT8_ADD_MMX_END r6 , rsp, r3, r2 - mov r6d, dword [r1+r5*4] - lea r6, [r0+r6+4] - IDCT8_ADD_MMX_END r6 , rsp+8, r3 -.skipblock: - add r5, 4 - add r2, 128 - cmp r5, 16 - jl .nextblock - - ADD rsp, pad - RET - -INIT_XMM sse2 -; void ff_h264_idct8_add4_8_sse2(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct8_add4_8, 5, 8 + npicregs, 10, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d - xor r5, r5 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .skipblock - cmp r6, 1 - jnz .no_dc - movsx r6, word [r2] - test r6, r6 - jz .no_dc -INIT_MMX cpuname - mov word [r2], 0 - DC_ADD_MMXEXT_INIT r6, r3 -%if ARCH_X86_64 == 0 -%define dst2q r1 -%define dst2d r1d -%endif - mov dst2d, dword [r1+r5*4] - add dst2q, r0 - DC_ADD_MMXEXT_OP mova, dst2q, r3, r6 - lea dst2q, [dst2q+r3*4] - DC_ADD_MMXEXT_OP mova, dst2q, r3, r6 -%if ARCH_X86_64 == 0 - mov r1, r1m -%endif - add r5, 4 - add r2, 128 - cmp r5, 16 - jl .nextblock - REP_RET -.no_dc: -INIT_XMM cpuname - mov dst2d, dword [r1+r5*4] - add dst2q, r0 - IDCT8_ADD_SSE dst2q, r2, r3, r6 -%if ARCH_X86_64 == 0 - mov r1, r1m -%endif -.skipblock: - add r5, 4 - add r2, 128 - cmp r5, 16 - jl .nextblock - REP_RET - -INIT_MMX mmx -h264_idct_add8_mmx_plane: - movsxdifnidn r3, r3d -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - or r6w, word [r2] - test r6, r6 - jz .skipblock -%if ARCH_X86_64 - mov r0d, dword [r1+r5*4] - add r0, [dst2q] -%else - mov r0, r1m ; XXX r1m here is actually r0m of the calling func - mov r0, [r0] - add r0, dword [r1+r5*4] -%endif - IDCT4_ADD r0, r2, r3 -.skipblock: - inc r5 - add r2, 32 - test r5, 3 - jnz .nextblock - rep ret - -; void ff_h264_idct_add8_8_mmx(uint8_t **dest, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add8_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d - mov r5, 16 - add r2, 512 -%ifdef PIC - lea picregq, [scan8_mem] -%endif -%if ARCH_X86_64 - mov dst2q, r0 -%endif - call h264_idct_add8_mmx_plane - mov r5, 32 - add r2, 384 -%if ARCH_X86_64 - add dst2q, gprsize -%else - add r0mp, gprsize -%endif - call h264_idct_add8_mmx_plane - RET ; TODO: check rep ret after a function call - -cglobal h264_idct_add8_422_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg -; dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d -%ifdef PIC - lea picregq, [scan8_mem] -%endif -%if ARCH_X86_64 - mov dst2q, r0 -%endif - - mov r5, 16 ; i - add r2, 512 ; i * 16 * sizeof(dctcoef) ; #define dctcoef int16_t - - call h264_idct_add8_mmx_plane - add r5, 4 - call h264_idct_add8_mmx_plane - -%if ARCH_X86_64 - add dst2q, gprsize ; dest[1] -%else - add r0mp, gprsize -%endif - - add r5, 4 ; set to 32 - add r2, 256 ; set to i * 16 * sizeof(dctcoef) - - call h264_idct_add8_mmx_plane - add r5, 4 - call h264_idct_add8_mmx_plane - - RET ; TODO: check rep ret after a function call - -h264_idct_add8_mmxext_plane: - movsxdifnidn r3, r3d -.nextblock: - movzx r6, byte [scan8+r5] - movzx r6, byte [r4+r6] - test r6, r6 - jz .try_dc -%if ARCH_X86_64 - mov r0d, dword [r1+r5*4] - add r0, [dst2q] -%else - mov r0, r1m ; XXX r1m here is actually r0m of the calling func - mov r0, [r0] - add r0, dword [r1+r5*4] -%endif - IDCT4_ADD r0, r2, r3 - inc r5 - add r2, 32 - test r5, 3 - jnz .nextblock - rep ret -.try_dc: - movsx r6, word [r2] - test r6, r6 - jz .skipblock - mov word [r2], 0 - DC_ADD_MMXEXT_INIT r6, r3 -%if ARCH_X86_64 - mov r0d, dword [r1+r5*4] - add r0, [dst2q] -%else - mov r0, r1m ; XXX r1m here is actually r0m of the calling func - mov r0, [r0] - add r0, dword [r1+r5*4] -%endif - DC_ADD_MMXEXT_OP movh, r0, r3, r6 -.skipblock: - inc r5 - add r2, 32 - test r5, 3 - jnz .nextblock - rep ret - -INIT_MMX mmxext -; void ff_h264_idct_add8_8_mmxext(uint8_t **dest, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add8_8, 5, 8 + npicregs, 0, dst1, block_offset, block, stride, nnzc, cntr, coeff, dst2, picreg - movsxdifnidn r3, r3d - mov r5, 16 - add r2, 512 -%if ARCH_X86_64 - mov dst2q, r0 -%endif -%ifdef PIC - lea picregq, [scan8_mem] -%endif - call h264_idct_add8_mmxext_plane - mov r5, 32 - add r2, 384 -%if ARCH_X86_64 - add dst2q, gprsize -%else - add r0mp, gprsize -%endif - call h264_idct_add8_mmxext_plane - RET ; TODO: check rep ret after a function call - -; r0 = uint8_t *dst, r2 = int16_t *block, r3 = int stride, r6=clobbered -h264_idct_dc_add8_mmxext: - movsxdifnidn r3, r3d - movd m0, [r2 ] ; 0 0 X D - mov word [r2+ 0], 0 - punpcklwd m0, [r2+32] ; x X d D - mov word [r2+32], 0 - paddsw m0, [pw_32] - psraw m0, 6 - punpcklwd m0, m0 ; d d D D - pxor m1, m1 ; 0 0 0 0 - psubw m1, m0 ; -d-d-D-D - packuswb m0, m1 ; -d-d-D-D d d D D - pshufw m1, m0, 0xFA ; -d-d-d-d-D-D-D-D - punpcklwd m0, m0 ; d d d d D D D D - lea r6, [r3*3] - DC_ADD_MMXEXT_OP movq, r0, r3, r6 - ret - -ALIGN 16 -INIT_XMM sse2 -; r0 = uint8_t *dst (clobbered), r2 = int16_t *block, r3 = int stride -h264_add8x4_idct_sse2: - movsxdifnidn r3, r3d - movq m0, [r2+ 0] - movq m1, [r2+ 8] - movq m2, [r2+16] - movq m3, [r2+24] - movhps m0, [r2+32] - movhps m1, [r2+40] - movhps m2, [r2+48] - movhps m3, [r2+56] - IDCT4_1D w,0,1,2,3,4,5 - TRANSPOSE2x4x4W 0,1,2,3,4 - paddw m0, [pw_32] - IDCT4_1D w,0,1,2,3,4,5 - pxor m7, m7 - mova [r2+ 0], m7 - mova [r2+16], m7 - mova [r2+32], m7 - mova [r2+48], m7 - STORE_DIFFx2 m0, m1, m4, m5, m7, 6, r0, r3 - lea r0, [r0+r3*2] - STORE_DIFFx2 m2, m3, m4, m5, m7, 6, r0, r3 - ret - -%macro add16_sse2_cycle 2 - movzx r0, word [r4+%2] - test r0, r0 - jz .cycle%1end - mov r0d, dword [r1+%1*8] -%if ARCH_X86_64 - add r0, r5 -%else - add r0, r0m -%endif - call h264_add8x4_idct_sse2 -.cycle%1end: -%if %1 < 7 - add r2, 64 -%endif -%endmacro - -; void ff_h264_idct_add16_8_sse2(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add16_8, 5, 5 + ARCH_X86_64, 8 - movsxdifnidn r3, r3d -%if ARCH_X86_64 - mov r5, r0 -%endif - ; unrolling of the loop leads to an average performance gain of - ; 20-25% - add16_sse2_cycle 0, 0xc - add16_sse2_cycle 1, 0x14 - add16_sse2_cycle 2, 0xe - add16_sse2_cycle 3, 0x16 - add16_sse2_cycle 4, 0x1c - add16_sse2_cycle 5, 0x24 - add16_sse2_cycle 6, 0x1e - add16_sse2_cycle 7, 0x26 -REP_RET - -%macro add16intra_sse2_cycle 2 - movzx r0, word [r4+%2] - test r0, r0 - jz .try%1dc - mov r0d, dword [r1+%1*8] -%if ARCH_X86_64 - add r0, r7 -%else - add r0, r0m -%endif - call h264_add8x4_idct_sse2 - jmp .cycle%1end -.try%1dc: - movsx r0, word [r2 ] - or r0w, word [r2+32] - jz .cycle%1end - mov r0d, dword [r1+%1*8] -%if ARCH_X86_64 - add r0, r7 -%else - add r0, r0m -%endif - call h264_idct_dc_add8_mmxext -.cycle%1end: -%if %1 < 7 - add r2, 64 -%endif -%endmacro - -; void ff_h264_idct_add16intra_8_sse2(uint8_t *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add16intra_8, 5, 7 + ARCH_X86_64, 8 - movsxdifnidn r3, r3d -%if ARCH_X86_64 - mov r7, r0 -%endif - add16intra_sse2_cycle 0, 0xc - add16intra_sse2_cycle 1, 0x14 - add16intra_sse2_cycle 2, 0xe - add16intra_sse2_cycle 3, 0x16 - add16intra_sse2_cycle 4, 0x1c - add16intra_sse2_cycle 5, 0x24 - add16intra_sse2_cycle 6, 0x1e - add16intra_sse2_cycle 7, 0x26 -REP_RET - -%macro add8_sse2_cycle 2 - movzx r0, word [r4+%2] - test r0, r0 - jz .try%1dc -%if ARCH_X86_64 - mov r0d, dword [r1+(%1&1)*8+64*(1+(%1>>1))] - add r0, [r7] -%else - mov r0, r0m - mov r0, [r0] - add r0, dword [r1+(%1&1)*8+64*(1+(%1>>1))] -%endif - call h264_add8x4_idct_sse2 - jmp .cycle%1end -.try%1dc: - movsx r0, word [r2 ] - or r0w, word [r2+32] - jz .cycle%1end -%if ARCH_X86_64 - mov r0d, dword [r1+(%1&1)*8+64*(1+(%1>>1))] - add r0, [r7] -%else - mov r0, r0m - mov r0, [r0] - add r0, dword [r1+(%1&1)*8+64*(1+(%1>>1))] -%endif - call h264_idct_dc_add8_mmxext -.cycle%1end: -%if %1 == 1 - add r2, 384+64 -%elif %1 < 3 - add r2, 64 -%endif -%endmacro - -; void ff_h264_idct_add8_8_sse2(uint8_t **dest, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6 * 8]) -cglobal h264_idct_add8_8, 5, 7 + ARCH_X86_64, 8 - movsxdifnidn r3, r3d - add r2, 512 -%if ARCH_X86_64 - mov r7, r0 -%endif - add8_sse2_cycle 0, 0x34 - add8_sse2_cycle 1, 0x3c -%if ARCH_X86_64 - add r7, gprsize -%else - add r0mp, gprsize -%endif - add8_sse2_cycle 2, 0x5c - add8_sse2_cycle 3, 0x64 -REP_RET - -;void ff_h264_luma_dc_dequant_idct_mmx(int16_t *output, int16_t *input, int qmul) - -%macro WALSH4_1D 5 - SUMSUB_BADC w, %4, %3, %2, %1, %5 - SUMSUB_BADC w, %4, %2, %3, %1, %5 - SWAP %1, %4, %3 -%endmacro - -%macro DEQUANT 1-3 -%if cpuflag(sse2) - movd xmm4, t3d - movq xmm5, [pw_1] - pshufd xmm4, xmm4, 0 - movq2dq xmm0, m0 - movq2dq xmm1, m1 - movq2dq xmm2, m2 - movq2dq xmm3, m3 - punpcklwd xmm0, xmm5 - punpcklwd xmm1, xmm5 - punpcklwd xmm2, xmm5 - punpcklwd xmm3, xmm5 - pmaddwd xmm0, xmm4 - pmaddwd xmm1, xmm4 - pmaddwd xmm2, xmm4 - pmaddwd xmm3, xmm4 - psrad xmm0, %1 - psrad xmm1, %1 - psrad xmm2, %1 - psrad xmm3, %1 - packssdw xmm0, xmm1 - packssdw xmm2, xmm3 -%else - mova m7, [pw_1] - mova m4, %1 - punpcklwd %1, m7 - punpckhwd m4, m7 - mova m5, %2 - punpcklwd %2, m7 - punpckhwd m5, m7 - movd m7, t3d - punpckldq m7, m7 - pmaddwd %1, m7 - pmaddwd %2, m7 - pmaddwd m4, m7 - pmaddwd m5, m7 - psrad %1, %3 - psrad %2, %3 - psrad m4, %3 - psrad m5, %3 - packssdw %1, m4 - packssdw %2, m5 -%endif -%endmacro - -%macro STORE_WORDS 5-9 -%if cpuflag(sse) - movd t0d, %1 - psrldq %1, 4 - movd t1d, %1 - psrldq %1, 4 - mov [t2+%2*32], t0w - mov [t2+%4*32], t1w - shr t0d, 16 - shr t1d, 16 - mov [t2+%3*32], t0w - mov [t2+%5*32], t1w - movd t0d, %1 - psrldq %1, 4 - movd t1d, %1 - mov [t2+%6*32], t0w - mov [t2+%8*32], t1w - shr t0d, 16 - shr t1d, 16 - mov [t2+%7*32], t0w - mov [t2+%9*32], t1w -%else - movd t0d, %1 - psrlq %1, 32 - movd t1d, %1 - mov [t2+%2*32], t0w - mov [t2+%4*32], t1w - shr t0d, 16 - shr t1d, 16 - mov [t2+%3*32], t0w - mov [t2+%5*32], t1w -%endif -%endmacro - -%macro DEQUANT_STORE 1 -%if cpuflag(sse2) - DEQUANT %1 - STORE_WORDS xmm0, 0, 1, 4, 5, 2, 3, 6, 7 - STORE_WORDS xmm2, 8, 9, 12, 13, 10, 11, 14, 15 -%else - DEQUANT m0, m1, %1 - STORE_WORDS m0, 0, 1, 4, 5 - STORE_WORDS m1, 2, 3, 6, 7 - - DEQUANT m2, m3, %1 - STORE_WORDS m2, 8, 9, 12, 13 - STORE_WORDS m3, 10, 11, 14, 15 -%endif -%endmacro - -%macro IDCT_DC_DEQUANT 1 -cglobal h264_luma_dc_dequant_idct, 3, 4, %1 - ; manually spill XMM registers for Win64 because - ; the code here is initialized with INIT_MMX - WIN64_SPILL_XMM %1 - movq m3, [r1+24] - movq m2, [r1+16] - movq m1, [r1+ 8] - movq m0, [r1+ 0] - WALSH4_1D 0,1,2,3,4 - TRANSPOSE4x4W 0,1,2,3,4 - WALSH4_1D 0,1,2,3,4 - -; shift, tmp, output, qmul -%if WIN64 - DECLARE_REG_TMP 0,3,1,2 - ; we can't avoid this, because r0 is the shift register (ecx) on win64 - xchg r0, t2 -%elif ARCH_X86_64 - DECLARE_REG_TMP 3,1,0,2 -%else - DECLARE_REG_TMP 1,3,0,2 -%endif - - cmp t3d, 32767 - jg .big_qmul - add t3d, 128 << 16 - DEQUANT_STORE 8 - RET -.big_qmul: - bsr t0d, t3d - add t3d, 128 << 16 - mov t1d, 7 - cmp t0d, t1d - cmovg t0d, t1d - inc t1d - shr t3d, t0b - sub t1d, t0d -%if cpuflag(sse2) - movd xmm6, t1d - DEQUANT_STORE xmm6 -%else - movd m6, t1d - DEQUANT_STORE m6 -%endif - RET -%endmacro - -INIT_MMX mmx -IDCT_DC_DEQUANT 0 -INIT_MMX sse2 -IDCT_DC_DEQUANT 7 - -%ifdef __NASM_VER__ -%if __NASM_MAJOR__ >= 2 && __NASM_MINOR__ >= 4 -%unmacro STORE_DIFFx2 8 ; remove macro from x86util.asm but yasm doesn't have this yet -%endif -%endif -%macro STORE_DIFFx2 8 ; add1, add2, reg1, reg2, zero, shift, source, stride - movd %3, [%7] - movd %4, [%7+%8] - psraw %1, %6 - psraw %2, %6 - punpcklbw %3, %5 - punpcklbw %4, %5 - paddw %3, %1 - paddw %4, %2 - packuswb %3, %5 - packuswb %4, %5 - movd [%7], %3 - movd [%7+%8], %4 -%endmacro - -%macro DC_ADD_INIT 1 - add %1d, 32 - sar %1d, 6 - movd m0, %1d - pshuflw m0, m0, 0 - lea %1, [3*stride_q] - pxor m1, m1 - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 -%endmacro - -%macro IDCT_XMM 1 - -INIT_XMM %1 - -cglobal h264_idct_add_8, 3, 3, 8, dst_, block_, stride_ - movsxdifnidn stride_q, stride_d - IDCT4_ADD dst_q, block_q, stride_q -RET - -cglobal h264_idct_dc_add_8, 3, 4, 6, dst_, block_, stride_ - movsxdifnidn stride_q, stride_d - movsx r3d, word [block_q] - mov dword [block_q], 0 - DC_ADD_INIT r3 - DC_ADD_MMXEXT_OP movd, dst_q, stride_q, r3 -RET - -%endmacro - -IDCT_XMM sse2 -IDCT_XMM avx diff --git a/libavcodec/x86/h264_idct_10bit.asm b/libavcodec/x86/h264_idct_10bit.asm deleted file mode 100644 index 9fd05abb2b..0000000000 --- a/libavcodec/x86/h264_idct_10bit.asm +++ /dev/null @@ -1,657 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized 10-bit H.264 iDCT code -;***************************************************************************** -;* Copyright (C) 2005-2011 x264 project -;* -;* Authors: Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -cextern pw_1023 -%define pw_pixel_max pw_1023 -cextern pd_32 - -;----------------------------------------------------------------------------- -; void ff_h264_idct_add_10(pixel *dst, int16_t *block, int stride) -;----------------------------------------------------------------------------- -%macro STORE_DIFFx2 6 - psrad %1, 6 - psrad %2, 6 - packssdw %1, %2 - movq %3, [%5] - movhps %3, [%5+%6] - paddsw %1, %3 - CLIPW %1, %4, [pw_pixel_max] - movq [%5], %1 - movhps [%5+%6], %1 -%endmacro - -%macro STORE_DIFF16 5 - psrad %1, 6 - psrad %2, 6 - packssdw %1, %2 - paddsw %1, [%5] - CLIPW %1, %3, %4 - mova [%5], %1 -%endmacro - -;dst, in, stride -%macro IDCT4_ADD_10 3 - mova m0, [%2+ 0] - mova m1, [%2+16] - mova m2, [%2+32] - mova m3, [%2+48] - IDCT4_1D d,0,1,2,3,4,5 - TRANSPOSE4x4D 0,1,2,3,4 - paddd m0, [pd_32] - IDCT4_1D d,0,1,2,3,4,5 - pxor m5, m5 - mova [%2+ 0], m5 - mova [%2+16], m5 - mova [%2+32], m5 - mova [%2+48], m5 - STORE_DIFFx2 m0, m1, m4, m5, %1, %3 - lea %1, [%1+%3*2] - STORE_DIFFx2 m2, m3, m4, m5, %1, %3 -%endmacro - -%macro IDCT_ADD_10 0 -cglobal h264_idct_add_10, 3,3 - movsxdifnidn r2, r2d - IDCT4_ADD_10 r0, r1, r2 - RET -%endmacro - -INIT_XMM sse2 -IDCT_ADD_10 -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -IDCT_ADD_10 -%endif - -;----------------------------------------------------------------------------- -; void ff_h264_idct_add16_10(pixel *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6*8]) -;----------------------------------------------------------------------------- -;;;;;;; NO FATE SAMPLES TRIGGER THIS -%macro ADD4x4IDCT 0 -add4x4_idct %+ SUFFIX: - add r5, r0 - mova m0, [r2+ 0] - mova m1, [r2+16] - mova m2, [r2+32] - mova m3, [r2+48] - IDCT4_1D d,0,1,2,3,4,5 - TRANSPOSE4x4D 0,1,2,3,4 - paddd m0, [pd_32] - IDCT4_1D d,0,1,2,3,4,5 - pxor m5, m5 - mova [r2+ 0], m5 - mova [r2+16], m5 - mova [r2+32], m5 - mova [r2+48], m5 - STORE_DIFFx2 m0, m1, m4, m5, r5, r3 - lea r5, [r5+r3*2] - STORE_DIFFx2 m2, m3, m4, m5, r5, r3 - ret -%endmacro - -INIT_XMM sse2 -ALIGN 16 -ADD4x4IDCT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -ALIGN 16 -ADD4x4IDCT -%endif - -%macro ADD16_OP 2 - cmp byte [r4+%2], 0 - jz .skipblock%1 - mov r5d, [r1+%1*4] - call add4x4_idct %+ SUFFIX -.skipblock%1: -%if %1<15 - add r2, 64 -%endif -%endmacro - -%macro IDCT_ADD16_10 0 -cglobal h264_idct_add16_10, 5,6 - movsxdifnidn r3, r3d - ADD16_OP 0, 4+1*8 - ADD16_OP 1, 5+1*8 - ADD16_OP 2, 4+2*8 - ADD16_OP 3, 5+2*8 - ADD16_OP 4, 6+1*8 - ADD16_OP 5, 7+1*8 - ADD16_OP 6, 6+2*8 - ADD16_OP 7, 7+2*8 - ADD16_OP 8, 4+3*8 - ADD16_OP 9, 5+3*8 - ADD16_OP 10, 4+4*8 - ADD16_OP 11, 5+4*8 - ADD16_OP 12, 6+3*8 - ADD16_OP 13, 7+3*8 - ADD16_OP 14, 6+4*8 - ADD16_OP 15, 7+4*8 - REP_RET -%endmacro - -INIT_XMM sse2 -IDCT_ADD16_10 -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -IDCT_ADD16_10 -%endif - -;----------------------------------------------------------------------------- -; void ff_h264_idct_dc_add_10(pixel *dst, int16_t *block, int stride) -;----------------------------------------------------------------------------- -%macro IDCT_DC_ADD_OP_10 3 - pxor m5, m5 -%if avx_enabled - paddw m1, m0, [%1+0 ] - paddw m2, m0, [%1+%2 ] - paddw m3, m0, [%1+%2*2] - paddw m4, m0, [%1+%3 ] -%else - mova m1, [%1+0 ] - mova m2, [%1+%2 ] - mova m3, [%1+%2*2] - mova m4, [%1+%3 ] - paddw m1, m0 - paddw m2, m0 - paddw m3, m0 - paddw m4, m0 -%endif - CLIPW m1, m5, m6 - CLIPW m2, m5, m6 - CLIPW m3, m5, m6 - CLIPW m4, m5, m6 - mova [%1+0 ], m1 - mova [%1+%2 ], m2 - mova [%1+%2*2], m3 - mova [%1+%3 ], m4 -%endmacro - -INIT_MMX mmxext -cglobal h264_idct_dc_add_10,3,3 - movsxdifnidn r2, r2d - movd m0, [r1] - mov dword [r1], 0 - paddd m0, [pd_32] - psrad m0, 6 - lea r1, [r2*3] - pshufw m0, m0, 0 - mova m6, [pw_pixel_max] - IDCT_DC_ADD_OP_10 r0, r2, r1 - RET - -;----------------------------------------------------------------------------- -; void ff_h264_idct8_dc_add_10(pixel *dst, int16_t *block, int stride) -;----------------------------------------------------------------------------- -%macro IDCT8_DC_ADD 0 -cglobal h264_idct8_dc_add_10,3,4,7 - movsxdifnidn r2, r2d - movd m0, [r1] - mov dword[r1], 0 - paddd m0, [pd_32] - psrad m0, 6 - lea r1, [r2*3] - SPLATW m0, m0, 0 - mova m6, [pw_pixel_max] - IDCT_DC_ADD_OP_10 r0, r2, r1 - lea r0, [r0+r2*4] - IDCT_DC_ADD_OP_10 r0, r2, r1 - RET -%endmacro - -INIT_XMM sse2 -IDCT8_DC_ADD -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -IDCT8_DC_ADD -%endif - -;----------------------------------------------------------------------------- -; void ff_h264_idct_add16intra_10(pixel *dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6*8]) -;----------------------------------------------------------------------------- -%macro AC 1 -.ac%1: - mov r5d, [r1+(%1+0)*4] - call add4x4_idct %+ SUFFIX - mov r5d, [r1+(%1+1)*4] - add r2, 64 - call add4x4_idct %+ SUFFIX - add r2, 64 - jmp .skipadd%1 -%endmacro - -%assign last_block 16 -%macro ADD16_OP_INTRA 2 - cmp word [r4+%2], 0 - jnz .ac%1 - mov r5d, [r2+ 0] - or r5d, [r2+64] - jz .skipblock%1 - mov r5d, [r1+(%1+0)*4] - call idct_dc_add %+ SUFFIX -.skipblock%1: -%if %1 01234567 -%endmacro - -%macro IDCT8_1D_FULL 1 - mova m7, [%1+112*2] - mova m6, [%1+ 96*2] - mova m5, [%1+ 80*2] - mova m3, [%1+ 48*2] - mova m2, [%1+ 32*2] - mova m1, [%1+ 16*2] - IDCT8_1D [%1], [%1+ 64*2] -%endmacro - -; %1=int16_t *block, %2=int16_t *dstblock -%macro IDCT8_ADD_SSE_START 2 - IDCT8_1D_FULL %1 -%if ARCH_X86_64 - TRANSPOSE4x4D 0,1,2,3,8 - mova [%2 ], m0 - TRANSPOSE4x4D 4,5,6,7,8 - mova [%2+8*2], m4 -%else - mova [%1], m7 - TRANSPOSE4x4D 0,1,2,3,7 - mova m7, [%1] - mova [%2 ], m0 - mova [%2+16*2], m1 - mova [%2+32*2], m2 - mova [%2+48*2], m3 - TRANSPOSE4x4D 4,5,6,7,3 - mova [%2+ 8*2], m4 - mova [%2+24*2], m5 - mova [%2+40*2], m6 - mova [%2+56*2], m7 -%endif -%endmacro - -; %1=uint8_t *dst, %2=int16_t *block, %3=int stride -%macro IDCT8_ADD_SSE_END 3 - IDCT8_1D_FULL %2 - mova [%2 ], m6 - mova [%2+16*2], m7 - - pxor m7, m7 - STORE_DIFFx2 m0, m1, m6, m7, %1, %3 - lea %1, [%1+%3*2] - STORE_DIFFx2 m2, m3, m6, m7, %1, %3 - mova m0, [%2 ] - mova m1, [%2+16*2] - lea %1, [%1+%3*2] - STORE_DIFFx2 m4, m5, m6, m7, %1, %3 - lea %1, [%1+%3*2] - STORE_DIFFx2 m0, m1, m6, m7, %1, %3 -%endmacro - -%macro IDCT8_ADD 0 -cglobal h264_idct8_add_10, 3,4,16 - movsxdifnidn r2, r2d -%if UNIX64 == 0 - %assign pad 16-gprsize-(stack_offset&15) - sub rsp, pad - call h264_idct8_add1_10 %+ SUFFIX - add rsp, pad - RET -%endif - -ALIGN 16 -; TODO: does not need to use stack -h264_idct8_add1_10 %+ SUFFIX: -%assign pad 256+16-gprsize - sub rsp, pad - add dword [r1], 32 - -%if ARCH_X86_64 - IDCT8_ADD_SSE_START r1, rsp - SWAP 1, 9 - SWAP 2, 10 - SWAP 3, 11 - SWAP 5, 13 - SWAP 6, 14 - SWAP 7, 15 - IDCT8_ADD_SSE_START r1+16, rsp+128 - PERMUTE 1,9, 2,10, 3,11, 5,1, 6,2, 7,3, 9,13, 10,14, 11,15, 13,5, 14,6, 15,7 - IDCT8_1D [rsp], [rsp+128] - SWAP 0, 8 - SWAP 1, 9 - SWAP 2, 10 - SWAP 3, 11 - SWAP 4, 12 - SWAP 5, 13 - SWAP 6, 14 - SWAP 7, 15 - IDCT8_1D [rsp+16], [rsp+144] - psrad m8, 6 - psrad m0, 6 - packssdw m8, m0 - paddsw m8, [r0] - pxor m0, m0 - mova [r1+ 0], m0 - mova [r1+ 16], m0 - mova [r1+ 32], m0 - mova [r1+ 48], m0 - mova [r1+ 64], m0 - mova [r1+ 80], m0 - mova [r1+ 96], m0 - mova [r1+112], m0 - mova [r1+128], m0 - mova [r1+144], m0 - mova [r1+160], m0 - mova [r1+176], m0 - mova [r1+192], m0 - mova [r1+208], m0 - mova [r1+224], m0 - mova [r1+240], m0 - CLIPW m8, m0, [pw_pixel_max] - mova [r0], m8 - mova m8, [pw_pixel_max] - STORE_DIFF16 m9, m1, m0, m8, r0+r2 - lea r0, [r0+r2*2] - STORE_DIFF16 m10, m2, m0, m8, r0 - STORE_DIFF16 m11, m3, m0, m8, r0+r2 - lea r0, [r0+r2*2] - STORE_DIFF16 m12, m4, m0, m8, r0 - STORE_DIFF16 m13, m5, m0, m8, r0+r2 - lea r0, [r0+r2*2] - STORE_DIFF16 m14, m6, m0, m8, r0 - STORE_DIFF16 m15, m7, m0, m8, r0+r2 -%else - IDCT8_ADD_SSE_START r1, rsp - IDCT8_ADD_SSE_START r1+16, rsp+128 - lea r3, [r0+8] - IDCT8_ADD_SSE_END r0, rsp, r2 - IDCT8_ADD_SSE_END r3, rsp+16, r2 - mova [r1+ 0], m7 - mova [r1+ 16], m7 - mova [r1+ 32], m7 - mova [r1+ 48], m7 - mova [r1+ 64], m7 - mova [r1+ 80], m7 - mova [r1+ 96], m7 - mova [r1+112], m7 - mova [r1+128], m7 - mova [r1+144], m7 - mova [r1+160], m7 - mova [r1+176], m7 - mova [r1+192], m7 - mova [r1+208], m7 - mova [r1+224], m7 - mova [r1+240], m7 -%endif ; ARCH_X86_64 - - add rsp, pad - ret -%endmacro - -INIT_XMM sse2 -IDCT8_ADD -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -IDCT8_ADD -%endif - -;----------------------------------------------------------------------------- -; void ff_h264_idct8_add4_10(pixel **dst, const int *block_offset, -; int16_t *block, int stride, -; const uint8_t nnzc[6*8]) -;----------------------------------------------------------------------------- -;;;;;;; NO FATE SAMPLES TRIGGER THIS -%macro IDCT8_ADD4_OP 2 - cmp byte [r4+%2], 0 - jz .skipblock%1 - mov r0d, [r6+%1*4] - add r0, r5 - call h264_idct8_add1_10 %+ SUFFIX -.skipblock%1: -%if %1<12 - add r1, 256 -%endif -%endmacro - -%macro IDCT8_ADD4 0 -cglobal h264_idct8_add4_10, 0,7,16 - movsxdifnidn r3, r3d - %assign pad 16-gprsize-(stack_offset&15) - SUB rsp, pad - mov r5, r0mp - mov r6, r1mp - mov r1, r2mp - mov r2d, r3m - movifnidn r4, r4mp - IDCT8_ADD4_OP 0, 4+1*8 - IDCT8_ADD4_OP 4, 6+1*8 - IDCT8_ADD4_OP 8, 4+3*8 - IDCT8_ADD4_OP 12, 6+3*8 - ADD rsp, pad - RET -%endmacro ; IDCT8_ADD4 - -INIT_XMM sse2 -IDCT8_ADD4 -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -IDCT8_ADD4 -%endif diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm deleted file mode 100644 index f3aa3172f0..0000000000 --- a/libavcodec/x86/h264_intrapred.asm +++ /dev/null @@ -1,2757 +0,0 @@ -;****************************************************************************** -;* H.264 intra prediction asm optimizations -;* Copyright (c) 2010 Fiona Glaser -;* Copyright (c) 2010 Holger Lubitz -;* Copyright (c) 2010 Loren Merritt -;* Copyright (c) 2010 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -tm_shuf: times 8 db 0x03, 0x80 -pw_ff00: times 8 dw 0xff00 -plane_shuf: db -8, -7, -6, -5, -4, -3, -2, -1 - db 1, 2, 3, 4, 5, 6, 7, 8 -plane8_shuf: db -4, -3, -2, -1, 0, 0, 0, 0 - db 1, 2, 3, 4, 0, 0, 0, 0 -pw_0to7: dw 0, 1, 2, 3, 4, 5, 6, 7 -pw_1to8: dw 1, 2, 3, 4, 5, 6, 7, 8 -pw_m8tom1: dw -8, -7, -6, -5, -4, -3, -2, -1 -pw_m4to4: dw -4, -3, -2, -1, 1, 2, 3, 4 - -SECTION .text - -cextern pb_1 -cextern pb_3 -cextern pw_4 -cextern pw_5 -cextern pw_8 -cextern pw_16 -cextern pw_17 -cextern pw_32 - -;----------------------------------------------------------------------------- -; void ff_pred16x16_vertical_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmx -cglobal pred16x16_vertical_8, 2,3 - sub r0, r1 - mov r2, 8 - movq mm0, [r0+0] - movq mm1, [r0+8] -.loop: - movq [r0+r1*1+0], mm0 - movq [r0+r1*1+8], mm1 - movq [r0+r1*2+0], mm0 - movq [r0+r1*2+8], mm1 - lea r0, [r0+r1*2] - dec r2 - jg .loop - REP_RET - -INIT_XMM sse -cglobal pred16x16_vertical_8, 2,3 - sub r0, r1 - mov r2, 4 - movaps xmm0, [r0] -.loop: - movaps [r0+r1*1], xmm0 - movaps [r0+r1*2], xmm0 - lea r0, [r0+r1*2] - movaps [r0+r1*1], xmm0 - movaps [r0+r1*2], xmm0 - lea r0, [r0+r1*2] - dec r2 - jg .loop - REP_RET - -;----------------------------------------------------------------------------- -; void ff_pred16x16_horizontal_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED16x16_H 0 -cglobal pred16x16_horizontal_8, 2,3 - mov r2, 8 -%if cpuflag(ssse3) - mova m2, [pb_3] -%endif -.loop: - movd m0, [r0+r1*0-4] - movd m1, [r0+r1*1-4] - -%if cpuflag(ssse3) - pshufb m0, m2 - pshufb m1, m2 -%else - punpcklbw m0, m0 - punpcklbw m1, m1 - SPLATW m0, m0, 3 - SPLATW m1, m1, 3 - mova [r0+r1*0+8], m0 - mova [r0+r1*1+8], m1 -%endif - - mova [r0+r1*0], m0 - mova [r0+r1*1], m1 - lea r0, [r0+r1*2] - dec r2 - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -PRED16x16_H -INIT_MMX mmxext -PRED16x16_H -INIT_XMM ssse3 -PRED16x16_H - -;----------------------------------------------------------------------------- -; void ff_pred16x16_dc_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED16x16_DC 0 -cglobal pred16x16_dc_8, 2,7 - mov r4, r0 - sub r0, r1 - pxor mm0, mm0 - pxor mm1, mm1 - psadbw mm0, [r0+0] - psadbw mm1, [r0+8] - dec r0 - movzx r5d, byte [r0+r1*1] - paddw mm0, mm1 - movd r6d, mm0 - lea r0, [r0+r1*2] -%rep 7 - movzx r2d, byte [r0+r1*0] - movzx r3d, byte [r0+r1*1] - add r5d, r2d - add r6d, r3d - lea r0, [r0+r1*2] -%endrep - movzx r2d, byte [r0+r1*0] - add r5d, r6d - lea r2d, [r2+r5+16] - shr r2d, 5 -%if cpuflag(ssse3) - pxor m1, m1 -%endif - SPLATB_REG m0, r2, m1 - -%if mmsize==8 - mov r3d, 8 -.loop: - mova [r4+r1*0+0], m0 - mova [r4+r1*0+8], m0 - mova [r4+r1*1+0], m0 - mova [r4+r1*1+8], m0 -%else - mov r3d, 4 -.loop: - mova [r4+r1*0], m0 - mova [r4+r1*1], m0 - lea r4, [r4+r1*2] - mova [r4+r1*0], m0 - mova [r4+r1*1], m0 -%endif - lea r4, [r4+r1*2] - dec r3d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_DC -INIT_XMM sse2 -PRED16x16_DC -INIT_XMM ssse3 -PRED16x16_DC - -;----------------------------------------------------------------------------- -; void ff_pred16x16_tm_vp8_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED16x16_TM 0 -cglobal pred16x16_tm_vp8_8, 2,5 - sub r0, r1 - pxor mm7, mm7 - movq mm0, [r0+0] - movq mm2, [r0+8] - movq mm1, mm0 - movq mm3, mm2 - punpcklbw mm0, mm7 - punpckhbw mm1, mm7 - punpcklbw mm2, mm7 - punpckhbw mm3, mm7 - movzx r3d, byte [r0-1] - mov r4d, 16 -.loop: - movzx r2d, byte [r0+r1-1] - sub r2d, r3d - movd mm4, r2d - SPLATW mm4, mm4, 0 - movq mm5, mm4 - movq mm6, mm4 - movq mm7, mm4 - paddw mm4, mm0 - paddw mm5, mm1 - paddw mm6, mm2 - paddw mm7, mm3 - packuswb mm4, mm5 - packuswb mm6, mm7 - movq [r0+r1+0], mm4 - movq [r0+r1+8], mm6 - add r0, r1 - dec r4d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -PRED16x16_TM -INIT_MMX mmxext -PRED16x16_TM - -INIT_XMM sse2 -cglobal pred16x16_tm_vp8_8, 2,6,6 - sub r0, r1 - pxor xmm2, xmm2 - movdqa xmm0, [r0] - movdqa xmm1, xmm0 - punpcklbw xmm0, xmm2 - punpckhbw xmm1, xmm2 - movzx r4d, byte [r0-1] - mov r5d, 8 -.loop: - movzx r2d, byte [r0+r1*1-1] - movzx r3d, byte [r0+r1*2-1] - sub r2d, r4d - sub r3d, r4d - movd xmm2, r2d - movd xmm4, r3d - pshuflw xmm2, xmm2, 0 - pshuflw xmm4, xmm4, 0 - punpcklqdq xmm2, xmm2 - punpcklqdq xmm4, xmm4 - movdqa xmm3, xmm2 - movdqa xmm5, xmm4 - paddw xmm2, xmm0 - paddw xmm3, xmm1 - paddw xmm4, xmm0 - paddw xmm5, xmm1 - packuswb xmm2, xmm3 - packuswb xmm4, xmm5 - movdqa [r0+r1*1], xmm2 - movdqa [r0+r1*2], xmm4 - lea r0, [r0+r1*2] - dec r5d - jg .loop - REP_RET - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal pred16x16_tm_vp8_8, 2, 4, 5, dst, stride, stride3, iteration - sub dstq, strideq - pmovzxbw m0, [dstq] - vpbroadcastb xm1, [r0-1] - pmovzxbw m1, xm1 - psubw m0, m1 - mov iterationd, 4 - lea stride3q, [strideq*3] -.loop: - vpbroadcastb xm1, [dstq+strideq*1-1] - vpbroadcastb xm2, [dstq+strideq*2-1] - vpbroadcastb xm3, [dstq+stride3q-1] - vpbroadcastb xm4, [dstq+strideq*4-1] - pmovzxbw m1, xm1 - pmovzxbw m2, xm2 - pmovzxbw m3, xm3 - pmovzxbw m4, xm4 - paddw m1, m0 - paddw m2, m0 - paddw m3, m0 - paddw m4, m0 - vpackuswb m1, m1, m2 - vpackuswb m3, m3, m4 - vpermq m1, m1, q3120 - vpermq m3, m3, q3120 - movdqa [dstq+strideq*1], xm1 - vextracti128 [dstq+strideq*2], m1, 1 - movdqa [dstq+stride3q*1], xm3 - vextracti128 [dstq+strideq*4], m3, 1 - lea dstq, [dstq+strideq*4] - dec iterationd - jg .loop - REP_RET -%endif - -;----------------------------------------------------------------------------- -; void ff_pred16x16_plane_*_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro H264_PRED16x16_PLANE 1 -cglobal pred16x16_plane_%1_8, 2,9,7 - mov r2, r1 ; +stride - neg r1 ; -stride - - movh m0, [r0+r1 -1] -%if mmsize == 8 - pxor m4, m4 - movh m1, [r0+r1 +3 ] - movh m2, [r0+r1 +8 ] - movh m3, [r0+r1 +12] - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpcklbw m3, m4 - pmullw m0, [pw_m8tom1 ] - pmullw m1, [pw_m8tom1+8] - pmullw m2, [pw_1to8 ] - pmullw m3, [pw_1to8 +8] - paddw m0, m2 - paddw m1, m3 -%else ; mmsize == 16 -%if cpuflag(ssse3) - movhps m0, [r0+r1 +8] - pmaddubsw m0, [plane_shuf] ; H coefficients -%else ; sse2 - pxor m2, m2 - movh m1, [r0+r1 +8] - punpcklbw m0, m2 - punpcklbw m1, m2 - pmullw m0, [pw_m8tom1] - pmullw m1, [pw_1to8] - paddw m0, m1 -%endif - movhlps m1, m0 -%endif - paddw m0, m1 -%if cpuflag(mmxext) - PSHUFLW m1, m0, 0xE -%elif cpuflag(mmx) - mova m1, m0 - psrlq m1, 32 -%endif - paddw m0, m1 -%if cpuflag(mmxext) - PSHUFLW m1, m0, 0x1 -%elif cpuflag(mmx) - mova m1, m0 - psrlq m1, 16 -%endif - paddw m0, m1 ; sum of H coefficients - - lea r4, [r0+r2*8-1] - lea r3, [r0+r2*4-1] - add r4, r2 - -%if ARCH_X86_64 -%define e_reg r8 -%else -%define e_reg r0 -%endif - - movzx e_reg, byte [r3+r2*2 ] - movzx r5, byte [r4+r1 ] - sub r5, e_reg - - movzx e_reg, byte [r3+r2 ] - movzx r6, byte [r4 ] - sub r6, e_reg - lea r5, [r5+r6*2] - - movzx e_reg, byte [r3+r1 ] - movzx r6, byte [r4+r2*2 ] - sub r6, e_reg - lea r5, [r5+r6*4] - - movzx e_reg, byte [r3 ] -%if ARCH_X86_64 - movzx r7, byte [r4+r2 ] - sub r7, e_reg -%else - movzx r6, byte [r4+r2 ] - sub r6, e_reg - lea r5, [r5+r6*4] - sub r5, r6 -%endif - - lea e_reg, [r3+r1*4] - lea r3, [r4+r2*4] - - movzx r4, byte [e_reg+r2 ] - movzx r6, byte [r3 ] - sub r6, r4 -%if ARCH_X86_64 - lea r6, [r7+r6*2] - lea r5, [r5+r6*2] - add r5, r6 -%else - lea r5, [r5+r6*4] - lea r5, [r5+r6*2] -%endif - - movzx r4, byte [e_reg ] -%if ARCH_X86_64 - movzx r7, byte [r3 +r2 ] - sub r7, r4 - sub r5, r7 -%else - movzx r6, byte [r3 +r2 ] - sub r6, r4 - lea r5, [r5+r6*8] - sub r5, r6 -%endif - - movzx r4, byte [e_reg+r1 ] - movzx r6, byte [r3 +r2*2] - sub r6, r4 -%if ARCH_X86_64 - add r6, r7 -%endif - lea r5, [r5+r6*8] - - movzx r4, byte [e_reg+r2*2] - movzx r6, byte [r3 +r1 ] - sub r6, r4 - lea r5, [r5+r6*4] - add r5, r6 ; sum of V coefficients - -%if ARCH_X86_64 == 0 - mov r0, r0m -%endif - -%ifidn %1, h264 - lea r5, [r5*5+32] - sar r5, 6 -%elifidn %1, rv40 - lea r5, [r5*5] - sar r5, 6 -%elifidn %1, svq3 - test r5, r5 - lea r6, [r5+3] - cmovs r5, r6 - sar r5, 2 ; V/4 - lea r5, [r5*5] ; 5*(V/4) - test r5, r5 - lea r6, [r5+15] - cmovs r5, r6 - sar r5, 4 ; (5*(V/4))/16 -%endif - - movzx r4, byte [r0+r1 +15] - movzx r3, byte [r3+r2*2 ] - lea r3, [r3+r4+1] - shl r3, 4 - - movd r1d, m0 - movsx r1d, r1w -%ifnidn %1, svq3 -%ifidn %1, h264 - lea r1d, [r1d*5+32] -%else ; rv40 - lea r1d, [r1d*5] -%endif - sar r1d, 6 -%else ; svq3 - test r1d, r1d - lea r4d, [r1d+3] - cmovs r1d, r4d - sar r1d, 2 ; H/4 - lea r1d, [r1d*5] ; 5*(H/4) - test r1d, r1d - lea r4d, [r1d+15] - cmovs r1d, r4d - sar r1d, 4 ; (5*(H/4))/16 -%endif - movd m0, r1d - - add r1d, r5d - add r3d, r1d - shl r1d, 3 - sub r3d, r1d ; a - - movd m1, r5d - movd m3, r3d - SPLATW m0, m0, 0 ; H - SPLATW m1, m1, 0 ; V - SPLATW m3, m3, 0 ; a -%ifidn %1, svq3 - SWAP 0, 1 -%endif - mova m2, m0 -%if mmsize == 8 - mova m5, m0 -%endif - pmullw m0, [pw_0to7] ; 0*H, 1*H, ..., 7*H (words) -%if mmsize == 16 - psllw m2, 3 -%else - psllw m5, 3 - psllw m2, 2 - mova m6, m5 - paddw m6, m2 -%endif - paddw m0, m3 ; a + {0,1,2,3,4,5,6,7}*H - paddw m2, m0 ; a + {8,9,10,11,12,13,14,15}*H -%if mmsize == 8 - paddw m5, m0 ; a + {8,9,10,11}*H - paddw m6, m0 ; a + {12,13,14,15}*H -%endif - - mov r4, 8 -.loop: - mova m3, m0 ; b[0..7] - mova m4, m2 ; b[8..15] - psraw m3, 5 - psraw m4, 5 - packuswb m3, m4 - mova [r0], m3 -%if mmsize == 8 - mova m3, m5 ; b[8..11] - mova m4, m6 ; b[12..15] - psraw m3, 5 - psraw m4, 5 - packuswb m3, m4 - mova [r0+8], m3 -%endif - paddw m0, m1 - paddw m2, m1 -%if mmsize == 8 - paddw m5, m1 - paddw m6, m1 -%endif - - mova m3, m0 ; b[0..7] - mova m4, m2 ; b[8..15] - psraw m3, 5 - psraw m4, 5 - packuswb m3, m4 - mova [r0+r2], m3 -%if mmsize == 8 - mova m3, m5 ; b[8..11] - mova m4, m6 ; b[12..15] - psraw m3, 5 - psraw m4, 5 - packuswb m3, m4 - mova [r0+r2+8], m3 -%endif - paddw m0, m1 - paddw m2, m1 -%if mmsize == 8 - paddw m5, m1 - paddw m6, m1 -%endif - - lea r0, [r0+r2*2] - dec r4 - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -H264_PRED16x16_PLANE h264 -H264_PRED16x16_PLANE rv40 -H264_PRED16x16_PLANE svq3 -INIT_MMX mmxext -H264_PRED16x16_PLANE h264 -H264_PRED16x16_PLANE rv40 -H264_PRED16x16_PLANE svq3 -INIT_XMM sse2 -H264_PRED16x16_PLANE h264 -H264_PRED16x16_PLANE rv40 -H264_PRED16x16_PLANE svq3 -INIT_XMM ssse3 -H264_PRED16x16_PLANE h264 -H264_PRED16x16_PLANE rv40 -H264_PRED16x16_PLANE svq3 - -;----------------------------------------------------------------------------- -; void ff_pred8x8_plane_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro H264_PRED8x8_PLANE 0 -cglobal pred8x8_plane_8, 2,9,7 - mov r2, r1 ; +stride - neg r1 ; -stride - - movd m0, [r0+r1 -1] -%if mmsize == 8 - pxor m2, m2 - movh m1, [r0+r1 +4 ] - punpcklbw m0, m2 - punpcklbw m1, m2 - pmullw m0, [pw_m4to4] - pmullw m1, [pw_m4to4+8] -%else ; mmsize == 16 -%if cpuflag(ssse3) - movhps m0, [r0+r1 +4] ; this reads 4 bytes more than necessary - pmaddubsw m0, [plane8_shuf] ; H coefficients -%else ; sse2 - pxor m2, m2 - movd m1, [r0+r1 +4] - punpckldq m0, m1 - punpcklbw m0, m2 - pmullw m0, [pw_m4to4] -%endif - movhlps m1, m0 -%endif - paddw m0, m1 - -%if notcpuflag(ssse3) -%if cpuflag(mmxext) - PSHUFLW m1, m0, 0xE -%elif cpuflag(mmx) - mova m1, m0 - psrlq m1, 32 -%endif - paddw m0, m1 -%endif ; !ssse3 - -%if cpuflag(mmxext) - PSHUFLW m1, m0, 0x1 -%elif cpuflag(mmx) - mova m1, m0 - psrlq m1, 16 -%endif - paddw m0, m1 ; sum of H coefficients - - lea r4, [r0+r2*4-1] - lea r3, [r0 -1] - add r4, r2 - -%if ARCH_X86_64 -%define e_reg r8 -%else -%define e_reg r0 -%endif - - movzx e_reg, byte [r3+r2*2 ] - movzx r5, byte [r4+r1 ] - sub r5, e_reg - - movzx e_reg, byte [r3 ] -%if ARCH_X86_64 - movzx r7, byte [r4+r2 ] - sub r7, e_reg - sub r5, r7 -%else - movzx r6, byte [r4+r2 ] - sub r6, e_reg - lea r5, [r5+r6*4] - sub r5, r6 -%endif - - movzx e_reg, byte [r3+r1 ] - movzx r6, byte [r4+r2*2 ] - sub r6, e_reg -%if ARCH_X86_64 - add r6, r7 -%endif - lea r5, [r5+r6*4] - - movzx e_reg, byte [r3+r2 ] - movzx r6, byte [r4 ] - sub r6, e_reg - lea r6, [r5+r6*2] - - lea r5, [r6*9+16] - lea r5, [r5+r6*8] - sar r5, 5 - -%if ARCH_X86_64 == 0 - mov r0, r0m -%endif - - movzx r3, byte [r4+r2*2 ] - movzx r4, byte [r0+r1 +7] - lea r3, [r3+r4+1] - shl r3, 4 - movd r1d, m0 - movsx r1d, r1w - imul r1d, 17 - add r1d, 16 - sar r1d, 5 - movd m0, r1d - add r1d, r5d - sub r3d, r1d - add r1d, r1d - sub r3d, r1d ; a - - movd m1, r5d - movd m3, r3d - SPLATW m0, m0, 0 ; H - SPLATW m1, m1, 0 ; V - SPLATW m3, m3, 0 ; a -%if mmsize == 8 - mova m2, m0 -%endif - pmullw m0, [pw_0to7] ; 0*H, 1*H, ..., 7*H (words) - paddw m0, m3 ; a + {0,1,2,3,4,5,6,7}*H -%if mmsize == 8 - psllw m2, 2 - paddw m2, m0 ; a + {4,5,6,7}*H -%endif - - mov r4, 4 -ALIGN 16 -.loop: -%if mmsize == 16 - mova m3, m0 ; b[0..7] - paddw m0, m1 - psraw m3, 5 - mova m4, m0 ; V+b[0..7] - paddw m0, m1 - psraw m4, 5 - packuswb m3, m4 - movh [r0], m3 - movhps [r0+r2], m3 -%else ; mmsize == 8 - mova m3, m0 ; b[0..3] - mova m4, m2 ; b[4..7] - paddw m0, m1 - paddw m2, m1 - psraw m3, 5 - psraw m4, 5 - mova m5, m0 ; V+b[0..3] - mova m6, m2 ; V+b[4..7] - paddw m0, m1 - paddw m2, m1 - psraw m5, 5 - psraw m6, 5 - packuswb m3, m4 - packuswb m5, m6 - mova [r0], m3 - mova [r0+r2], m5 -%endif - - lea r0, [r0+r2*2] - dec r4 - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -H264_PRED8x8_PLANE -INIT_MMX mmxext -H264_PRED8x8_PLANE -INIT_XMM sse2 -H264_PRED8x8_PLANE -INIT_XMM ssse3 -H264_PRED8x8_PLANE - -;----------------------------------------------------------------------------- -; void ff_pred8x8_vertical_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmx -cglobal pred8x8_vertical_8, 2,2 - sub r0, r1 - movq mm0, [r0] -%rep 3 - movq [r0+r1*1], mm0 - movq [r0+r1*2], mm0 - lea r0, [r0+r1*2] -%endrep - movq [r0+r1*1], mm0 - movq [r0+r1*2], mm0 - RET - -;----------------------------------------------------------------------------- -; void ff_pred8x8_horizontal_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8_H 0 -cglobal pred8x8_horizontal_8, 2,3 - mov r2, 4 -%if cpuflag(ssse3) - mova m2, [pb_3] -%endif -.loop: - SPLATB_LOAD m0, r0+r1*0-1, m2 - SPLATB_LOAD m1, r0+r1*1-1, m2 - mova [r0+r1*0], m0 - mova [r0+r1*1], m1 - lea r0, [r0+r1*2] - dec r2 - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -PRED8x8_H -INIT_MMX mmxext -PRED8x8_H -INIT_MMX ssse3 -PRED8x8_H - -;----------------------------------------------------------------------------- -; void ff_pred8x8_top_dc_8_mmxext(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_MMX mmxext -cglobal pred8x8_top_dc_8, 2,5 - sub r0, r1 - movq mm0, [r0] - pxor mm1, mm1 - pxor mm2, mm2 - lea r2, [r0+r1*2] - punpckhbw mm1, mm0 - punpcklbw mm0, mm2 - psadbw mm1, mm2 ; s1 - lea r3, [r2+r1*2] - psadbw mm0, mm2 ; s0 - psrlw mm1, 1 - psrlw mm0, 1 - pavgw mm1, mm2 - lea r4, [r3+r1*2] - pavgw mm0, mm2 - pshufw mm1, mm1, 0 - pshufw mm0, mm0, 0 ; dc0 (w) - packuswb mm0, mm1 ; dc0,dc1 (b) - movq [r0+r1*1], mm0 - movq [r0+r1*2], mm0 - lea r0, [r3+r1*2] - movq [r2+r1*1], mm0 - movq [r2+r1*2], mm0 - movq [r3+r1*1], mm0 - movq [r3+r1*2], mm0 - movq [r0+r1*1], mm0 - movq [r0+r1*2], mm0 - RET - -;----------------------------------------------------------------------------- -; void ff_pred8x8_dc_8_mmxext(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred8x8_dc_8, 2,5 - sub r0, r1 - pxor m7, m7 - movd m0, [r0+0] - movd m1, [r0+4] - psadbw m0, m7 ; s0 - mov r4, r0 - psadbw m1, m7 ; s1 - - movzx r2d, byte [r0+r1*1-1] - movzx r3d, byte [r0+r1*2-1] - lea r0, [r0+r1*2] - add r2d, r3d - movzx r3d, byte [r0+r1*1-1] - add r2d, r3d - movzx r3d, byte [r0+r1*2-1] - add r2d, r3d - lea r0, [r0+r1*2] - movd m2, r2d ; s2 - movzx r2d, byte [r0+r1*1-1] - movzx r3d, byte [r0+r1*2-1] - lea r0, [r0+r1*2] - add r2d, r3d - movzx r3d, byte [r0+r1*1-1] - add r2d, r3d - movzx r3d, byte [r0+r1*2-1] - add r2d, r3d - movd m3, r2d ; s3 - - punpcklwd m0, m1 - mov r0, r4 - punpcklwd m2, m3 - punpckldq m0, m2 ; s0, s1, s2, s3 - pshufw m3, m0, 11110110b ; s2, s1, s3, s3 - lea r2, [r0+r1*2] - pshufw m0, m0, 01110100b ; s0, s1, s3, s1 - paddw m0, m3 - lea r3, [r2+r1*2] - psrlw m0, 2 - pavgw m0, m7 ; s0+s2, s1, s3, s1+s3 - lea r4, [r3+r1*2] - packuswb m0, m0 - punpcklbw m0, m0 - movq m1, m0 - punpcklbw m0, m0 - punpckhbw m1, m1 - movq [r0+r1*1], m0 - movq [r0+r1*2], m0 - movq [r2+r1*1], m0 - movq [r2+r1*2], m0 - movq [r3+r1*1], m1 - movq [r3+r1*2], m1 - movq [r4+r1*1], m1 - movq [r4+r1*2], m1 - RET - -;----------------------------------------------------------------------------- -; void ff_pred8x8_dc_rv40_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred8x8_dc_rv40_8, 2,7 - mov r4, r0 - sub r0, r1 - pxor mm0, mm0 - psadbw mm0, [r0] - dec r0 - movzx r5d, byte [r0+r1*1] - movd r6d, mm0 - lea r0, [r0+r1*2] -%rep 3 - movzx r2d, byte [r0+r1*0] - movzx r3d, byte [r0+r1*1] - add r5d, r2d - add r6d, r3d - lea r0, [r0+r1*2] -%endrep - movzx r2d, byte [r0+r1*0] - add r5d, r6d - lea r2d, [r2+r5+8] - shr r2d, 4 - movd mm0, r2d - punpcklbw mm0, mm0 - pshufw mm0, mm0, 0 - mov r3d, 4 -.loop: - movq [r4+r1*0], mm0 - movq [r4+r1*1], mm0 - lea r4, [r4+r1*2] - dec r3d - jg .loop - REP_RET - -;----------------------------------------------------------------------------- -; void ff_pred8x8_tm_vp8_8(uint8_t *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8_TM 0 -cglobal pred8x8_tm_vp8_8, 2,6 - sub r0, r1 - pxor mm7, mm7 - movq mm0, [r0] - movq mm1, mm0 - punpcklbw mm0, mm7 - punpckhbw mm1, mm7 - movzx r4d, byte [r0-1] - mov r5d, 4 -.loop: - movzx r2d, byte [r0+r1*1-1] - movzx r3d, byte [r0+r1*2-1] - sub r2d, r4d - sub r3d, r4d - movd mm2, r2d - movd mm4, r3d - SPLATW mm2, mm2, 0 - SPLATW mm4, mm4, 0 - movq mm3, mm2 - movq mm5, mm4 - paddw mm2, mm0 - paddw mm3, mm1 - paddw mm4, mm0 - paddw mm5, mm1 - packuswb mm2, mm3 - packuswb mm4, mm5 - movq [r0+r1*1], mm2 - movq [r0+r1*2], mm4 - lea r0, [r0+r1*2] - dec r5d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -PRED8x8_TM -INIT_MMX mmxext -PRED8x8_TM - -INIT_XMM sse2 -cglobal pred8x8_tm_vp8_8, 2,6,4 - sub r0, r1 - pxor xmm1, xmm1 - movq xmm0, [r0] - punpcklbw xmm0, xmm1 - movzx r4d, byte [r0-1] - mov r5d, 4 -.loop: - movzx r2d, byte [r0+r1*1-1] - movzx r3d, byte [r0+r1*2-1] - sub r2d, r4d - sub r3d, r4d - movd xmm2, r2d - movd xmm3, r3d - pshuflw xmm2, xmm2, 0 - pshuflw xmm3, xmm3, 0 - punpcklqdq xmm2, xmm2 - punpcklqdq xmm3, xmm3 - paddw xmm2, xmm0 - paddw xmm3, xmm0 - packuswb xmm2, xmm3 - movq [r0+r1*1], xmm2 - movhps [r0+r1*2], xmm2 - lea r0, [r0+r1*2] - dec r5d - jg .loop - REP_RET - -INIT_XMM ssse3 -cglobal pred8x8_tm_vp8_8, 2,3,6 - sub r0, r1 - movdqa xmm4, [tm_shuf] - pxor xmm1, xmm1 - movq xmm0, [r0] - punpcklbw xmm0, xmm1 - movd xmm5, [r0-4] - pshufb xmm5, xmm4 - mov r2d, 4 -.loop: - movd xmm2, [r0+r1*1-4] - movd xmm3, [r0+r1*2-4] - pshufb xmm2, xmm4 - pshufb xmm3, xmm4 - psubw xmm2, xmm5 - psubw xmm3, xmm5 - paddw xmm2, xmm0 - paddw xmm3, xmm0 - packuswb xmm2, xmm3 - movq [r0+r1*1], xmm2 - movhps [r0+r1*2], xmm2 - lea r0, [r0+r1*2] - dec r2d - jg .loop - REP_RET - -; dest, left, right, src, tmp -; output: %1 = (t[n-1] + t[n]*2 + t[n+1] + 2) >> 2 -%macro PRED4x4_LOWPASS 5 - mova %5, %2 - pavgb %2, %3 - pxor %3, %5 - mova %1, %4 - pand %3, [pb_1] - psubusb %2, %3 - pavgb %1, %2 -%endmacro - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_top_dc_8(uint8_t *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_TOP_DC 0 -cglobal pred8x8l_top_dc_8, 4,4 - sub r0, r3 - pxor mm7, mm7 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d ; top_left - jz .fix_lt_2 - test r2d, r2d ; top_right - jz .fix_tr_1 - jmp .body -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d ; top_right - jnz .body -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 -.body: - PRED4x4_LOWPASS mm0, mm2, mm1, mm3, mm5 - psadbw mm7, mm0 - paddw mm7, [pw_4] - psrlw mm7, 3 - pshufw mm7, mm7, 0 - packuswb mm7, mm7 -%rep 3 - movq [r0+r3*1], mm7 - movq [r0+r3*2], mm7 - lea r0, [r0+r3*2] -%endrep - movq [r0+r3*1], mm7 - movq [r0+r3*2], mm7 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8L_TOP_DC -INIT_MMX ssse3 -PRED8x8L_TOP_DC - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_dc_8(uint8_t *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8L_DC 0 -cglobal pred8x8l_dc_8, 4,5 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d - jnz .do_left -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .body -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .body -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm4, mm0 - movq mm7, mm2 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - psllq mm1, 56 - PALIGNR mm7, mm1, 7, mm3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 -.body: - lea r1, [r0+r3*2] - PRED4x4_LOWPASS mm6, mm2, mm1, mm3, mm5 - pxor mm0, mm0 - pxor mm1, mm1 - lea r2, [r1+r3*2] - psadbw mm0, mm7 - psadbw mm1, mm6 - paddw mm0, [pw_8] - paddw mm0, mm1 - lea r4, [r2+r3*2] - psrlw mm0, 4 - pshufw mm0, mm0, 0 - packuswb mm0, mm0 - movq [r0+r3*1], mm0 - movq [r0+r3*2], mm0 - movq [r1+r3*1], mm0 - movq [r1+r3*2], mm0 - movq [r2+r3*1], mm0 - movq [r2+r3*2], mm0 - movq [r4+r3*1], mm0 - movq [r4+r3*2], mm0 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8L_DC -INIT_MMX ssse3 -PRED8x8L_DC - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_horizontal_8(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8L_HORIZONTAL 0 -cglobal pred8x8l_horizontal_8, 4,4 - sub r0, r3 - lea r2, [r0+r3*2] - movq mm0, [r0+r3*1-8] - test r1d, r1d - lea r1, [r0+r3] - cmovnz r1, r0 - punpckhbw mm0, [r1+r3*0-8] - movq mm1, [r2+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r2, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r1+r3*0-8] - mov r0, r2 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm4, mm0 - movq mm7, mm2 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - psllq mm1, 56 - PALIGNR mm7, mm1, 7, mm3 - movq mm3, mm7 - lea r1, [r0+r3*2] - movq mm7, mm3 - punpckhbw mm3, mm3 - punpcklbw mm7, mm7 - pshufw mm0, mm3, 0xff - pshufw mm1, mm3, 0xaa - lea r2, [r1+r3*2] - pshufw mm2, mm3, 0x55 - pshufw mm3, mm3, 0x00 - pshufw mm4, mm7, 0xff - pshufw mm5, mm7, 0xaa - pshufw mm6, mm7, 0x55 - pshufw mm7, mm7, 0x00 - movq [r0+r3*1], mm0 - movq [r0+r3*2], mm1 - movq [r1+r3*1], mm2 - movq [r1+r3*2], mm3 - movq [r2+r3*1], mm4 - movq [r2+r3*2], mm5 - lea r0, [r2+r3*2] - movq [r0+r3*1], mm6 - movq [r0+r3*2], mm7 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8L_HORIZONTAL -INIT_MMX ssse3 -PRED8x8L_HORIZONTAL - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_vertical_8(uint8_t *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8L_VERTICAL 0 -cglobal pred8x8l_vertical_8, 4,4 - sub r0, r3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d ; top_left - jz .fix_lt_2 - test r2d, r2d ; top_right - jz .fix_tr_1 - jmp .body -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d ; top_right - jnz .body -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 -.body: - PRED4x4_LOWPASS mm0, mm2, mm1, mm3, mm5 -%rep 3 - movq [r0+r3*1], mm0 - movq [r0+r3*2], mm0 - lea r0, [r0+r3*2] -%endrep - movq [r0+r3*1], mm0 - movq [r0+r3*2], mm0 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8L_VERTICAL -INIT_MMX ssse3 -PRED8x8L_VERTICAL - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_down_left_8(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred8x8l_down_left_8, 4,5 - sub r0, r3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 - jmp .do_top -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.fix_tr_2: - punpckhbw mm3, mm3 - pshufw mm1, mm3, 0xFF - jmp .do_topright -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq mm7, mm4 - test r2d, r2d - jz .fix_tr_2 - movq mm0, [r0+8] - movq mm5, mm0 - movq mm2, mm0 - movq mm4, mm0 - psrlq mm5, 56 - PALIGNR mm2, mm3, 7, mm3 - PALIGNR mm5, mm4, 1, mm4 - PRED4x4_LOWPASS mm1, mm2, mm5, mm0, mm4 -.do_topright: - lea r1, [r0+r3*2] - movq mm6, mm1 - psrlq mm1, 56 - movq mm4, mm1 - lea r2, [r1+r3*2] - movq mm2, mm6 - PALIGNR mm2, mm7, 1, mm0 - movq mm3, mm6 - PALIGNR mm3, mm7, 7, mm0 - PALIGNR mm4, mm6, 1, mm0 - movq mm5, mm7 - movq mm1, mm7 - movq mm7, mm6 - lea r4, [r2+r3*2] - psllq mm1, 8 - PRED4x4_LOWPASS mm0, mm1, mm2, mm5, mm6 - PRED4x4_LOWPASS mm1, mm3, mm4, mm7, mm6 - movq [r4+r3*2], mm1 - movq mm2, mm0 - psllq mm1, 8 - psrlq mm2, 56 - psllq mm0, 8 - por mm1, mm2 - movq [r4+r3*1], mm1 - movq mm2, mm0 - psllq mm1, 8 - psrlq mm2, 56 - psllq mm0, 8 - por mm1, mm2 - movq [r2+r3*2], mm1 - movq mm2, mm0 - psllq mm1, 8 - psrlq mm2, 56 - psllq mm0, 8 - por mm1, mm2 - movq [r2+r3*1], mm1 - movq mm2, mm0 - psllq mm1, 8 - psrlq mm2, 56 - psllq mm0, 8 - por mm1, mm2 - movq [r1+r3*2], mm1 - movq mm2, mm0 - psllq mm1, 8 - psrlq mm2, 56 - psllq mm0, 8 - por mm1, mm2 - movq [r1+r3*1], mm1 - movq mm2, mm0 - psllq mm1, 8 - psrlq mm2, 56 - psllq mm0, 8 - por mm1, mm2 - movq [r0+r3*2], mm1 - psllq mm1, 8 - psrlq mm0, 56 - por mm1, mm0 - movq [r0+r3*1], mm1 - RET - -%macro PRED8x8L_DOWN_LEFT 0 -cglobal pred8x8l_down_left_8, 4,4 - sub r0, r3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d ; top_left - jz .fix_lt_2 - test r2d, r2d ; top_right - jz .fix_tr_1 - jmp .do_top -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d ; top_right - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.fix_tr_2: - punpckhbw mm3, mm3 - pshufw mm1, mm3, 0xFF - jmp .do_topright -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq2dq xmm3, mm4 - test r2d, r2d ; top_right - jz .fix_tr_2 - movq mm0, [r0+8] - movq mm5, mm0 - movq mm2, mm0 - movq mm4, mm0 - psrlq mm5, 56 - PALIGNR mm2, mm3, 7, mm3 - PALIGNR mm5, mm4, 1, mm4 - PRED4x4_LOWPASS mm1, mm2, mm5, mm0, mm4 -.do_topright: - movq2dq xmm4, mm1 - psrlq mm1, 56 - movq2dq xmm5, mm1 - lea r1, [r0+r3*2] - pslldq xmm4, 8 - por xmm3, xmm4 - movdqa xmm2, xmm3 - psrldq xmm2, 1 - pslldq xmm5, 15 - por xmm2, xmm5 - lea r2, [r1+r3*2] - movdqa xmm1, xmm3 - pslldq xmm1, 1 -INIT_XMM cpuname - PRED4x4_LOWPASS xmm0, xmm1, xmm2, xmm3, xmm4 - psrldq xmm0, 1 - movq [r0+r3*1], xmm0 - psrldq xmm0, 1 - movq [r0+r3*2], xmm0 - psrldq xmm0, 1 - lea r0, [r2+r3*2] - movq [r1+r3*1], xmm0 - psrldq xmm0, 1 - movq [r1+r3*2], xmm0 - psrldq xmm0, 1 - movq [r2+r3*1], xmm0 - psrldq xmm0, 1 - movq [r2+r3*2], xmm0 - psrldq xmm0, 1 - movq [r0+r3*1], xmm0 - psrldq xmm0, 1 - movq [r0+r3*2], xmm0 - RET -%endmacro - -INIT_MMX sse2 -PRED8x8L_DOWN_LEFT -INIT_MMX ssse3 -PRED8x8L_DOWN_LEFT - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_down_right_8_mmxext(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred8x8l_down_right_8, 4,5 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d ; top_left - jz .fix_lt_1 -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm4, mm0 - movq mm7, mm2 - movq mm6, mm2 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - psllq mm1, 56 - PALIGNR mm7, mm1, 7, mm3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d ; top_left - jz .fix_lt_2 - test r2d, r2d ; top_right - jz .fix_tr_1 -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq mm5, mm4 - jmp .body -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d ; top_right - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.body: - lea r1, [r0+r3*2] - movq mm1, mm7 - movq mm7, mm5 - movq mm5, mm6 - movq mm2, mm7 - lea r2, [r1+r3*2] - PALIGNR mm2, mm6, 1, mm0 - movq mm3, mm7 - PALIGNR mm3, mm6, 7, mm0 - movq mm4, mm7 - lea r4, [r2+r3*2] - psrlq mm4, 8 - PRED4x4_LOWPASS mm0, mm1, mm2, mm5, mm6 - PRED4x4_LOWPASS mm1, mm3, mm4, mm7, mm6 - movq [r4+r3*2], mm0 - movq mm2, mm1 - psrlq mm0, 8 - psllq mm2, 56 - psrlq mm1, 8 - por mm0, mm2 - movq [r4+r3*1], mm0 - movq mm2, mm1 - psrlq mm0, 8 - psllq mm2, 56 - psrlq mm1, 8 - por mm0, mm2 - movq [r2+r3*2], mm0 - movq mm2, mm1 - psrlq mm0, 8 - psllq mm2, 56 - psrlq mm1, 8 - por mm0, mm2 - movq [r2+r3*1], mm0 - movq mm2, mm1 - psrlq mm0, 8 - psllq mm2, 56 - psrlq mm1, 8 - por mm0, mm2 - movq [r1+r3*2], mm0 - movq mm2, mm1 - psrlq mm0, 8 - psllq mm2, 56 - psrlq mm1, 8 - por mm0, mm2 - movq [r1+r3*1], mm0 - movq mm2, mm1 - psrlq mm0, 8 - psllq mm2, 56 - psrlq mm1, 8 - por mm0, mm2 - movq [r0+r3*2], mm0 - psrlq mm0, 8 - psllq mm1, 56 - por mm0, mm1 - movq [r0+r3*1], mm0 - RET - -%macro PRED8x8L_DOWN_RIGHT 0 -cglobal pred8x8l_down_right_8, 4,5 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d - jz .fix_lt_1 - jmp .do_left -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm4, mm0 - movq mm7, mm2 - movq2dq xmm3, mm2 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - psllq mm1, 56 - PALIGNR mm7, mm1, 7, mm3 - movq2dq xmm1, mm7 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq2dq xmm4, mm4 - lea r1, [r0+r3*2] - movdqa xmm0, xmm3 - pslldq xmm4, 8 - por xmm3, xmm4 - lea r2, [r1+r3*2] - pslldq xmm4, 1 - por xmm1, xmm4 - psrldq xmm0, 7 - pslldq xmm0, 15 - psrldq xmm0, 7 - por xmm1, xmm0 - lea r0, [r2+r3*2] - movdqa xmm2, xmm3 - psrldq xmm2, 1 -INIT_XMM cpuname - PRED4x4_LOWPASS xmm0, xmm1, xmm2, xmm3, xmm4 - movdqa xmm1, xmm0 - psrldq xmm1, 1 - movq [r0+r3*2], xmm0 - movq [r0+r3*1], xmm1 - psrldq xmm0, 2 - psrldq xmm1, 2 - movq [r2+r3*2], xmm0 - movq [r2+r3*1], xmm1 - psrldq xmm0, 2 - psrldq xmm1, 2 - movq [r1+r3*2], xmm0 - movq [r1+r3*1], xmm1 - psrldq xmm0, 2 - psrldq xmm1, 2 - movq [r4+r3*2], xmm0 - movq [r4+r3*1], xmm1 - RET -%endmacro - -INIT_MMX sse2 -PRED8x8L_DOWN_RIGHT -INIT_MMX ssse3 -PRED8x8L_DOWN_RIGHT - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_vertical_right_8(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred8x8l_vertical_right_8, 4,5 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d - jz .fix_lt_1 - jmp .do_left -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm7, mm2 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 -.do_top: - PRED4x4_LOWPASS mm6, mm2, mm1, mm3, mm5 - lea r1, [r0+r3*2] - movq mm2, mm6 - movq mm3, mm6 - PALIGNR mm3, mm7, 7, mm0 - PALIGNR mm6, mm7, 6, mm1 - movq mm4, mm3 - pavgb mm3, mm2 - lea r2, [r1+r3*2] - PRED4x4_LOWPASS mm0, mm6, mm2, mm4, mm5 - movq [r0+r3*1], mm3 - movq [r0+r3*2], mm0 - movq mm5, mm0 - movq mm6, mm3 - movq mm1, mm7 - movq mm2, mm1 - psllq mm2, 8 - movq mm3, mm1 - psllq mm3, 16 - lea r4, [r2+r3*2] - PRED4x4_LOWPASS mm0, mm1, mm3, mm2, mm4 - PALIGNR mm6, mm0, 7, mm2 - movq [r1+r3*1], mm6 - psllq mm0, 8 - PALIGNR mm5, mm0, 7, mm1 - movq [r1+r3*2], mm5 - psllq mm0, 8 - PALIGNR mm6, mm0, 7, mm2 - movq [r2+r3*1], mm6 - psllq mm0, 8 - PALIGNR mm5, mm0, 7, mm1 - movq [r2+r3*2], mm5 - psllq mm0, 8 - PALIGNR mm6, mm0, 7, mm2 - movq [r4+r3*1], mm6 - psllq mm0, 8 - PALIGNR mm5, mm0, 7, mm1 - movq [r4+r3*2], mm5 - RET - -%macro PRED8x8L_VERTICAL_RIGHT 0 -cglobal pred8x8l_vertical_right_8, 4,5,7 - ; manually spill XMM registers for Win64 because - ; the code here is initialized with INIT_MMX - WIN64_SPILL_XMM 7 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d - jnz .do_left -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq2dq xmm0, mm2 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 -.do_top: - PRED4x4_LOWPASS mm6, mm2, mm1, mm3, mm5 - lea r1, [r0+r3*2] - movq2dq xmm4, mm6 - pslldq xmm4, 8 - por xmm0, xmm4 - movdqa xmm6, [pw_ff00] - movdqa xmm1, xmm0 - lea r2, [r1+r3*2] - movdqa xmm2, xmm0 - movdqa xmm3, xmm0 - pslldq xmm0, 1 - pslldq xmm1, 2 - pavgb xmm2, xmm0 -INIT_XMM cpuname - PRED4x4_LOWPASS xmm4, xmm3, xmm1, xmm0, xmm5 - pandn xmm6, xmm4 - movdqa xmm5, xmm4 - psrlw xmm4, 8 - packuswb xmm6, xmm4 - movhlps xmm4, xmm6 - movhps [r0+r3*2], xmm5 - movhps [r0+r3*1], xmm2 - psrldq xmm5, 4 - movss xmm5, xmm6 - psrldq xmm2, 4 - movss xmm2, xmm4 - lea r0, [r2+r3*2] - psrldq xmm5, 1 - psrldq xmm2, 1 - movq [r0+r3*2], xmm5 - movq [r0+r3*1], xmm2 - psrldq xmm5, 1 - psrldq xmm2, 1 - movq [r2+r3*2], xmm5 - movq [r2+r3*1], xmm2 - psrldq xmm5, 1 - psrldq xmm2, 1 - movq [r1+r3*2], xmm5 - movq [r1+r3*1], xmm2 - RET -%endmacro - -INIT_MMX sse2 -PRED8x8L_VERTICAL_RIGHT -INIT_MMX ssse3 -PRED8x8L_VERTICAL_RIGHT - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_vertical_left_8(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8L_VERTICAL_LEFT 0 -cglobal pred8x8l_vertical_left_8, 4,4 - sub r0, r3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 - jmp .do_top -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.fix_tr_2: - punpckhbw mm3, mm3 - pshufw mm1, mm3, 0xFF - jmp .do_topright -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq2dq xmm4, mm4 - test r2d, r2d - jz .fix_tr_2 - movq mm0, [r0+8] - movq mm5, mm0 - movq mm2, mm0 - movq mm4, mm0 - psrlq mm5, 56 - PALIGNR mm2, mm3, 7, mm3 - PALIGNR mm5, mm4, 1, mm4 - PRED4x4_LOWPASS mm1, mm2, mm5, mm0, mm4 -.do_topright: - movq2dq xmm3, mm1 - lea r1, [r0+r3*2] - pslldq xmm3, 8 - por xmm4, xmm3 - movdqa xmm2, xmm4 - movdqa xmm1, xmm4 - movdqa xmm3, xmm4 - psrldq xmm2, 1 - pslldq xmm1, 1 - pavgb xmm3, xmm2 - lea r2, [r1+r3*2] -INIT_XMM cpuname - PRED4x4_LOWPASS xmm0, xmm1, xmm2, xmm4, xmm5 - psrldq xmm0, 1 - movq [r0+r3*1], xmm3 - movq [r0+r3*2], xmm0 - lea r0, [r2+r3*2] - psrldq xmm3, 1 - psrldq xmm0, 1 - movq [r1+r3*1], xmm3 - movq [r1+r3*2], xmm0 - psrldq xmm3, 1 - psrldq xmm0, 1 - movq [r2+r3*1], xmm3 - movq [r2+r3*2], xmm0 - psrldq xmm3, 1 - psrldq xmm0, 1 - movq [r0+r3*1], xmm3 - movq [r0+r3*2], xmm0 - RET -%endmacro - -INIT_MMX sse2 -PRED8x8L_VERTICAL_LEFT -INIT_MMX ssse3 -PRED8x8L_VERTICAL_LEFT - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_horizontal_up_8(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED8x8L_HORIZONTAL_UP 0 -cglobal pred8x8l_horizontal_up_8, 4,4 - sub r0, r3 - lea r2, [r0+r3*2] - movq mm0, [r0+r3*1-8] - test r1d, r1d - lea r1, [r0+r3] - cmovnz r1, r0 - punpckhbw mm0, [r1+r3*0-8] - movq mm1, [r2+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r2, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r1+r3*0-8] - mov r0, r2 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm4, mm0 - movq mm7, mm2 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - psllq mm1, 56 - PALIGNR mm7, mm1, 7, mm3 - lea r1, [r0+r3*2] - pshufw mm0, mm7, 00011011b ; l6 l7 l4 l5 l2 l3 l0 l1 - psllq mm7, 56 ; l7 .. .. .. .. .. .. .. - movq mm2, mm0 - psllw mm0, 8 - psrlw mm2, 8 - por mm2, mm0 ; l7 l6 l5 l4 l3 l2 l1 l0 - movq mm3, mm2 - movq mm4, mm2 - movq mm5, mm2 - psrlq mm2, 8 - psrlq mm3, 16 - lea r2, [r1+r3*2] - por mm2, mm7 ; l7 l7 l6 l5 l4 l3 l2 l1 - punpckhbw mm7, mm7 - por mm3, mm7 ; l7 l7 l7 l6 l5 l4 l3 l2 - pavgb mm4, mm2 - PRED4x4_LOWPASS mm1, mm3, mm5, mm2, mm6 - movq mm5, mm4 - punpcklbw mm4, mm1 ; p4 p3 p2 p1 - punpckhbw mm5, mm1 ; p8 p7 p6 p5 - movq mm6, mm5 - movq mm7, mm5 - movq mm0, mm5 - PALIGNR mm5, mm4, 2, mm1 - pshufw mm1, mm6, 11111001b - PALIGNR mm6, mm4, 4, mm2 - pshufw mm2, mm7, 11111110b - PALIGNR mm7, mm4, 6, mm3 - pshufw mm3, mm0, 11111111b - movq [r0+r3*1], mm4 - movq [r0+r3*2], mm5 - lea r0, [r2+r3*2] - movq [r1+r3*1], mm6 - movq [r1+r3*2], mm7 - movq [r2+r3*1], mm0 - movq [r2+r3*2], mm1 - movq [r0+r3*1], mm2 - movq [r0+r3*2], mm3 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8L_HORIZONTAL_UP -INIT_MMX ssse3 -PRED8x8L_HORIZONTAL_UP - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_horizontal_down_8(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred8x8l_horizontal_down_8, 4,5 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d - jnz .do_left -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq mm4, mm0 - movq mm7, mm2 - movq mm6, mm2 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - psllq mm1, 56 - PALIGNR mm7, mm1, 7, mm3 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq mm5, mm4 - lea r1, [r0+r3*2] - psllq mm7, 56 - movq mm2, mm5 - movq mm3, mm6 - movq mm4, mm2 - PALIGNR mm2, mm6, 7, mm5 - PALIGNR mm6, mm7, 7, mm0 - lea r2, [r1+r3*2] - PALIGNR mm4, mm3, 1, mm7 - movq mm5, mm3 - pavgb mm3, mm6 - PRED4x4_LOWPASS mm0, mm4, mm6, mm5, mm7 - movq mm4, mm2 - movq mm1, mm2 - lea r4, [r2+r3*2] - psrlq mm4, 16 - psrlq mm1, 8 - PRED4x4_LOWPASS mm6, mm4, mm2, mm1, mm5 - movq mm7, mm3 - punpcklbw mm3, mm0 - punpckhbw mm7, mm0 - movq mm1, mm7 - movq mm0, mm7 - movq mm4, mm7 - movq [r4+r3*2], mm3 - PALIGNR mm7, mm3, 2, mm5 - movq [r4+r3*1], mm7 - PALIGNR mm1, mm3, 4, mm5 - movq [r2+r3*2], mm1 - PALIGNR mm0, mm3, 6, mm3 - movq [r2+r3*1], mm0 - movq mm2, mm6 - movq mm3, mm6 - movq [r1+r3*2], mm4 - PALIGNR mm6, mm4, 2, mm5 - movq [r1+r3*1], mm6 - PALIGNR mm2, mm4, 4, mm5 - movq [r0+r3*2], mm2 - PALIGNR mm3, mm4, 6, mm4 - movq [r0+r3*1], mm3 - RET - -%macro PRED8x8L_HORIZONTAL_DOWN 0 -cglobal pred8x8l_horizontal_down_8, 4,5 - sub r0, r3 - lea r4, [r0+r3*2] - movq mm0, [r0+r3*1-8] - punpckhbw mm0, [r0+r3*0-8] - movq mm1, [r4+r3*1-8] - punpckhbw mm1, [r0+r3*2-8] - mov r4, r0 - punpckhwd mm1, mm0 - lea r0, [r0+r3*4] - movq mm2, [r0+r3*1-8] - punpckhbw mm2, [r0+r3*0-8] - lea r0, [r0+r3*2] - movq mm3, [r0+r3*1-8] - punpckhbw mm3, [r0+r3*0-8] - punpckhwd mm3, mm2 - punpckhdq mm3, mm1 - lea r0, [r0+r3*2] - movq mm0, [r0+r3*0-8] - movq mm1, [r4] - mov r0, r4 - movq mm4, mm3 - movq mm2, mm3 - PALIGNR mm4, mm0, 7, mm0 - PALIGNR mm1, mm2, 1, mm2 - test r1d, r1d - jnz .do_left -.fix_lt_1: - movq mm5, mm3 - pxor mm5, mm4 - psrlq mm5, 56 - psllq mm5, 48 - pxor mm1, mm5 - jmp .do_left -.fix_lt_2: - movq mm5, mm3 - pxor mm5, mm2 - psllq mm5, 56 - psrlq mm5, 56 - pxor mm2, mm5 - test r2d, r2d - jnz .do_top -.fix_tr_1: - movq mm5, mm3 - pxor mm5, mm1 - psrlq mm5, 56 - psllq mm5, 56 - pxor mm1, mm5 - jmp .do_top -.fix_tr_2: - punpckhbw mm3, mm3 - pshufw mm1, mm3, 0xFF - jmp .do_topright -.do_left: - movq mm0, mm4 - PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5 - movq2dq xmm0, mm2 - pslldq xmm0, 8 - movq mm4, mm0 - PRED4x4_LOWPASS mm1, mm3, mm0, mm4, mm5 - movq2dq xmm2, mm1 - pslldq xmm2, 15 - psrldq xmm2, 8 - por xmm0, xmm2 - movq mm0, [r0-8] - movq mm3, [r0] - movq mm1, [r0+8] - movq mm2, mm3 - movq mm4, mm3 - PALIGNR mm2, mm0, 7, mm0 - PALIGNR mm1, mm4, 1, mm4 - test r1d, r1d - jz .fix_lt_2 - test r2d, r2d - jz .fix_tr_1 -.do_top: - PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5 - movq2dq xmm1, mm4 - test r2d, r2d - jz .fix_tr_2 - movq mm0, [r0+8] - movq mm5, mm0 - movq mm2, mm0 - movq mm4, mm0 - psrlq mm5, 56 - PALIGNR mm2, mm3, 7, mm3 - PALIGNR mm5, mm4, 1, mm4 - PRED4x4_LOWPASS mm1, mm2, mm5, mm0, mm4 -.do_topright: - movq2dq xmm5, mm1 - pslldq xmm5, 8 - por xmm1, xmm5 -INIT_XMM cpuname - lea r2, [r4+r3*2] - movdqa xmm2, xmm1 - movdqa xmm3, xmm1 - PALIGNR xmm1, xmm0, 7, xmm4 - PALIGNR xmm2, xmm0, 9, xmm5 - lea r1, [r2+r3*2] - PALIGNR xmm3, xmm0, 8, xmm0 - movdqa xmm4, xmm1 - pavgb xmm4, xmm3 - lea r0, [r1+r3*2] - PRED4x4_LOWPASS xmm0, xmm1, xmm2, xmm3, xmm5 - punpcklbw xmm4, xmm0 - movhlps xmm0, xmm4 - movq [r0+r3*2], xmm4 - movq [r2+r3*2], xmm0 - psrldq xmm4, 2 - psrldq xmm0, 2 - movq [r0+r3*1], xmm4 - movq [r2+r3*1], xmm0 - psrldq xmm4, 2 - psrldq xmm0, 2 - movq [r1+r3*2], xmm4 - movq [r4+r3*2], xmm0 - psrldq xmm4, 2 - psrldq xmm0, 2 - movq [r1+r3*1], xmm4 - movq [r4+r3*1], xmm0 - RET -%endmacro - -INIT_MMX sse2 -PRED8x8L_HORIZONTAL_DOWN -INIT_MMX ssse3 -PRED8x8L_HORIZONTAL_DOWN - -;------------------------------------------------------------------------------- -; void ff_pred4x4_dc_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred4x4_dc_8, 3,5 - pxor mm7, mm7 - mov r4, r0 - sub r0, r2 - movd mm0, [r0] - psadbw mm0, mm7 - movzx r1d, byte [r0+r2*1-1] - movd r3d, mm0 - add r3d, r1d - movzx r1d, byte [r0+r2*2-1] - lea r0, [r0+r2*2] - add r3d, r1d - movzx r1d, byte [r0+r2*1-1] - add r3d, r1d - movzx r1d, byte [r0+r2*2-1] - add r3d, r1d - add r3d, 4 - shr r3d, 3 - imul r3d, 0x01010101 - mov [r4+r2*0], r3d - mov [r0+r2*0], r3d - mov [r0+r2*1], r3d - mov [r0+r2*2], r3d - RET - -;----------------------------------------------------------------------------- -; void ff_pred4x4_tm_vp8_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- - -%macro PRED4x4_TM 0 -cglobal pred4x4_tm_vp8_8, 3,6 - sub r0, r2 - pxor mm7, mm7 - movd mm0, [r0] - punpcklbw mm0, mm7 - movzx r4d, byte [r0-1] - mov r5d, 2 -.loop: - movzx r1d, byte [r0+r2*1-1] - movzx r3d, byte [r0+r2*2-1] - sub r1d, r4d - sub r3d, r4d - movd mm2, r1d - movd mm4, r3d -%if cpuflag(mmxext) - pshufw mm2, mm2, 0 - pshufw mm4, mm4, 0 -%else - punpcklwd mm2, mm2 - punpcklwd mm4, mm4 - punpckldq mm2, mm2 - punpckldq mm4, mm4 -%endif - paddw mm2, mm0 - paddw mm4, mm0 - packuswb mm2, mm2 - packuswb mm4, mm4 - movd [r0+r2*1], mm2 - movd [r0+r2*2], mm4 - lea r0, [r0+r2*2] - dec r5d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmx -PRED4x4_TM -INIT_MMX mmxext -PRED4x4_TM - -INIT_XMM ssse3 -cglobal pred4x4_tm_vp8_8, 3,3 - sub r0, r2 - movq mm6, [tm_shuf] - pxor mm1, mm1 - movd mm0, [r0] - punpcklbw mm0, mm1 - movd mm7, [r0-4] - pshufb mm7, mm6 - lea r1, [r0+r2*2] - movd mm2, [r0+r2*1-4] - movd mm3, [r0+r2*2-4] - movd mm4, [r1+r2*1-4] - movd mm5, [r1+r2*2-4] - pshufb mm2, mm6 - pshufb mm3, mm6 - pshufb mm4, mm6 - pshufb mm5, mm6 - psubw mm0, mm7 - paddw mm2, mm0 - paddw mm3, mm0 - paddw mm4, mm0 - paddw mm5, mm0 - packuswb mm2, mm2 - packuswb mm3, mm3 - packuswb mm4, mm4 - packuswb mm5, mm5 - movd [r0+r2*1], mm2 - movd [r0+r2*2], mm3 - movd [r1+r2*1], mm4 - movd [r1+r2*2], mm5 - RET - -;----------------------------------------------------------------------------- -; void ff_pred4x4_vertical_vp8_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred4x4_vertical_vp8_8, 3,3 - sub r0, r2 - movd m1, [r0-1] - movd m0, [r0] - mova m2, m0 ;t0 t1 t2 t3 - punpckldq m0, [r1] ;t0 t1 t2 t3 t4 t5 t6 t7 - lea r1, [r0+r2*2] - psrlq m0, 8 ;t1 t2 t3 t4 - PRED4x4_LOWPASS m3, m1, m0, m2, m4 - movd [r0+r2*1], m3 - movd [r0+r2*2], m3 - movd [r1+r2*1], m3 - movd [r1+r2*2], m3 - RET - -;----------------------------------------------------------------------------- -; void ff_pred4x4_down_left_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_MMX mmxext -cglobal pred4x4_down_left_8, 3,3 - sub r0, r2 - movq m1, [r0] - punpckldq m1, [r1] - movq m2, m1 - movq m3, m1 - psllq m1, 8 - pxor m2, m1 - psrlq m2, 8 - pxor m2, m3 - PRED4x4_LOWPASS m0, m1, m2, m3, m4 - lea r1, [r0+r2*2] - psrlq m0, 8 - movd [r0+r2*1], m0 - psrlq m0, 8 - movd [r0+r2*2], m0 - psrlq m0, 8 - movd [r1+r2*1], m0 - psrlq m0, 8 - movd [r1+r2*2], m0 - RET - -;------------------------------------------------------------------------------ -; void ff_pred4x4_vertical_left_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------ - -INIT_MMX mmxext -cglobal pred4x4_vertical_left_8, 3,3 - sub r0, r2 - movq m1, [r0] - punpckldq m1, [r1] - movq m3, m1 - movq m2, m1 - psrlq m3, 8 - psrlq m2, 16 - movq m4, m3 - pavgb m4, m1 - PRED4x4_LOWPASS m0, m1, m2, m3, m5 - lea r1, [r0+r2*2] - movh [r0+r2*1], m4 - movh [r0+r2*2], m0 - psrlq m4, 8 - psrlq m0, 8 - movh [r1+r2*1], m4 - movh [r1+r2*2], m0 - RET - -;------------------------------------------------------------------------------ -; void ff_pred4x4_horizontal_up_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------ - -INIT_MMX mmxext -cglobal pred4x4_horizontal_up_8, 3,3 - sub r0, r2 - lea r1, [r0+r2*2] - movd m0, [r0+r2*1-4] - punpcklbw m0, [r0+r2*2-4] - movd m1, [r1+r2*1-4] - punpcklbw m1, [r1+r2*2-4] - punpckhwd m0, m1 - movq m1, m0 - punpckhbw m1, m1 - pshufw m1, m1, 0xFF - punpckhdq m0, m1 - movq m2, m0 - movq m3, m0 - movq m7, m0 - psrlq m2, 16 - psrlq m3, 8 - pavgb m7, m3 - PRED4x4_LOWPASS m4, m0, m2, m3, m5 - punpcklbw m7, m4 - movd [r0+r2*1], m7 - psrlq m7, 16 - movd [r0+r2*2], m7 - psrlq m7, 16 - movd [r1+r2*1], m7 - movd [r1+r2*2], m1 - RET - -;------------------------------------------------------------------------------ -; void ff_pred4x4_horizontal_down_8_mmxext(uint8_t *src, -; const uint8_t *topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------ - -INIT_MMX mmxext -cglobal pred4x4_horizontal_down_8, 3,3 - sub r0, r2 - lea r1, [r0+r2*2] - movh m0, [r0-4] ; lt .. - punpckldq m0, [r0] ; t3 t2 t1 t0 lt .. .. .. - psllq m0, 8 ; t2 t1 t0 lt .. .. .. .. - movd m1, [r1+r2*2-4] ; l3 - punpcklbw m1, [r1+r2*1-4] ; l2 l3 - movd m2, [r0+r2*2-4] ; l1 - punpcklbw m2, [r0+r2*1-4] ; l0 l1 - punpckhwd m1, m2 ; l0 l1 l2 l3 - punpckhdq m1, m0 ; t2 t1 t0 lt l0 l1 l2 l3 - movq m0, m1 - movq m2, m1 - movq m5, m1 - psrlq m0, 16 ; .. .. t2 t1 t0 lt l0 l1 - psrlq m2, 8 ; .. t2 t1 t0 lt l0 l1 l2 - pavgb m5, m2 - PRED4x4_LOWPASS m3, m1, m0, m2, m4 - punpcklbw m5, m3 - psrlq m3, 32 - PALIGNR m3, m5, 6, m4 - movh [r1+r2*2], m5 - psrlq m5, 16 - movh [r1+r2*1], m5 - psrlq m5, 16 - movh [r0+r2*2], m5 - movh [r0+r2*1], m3 - RET - -;----------------------------------------------------------------------------- -; void ff_pred4x4_vertical_right_8_mmxext(uint8_t *src, -; const uint8_t *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred4x4_vertical_right_8, 3,3 - sub r0, r2 - lea r1, [r0+r2*2] - movh m0, [r0] ; ........t3t2t1t0 - movq m5, m0 - PALIGNR m0, [r0-8], 7, m1 ; ......t3t2t1t0lt - pavgb m5, m0 - PALIGNR m0, [r0+r2*1-8], 7, m1 ; ....t3t2t1t0ltl0 - movq m1, m0 - PALIGNR m0, [r0+r2*2-8], 7, m2 ; ..t3t2t1t0ltl0l1 - movq m2, m0 - PALIGNR m0, [r1+r2*1-8], 7, m3 ; t3t2t1t0ltl0l1l2 - PRED4x4_LOWPASS m3, m1, m0, m2, m4 - movq m1, m3 - psrlq m3, 16 - psllq m1, 48 - movh [r0+r2*1], m5 - movh [r0+r2*2], m3 - PALIGNR m5, m1, 7, m2 - psllq m1, 8 - movh [r1+r2*1], m5 - PALIGNR m3, m1, 7, m1 - movh [r1+r2*2], m3 - RET - -;----------------------------------------------------------------------------- -; void ff_pred4x4_down_right_8_mmxext(uint8_t *src, const uint8_t *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred4x4_down_right_8, 3,3 - sub r0, r2 - lea r1, [r0+r2*2] - movq m1, [r1-8] - movq m2, [r0+r2*1-8] - punpckhbw m2, [r0-8] - movh m3, [r0] - punpckhwd m1, m2 - PALIGNR m3, m1, 5, m1 - movq m1, m3 - PALIGNR m3, [r1+r2*1-8], 7, m4 - movq m2, m3 - PALIGNR m3, [r1+r2*2-8], 7, m4 - PRED4x4_LOWPASS m0, m3, m1, m2, m4 - movh [r1+r2*2], m0 - psrlq m0, 8 - movh [r1+r2*1], m0 - psrlq m0, 8 - movh [r0+r2*2], m0 - psrlq m0, 8 - movh [r0+r2*1], m0 - RET diff --git a/libavcodec/x86/h264_intrapred_10bit.asm b/libavcodec/x86/h264_intrapred_10bit.asm deleted file mode 100644 index 629e0a72e3..0000000000 --- a/libavcodec/x86/h264_intrapred_10bit.asm +++ /dev/null @@ -1,1199 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized 10-bit H.264 intra prediction code -;***************************************************************************** -;* Copyright (C) 2005-2011 x264 project -;* -;* Authors: Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pw_1023 -%define pw_pixel_max pw_1023 -cextern pw_512 -cextern pw_16 -cextern pw_8 -cextern pw_4 -cextern pw_2 -cextern pw_1 -cextern pd_16 - -pw_m32101234: dw -3, -2, -1, 0, 1, 2, 3, 4 -pw_m3: times 8 dw -3 -pd_17: times 4 dd 17 - -SECTION .text - -; dest, left, right, src -; output: %1 = (t[n-1] + t[n]*2 + t[n+1] + 2) >> 2 -%macro PRED4x4_LOWPASS 4 - paddw %2, %3 - psrlw %2, 1 - pavgw %1, %4, %2 -%endmacro - -;----------------------------------------------------------------------------- -; void ff_pred4x4_down_right_10(pixel *src, const pixel *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED4x4_DR 0 -cglobal pred4x4_down_right_10, 3, 3 - sub r0, r2 - lea r1, [r0+r2*2] - movhps m1, [r1-8] - movhps m2, [r0+r2*1-8] - movhps m4, [r0-8] - punpckhwd m2, m4 - movq m3, [r0] - punpckhdq m1, m2 - PALIGNR m3, m1, 10, m1 - movhps m4, [r1+r2*1-8] - PALIGNR m0, m3, m4, 14, m4 - movhps m4, [r1+r2*2-8] - PALIGNR m2, m0, m4, 14, m4 - PRED4x4_LOWPASS m0, m2, m3, m0 - movq [r1+r2*2], m0 - psrldq m0, 2 - movq [r1+r2*1], m0 - psrldq m0, 2 - movq [r0+r2*2], m0 - psrldq m0, 2 - movq [r0+r2*1], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED4x4_DR -INIT_XMM ssse3 -PRED4x4_DR -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED4x4_DR -%endif - -;------------------------------------------------------------------------------ -; void ff_pred4x4_vertical_right_10(pixel *src, const pixel *topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------ -%macro PRED4x4_VR 0 -cglobal pred4x4_vertical_right_10, 3, 3, 6 - sub r0, r2 - lea r1, [r0+r2*2] - movq m5, [r0] ; ........t3t2t1t0 - movhps m1, [r0-8] - PALIGNR m0, m5, m1, 14, m1 ; ......t3t2t1t0lt - pavgw m5, m0 - movhps m1, [r0+r2*1-8] - PALIGNR m0, m1, 14, m1 ; ....t3t2t1t0ltl0 - movhps m2, [r0+r2*2-8] - PALIGNR m1, m0, m2, 14, m2 ; ..t3t2t1t0ltl0l1 - movhps m3, [r1+r2*1-8] - PALIGNR m2, m1, m3, 14, m3 ; t3t2t1t0ltl0l1l2 - PRED4x4_LOWPASS m1, m0, m2, m1 - pslldq m0, m1, 12 - psrldq m1, 4 - movq [r0+r2*1], m5 - movq [r0+r2*2], m1 - PALIGNR m5, m0, 14, m2 - pslldq m0, 2 - movq [r1+r2*1], m5 - PALIGNR m1, m0, 14, m0 - movq [r1+r2*2], m1 - RET -%endmacro - -INIT_XMM sse2 -PRED4x4_VR -INIT_XMM ssse3 -PRED4x4_VR -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED4x4_VR -%endif - -;------------------------------------------------------------------------------- -; void ff_pred4x4_horizontal_down_10(pixel *src, const pixel *topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------- -%macro PRED4x4_HD 0 -cglobal pred4x4_horizontal_down_10, 3, 3 - sub r0, r2 - lea r1, [r0+r2*2] - movq m0, [r0-8] ; lt .. - movhps m0, [r0] - pslldq m0, 2 ; t2 t1 t0 lt .. .. .. .. - movq m1, [r1+r2*2-8] ; l3 - movq m3, [r1+r2*1-8] - punpcklwd m1, m3 ; l2 l3 - movq m2, [r0+r2*2-8] ; l1 - movq m3, [r0+r2*1-8] - punpcklwd m2, m3 ; l0 l1 - punpckhdq m1, m2 ; l0 l1 l2 l3 - punpckhqdq m1, m0 ; t2 t1 t0 lt l0 l1 l2 l3 - psrldq m0, m1, 4 ; .. .. t2 t1 t0 lt l0 l1 - psrldq m3, m1, 2 ; .. t2 t1 t0 lt l0 l1 l2 - pavgw m5, m1, m3 - PRED4x4_LOWPASS m3, m1, m0, m3 - punpcklwd m5, m3 - psrldq m3, 8 - PALIGNR m3, m5, 12, m4 - movq [r1+r2*2], m5 - movhps [r0+r2*2], m5 - psrldq m5, 4 - movq [r1+r2*1], m5 - movq [r0+r2*1], m3 - RET -%endmacro - -INIT_XMM sse2 -PRED4x4_HD -INIT_XMM ssse3 -PRED4x4_HD -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED4x4_HD -%endif - -;----------------------------------------------------------------------------- -; void ff_pred4x4_dc_10(pixel *src, const pixel *topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- - -INIT_MMX mmxext -cglobal pred4x4_dc_10, 3, 3 - sub r0, r2 - lea r1, [r0+r2*2] - movq m2, [r0+r2*1-8] - paddw m2, [r0+r2*2-8] - paddw m2, [r1+r2*1-8] - paddw m2, [r1+r2*2-8] - psrlq m2, 48 - movq m0, [r0] - HADDW m0, m1 - paddw m0, [pw_4] - paddw m0, m2 - psrlw m0, 3 - SPLATW m0, m0, 0 - movq [r0+r2*1], m0 - movq [r0+r2*2], m0 - movq [r1+r2*1], m0 - movq [r1+r2*2], m0 - RET - -;----------------------------------------------------------------------------- -; void ff_pred4x4_down_left_10(pixel *src, const pixel *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED4x4_DL 0 -cglobal pred4x4_down_left_10, 3, 3 - sub r0, r2 - movq m0, [r0] - movhps m0, [r1] - psrldq m2, m0, 2 - pslldq m3, m0, 2 - pshufhw m2, m2, 10100100b - PRED4x4_LOWPASS m0, m3, m2, m0 - lea r1, [r0+r2*2] - movhps [r1+r2*2], m0 - psrldq m0, 2 - movq [r0+r2*1], m0 - psrldq m0, 2 - movq [r0+r2*2], m0 - psrldq m0, 2 - movq [r1+r2*1], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED4x4_DL -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED4x4_DL -%endif - -;----------------------------------------------------------------------------- -; void ff_pred4x4_vertical_left_10(pixel *src, const pixel *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED4x4_VL 0 -cglobal pred4x4_vertical_left_10, 3, 3 - sub r0, r2 - movu m1, [r0] - movhps m1, [r1] - psrldq m0, m1, 2 - psrldq m2, m1, 4 - pavgw m4, m0, m1 - PRED4x4_LOWPASS m0, m1, m2, m0 - lea r1, [r0+r2*2] - movq [r0+r2*1], m4 - movq [r0+r2*2], m0 - psrldq m4, 2 - psrldq m0, 2 - movq [r1+r2*1], m4 - movq [r1+r2*2], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED4x4_VL -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED4x4_VL -%endif - -;----------------------------------------------------------------------------- -; void ff_pred4x4_horizontal_up_10(pixel *src, const pixel *topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_MMX mmxext -cglobal pred4x4_horizontal_up_10, 3, 3 - sub r0, r2 - lea r1, [r0+r2*2] - movq m0, [r0+r2*1-8] - punpckhwd m0, [r0+r2*2-8] - movq m1, [r1+r2*1-8] - punpckhwd m1, [r1+r2*2-8] - punpckhdq m0, m1 - pshufw m1, m1, 0xFF - movq [r1+r2*2], m1 - movd [r1+r2*1+4], m1 - pshufw m2, m0, 11111001b - movq m1, m2 - pavgw m2, m0 - - pshufw m5, m0, 11111110b - PRED4x4_LOWPASS m1, m0, m5, m1 - movq m6, m2 - punpcklwd m6, m1 - movq [r0+r2*1], m6 - psrlq m2, 16 - psrlq m1, 16 - punpcklwd m2, m1 - movq [r0+r2*2], m2 - psrlq m2, 32 - movd [r1+r2*1], m2 - RET - - - -;----------------------------------------------------------------------------- -; void ff_pred8x8_vertical_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal pred8x8_vertical_10, 2, 2 - sub r0, r1 - mova m0, [r0] -%rep 3 - mova [r0+r1*1], m0 - mova [r0+r1*2], m0 - lea r0, [r0+r1*2] -%endrep - mova [r0+r1*1], m0 - mova [r0+r1*2], m0 - RET - -;----------------------------------------------------------------------------- -; void ff_pred8x8_horizontal_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal pred8x8_horizontal_10, 2, 3 - mov r2d, 4 -.loop: - movq m0, [r0+r1*0-8] - movq m1, [r0+r1*1-8] - pshuflw m0, m0, 0xff - pshuflw m1, m1, 0xff - punpcklqdq m0, m0 - punpcklqdq m1, m1 - mova [r0+r1*0], m0 - mova [r0+r1*1], m1 - lea r0, [r0+r1*2] - dec r2d - jg .loop - REP_RET - -;----------------------------------------------------------------------------- -; void ff_predict_8x8_dc_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro MOV8 2-3 -; sort of a hack, but it works -%if mmsize==8 - movq [%1+0], %2 - movq [%1+8], %3 -%else - movdqa [%1], %2 -%endif -%endmacro - -%macro PRED8x8_DC 1 -cglobal pred8x8_dc_10, 2, 6 - sub r0, r1 - pxor m4, m4 - movq m0, [r0+0] - movq m1, [r0+8] -%if mmsize==16 - punpcklwd m0, m1 - movhlps m1, m0 - paddw m0, m1 -%else - pshufw m2, m0, 00001110b - pshufw m3, m1, 00001110b - paddw m0, m2 - paddw m1, m3 - punpcklwd m0, m1 -%endif - %1 m2, m0, 00001110b - paddw m0, m2 - - lea r5, [r1*3] - lea r4, [r0+r1*4] - movzx r2d, word [r0+r1*1-2] - movzx r3d, word [r0+r1*2-2] - add r2d, r3d - movzx r3d, word [r0+r5*1-2] - add r2d, r3d - movzx r3d, word [r4-2] - add r2d, r3d - movd m2, r2d ; s2 - - movzx r2d, word [r4+r1*1-2] - movzx r3d, word [r4+r1*2-2] - add r2d, r3d - movzx r3d, word [r4+r5*1-2] - add r2d, r3d - movzx r3d, word [r4+r1*4-2] - add r2d, r3d - movd m3, r2d ; s3 - - punpcklwd m2, m3 - punpckldq m0, m2 ; s0, s1, s2, s3 - %1 m3, m0, 11110110b ; s2, s1, s3, s3 - %1 m0, m0, 01110100b ; s0, s1, s3, s1 - paddw m0, m3 - psrlw m0, 2 - pavgw m0, m4 ; s0+s2, s1, s3, s1+s3 -%if mmsize==16 - punpcklwd m0, m0 - pshufd m3, m0, 11111010b - punpckldq m0, m0 - SWAP 0,1 -%else - pshufw m1, m0, 0x00 - pshufw m2, m0, 0x55 - pshufw m3, m0, 0xaa - pshufw m4, m0, 0xff -%endif - MOV8 r0+r1*1, m1, m2 - MOV8 r0+r1*2, m1, m2 - MOV8 r0+r5*1, m1, m2 - MOV8 r0+r1*4, m1, m2 - MOV8 r4+r1*1, m3, m4 - MOV8 r4+r1*2, m3, m4 - MOV8 r4+r5*1, m3, m4 - MOV8 r4+r1*4, m3, m4 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8_DC pshufw -INIT_XMM sse2 -PRED8x8_DC pshuflw - -;----------------------------------------------------------------------------- -; void ff_pred8x8_top_dc_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal pred8x8_top_dc_10, 2, 4 - sub r0, r1 - mova m0, [r0] - pshuflw m1, m0, 0x4e - pshufhw m1, m1, 0x4e - paddw m0, m1 - pshuflw m1, m0, 0xb1 - pshufhw m1, m1, 0xb1 - paddw m0, m1 - lea r2, [r1*3] - lea r3, [r0+r1*4] - paddw m0, [pw_2] - psrlw m0, 2 - mova [r0+r1*1], m0 - mova [r0+r1*2], m0 - mova [r0+r2*1], m0 - mova [r0+r1*4], m0 - mova [r3+r1*1], m0 - mova [r3+r1*2], m0 - mova [r3+r2*1], m0 - mova [r3+r1*4], m0 - RET - -;----------------------------------------------------------------------------- -; void ff_pred8x8_plane_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal pred8x8_plane_10, 2, 7, 7 - sub r0, r1 - lea r2, [r1*3] - lea r3, [r0+r1*4] - mova m2, [r0] - pmaddwd m2, [pw_m32101234] - HADDD m2, m1 - movd m0, [r0-4] - psrld m0, 14 - psubw m2, m0 ; H - movd m0, [r3+r1*4-4] - movd m1, [r0+12] - paddw m0, m1 - psllw m0, 4 ; 16*(src[7*stride-1] + src[-stride+7]) - movzx r4d, word [r3+r1*1-2] ; src[4*stride-1] - movzx r5d, word [r0+r2*1-2] ; src[2*stride-1] - sub r4d, r5d - movzx r6d, word [r3+r1*2-2] ; src[5*stride-1] - movzx r5d, word [r0+r1*2-2] ; src[1*stride-1] - sub r6d, r5d - lea r4d, [r4+r6*2] - movzx r5d, word [r3+r2*1-2] ; src[6*stride-1] - movzx r6d, word [r0+r1*1-2] ; src[0*stride-1] - sub r5d, r6d - lea r5d, [r5*3] - add r4d, r5d - movzx r6d, word [r3+r1*4-2] ; src[7*stride-1] - movzx r5d, word [r0+r1*0-2] ; src[ -stride-1] - sub r6d, r5d - lea r4d, [r4+r6*4] - movd m3, r4d ; V - punpckldq m2, m3 - pmaddwd m2, [pd_17] - paddd m2, [pd_16] - psrad m2, 5 ; b, c - - mova m3, [pw_pixel_max] - pxor m1, m1 - SPLATW m0, m0, 1 - SPLATW m4, m2, 2 - SPLATW m2, m2, 0 - pmullw m2, [pw_m32101234] ; b - pmullw m5, m4, [pw_m3] ; c - paddw m5, [pw_16] - mov r2d, 8 - add r0, r1 -.loop: - paddsw m6, m2, m5 - paddsw m6, m0 - psraw m6, 5 - CLIPW m6, m1, m3 - mova [r0], m6 - paddw m5, m4 - add r0, r1 - dec r2d - jg .loop - REP_RET - - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_128_dc_10(pixel *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_128_DC 0 -cglobal pred8x8l_128_dc_10, 4, 4 - mova m0, [pw_512] ; (1<<(BIT_DEPTH-1)) - lea r1, [r3*3] - lea r2, [r0+r3*4] - MOV8 r0+r3*0, m0, m0 - MOV8 r0+r3*1, m0, m0 - MOV8 r0+r3*2, m0, m0 - MOV8 r0+r1*1, m0, m0 - MOV8 r2+r3*0, m0, m0 - MOV8 r2+r3*1, m0, m0 - MOV8 r2+r3*2, m0, m0 - MOV8 r2+r1*1, m0, m0 - RET -%endmacro - -INIT_MMX mmxext -PRED8x8L_128_DC -INIT_XMM sse2 -PRED8x8L_128_DC - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_top_dc_10(pixel *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_TOP_DC 0 -cglobal pred8x8l_top_dc_10, 4, 4, 6 - sub r0, r3 - mova m0, [r0] - shr r1d, 14 - shr r2d, 13 - neg r1 - pslldq m1, m0, 2 - psrldq m2, m0, 2 - pinsrw m1, [r0+r1], 0 - pinsrw m2, [r0+r2+14], 7 - lea r1, [r3*3] - lea r2, [r0+r3*4] - PRED4x4_LOWPASS m0, m2, m1, m0 - HADDW m0, m1 - paddw m0, [pw_4] - psrlw m0, 3 - SPLATW m0, m0, 0 - mova [r0+r3*1], m0 - mova [r0+r3*2], m0 - mova [r0+r1*1], m0 - mova [r0+r3*4], m0 - mova [r2+r3*1], m0 - mova [r2+r3*2], m0 - mova [r2+r1*1], m0 - mova [r2+r3*4], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_TOP_DC -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_TOP_DC -%endif - -;------------------------------------------------------------------------------- -; void ff_pred8x8l_dc_10(pixel *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;------------------------------------------------------------------------------- -;TODO: see if scalar is faster -%macro PRED8x8L_DC 0 -cglobal pred8x8l_dc_10, 4, 6, 6 - sub r0, r3 - lea r4, [r0+r3*4] - lea r5, [r3*3] - mova m0, [r0+r3*2-16] - punpckhwd m0, [r0+r3*1-16] - mova m1, [r4+r3*0-16] - punpckhwd m1, [r0+r5*1-16] - punpckhdq m1, m0 - mova m2, [r4+r3*2-16] - punpckhwd m2, [r4+r3*1-16] - mova m3, [r4+r3*4-16] - punpckhwd m3, [r4+r5*1-16] - punpckhdq m3, m2 - punpckhqdq m3, m1 - mova m0, [r0] - shr r1d, 14 - shr r2d, 13 - neg r1 - pslldq m1, m0, 2 - psrldq m2, m0, 2 - pinsrw m1, [r0+r1], 0 - pinsrw m2, [r0+r2+14], 7 - not r1 - and r1, r3 - pslldq m4, m3, 2 - psrldq m5, m3, 2 - pshuflw m4, m4, 11100101b - pinsrw m5, [r0+r1-2], 7 - PRED4x4_LOWPASS m3, m4, m5, m3 - PRED4x4_LOWPASS m0, m2, m1, m0 - paddw m0, m3 - HADDW m0, m1 - paddw m0, [pw_8] - psrlw m0, 4 - SPLATW m0, m0 - mova [r0+r3*1], m0 - mova [r0+r3*2], m0 - mova [r0+r5*1], m0 - mova [r0+r3*4], m0 - mova [r4+r3*1], m0 - mova [r4+r3*2], m0 - mova [r4+r5*1], m0 - mova [r4+r3*4], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_DC -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_DC -%endif - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_vertical_10(pixel *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_VERTICAL 0 -cglobal pred8x8l_vertical_10, 4, 4, 6 - sub r0, r3 - mova m0, [r0] - shr r1d, 14 - shr r2d, 13 - neg r1 - pslldq m1, m0, 2 - psrldq m2, m0, 2 - pinsrw m1, [r0+r1], 0 - pinsrw m2, [r0+r2+14], 7 - lea r1, [r3*3] - lea r2, [r0+r3*4] - PRED4x4_LOWPASS m0, m2, m1, m0 - mova [r0+r3*1], m0 - mova [r0+r3*2], m0 - mova [r0+r1*1], m0 - mova [r0+r3*4], m0 - mova [r2+r3*1], m0 - mova [r2+r3*2], m0 - mova [r2+r1*1], m0 - mova [r2+r3*4], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_VERTICAL -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_VERTICAL -%endif - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_horizontal_10(uint8_t *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_HORIZONTAL 0 -cglobal pred8x8l_horizontal_10, 4, 4, 5 - mova m0, [r0-16] - shr r1d, 14 - dec r1 - and r1, r3 - sub r1, r3 - punpckhwd m0, [r0+r1-16] - mova m1, [r0+r3*2-16] - punpckhwd m1, [r0+r3*1-16] - lea r2, [r0+r3*4] - lea r1, [r3*3] - punpckhdq m1, m0 - mova m2, [r2+r3*0-16] - punpckhwd m2, [r0+r1-16] - mova m3, [r2+r3*2-16] - punpckhwd m3, [r2+r3*1-16] - punpckhdq m3, m2 - punpckhqdq m3, m1 - PALIGNR m4, m3, [r2+r1-16], 14, m0 - pslldq m0, m4, 2 - pshuflw m0, m0, 11100101b - PRED4x4_LOWPASS m4, m3, m0, m4 - punpckhwd m3, m4, m4 - punpcklwd m4, m4 - pshufd m0, m3, 0xff - pshufd m1, m3, 0xaa - pshufd m2, m3, 0x55 - pshufd m3, m3, 0x00 - mova [r0+r3*0], m0 - mova [r0+r3*1], m1 - mova [r0+r3*2], m2 - mova [r0+r1*1], m3 - pshufd m0, m4, 0xff - pshufd m1, m4, 0xaa - pshufd m2, m4, 0x55 - pshufd m3, m4, 0x00 - mova [r2+r3*0], m0 - mova [r2+r3*1], m1 - mova [r2+r3*2], m2 - mova [r2+r1*1], m3 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_HORIZONTAL -INIT_XMM ssse3 -PRED8x8L_HORIZONTAL -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_HORIZONTAL -%endif - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_down_left_10(pixel *src, int has_topleft, int has_topright, -; ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_DOWN_LEFT 0 -cglobal pred8x8l_down_left_10, 4, 4, 7 - sub r0, r3 - mova m3, [r0] - shr r1d, 14 - neg r1 - shr r2d, 13 - pslldq m1, m3, 2 - psrldq m2, m3, 2 - pinsrw m1, [r0+r1], 0 - pinsrw m2, [r0+r2+14], 7 - PRED4x4_LOWPASS m6, m2, m1, m3 - jz .fix_tr ; flags from shr r2d - mova m1, [r0+16] - psrldq m5, m1, 2 - PALIGNR m2, m1, m3, 14, m3 - pshufhw m5, m5, 10100100b - PRED4x4_LOWPASS m1, m2, m5, m1 -.do_topright: - lea r1, [r3*3] - psrldq m5, m1, 14 - lea r2, [r0+r3*4] - PALIGNR m2, m1, m6, 2, m0 - PALIGNR m3, m1, m6, 14, m0 - PALIGNR m5, m1, 2, m0 - pslldq m4, m6, 2 - PRED4x4_LOWPASS m6, m4, m2, m6 - PRED4x4_LOWPASS m1, m3, m5, m1 - mova [r2+r3*4], m1 - PALIGNR m1, m6, 14, m2 - pslldq m6, 2 - mova [r2+r1*1], m1 - PALIGNR m1, m6, 14, m2 - pslldq m6, 2 - mova [r2+r3*2], m1 - PALIGNR m1, m6, 14, m2 - pslldq m6, 2 - mova [r2+r3*1], m1 - PALIGNR m1, m6, 14, m2 - pslldq m6, 2 - mova [r0+r3*4], m1 - PALIGNR m1, m6, 14, m2 - pslldq m6, 2 - mova [r0+r1*1], m1 - PALIGNR m1, m6, 14, m2 - pslldq m6, 2 - mova [r0+r3*2], m1 - PALIGNR m1, m6, 14, m6 - mova [r0+r3*1], m1 - RET -.fix_tr: - punpckhwd m3, m3 - pshufd m1, m3, 0xFF - jmp .do_topright -%endmacro - -INIT_XMM sse2 -PRED8x8L_DOWN_LEFT -INIT_XMM ssse3 -PRED8x8L_DOWN_LEFT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_DOWN_LEFT -%endif - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_down_right_10(pixel *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_DOWN_RIGHT 0 -; standard forbids this when has_topleft is false -; no need to check -cglobal pred8x8l_down_right_10, 4, 5, 8 - sub r0, r3 - lea r4, [r0+r3*4] - lea r1, [r3*3] - mova m0, [r0+r3*1-16] - punpckhwd m0, [r0+r3*0-16] - mova m1, [r0+r1*1-16] - punpckhwd m1, [r0+r3*2-16] - punpckhdq m1, m0 - mova m2, [r4+r3*1-16] - punpckhwd m2, [r4+r3*0-16] - mova m3, [r4+r1*1-16] - punpckhwd m3, [r4+r3*2-16] - punpckhdq m3, m2 - punpckhqdq m3, m1 - mova m0, [r4+r3*4-16] - mova m1, [r0] - PALIGNR m4, m3, m0, 14, m0 - PALIGNR m1, m3, 2, m2 - pslldq m0, m4, 2 - pshuflw m0, m0, 11100101b - PRED4x4_LOWPASS m6, m1, m4, m3 - PRED4x4_LOWPASS m4, m3, m0, m4 - mova m3, [r0] - shr r2d, 13 - pslldq m1, m3, 2 - psrldq m2, m3, 2 - pinsrw m1, [r0-2], 0 - pinsrw m2, [r0+r2+14], 7 - PRED4x4_LOWPASS m3, m2, m1, m3 - PALIGNR m2, m3, m6, 2, m0 - PALIGNR m5, m3, m6, 14, m0 - psrldq m7, m3, 2 - PRED4x4_LOWPASS m6, m4, m2, m6 - PRED4x4_LOWPASS m3, m5, m7, m3 - mova [r4+r3*4], m6 - PALIGNR m3, m6, 14, m2 - pslldq m6, 2 - mova [r0+r3*1], m3 - PALIGNR m3, m6, 14, m2 - pslldq m6, 2 - mova [r0+r3*2], m3 - PALIGNR m3, m6, 14, m2 - pslldq m6, 2 - mova [r0+r1*1], m3 - PALIGNR m3, m6, 14, m2 - pslldq m6, 2 - mova [r0+r3*4], m3 - PALIGNR m3, m6, 14, m2 - pslldq m6, 2 - mova [r4+r3*1], m3 - PALIGNR m3, m6, 14, m2 - pslldq m6, 2 - mova [r4+r3*2], m3 - PALIGNR m3, m6, 14, m6 - mova [r4+r1*1], m3 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_DOWN_RIGHT -INIT_XMM ssse3 -PRED8x8L_DOWN_RIGHT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_DOWN_RIGHT -%endif - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_vertical_right_10(pixel *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_VERTICAL_RIGHT 0 -; likewise with 8x8l_down_right -cglobal pred8x8l_vertical_right_10, 4, 5, 7 - sub r0, r3 - lea r4, [r0+r3*4] - lea r1, [r3*3] - mova m0, [r0+r3*1-16] - punpckhwd m0, [r0+r3*0-16] - mova m1, [r0+r1*1-16] - punpckhwd m1, [r0+r3*2-16] - punpckhdq m1, m0 - mova m2, [r4+r3*1-16] - punpckhwd m2, [r4+r3*0-16] - mova m3, [r4+r1*1-16] - punpckhwd m3, [r4+r3*2-16] - punpckhdq m3, m2 - punpckhqdq m3, m1 - mova m0, [r4+r3*4-16] - mova m1, [r0] - PALIGNR m4, m3, m0, 14, m0 - PALIGNR m1, m3, 2, m2 - PRED4x4_LOWPASS m3, m1, m4, m3 - mova m2, [r0] - shr r2d, 13 - pslldq m1, m2, 2 - psrldq m5, m2, 2 - pinsrw m1, [r0-2], 0 - pinsrw m5, [r0+r2+14], 7 - PRED4x4_LOWPASS m2, m5, m1, m2 - PALIGNR m6, m2, m3, 12, m1 - PALIGNR m5, m2, m3, 14, m0 - PRED4x4_LOWPASS m0, m6, m2, m5 - pavgw m2, m5 - mova [r0+r3*2], m0 - mova [r0+r3*1], m2 - pslldq m6, m3, 4 - pslldq m1, m3, 2 - PRED4x4_LOWPASS m1, m3, m6, m1 - PALIGNR m2, m1, 14, m4 - mova [r0+r1*1], m2 - pslldq m1, 2 - PALIGNR m0, m1, 14, m3 - mova [r0+r3*4], m0 - pslldq m1, 2 - PALIGNR m2, m1, 14, m4 - mova [r4+r3*1], m2 - pslldq m1, 2 - PALIGNR m0, m1, 14, m3 - mova [r4+r3*2], m0 - pslldq m1, 2 - PALIGNR m2, m1, 14, m4 - mova [r4+r1*1], m2 - pslldq m1, 2 - PALIGNR m0, m1, 14, m1 - mova [r4+r3*4], m0 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_VERTICAL_RIGHT -INIT_XMM ssse3 -PRED8x8L_VERTICAL_RIGHT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_VERTICAL_RIGHT -%endif - -;----------------------------------------------------------------------------- -; void ff_pred8x8l_horizontal_up_10(pixel *src, int has_topleft, -; int has_topright, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED8x8L_HORIZONTAL_UP 0 -cglobal pred8x8l_horizontal_up_10, 4, 4, 6 - mova m0, [r0+r3*0-16] - punpckhwd m0, [r0+r3*1-16] - shr r1d, 14 - dec r1 - and r1, r3 - sub r1, r3 - mova m4, [r0+r1*1-16] - lea r1, [r3*3] - lea r2, [r0+r3*4] - mova m1, [r0+r3*2-16] - punpckhwd m1, [r0+r1*1-16] - punpckhdq m0, m1 - mova m2, [r2+r3*0-16] - punpckhwd m2, [r2+r3*1-16] - mova m3, [r2+r3*2-16] - punpckhwd m3, [r2+r1*1-16] - punpckhdq m2, m3 - punpckhqdq m0, m2 - PALIGNR m1, m0, m4, 14, m4 - psrldq m2, m0, 2 - pshufhw m2, m2, 10100100b - PRED4x4_LOWPASS m0, m1, m2, m0 - psrldq m1, m0, 2 - psrldq m2, m0, 4 - pshufhw m1, m1, 10100100b - pshufhw m2, m2, 01010100b - pavgw m4, m0, m1 - PRED4x4_LOWPASS m1, m2, m0, m1 - punpckhwd m5, m4, m1 - punpcklwd m4, m1 - mova [r2+r3*0], m5 - mova [r0+r3*0], m4 - pshufd m0, m5, 11111001b - pshufd m1, m5, 11111110b - pshufd m2, m5, 11111111b - mova [r2+r3*1], m0 - mova [r2+r3*2], m1 - mova [r2+r1*1], m2 - PALIGNR m2, m5, m4, 4, m0 - PALIGNR m3, m5, m4, 8, m1 - PALIGNR m5, m5, m4, 12, m4 - mova [r0+r3*1], m2 - mova [r0+r3*2], m3 - mova [r0+r1*1], m5 - RET -%endmacro - -INIT_XMM sse2 -PRED8x8L_HORIZONTAL_UP -INIT_XMM ssse3 -PRED8x8L_HORIZONTAL_UP -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PRED8x8L_HORIZONTAL_UP -%endif - - -;----------------------------------------------------------------------------- -; void ff_pred16x16_vertical_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro MOV16 3-5 - mova [%1+ 0], %2 - mova [%1+mmsize], %3 -%if mmsize==8 - mova [%1+ 16], %4 - mova [%1+ 24], %5 -%endif -%endmacro - -%macro PRED16x16_VERTICAL 0 -cglobal pred16x16_vertical_10, 2, 3 - sub r0, r1 - mov r2d, 8 - mova m0, [r0+ 0] - mova m1, [r0+mmsize] -%if mmsize==8 - mova m2, [r0+16] - mova m3, [r0+24] -%endif -.loop: - MOV16 r0+r1*1, m0, m1, m2, m3 - MOV16 r0+r1*2, m0, m1, m2, m3 - lea r0, [r0+r1*2] - dec r2d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_VERTICAL -INIT_XMM sse2 -PRED16x16_VERTICAL - -;----------------------------------------------------------------------------- -; void ff_pred16x16_horizontal_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED16x16_HORIZONTAL 0 -cglobal pred16x16_horizontal_10, 2, 3 - mov r2d, 8 -.vloop: - movd m0, [r0+r1*0-4] - movd m1, [r0+r1*1-4] - SPLATW m0, m0, 1 - SPLATW m1, m1, 1 - MOV16 r0+r1*0, m0, m0, m0, m0 - MOV16 r0+r1*1, m1, m1, m1, m1 - lea r0, [r0+r1*2] - dec r2d - jg .vloop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_HORIZONTAL -INIT_XMM sse2 -PRED16x16_HORIZONTAL - -;----------------------------------------------------------------------------- -; void ff_pred16x16_dc_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED16x16_DC 0 -cglobal pred16x16_dc_10, 2, 6 - mov r5, r0 - sub r0, r1 - mova m0, [r0+0] - paddw m0, [r0+mmsize] -%if mmsize==8 - paddw m0, [r0+16] - paddw m0, [r0+24] -%endif - HADDW m0, m2 - - lea r0, [r0+r1-2] - movzx r3d, word [r0] - movzx r4d, word [r0+r1] -%rep 7 - lea r0, [r0+r1*2] - movzx r2d, word [r0] - add r3d, r2d - movzx r2d, word [r0+r1] - add r4d, r2d -%endrep - lea r3d, [r3+r4+16] - - movd m1, r3d - paddw m0, m1 - psrlw m0, 5 - SPLATW m0, m0 - mov r3d, 8 -.loop: - MOV16 r5+r1*0, m0, m0, m0, m0 - MOV16 r5+r1*1, m0, m0, m0, m0 - lea r5, [r5+r1*2] - dec r3d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_DC -INIT_XMM sse2 -PRED16x16_DC - -;----------------------------------------------------------------------------- -; void ff_pred16x16_top_dc_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED16x16_TOP_DC 0 -cglobal pred16x16_top_dc_10, 2, 3 - sub r0, r1 - mova m0, [r0+0] - paddw m0, [r0+mmsize] -%if mmsize==8 - paddw m0, [r0+16] - paddw m0, [r0+24] -%endif - HADDW m0, m2 - - SPLATW m0, m0 - paddw m0, [pw_8] - psrlw m0, 4 - mov r2d, 8 -.loop: - MOV16 r0+r1*1, m0, m0, m0, m0 - MOV16 r0+r1*2, m0, m0, m0, m0 - lea r0, [r0+r1*2] - dec r2d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_TOP_DC -INIT_XMM sse2 -PRED16x16_TOP_DC - -;----------------------------------------------------------------------------- -; void ff_pred16x16_left_dc_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED16x16_LEFT_DC 0 -cglobal pred16x16_left_dc_10, 2, 6 - mov r5, r0 - - sub r0, 2 - movzx r3d, word [r0] - movzx r4d, word [r0+r1] -%rep 7 - lea r0, [r0+r1*2] - movzx r2d, word [r0] - add r3d, r2d - movzx r2d, word [r0+r1] - add r4d, r2d -%endrep - lea r3d, [r3+r4+8] - shr r3d, 4 - - movd m0, r3d - SPLATW m0, m0 - mov r3d, 8 -.loop: - MOV16 r5+r1*0, m0, m0, m0, m0 - MOV16 r5+r1*1, m0, m0, m0, m0 - lea r5, [r5+r1*2] - dec r3d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_LEFT_DC -INIT_XMM sse2 -PRED16x16_LEFT_DC - -;----------------------------------------------------------------------------- -; void ff_pred16x16_128_dc_10(pixel *src, ptrdiff_t stride) -;----------------------------------------------------------------------------- -%macro PRED16x16_128_DC 0 -cglobal pred16x16_128_dc_10, 2,3 - mova m0, [pw_512] - mov r2d, 8 -.loop: - MOV16 r0+r1*0, m0, m0, m0, m0 - MOV16 r0+r1*1, m0, m0, m0, m0 - lea r0, [r0+r1*2] - dec r2d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PRED16x16_128_DC -INIT_XMM sse2 -PRED16x16_128_DC diff --git a/libavcodec/x86/h264_qpel_10bit.asm b/libavcodec/x86/h264_qpel_10bit.asm deleted file mode 100644 index 872268300a..0000000000 --- a/libavcodec/x86/h264_qpel_10bit.asm +++ /dev/null @@ -1,884 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized 10-bit H.264 qpel code -;***************************************************************************** -;* Copyright (C) 2011 x264 project -;* -;* Authors: Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -cextern pd_65535 -cextern pw_1023 -%define pw_pixel_max pw_1023 -cextern pw_16 -cextern pw_1 -cextern pb_0 - -pad10: times 8 dw 10*1023 -pad20: times 8 dw 20*1023 -pad30: times 8 dw 30*1023 -depad: times 4 dd 32*20*1023 + 512 -depad2: times 8 dw 20*1023 + 16*1022 + 16 -unpad: times 8 dw 16*1022/32 ; needs to be mod 16 - -tap1: times 4 dw 1, -5 -tap2: times 4 dw 20, 20 -tap3: times 4 dw -5, 1 - -SECTION .text - - -%macro AVG_MOV 2 - pavgw %2, %1 - mova %1, %2 -%endmacro - -%macro ADDW 3 -%if mmsize == 8 - paddw %1, %2 -%else - movu %3, %2 - paddw %1, %3 -%endif -%endmacro - -%macro FILT_H 4 - paddw %1, %4 - psubw %1, %2 ; a-b - psraw %1, 2 ; (a-b)/4 - psubw %1, %2 ; (a-b)/4-b - paddw %1, %3 ; (a-b)/4-b+c - psraw %1, 2 ; ((a-b)/4-b+c)/4 - paddw %1, %3 ; ((a-b)/4-b+c)/4+c = (a-5*b+20*c)/16 -%endmacro - -%macro PRELOAD_V 0 - lea r3, [r2*3] - sub r1, r3 - movu m0, [r1+r2] - movu m1, [r1+r2*2] - add r1, r3 - movu m2, [r1] - movu m3, [r1+r2] - movu m4, [r1+r2*2] - add r1, r3 -%endmacro - -%macro FILT_V 8 - movu %6, [r1] - paddw %1, %6 - mova %7, %2 - paddw %7, %5 - mova %8, %3 - paddw %8, %4 - FILT_H %1, %7, %8, [pw_16] - psraw %1, 1 - CLIPW %1, [pb_0], [pw_pixel_max] -%endmacro - -%macro MC 1 -%define OP_MOV mova -INIT_MMX mmxext -%1 put, 4 -INIT_XMM sse2 -%1 put, 8 - -%define OP_MOV AVG_MOV -INIT_MMX mmxext -%1 avg, 4 -INIT_XMM sse2 -%1 avg, 8 -%endmacro - -%macro MCAxA_OP 7 -%if ARCH_X86_32 -cglobal %1_h264_qpel%4_%2_10, %5,%6,%7 - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - mov r0, r0m - mov r1, r1m - add r0, %3*2 - add r1, %3*2 - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - mov r0, r0m - mov r1, r1m - lea r0, [r0+r2*%3] - lea r1, [r1+r2*%3] - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - mov r0, r0m - mov r1, r1m - lea r0, [r0+r2*%3+%3*2] - lea r1, [r1+r2*%3+%3*2] - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - RET -%else ; ARCH_X86_64 -cglobal %1_h264_qpel%4_%2_10, %5,%6 + 2,%7 - mov r%6, r0 -%assign p1 %6+1 - mov r %+ p1, r1 - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - lea r0, [r%6+%3*2] - lea r1, [r %+ p1+%3*2] - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - lea r0, [r%6+r2*%3] - lea r1, [r %+ p1+r2*%3] - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - lea r0, [r%6+r2*%3+%3*2] - lea r1, [r %+ p1+r2*%3+%3*2] -%if UNIX64 == 0 ; fall through to function - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - RET -%endif -%endif -%endmacro - -;cpu, put/avg, mc, 4/8, ... -%macro cglobal_mc 6 -%assign i %3*2 -%if ARCH_X86_32 || cpuflag(sse2) -MCAxA_OP %1, %2, %3, i, %4,%5,%6 -%endif - -cglobal %1_h264_qpel%3_%2_10, %4,%5,%6 -%if UNIX64 == 0 ; no prologue or epilogue for UNIX64 - call stub_%1_h264_qpel%3_%2_10 %+ SUFFIX - RET -%endif - -stub_%1_h264_qpel%3_%2_10 %+ SUFFIX: -%endmacro - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc00(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro COPY4 0 - movu m0, [r1 ] - OP_MOV [r0 ], m0 - movu m0, [r1+r2 ] - OP_MOV [r0+r2 ], m0 - movu m0, [r1+r2*2] - OP_MOV [r0+r2*2], m0 - movu m0, [r1+r3 ] - OP_MOV [r0+r3 ], m0 -%endmacro - -%macro MC00 1 -INIT_MMX mmxext -cglobal_mc %1, mc00, 4, 3,4,0 - lea r3, [r2*3] - COPY4 - ret - -INIT_XMM sse2 -cglobal %1_h264_qpel8_mc00_10, 3,4 - lea r3, [r2*3] - COPY4 - lea r0, [r0+r2*4] - lea r1, [r1+r2*4] - COPY4 - RET - -cglobal %1_h264_qpel16_mc00_10, 3,4 - mov r3d, 8 -.loop: - movu m0, [r1 ] - movu m1, [r1 +16] - OP_MOV [r0 ], m0 - OP_MOV [r0 +16], m1 - movu m0, [r1+r2 ] - movu m1, [r1+r2+16] - OP_MOV [r0+r2 ], m0 - OP_MOV [r0+r2+16], m1 - lea r0, [r0+r2*2] - lea r1, [r1+r2*2] - dec r3d - jg .loop - REP_RET -%endmacro - -%define OP_MOV mova -MC00 put - -%define OP_MOV AVG_MOV -MC00 avg - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc20(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC_CACHE 1 -%define OP_MOV mova -INIT_MMX mmxext -%1 put, 4 -INIT_XMM sse2, cache64 -%1 put, 8 -INIT_XMM ssse3, cache64 -%1 put, 8 -INIT_XMM sse2 -%1 put, 8 - -%define OP_MOV AVG_MOV -INIT_MMX mmxext -%1 avg, 4 -INIT_XMM sse2, cache64 -%1 avg, 8 -INIT_XMM ssse3, cache64 -%1 avg, 8 -INIT_XMM sse2 -%1 avg, 8 -%endmacro - -%macro MC20 2 -cglobal_mc %1, mc20, %2, 3,4,9 - mov r3d, %2 - mova m1, [pw_pixel_max] -%if num_mmregs > 8 - mova m8, [pw_16] - %define p16 m8 -%else - %define p16 [pw_16] -%endif -.nextrow: -%if %0 == 4 - movu m2, [r1-4] - movu m3, [r1-2] - movu m4, [r1+0] - ADDW m2, [r1+6], m5 - ADDW m3, [r1+4], m5 - ADDW m4, [r1+2], m5 -%else ; movu is slow on these processors -%if mmsize==16 - movu m2, [r1-4] - movu m0, [r1+6] - mova m6, m0 - psrldq m0, 6 - - paddw m6, m2 - PALIGNR m3, m0, m2, 2, m5 - PALIGNR m7, m0, m2, 8, m5 - paddw m3, m7 - PALIGNR m4, m0, m2, 4, m5 - PALIGNR m7, m0, m2, 6, m5 - paddw m4, m7 - SWAP 2, 6 -%else - movu m2, [r1-4] - movu m6, [r1+4] - PALIGNR m3, m6, m2, 2, m5 - paddw m3, m6 - PALIGNR m4, m6, m2, 4, m5 - PALIGNR m7, m6, m2, 6, m5 - paddw m4, m7 - paddw m2, [r1+6] -%endif -%endif - - FILT_H m2, m3, m4, p16 - psraw m2, 1 - pxor m0, m0 - CLIPW m2, m0, m1 - OP_MOV [r0], m2 - add r0, r2 - add r1, r2 - dec r3d - jg .nextrow - rep ret -%endmacro - -MC_CACHE MC20 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc30(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC30 2 -cglobal_mc %1, mc30, %2, 3,5,9 - lea r4, [r1+2] - jmp stub_%1_h264_qpel%2_mc10_10 %+ SUFFIX %+ .body -%endmacro - -MC_CACHE MC30 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc10(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC10 2 -cglobal_mc %1, mc10, %2, 3,5,9 - mov r4, r1 -.body: - mov r3d, %2 - mova m1, [pw_pixel_max] -%if num_mmregs > 8 - mova m8, [pw_16] - %define p16 m8 -%else - %define p16 [pw_16] -%endif -.nextrow: -%if %0 == 4 - movu m2, [r1-4] - movu m3, [r1-2] - movu m4, [r1+0] - ADDW m2, [r1+6], m5 - ADDW m3, [r1+4], m5 - ADDW m4, [r1+2], m5 -%else ; movu is slow on these processors -%if mmsize==16 - movu m2, [r1-4] - movu m0, [r1+6] - mova m6, m0 - psrldq m0, 6 - - paddw m6, m2 - PALIGNR m3, m0, m2, 2, m5 - PALIGNR m7, m0, m2, 8, m5 - paddw m3, m7 - PALIGNR m4, m0, m2, 4, m5 - PALIGNR m7, m0, m2, 6, m5 - paddw m4, m7 - SWAP 2, 6 -%else - movu m2, [r1-4] - movu m6, [r1+4] - PALIGNR m3, m6, m2, 2, m5 - paddw m3, m6 - PALIGNR m4, m6, m2, 4, m5 - PALIGNR m7, m6, m2, 6, m5 - paddw m4, m7 - paddw m2, [r1+6] -%endif -%endif - - FILT_H m2, m3, m4, p16 - psraw m2, 1 - pxor m0, m0 - CLIPW m2, m0, m1 - movu m3, [r4] - pavgw m2, m3 - OP_MOV [r0], m2 - add r0, r2 - add r1, r2 - add r4, r2 - dec r3d - jg .nextrow - rep ret -%endmacro - -MC_CACHE MC10 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc02(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro V_FILT 10 -v_filt%9_%10_10: - add r4, r2 -.no_addr4: - FILT_V m0, m1, m2, m3, m4, m5, m6, m7 - add r1, r2 - add r0, r2 - ret -%endmacro - -INIT_MMX mmxext -RESET_MM_PERMUTATION -%assign i 0 -%rep 4 -V_FILT m0, m1, m2, m3, m4, m5, m6, m7, 4, i -SWAP 0,1,2,3,4,5 -%assign i i+1 -%endrep - -INIT_XMM sse2 -RESET_MM_PERMUTATION -%assign i 0 -%rep 6 -V_FILT m0, m1, m2, m3, m4, m5, m6, m7, 8, i -SWAP 0,1,2,3,4,5 -%assign i i+1 -%endrep - -%macro MC02 2 -cglobal_mc %1, mc02, %2, 3,4,8 - PRELOAD_V - - sub r0, r2 -%assign j 0 -%rep %2 - %assign i (j % 6) - call v_filt%2_ %+ i %+ _10.no_addr4 - OP_MOV [r0], m0 - SWAP 0,1,2,3,4,5 - %assign j j+1 -%endrep - ret -%endmacro - -MC MC02 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc01(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC01 2 -cglobal_mc %1, mc01, %2, 3,5,8 - mov r4, r1 -.body: - PRELOAD_V - - sub r4, r2 - sub r0, r2 -%assign j 0 -%rep %2 - %assign i (j % 6) - call v_filt%2_ %+ i %+ _10 - movu m7, [r4] - pavgw m0, m7 - OP_MOV [r0], m0 - SWAP 0,1,2,3,4,5 - %assign j j+1 -%endrep - ret -%endmacro - -MC MC01 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc03(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC03 2 -cglobal_mc %1, mc03, %2, 3,5,8 - lea r4, [r1+r2] - jmp stub_%1_h264_qpel%2_mc01_10 %+ SUFFIX %+ .body -%endmacro - -MC MC03 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc11(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro H_FILT_AVG 2-3 -h_filt%1_%2_10: -;FILT_H with fewer registers and averaged with the FILT_V result -;m6,m7 are tmp registers, m0 is the FILT_V result, the rest are to be used next in the next iteration -;unfortunately I need three registers, so m5 will have to be re-read from memory - movu m5, [r4-4] - ADDW m5, [r4+6], m7 - movu m6, [r4-2] - ADDW m6, [r4+4], m7 - paddw m5, [pw_16] - psubw m5, m6 ; a-b - psraw m5, 2 ; (a-b)/4 - psubw m5, m6 ; (a-b)/4-b - movu m6, [r4+0] - ADDW m6, [r4+2], m7 - paddw m5, m6 ; (a-b)/4-b+c - psraw m5, 2 ; ((a-b)/4-b+c)/4 - paddw m5, m6 ; ((a-b)/4-b+c)/4+c = (a-5*b+20*c)/16 - psraw m5, 1 - CLIPW m5, [pb_0], [pw_pixel_max] -;avg FILT_V, FILT_H - pavgw m0, m5 -%if %0!=4 - movu m5, [r1+r5] -%endif - ret -%endmacro - -INIT_MMX mmxext -RESET_MM_PERMUTATION -%assign i 0 -%rep 3 -H_FILT_AVG 4, i -SWAP 0,1,2,3,4,5 -%assign i i+1 -%endrep -H_FILT_AVG 4, i, 0 - -INIT_XMM sse2 -RESET_MM_PERMUTATION -%assign i 0 -%rep 6 -%if i==1 -H_FILT_AVG 8, i, 0 -%else -H_FILT_AVG 8, i -%endif -SWAP 0,1,2,3,4,5 -%assign i i+1 -%endrep - -%macro MC11 2 -; this REALLY needs x86_64 -cglobal_mc %1, mc11, %2, 3,6,8 - mov r4, r1 -.body: - PRELOAD_V - - sub r0, r2 - sub r4, r2 - mov r5, r2 - neg r5 -%assign j 0 -%rep %2 - %assign i (j % 6) - call v_filt%2_ %+ i %+ _10 - call h_filt%2_ %+ i %+ _10 -%if %2==8 && i==1 - movu m5, [r1+r5] -%endif - OP_MOV [r0], m0 - SWAP 0,1,2,3,4,5 - %assign j j+1 -%endrep - ret -%endmacro - -MC MC11 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc31(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC31 2 -cglobal_mc %1, mc31, %2, 3,6,8 - mov r4, r1 - add r1, 2 - jmp stub_%1_h264_qpel%2_mc11_10 %+ SUFFIX %+ .body -%endmacro - -MC MC31 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc13(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC13 2 -cglobal_mc %1, mc13, %2, 3,7,12 - lea r4, [r1+r2] - jmp stub_%1_h264_qpel%2_mc11_10 %+ SUFFIX %+ .body -%endmacro - -MC MC13 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc33(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC33 2 -cglobal_mc %1, mc33, %2, 3,6,8 - lea r4, [r1+r2] - add r1, 2 - jmp stub_%1_h264_qpel%2_mc11_10 %+ SUFFIX %+ .body -%endmacro - -MC MC33 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc22(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro FILT_H2 3 - psubw %1, %2 ; a-b - psubw %2, %3 ; b-c - psllw %2, 2 - psubw %1, %2 ; a-5*b+4*c - psllw %3, 4 - paddw %1, %3 ; a-5*b+20*c -%endmacro - -%macro FILT_VNRD 8 - movu %6, [r1] - paddw %1, %6 - mova %7, %2 - paddw %7, %5 - mova %8, %3 - paddw %8, %4 - FILT_H2 %1, %7, %8 -%endmacro - -%macro HV 1 -%if mmsize==16 -%define PAD 12 -%define COUNT 2 -%else -%define PAD 4 -%define COUNT 3 -%endif -put_hv%1_10: - neg r2 ; This actually saves instructions - lea r1, [r1+r2*2-mmsize+PAD] - lea r4, [rsp+PAD+gprsize] - mov r3d, COUNT -.v_loop: - movu m0, [r1] - sub r1, r2 - movu m1, [r1] - sub r1, r2 - movu m2, [r1] - sub r1, r2 - movu m3, [r1] - sub r1, r2 - movu m4, [r1] - sub r1, r2 -%assign i 0 -%rep %1-1 - FILT_VNRD m0, m1, m2, m3, m4, m5, m6, m7 - psubw m0, [pad20] - movu [r4+i*mmsize*3], m0 - sub r1, r2 - SWAP 0,1,2,3,4,5 -%assign i i+1 -%endrep - FILT_VNRD m0, m1, m2, m3, m4, m5, m6, m7 - psubw m0, [pad20] - movu [r4+i*mmsize*3], m0 - add r4, mmsize - lea r1, [r1+r2*8+mmsize] -%if %1==8 - lea r1, [r1+r2*4] -%endif - dec r3d - jg .v_loop - neg r2 - ret -%endmacro - -INIT_MMX mmxext -HV 4 -INIT_XMM sse2 -HV 8 - -%macro H_LOOP 1 -%if num_mmregs > 8 - %define s1 m8 - %define s2 m9 - %define s3 m10 - %define d1 m11 -%else - %define s1 [tap1] - %define s2 [tap2] - %define s3 [tap3] - %define d1 [depad] -%endif -h%1_loop_op: - movu m1, [r1+mmsize-4] - movu m2, [r1+mmsize-2] - mova m3, [r1+mmsize+0] - movu m4, [r1+mmsize+2] - movu m5, [r1+mmsize+4] - movu m6, [r1+mmsize+6] -%if num_mmregs > 8 - pmaddwd m1, s1 - pmaddwd m2, s1 - pmaddwd m3, s2 - pmaddwd m4, s2 - pmaddwd m5, s3 - pmaddwd m6, s3 - paddd m1, d1 - paddd m2, d1 -%else - mova m0, s1 - pmaddwd m1, m0 - pmaddwd m2, m0 - mova m0, s2 - pmaddwd m3, m0 - pmaddwd m4, m0 - mova m0, s3 - pmaddwd m5, m0 - pmaddwd m6, m0 - mova m0, d1 - paddd m1, m0 - paddd m2, m0 -%endif - paddd m3, m5 - paddd m4, m6 - paddd m1, m3 - paddd m2, m4 - psrad m1, 10 - psrad m2, 10 - pslld m2, 16 - pand m1, [pd_65535] - por m1, m2 -%if num_mmregs <= 8 - pxor m0, m0 -%endif - CLIPW m1, m0, m7 - add r1, mmsize*3 - ret -%endmacro - -INIT_MMX mmxext -H_LOOP 4 -INIT_XMM sse2 -H_LOOP 8 - -%macro MC22 2 -cglobal_mc %1, mc22, %2, 3,7,12 -%define PAD mmsize*8*4*2 ; SIZE*16*4*sizeof(pixel) - mov r6, rsp ; backup stack pointer - and rsp, ~(mmsize-1) ; align stack - sub rsp, PAD - - call put_hv%2_10 - - mov r3d, %2 - mova m7, [pw_pixel_max] -%if num_mmregs > 8 - pxor m0, m0 - mova m8, [tap1] - mova m9, [tap2] - mova m10, [tap3] - mova m11, [depad] -%endif - mov r1, rsp -.h_loop: - call h%2_loop_op - - OP_MOV [r0], m1 - add r0, r2 - dec r3d - jg .h_loop - - mov rsp, r6 ; restore stack pointer - ret -%endmacro - -MC MC22 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc12(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC12 2 -cglobal_mc %1, mc12, %2, 3,7,12 -%define PAD mmsize*8*4*2 ; SIZE*16*4*sizeof(pixel) - mov r6, rsp ; backup stack pointer - and rsp, ~(mmsize-1) ; align stack - sub rsp, PAD - - call put_hv%2_10 - - xor r4d, r4d -.body: - mov r3d, %2 - pxor m0, m0 - mova m7, [pw_pixel_max] -%if num_mmregs > 8 - mova m8, [tap1] - mova m9, [tap2] - mova m10, [tap3] - mova m11, [depad] -%endif - mov r1, rsp -.h_loop: - call h%2_loop_op - - movu m3, [r1+r4-2*mmsize] ; movu needed for mc32, etc - paddw m3, [depad2] - psrlw m3, 5 - psubw m3, [unpad] - CLIPW m3, m0, m7 - pavgw m1, m3 - - OP_MOV [r0], m1 - add r0, r2 - dec r3d - jg .h_loop - - mov rsp, r6 ; restore stack pointer - ret -%endmacro - -MC MC12 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc32(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC32 2 -cglobal_mc %1, mc32, %2, 3,7,12 -%define PAD mmsize*8*3*2 ; SIZE*16*4*sizeof(pixel) - mov r6, rsp ; backup stack pointer - and rsp, ~(mmsize-1) ; align stack - sub rsp, PAD - - call put_hv%2_10 - - mov r4d, 2 ; sizeof(pixel) - jmp stub_%1_h264_qpel%2_mc12_10 %+ SUFFIX %+ .body -%endmacro - -MC MC32 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc21(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro H_NRD 1 -put_h%1_10: - add rsp, gprsize - mov r3d, %1 - xor r4d, r4d - mova m6, [pad20] -.nextrow: - movu m2, [r5-4] - movu m3, [r5-2] - movu m4, [r5+0] - ADDW m2, [r5+6], m5 - ADDW m3, [r5+4], m5 - ADDW m4, [r5+2], m5 - - FILT_H2 m2, m3, m4 - psubw m2, m6 - mova [rsp+r4], m2 - add r4d, mmsize*3 - add r5, r2 - dec r3d - jg .nextrow - sub rsp, gprsize - ret -%endmacro - -INIT_MMX mmxext -H_NRD 4 -INIT_XMM sse2 -H_NRD 8 - -%macro MC21 2 -cglobal_mc %1, mc21, %2, 3,7,12 - mov r5, r1 -.body: -%define PAD mmsize*8*3*2 ; SIZE*16*4*sizeof(pixel) - mov r6, rsp ; backup stack pointer - and rsp, ~(mmsize-1) ; align stack - - sub rsp, PAD - call put_h%2_10 - - sub rsp, PAD - call put_hv%2_10 - - mov r4d, PAD-mmsize ; H buffer - jmp stub_%1_h264_qpel%2_mc12_10 %+ SUFFIX %+ .body -%endmacro - -MC MC21 - -;----------------------------------------------------------------------------- -; void ff_h264_qpel_mc23(uint8_t *dst, uint8_t *src, int stride) -;----------------------------------------------------------------------------- -%macro MC23 2 -cglobal_mc %1, mc23, %2, 3,7,12 - lea r5, [r1+r2] - jmp stub_%1_h264_qpel%2_mc21_10 %+ SUFFIX %+ .body -%endmacro - -MC MC23 diff --git a/libavcodec/x86/h264_qpel_8bit.asm b/libavcodec/x86/h264_qpel_8bit.asm deleted file mode 100644 index 2d287ba443..0000000000 --- a/libavcodec/x86/h264_qpel_8bit.asm +++ /dev/null @@ -1,862 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/SSSE3-optimized H.264 QPEL code -;***************************************************************************** -;* Copyright (c) 2004-2005 Michael Niedermayer, Loren Merritt -;* Copyright (C) 2012 Daniel Kang -;* -;* Authors: Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -cextern pw_16 -cextern pw_5 -cextern pb_0 - -SECTION .text - - -%macro op_avgh 3 - movh %3, %2 - pavgb %1, %3 - movh %2, %1 -%endmacro - -%macro op_avg 2-3 - pavgb %1, %2 - mova %2, %1 -%endmacro - -%macro op_puth 2-3 - movh %2, %1 -%endmacro - -%macro op_put 2-3 - mova %2, %1 -%endmacro - -%macro QPEL4_H_LOWPASS_OP 1 -cglobal %1_h264_qpel4_h_lowpass, 4,5 ; dst, src, dstStride, srcStride - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - pxor m7, m7 - mova m4, [pw_5] - mova m5, [pw_16] - mov r4d, 4 -.loop: - movh m1, [r1-1] - movh m2, [r1+0] - movh m3, [r1+1] - movh m0, [r1+2] - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m0, m7 - paddw m1, m0 - paddw m2, m3 - movh m0, [r1-2] - movh m3, [r1+3] - punpcklbw m0, m7 - punpcklbw m3, m7 - paddw m0, m3 - psllw m2, 2 - psubw m2, m1 - pmullw m2, m4 - paddw m0, m5 - paddw m0, m2 - psraw m0, 5 - packuswb m0, m0 - op_%1h m0, [r0], m6 - add r0, r2 - add r1, r3 - dec r4d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL4_H_LOWPASS_OP put -QPEL4_H_LOWPASS_OP avg - -%macro QPEL8_H_LOWPASS_OP 1 -cglobal %1_h264_qpel8_h_lowpass, 4,5 ; dst, src, dstStride, srcStride - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - mov r4d, 8 - pxor m7, m7 - mova m6, [pw_5] -.loop: - mova m0, [r1] - mova m2, [r1+1] - mova m1, m0 - mova m3, m2 - punpcklbw m0, m7 - punpckhbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - paddw m0, m2 - paddw m1, m3 - psllw m0, 2 - psllw m1, 2 - mova m2, [r1-1] - mova m4, [r1+2] - mova m3, m2 - mova m5, m4 - punpcklbw m2, m7 - punpckhbw m3, m7 - punpcklbw m4, m7 - punpckhbw m5, m7 - paddw m2, m4 - paddw m5, m3 - psubw m0, m2 - psubw m1, m5 - pmullw m0, m6 - pmullw m1, m6 - movd m2, [r1-2] - movd m5, [r1+7] - punpcklbw m2, m7 - punpcklbw m5, m7 - paddw m2, m3 - paddw m4, m5 - mova m5, [pw_16] - paddw m2, m5 - paddw m4, m5 - paddw m0, m2 - paddw m1, m4 - psraw m0, 5 - psraw m1, 5 - packuswb m0, m1 - op_%1 m0, [r0], m4 - add r0, r2 - add r1, r3 - dec r4d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL8_H_LOWPASS_OP put -QPEL8_H_LOWPASS_OP avg - -%macro QPEL8_H_LOWPASS_OP_XMM 1 -cglobal %1_h264_qpel8_h_lowpass, 4,5,8 ; dst, src, dstStride, srcStride - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - mov r4d, 8 - pxor m7, m7 - mova m6, [pw_5] -.loop: - movu m1, [r1-2] - mova m0, m1 - punpckhbw m1, m7 - punpcklbw m0, m7 - mova m2, m1 - mova m3, m1 - mova m4, m1 - mova m5, m1 - palignr m4, m0, 2 - palignr m3, m0, 4 - palignr m2, m0, 6 - palignr m1, m0, 8 - palignr m5, m0, 10 - paddw m0, m5 - paddw m2, m3 - paddw m1, m4 - psllw m2, 2 - psubw m2, m1 - paddw m0, [pw_16] - pmullw m2, m6 - paddw m2, m0 - psraw m2, 5 - packuswb m2, m2 - op_%1h m2, [r0], m4 - add r1, r3 - add r0, r2 - dec r4d - jne .loop - REP_RET -%endmacro - -INIT_XMM ssse3 -QPEL8_H_LOWPASS_OP_XMM put -QPEL8_H_LOWPASS_OP_XMM avg - - -%macro QPEL4_H_LOWPASS_L2_OP 1 -cglobal %1_h264_qpel4_h_lowpass_l2, 5,6 ; dst, src, src2, dstStride, srcStride - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - pxor m7, m7 - mova m4, [pw_5] - mova m5, [pw_16] - mov r5d, 4 -.loop: - movh m1, [r1-1] - movh m2, [r1+0] - movh m3, [r1+1] - movh m0, [r1+2] - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m0, m7 - paddw m1, m0 - paddw m2, m3 - movh m0, [r1-2] - movh m3, [r1+3] - punpcklbw m0, m7 - punpcklbw m3, m7 - paddw m0, m3 - psllw m2, 2 - psubw m2, m1 - pmullw m2, m4 - paddw m0, m5 - paddw m0, m2 - movh m3, [r2] - psraw m0, 5 - packuswb m0, m0 - pavgb m0, m3 - op_%1h m0, [r0], m6 - add r0, r3 - add r1, r3 - add r2, r4 - dec r5d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL4_H_LOWPASS_L2_OP put -QPEL4_H_LOWPASS_L2_OP avg - - -%macro QPEL8_H_LOWPASS_L2_OP 1 -cglobal %1_h264_qpel8_h_lowpass_l2, 5,6 ; dst, src, src2, dstStride, srcStride - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - mov r5d, 8 - pxor m7, m7 - mova m6, [pw_5] -.loop: - mova m0, [r1] - mova m2, [r1+1] - mova m1, m0 - mova m3, m2 - punpcklbw m0, m7 - punpckhbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - paddw m0, m2 - paddw m1, m3 - psllw m0, 2 - psllw m1, 2 - mova m2, [r1-1] - mova m4, [r1+2] - mova m3, m2 - mova m5, m4 - punpcklbw m2, m7 - punpckhbw m3, m7 - punpcklbw m4, m7 - punpckhbw m5, m7 - paddw m2, m4 - paddw m5, m3 - psubw m0, m2 - psubw m1, m5 - pmullw m0, m6 - pmullw m1, m6 - movd m2, [r1-2] - movd m5, [r1+7] - punpcklbw m2, m7 - punpcklbw m5, m7 - paddw m2, m3 - paddw m4, m5 - mova m5, [pw_16] - paddw m2, m5 - paddw m4, m5 - paddw m0, m2 - paddw m1, m4 - psraw m0, 5 - psraw m1, 5 - mova m4, [r2] - packuswb m0, m1 - pavgb m0, m4 - op_%1 m0, [r0], m4 - add r0, r3 - add r1, r3 - add r2, r4 - dec r5d - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL8_H_LOWPASS_L2_OP put -QPEL8_H_LOWPASS_L2_OP avg - - -%macro QPEL8_H_LOWPASS_L2_OP_XMM 1 -cglobal %1_h264_qpel8_h_lowpass_l2, 5,6,8 ; dst, src, src2, dstStride, src2Stride - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - mov r5d, 8 - pxor m7, m7 - mova m6, [pw_5] -.loop: - lddqu m1, [r1-2] - mova m0, m1 - punpckhbw m1, m7 - punpcklbw m0, m7 - mova m2, m1 - mova m3, m1 - mova m4, m1 - mova m5, m1 - palignr m4, m0, 2 - palignr m3, m0, 4 - palignr m2, m0, 6 - palignr m1, m0, 8 - palignr m5, m0, 10 - paddw m0, m5 - paddw m2, m3 - paddw m1, m4 - psllw m2, 2 - movh m3, [r2] - psubw m2, m1 - paddw m0, [pw_16] - pmullw m2, m6 - paddw m2, m0 - psraw m2, 5 - packuswb m2, m2 - pavgb m2, m3 - op_%1h m2, [r0], m4 - add r1, r3 - add r0, r3 - add r2, r4 - dec r5d - jg .loop - REP_RET -%endmacro - -INIT_XMM ssse3 -QPEL8_H_LOWPASS_L2_OP_XMM put -QPEL8_H_LOWPASS_L2_OP_XMM avg - - -; All functions that call this are required to have function arguments of -; dst, src, dstStride, srcStride -%macro FILT_V 1 - mova m6, m2 - movh m5, [r1] - paddw m6, m3 - psllw m6, 2 - psubw m6, m1 - psubw m6, m4 - punpcklbw m5, m7 - pmullw m6, [pw_5] - paddw m0, [pw_16] - add r1, r3 - paddw m0, m5 - paddw m6, m0 - psraw m6, 5 - packuswb m6, m6 - op_%1h m6, [r0], m0 ; 1 - add r0, r2 - SWAP 0, 1, 2, 3, 4, 5 -%endmacro - -%macro QPEL4_V_LOWPASS_OP 1 -cglobal %1_h264_qpel4_v_lowpass, 4,4 ; dst, src, dstStride, srcStride - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - sub r1, r3 - sub r1, r3 - pxor m7, m7 - movh m0, [r1] - movh m1, [r1+r3] - lea r1, [r1+2*r3] - movh m2, [r1] - movh m3, [r1+r3] - lea r1, [r1+2*r3] - movh m4, [r1] - add r1, r3 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - RET -%endmacro - -INIT_MMX mmxext -QPEL4_V_LOWPASS_OP put -QPEL4_V_LOWPASS_OP avg - - - -%macro QPEL8OR16_V_LOWPASS_OP 1 -%if cpuflag(sse2) -cglobal %1_h264_qpel8or16_v_lowpass, 5,5,8 ; dst, src, dstStride, srcStride, h - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - sub r1, r3 - sub r1, r3 -%else -cglobal %1_h264_qpel8or16_v_lowpass_op, 5,5,8 ; dst, src, dstStride, srcStride, h - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d -%endif - pxor m7, m7 - movh m0, [r1] - movh m1, [r1+r3] - lea r1, [r1+2*r3] - movh m2, [r1] - movh m3, [r1+r3] - lea r1, [r1+2*r3] - movh m4, [r1] - add r1, r3 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - cmp r4d, 16 - jne .end - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 - FILT_V %1 -.end: - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL8OR16_V_LOWPASS_OP put -QPEL8OR16_V_LOWPASS_OP avg - -INIT_XMM sse2 -QPEL8OR16_V_LOWPASS_OP put -QPEL8OR16_V_LOWPASS_OP avg - - -; All functions that use this are required to have args: -; src, tmp, srcSize -%macro FILT_HV 1 ; offset - mova m6, m2 - movh m5, [r0] - paddw m6, m3 - psllw m6, 2 - paddw m0, [pw_16] - psubw m6, m1 - psubw m6, m4 - punpcklbw m5, m7 - pmullw m6, [pw_5] - paddw m0, m5 - add r0, r2 - paddw m6, m0 - mova [r1+%1], m6 - SWAP 0, 1, 2, 3, 4, 5 -%endmacro - -%macro QPEL4_HV1_LOWPASS_OP 1 -cglobal %1_h264_qpel4_hv_lowpass_v, 3,3 ; src, tmp, srcStride - movsxdifnidn r2, r2d - pxor m7, m7 - movh m0, [r0] - movh m1, [r0+r2] - lea r0, [r0+2*r2] - movh m2, [r0] - movh m3, [r0+r2] - lea r0, [r0+2*r2] - movh m4, [r0] - add r0, r2 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - FILT_HV 0*24 - FILT_HV 1*24 - FILT_HV 2*24 - FILT_HV 3*24 - RET - -cglobal %1_h264_qpel4_hv_lowpass_h, 3,4 ; tmp, dst, dstStride - movsxdifnidn r2, r2d - mov r3d, 4 -.loop: - mova m0, [r0] - paddw m0, [r0+10] - mova m1, [r0+2] - paddw m1, [r0+8] - mova m2, [r0+4] - paddw m2, [r0+6] - psubw m0, m1 - psraw m0, 2 - psubw m0, m1 - paddsw m0, m2 - psraw m0, 2 - paddw m0, m2 - psraw m0, 6 - packuswb m0, m0 - op_%1h m0, [r1], m7 - add r0, 24 - add r1, r2 - dec r3d - jnz .loop - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL4_HV1_LOWPASS_OP put -QPEL4_HV1_LOWPASS_OP avg - -%macro QPEL8OR16_HV1_LOWPASS_OP 1 -cglobal %1_h264_qpel8or16_hv1_lowpass_op, 4,4,8 ; src, tmp, srcStride, size - movsxdifnidn r2, r2d - pxor m7, m7 - movh m0, [r0] - movh m1, [r0+r2] - lea r0, [r0+2*r2] - movh m2, [r0] - movh m3, [r0+r2] - lea r0, [r0+2*r2] - movh m4, [r0] - add r0, r2 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - FILT_HV 0*48 - FILT_HV 1*48 - FILT_HV 2*48 - FILT_HV 3*48 - FILT_HV 4*48 - FILT_HV 5*48 - FILT_HV 6*48 - FILT_HV 7*48 - cmp r3d, 16 - jne .end - FILT_HV 8*48 - FILT_HV 9*48 - FILT_HV 10*48 - FILT_HV 11*48 - FILT_HV 12*48 - FILT_HV 13*48 - FILT_HV 14*48 - FILT_HV 15*48 -.end: - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL8OR16_HV1_LOWPASS_OP put -QPEL8OR16_HV1_LOWPASS_OP avg - -INIT_XMM sse2 -QPEL8OR16_HV1_LOWPASS_OP put - - - -%macro QPEL8OR16_HV2_LOWPASS_OP 1 -; unused is to match ssse3 and mmxext args -cglobal %1_h264_qpel8or16_hv2_lowpass_op, 5,5 ; dst, tmp, dstStride, unused, h - movsxdifnidn r2, r2d -.loop: - mova m0, [r1] - mova m3, [r1+8] - mova m1, [r1+2] - mova m4, [r1+10] - paddw m0, m4 - paddw m1, m3 - paddw m3, [r1+18] - paddw m4, [r1+16] - mova m2, [r1+4] - mova m5, [r1+12] - paddw m2, [r1+6] - paddw m5, [r1+14] - psubw m0, m1 - psubw m3, m4 - psraw m0, 2 - psraw m3, 2 - psubw m0, m1 - psubw m3, m4 - paddsw m0, m2 - paddsw m3, m5 - psraw m0, 2 - psraw m3, 2 - paddw m0, m2 - paddw m3, m5 - psraw m0, 6 - psraw m3, 6 - packuswb m0, m3 - op_%1 m0, [r0], m7 - add r1, 48 - add r0, r2 - dec r4d - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -QPEL8OR16_HV2_LOWPASS_OP put -QPEL8OR16_HV2_LOWPASS_OP avg - -%macro QPEL8OR16_HV2_LOWPASS_OP_XMM 1 -cglobal %1_h264_qpel8or16_hv2_lowpass, 5,5,8 ; dst, tmp, dstStride, tmpStride, size - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - cmp r4d, 16 - je .op16 -.loop8: - mova m1, [r1+16] - mova m0, [r1] - mova m2, m1 - mova m3, m1 - mova m4, m1 - mova m5, m1 - palignr m5, m0, 10 - palignr m4, m0, 8 - palignr m3, m0, 6 - palignr m2, m0, 4 - palignr m1, m0, 2 - paddw m0, m5 - paddw m1, m4 - paddw m2, m3 - psubw m0, m1 - psraw m0, 2 - psubw m0, m1 - paddw m0, m2 - psraw m0, 2 - paddw m0, m2 - psraw m0, 6 - packuswb m0, m0 - op_%1h m0, [r0], m7 - add r1, 48 - add r0, r2 - dec r4d - jne .loop8 - jmp .done -.op16: - mova m4, [r1+32] - mova m5, [r1+16] - mova m7, [r1] - mova m3, m4 - mova m2, m4 - mova m1, m4 - mova m0, m4 - palignr m0, m5, 10 - palignr m1, m5, 8 - palignr m2, m5, 6 - palignr m3, m5, 4 - palignr m4, m5, 2 - paddw m0, m5 - paddw m1, m4 - paddw m2, m3 - mova m6, m5 - mova m4, m5 - mova m3, m5 - palignr m4, m7, 8 - palignr m6, m7, 2 - palignr m3, m7, 10 - paddw m4, m6 - mova m6, m5 - palignr m5, m7, 6 - palignr m6, m7, 4 - paddw m3, m7 - paddw m5, m6 - psubw m0, m1 - psubw m3, m4 - psraw m0, 2 - psraw m3, 2 - psubw m0, m1 - psubw m3, m4 - paddw m0, m2 - paddw m3, m5 - psraw m0, 2 - psraw m3, 2 - paddw m0, m2 - paddw m3, m5 - psraw m0, 6 - psraw m3, 6 - packuswb m3, m0 - op_%1 m3, [r0], m7 - add r1, 48 - add r0, r2 - dec r4d - jne .op16 -.done: - REP_RET -%endmacro - -INIT_XMM ssse3 -QPEL8OR16_HV2_LOWPASS_OP_XMM put -QPEL8OR16_HV2_LOWPASS_OP_XMM avg - - -%macro PIXELS4_L2_SHIFT5 1 -cglobal %1_pixels4_l2_shift5,6,6 ; dst, src16, src8, dstStride, src8Stride, h - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - mova m0, [r1] - mova m1, [r1+24] - psraw m0, 5 - psraw m1, 5 - packuswb m0, m0 - packuswb m1, m1 - pavgb m0, [r2] - pavgb m1, [r2+r4] - op_%1h m0, [r0], m4 - op_%1h m1, [r0+r3], m5 - lea r2, [r2+r4*2] - lea r0, [r0+r3*2] - mova m0, [r1+48] - mova m1, [r1+72] - psraw m0, 5 - psraw m1, 5 - packuswb m0, m0 - packuswb m1, m1 - pavgb m0, [r2] - pavgb m1, [r2+r4] - op_%1h m0, [r0], m4 - op_%1h m1, [r0+r3], m5 - RET -%endmacro - -INIT_MMX mmxext -PIXELS4_L2_SHIFT5 put -PIXELS4_L2_SHIFT5 avg - - -%macro PIXELS8_L2_SHIFT5 1 -cglobal %1_pixels8_l2_shift5, 6, 6 ; dst, src16, src8, dstStride, src8Stride, h - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d -.loop: - mova m0, [r1] - mova m1, [r1+8] - mova m2, [r1+48] - mova m3, [r1+48+8] - psraw m0, 5 - psraw m1, 5 - psraw m2, 5 - psraw m3, 5 - packuswb m0, m1 - packuswb m2, m3 - pavgb m0, [r2] - pavgb m2, [r2+r4] - op_%1 m0, [r0], m4 - op_%1 m2, [r0+r3], m5 - lea r2, [r2+2*r4] - add r1, 48*2 - lea r0, [r0+2*r3] - sub r5d, 2 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PIXELS8_L2_SHIFT5 put -PIXELS8_L2_SHIFT5 avg - - -%if ARCH_X86_64 -%macro QPEL16_H_LOWPASS_L2_OP 1 -cglobal %1_h264_qpel16_h_lowpass_l2, 5, 6, 16 ; dst, src, src2, dstStride, src2Stride - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - mov r5d, 16 - pxor m15, m15 - mova m14, [pw_5] - mova m13, [pw_16] -.loop: - lddqu m1, [r1+6] - lddqu m7, [r1-2] - mova m0, m1 - punpckhbw m1, m15 - punpcklbw m0, m15 - punpcklbw m7, m15 - mova m2, m1 - mova m6, m0 - mova m3, m1 - mova m8, m0 - mova m4, m1 - mova m9, m0 - mova m12, m0 - mova m11, m1 - palignr m11, m0, 10 - palignr m12, m7, 10 - palignr m4, m0, 2 - palignr m9, m7, 2 - palignr m3, m0, 4 - palignr m8, m7, 4 - palignr m2, m0, 6 - palignr m6, m7, 6 - paddw m11, m0 - palignr m1, m0, 8 - palignr m0, m7, 8 - paddw m7, m12 - paddw m2, m3 - paddw m6, m8 - paddw m1, m4 - paddw m0, m9 - psllw m2, 2 - psllw m6, 2 - psubw m2, m1 - psubw m6, m0 - paddw m11, m13 - paddw m7, m13 - pmullw m2, m14 - pmullw m6, m14 - lddqu m3, [r2] - paddw m2, m11 - paddw m6, m7 - psraw m2, 5 - psraw m6, 5 - packuswb m6, m2 - pavgb m6, m3 - op_%1 m6, [r0], m11 - add r1, r3 - add r0, r3 - add r2, r4 - dec r5d - jg .loop - REP_RET -%endmacro - -INIT_XMM ssse3 -QPEL16_H_LOWPASS_L2_OP put -QPEL16_H_LOWPASS_L2_OP avg -%endif diff --git a/libavcodec/x86/h264_weight.asm b/libavcodec/x86/h264_weight.asm deleted file mode 100644 index 0975d74fcf..0000000000 --- a/libavcodec/x86/h264_weight.asm +++ /dev/null @@ -1,320 +0,0 @@ -;***************************************************************************** -;* SSE2-optimized weighted prediction code -;***************************************************************************** -;* Copyright (c) 2004-2005 Michael Niedermayer, Loren Merritt -;* Copyright (C) 2010 Eli Friedman -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -;----------------------------------------------------------------------------- -; biweight pred: -; -; void ff_h264_biweight_16_sse2(uint8_t *dst, uint8_t *src, int stride, -; int height, int log2_denom, int weightd, -; int weights, int offset); -; and -; void ff_h264_weight_16_sse2(uint8_t *dst, int stride, int height, -; int log2_denom, int weight, int offset); -;----------------------------------------------------------------------------- - -%macro WEIGHT_SETUP 0 - add r5, r5 - inc r5 - movd m3, r4d - movd m5, r5d - movd m6, r3d - pslld m5, m6 - psrld m5, 1 -%if mmsize == 16 - pshuflw m3, m3, 0 - pshuflw m5, m5, 0 - punpcklqdq m3, m3 - punpcklqdq m5, m5 -%else - pshufw m3, m3, 0 - pshufw m5, m5, 0 -%endif - pxor m7, m7 -%endmacro - -%macro WEIGHT_OP 2 - movh m0, [r0+%1] - movh m1, [r0+%2] - punpcklbw m0, m7 - punpcklbw m1, m7 - pmullw m0, m3 - pmullw m1, m3 - paddsw m0, m5 - paddsw m1, m5 - psraw m0, m6 - psraw m1, m6 - packuswb m0, m1 -%endmacro - -INIT_MMX mmxext -cglobal h264_weight_16, 6, 6, 0 - WEIGHT_SETUP -.nextrow: - WEIGHT_OP 0, 4 - mova [r0 ], m0 - WEIGHT_OP 8, 12 - mova [r0+8], m0 - add r0, r1 - dec r2d - jnz .nextrow - REP_RET - -%macro WEIGHT_FUNC_MM 2 -cglobal h264_weight_%1, 6, 6, %2 - WEIGHT_SETUP -.nextrow: - WEIGHT_OP 0, mmsize/2 - mova [r0], m0 - add r0, r1 - dec r2d - jnz .nextrow - REP_RET -%endmacro - -INIT_MMX mmxext -WEIGHT_FUNC_MM 8, 0 -INIT_XMM sse2 -WEIGHT_FUNC_MM 16, 8 - -%macro WEIGHT_FUNC_HALF_MM 2 -cglobal h264_weight_%1, 6, 6, %2 - WEIGHT_SETUP - sar r2d, 1 - lea r3, [r1*2] -.nextrow: - WEIGHT_OP 0, r1 - movh [r0], m0 -%if mmsize == 16 - movhps [r0+r1], m0 -%else - psrlq m0, 32 - movh [r0+r1], m0 -%endif - add r0, r3 - dec r2d - jnz .nextrow - REP_RET -%endmacro - -INIT_MMX mmxext -WEIGHT_FUNC_HALF_MM 4, 0 -INIT_XMM sse2 -WEIGHT_FUNC_HALF_MM 8, 8 - -%macro BIWEIGHT_SETUP 0 -%if ARCH_X86_64 -%define off_regd r7d -%else -%define off_regd r3d -%endif - mov off_regd, r7m - add off_regd, 1 - or off_regd, 1 - add r4d, 1 - cmp r6d, 128 - je .nonnormal - cmp r5d, 128 - jne .normal -.nonnormal: - sar r5d, 1 - sar r6d, 1 - sar off_regd, 1 - sub r4d, 1 -.normal: -%if cpuflag(ssse3) - movd m4, r5d - movd m0, r6d -%else - movd m3, r5d - movd m4, r6d -%endif - movd m5, off_regd - movd m6, r4d - pslld m5, m6 - psrld m5, 1 -%if cpuflag(ssse3) - punpcklbw m4, m0 - pshuflw m4, m4, 0 - pshuflw m5, m5, 0 - punpcklqdq m4, m4 - punpcklqdq m5, m5 - -%else -%if mmsize == 16 - pshuflw m3, m3, 0 - pshuflw m4, m4, 0 - pshuflw m5, m5, 0 - punpcklqdq m3, m3 - punpcklqdq m4, m4 - punpcklqdq m5, m5 -%else - pshufw m3, m3, 0 - pshufw m4, m4, 0 - pshufw m5, m5, 0 -%endif - pxor m7, m7 -%endif -%endmacro - -%macro BIWEIGHT_STEPA 3 - movh m%1, [r0+%3] - movh m%2, [r1+%3] - punpcklbw m%1, m7 - punpcklbw m%2, m7 - pmullw m%1, m3 - pmullw m%2, m4 - paddsw m%1, m%2 -%endmacro - -%macro BIWEIGHT_STEPB 0 - paddsw m0, m5 - paddsw m1, m5 - psraw m0, m6 - psraw m1, m6 - packuswb m0, m1 -%endmacro - -INIT_MMX mmxext -cglobal h264_biweight_16, 7, 8, 0 - BIWEIGHT_SETUP - movifnidn r3d, r3m -.nextrow: - BIWEIGHT_STEPA 0, 1, 0 - BIWEIGHT_STEPA 1, 2, 4 - BIWEIGHT_STEPB - mova [r0], m0 - BIWEIGHT_STEPA 0, 1, 8 - BIWEIGHT_STEPA 1, 2, 12 - BIWEIGHT_STEPB - mova [r0+8], m0 - add r0, r2 - add r1, r2 - dec r3d - jnz .nextrow - REP_RET - -%macro BIWEIGHT_FUNC_MM 2 -cglobal h264_biweight_%1, 7, 8, %2 - BIWEIGHT_SETUP - movifnidn r3d, r3m -.nextrow: - BIWEIGHT_STEPA 0, 1, 0 - BIWEIGHT_STEPA 1, 2, mmsize/2 - BIWEIGHT_STEPB - mova [r0], m0 - add r0, r2 - add r1, r2 - dec r3d - jnz .nextrow - REP_RET -%endmacro - -INIT_MMX mmxext -BIWEIGHT_FUNC_MM 8, 0 -INIT_XMM sse2 -BIWEIGHT_FUNC_MM 16, 8 - -%macro BIWEIGHT_FUNC_HALF_MM 2 -cglobal h264_biweight_%1, 7, 8, %2 - BIWEIGHT_SETUP - movifnidn r3d, r3m - sar r3, 1 - lea r4, [r2*2] -.nextrow: - BIWEIGHT_STEPA 0, 1, 0 - BIWEIGHT_STEPA 1, 2, r2 - BIWEIGHT_STEPB - movh [r0], m0 -%if mmsize == 16 - movhps [r0+r2], m0 -%else - psrlq m0, 32 - movh [r0+r2], m0 -%endif - add r0, r4 - add r1, r4 - dec r3d - jnz .nextrow - REP_RET -%endmacro - -INIT_MMX mmxext -BIWEIGHT_FUNC_HALF_MM 4, 0 -INIT_XMM sse2 -BIWEIGHT_FUNC_HALF_MM 8, 8 - -%macro BIWEIGHT_SSSE3_OP 0 - pmaddubsw m0, m4 - pmaddubsw m2, m4 - paddsw m0, m5 - paddsw m2, m5 - psraw m0, m6 - psraw m2, m6 - packuswb m0, m2 -%endmacro - -INIT_XMM ssse3 -cglobal h264_biweight_16, 7, 8, 8 - BIWEIGHT_SETUP - movifnidn r3d, r3m - -.nextrow: - movh m0, [r0] - movh m2, [r0+8] - movh m3, [r1+8] - punpcklbw m0, [r1] - punpcklbw m2, m3 - BIWEIGHT_SSSE3_OP - mova [r0], m0 - add r0, r2 - add r1, r2 - dec r3d - jnz .nextrow - REP_RET - -INIT_XMM ssse3 -cglobal h264_biweight_8, 7, 8, 8 - BIWEIGHT_SETUP - movifnidn r3d, r3m - sar r3, 1 - lea r4, [r2*2] - -.nextrow: - movh m0, [r0] - movh m1, [r1] - movh m2, [r0+r2] - movh m3, [r1+r2] - punpcklbw m0, m1 - punpcklbw m2, m3 - BIWEIGHT_SSSE3_OP - movh [r0], m0 - movhps [r0+r2], m0 - add r0, r4 - add r1, r4 - dec r3d - jnz .nextrow - REP_RET diff --git a/libavcodec/x86/h264_weight_10bit.asm b/libavcodec/x86/h264_weight_10bit.asm deleted file mode 100644 index f924e55854..0000000000 --- a/libavcodec/x86/h264_weight_10bit.asm +++ /dev/null @@ -1,284 +0,0 @@ -;***************************************************************************** -;* MMX/SSE2/AVX-optimized 10-bit H.264 weighted prediction code -;***************************************************************************** -;* Copyright (C) 2005-2011 x264 project -;* -;* Authors: Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -sq_1: dq 1 - dq 0 - -cextern pw_1 -cextern pw_1023 -%define pw_pixel_max pw_1023 - -SECTION .text - -;----------------------------------------------------------------------------- -; void ff_h264_weight_16_10(uint8_t *dst, int stride, int height, -; int log2_denom, int weight, int offset); -;----------------------------------------------------------------------------- -%macro WEIGHT_PROLOGUE 0 -.prologue: - PROLOGUE 0,6,8 - movifnidn r0, r0mp - movifnidn r1d, r1m - movifnidn r2d, r2m - movifnidn r4d, r4m - movifnidn r5d, r5m -%endmacro - -%macro WEIGHT_SETUP 0 - mova m0, [pw_1] - movd m2, r3m - pslld m0, m2 ; 1<(uint8_t *dst, int16_t *res, ptrdiff_t stride) -cglobal hevc_add_residual_8_8, 3, 4, 8 - lea r3, [r2*3] - ADD_RES_SSE_8_8 - add r1, 64 - lea r0, [r0+r2*4] - ADD_RES_SSE_8_8 - RET - -; void ff_hevc_add_residual_16_8_(uint8_t *dst, int16_t *res, ptrdiff_t stride) -cglobal hevc_add_residual_16_8, 3, 5, 7 - pxor m0, m0 - lea r3, [r2*3] - mov r4d, 4 -.loop: - ADD_RES_SSE_16_32_8 0, r0, r0+r2 - ADD_RES_SSE_16_32_8 64, r0+r2*2, r0+r3 - add r1, 128 - lea r0, [r0+r2*4] - dec r4d - jg .loop - RET - -; void ff_hevc_add_residual_32_8_(uint8_t *dst, int16_t *res, ptrdiff_t stride) -cglobal hevc_add_residual_32_8, 3, 5, 7 - pxor m0, m0 - mov r4d, 16 -.loop: - ADD_RES_SSE_16_32_8 0, r0, r0+16 - ADD_RES_SSE_16_32_8 64, r0+r2, r0+r2+16 - add r1, 128 - lea r0, [r0+r2*2] - dec r4d - jg .loop - RET -%endmacro - -INIT_XMM sse2 -TRANSFORM_ADD_8 -INIT_XMM avx -TRANSFORM_ADD_8 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -; void ff_hevc_add_residual_32_8_avx2(uint8_t *dst, int16_t *res, ptrdiff_t stride) -cglobal hevc_add_residual_32_8, 3, 5, 7 - pxor m0, m0 - lea r3, [r2*3] - mov r4d, 8 -.loop: - ADD_RES_SSE_16_32_8 0, r0, r0+r2 - ADD_RES_SSE_16_32_8 128, r0+r2*2, r0+r3 - add r1, 256 - lea r0, [r0+r2*4] - dec r4d - jg .loop - RET -%endif ;HAVE_AVX2_EXTERNAL - -%macro ADD_RES_SSE_8_10 4 - mova m0, [%4] - mova m1, [%4+16] - mova m2, [%4+32] - mova m3, [%4+48] - paddw m0, [%1+0] - paddw m1, [%1+%2] - paddw m2, [%1+%2*2] - paddw m3, [%1+%3] - CLIPW m0, m4, m5 - CLIPW m1, m4, m5 - CLIPW m2, m4, m5 - CLIPW m3, m4, m5 - mova [%1+0], m0 - mova [%1+%2], m1 - mova [%1+%2*2], m2 - mova [%1+%3], m3 -%endmacro - -%macro ADD_RES_MMX_4_10 3 - mova m0, [%1+0] - mova m1, [%1+%2] - paddw m0, [%3] - paddw m1, [%3+8] - CLIPW m0, m2, m3 - CLIPW m1, m2, m3 - mova [%1+0], m0 - mova [%1+%2], m1 -%endmacro - -%macro ADD_RES_SSE_16_10 3 - mova m0, [%3] - mova m1, [%3+16] - mova m2, [%3+32] - mova m3, [%3+48] - paddw m0, [%1] - paddw m1, [%1+16] - paddw m2, [%1+%2] - paddw m3, [%1+%2+16] - CLIPW m0, m4, m5 - CLIPW m1, m4, m5 - CLIPW m2, m4, m5 - CLIPW m3, m4, m5 - mova [%1], m0 - mova [%1+16], m1 - mova [%1+%2], m2 - mova [%1+%2+16], m3 -%endmacro - -%macro ADD_RES_SSE_32_10 2 - mova m0, [%2] - mova m1, [%2+16] - mova m2, [%2+32] - mova m3, [%2+48] - - paddw m0, [%1] - paddw m1, [%1+16] - paddw m2, [%1+32] - paddw m3, [%1+48] - CLIPW m0, m4, m5 - CLIPW m1, m4, m5 - CLIPW m2, m4, m5 - CLIPW m3, m4, m5 - mova [%1], m0 - mova [%1+16], m1 - mova [%1+32], m2 - mova [%1+48], m3 -%endmacro - -%macro ADD_RES_AVX2_16_10 4 - mova m0, [%4] - mova m1, [%4+32] - mova m2, [%4+64] - mova m3, [%4+96] - - paddw m0, [%1+0] - paddw m1, [%1+%2] - paddw m2, [%1+%2*2] - paddw m3, [%1+%3] - - CLIPW m0, m4, m5 - CLIPW m1, m4, m5 - CLIPW m2, m4, m5 - CLIPW m3, m4, m5 - mova [%1+0], m0 - mova [%1+%2], m1 - mova [%1+%2*2], m2 - mova [%1+%3], m3 -%endmacro - -%macro ADD_RES_AVX2_32_10 3 - mova m0, [%3] - mova m1, [%3+32] - mova m2, [%3+64] - mova m3, [%3+96] - - paddw m0, [%1] - paddw m1, [%1+32] - paddw m2, [%1+%2] - paddw m3, [%1+%2+32] - - CLIPW m0, m4, m5 - CLIPW m1, m4, m5 - CLIPW m2, m4, m5 - CLIPW m3, m4, m5 - mova [%1], m0 - mova [%1+32], m1 - mova [%1+%2], m2 - mova [%1+%2+32], m3 -%endmacro - -; void ff_hevc_add_residual_<4|8|16|32>_10(pixel *dst, int16_t *block, ptrdiff_t stride) -INIT_MMX mmxext -cglobal hevc_add_residual_4_10, 3, 3, 6 - pxor m2, m2 - mova m3, [max_pixels_10] - ADD_RES_MMX_4_10 r0, r2, r1 - add r1, 16 - lea r0, [r0+2*r2] - ADD_RES_MMX_4_10 r0, r2, r1 - RET - -INIT_XMM sse2 -cglobal hevc_add_residual_8_10, 3, 4, 6 - pxor m4, m4 - mova m5, [max_pixels_10] - lea r3, [r2*3] - - ADD_RES_SSE_8_10 r0, r2, r3, r1 - lea r0, [r0+r2*4] - add r1, 64 - ADD_RES_SSE_8_10 r0, r2, r3, r1 - RET - -cglobal hevc_add_residual_16_10, 3, 5, 6 - pxor m4, m4 - mova m5, [max_pixels_10] - - mov r4d, 8 -.loop: - ADD_RES_SSE_16_10 r0, r2, r1 - lea r0, [r0+r2*2] - add r1, 64 - dec r4d - jg .loop - RET - -cglobal hevc_add_residual_32_10, 3, 5, 6 - pxor m4, m4 - mova m5, [max_pixels_10] - - mov r4d, 32 -.loop: - ADD_RES_SSE_32_10 r0, r1 - lea r0, [r0+r2] - add r1, 64 - dec r4d - jg .loop - RET - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal hevc_add_residual_16_10, 3, 5, 6 - pxor m4, m4 - mova m5, [max_pixels_10] - lea r3, [r2*3] - - mov r4d, 4 -.loop: - ADD_RES_AVX2_16_10 r0, r2, r3, r1 - lea r0, [r0+r2*4] - add r1, 128 - dec r4d - jg .loop - RET - -cglobal hevc_add_residual_32_10, 3, 5, 6 - pxor m4, m4 - mova m5, [max_pixels_10] - - mov r4d, 16 -.loop: - ADD_RES_AVX2_32_10 r0, r2, r1 - lea r0, [r0+r2*2] - add r1, 128 - dec r4d - jg .loop - RET -%endif ;HAVE_AVX2_EXTERNAL diff --git a/libavcodec/x86/hevc_deblock.asm b/libavcodec/x86/hevc_deblock.asm deleted file mode 100644 index 85ee4800bb..0000000000 --- a/libavcodec/x86/hevc_deblock.asm +++ /dev/null @@ -1,871 +0,0 @@ -;***************************************************************************** -;* SSE2-optimized HEVC deblocking code -;***************************************************************************** -;* Copyright (C) 2013 VTT -;* -;* Authors: Seppo Tomperi -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pw_1023 -%define pw_pixel_max_10 pw_1023 -pw_pixel_max_12: times 8 dw ((1 << 12)-1) -pw_m2: times 8 dw -2 -pd_1 : times 4 dd 1 - -cextern pw_4 -cextern pw_8 -cextern pw_m1 - -SECTION .text -INIT_XMM sse2 - -; in: 8 rows of 4 bytes in %4..%11 -; out: 4 rows of 8 words in m0..m3 -%macro TRANSPOSE4x8B_LOAD 8 - movd m0, %1 - movd m2, %2 - movd m1, %3 - movd m3, %4 - - punpcklbw m0, m2 - punpcklbw m1, m3 - punpcklwd m0, m1 - - movd m4, %5 - movd m6, %6 - movd m5, %7 - movd m3, %8 - - punpcklbw m4, m6 - punpcklbw m5, m3 - punpcklwd m4, m5 - - punpckhdq m2, m0, m4 - punpckldq m0, m4 - - pxor m5, m5 - punpckhbw m1, m0, m5 - punpcklbw m0, m5 - punpckhbw m3, m2, m5 - punpcklbw m2, m5 -%endmacro - -; in: 4 rows of 8 words in m0..m3 -; out: 8 rows of 4 bytes in %1..%8 -%macro TRANSPOSE8x4B_STORE 8 - packuswb m0, m2 - packuswb m1, m3 - SBUTTERFLY bw, 0, 1, 2 - SBUTTERFLY wd, 0, 1, 2 - - movd %1, m0 - pshufd m0, m0, 0x39 - movd %2, m0 - pshufd m0, m0, 0x39 - movd %3, m0 - pshufd m0, m0, 0x39 - movd %4, m0 - - movd %5, m1 - pshufd m1, m1, 0x39 - movd %6, m1 - pshufd m1, m1, 0x39 - movd %7, m1 - pshufd m1, m1, 0x39 - movd %8, m1 -%endmacro - -; in: 8 rows of 4 words in %4..%11 -; out: 4 rows of 8 words in m0..m3 -%macro TRANSPOSE4x8W_LOAD 8 - movq m0, %1 - movq m2, %2 - movq m1, %3 - movq m3, %4 - - punpcklwd m0, m2 - punpcklwd m1, m3 - punpckhdq m2, m0, m1 - punpckldq m0, m1 - - movq m4, %5 - movq m6, %6 - movq m5, %7 - movq m3, %8 - - punpcklwd m4, m6 - punpcklwd m5, m3 - punpckhdq m6, m4, m5 - punpckldq m4, m5 - - punpckhqdq m1, m0, m4 - punpcklqdq m0, m4 - punpckhqdq m3, m2, m6 - punpcklqdq m2, m6 - -%endmacro - -; in: 4 rows of 8 words in m0..m3 -; out: 8 rows of 4 words in %1..%8 -%macro TRANSPOSE8x4W_STORE 9 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - - pxor m5, m5; zeros reg - CLIPW m0, m5, %9 - CLIPW m1, m5, %9 - CLIPW m2, m5, %9 - CLIPW m3, m5, %9 - - movq %1, m0 - movhps %2, m0 - movq %3, m1 - movhps %4, m1 - movq %5, m2 - movhps %6, m2 - movq %7, m3 - movhps %8, m3 -%endmacro - -; in: 8 rows of 8 bytes in %1..%8 -; out: 8 rows of 8 words in m0..m7 -%macro TRANSPOSE8x8B_LOAD 8 - movq m7, %1 - movq m2, %2 - movq m1, %3 - movq m3, %4 - - punpcklbw m7, m2 - punpcklbw m1, m3 - punpcklwd m3, m7, m1 - punpckhwd m7, m1 - - movq m4, %5 - movq m6, %6 - movq m5, %7 - movq m15, %8 - - punpcklbw m4, m6 - punpcklbw m5, m15 - punpcklwd m9, m4, m5 - punpckhwd m4, m5 - - punpckldq m1, m3, m9; 0, 1 - punpckhdq m3, m9; 2, 3 - - punpckldq m5, m7, m4; 4, 5 - punpckhdq m7, m4; 6, 7 - - pxor m13, m13 - - punpcklbw m0, m1, m13; 0 in 16 bit - punpckhbw m1, m13; 1 in 16 bit - - punpcklbw m2, m3, m13; 2 - punpckhbw m3, m13; 3 - - punpcklbw m4, m5, m13; 4 - punpckhbw m5, m13; 5 - - punpcklbw m6, m7, m13; 6 - punpckhbw m7, m13; 7 -%endmacro - - -; in: 8 rows of 8 words in m0..m8 -; out: 8 rows of 8 bytes in %1..%8 -%macro TRANSPOSE8x8B_STORE 8 - packuswb m0, m4 - packuswb m1, m5 - packuswb m2, m6 - packuswb m3, m7 - TRANSPOSE2x4x4B 0, 1, 2, 3, 4 - - movq %1, m0 - movhps %2, m0 - movq %3, m1 - movhps %4, m1 - movq %5, m2 - movhps %6, m2 - movq %7, m3 - movhps %8, m3 -%endmacro - -; in: 8 rows of 8 words in %1..%8 -; out: 8 rows of 8 words in m0..m7 -%macro TRANSPOSE8x8W_LOAD 8 - movdqu m0, %1 - movdqu m1, %2 - movdqu m2, %3 - movdqu m3, %4 - movdqu m4, %5 - movdqu m5, %6 - movdqu m6, %7 - movdqu m7, %8 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 -%endmacro - -; in: 8 rows of 8 words in m0..m8 -; out: 8 rows of 8 words in %1..%8 -%macro TRANSPOSE8x8W_STORE 9 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 - - pxor m8, m8 - CLIPW m0, m8, %9 - CLIPW m1, m8, %9 - CLIPW m2, m8, %9 - CLIPW m3, m8, %9 - CLIPW m4, m8, %9 - CLIPW m5, m8, %9 - CLIPW m6, m8, %9 - CLIPW m7, m8, %9 - - movdqu %1, m0 - movdqu %2, m1 - movdqu %3, m2 - movdqu %4, m3 - movdqu %5, m4 - movdqu %6, m5 - movdqu %7, m6 - movdqu %8, m7 -%endmacro - - -; in: %2 clobbered -; out: %1 -; mask in m11 -; clobbers m10 -%macro MASKED_COPY 2 - pand %2, m11 ; and mask - pandn m10, m11, %1; and -mask - por %2, m10 - mova %1, %2 -%endmacro - -; in: %2 clobbered -; out: %1 -; mask in %3, will be clobbered -%macro MASKED_COPY2 3 - pand %2, %3 ; and mask - pandn %3, %1; and -mask - por %2, %3 - mova %1, %2 -%endmacro - -ALIGN 16 -; input in m0 ... m3 and tcs in r2. Output in m1 and m2 -%macro CHROMA_DEBLOCK_BODY 1 - psubw m4, m2, m1; q0 - p0 - psubw m5, m0, m3; p1 - q1 - psllw m4, 2; << 2 - paddw m5, m4; - - ;tc calculations - movq m6, [tcq]; tc0 - punpcklwd m6, m6 - pshufd m6, m6, 0xA0; tc0, tc1 -%if cpuflag(ssse3) - psignw m4, m6, [pw_m1]; -tc0, -tc1 -%else - pmullw m4, m6, [pw_m1]; -tc0, -tc1 -%endif - ;end tc calculations - - paddw m5, [pw_4]; +4 - psraw m5, 3; >> 3 - -%if %1 > 8 - psllw m4, %1-8; << (BIT_DEPTH - 8) - psllw m6, %1-8; << (BIT_DEPTH - 8) -%endif - pmaxsw m5, m4 - pminsw m5, m6 - paddw m1, m5; p0 + delta0 - psubw m2, m5; q0 - delta0 -%endmacro - -; input in m0 ... m7, beta in r2 tcs in r3. Output in m1...m6 -%macro LUMA_DEBLOCK_BODY 2 - psllw m9, m2, 1; *2 - psubw m10, m1, m9 - paddw m10, m3 - ABS1 m10, m11 ; 0dp0, 0dp3 , 1dp0, 1dp3 - - psllw m9, m5, 1; *2 - psubw m11, m6, m9 - paddw m11, m4 - ABS1 m11, m13 ; 0dq0, 0dq3 , 1dq0, 1dq3 - - ;beta calculations -%if %1 > 8 - shl betaq, %1 - 8 -%endif - movd m13, betad - SPLATW m13, m13, 0 - ;end beta calculations - - paddw m9, m10, m11; 0d0, 0d3 , 1d0, 1d3 - - pshufhw m14, m9, 0x0f ;0b00001111; 0d3 0d3 0d0 0d0 in high - pshuflw m14, m14, 0x0f ;0b00001111; 1d3 1d3 1d0 1d0 in low - - pshufhw m9, m9, 0xf0 ;0b11110000; 0d0 0d0 0d3 0d3 - pshuflw m9, m9, 0xf0 ;0b11110000; 1d0 1d0 1d3 1d3 - - paddw m14, m9; 0d0+0d3, 1d0+1d3 - - ;compare - pcmpgtw m15, m13, m14 - movmskps r13, m15 ;filtering mask 0d0 + 0d3 < beta0 (bit 2 or 3) , 1d0 + 1d3 < beta1 (bit 0 or 1) - test r13, r13 - je .bypassluma - - ;weak / strong decision compare to beta_2 - psraw m15, m13, 2; beta >> 2 - psllw m8, m9, 1; - pcmpgtw m15, m8; (d0 << 1) < beta_2, (d3 << 1) < beta_2 - movmskps r6, m15; - ;end weak / strong decision - - ; weak filter nd_p/q calculation - pshufd m8, m10, 0x31 - psrld m8, 16 - paddw m8, m10 - movd r7d, m8 - pshufd m8, m8, 0x4E - movd r8d, m8 - - pshufd m8, m11, 0x31 - psrld m8, 16 - paddw m8, m11 - movd r9d, m8 - pshufd m8, m8, 0x4E - movd r10d, m8 - ; end calc for weak filter - - ; filtering mask - mov r11, r13 - shr r11, 3 - movd m15, r11d - and r13, 1 - movd m11, r13d - shufps m11, m15, 0 - shl r11, 1 - or r13, r11 - - pcmpeqd m11, [pd_1]; filtering mask - - ;decide between strong and weak filtering - ;tc25 calculations - mov r11d, [tcq]; -%if %1 > 8 - shl r11, %1 - 8 -%endif - movd m8, r11d; tc0 - mov r3d, [tcq+4]; -%if %1 > 8 - shl r3, %1 - 8 -%endif - add r11d, r3d; tc0 + tc1 - jz .bypassluma - movd m9, r3d; tc1 - punpcklwd m8, m8 - punpcklwd m9, m9 - shufps m8, m9, 0; tc0, tc1 - mova m9, m8 - psllw m8, 2; tc << 2 - pavgw m8, m9; tc25 = ((tc * 5 + 1) >> 1) - ;end tc25 calculations - - ;----beta_3 comparison----- - psubw m12, m0, m3; p3 - p0 - ABS1 m12, m14; abs(p3 - p0) - - psubw m15, m7, m4; q3 - q0 - ABS1 m15, m14; abs(q3 - q0) - - paddw m12, m15; abs(p3 - p0) + abs(q3 - q0) - - pshufhw m12, m12, 0xf0 ;0b11110000; - pshuflw m12, m12, 0xf0 ;0b11110000; - - psraw m13, 3; beta >> 3 - pcmpgtw m13, m12; - movmskps r11, m13; - and r6, r11; strong mask , beta_2 and beta_3 comparisons - ;----beta_3 comparison end----- - ;----tc25 comparison--- - psubw m12, m3, m4; p0 - q0 - ABS1 m12, m14; abs(p0 - q0) - - pshufhw m12, m12, 0xf0 ;0b11110000; - pshuflw m12, m12, 0xf0 ;0b11110000; - - pcmpgtw m8, m12; tc25 comparisons - movmskps r11, m8; - and r6, r11; strong mask, beta_2, beta_3 and tc25 comparisons - ;----tc25 comparison end--- - mov r11, r6; - shr r11, 1; - and r6, r11; strong mask, bits 2 and 0 - - pmullw m14, m9, [pw_m2]; -tc * 2 - paddw m9, m9 - - and r6, 5; 0b101 - mov r11, r6; strong mask - shr r6, 2; - movd m12, r6d; store to xmm for mask generation - shl r6, 1 - and r11, 1 - movd m10, r11d; store to xmm for mask generation - or r6, r11; final strong mask, bits 1 and 0 - jz .weakfilter - - shufps m10, m12, 0 - pcmpeqd m10, [pd_1]; strong mask - - mova m13, [pw_4]; 4 in every cell - pand m11, m10; combine filtering mask and strong mask - paddw m12, m2, m3; p1 + p0 - paddw m12, m4; p1 + p0 + q0 - mova m10, m12; copy - paddw m12, m12; 2*p1 + 2*p0 + 2*q0 - paddw m12, m1; p2 + 2*p1 + 2*p0 + 2*q0 - paddw m12, m5; p2 + 2*p1 + 2*p0 + 2*q0 + q1 - paddw m12, m13; p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 - psraw m12, 3; ((p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4) >> 3) - psubw m12, m3; ((p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4) >> 3) - p0 - pmaxsw m12, m14 - pminsw m12, m9; av_clip( , -2 * tc, 2 * tc) - paddw m12, m3; p0' - - paddw m15, m1, m10; p2 + p1 + p0 + q0 - psrlw m13, 1; 2 in every cell - paddw m15, m13; p2 + p1 + p0 + q0 + 2 - psraw m15, 2; (p2 + p1 + p0 + q0 + 2) >> 2 - psubw m15, m2;((p2 + p1 + p0 + q0 + 2) >> 2) - p1 - pmaxsw m15, m14 - pminsw m15, m9; av_clip( , -2 * tc, 2 * tc) - paddw m15, m2; p1' - - paddw m8, m1, m0; p3 + p2 - paddw m8, m8; 2*p3 + 2*p2 - paddw m8, m1; 2*p3 + 3*p2 - paddw m8, m10; 2*p3 + 3*p2 + p1 + p0 + q0 - paddw m13, m13 - paddw m8, m13; 2*p3 + 3*p2 + p1 + p0 + q0 + 4 - psraw m8, 3; (2*p3 + 3*p2 + p1 + p0 + q0 + 4) >> 3 - psubw m8, m1; ((2*p3 + 3*p2 + p1 + p0 + q0 + 4) >> 3) - p2 - pmaxsw m8, m14 - pminsw m8, m9; av_clip( , -2 * tc, 2 * tc) - paddw m8, m1; p2' - MASKED_COPY m1, m8 - - paddw m8, m3, m4; p0 + q0 - paddw m8, m5; p0 + q0 + q1 - paddw m8, m8; 2*p0 + 2*q0 + 2*q1 - paddw m8, m2; p1 + 2*p0 + 2*q0 + 2*q1 - paddw m8, m6; p1 + 2*p0 + 2*q0 + 2*q1 + q2 - paddw m8, m13; p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 - psraw m8, 3; (p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4) >>3 - psubw m8, m4; - pmaxsw m8, m14 - pminsw m8, m9; av_clip( , -2 * tc, 2 * tc) - paddw m8, m4; q0' - MASKED_COPY m2, m15 - - paddw m15, m3, m4; p0 + q0 - paddw m15, m5; p0 + q0 + q1 - mova m10, m15; - paddw m15, m6; p0 + q0 + q1 + q2 - psrlw m13, 1; 2 in every cell - paddw m15, m13; p0 + q0 + q1 + q2 + 2 - psraw m15, 2; (p0 + q0 + q1 + q2 + 2) >> 2 - psubw m15, m5; ((p0 + q0 + q1 + q2 + 2) >> 2) - q1 - pmaxsw m15, m14 - pminsw m15, m9; av_clip( , -2 * tc, 2 * tc) - paddw m15, m5; q1' - - paddw m13, m7; q3 + 2 - paddw m13, m6; q3 + q2 + 2 - paddw m13, m13; 2*q3 + 2*q2 + 4 - paddw m13, m6; 2*q3 + 3*q2 + 4 - paddw m13, m10; 2*q3 + 3*q2 + q1 + q0 + p0 + 4 - psraw m13, 3; (2*q3 + 3*q2 + q1 + q0 + p0 + 4) >> 3 - psubw m13, m6; ((2*q3 + 3*q2 + q1 + q0 + p0 + 4) >> 3) - q2 - pmaxsw m13, m14 - pminsw m13, m9; av_clip( , -2 * tc, 2 * tc) - paddw m13, m6; q2' - - MASKED_COPY m6, m13 - MASKED_COPY m5, m15 - MASKED_COPY m4, m8 - MASKED_COPY m3, m12 - -.weakfilter: - not r6; strong mask -> weak mask - and r6, r13; final weak filtering mask, bits 0 and 1 - jz .store - - ; weak filtering mask - mov r11, r6 - shr r11, 1 - movd m12, r11d - and r6, 1 - movd m11, r6d - shufps m11, m12, 0 - pcmpeqd m11, [pd_1]; filtering mask - - mov r13, betaq - shr r13, 1; - add betaq, r13 - shr betaq, 3; ((beta + (beta >> 1)) >> 3)) - - mova m13, [pw_8] - psubw m12, m4, m3 ; q0 - p0 - psllw m10, m12, 3; 8 * (q0 - p0) - paddw m12, m10 ; 9 * (q0 - p0) - - psubw m10, m5, m2 ; q1 - p1 - psllw m8, m10, 1; 2 * ( q1 - p1 ) - paddw m10, m8; 3 * ( q1 - p1 ) - psubw m12, m10; 9 * (q0 - p0) - 3 * ( q1 - p1 ) - paddw m12, m13; + 8 - psraw m12, 4; >> 4 , delta0 - PABSW m13, m12; abs(delta0) - - - psllw m10, m9, 2; 8 * tc - paddw m10, m9; 10 * tc - pcmpgtw m10, m13 - pand m11, m10 - - psraw m9, 1; tc * 2 -> tc - psraw m14, 1; -tc * 2 -> -tc - - pmaxsw m12, m14 - pminsw m12, m9; av_clip(delta0, -tc, tc) - - psraw m9, 1; tc -> tc / 2 -%if cpuflag(ssse3) - psignw m14, m9, [pw_m1]; -tc / 2 -%else - pmullw m14, m9, [pw_m1]; -tc / 2 -%endif - - pavgw m15, m1, m3; (p2 + p0 + 1) >> 1 - psubw m15, m2; ((p2 + p0 + 1) >> 1) - p1 - paddw m15, m12; ((p2 + p0 + 1) >> 1) - p1 + delta0 - psraw m15, 1; (((p2 + p0 + 1) >> 1) - p1 + delta0) >> 1 - pmaxsw m15, m14 - pminsw m15, m9; av_clip(deltap1, -tc/2, tc/2) - paddw m15, m2; p1' - - ;beta calculations - movd m10, betad - SPLATW m10, m10, 0 - - movd m13, r7d; 1dp0 + 1dp3 - movd m8, r8d; 0dp0 + 0dp3 - punpcklwd m8, m8 - punpcklwd m13, m13 - shufps m13, m8, 0; - pcmpgtw m8, m10, m13 - pand m8, m11 - ;end beta calculations - MASKED_COPY2 m2, m15, m8; write p1' - - pavgw m8, m6, m4; (q2 + q0 + 1) >> 1 - psubw m8, m5; ((q2 + q0 + 1) >> 1) - q1 - psubw m8, m12; ((q2 + q0 + 1) >> 1) - q1 - delta0) - psraw m8, 1; ((q2 + q0 + 1) >> 1) - q1 - delta0) >> 1 - pmaxsw m8, m14 - pminsw m8, m9; av_clip(deltaq1, -tc/2, tc/2) - paddw m8, m5; q1' - - movd m13, r9d; - movd m15, r10d; - punpcklwd m15, m15 - punpcklwd m13, m13 - shufps m13, m15, 0; dq0 + dq3 - - pcmpgtw m10, m13; compare to ((beta+(beta>>1))>>3) - pand m10, m11 - MASKED_COPY2 m5, m8, m10; write q1' - - paddw m15, m3, m12 ; p0 + delta0 - MASKED_COPY m3, m15 - - psubw m8, m4, m12 ; q0 - delta0 - MASKED_COPY m4, m8 -%endmacro - -;----------------------------------------------------------------------------- -; void ff_hevc_v_loop_filter_chroma(uint8_t *_pix, ptrdiff_t _stride, int32_t *tc, -; uint8_t *_no_p, uint8_t *_no_q); -;----------------------------------------------------------------------------- -%macro LOOP_FILTER_CHROMA 0 -cglobal hevc_v_loop_filter_chroma_8, 3, 5, 7, pix, stride, tc, pix0, r3stride - sub pixq, 2 - lea r3strideq, [3*strideq] - mov pix0q, pixq - add pixq, r3strideq - TRANSPOSE4x8B_LOAD PASS8ROWS(pix0q, pixq, strideq, r3strideq) - CHROMA_DEBLOCK_BODY 8 - TRANSPOSE8x4B_STORE PASS8ROWS(pix0q, pixq, strideq, r3strideq) - RET - -cglobal hevc_v_loop_filter_chroma_10, 3, 5, 7, pix, stride, tc, pix0, r3stride - sub pixq, 4 - lea r3strideq, [3*strideq] - mov pix0q, pixq - add pixq, r3strideq - TRANSPOSE4x8W_LOAD PASS8ROWS(pix0q, pixq, strideq, r3strideq) - CHROMA_DEBLOCK_BODY 10 - TRANSPOSE8x4W_STORE PASS8ROWS(pix0q, pixq, strideq, r3strideq), [pw_pixel_max_10] - RET - -cglobal hevc_v_loop_filter_chroma_12, 3, 5, 7, pix, stride, tc, pix0, r3stride - sub pixq, 4 - lea r3strideq, [3*strideq] - mov pix0q, pixq - add pixq, r3strideq - TRANSPOSE4x8W_LOAD PASS8ROWS(pix0q, pixq, strideq, r3strideq) - CHROMA_DEBLOCK_BODY 12 - TRANSPOSE8x4W_STORE PASS8ROWS(pix0q, pixq, strideq, r3strideq), [pw_pixel_max_12] - RET - -;----------------------------------------------------------------------------- -; void ff_hevc_h_loop_filter_chroma(uint8_t *_pix, ptrdiff_t _stride, int32_t *tc, -; uint8_t *_no_p, uint8_t *_no_q); -;----------------------------------------------------------------------------- -cglobal hevc_h_loop_filter_chroma_8, 3, 4, 7, pix, stride, tc, pix0 - mov pix0q, pixq - sub pix0q, strideq - sub pix0q, strideq - movq m0, [pix0q]; p1 - movq m1, [pix0q+strideq]; p0 - movq m2, [pixq]; q0 - movq m3, [pixq+strideq]; q1 - pxor m5, m5; zeros reg - punpcklbw m0, m5 - punpcklbw m1, m5 - punpcklbw m2, m5 - punpcklbw m3, m5 - CHROMA_DEBLOCK_BODY 8 - packuswb m1, m2 - movh[pix0q+strideq], m1 - movhps [pixq], m1 - RET - -cglobal hevc_h_loop_filter_chroma_10, 3, 4, 7, pix, stride, tc, pix0 - mov pix0q, pixq - sub pix0q, strideq - sub pix0q, strideq - movu m0, [pix0q]; p1 - movu m1, [pix0q+strideq]; p0 - movu m2, [pixq]; q0 - movu m3, [pixq+strideq]; q1 - CHROMA_DEBLOCK_BODY 10 - pxor m5, m5; zeros reg - CLIPW m1, m5, [pw_pixel_max_10] - CLIPW m2, m5, [pw_pixel_max_10] - movu [pix0q+strideq], m1 - movu [pixq], m2 - RET - -cglobal hevc_h_loop_filter_chroma_12, 3, 4, 7, pix, stride, tc, pix0 - mov pix0q, pixq - sub pix0q, strideq - sub pix0q, strideq - movu m0, [pix0q]; p1 - movu m1, [pix0q+strideq]; p0 - movu m2, [pixq]; q0 - movu m3, [pixq+strideq]; q1 - CHROMA_DEBLOCK_BODY 12 - pxor m5, m5; zeros reg - CLIPW m1, m5, [pw_pixel_max_12] - CLIPW m2, m5, [pw_pixel_max_12] - movu [pix0q+strideq], m1 - movu [pixq], m2 - RET -%endmacro - -INIT_XMM sse2 -LOOP_FILTER_CHROMA -INIT_XMM avx -LOOP_FILTER_CHROMA - -%if ARCH_X86_64 -%macro LOOP_FILTER_LUMA 0 -;----------------------------------------------------------------------------- -; void ff_hevc_v_loop_filter_luma(uint8_t *_pix, ptrdiff_t _stride, int beta, -; int32_t *tc, uint8_t *_no_p, uint8_t *_no_q); -;----------------------------------------------------------------------------- -cglobal hevc_v_loop_filter_luma_8, 4, 14, 16, pix, stride, beta, tc, pix0, src3stride - sub pixq, 4 - lea pix0q, [3 * r1] - mov src3strideq, pixq - add pixq, pix0q - TRANSPOSE8x8B_LOAD PASS8ROWS(src3strideq, pixq, r1, pix0q) - LUMA_DEBLOCK_BODY 8, v -.store: - TRANSPOSE8x8B_STORE PASS8ROWS(src3strideq, pixq, r1, pix0q) -.bypassluma: - RET - -cglobal hevc_v_loop_filter_luma_10, 4, 14, 16, pix, stride, beta, tc, pix0, src3stride - sub pixq, 8 - lea pix0q, [3 * strideq] - mov src3strideq, pixq - add pixq, pix0q - TRANSPOSE8x8W_LOAD PASS8ROWS(src3strideq, pixq, strideq, pix0q) - LUMA_DEBLOCK_BODY 10, v -.store: - TRANSPOSE8x8W_STORE PASS8ROWS(src3strideq, pixq, r1, pix0q), [pw_pixel_max_10] -.bypassluma: - RET - -cglobal hevc_v_loop_filter_luma_12, 4, 14, 16, pix, stride, beta, tc, pix0, src3stride - sub pixq, 8 - lea pix0q, [3 * strideq] - mov src3strideq, pixq - add pixq, pix0q - TRANSPOSE8x8W_LOAD PASS8ROWS(src3strideq, pixq, strideq, pix0q) - LUMA_DEBLOCK_BODY 12, v -.store: - TRANSPOSE8x8W_STORE PASS8ROWS(src3strideq, pixq, r1, pix0q), [pw_pixel_max_12] -.bypassluma: - RET - -;----------------------------------------------------------------------------- -; void ff_hevc_h_loop_filter_luma(uint8_t *_pix, ptrdiff_t _stride, int beta, -; int32_t *tc, uint8_t *_no_p, uint8_t *_no_q); -;----------------------------------------------------------------------------- -cglobal hevc_h_loop_filter_luma_8, 4, 14, 16, pix, stride, beta, tc, pix0, src3stride - lea src3strideq, [3 * strideq] - mov pix0q, pixq - sub pix0q, src3strideq - sub pix0q, strideq - movq m0, [pix0q]; p3 - movq m1, [pix0q + strideq]; p2 - movq m2, [pix0q + 2 * strideq]; p1 - movq m3, [pix0q + src3strideq]; p0 - movq m4, [pixq]; q0 - movq m5, [pixq + strideq]; q1 - movq m6, [pixq + 2 * strideq]; q2 - movq m7, [pixq + src3strideq]; q3 - pxor m8, m8 - punpcklbw m0, m8 - punpcklbw m1, m8 - punpcklbw m2, m8 - punpcklbw m3, m8 - punpcklbw m4, m8 - punpcklbw m5, m8 - punpcklbw m6, m8 - punpcklbw m7, m8 - LUMA_DEBLOCK_BODY 8, h -.store: - packuswb m1, m2 - packuswb m3, m4 - packuswb m5, m6 - movh [pix0q + strideq], m1 - movhps [pix0q + 2 * strideq], m1 - movh [pix0q + src3strideq], m3 - movhps [pixq ], m3 - movh [pixq + strideq], m5 - movhps [pixq + 2 * strideq], m5 -.bypassluma: - RET - -cglobal hevc_h_loop_filter_luma_10, 4, 14, 16, pix, stride, beta, tc, pix0, src3stride - lea src3strideq, [3 * strideq] - mov pix0q, pixq - sub pix0q, src3strideq - sub pix0q, strideq - movdqu m0, [pix0q]; p3 - movdqu m1, [pix0q + strideq]; p2 - movdqu m2, [pix0q + 2 * strideq]; p1 - movdqu m3, [pix0q + src3strideq]; p0 - movdqu m4, [pixq]; q0 - movdqu m5, [pixq + strideq]; q1 - movdqu m6, [pixq + 2 * strideq]; q2 - movdqu m7, [pixq + src3strideq]; q3 - LUMA_DEBLOCK_BODY 10, h -.store: - pxor m8, m8; zeros reg - CLIPW m1, m8, [pw_pixel_max_10] - CLIPW m2, m8, [pw_pixel_max_10] - CLIPW m3, m8, [pw_pixel_max_10] - CLIPW m4, m8, [pw_pixel_max_10] - CLIPW m5, m8, [pw_pixel_max_10] - CLIPW m6, m8, [pw_pixel_max_10] - movdqu [pix0q + strideq], m1; p2 - movdqu [pix0q + 2 * strideq], m2; p1 - movdqu [pix0q + src3strideq], m3; p0 - movdqu [pixq ], m4; q0 - movdqu [pixq + strideq], m5; q1 - movdqu [pixq + 2 * strideq], m6; q2 -.bypassluma: - RET - -cglobal hevc_h_loop_filter_luma_12, 4, 14, 16, pix, stride, beta, tc, pix0, src3stride - lea src3strideq, [3 * strideq] - mov pix0q, pixq - sub pix0q, src3strideq - sub pix0q, strideq - movdqu m0, [pix0q]; p3 - movdqu m1, [pix0q + strideq]; p2 - movdqu m2, [pix0q + 2 * strideq]; p1 - movdqu m3, [pix0q + src3strideq]; p0 - movdqu m4, [pixq]; q0 - movdqu m5, [pixq + strideq]; q1 - movdqu m6, [pixq + 2 * strideq]; q2 - movdqu m7, [pixq + src3strideq]; q3 - LUMA_DEBLOCK_BODY 12, h -.store: - pxor m8, m8; zeros reg - CLIPW m1, m8, [pw_pixel_max_12] - CLIPW m2, m8, [pw_pixel_max_12] - CLIPW m3, m8, [pw_pixel_max_12] - CLIPW m4, m8, [pw_pixel_max_12] - CLIPW m5, m8, [pw_pixel_max_12] - CLIPW m6, m8, [pw_pixel_max_12] - movdqu [pix0q + strideq], m1; p2 - movdqu [pix0q + 2 * strideq], m2; p1 - movdqu [pix0q + src3strideq], m3; p0 - movdqu [pixq ], m4; q0 - movdqu [pixq + strideq], m5; q1 - movdqu [pixq + 2 * strideq], m6; q2 -.bypassluma: - RET - -%endmacro - -INIT_XMM sse2 -LOOP_FILTER_LUMA -INIT_XMM ssse3 -LOOP_FILTER_LUMA -INIT_XMM avx -LOOP_FILTER_LUMA -%endif diff --git a/libavcodec/x86/hevc_idct.asm b/libavcodec/x86/hevc_idct.asm deleted file mode 100644 index 1eb1973f27..0000000000 --- a/libavcodec/x86/hevc_idct.asm +++ /dev/null @@ -1,853 +0,0 @@ -;******************************************************************************* -;* SIMD-optimized IDCT functions for HEVC decoding -;* Copyright (c) 2014 Pierre-Edouard LEPERE -;* Copyright (c) 2014 James Almer -;* Copyright (c) 2016 Alexandra Hájková -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pd_64: times 4 dd 64 -pd_2048: times 4 dd 2048 -pd_512: times 4 dd 512 - -; 4x4 transform coeffs -cextern pw_64 -pw_64_m64: times 4 dw 64, -64 -pw_83_36: times 4 dw 83, 36 -pw_36_m83: times 4 dw 36, -83 - -; 8x8 transform coeffs -pw_89_75: times 4 dw 89, 75 -pw_50_18: times 4 dw 50, 18 - -pw_75_m18: times 4 dw 75, -18 -pw_m89_m50: times 4 dw -89, -50 - -pw_50_m89: times 4 dw 50, -89 -pw_18_75: times 4 dw 18, 75 - -pw_18_m50: times 4 dw 18, -50 -pw_75_m89: times 4 dw 75, -89 - -; 16x16 transformation coeffs -trans_coeffs16: times 4 dw 90, 87 -times 4 dw 80, 70 -times 4 dw 57, 43 -times 4 dw 25, 9 - -times 4 dw 87, 57 -times 4 dw 9, -43 -times 4 dw -80, -90 -times 4 dw -70, -25 - -times 4 dw 80, 9 -times 4 dw -70, -87 -times 4 dw -25, 57 -times 4 dw 90, 43 - -times 4 dw 70, -43 -times 4 dw -87, 9 -times 4 dw 90, 25 -times 4 dw -80, -57 - -times 4 dw 57, -80 -times 4 dw -25, 90 -times 4 dw -9, -87 -times 4 dw 43, 70 - -times 4 dw 43, -90 -times 4 dw 57, 25 -times 4 dw -87, 70 -times 4 dw 9, -80 - -times 4 dw 25, -70 -times 4 dw 90, -80 -times 4 dw 43, 9 -times 4 dw -57, 87 - -times 4 dw 9, -25 -times 4 dw 43, -57 -times 4 dw 70, -80 -times 4 dw 87, -90 - -; 32x32 transform coeffs -trans_coeff32: times 8 dw 90 -times 4 dw 88, 85 -times 4 dw 82, 78 -times 4 dw 73, 67 -times 4 dw 61, 54 -times 4 dw 46, 38 -times 4 dw 31, 22 -times 4 dw 13, 4 - -times 4 dw 90, 82 -times 4 dw 67, 46 -times 4 dw 22, -4 -times 4 dw -31, -54 -times 4 dw -73, -85 -times 4 dw -90, -88 -times 4 dw -78, -61 -times 4 dw -38, -13 - -times 4 dw 88, 67 -times 4 dw 31, -13 -times 4 dw -54, -82 -times 4 dw -90, -78 -times 4 dw -46, -4 -times 4 dw 38, 73 -times 4 dw 90, 85 -times 4 dw 61, 22 - -times 4 dw 85, 46 -times 4 dw -13, -67 -times 4 dw -90, -73 -times 4 dw -22, 38 -times 4 dw 82, 88 -times 4 dw 54, -4 -times 4 dw -61, -90 -times 4 dw -78, -31 - -times 4 dw 82, 22 -times 4 dw -54, -90 -times 4 dw -61, 13 -times 4 dw 78, 85 -times 4 dw 31, -46 -times 4 dw -90, -67 -times 4 dw 4, 73 -times 4 dw 88, 38 - -times 4 dw 78, -4 -times 4 dw -82, -73 -times 4 dw 13, 85 -times 4 dw 67, -22 -times 4 dw -88, -61 -times 4 dw 31, 90 -times 4 dw 54, -38 -times 4 dw -90, -46 - -times 4 dw 73, -31 -times 4 dw -90, -22 -times 4 dw 78, 67 -times 4 dw -38, -90 -times 4 dw -13, 82 -times 4 dw 61, -46 -times 4 dw -88, -4 -times 4 dw 85, 54 - -times 4 dw 67, -54 -times 4 dw -78, 38 -times 4 dw 85, -22 -times 4 dw -90, 4 -times 4 dw 90, 13 -times 4 dw -88, -31 -times 4 dw 82, 46 -times 4 dw -73, -61 - -times 4 dw 61, -73 -times 4 dw -46, 82 -times 4 dw 31, -88 -times 4 dw -13, 90 -times 4 dw -4, -90 -times 4 dw 22, 85 -times 4 dw -38, -78 -times 4 dw 54, 67 - -times 4 dw 54, -85 -times 4 dw -4, 88 -times 4 dw -46, -61 -times 4 dw 82, 13 -times 4 dw -90, 38 -times 4 dw 67, -78 -times 4 dw -22, 90 -times 4 dw -31, -73 - -times 4 dw 46, -90 -times 4 dw 38, 54 -times 4 dw -90, 31 -times 4 dw 61, -88 -times 4 dw 22, 67 -times 4 dw -85, 13 -times 4 dw 73, -82 -times 4 dw 4, 78 - -times 4 dw 38, -88 -times 4 dw 73, -4 -times 4 dw -67, 90 -times 4 dw -46, -31 -times 4 dw 85, -78 -times 4 dw 13, 61 -times 4 dw -90, 54 -times 4 dw 22, -82 - -times 4 dw 31, -78 -times 4 dw 90, -61 -times 4 dw 4, 54 -times 4 dw -88, 82 -times 4 dw -38, -22 -times 4 dw 73, -90 -times 4 dw 67, -13 -times 4 dw -46, 85 - -times 4 dw 22, -61 -times 4 dw 85, -90 -times 4 dw 73, -38 -times 4 dw -4, 46 -times 4 dw -78, 90 -times 4 dw -82, 54 -times 4 dw -13, -31 -times 4 dw 67, -88 - -times 4 dw 13, -38 -times 4 dw 61, -78 -times 4 dw 88, -90 -times 4 dw 85, -73 -times 4 dw 54, -31 -times 4 dw 4, 22 -times 4 dw -46, 67 -times 4 dw -82, 90 - -times 4 dw 4, -13 -times 4 dw 22, -31 -times 4 dw 38, -46 -times 4 dw 54, -61 -times 4 dw 67, -73 -times 4 dw 78, -82 -times 4 dw 85, -88 -times 4 dw 90, -90 - -SECTION .text - -; void ff_hevc_idct_HxW_dc_{8,10}_(int16_t *coeffs) -; %1 = HxW -; %2 = number of loops -; %3 = bitdepth -%macro IDCT_DC 3 -cglobal hevc_idct_%1x%1_dc_%3, 1, 2, 1, coeff, tmp - movsx tmpd, word [coeffq] - add tmpd, (1 << (14 - %3)) + 1 - sar tmpd, (15 - %3) - movd xm0, tmpd - SPLATW m0, xm0 - DEFINE_ARGS coeff, cnt - mov cntd, %2 -.loop: - mova [coeffq+mmsize*0], m0 - mova [coeffq+mmsize*1], m0 - mova [coeffq+mmsize*2], m0 - mova [coeffq+mmsize*3], m0 - add coeffq, mmsize*8 - mova [coeffq+mmsize*-4], m0 - mova [coeffq+mmsize*-3], m0 - mova [coeffq+mmsize*-2], m0 - mova [coeffq+mmsize*-1], m0 - dec cntd - jg .loop - RET -%endmacro - -; %1 = HxW -; %2 = bitdepth -%macro IDCT_DC_NL 2 ; No loop -cglobal hevc_idct_%1x%1_dc_%2, 1, 2, 1, coeff, tmp - movsx tmpd, word [coeffq] - add tmpd, (1 << (14 - %2)) + 1 - sar tmpd, (15 - %2) - movd m0, tmpd - SPLATW m0, xm0 - mova [coeffq+mmsize*0], m0 - mova [coeffq+mmsize*1], m0 - mova [coeffq+mmsize*2], m0 - mova [coeffq+mmsize*3], m0 -%if mmsize == 16 - mova [coeffq+mmsize*4], m0 - mova [coeffq+mmsize*5], m0 - mova [coeffq+mmsize*6], m0 - mova [coeffq+mmsize*7], m0 -%endif - RET -%endmacro - -; IDCT 4x4, expects input in m0, m1 -; %1 - shift -; %2 - 1/0 - SCALE and Transpose or not -; %3 - 1/0 add constant or not -%macro TR_4x4 3 - ; interleaves src0 with src2 to m0 - ; and src1 with scr3 to m2 - ; src0: 00 01 02 03 m0: 00 20 01 21 02 22 03 23 - ; src1: 10 11 12 13 --> - ; src2: 20 21 22 23 m1: 10 30 11 31 12 32 13 33 - ; src3: 30 31 32 33 - - SBUTTERFLY wd, 0, 1, 2 - - pmaddwd m2, m0, [pw_64] ; e0 - pmaddwd m3, m1, [pw_83_36] ; o0 - pmaddwd m0, [pw_64_m64] ; e1 - pmaddwd m1, [pw_36_m83] ; o1 - -%if %3 == 1 - %assign %%add 1 << (%1 - 1) - mova m4, [pd_ %+ %%add] - paddd m2, m4 - paddd m0, m4 -%endif - - SUMSUB_BADC d, 3, 2, 1, 0, 4 - -%if %2 == 1 - psrad m3, %1 ; e0 + o0 - psrad m1, %1 ; e1 + o1 - psrad m2, %1 ; e0 - o0 - psrad m0, %1 ; e1 - o1 - ;clip16 - packssdw m3, m1 - packssdw m0, m2 - ; Transpose - SBUTTERFLY wd, 3, 0, 1 - SBUTTERFLY wd, 3, 0, 1 - SWAP 3, 1, 0 -%else - SWAP 3, 2, 0 -%endif -%endmacro - -%macro DEFINE_BIAS 1 - %assign shift (20 - %1) - %assign c_add (1 << (shift - 1)) - %define arr_add pd_ %+ c_add -%endmacro - -; %1 - bit_depth -; %2 - register add constant -; is loaded to -; shift = 20 - bit_depth -%macro LOAD_BIAS 2 - DEFINE_BIAS %1 - mova %2, [arr_add] -%endmacro - -; %1, %2 - registers to load packed 16 bit values to -; %3, %4, %5, %6 - vertical offsets -; %7 - horizontal offset -%macro LOAD_BLOCK 7 - movq %1, [r0 + %3 + %7] - movhps %1, [r0 + %5 + %7] - movq %2, [r0 + %4 + %7] - movhps %2, [r0 + %6 + %7] -%endmacro - -; void ff_hevc_idct_4x4__{8,10}_(int16_t *coeffs, int col_limit) -; %1 = bitdepth -%macro IDCT_4x4 1 -cglobal hevc_idct_4x4_%1, 1, 1, 5, coeffs - mova m0, [coeffsq] - mova m1, [coeffsq + 16] - - TR_4x4 7, 1, 1 - TR_4x4 20 - %1, 1, 1 - - mova [coeffsq], m0 - mova [coeffsq + 16], m1 - RET -%endmacro - -; scale, pack (clip16) and store the residuals 0 e8[0] + o8[0] --> + %1 -; 4 at one time (4 columns) 1 e8[1] + o8[1] -; from %5: e8/16 + o8/16, with %1 offset ... -; and %3: e8/16 - o8/16, with %2 offset 6 e8[1] - o8[1] -; %4 - shift 7 e8[0] - o8[0] --> + %2 -%macro STORE_8 7 - psrad %5, %4 - psrad %3, %4 - packssdw %5, %3 - movq [coeffsq + %1], %5 - movhps [coeffsq + %2], %5 -%endmacro - -; %1 - horizontal offset -; %2 - shift -; %3, %4 - transform coeffs -; %5 - vertical offset for e8 + o8 -; %6 - vertical offset for e8 - o8 -; %7 - register with e8 inside -; %8 - block_size -; %9 - register to store e8 +o8 -; %10 - register to store e8 - o8 -%macro E8_O8 10 - pmaddwd m6, m4, %3 - pmaddwd m7, m5, %4 - - paddd m6, m7 - paddd m7, m6, %7 ; o8 + e8 - psubd %7, m6 ; e8 - o8 -%if %8 == 8 - STORE_8 %5 + %1, %6 + %1, %7, %2, m7, 0, 0 -%else - SWAP m7, %9 - SWAP %7, %10 -%endif -%endmacro - -; 8x4 residuals are processed and stored -; %1 - horizontal offset -; %2 - shift -; %3 - offset of the even row -; %4 - step: 1 for 8x8, 2 for 16x16, 4 for 32x32 -; %5 - offset of the odd row -; %6 - block size -; %7 - 1/0 add a constant in TR_4x4 or not -; I want to add a constant for 8x8 transform but not for 16x16 and 32x32 -%macro TR_8x4 7 - ; load 4 columns of even rows - LOAD_BLOCK m0, m1, 0, 2 * %4 * %3, %4 * %3, 3 * %4 * %3, %1 - - TR_4x4 %2, 0, %7 ; e8: m0, m1, m2, m3, for 4 columns only - - ; load 4 columns of odd rows - LOAD_BLOCK m4, m5, %4 * %5, 3 * %4 * %5, 5 * %4 * %5, 7 * %4 * %5, %1 - - ; 00 01 02 03 - ; 10 11 12 13 m4: 10 30 11 31 12 32 13 33 - - ; ... -- > - ; m5: 50 70 51 71 52 72 53 73 - ; 70 71 72 73 - SBUTTERFLY wd, 4, 5, 6 - - E8_O8 %1, %2, [pw_89_75], [pw_50_18], 0, %5 * 7, m0, %6, m8, m15 - E8_O8 %1, %2, [pw_75_m18], [pw_m89_m50], %5, %5 * 6, m1, %6, m9, m14 - E8_O8 %1, %2, [pw_50_m89], [pw_18_75], %5 * 2, %5 * 5, m2, %6, m10, m13 - E8_O8 %1, %2, [pw_18_m50], [pw_75_m89], %5 * 3, %5 * 4, m3, %6, m11, m12 -%endmacro - -%macro STORE_PACKED 7 - movq [r0 + %3 + %7], %1 - movhps [r0 + %4 + %7], %1 - movq [r0 + %5 + %7], %2 - movhps [r0 + %6 + %7], %2 -%endmacro - -; transpose 4x4 block packed -; in %1 and %2 registers -; %3 - temporary register -%macro TRANSPOSE_4x4 3 - SBUTTERFLY wd, %1, %2, %3 - SBUTTERFLY dq, %1, %2, %3 -%endmacro - -; %1 - horizontal offset of the block i -; %2 - vertical offset of the block i -; %3 - width in bytes -; %4 - vertical offset for the block j -; %5 - horizontal offset for the block j -%macro SWAP_BLOCKS 5 - ; M_j - LOAD_BLOCK m4, m5, %4, %4 + %3, %4 + 2 * %3, %4 + 3 * %3, %5 - TRANSPOSE_4x4 4, 5, 6 - - ; M_i - LOAD_BLOCK m6, m7, %2, %2 + %3, %2 + 2 * %3, %2 + 3 * %3, %1 - - STORE_PACKED m4, m5, %2, %2 + %3, %2 + 2 * %3, %2 + 3 * %3, %1 - - ; transpose and store M_i - SWAP m6, m4 - SWAP m7, m5 - TRANSPOSE_4x4 4, 5, 6 - STORE_PACKED m4, m5, %4, %4 + %3, %4 + 2 * %3, %4 + 3 * %3, %5 -%endmacro - -; %1 - horizontal offset -; %2 - vertical offset of the block -; %3 - width in bytes -%macro TRANSPOSE_BLOCK 3 - LOAD_BLOCK m4, m5, %2, %2 + %3, %2 + 2 * %3, %2 + 3 * %3, %1 - TRANSPOSE_4x4 4, 5, 6 - STORE_PACKED m4, m5, %2, %2 + %3, %2 + 2 * %3, %2 + 3 * %3, %1 -%endmacro - -%macro TRANSPOSE_8x8 0 -cglobal hevc_idct_transpose_8x8, 0, 0, 0 - ; M1 M2 ^T = M1^t M3^t - ; M3 M4 M2^t M4^t - - ; M1 4x4 block - TRANSPOSE_BLOCK 0, 0, 16 - - ; M2 and M3 - SWAP_BLOCKS 0, 64, 16, 0, 8 - - ; M4 - TRANSPOSE_BLOCK 8, 64, 16 - - ret -%endmacro - -; void ff_hevc_idct_8x8_{8,10}_(int16_t *coeffs, int col_limit) -; %1 = bitdepth -%macro IDCT_8x8 1 -cglobal hevc_idct_8x8_%1, 1, 1, 8, coeffs - TR_8x4 0, 7, 32, 1, 16, 8, 1 - TR_8x4 8, 7, 32, 1, 16, 8, 1 - - call hevc_idct_transpose_8x8_ %+ cpuname - - DEFINE_BIAS %1 - TR_8x4 0, shift, 32, 1, 16, 8, 1 - TR_8x4 8, shift, 32, 1, 16, 8, 1 - - TAIL_CALL hevc_idct_transpose_8x8_ %+ cpuname, 1 -%endmacro - -; store intermedite e32 coeffs on stack -; as 16x4 matrix -; from m10: e8 + o8, with %6 offset -; and %3: e8 - o8, with %7 offset -; %4 - shift, unused here -%macro STORE_16 7 - mova [rsp + %6], %5 - mova [rsp + %7], %3 -%endmacro - -; %1, %2 - transform constants -; %3, %4 - regs with interleaved coeffs -; %5 - 1/0 SWAP or add -; %6, %7 - registers for intermidiate sums -; %8 - accumulator register -%macro ADD_ROWS 8 - pmaddwd %6, %3, %1 - pmaddwd %7, %4, %2 - paddd %6, %7 -%if %5 == 1 - SWAP %6, %8 -%else - paddd %8, %6 -%endif -%endmacro - -; %1 - transform coeffs -; %2, %3 offsets for storing e+o/e-o back to coeffsq -; %4 - shift -; %5 - add -; %6 - block_size -; %7 - register with e16 -; %8, %9 - stack offsets for storing e+o/e-o -%macro E16_O16 9 - ADD_ROWS [%1], [%1 + 16], m0, m1, 1, m5, m6, m7 - ADD_ROWS [%1 + 2 * 16], [%1 + 3 * 16], m2, m3, 0, m5, m6, m7 - -%if %6 == 8 - paddd %7, %5 -%endif - - paddd m4, m7, %7 ; o16 + e16 - psubd %7, m7 ; e16 - o16 - STORE_%6 %2, %3, %7, %4, m4, %8, %9 -%endmacro - -%macro TR_16x4 10 - ; produce 8x4 matrix of e16 coeffs - ; for 4 first rows and store it on stack (128 bytes) - TR_8x4 %1, 7, %4, %5, %6, %8, 0 - - ; load 8 even rows - LOAD_BLOCK m0, m1, %9 * %6, %9 * 3 * %6, %9 * 5 * %6, %9 * 7 * %6, %1 - LOAD_BLOCK m2, m3, %9 * 9 * %6, %9 * 11 * %6, %9 * 13 * %6, %9 * 15 * %6, %1 - - SBUTTERFLY wd, 0, 1, 4 - SBUTTERFLY wd, 2, 3, 4 - - E16_O16 trans_coeffs16, 0 + %1, 15 * %6 + %1, %2, %3, %7, m8, 0, 15 * 16 - mova m8, %3 - E16_O16 trans_coeffs16 + 64, %6 + %1, 14 * %6 + %1, %2, m8, %7, m9, 16, 14 * 16 - E16_O16 trans_coeffs16 + 2 * 64, 2 * %6 + %1, 13 * %6 + %1, %2, m8, %7, m10, 2 * 16, 13 * 16 - E16_O16 trans_coeffs16 + 3 * 64, 3 * %6 + %1, 12 * %6 + %1, %2, m8, %7, m11, 3 * 16, 12 * 16 - E16_O16 trans_coeffs16 + 4 * 64, 4 * %6 + %1, 11 * %6 + %1, %2, m8, %7, m12, 4 * 16, 11 * 16 - E16_O16 trans_coeffs16 + 5 * 64, 5 * %6 + %1, 10 * %6 + %1, %2, m8, %7, m13, 5 * 16, 10 * 16 - E16_O16 trans_coeffs16 + 6 * 64, 6 * %6 + %1, 9 * %6 + %1, %2, m8, %7, m14, 6 * 16, 9 * 16 - E16_O16 trans_coeffs16 + 7 * 64, 7 * %6 + %1, 8 * %6 + %1, %2, m8, %7, m15, 7 * 16, 8 * 16 -%endmacro - -%macro TRANSPOSE_16x16 0 -cglobal hevc_idct_transpose_16x16, 0, 0, 0 -; M1 M2 M3 M4 ^T m1 m5 m9 m13 M_i^T = m_i -; M5 M6 M7 M8 --> m2 m6 m10 m14 -; M9 M10 M11 M12 m3 m7 m11 m15 -; M13 M14 M15 M16 m4 m8 m12 m16 - - ; M1 4x4 block - TRANSPOSE_BLOCK 0, 0, 32 - - ; M5, M2 - SWAP_BLOCKS 0, 128, 32, 0, 8 - ; M9, M3 - SWAP_BLOCKS 0, 256, 32, 0, 16 - ; M13, M4 - SWAP_BLOCKS 0, 384, 32, 0, 24 - - ;M6 - TRANSPOSE_BLOCK 8, 128, 32 - - ; M10, M7 - SWAP_BLOCKS 8, 256, 32, 128, 16 - ; M14, M8 - SWAP_BLOCKS 8, 384, 32, 128, 24 - - ;M11 - TRANSPOSE_BLOCK 16, 256, 32 - - ; M15, M12 - SWAP_BLOCKS 16, 384, 32, 256, 24 - - ;M16 - TRANSPOSE_BLOCK 24, 384, 32 - - ret -%endmacro - -; void ff_hevc_idct_16x16_{8,10}_(int16_t *coeffs, int col_limit) -; %1 = bitdepth -%macro IDCT_16x16 1 -cglobal hevc_idct_16x16_%1, 1, 2, 16, coeffs - mov r1d, 3 -.loop16: - TR_16x4 8 * r1, 7, [pd_64], 64, 2, 32, 8, 16, 1, 0 - dec r1d - jge .loop16 - - call hevc_idct_transpose_16x16_ %+ cpuname - - DEFINE_BIAS %1 - mov r1d, 3 -.loop16_2: - TR_16x4 8 * r1, shift, [arr_add], 64, 2, 32, 8, 16, 1, 1 - dec r1d - jge .loop16_2 - - TAIL_CALL hevc_idct_transpose_16x16_ %+ cpuname, 1 -%endmacro - -; scale, pack (clip16) and store the residuals 0 e32[0] + o32[0] --> %1 -; 4 at one time (4 columns) 1 e32[1] + o32[1] -; %1 - address to store e32 + o32 -; %2 - address to store e32 - e32 -; %5 - reg with e32 + o32 ... -; %3 - reg with e32 - o32 30 e32[1] - o32[1] -; %4 - shift 31 e32[0] - o32[0] --> %2 -%macro STORE_32 5 - psrad %5, %4 - psrad %3, %4 - packssdw %5, %3 - movq [%1], %5 - movhps [%2], %5 -%endmacro - -; %1 - transform coeffs -; %2 - stack offset for e32 -; %2, %3 offsets for storing e+o/e-o back to coeffsq -; %4 - shift -; %5 - stack offset of e32 -%macro E32_O32 5 - ADD_ROWS [%1], [%1 + 16], m0, m1, 1, m8, m9, m10 - ADD_ROWS [%1 + 2 * 16], [%1 + 3 * 16], m2, m3, 0, m8, m9, m10 - ADD_ROWS [%1 + 4 * 16], [%1 + 5 * 16], m4, m5, 0, m8, m9, m10 - ADD_ROWS [%1 + 6 * 16], [%1 + 7 * 16], m6, m7, 0, m8, m9, m10 - - paddd m11, m14, [rsp + %5] - paddd m12, m10, m11 ; o32 + e32 - psubd m11, m10 ; e32 - o32 - STORE_32 %2, %3, m11, %4, m12 -%endmacro - -; %1 - horizontal offset -; %2 - bitdepth -%macro TR_32x4 3 - TR_16x4 %1, 7, [pd_64], 128, 4, 64, 16, 16, 2, 0 - - LOAD_BLOCK m0, m1, 64, 3 * 64, 5 * 64, 7 * 64, %1 - LOAD_BLOCK m2, m3, 9 * 64, 11 * 64, 13 * 64, 15 * 64, %1 - LOAD_BLOCK m4, m5, 17 * 64, 19 * 64, 21 * 64, 23 * 64, %1 - LOAD_BLOCK m6, m7, 25 * 64, 27 * 64, 29 * 64, 31 * 64, %1 - - SBUTTERFLY wd, 0, 1, 8 - SBUTTERFLY wd, 2, 3, 8 - SBUTTERFLY wd, 4, 5, 8 - SBUTTERFLY wd, 6, 7, 8 - -%if %3 == 1 - %assign shift 7 - mova m14, [pd_64] -%else - LOAD_BIAS %2, m14 -%endif - - lea r2, [trans_coeff32 + 15 * 128] - lea r3, [coeffsq + %1] - lea r4, [r3 + 16 * 64] - mov r5d, 15 * 16 -%%loop: - E32_O32 r2, r3 + r5 * 4, r4, shift, r5 - sub r2, 128 - add r4, 64 - sub r5d, 16 - jge %%loop -%endmacro - -%macro TRANSPOSE_32x32 0 -cglobal hevc_idct_transpose_32x32, 0, 0, 0 - ; M0 M1 ... M7 - ; M8 M15 - ; - ; ... - ; - ; M56 M63 - - TRANSPOSE_BLOCK 0, 0, 64 ; M1 - mov r1d, 7 - mov r2d, 7 * 256 -.loop_transpose: - SWAP_BLOCKS 0, r2, 64, 0, r1 * 8 - sub r2d, 256 - dec r1d - jg .loop_transpose - - TRANSPOSE_BLOCK 8, 256, 64 ; M9 - mov r1d, 6 - mov r2d, 512 - mov r3d, 16 -.loop_transpose2: - SWAP_BLOCKS 8, r2, 64, 256, r3 - add r3d, 8 - add r2d, 256 - dec r1d - jg .loop_transpose2 - - TRANSPOSE_BLOCK 2 * 8, 2 * 256, 64 ; M9 - mov r1d, 5 - mov r2d, 768 - mov r3d, 24 -.loop_transpose3: - SWAP_BLOCKS 2 * 8, r2, 64, 2 * 256, r3 - add r3d, 8 - add r2d, 256 - dec r1d - jg .loop_transpose3 - - TRANSPOSE_BLOCK 3 * 8, 3 * 256, 64 ; M27 - mov r1d, 4 - mov r2d, 1024 - mov r3d, 32 -.loop_transpose4: - SWAP_BLOCKS 3 * 8, r2, 64, 3 * 256, r3 - add r3d, 8 - add r2d, 256 - dec r1d - jg .loop_transpose4 - - TRANSPOSE_BLOCK 4 * 8, 4 * 256, 64 ; M36 - mov r1d, 3 - mov r2d, 1280 - mov r3d, 40 -.loop_transpose5: - SWAP_BLOCKS 4 * 8, r2, 64, 4 * 256, r3 - add r3d, 8 - add r2d, 256 - dec r1d - jg .loop_transpose5 - - TRANSPOSE_BLOCK 5 * 8, 5 * 256, 64 ; M45 - SWAP_BLOCKS 5 * 8, 6 * 256, 64, 5 * 256, 6 * 8 - SWAP_BLOCKS 5 * 8, 7 * 256, 64, 5 * 256, 7 * 8 - - TRANSPOSE_BLOCK 6 * 8, 6 * 256, 64 ; M54 - SWAP_BLOCKS 6 * 8, 7 * 256, 64, 6 * 256, 7 * 8 - - TRANSPOSE_BLOCK 7 * 8, 7 * 256, 64 ; M63 - - ret -%endmacro - -; void ff_hevc_idct_32x32_{8,10}_(int16_t *coeffs, int col_limit) -; %1 = bitdepth -%macro IDCT_32x32 1 -cglobal hevc_idct_32x32_%1, 1, 6, 16, 256, coeffs - mov r1d, 7 -.loop32: - TR_32x4 8 * r1, %1, 1 - dec r1d - jge .loop32 - - call hevc_idct_transpose_32x32_ %+ cpuname - - mov r1d, 7 -.loop32_2: - TR_32x4 8 * r1, %1, 0 - dec r1d - jge .loop32_2 - - TAIL_CALL hevc_idct_transpose_32x32_ %+ cpuname, 1 -%endmacro - -%macro INIT_IDCT_DC 1 -INIT_MMX mmxext -IDCT_DC_NL 4, %1 -IDCT_DC 8, 2, %1 - -INIT_XMM sse2 -IDCT_DC_NL 8, %1 -IDCT_DC 16, 4, %1 -IDCT_DC 32, 16, %1 - -%if HAVE_AVX2_EXTERNAL - INIT_YMM avx2 - IDCT_DC 16, 2, %1 - IDCT_DC 32, 8, %1 -%endif ;HAVE_AVX2_EXTERNAL -%endmacro - -%macro INIT_IDCT 2 -INIT_XMM %2 -%if %1 == 8 - TRANSPOSE_8x8 - %if ARCH_X86_64 - TRANSPOSE_16x16 - TRANSPOSE_32x32 - %endif -%endif -%if ARCH_X86_64 - IDCT_32x32 %1 - IDCT_16x16 %1 -%endif -IDCT_8x8 %1 -IDCT_4x4 %1 -%endmacro - -INIT_IDCT_DC 8 -INIT_IDCT_DC 10 -INIT_IDCT_DC 12 -INIT_IDCT 8, sse2 -INIT_IDCT 8, avx -INIT_IDCT 10, sse2 -INIT_IDCT 10, avx -;INIT_IDCT 12, sse2 -;INIT_IDCT 12, avx diff --git a/libavcodec/x86/hevc_mc.asm b/libavcodec/x86/hevc_mc.asm deleted file mode 100644 index ff6ed0711a..0000000000 --- a/libavcodec/x86/hevc_mc.asm +++ /dev/null @@ -1,1672 +0,0 @@ -; /* -; * Provide SSE luma and chroma mc functions for HEVC decoding -; * Copyright (c) 2013 Pierre-Edouard LEPERE -; * -; * 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 -cextern pw_255 -cextern pw_512 -cextern pw_2048 -cextern pw_8192 -cextern pw_1023 -cextern pw_1024 -cextern pw_4096 -%define pw_8 pw_512 -%define pw_10 pw_2048 -%define pw_12 pw_8192 -%define pw_bi_10 pw_1024 -%define pw_bi_12 pw_4096 -%define max_pixels_8 pw_255 -%define max_pixels_10 pw_1023 -pw_bi_8: times 16 dw (1 << 8) -max_pixels_12: times 16 dw ((1 << 12)-1) -cextern pd_1 -cextern pb_0 - -%macro EPEL_TABLE 4 -hevc_epel_filters_%4_%1 times %2 d%3 -2, 58 - times %2 d%3 10, -2 - times %2 d%3 -4, 54 - times %2 d%3 16, -2 - times %2 d%3 -6, 46 - times %2 d%3 28, -4 - times %2 d%3 -4, 36 - times %2 d%3 36, -4 - times %2 d%3 -4, 28 - times %2 d%3 46, -6 - times %2 d%3 -2, 16 - times %2 d%3 54, -4 - times %2 d%3 -2, 10 - times %2 d%3 58, -2 -%endmacro - - -EPEL_TABLE 8,16, b, avx2 -EPEL_TABLE 10, 8, w, avx2 - -EPEL_TABLE 8, 8, b, sse4 -EPEL_TABLE 10, 4, w, sse4 -EPEL_TABLE 12, 4, w, sse4 - -%macro QPEL_TABLE 4 -hevc_qpel_filters_%4_%1 times %2 d%3 -1, 4 - times %2 d%3 -10, 58 - times %2 d%3 17, -5 - times %2 d%3 1, 0 - times %2 d%3 -1, 4 - times %2 d%3 -11, 40 - times %2 d%3 40,-11 - times %2 d%3 4, -1 - times %2 d%3 0, 1 - times %2 d%3 -5, 17 - times %2 d%3 58,-10 - times %2 d%3 4, -1 -%endmacro - -QPEL_TABLE 8, 8, b, sse4 -QPEL_TABLE 10, 4, w, sse4 -QPEL_TABLE 12, 4, w, sse4 - -QPEL_TABLE 8,16, b, avx2 -QPEL_TABLE 10, 8, w, avx2 - -SECTION .text - -%define MAX_PB_SIZE 64 - -%define hevc_qpel_filters_sse4_14 hevc_qpel_filters_sse4_10 - -%define hevc_qpel_filters_avx2_14 hevc_qpel_filters_avx2_10 - -%if ARCH_X86_64 - -%macro SIMPLE_BILOAD 4 ;width, tab, r1, r2 -%if %1 <= 4 - movq %3, [%2] ; load data from source2 -%elif %1 <= 8 - movdqa %3, [%2] ; load data from source2 -%elif %1 <= 12 -%if cpuflag(avx2) - mova %3, [%2] -%else - movdqa %3, [%2] ; load data from source2 - movq %4, [%2+16] ; load data from source2 -%endif ;avx -%elif %1 <= 16 -%if cpuflag(avx2) - mova %3, [%2] -%else - movdqa %3, [%2] ; load data from source2 - movdqa %4, [%2+16] ; load data from source2 -%endif ; avx -%else ; %1 = 32 - mova %3, [%2] - mova %4, [%2+32] -%endif -%endmacro - -%macro SIMPLE_LOAD 4 ;width, bitd, tab, r1 -%if %1 == 2 || (%2 == 8 && %1 <= 4) - movd %4, [%3] ; load data from source -%elif %1 == 4 || (%2 == 8 && %1 <= 8) - movq %4, [%3] ; load data from source -%elif notcpuflag(avx) - movu %4, [%3] ; load data from source -%elif %1 <= 8 || (%2 == 8 && %1 <= 16) - movdqu %4, [%3] -%else - movu %4, [%3] -%endif -%endmacro - - -%macro EPEL_FILTER 5 ; bit depth, filter index, xmma, xmmb, gprtmp -%if cpuflag(avx2) -%assign %%offset 32 -%ifdef PIC - lea %5q, [hevc_epel_filters_avx2_%1] - %define FILTER %5q -%else - %define FILTER hevc_epel_filters_avx2_%1 -%endif -%else -%assign %%offset 16 -%ifdef PIC - lea %5q, [hevc_epel_filters_sse4_%1] - %define FILTER %5q -%else - %define FILTER hevc_epel_filters_sse4_%1 -%endif -%endif ;cpuflag(avx2) - sub %2q, 1 -%if cpuflag(avx2) - shl %2q, 6 ; multiply by 64 - %else - shl %2q, 5 ; multiply by 32 -%endif - mova %3, [FILTER + %2q] ; get 2 first values of filters - mova %4, [FILTER + %2q+%%offset] ; get 2 last values of filters -%endmacro - -%macro EPEL_HV_FILTER 1 -%if cpuflag(avx2) -%assign %%offset 32 -%assign %%shift 6 -%define %%table hevc_epel_filters_avx2_%1 -%else -%assign %%offset 16 -%assign %%shift 5 -%define %%table hevc_epel_filters_sse4_%1 -%endif - -%ifdef PIC - lea r3srcq, [%%table] - %define FILTER r3srcq -%else - %define FILTER %%table -%endif - sub mxq, 1 - sub myq, 1 - shl mxq, %%shift ; multiply by 32 - shl myq, %%shift ; multiply by 32 - mova m14, [FILTER + mxq] ; get 2 first values of filters - mova m15, [FILTER + mxq+%%offset] ; get 2 last values of filters - -%if cpuflag(avx2) -%define %%table hevc_epel_filters_avx2_10 -%else -%define %%table hevc_epel_filters_sse4_10 -%endif -%ifdef PIC - lea r3srcq, [%%table] - %define FILTER r3srcq -%else - %define FILTER %%table -%endif - mova m12, [FILTER + myq] ; get 2 first values of filters - mova m13, [FILTER + myq+%%offset] ; get 2 last values of filters - lea r3srcq, [srcstrideq*3] -%endmacro - -%macro QPEL_FILTER 2 - -%if cpuflag(avx2) -%assign %%offset 32 -%assign %%shift 7 -%define %%table hevc_qpel_filters_avx2_%1 -%else -%assign %%offset 16 -%assign %%shift 6 -%define %%table hevc_qpel_filters_sse4_%1 -%endif - -%ifdef PIC - lea rfilterq, [%%table] -%else - %define rfilterq %%table -%endif - sub %2q, 1 - shl %2q, %%shift ; multiply by 32 - mova m12, [rfilterq + %2q] ; get 4 first values of filters - mova m13, [rfilterq + %2q + %%offset] ; get 4 first values of filters - mova m14, [rfilterq + %2q + 2*%%offset] ; get 4 first values of filters - mova m15, [rfilterq + %2q + 3*%%offset] ; get 4 first values of filters -%endmacro - -%macro EPEL_LOAD 4 -%if (%1 == 8 && %4 <= 4) -%define %%load movd -%elif (%1 == 8 && %4 <= 8) || (%1 > 8 && %4 <= 4) -%define %%load movq -%else -%define %%load movdqu -%endif - - %%load m0, [%2q ] -%ifnum %3 - %%load m1, [%2q+ %3] - %%load m2, [%2q+2*%3] - %%load m3, [%2q+3*%3] -%else - %%load m1, [%2q+ %3q] - %%load m2, [%2q+2*%3q] - %%load m3, [%2q+r3srcq] -%endif -%if %1 == 8 -%if %4 > 8 - SBUTTERFLY bw, 0, 1, 7 - SBUTTERFLY bw, 2, 3, 7 -%else - punpcklbw m0, m1 - punpcklbw m2, m3 -%endif -%else -%if %4 > 4 - SBUTTERFLY wd, 0, 1, 7 - SBUTTERFLY wd, 2, 3, 7 -%else - punpcklwd m0, m1 - punpcklwd m2, m3 -%endif -%endif -%endmacro - - -%macro QPEL_H_LOAD 4 -%assign %%stride (%1+7)/8 -%if %1 == 8 -%if %3 <= 4 -%define %%load movd -%elif %3 == 8 -%define %%load movq -%else -%define %%load movu -%endif -%else -%if %3 == 2 -%define %%load movd -%elif %3 == 4 -%define %%load movq -%else -%define %%load movu -%endif -%endif - %%load m0, [%2-3*%%stride] ;load data from source - %%load m1, [%2-2*%%stride] - %%load m2, [%2-%%stride ] - %%load m3, [%2 ] - %%load m4, [%2+%%stride ] - %%load m5, [%2+2*%%stride] - %%load m6, [%2+3*%%stride] - %%load m7, [%2+4*%%stride] - -%if %1 == 8 -%if %3 > 8 - SBUTTERFLY wd, 0, 1, %4 - SBUTTERFLY wd, 2, 3, %4 - SBUTTERFLY wd, 4, 5, %4 - SBUTTERFLY wd, 6, 7, %4 -%else - punpcklbw m0, m1 - punpcklbw m2, m3 - punpcklbw m4, m5 - punpcklbw m6, m7 -%endif -%else -%if %3 > 4 - SBUTTERFLY dq, 0, 1, %4 - SBUTTERFLY dq, 2, 3, %4 - SBUTTERFLY dq, 4, 5, %4 - SBUTTERFLY dq, 6, 7, %4 -%else - punpcklwd m0, m1 - punpcklwd m2, m3 - punpcklwd m4, m5 - punpcklwd m6, m7 -%endif -%endif -%endmacro - -%macro QPEL_V_LOAD 5 - lea %5q, [%2] - sub %5q, r3srcq - movu m0, [%5q ] ;load x- 3*srcstride - movu m1, [%5q+ %3q ] ;load x- 2*srcstride - movu m2, [%5q+ 2*%3q ] ;load x-srcstride - movu m3, [%2 ] ;load x - movu m4, [%2+ %3q] ;load x+stride - movu m5, [%2+ 2*%3q] ;load x+2*stride - movu m6, [%2+r3srcq] ;load x+3*stride - movu m7, [%2+ 4*%3q] ;load x+4*stride -%if %1 == 8 -%if %4 > 8 - SBUTTERFLY bw, 0, 1, 8 - SBUTTERFLY bw, 2, 3, 8 - SBUTTERFLY bw, 4, 5, 8 - SBUTTERFLY bw, 6, 7, 8 -%else - punpcklbw m0, m1 - punpcklbw m2, m3 - punpcklbw m4, m5 - punpcklbw m6, m7 -%endif -%else -%if %4 > 4 - SBUTTERFLY wd, 0, 1, 8 - SBUTTERFLY wd, 2, 3, 8 - SBUTTERFLY wd, 4, 5, 8 - SBUTTERFLY wd, 6, 7, 8 -%else - punpcklwd m0, m1 - punpcklwd m2, m3 - punpcklwd m4, m5 - punpcklwd m6, m7 -%endif -%endif -%endmacro - -%macro PEL_12STORE2 3 - movd [%1], %2 -%endmacro -%macro PEL_12STORE4 3 - movq [%1], %2 -%endmacro -%macro PEL_12STORE6 3 - movq [%1], %2 - psrldq %2, 8 - movd [%1+8], %2 -%endmacro -%macro PEL_12STORE8 3 - movdqa [%1], %2 -%endmacro -%macro PEL_12STORE12 3 - movdqa [%1], %2 - movq [%1+16], %3 -%endmacro -%macro PEL_12STORE16 3 - PEL_12STORE8 %1, %2, %3 - movdqa [%1+16], %3 -%endmacro - -%macro PEL_10STORE2 3 - movd [%1], %2 -%endmacro -%macro PEL_10STORE4 3 - movq [%1], %2 -%endmacro -%macro PEL_10STORE6 3 - movq [%1], %2 - psrldq %2, 8 - movd [%1+8], %2 -%endmacro -%macro PEL_10STORE8 3 - movdqa [%1], %2 -%endmacro -%macro PEL_10STORE12 3 - movdqa [%1], %2 - movq [%1+16], %3 -%endmacro -%macro PEL_10STORE16 3 -%if cpuflag(avx2) - movu [%1], %2 -%else - PEL_10STORE8 %1, %2, %3 - movdqa [%1+16], %3 -%endif -%endmacro - -%macro PEL_10STORE32 3 - PEL_10STORE16 %1, %2, %3 - movu [%1+32], %3 -%endmacro - -%macro PEL_8STORE2 3 - pextrw [%1], %2, 0 -%endmacro -%macro PEL_8STORE4 3 - movd [%1], %2 -%endmacro -%macro PEL_8STORE6 3 - movd [%1], %2 - pextrw [%1+4], %2, 2 -%endmacro -%macro PEL_8STORE8 3 - movq [%1], %2 -%endmacro -%macro PEL_8STORE12 3 - movq [%1], %2 - psrldq %2, 8 - movd [%1+8], %2 -%endmacro -%macro PEL_8STORE16 3 -%if cpuflag(avx2) - movdqu [%1], %2 -%else - mova [%1], %2 -%endif ; avx -%endmacro -%macro PEL_8STORE32 3 - movu [%1], %2 -%endmacro - -%macro LOOP_END 3 - add %1q, 2*MAX_PB_SIZE ; dst += dststride - add %2q, %3q ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop -%endmacro - - -%macro MC_PIXEL_COMPUTE 2-3 ;width, bitdepth -%if %2 == 8 -%if cpuflag(avx2) && %0 ==3 -%if %1 > 16 - vextracti128 xm1, m0, 1 - pmovzxbw m1, xm1 - psllw m1, 14-%2 -%endif - pmovzxbw m0, xm0 -%else ; not avx -%if %1 > 8 - punpckhbw m1, m0, m2 - psllw m1, 14-%2 -%endif - punpcklbw m0, m2 -%endif -%endif ;avx - psllw m0, 14-%2 -%endmacro - -%macro EPEL_COMPUTE 4-8 ; bitdepth, width, filter1, filter2, HV/m0, m2, m1, m3 -%if %0 == 8 -%define %%reg0 %5 -%define %%reg2 %6 -%define %%reg1 %7 -%define %%reg3 %8 -%else -%define %%reg0 m0 -%define %%reg2 m2 -%define %%reg1 m1 -%define %%reg3 m3 -%endif -%if %1 == 8 -%if cpuflag(avx2) && (%0 == 5) -%if %2 > 16 - vperm2i128 m10, m0, m1, q0301 -%endif - vinserti128 m0, m0, xm1, 1 - mova m1, m10 -%if %2 > 16 - vperm2i128 m10, m2, m3, q0301 -%endif - vinserti128 m2, m2, xm3, 1 - mova m3, m10 -%endif - pmaddubsw %%reg0, %3 ;x1*c1+x2*c2 - pmaddubsw %%reg2, %4 ;x3*c3+x4*c4 - paddw %%reg0, %%reg2 -%if %2 > 8 - pmaddubsw %%reg1, %3 - pmaddubsw %%reg3, %4 - paddw %%reg1, %%reg3 -%endif -%else - pmaddwd %%reg0, %3 - pmaddwd %%reg2, %4 - paddd %%reg0, %%reg2 -%if %2 > 4 - pmaddwd %%reg1, %3 - pmaddwd %%reg3, %4 - paddd %%reg1, %%reg3 -%if %1 != 8 - psrad %%reg1, %1-8 -%endif -%endif -%if %1 != 8 - psrad %%reg0, %1-8 -%endif - packssdw %%reg0, %%reg1 -%endif -%endmacro - -%macro QPEL_HV_COMPUTE 4 ; width, bitdepth, filter idx - -%if cpuflag(avx2) -%assign %%offset 32 -%define %%table hevc_qpel_filters_avx2_%2 -%else -%assign %%offset 16 -%define %%table hevc_qpel_filters_sse4_%2 -%endif - -%ifdef PIC - lea rfilterq, [%%table] -%else - %define rfilterq %%table -%endif - -%if %2 == 8 - pmaddubsw m0, [rfilterq + %3q*8 ] ;x1*c1+x2*c2 - pmaddubsw m2, [rfilterq + %3q*8+%%offset] ;x3*c3+x4*c4 - pmaddubsw m4, [rfilterq + %3q*8+2*%%offset] ;x5*c5+x6*c6 - pmaddubsw m6, [rfilterq + %3q*8+3*%%offset] ;x7*c7+x8*c8 - paddw m0, m2 - paddw m4, m6 - paddw m0, m4 -%else - pmaddwd m0, [rfilterq + %3q*8 ] - pmaddwd m2, [rfilterq + %3q*8+%%offset] - pmaddwd m4, [rfilterq + %3q*8+2*%%offset] - pmaddwd m6, [rfilterq + %3q*8+3*%%offset] - paddd m0, m2 - paddd m4, m6 - paddd m0, m4 -%if %2 != 8 - psrad m0, %2-8 -%endif -%if %1 > 4 - pmaddwd m1, [rfilterq + %3q*8 ] - pmaddwd m3, [rfilterq + %3q*8+%%offset] - pmaddwd m5, [rfilterq + %3q*8+2*%%offset] - pmaddwd m7, [rfilterq + %3q*8+3*%%offset] - paddd m1, m3 - paddd m5, m7 - paddd m1, m5 -%if %2 != 8 - psrad m1, %2-8 -%endif -%endif - p%4 m0, m1 -%endif -%endmacro - -%macro QPEL_COMPUTE 2-3 ; width, bitdepth -%if %2 == 8 -%if cpuflag(avx2) && (%0 == 3) - - vperm2i128 m10, m0, m1, q0301 - vinserti128 m0, m0, xm1, 1 - SWAP 1, 10 - - vperm2i128 m10, m2, m3, q0301 - vinserti128 m2, m2, xm3, 1 - SWAP 3, 10 - - - vperm2i128 m10, m4, m5, q0301 - vinserti128 m4, m4, xm5, 1 - SWAP 5, 10 - - vperm2i128 m10, m6, m7, q0301 - vinserti128 m6, m6, xm7, 1 - SWAP 7, 10 -%endif - - pmaddubsw m0, m12 ;x1*c1+x2*c2 - pmaddubsw m2, m13 ;x3*c3+x4*c4 - pmaddubsw m4, m14 ;x5*c5+x6*c6 - pmaddubsw m6, m15 ;x7*c7+x8*c8 - paddw m0, m2 - paddw m4, m6 - paddw m0, m4 -%if %1 > 8 - pmaddubsw m1, m12 - pmaddubsw m3, m13 - pmaddubsw m5, m14 - pmaddubsw m7, m15 - paddw m1, m3 - paddw m5, m7 - paddw m1, m5 -%endif -%else - pmaddwd m0, m12 - pmaddwd m2, m13 - pmaddwd m4, m14 - pmaddwd m6, m15 - paddd m0, m2 - paddd m4, m6 - paddd m0, m4 -%if %2 != 8 - psrad m0, %2-8 -%endif -%if %1 > 4 - pmaddwd m1, m12 - pmaddwd m3, m13 - pmaddwd m5, m14 - pmaddwd m7, m15 - paddd m1, m3 - paddd m5, m7 - paddd m1, m5 -%if %2 != 8 - psrad m1, %2-8 -%endif -%endif -%endif -%endmacro - -%macro BI_COMPUTE 7-8 ; width, bitd, src1l, src1h, scr2l, scr2h, pw - paddsw %3, %5 -%if %1 > 8 - paddsw %4, %6 -%endif - UNI_COMPUTE %1, %2, %3, %4, %7 -%if %0 == 8 && cpuflag(avx2) && (%2 == 8) - vpermq %3, %3, 216 - vpermq %4, %4, 216 -%endif -%endmacro - -%macro UNI_COMPUTE 5 - pmulhrsw %3, %5 -%if %1 > 8 || (%2 > 8 && %1 > 4) - pmulhrsw %4, %5 -%endif -%if %2 == 8 - packuswb %3, %4 -%else - CLIPW %3, [pb_0], [max_pixels_%2] -%if (%1 > 8 && notcpuflag(avx)) || %1 > 16 - CLIPW %4, [pb_0], [max_pixels_%2] -%endif -%endif -%endmacro - - -; ****************************** -; void put_hevc_mc_pixels(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my) -; ****************************** - -%macro HEVC_PUT_HEVC_PEL_PIXELS 2 -HEVC_PEL_PIXELS %1, %2 -HEVC_UNI_PEL_PIXELS %1, %2 -HEVC_BI_PEL_PIXELS %1, %2 -%endmacro - -%macro HEVC_PEL_PIXELS 2 -cglobal hevc_put_hevc_pel_pixels%1_%2, 4, 4, 3, dst, src, srcstride,height - pxor m2, m2 -.loop: - SIMPLE_LOAD %1, %2, srcq, m0 - MC_PIXEL_COMPUTE %1, %2, 1 - PEL_10STORE%1 dstq, m0, m1 - LOOP_END dst, src, srcstride - RET - %endmacro - -%macro HEVC_UNI_PEL_PIXELS 2 -cglobal hevc_put_hevc_uni_pel_pixels%1_%2, 5, 5, 2, dst, dststride, src, srcstride,height -.loop: - SIMPLE_LOAD %1, %2, srcq, m0 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET -%endmacro - -%macro HEVC_BI_PEL_PIXELS 2 -cglobal hevc_put_hevc_bi_pel_pixels%1_%2, 6, 6, 6, dst, dststride, src, srcstride, src2, height - pxor m2, m2 - movdqa m5, [pw_bi_%2] -.loop: - SIMPLE_LOAD %1, %2, srcq, m0 - SIMPLE_BILOAD %1, src2q, m3, m4 - MC_PIXEL_COMPUTE %1, %2, 1 - BI_COMPUTE %1, %2, m0, m1, m3, m4, m5, 1 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET -%endmacro - - -; ****************************** -; void put_hevc_epel_hX(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my, int width); -; ****************************** - - -%macro HEVC_PUT_HEVC_EPEL 2 -%if cpuflag(avx2) -%define XMM_REGS 11 -%else -%define XMM_REGS 8 -%endif - -cglobal hevc_put_hevc_epel_h%1_%2, 5, 6, XMM_REGS, dst, src, srcstride, height, mx, rfilter -%assign %%stride ((%2 + 7)/8) - EPEL_FILTER %2, mx, m4, m5, rfilter -.loop: - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m4, m5, 1 - PEL_10STORE%1 dstq, m0, m1 - LOOP_END dst, src, srcstride - RET - -cglobal hevc_put_hevc_uni_epel_h%1_%2, 6, 7, XMM_REGS, dst, dststride, src, srcstride, height, mx, rfilter -%assign %%stride ((%2 + 7)/8) - movdqa m6, [pw_%2] - EPEL_FILTER %2, mx, m4, m5, rfilter -.loop: - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m4, m5 - UNI_COMPUTE %1, %2, m0, m1, m6 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -cglobal hevc_put_hevc_bi_epel_h%1_%2, 7, 8, XMM_REGS, dst, dststride, src, srcstride, src2, height, mx, rfilter - movdqa m6, [pw_bi_%2] - EPEL_FILTER %2, mx, m4, m5, rfilter -.loop: - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m4, m5, 1 - SIMPLE_BILOAD %1, src2q, m2, m3 - BI_COMPUTE %1, %2, m0, m1, m2, m3, m6, 1 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -; ****************************** -; void put_hevc_epel_v(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my, int width) -; ****************************** - -cglobal hevc_put_hevc_epel_v%1_%2, 4, 6, XMM_REGS, dst, src, srcstride, height, r3src, my - movifnidn myd, mym - sub srcq, srcstrideq - EPEL_FILTER %2, my, m4, m5, r3src - lea r3srcq, [srcstrideq*3] -.loop: - EPEL_LOAD %2, srcq, srcstride, %1 - EPEL_COMPUTE %2, %1, m4, m5, 1 - PEL_10STORE%1 dstq, m0, m1 - LOOP_END dst, src, srcstride - RET - -cglobal hevc_put_hevc_uni_epel_v%1_%2, 5, 7, XMM_REGS, dst, dststride, src, srcstride, height, r3src, my - movifnidn myd, mym - movdqa m6, [pw_%2] - sub srcq, srcstrideq - EPEL_FILTER %2, my, m4, m5, r3src - lea r3srcq, [srcstrideq*3] -.loop: - EPEL_LOAD %2, srcq, srcstride, %1 - EPEL_COMPUTE %2, %1, m4, m5 - UNI_COMPUTE %1, %2, m0, m1, m6 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - - -cglobal hevc_put_hevc_bi_epel_v%1_%2, 6, 8, XMM_REGS, dst, dststride, src, srcstride, src2, height, r3src, my - movifnidn myd, mym - movdqa m6, [pw_bi_%2] - sub srcq, srcstrideq - EPEL_FILTER %2, my, m4, m5, r3src - lea r3srcq, [srcstrideq*3] -.loop: - EPEL_LOAD %2, srcq, srcstride, %1 - EPEL_COMPUTE %2, %1, m4, m5, 1 - SIMPLE_BILOAD %1, src2q, m2, m3 - BI_COMPUTE %1, %2, m0, m1, m2, m3, m6, 1 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET -%endmacro - - -; ****************************** -; void put_hevc_epel_hv(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my, int width) -; ****************************** - -%macro HEVC_PUT_HEVC_EPEL_HV 2 -cglobal hevc_put_hevc_epel_hv%1_%2, 6, 7, 16 , dst, src, srcstride, height, mx, my, r3src -%assign %%stride ((%2 + 7)/8) - sub srcq, srcstrideq - EPEL_HV_FILTER %2 - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m8, m1 -%endif - SWAP m4, m0 - add srcq, srcstrideq - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m9, m1 -%endif - SWAP m5, m0 - add srcq, srcstrideq - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m10, m1 -%endif - SWAP m6, m0 - add srcq, srcstrideq -.loop: - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m11, m1 -%endif - SWAP m7, m0 - punpcklwd m0, m4, m5 - punpcklwd m2, m6, m7 -%if %1 > 4 - punpckhwd m1, m4, m5 - punpckhwd m3, m6, m7 -%endif - EPEL_COMPUTE 14, %1, m12, m13 -%if (%1 > 8 && (%2 == 8)) - punpcklwd m4, m8, m9 - punpcklwd m2, m10, m11 - punpckhwd m8, m8, m9 - punpckhwd m3, m10, m11 - EPEL_COMPUTE 14, %1, m12, m13, m4, m2, m8, m3 -%if cpuflag(avx2) - vinserti128 m2, m0, xm4, 1 - vperm2i128 m3, m0, m4, q0301 - PEL_10STORE%1 dstq, m2, m3 -%else - PEL_10STORE%1 dstq, m0, m4 -%endif -%else - PEL_10STORE%1 dstq, m0, m1 -%endif - movdqa m4, m5 - movdqa m5, m6 - movdqa m6, m7 -%if (%1 > 8 && (%2 == 8)) - mova m8, m9 - mova m9, m10 - mova m10, m11 -%endif - LOOP_END dst, src, srcstride - RET - -cglobal hevc_put_hevc_uni_epel_hv%1_%2, 7, 8, 16 , dst, dststride, src, srcstride, height, mx, my, r3src -%assign %%stride ((%2 + 7)/8) - sub srcq, srcstrideq - EPEL_HV_FILTER %2 - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m8, m1 -%endif - SWAP m4, m0 - add srcq, srcstrideq - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m9, m1 -%endif - SWAP m5, m0 - add srcq, srcstrideq - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m10, m1 -%endif - SWAP m6, m0 - add srcq, srcstrideq -.loop: - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m11, m1 -%endif - mova m7, m0 - punpcklwd m0, m4, m5 - punpcklwd m2, m6, m7 -%if %1 > 4 - punpckhwd m1, m4, m5 - punpckhwd m3, m6, m7 -%endif - EPEL_COMPUTE 14, %1, m12, m13 -%if (%1 > 8 && (%2 == 8)) - punpcklwd m4, m8, m9 - punpcklwd m2, m10, m11 - punpckhwd m8, m8, m9 - punpckhwd m3, m10, m11 - EPEL_COMPUTE 14, %1, m12, m13, m4, m2, m8, m3 - UNI_COMPUTE %1, %2, m0, m4, [pw_%2] -%else - UNI_COMPUTE %1, %2, m0, m1, [pw_%2] -%endif - PEL_%2STORE%1 dstq, m0, m1 - mova m4, m5 - mova m5, m6 - mova m6, m7 -%if (%1 > 8 && (%2 == 8)) - mova m8, m9 - mova m9, m10 - mova m10, m11 -%endif - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -cglobal hevc_put_hevc_bi_epel_hv%1_%2, 8, 9, 16, dst, dststride, src, srcstride, src2, height, mx, my, r3src -%assign %%stride ((%2 + 7)/8) - sub srcq, srcstrideq - EPEL_HV_FILTER %2 - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m8, m1 -%endif - SWAP m4, m0 - add srcq, srcstrideq - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m9, m1 -%endif - SWAP m5, m0 - add srcq, srcstrideq - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m10, m1 -%endif - SWAP m6, m0 - add srcq, srcstrideq -.loop: - EPEL_LOAD %2, srcq-%%stride, %%stride, %1 - EPEL_COMPUTE %2, %1, m14, m15 -%if (%1 > 8 && (%2 == 8)) - SWAP m11, m1 -%endif - SWAP m7, m0 - punpcklwd m0, m4, m5 - punpcklwd m2, m6, m7 -%if %1 > 4 - punpckhwd m1, m4, m5 - punpckhwd m3, m6, m7 -%endif - EPEL_COMPUTE 14, %1, m12, m13 -%if (%1 > 8 && (%2 == 8)) - punpcklwd m4, m8, m9 - punpcklwd m2, m10, m11 - punpckhwd m8, m8, m9 - punpckhwd m3, m10, m11 - EPEL_COMPUTE 14, %1, m12, m13, m4, m2, m8, m3 - SIMPLE_BILOAD %1, src2q, m8, m3 -%if cpuflag(avx2) - vinserti128 m1, m8, xm3, 1 - vperm2i128 m2, m8, m3, q0301 - BI_COMPUTE %1, %2, m0, m4, m1, m2, [pw_bi_%2] -%else - BI_COMPUTE %1, %2, m0, m4, m8, m3, [pw_bi_%2] -%endif -%else - SIMPLE_BILOAD %1, src2q, m8, m9 - BI_COMPUTE %1, %2, m0, m1, m8, m9, [pw_bi_%2] -%endif - PEL_%2STORE%1 dstq, m0, m4 - mova m4, m5 - mova m5, m6 - mova m6, m7 -%if (%1 > 8 && (%2 == 8)) - mova m8, m9 - mova m9, m10 - mova m10, m11 -%endif - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET -%endmacro - -; ****************************** -; void put_hevc_qpel_hX_X_X(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my, int width) -; ****************************** - -%macro HEVC_PUT_HEVC_QPEL 2 -cglobal hevc_put_hevc_qpel_h%1_%2, 5, 6, 16, dst, src, srcstride, height, mx, rfilter - QPEL_FILTER %2, mx -.loop: - QPEL_H_LOAD %2, srcq, %1, 10 - QPEL_COMPUTE %1, %2, 1 -%if %2 > 8 - packssdw m0, m1 -%endif - PEL_10STORE%1 dstq, m0, m1 - LOOP_END dst, src, srcstride - RET - -cglobal hevc_put_hevc_uni_qpel_h%1_%2, 6, 7, 16 , dst, dststride, src, srcstride, height, mx, rfilter - mova m9, [pw_%2] - QPEL_FILTER %2, mx -.loop: - QPEL_H_LOAD %2, srcq, %1, 10 - QPEL_COMPUTE %1, %2 -%if %2 > 8 - packssdw m0, m1 -%endif - UNI_COMPUTE %1, %2, m0, m1, m9 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -cglobal hevc_put_hevc_bi_qpel_h%1_%2, 7, 8, 16 , dst, dststride, src, srcstride, src2, height, mx, rfilter - movdqa m9, [pw_bi_%2] - QPEL_FILTER %2, mx -.loop: - QPEL_H_LOAD %2, srcq, %1, 10 - QPEL_COMPUTE %1, %2, 1 -%if %2 > 8 - packssdw m0, m1 -%endif - SIMPLE_BILOAD %1, src2q, m10, m11 - BI_COMPUTE %1, %2, m0, m1, m10, m11, m9, 1 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - - -; ****************************** -; void put_hevc_qpel_vX_X_X(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my, int width) -; ****************************** - -cglobal hevc_put_hevc_qpel_v%1_%2, 4, 8, 16, dst, src, srcstride, height, r3src, my, rfilter - movifnidn myd, mym - lea r3srcq, [srcstrideq*3] - QPEL_FILTER %2, my -.loop: - QPEL_V_LOAD %2, srcq, srcstride, %1, r7 - QPEL_COMPUTE %1, %2, 1 -%if %2 > 8 - packssdw m0, m1 -%endif - PEL_10STORE%1 dstq, m0, m1 - LOOP_END dst, src, srcstride - RET - -cglobal hevc_put_hevc_uni_qpel_v%1_%2, 5, 9, 16, dst, dststride, src, srcstride, height, r3src, my, rfilter - movifnidn myd, mym - movdqa m9, [pw_%2] - lea r3srcq, [srcstrideq*3] - QPEL_FILTER %2, my -.loop: - QPEL_V_LOAD %2, srcq, srcstride, %1, r8 - QPEL_COMPUTE %1, %2 -%if %2 > 8 - packssdw m0, m1 -%endif - UNI_COMPUTE %1, %2, m0, m1, m9 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -cglobal hevc_put_hevc_bi_qpel_v%1_%2, 6, 10, 16, dst, dststride, src, srcstride, src2, height, r3src, my, rfilter - movifnidn myd, mym - movdqa m9, [pw_bi_%2] - lea r3srcq, [srcstrideq*3] - QPEL_FILTER %2, my -.loop: - QPEL_V_LOAD %2, srcq, srcstride, %1, r9 - QPEL_COMPUTE %1, %2, 1 -%if %2 > 8 - packssdw m0, m1 -%endif - SIMPLE_BILOAD %1, src2q, m10, m11 - BI_COMPUTE %1, %2, m0, m1, m10, m11, m9, 1 - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET -%endmacro - - -; ****************************** -; void put_hevc_qpel_hvX_X(int16_t *dst, ptrdiff_t dststride, -; uint8_t *_src, ptrdiff_t _srcstride, -; int height, int mx, int my) -; ****************************** -%macro HEVC_PUT_HEVC_QPEL_HV 2 -cglobal hevc_put_hevc_qpel_hv%1_%2, 6, 8, 16, dst, src, srcstride, height, mx, my, r3src, rfilter -%if cpuflag(avx2) -%assign %%shift 4 -%else -%assign %%shift 3 -%endif - sub mxq, 1 - sub myq, 1 - shl mxq, %%shift ; multiply by 32 - shl myq, %%shift ; multiply by 32 - lea r3srcq, [srcstrideq*3] - sub srcq, r3srcq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m8, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m9, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m10, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m11, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m12, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m13, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m14, m0 - add srcq, srcstrideq -.loop: - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m15, m0 - punpcklwd m0, m8, m9 - punpcklwd m2, m10, m11 - punpcklwd m4, m12, m13 - punpcklwd m6, m14, m15 -%if %1 > 4 - punpckhwd m1, m8, m9 - punpckhwd m3, m10, m11 - punpckhwd m5, m12, m13 - punpckhwd m7, m14, m15 -%endif - QPEL_HV_COMPUTE %1, 14, my, ackssdw - PEL_10STORE%1 dstq, m0, m1 -%if %1 <= 4 - movq m8, m9 - movq m9, m10 - movq m10, m11 - movq m11, m12 - movq m12, m13 - movq m13, m14 - movq m14, m15 -%else - movdqa m8, m9 - movdqa m9, m10 - movdqa m10, m11 - movdqa m11, m12 - movdqa m12, m13 - movdqa m13, m14 - movdqa m14, m15 -%endif - LOOP_END dst, src, srcstride - RET - -cglobal hevc_put_hevc_uni_qpel_hv%1_%2, 7, 9, 16 , dst, dststride, src, srcstride, height, mx, my, r3src, rfilter -%if cpuflag(avx2) -%assign %%shift 4 -%else -%assign %%shift 3 -%endif - sub mxq, 1 - sub myq, 1 - shl mxq, %%shift ; multiply by 32 - shl myq, %%shift ; multiply by 32 - lea r3srcq, [srcstrideq*3] - sub srcq, r3srcq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m8, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m9, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m10, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m11, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m12, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m13, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m14, m0 - add srcq, srcstrideq -.loop: - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m15, m0 - punpcklwd m0, m8, m9 - punpcklwd m2, m10, m11 - punpcklwd m4, m12, m13 - punpcklwd m6, m14, m15 -%if %1 > 4 - punpckhwd m1, m8, m9 - punpckhwd m3, m10, m11 - punpckhwd m5, m12, m13 - punpckhwd m7, m14, m15 -%endif - QPEL_HV_COMPUTE %1, 14, my, ackusdw - UNI_COMPUTE %1, %2, m0, m1, [pw_%2] - PEL_%2STORE%1 dstq, m0, m1 - -%if %1 <= 4 - movq m8, m9 - movq m9, m10 - movq m10, m11 - movq m11, m12 - movq m12, m13 - movq m13, m14 - movq m14, m15 -%else - mova m8, m9 - mova m9, m10 - mova m10, m11 - mova m11, m12 - mova m12, m13 - mova m13, m14 - mova m14, m15 -%endif - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -cglobal hevc_put_hevc_bi_qpel_hv%1_%2, 8, 10, 16, dst, dststride, src, srcstride, src2, height, mx, my, r3src, rfilter -%if cpuflag(avx2) -%assign %%shift 4 -%else -%assign %%shift 3 -%endif - sub mxq, 1 - sub myq, 1 - shl mxq, %%shift ; multiply by 32 - shl myq, %%shift ; multiply by 32 - lea r3srcq, [srcstrideq*3] - sub srcq, r3srcq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m8, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m9, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m10, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m11, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m12, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m13, m0 - add srcq, srcstrideq - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m14, m0 - add srcq, srcstrideq -.loop: - QPEL_H_LOAD %2, srcq, %1, 15 - QPEL_HV_COMPUTE %1, %2, mx, ackssdw - SWAP m15, m0 - punpcklwd m0, m8, m9 - punpcklwd m2, m10, m11 - punpcklwd m4, m12, m13 - punpcklwd m6, m14, m15 -%if %1 > 4 - punpckhwd m1, m8, m9 - punpckhwd m3, m10, m11 - punpckhwd m5, m12, m13 - punpckhwd m7, m14, m15 -%endif - QPEL_HV_COMPUTE %1, 14, my, ackssdw - SIMPLE_BILOAD %1, src2q, m8, m9 ;m9 not used in this case - BI_COMPUTE %1, %2, m0, m1, m8, m9, [pw_bi_%2] - PEL_%2STORE%1 dstq, m0, m1 - -%if %1 <= 4 - movq m8, m9 - movq m9, m10 - movq m10, m11 - movq m11, m12 - movq m12, m13 - movq m13, m14 - movq m14, m15 -%else - movdqa m8, m9 - movdqa m9, m10 - movdqa m10, m11 - movdqa m11, m12 - movdqa m12, m13 - movdqa m13, m14 - movdqa m14, m15 -%endif - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET -%endmacro - -%macro WEIGHTING_FUNCS 2 -%if WIN64 || ARCH_X86_32 -cglobal hevc_put_hevc_uni_w%1_%2, 4, 5, 7, dst, dststride, src, height, denom, wx, ox - mov r4d, denomm -%define SHIFT r4d -%else -cglobal hevc_put_hevc_uni_w%1_%2, 6, 6, 7, dst, dststride, src, height, denom, wx, ox -%define SHIFT denomd -%endif - lea SHIFT, [SHIFT+14-%2] ; shift = 14 - bitd + denom -%if %1 <= 4 - pxor m1, m1 -%endif - movd m2, wxm ; WX - movd m4, SHIFT ; shift -%if %1 <= 4 - punpcklwd m2, m1 -%else - punpcklwd m2, m2 -%endif - dec SHIFT - movdqu m5, [pd_1] - movd m6, SHIFT - pshufd m2, m2, 0 - mov SHIFT, oxm - pslld m5, m6 -%if %2 != 8 - shl SHIFT, %2-8 ; ox << (bitd - 8) -%endif - movd m3, SHIFT ; OX - pshufd m3, m3, 0 -%if WIN64 || ARCH_X86_32 - mov SHIFT, heightm -%endif -.loop: - SIMPLE_LOAD %1, 10, srcq, m0 -%if %1 <= 4 - punpcklwd m0, m1 - pmaddwd m0, m2 - paddd m0, m5 - psrad m0, m4 - paddd m0, m3 -%else - pmulhw m6, m0, m2 - pmullw m0, m2 - punpckhwd m1, m0, m6 - punpcklwd m0, m6 - paddd m0, m5 - paddd m1, m5 - psrad m0, m4 - psrad m1, m4 - paddd m0, m3 - paddd m1, m3 -%endif - packssdw m0, m1 -%if %2 == 8 - packuswb m0, m0 -%else - CLIPW m0, [pb_0], [max_pixels_%2] -%endif - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, 2*MAX_PB_SIZE ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - RET - -cglobal hevc_put_hevc_bi_w%1_%2, 4, 6, 10, dst, dststride, src, src2, height, denom, wx0, wx1, ox0, ox1 - movifnidn r5d, denomm -%if %1 <= 4 - pxor m1, m1 -%endif - movd m2, wx0m ; WX0 - lea r5d, [r5d+14-%2] ; shift = 14 - bitd + denom - movd m3, wx1m ; WX1 - movd m0, r5d ; shift -%if %1 <= 4 - punpcklwd m2, m1 - punpcklwd m3, m1 -%else - punpcklwd m2, m2 - punpcklwd m3, m3 -%endif - inc r5d - movd m5, r5d ; shift+1 - pshufd m2, m2, 0 - mov r5d, ox0m - pshufd m3, m3, 0 - add r5d, ox1m -%if %2 != 8 - shl r5d, %2-8 ; ox << (bitd - 8) -%endif - inc r5d - movd m4, r5d ; offset - pshufd m4, m4, 0 -%if UNIX64 -%define h heightd -%else - mov r5d, heightm -%define h r5d -%endif - pslld m4, m0 - -.loop: - SIMPLE_LOAD %1, 10, srcq, m0 - SIMPLE_LOAD %1, 10, src2q, m8 -%if %1 <= 4 - punpcklwd m0, m1 - punpcklwd m8, m1 - pmaddwd m0, m3 - pmaddwd m8, m2 - paddd m0, m4 - paddd m0, m8 - psrad m0, m5 -%else - pmulhw m6, m0, m3 - pmullw m0, m3 - pmulhw m7, m8, m2 - pmullw m8, m2 - punpckhwd m1, m0, m6 - punpcklwd m0, m6 - punpckhwd m9, m8, m7 - punpcklwd m8, m7 - paddd m0, m8 - paddd m1, m9 - paddd m0, m4 - paddd m1, m4 - psrad m0, m5 - psrad m1, m5 -%endif - packssdw m0, m1 -%if %2 == 8 - packuswb m0, m0 -%else - CLIPW m0, [pb_0], [max_pixels_%2] -%endif - PEL_%2STORE%1 dstq, m0, m1 - add dstq, dststrideq ; dst += dststride - add srcq, 2*MAX_PB_SIZE ; src += srcstride - add src2q, 2*MAX_PB_SIZE ; src2 += srcstride - dec h ; cmp height - jnz .loop ; height loop - RET -%endmacro - -INIT_XMM sse4 ; adds ff_ and _sse4 to function name - -WEIGHTING_FUNCS 2, 8 -WEIGHTING_FUNCS 4, 8 -WEIGHTING_FUNCS 6, 8 -WEIGHTING_FUNCS 8, 8 - -WEIGHTING_FUNCS 2, 10 -WEIGHTING_FUNCS 4, 10 -WEIGHTING_FUNCS 6, 10 -WEIGHTING_FUNCS 8, 10 - -WEIGHTING_FUNCS 2, 12 -WEIGHTING_FUNCS 4, 12 -WEIGHTING_FUNCS 6, 12 -WEIGHTING_FUNCS 8, 12 - -HEVC_PUT_HEVC_PEL_PIXELS 2, 8 -HEVC_PUT_HEVC_PEL_PIXELS 4, 8 -HEVC_PUT_HEVC_PEL_PIXELS 6, 8 -HEVC_PUT_HEVC_PEL_PIXELS 8, 8 -HEVC_PUT_HEVC_PEL_PIXELS 12, 8 -HEVC_PUT_HEVC_PEL_PIXELS 16, 8 - -HEVC_PUT_HEVC_PEL_PIXELS 2, 10 -HEVC_PUT_HEVC_PEL_PIXELS 4, 10 -HEVC_PUT_HEVC_PEL_PIXELS 6, 10 -HEVC_PUT_HEVC_PEL_PIXELS 8, 10 - -HEVC_PUT_HEVC_PEL_PIXELS 2, 12 -HEVC_PUT_HEVC_PEL_PIXELS 4, 12 -HEVC_PUT_HEVC_PEL_PIXELS 6, 12 -HEVC_PUT_HEVC_PEL_PIXELS 8, 12 - -HEVC_PUT_HEVC_EPEL 2, 8 -HEVC_PUT_HEVC_EPEL 4, 8 -HEVC_PUT_HEVC_EPEL 6, 8 -HEVC_PUT_HEVC_EPEL 8, 8 -HEVC_PUT_HEVC_EPEL 12, 8 -HEVC_PUT_HEVC_EPEL 16, 8 - - -HEVC_PUT_HEVC_EPEL 2, 10 -HEVC_PUT_HEVC_EPEL 4, 10 -HEVC_PUT_HEVC_EPEL 6, 10 -HEVC_PUT_HEVC_EPEL 8, 10 - -HEVC_PUT_HEVC_EPEL 2, 12 -HEVC_PUT_HEVC_EPEL 4, 12 -HEVC_PUT_HEVC_EPEL 6, 12 -HEVC_PUT_HEVC_EPEL 8, 12 - -HEVC_PUT_HEVC_EPEL_HV 2, 8 -HEVC_PUT_HEVC_EPEL_HV 4, 8 -HEVC_PUT_HEVC_EPEL_HV 6, 8 -HEVC_PUT_HEVC_EPEL_HV 8, 8 -HEVC_PUT_HEVC_EPEL_HV 16, 8 - -HEVC_PUT_HEVC_EPEL_HV 2, 10 -HEVC_PUT_HEVC_EPEL_HV 4, 10 -HEVC_PUT_HEVC_EPEL_HV 6, 10 -HEVC_PUT_HEVC_EPEL_HV 8, 10 - -HEVC_PUT_HEVC_EPEL_HV 2, 12 -HEVC_PUT_HEVC_EPEL_HV 4, 12 -HEVC_PUT_HEVC_EPEL_HV 6, 12 -HEVC_PUT_HEVC_EPEL_HV 8, 12 - -HEVC_PUT_HEVC_QPEL 4, 8 -HEVC_PUT_HEVC_QPEL 8, 8 -HEVC_PUT_HEVC_QPEL 12, 8 -HEVC_PUT_HEVC_QPEL 16, 8 - -HEVC_PUT_HEVC_QPEL 4, 10 -HEVC_PUT_HEVC_QPEL 8, 10 - -HEVC_PUT_HEVC_QPEL 4, 12 -HEVC_PUT_HEVC_QPEL 8, 12 - -HEVC_PUT_HEVC_QPEL_HV 2, 8 -HEVC_PUT_HEVC_QPEL_HV 4, 8 -HEVC_PUT_HEVC_QPEL_HV 6, 8 -HEVC_PUT_HEVC_QPEL_HV 8, 8 - -HEVC_PUT_HEVC_QPEL_HV 2, 10 -HEVC_PUT_HEVC_QPEL_HV 4, 10 -HEVC_PUT_HEVC_QPEL_HV 6, 10 -HEVC_PUT_HEVC_QPEL_HV 8, 10 - -HEVC_PUT_HEVC_QPEL_HV 2, 12 -HEVC_PUT_HEVC_QPEL_HV 4, 12 -HEVC_PUT_HEVC_QPEL_HV 6, 12 -HEVC_PUT_HEVC_QPEL_HV 8, 12 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 ; adds ff_ and _avx2 to function name & enables 256b registers : m0 for 256b, xm0 for 128b. cpuflag(avx2) = 1 / notcpuflag(avx) = 0 - -HEVC_PUT_HEVC_PEL_PIXELS 32, 8 -HEVC_PUT_HEVC_PEL_PIXELS 16, 10 - -HEVC_PUT_HEVC_EPEL 32, 8 -HEVC_PUT_HEVC_EPEL 16, 10 - -HEVC_PUT_HEVC_EPEL_HV 16, 10 -HEVC_PUT_HEVC_EPEL_HV 32, 8 - -HEVC_PUT_HEVC_QPEL 32, 8 - -HEVC_PUT_HEVC_QPEL 16, 10 - -HEVC_PUT_HEVC_QPEL_HV 16, 10 - -%endif ;AVX2 -%endif ; ARCH_X86_64 diff --git a/libavcodec/x86/hevc_sao.asm b/libavcodec/x86/hevc_sao.asm deleted file mode 100644 index 756adfee57..0000000000 --- a/libavcodec/x86/hevc_sao.asm +++ /dev/null @@ -1,340 +0,0 @@ -;****************************************************************************** -;* SIMD optimized SAO functions for HEVC 8bit decoding -;* -;* Copyright (c) 2013 Pierre-Edouard LEPERE -;* Copyright (c) 2014 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pb_edge_shuffle: times 2 db 1, 2, 0, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 -pb_eo: db -1, 0, 1, 0, 0, -1, 0, 1, -1, -1, 1, 1, 1, -1, -1, 1 -cextern pb_1 -cextern pb_2 - -SECTION .text - -;****************************************************************************** -;SAO Band Filter -;****************************************************************************** - -%macro HEVC_SAO_BAND_FILTER_INIT 0 - and leftq, 31 - movd xm0, leftd - add leftq, 1 - and leftq, 31 - movd xm1, leftd - add leftq, 1 - and leftq, 31 - movd xm2, leftd - add leftq, 1 - and leftq, 31 - movd xm3, leftd - - SPLATW m0, xm0 - SPLATW m1, xm1 - SPLATW m2, xm2 - SPLATW m3, xm3 -%if mmsize > 16 - SPLATW m4, [offsetq + 2] - SPLATW m5, [offsetq + 4] - SPLATW m6, [offsetq + 6] - SPLATW m7, [offsetq + 8] -%else - movq m7, [offsetq + 2] - SPLATW m4, m7, 0 - SPLATW m5, m7, 1 - SPLATW m6, m7, 2 - SPLATW m7, m7, 3 -%endif - -%if ARCH_X86_64 - pxor m14, m14 - -%else ; ARCH_X86_32 - mova [rsp+mmsize*0], m0 - mova [rsp+mmsize*1], m1 - mova [rsp+mmsize*2], m2 - mova [rsp+mmsize*3], m3 - mova [rsp+mmsize*4], m4 - mova [rsp+mmsize*5], m5 - mova [rsp+mmsize*6], m6 - pxor m0, m0 - %assign MMSIZE mmsize - %define m14 m0 - %define m13 m1 - %define m9 m2 - %define m8 m3 -%endif ; ARCH -DEFINE_ARGS dst, src, dststride, srcstride, offset, height - mov heightd, r7m -%endmacro - -%macro HEVC_SAO_BAND_FILTER_COMPUTE 2 - psraw %1, %2, 3 -%if ARCH_X86_64 - pcmpeqw m10, %1, m0 - pcmpeqw m11, %1, m1 - pcmpeqw m12, %1, m2 - pcmpeqw %1, m3 - pand m10, m4 - pand m11, m5 - pand m12, m6 - pand %1, m7 - por m10, m11 - por m12, %1 - por m10, m12 - paddw %2, m10 -%else ; ARCH_X86_32 - pcmpeqw m4, %1, [rsp+MMSIZE*0] - pcmpeqw m5, %1, [rsp+MMSIZE*1] - pcmpeqw m6, %1, [rsp+MMSIZE*2] - pcmpeqw %1, [rsp+MMSIZE*3] - pand m4, [rsp+MMSIZE*4] - pand m5, [rsp+MMSIZE*5] - pand m6, [rsp+MMSIZE*6] - pand %1, m7 - por m4, m5 - por m6, %1 - por m4, m6 - paddw %2, m4 -%endif ; ARCH -%endmacro - -;void ff_hevc_sao_band_filter__8_(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src, -; int16_t *sao_offset_val, int sao_left_class, int width, int height); -%macro HEVC_SAO_BAND_FILTER 2 -cglobal hevc_sao_band_filter_%1_8, 6, 6, 15, 7*mmsize*ARCH_X86_32, dst, src, dststride, srcstride, offset, left - HEVC_SAO_BAND_FILTER_INIT - -align 16 -.loop: -%if %1 == 8 - movq m8, [srcq] - punpcklbw m8, m14 - HEVC_SAO_BAND_FILTER_COMPUTE m9, m8 - packuswb m8, m14 - movq [dstq], m8 -%endif ; %1 == 8 - -%assign i 0 -%rep %2 - mova m13, [srcq + i] - punpcklbw m8, m13, m14 - HEVC_SAO_BAND_FILTER_COMPUTE m9, m8 - punpckhbw m13, m14 - HEVC_SAO_BAND_FILTER_COMPUTE m9, m13 - packuswb m8, m13 - mova [dstq + i], m8 -%assign i i+mmsize -%endrep - -%if %1 == 48 -INIT_XMM cpuname - - mova m13, [srcq + i] - punpcklbw m8, m13, m14 - HEVC_SAO_BAND_FILTER_COMPUTE m9, m8 - punpckhbw m13, m14 - HEVC_SAO_BAND_FILTER_COMPUTE m9, m13 - packuswb m8, m13 - mova [dstq + i], m8 -%if cpuflag(avx2) -INIT_YMM cpuname -%endif -%endif ; %1 == 48 - - add dstq, dststrideq ; dst += dststride - add srcq, srcstrideq ; src += srcstride - dec heightd ; cmp height - jnz .loop ; height loop - REP_RET -%endmacro - - -%macro HEVC_SAO_BAND_FILTER_FUNCS 0 -HEVC_SAO_BAND_FILTER 8, 0 -HEVC_SAO_BAND_FILTER 16, 1 -HEVC_SAO_BAND_FILTER 32, 2 -HEVC_SAO_BAND_FILTER 48, 2 -HEVC_SAO_BAND_FILTER 64, 4 -%endmacro - -INIT_XMM sse2 -HEVC_SAO_BAND_FILTER_FUNCS -INIT_XMM avx -HEVC_SAO_BAND_FILTER_FUNCS - -%if HAVE_AVX2_EXTERNAL -INIT_XMM avx2 -HEVC_SAO_BAND_FILTER 8, 0 -HEVC_SAO_BAND_FILTER 16, 1 -INIT_YMM avx2 -HEVC_SAO_BAND_FILTER 32, 1 -HEVC_SAO_BAND_FILTER 48, 1 -HEVC_SAO_BAND_FILTER 64, 2 -%endif - -;****************************************************************************** -;SAO Edge Filter -;****************************************************************************** - -%define MAX_PB_SIZE 64 -%define PADDING_SIZE 64 ; AV_INPUT_BUFFER_PADDING_SIZE -%define EDGE_SRCSTRIDE 2 * MAX_PB_SIZE + PADDING_SIZE - -%macro HEVC_SAO_EDGE_FILTER_INIT 0 -%if WIN64 - movsxd eoq, dword eom -%elif ARCH_X86_64 - movsxd eoq, eod -%else - mov eoq, r4m -%endif - lea tmp2q, [pb_eo] - movsx a_strideq, byte [tmp2q+eoq*4+1] - movsx b_strideq, byte [tmp2q+eoq*4+3] - imul a_strideq, EDGE_SRCSTRIDE - imul b_strideq, EDGE_SRCSTRIDE - movsx tmpq, byte [tmp2q+eoq*4] - add a_strideq, tmpq - movsx tmpq, byte [tmp2q+eoq*4+2] - add b_strideq, tmpq -%endmacro - -%macro HEVC_SAO_EDGE_FILTER_COMPUTE 1 - pminub m4, m1, m2 - pminub m5, m1, m3 - pcmpeqb m2, m4 - pcmpeqb m3, m5 - pcmpeqb m4, m1 - pcmpeqb m5, m1 - psubb m4, m2 - psubb m5, m3 - paddb m4, m6 - paddb m4, m5 - - pshufb m2, m0, m4 -%if %1 > 8 - punpckhbw m5, m7, m1 - punpckhbw m4, m2, m7 - punpcklbw m3, m7, m1 - punpcklbw m2, m7 - pmaddubsw m5, m4 - pmaddubsw m3, m2 - packuswb m3, m5 -%else - punpcklbw m3, m7, m1 - punpcklbw m2, m7 - pmaddubsw m3, m2 - packuswb m3, m3 -%endif -%endmacro - -;void ff_hevc_sao_edge_filter__8_(uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, int16_t *sao_offset_val, -; int eo, int width, int height); -%macro HEVC_SAO_EDGE_FILTER 2-3 -%if ARCH_X86_64 -cglobal hevc_sao_edge_filter_%1_8, 4, 9, 8, dst, src, dststride, offset, eo, a_stride, b_stride, height, tmp -%define tmp2q heightq - HEVC_SAO_EDGE_FILTER_INIT - mov heightd, r6m - -%else ; ARCH_X86_32 -cglobal hevc_sao_edge_filter_%1_8, 1, 6, 8, dst, src, dststride, a_stride, b_stride, height -%define eoq srcq -%define tmpq heightq -%define tmp2q dststrideq -%define offsetq heightq - HEVC_SAO_EDGE_FILTER_INIT - mov srcq, srcm - mov offsetq, r3m - mov dststrideq, dststridem -%endif ; ARCH - -%if mmsize > 16 - vbroadcasti128 m0, [offsetq] -%else - movu m0, [offsetq] -%endif - mova m1, [pb_edge_shuffle] - packsswb m0, m0 - mova m7, [pb_1] - pshufb m0, m1 - mova m6, [pb_2] -%if ARCH_X86_32 - mov heightd, r6m -%endif - -align 16 -.loop: - -%if %1 == 8 - movq m1, [srcq] - movq m2, [srcq + a_strideq] - movq m3, [srcq + b_strideq] - HEVC_SAO_EDGE_FILTER_COMPUTE %1 - movq [dstq], m3 -%endif - -%assign i 0 -%rep %2 - mova m1, [srcq + i] - movu m2, [srcq + a_strideq + i] - movu m3, [srcq + b_strideq + i] - HEVC_SAO_EDGE_FILTER_COMPUTE %1 - mov%3 [dstq + i], m3 -%assign i i+mmsize -%endrep - -%if %1 == 48 -INIT_XMM cpuname - - mova m1, [srcq + i] - movu m2, [srcq + a_strideq + i] - movu m3, [srcq + b_strideq + i] - HEVC_SAO_EDGE_FILTER_COMPUTE %1 - mova [dstq + i], m3 -%if cpuflag(avx2) -INIT_YMM cpuname -%endif -%endif - - add dstq, dststrideq - add srcq, EDGE_SRCSTRIDE - dec heightd - jg .loop - RET -%endmacro - -INIT_XMM ssse3 -HEVC_SAO_EDGE_FILTER 8, 0 -HEVC_SAO_EDGE_FILTER 16, 1, a -HEVC_SAO_EDGE_FILTER 32, 2, a -HEVC_SAO_EDGE_FILTER 48, 2, a -HEVC_SAO_EDGE_FILTER 64, 4, a - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -HEVC_SAO_EDGE_FILTER 32, 1, a -HEVC_SAO_EDGE_FILTER 48, 1, u -HEVC_SAO_EDGE_FILTER 64, 2, a -%endif diff --git a/libavcodec/x86/hevc_sao_10bit.asm b/libavcodec/x86/hevc_sao_10bit.asm deleted file mode 100644 index b30583dd2f..0000000000 --- a/libavcodec/x86/hevc_sao_10bit.asm +++ /dev/null @@ -1,370 +0,0 @@ -;****************************************************************************** -;* SIMD optimized SAO functions for HEVC 10/12bit decoding -;* -;* Copyright (c) 2013 Pierre-Edouard LEPERE -;* Copyright (c) 2014 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pw_m2: times 16 dw -2 -pw_mask10: times 16 dw 0x03FF -pw_mask12: times 16 dw 0x0FFF -pb_eo: db -1, 0, 1, 0, 0, -1, 0, 1, -1, -1, 1, 1, 1, -1, -1, 1 -cextern pw_m1 -cextern pw_1 -cextern pw_2 - -SECTION .text - -;****************************************************************************** -;SAO Band Filter -;****************************************************************************** - -%macro HEVC_SAO_BAND_FILTER_INIT 1 - and leftq, 31 - movd xm0, leftd - add leftq, 1 - and leftq, 31 - movd xm1, leftd - add leftq, 1 - and leftq, 31 - movd xm2, leftd - add leftq, 1 - and leftq, 31 - movd xm3, leftd - - SPLATW m0, xm0 - SPLATW m1, xm1 - SPLATW m2, xm2 - SPLATW m3, xm3 -%if mmsize > 16 - SPLATW m4, [offsetq + 2] - SPLATW m5, [offsetq + 4] - SPLATW m6, [offsetq + 6] - SPLATW m7, [offsetq + 8] -%else - movq m7, [offsetq + 2] - SPLATW m4, m7, 0 - SPLATW m5, m7, 1 - SPLATW m6, m7, 2 - SPLATW m7, m7, 3 -%endif - -%if ARCH_X86_64 - mova m13, [pw_mask %+ %1] - pxor m14, m14 - -%else ; ARCH_X86_32 - mova [rsp+mmsize*0], m0 - mova [rsp+mmsize*1], m1 - mova [rsp+mmsize*2], m2 - mova [rsp+mmsize*3], m3 - mova [rsp+mmsize*4], m4 - mova [rsp+mmsize*5], m5 - mova [rsp+mmsize*6], m6 - mova m1, [pw_mask %+ %1] - pxor m0, m0 - %define m14 m0 - %define m13 m1 - %define m9 m2 - %define m8 m3 -%endif ; ARCH -DEFINE_ARGS dst, src, dststride, srcstride, offset, height - mov heightd, r7m -%endmacro - -;void ff_hevc_sao_band_filter___(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src, -; int16_t *sao_offset_val, int sao_left_class, int width, int height); -%macro HEVC_SAO_BAND_FILTER 3 -cglobal hevc_sao_band_filter_%2_%1, 6, 6, 15, 7*mmsize*ARCH_X86_32, dst, src, dststride, srcstride, offset, left - HEVC_SAO_BAND_FILTER_INIT %1 - -align 16 -.loop: - -%assign i 0 -%assign j 0 -%rep %3 -%assign k 8+(j&1) -%assign l 9-(j&1) - mova m %+ k, [srcq + i] - psraw m %+ l, m %+ k, %1-5 -%if ARCH_X86_64 - pcmpeqw m10, m %+ l, m0 - pcmpeqw m11, m %+ l, m1 - pcmpeqw m12, m %+ l, m2 - pcmpeqw m %+ l, m3 - pand m10, m4 - pand m11, m5 - pand m12, m6 - pand m %+ l, m7 - por m10, m11 - por m12, m %+ l - por m10, m12 - paddw m %+ k, m10 -%else ; ARCH_X86_32 - pcmpeqw m4, m %+ l, [rsp+mmsize*0] - pcmpeqw m5, m %+ l, [rsp+mmsize*1] - pcmpeqw m6, m %+ l, [rsp+mmsize*2] - pcmpeqw m %+ l, [rsp+mmsize*3] - pand m4, [rsp+mmsize*4] - pand m5, [rsp+mmsize*5] - pand m6, [rsp+mmsize*6] - pand m %+ l, m7 - por m4, m5 - por m6, m %+ l - por m4, m6 - paddw m %+ k, m4 -%endif ; ARCH - CLIPW m %+ k, m14, m13 - mova [dstq + i], m %+ k -%assign i i+mmsize -%assign j j+1 -%endrep - - add dstq, dststrideq - add srcq, srcstrideq - dec heightd - jg .loop - REP_RET -%endmacro - -%macro HEVC_SAO_BAND_FILTER_FUNCS 0 -HEVC_SAO_BAND_FILTER 10, 8, 1 -HEVC_SAO_BAND_FILTER 10, 16, 2 -HEVC_SAO_BAND_FILTER 10, 32, 4 -HEVC_SAO_BAND_FILTER 10, 48, 6 -HEVC_SAO_BAND_FILTER 10, 64, 8 - -HEVC_SAO_BAND_FILTER 12, 8, 1 -HEVC_SAO_BAND_FILTER 12, 16, 2 -HEVC_SAO_BAND_FILTER 12, 32, 4 -HEVC_SAO_BAND_FILTER 12, 48, 6 -HEVC_SAO_BAND_FILTER 12, 64, 8 -%endmacro - -INIT_XMM sse2 -HEVC_SAO_BAND_FILTER_FUNCS -INIT_XMM avx -HEVC_SAO_BAND_FILTER_FUNCS - -%if HAVE_AVX2_EXTERNAL -INIT_XMM avx2 -HEVC_SAO_BAND_FILTER 10, 8, 1 -INIT_YMM avx2 -HEVC_SAO_BAND_FILTER 10, 16, 1 -HEVC_SAO_BAND_FILTER 10, 32, 2 -HEVC_SAO_BAND_FILTER 10, 48, 3 -HEVC_SAO_BAND_FILTER 10, 64, 4 - -INIT_XMM avx2 -HEVC_SAO_BAND_FILTER 12, 8, 1 -INIT_YMM avx2 -HEVC_SAO_BAND_FILTER 12, 16, 1 -HEVC_SAO_BAND_FILTER 12, 32, 2 -HEVC_SAO_BAND_FILTER 12, 48, 3 -HEVC_SAO_BAND_FILTER 12, 64, 4 -%endif - -;****************************************************************************** -;SAO Edge Filter -;****************************************************************************** - -%define MAX_PB_SIZE 64 -%define PADDING_SIZE 64 ; AV_INPUT_BUFFER_PADDING_SIZE -%define EDGE_SRCSTRIDE 2 * MAX_PB_SIZE + PADDING_SIZE - -%macro PMINUW 4 -%if cpuflag(sse4) - pminuw %1, %2, %3 -%else - psubusw %4, %2, %3 - psubw %1, %2, %4 -%endif -%endmacro - -%macro HEVC_SAO_EDGE_FILTER_INIT 0 -%if WIN64 - movsxd eoq, dword eom -%elif ARCH_X86_64 - movsxd eoq, eod -%else - mov eoq, r4m -%endif - lea tmp2q, [pb_eo] - movsx a_strideq, byte [tmp2q+eoq*4+1] - movsx b_strideq, byte [tmp2q+eoq*4+3] - imul a_strideq, EDGE_SRCSTRIDE >> 1 - imul b_strideq, EDGE_SRCSTRIDE >> 1 - movsx tmpq, byte [tmp2q+eoq*4] - add a_strideq, tmpq - movsx tmpq, byte [tmp2q+eoq*4+2] - add b_strideq, tmpq -%endmacro - -;void ff_hevc_sao_edge_filter___(uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, int16_t *sao_offset_val, -; int eo, int width, int height); -%macro HEVC_SAO_EDGE_FILTER 3 -%if ARCH_X86_64 -cglobal hevc_sao_edge_filter_%2_%1, 4, 9, 16, dst, src, dststride, offset, eo, a_stride, b_stride, height, tmp -%define tmp2q heightq - HEVC_SAO_EDGE_FILTER_INIT - mov heightd, r6m - add a_strideq, a_strideq - add b_strideq, b_strideq - -%else ; ARCH_X86_32 -cglobal hevc_sao_edge_filter_%2_%1, 1, 6, 8, 5*mmsize, dst, src, dststride, a_stride, b_stride, height -%define eoq srcq -%define tmpq heightq -%define tmp2q dststrideq -%define offsetq heightq -%define m8 m1 -%define m9 m2 -%define m10 m3 -%define m11 m4 -%define m12 m5 - HEVC_SAO_EDGE_FILTER_INIT - mov srcq, srcm - mov offsetq, r3m - mov dststrideq, dststridem - add a_strideq, a_strideq - add b_strideq, b_strideq - -%endif ; ARCH - -%if mmsize > 16 - SPLATW m8, [offsetq+2] - SPLATW m9, [offsetq+4] - SPLATW m10, [offsetq+0] - SPLATW m11, [offsetq+6] - SPLATW m12, [offsetq+8] -%else - movq m10, [offsetq+0] - movd m12, [offsetq+6] - SPLATW m8, xm10, 1 - SPLATW m9, xm10, 2 - SPLATW m10, xm10, 0 - SPLATW m11, xm12, 0 - SPLATW m12, xm12, 1 -%endif - pxor m0, m0 -%if ARCH_X86_64 - mova m13, [pw_m1] - mova m14, [pw_1] - mova m15, [pw_2] -%else - mov heightd, r6m - mova [rsp+mmsize*0], m8 - mova [rsp+mmsize*1], m9 - mova [rsp+mmsize*2], m10 - mova [rsp+mmsize*3], m11 - mova [rsp+mmsize*4], m12 -%endif - -align 16 -.loop: - -%assign i 0 -%rep %3 - mova m1, [srcq + i] - movu m2, [srcq+a_strideq + i] - movu m3, [srcq+b_strideq + i] - PMINUW m4, m1, m2, m6 - PMINUW m5, m1, m3, m7 - pcmpeqw m2, m4 - pcmpeqw m3, m5 - pcmpeqw m4, m1 - pcmpeqw m5, m1 - psubw m4, m2 - psubw m5, m3 - - paddw m4, m5 - pcmpeqw m2, m4, [pw_m2] -%if ARCH_X86_64 - pcmpeqw m3, m4, m13 - pcmpeqw m5, m4, m0 - pcmpeqw m6, m4, m14 - pcmpeqw m7, m4, m15 - pand m2, m8 - pand m3, m9 - pand m5, m10 - pand m6, m11 - pand m7, m12 -%else - pcmpeqw m3, m4, [pw_m1] - pcmpeqw m5, m4, m0 - pcmpeqw m6, m4, [pw_1] - pcmpeqw m7, m4, [pw_2] - pand m2, [rsp+mmsize*0] - pand m3, [rsp+mmsize*1] - pand m5, [rsp+mmsize*2] - pand m6, [rsp+mmsize*3] - pand m7, [rsp+mmsize*4] -%endif - paddw m2, m3 - paddw m5, m6 - paddw m2, m7 - paddw m2, m1 - paddw m2, m5 - CLIPW m2, m0, [pw_mask %+ %1] - mova [dstq + i], m2 -%assign i i+mmsize -%endrep - - add dstq, dststrideq - add srcq, EDGE_SRCSTRIDE - dec heightd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -HEVC_SAO_EDGE_FILTER 10, 8, 1 -HEVC_SAO_EDGE_FILTER 10, 16, 2 -HEVC_SAO_EDGE_FILTER 10, 32, 4 -HEVC_SAO_EDGE_FILTER 10, 48, 6 -HEVC_SAO_EDGE_FILTER 10, 64, 8 - -HEVC_SAO_EDGE_FILTER 12, 8, 1 -HEVC_SAO_EDGE_FILTER 12, 16, 2 -HEVC_SAO_EDGE_FILTER 12, 32, 4 -HEVC_SAO_EDGE_FILTER 12, 48, 6 -HEVC_SAO_EDGE_FILTER 12, 64, 8 - -%if HAVE_AVX2_EXTERNAL -INIT_XMM avx2 -HEVC_SAO_EDGE_FILTER 10, 8, 1 -INIT_YMM avx2 -HEVC_SAO_EDGE_FILTER 10, 16, 1 -HEVC_SAO_EDGE_FILTER 10, 32, 2 -HEVC_SAO_EDGE_FILTER 10, 48, 3 -HEVC_SAO_EDGE_FILTER 10, 64, 4 - -INIT_XMM avx2 -HEVC_SAO_EDGE_FILTER 12, 8, 1 -INIT_YMM avx2 -HEVC_SAO_EDGE_FILTER 12, 16, 1 -HEVC_SAO_EDGE_FILTER 12, 32, 2 -HEVC_SAO_EDGE_FILTER 12, 48, 3 -HEVC_SAO_EDGE_FILTER 12, 64, 4 -%endif diff --git a/libavcodec/x86/hpeldsp.asm b/libavcodec/x86/hpeldsp.asm deleted file mode 100644 index ce5d7a4e28..0000000000 --- a/libavcodec/x86/hpeldsp.asm +++ /dev/null @@ -1,591 +0,0 @@ -;****************************************************************************** -;* -;* Copyright (c) 2000-2001 Fabrice Bellard -;* Copyright (c) Nick Kurshev -;* Copyright (c) 2002 Michael Niedermayer -;* Copyright (c) 2002 Zdenek Kabelac -;* Copyright (c) 2013 Daniel Kang -;* -;* SIMD-optimized halfpel functions -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -cextern pb_1 -cextern pw_2 -pb_interleave16: db 0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15 -pb_interleave8: db 0, 4, 1, 5, 2, 6, 3, 7 - -cextern pw_8192 - -SECTION .text - -; void ff_put_pixels8_x2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_PIXELS8_X2 0 -%if cpuflag(sse2) -cglobal put_pixels16_x2, 4,5,4 -%else -cglobal put_pixels8_x2, 4,5 -%endif - lea r4, [r2*2] -.loop: - movu m0, [r1+1] - movu m1, [r1+r2+1] -%if cpuflag(sse2) - movu m2, [r1] - movu m3, [r1+r2] - pavgb m0, m2 - pavgb m1, m3 -%else - PAVGB m0, [r1] - PAVGB m1, [r1+r2] -%endif - mova [r0], m0 - mova [r0+r2], m1 - add r1, r4 - add r0, r4 - movu m0, [r1+1] - movu m1, [r1+r2+1] -%if cpuflag(sse2) - movu m2, [r1] - movu m3, [r1+r2] - pavgb m0, m2 - pavgb m1, m3 -%else - PAVGB m0, [r1] - PAVGB m1, [r1+r2] -%endif - add r1, r4 - mova [r0], m0 - mova [r0+r2], m1 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_PIXELS8_X2 -INIT_MMX 3dnow -PUT_PIXELS8_X2 - - -; void ff_put_pixels16_x2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_PIXELS_16 0 -cglobal put_pixels16_x2, 4,5 - lea r4, [r2*2] -.loop: - mova m0, [r1] - mova m1, [r1+r2] - mova m2, [r1+8] - mova m3, [r1+r2+8] - PAVGB m0, [r1+1] - PAVGB m1, [r1+r2+1] - PAVGB m2, [r1+9] - PAVGB m3, [r1+r2+9] - mova [r0], m0 - mova [r0+r2], m1 - mova [r0+8], m2 - mova [r0+r2+8], m3 - add r1, r4 - add r0, r4 - mova m0, [r1] - mova m1, [r1+r2] - mova m2, [r1+8] - mova m3, [r1+r2+8] - PAVGB m0, [r1+1] - PAVGB m1, [r1+r2+1] - PAVGB m2, [r1+9] - PAVGB m3, [r1+r2+9] - add r1, r4 - mova [r0], m0 - mova [r0+r2], m1 - mova [r0+8], m2 - mova [r0+r2+8], m3 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_PIXELS_16 -INIT_MMX 3dnow -PUT_PIXELS_16 -; The 8_X2 macro can easily be used here -INIT_XMM sse2 -PUT_PIXELS8_X2 - - -; void ff_put_no_rnd_pixels8_x2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_NO_RND_PIXELS8_X2 0 -cglobal put_no_rnd_pixels8_x2, 4,5 - mova m6, [pb_1] - lea r4, [r2*2] -.loop: - mova m0, [r1] - mova m2, [r1+r2] - mova m1, [r1+1] - mova m3, [r1+r2+1] - add r1, r4 - psubusb m0, m6 - psubusb m2, m6 - PAVGB m0, m1 - PAVGB m2, m3 - mova [r0], m0 - mova [r0+r2], m2 - mova m0, [r1] - mova m1, [r1+1] - mova m2, [r1+r2] - mova m3, [r1+r2+1] - add r0, r4 - add r1, r4 - psubusb m0, m6 - psubusb m2, m6 - PAVGB m0, m1 - PAVGB m2, m3 - mova [r0], m0 - mova [r0+r2], m2 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_NO_RND_PIXELS8_X2 -INIT_MMX 3dnow -PUT_NO_RND_PIXELS8_X2 - - -; void ff_put_pixels8_y2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_PIXELS8_Y2 0 -%if cpuflag(sse2) -cglobal put_pixels16_y2, 4,5,3 -%else -cglobal put_pixels8_y2, 4,5 -%endif - lea r4, [r2*2] - movu m0, [r1] - sub r0, r2 -.loop: - movu m1, [r1+r2] - movu m2, [r1+r4] - add r1, r4 - PAVGB m0, m1 - PAVGB m1, m2 - mova [r0+r2], m0 - mova [r0+r4], m1 - movu m1, [r1+r2] - movu m0, [r1+r4] - add r0, r4 - add r1, r4 - PAVGB m2, m1 - PAVGB m1, m0 - mova [r0+r2], m2 - mova [r0+r4], m1 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_PIXELS8_Y2 -INIT_MMX 3dnow -PUT_PIXELS8_Y2 -; actually, put_pixels16_y2_sse2 -INIT_XMM sse2 -PUT_PIXELS8_Y2 - - -; void ff_put_no_rnd_pixels8_y2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_NO_RND_PIXELS8_Y2 0 -cglobal put_no_rnd_pixels8_y2, 4,5 - mova m6, [pb_1] - lea r4, [r2+r2] - mova m0, [r1] - sub r0, r2 -.loop: - mova m1, [r1+r2] - mova m2, [r1+r4] - add r1, r4 - psubusb m1, m6 - PAVGB m0, m1 - PAVGB m1, m2 - mova [r0+r2], m0 - mova [r0+r4], m1 - mova m1, [r1+r2] - mova m0, [r1+r4] - add r0, r4 - add r1, r4 - psubusb m1, m6 - PAVGB m2, m1 - PAVGB m1, m0 - mova [r0+r2], m2 - mova [r0+r4], m1 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_NO_RND_PIXELS8_Y2 -INIT_MMX 3dnow -PUT_NO_RND_PIXELS8_Y2 - - -; void ff_avg_pixels8(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro AVG_PIXELS8 0 -cglobal avg_pixels8, 4,5 - lea r4, [r2*2] -.loop: - mova m0, [r0] - mova m1, [r0+r2] - PAVGB m0, [r1] - PAVGB m1, [r1+r2] - mova [r0], m0 - mova [r0+r2], m1 - add r1, r4 - add r0, r4 - mova m0, [r0] - mova m1, [r0+r2] - PAVGB m0, [r1] - PAVGB m1, [r1+r2] - add r1, r4 - mova [r0], m0 - mova [r0+r2], m1 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX 3dnow -AVG_PIXELS8 - - -; void ff_avg_pixels8_x2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro AVG_PIXELS8_X2 0 -%if cpuflag(sse2) -cglobal avg_pixels16_x2, 4,5,4 -%else -cglobal avg_pixels8_x2, 4,5 -%endif - lea r4, [r2*2] -%if notcpuflag(mmxext) - pcmpeqd m5, m5 - paddb m5, m5 -%endif -.loop: - movu m0, [r1] - movu m2, [r1+r2] -%if cpuflag(sse2) - movu m1, [r1+1] - movu m3, [r1+r2+1] - pavgb m0, m1 - pavgb m2, m3 -%else - PAVGB m0, [r1+1], m3, m5 - PAVGB m2, [r1+r2+1], m4, m5 -%endif - PAVGB m0, [r0], m3, m5 - PAVGB m2, [r0+r2], m4, m5 - add r1, r4 - mova [r0], m0 - mova [r0+r2], m2 - movu m0, [r1] - movu m2, [r1+r2] -%if cpuflag(sse2) - movu m1, [r1+1] - movu m3, [r1+r2+1] - pavgb m0, m1 - pavgb m2, m3 -%else - PAVGB m0, [r1+1], m3, m5 - PAVGB m2, [r1+r2+1], m4, m5 -%endif - add r0, r4 - add r1, r4 - PAVGB m0, [r0], m3, m5 - PAVGB m2, [r0+r2], m4, m5 - mova [r0], m0 - mova [r0+r2], m2 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmx -AVG_PIXELS8_X2 -INIT_MMX mmxext -AVG_PIXELS8_X2 -INIT_MMX 3dnow -AVG_PIXELS8_X2 -; actually avg_pixels16_x2 -INIT_XMM sse2 -AVG_PIXELS8_X2 - - -; void ff_avg_pixels8_y2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro AVG_PIXELS8_Y2 0 -%if cpuflag(sse2) -cglobal avg_pixels16_y2, 4,5,3 -%else -cglobal avg_pixels8_y2, 4,5 -%endif - lea r4, [r2*2] - movu m0, [r1] - sub r0, r2 -.loop: - movu m1, [r1+r2] - movu m2, [r1+r4] - add r1, r4 - PAVGB m0, m1 - PAVGB m1, m2 - PAVGB m0, [r0+r2] - PAVGB m1, [r0+r4] - mova [r0+r2], m0 - mova [r0+r4], m1 - movu m1, [r1+r2] - movu m0, [r1+r4] - PAVGB m2, m1 - PAVGB m1, m0 - add r0, r4 - add r1, r4 - PAVGB m2, [r0+r2] - PAVGB m1, [r0+r4] - mova [r0+r2], m2 - mova [r0+r4], m1 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -AVG_PIXELS8_Y2 -INIT_MMX 3dnow -AVG_PIXELS8_Y2 -; actually avg_pixels16_y2 -INIT_XMM sse2 -AVG_PIXELS8_Y2 - - -; void ff_avg_pixels8_xy2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -; Note this is not correctly rounded, and is therefore used for -; not-bitexact output -%macro AVG_APPROX_PIXELS8_XY2 0 -cglobal avg_approx_pixels8_xy2, 4,5 - mova m6, [pb_1] - lea r4, [r2*2] - mova m0, [r1] - PAVGB m0, [r1+1] -.loop: - mova m2, [r1+r4] - mova m1, [r1+r2] - psubusb m2, m6 - PAVGB m1, [r1+r2+1] - PAVGB m2, [r1+r4+1] - add r1, r4 - PAVGB m0, m1 - PAVGB m1, m2 - PAVGB m0, [r0] - PAVGB m1, [r0+r2] - mova [r0], m0 - mova [r0+r2], m1 - mova m1, [r1+r2] - mova m0, [r1+r4] - PAVGB m1, [r1+r2+1] - PAVGB m0, [r1+r4+1] - add r0, r4 - add r1, r4 - PAVGB m2, m1 - PAVGB m1, m0 - PAVGB m2, [r0] - PAVGB m1, [r0+r2] - mova [r0], m2 - mova [r0+r2], m1 - add r0, r4 - sub r3d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -AVG_APPROX_PIXELS8_XY2 -INIT_MMX 3dnow -AVG_APPROX_PIXELS8_XY2 - - -; void ff_avg_pixels16_xy2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro SET_PIXELS_XY2 1 -%if cpuflag(sse2) -cglobal %1_pixels16_xy2, 4,5,8 -%else -cglobal %1_pixels8_xy2, 4,5 -%endif - pxor m7, m7 - mova m6, [pw_2] - movu m0, [r1] - movu m4, [r1+1] - mova m1, m0 - mova m5, m4 - punpcklbw m0, m7 - punpcklbw m4, m7 - punpckhbw m1, m7 - punpckhbw m5, m7 - paddusw m4, m0 - paddusw m5, m1 - xor r4, r4 - add r1, r2 -.loop: - movu m0, [r1+r4] - movu m2, [r1+r4+1] - mova m1, m0 - mova m3, m2 - punpcklbw m0, m7 - punpcklbw m2, m7 - punpckhbw m1, m7 - punpckhbw m3, m7 - paddusw m0, m2 - paddusw m1, m3 - paddusw m4, m6 - paddusw m5, m6 - paddusw m4, m0 - paddusw m5, m1 - psrlw m4, 2 - psrlw m5, 2 -%ifidn %1, avg - mova m3, [r0+r4] - packuswb m4, m5 - PAVGB m4, m3 -%else - packuswb m4, m5 -%endif - mova [r0+r4], m4 - add r4, r2 - - movu m2, [r1+r4] - movu m4, [r1+r4+1] - mova m3, m2 - mova m5, m4 - punpcklbw m2, m7 - punpcklbw m4, m7 - punpckhbw m3, m7 - punpckhbw m5, m7 - paddusw m4, m2 - paddusw m5, m3 - paddusw m0, m6 - paddusw m1, m6 - paddusw m0, m4 - paddusw m1, m5 - psrlw m0, 2 - psrlw m1, 2 -%ifidn %1, avg - mova m3, [r0+r4] - packuswb m0, m1 - PAVGB m0, m3 -%else - packuswb m0, m1 -%endif - mova [r0+r4], m0 - add r4, r2 - sub r3d, 2 - jnz .loop - REP_RET -%endmacro - -INIT_MMX mmxext -SET_PIXELS_XY2 avg -INIT_MMX 3dnow -SET_PIXELS_XY2 avg -INIT_XMM sse2 -SET_PIXELS_XY2 put -SET_PIXELS_XY2 avg - -%macro SSSE3_PIXELS_XY2 1-2 -%if %0 == 2 ; sse2 -cglobal %1_pixels16_xy2, 4,5,%2 - mova m4, [pb_interleave16] -%else -cglobal %1_pixels8_xy2, 4,5 - mova m4, [pb_interleave8] -%endif - mova m5, [pb_1] - movu m0, [r1] - movu m1, [r1+1] - pmaddubsw m0, m5 - pmaddubsw m1, m5 - xor r4, r4 - add r1, r2 -.loop: - movu m2, [r1+r4] - movu m3, [r1+r4+1] - pmaddubsw m2, m5 - pmaddubsw m3, m5 - paddusw m0, m2 - paddusw m1, m3 - pmulhrsw m0, [pw_8192] - pmulhrsw m1, [pw_8192] -%ifidn %1, avg - mova m6, [r0+r4] - packuswb m0, m1 - pshufb m0, m4 - pavgb m0, m6 -%else - packuswb m0, m1 - pshufb m0, m4 -%endif - mova [r0+r4], m0 - add r4, r2 - - movu m0, [r1+r4] - movu m1, [r1+r4+1] - pmaddubsw m0, m5 - pmaddubsw m1, m5 - paddusw m2, m0 - paddusw m3, m1 - pmulhrsw m2, [pw_8192] - pmulhrsw m3, [pw_8192] -%ifidn %1, avg - mova m6, [r0+r4] - packuswb m2, m3 - pshufb m2, m4 - pavgb m2, m6 -%else - packuswb m2, m3 - pshufb m2, m4 -%endif - mova [r0+r4], m2 - add r4, r2 - sub r3d, 2 - jnz .loop - REP_RET -%endmacro - -INIT_MMX ssse3 -SSSE3_PIXELS_XY2 put -SSSE3_PIXELS_XY2 avg -INIT_XMM ssse3 -SSSE3_PIXELS_XY2 put, 6 -SSSE3_PIXELS_XY2 avg, 7 diff --git a/libavcodec/x86/hpeldsp_vp3.asm b/libavcodec/x86/hpeldsp_vp3.asm deleted file mode 100644 index cba96d06cb..0000000000 --- a/libavcodec/x86/hpeldsp_vp3.asm +++ /dev/null @@ -1,111 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized halfpel functions for VP3 -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -; void ff_put_no_rnd_pixels8_x2_exact(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_NO_RND_PIXELS8_X2_EXACT 0 -cglobal put_no_rnd_pixels8_x2_exact, 4,5 - lea r4, [r2*3] - pcmpeqb m6, m6 -.loop: - mova m0, [r1] - mova m2, [r1+r2] - mova m1, [r1+1] - mova m3, [r1+r2+1] - pxor m0, m6 - pxor m2, m6 - pxor m1, m6 - pxor m3, m6 - PAVGB m0, m1 - PAVGB m2, m3 - pxor m0, m6 - pxor m2, m6 - mova [r0], m0 - mova [r0+r2], m2 - mova m0, [r1+r2*2] - mova m1, [r1+r2*2+1] - mova m2, [r1+r4] - mova m3, [r1+r4+1] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6 - pxor m3, m6 - PAVGB m0, m1 - PAVGB m2, m3 - pxor m0, m6 - pxor m2, m6 - mova [r0+r2*2], m0 - mova [r0+r4], m2 - lea r1, [r1+r2*4] - lea r0, [r0+r2*4] - sub r3d, 4 - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_NO_RND_PIXELS8_X2_EXACT -INIT_MMX 3dnow -PUT_NO_RND_PIXELS8_X2_EXACT - - -; void ff_put_no_rnd_pixels8_y2_exact(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -%macro PUT_NO_RND_PIXELS8_Y2_EXACT 0 -cglobal put_no_rnd_pixels8_y2_exact, 4,5 - lea r4, [r2*3] - mova m0, [r1] - pcmpeqb m6, m6 - add r1, r2 - pxor m0, m6 -.loop: - mova m1, [r1] - mova m2, [r1+r2] - pxor m1, m6 - pxor m2, m6 - PAVGB m0, m1 - PAVGB m1, m2 - pxor m0, m6 - pxor m1, m6 - mova [r0], m0 - mova [r0+r2], m1 - mova m1, [r1+r2*2] - mova m0, [r1+r4] - pxor m1, m6 - pxor m0, m6 - PAVGB m2, m1 - PAVGB m1, m0 - pxor m2, m6 - pxor m1, m6 - mova [r0+r2*2], m2 - mova [r0+r4], m1 - lea r1, [r1+r2*4] - lea r0, [r0+r2*4] - sub r3d, 4 - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_NO_RND_PIXELS8_Y2_EXACT -INIT_MMX 3dnow -PUT_NO_RND_PIXELS8_Y2_EXACT diff --git a/libavcodec/x86/huffyuvdsp.asm b/libavcodec/x86/huffyuvdsp.asm deleted file mode 100644 index a1231f1b22..0000000000 --- a/libavcodec/x86/huffyuvdsp.asm +++ /dev/null @@ -1,164 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized HuffYUV functions -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2014 Christophe Gisquet -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%include "libavcodec/x86/huffyuvdsp_template.asm" - -;------------------------------------------------------------------------------ -; void (*add_int16)(uint16_t *dst, const uint16_t *src, unsigned mask, int w); -;------------------------------------------------------------------------------ - -%macro ADD_INT16 0 -cglobal add_int16, 4,4,5, dst, src, mask, w, tmp -%if mmsize > 8 - test srcq, mmsize-1 - jnz .unaligned - test dstq, mmsize-1 - jnz .unaligned -%endif - INT16_LOOP a, add -%if mmsize > 8 -.unaligned: - INT16_LOOP u, add -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -ADD_INT16 -%endif - -INIT_XMM sse2 -ADD_INT16 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -ADD_INT16 -%endif - -; void add_hfyu_left_pred_bgr32(uint8_t *dst, const uint8_t *src, -; intptr_t w, uint8_t *left) -%macro LEFT_BGR32 0 -cglobal add_hfyu_left_pred_bgr32, 4,4,3, dst, src, w, left - shl wq, 2 - movd m0, [leftq] - lea dstq, [dstq + wq] - lea srcq, [srcq + wq] - LSHIFT m0, mmsize-4 - neg wq -.loop: - movu m1, [srcq+wq] - mova m2, m1 -%if mmsize == 8 - punpckhdq m0, m0 -%endif - LSHIFT m1, 4 - paddb m1, m2 -%if mmsize == 16 - pshufd m0, m0, q3333 - mova m2, m1 - LSHIFT m1, 8 - paddb m1, m2 -%endif - paddb m0, m1 - movu [dstq+wq], m0 - add wq, mmsize - jl .loop - movd m0, [dstq-4] - movd [leftq], m0 - REP_RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -LEFT_BGR32 -%endif -INIT_XMM sse2 -LEFT_BGR32 - -; void add_hfyu_median_prediction_mmxext(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int mask, int w, int *left, int *left_top) -INIT_MMX mmxext -cglobal add_hfyu_median_pred_int16, 7,7,0, dst, top, diff, mask, w, left, left_top - add wd, wd - movd mm6, maskd - SPLATW mm6, mm6 - movq mm0, [topq] - movq mm2, mm0 - movd mm4, [left_topq] - psllq mm2, 16 - movq mm1, mm0 - por mm4, mm2 - movd mm3, [leftq] - psubw mm0, mm4 ; t-tl - add dstq, wq - add topq, wq - add diffq, wq - neg wq - jmp .skip -.loop: - movq mm4, [topq+wq] - movq mm0, mm4 - psllq mm4, 16 - por mm4, mm1 - movq mm1, mm0 ; t - psubw mm0, mm4 ; t-tl -.skip: - movq mm2, [diffq+wq] -%assign i 0 -%rep 4 - movq mm4, mm0 - paddw mm4, mm3 ; t-tl+l - pand mm4, mm6 - movq mm5, mm3 - pmaxsw mm3, mm1 - pminsw mm5, mm1 - pminsw mm3, mm4 - pmaxsw mm3, mm5 ; median - paddw mm3, mm2 ; +residual - pand mm3, mm6 -%if i==0 - movq mm7, mm3 - psllq mm7, 48 -%else - movq mm4, mm3 - psrlq mm7, 16 - psllq mm4, 48 - por mm7, mm4 -%endif -%if i<3 - psrlq mm0, 16 - psrlq mm1, 16 - psrlq mm2, 16 -%endif -%assign i i+1 -%endrep - movq [dstq+wq], mm7 - add wq, 8 - jl .loop - movzx r2d, word [dstq-2] - mov [leftq], r2d - movzx r2d, word [topq-2] - mov [left_topq], r2d - RET diff --git a/libavcodec/x86/huffyuvdsp_template.asm b/libavcodec/x86/huffyuvdsp_template.asm deleted file mode 100644 index 89721f4ec3..0000000000 --- a/libavcodec/x86/huffyuvdsp_template.asm +++ /dev/null @@ -1,76 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized HuffYUV functions -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2014 Christophe Gisquet -;* -;* 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 -;****************************************************************************** - -%macro INT16_LOOP 2 ; %1 = a/u (aligned/unaligned), %2 = add/sub - movd xm4, maskd - SPLATW m4, xm4 - add wd, wd - test wq, 2*mmsize - 1 - jz %%.tomainloop - push tmpq -%%.wordloop: - sub wq, 2 -%ifidn %2, add - mov tmpw, [srcq+wq] - add tmpw, [dstq+wq] -%else - mov tmpw, [src1q+wq] - sub tmpw, [src2q+wq] -%endif - and tmpw, maskw - mov [dstq+wq], tmpw - test wq, 2*mmsize - 1 - jnz %%.wordloop - pop tmpq -%%.tomainloop: -%ifidn %2, add - add srcq, wq -%else - add src1q, wq - add src2q, wq -%endif - add dstq, wq - neg wq - jz %%.end -%%.loop: -%ifidn %2, add - mov%1 m0, [srcq+wq] - mov%1 m1, [dstq+wq] - mov%1 m2, [srcq+wq+mmsize] - mov%1 m3, [dstq+wq+mmsize] -%else - mov%1 m0, [src1q+wq] - mov%1 m1, [src2q+wq] - mov%1 m2, [src1q+wq+mmsize] - mov%1 m3, [src2q+wq+mmsize] -%endif - p%2w m0, m1 - p%2w m2, m3 - pand m0, m4 - pand m2, m4 - mov%1 [dstq+wq] , m0 - mov%1 [dstq+wq+mmsize], m2 - add wq, 2*mmsize - jl %%.loop -%%.end: - RET -%endmacro diff --git a/libavcodec/x86/huffyuvencdsp.asm b/libavcodec/x86/huffyuvencdsp.asm deleted file mode 100644 index d994fd0fd6..0000000000 --- a/libavcodec/x86/huffyuvencdsp.asm +++ /dev/null @@ -1,105 +0,0 @@ -;************************************************************************ -;* SIMD-optimized HuffYUV encoding functions -;* Copyright (c) 2000, 2001 Fabrice Bellard -;* Copyright (c) 2002-2004 Michael Niedermayer -;* -;* MMX optimization by Nick Kurshev -;* Conversion to NASM format by Tiancheng "Timothy" Gu -;* -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION .text - -%include "libavcodec/x86/huffyuvdsp_template.asm" - -;------------------------------------------------------------------------------ -; void ff_diff_int16(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, -; unsigned mask, int w); -;------------------------------------------------------------------------------ - -%macro DIFF_INT16 0 -cglobal diff_int16, 5,5,5, dst, src1, src2, mask, w, tmp -%if mmsize > 8 - test src1q, mmsize-1 - jnz .unaligned - test src2q, mmsize-1 - jnz .unaligned - test dstq, mmsize-1 - jnz .unaligned -%endif - INT16_LOOP a, sub -%if mmsize > 8 -.unaligned: - INT16_LOOP u, sub -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -DIFF_INT16 -%endif - -INIT_XMM sse2 -DIFF_INT16 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -DIFF_INT16 -%endif - -INIT_MMX mmxext -cglobal sub_hfyu_median_pred_int16, 7,7,0, dst, src1, src2, mask, w, left, left_top - add wd, wd - movd mm7, maskd - SPLATW mm7, mm7 - movq mm0, [src1q] - movq mm2, [src2q] - psllq mm0, 16 - psllq mm2, 16 - movd mm6, [left_topq] - por mm0, mm6 - movd mm6, [leftq] - por mm2, mm6 - xor maskq, maskq -.loop: - movq mm1, [src1q + maskq] - movq mm3, [src2q + maskq] - movq mm4, mm2 - psubw mm2, mm0 - paddw mm2, mm1 - pand mm2, mm7 - movq mm5, mm4 - pmaxsw mm4, mm1 - pminsw mm1, mm5 - pminsw mm4, mm2 - pmaxsw mm4, mm1 - psubw mm3, mm4 - pand mm3, mm7 - movq [dstq + maskq], mm3 - add maskq, 8 - movq mm0, [src1q + maskq - 2] - movq mm2, [src2q + maskq - 2] - cmp maskq, wq - jb .loop - movzx maskd, word [src1q + wq - 2] - mov [left_topq], maskd - movzx maskd, word [src2q + wq - 2] - mov [leftq], maskd - RET diff --git a/libavcodec/x86/idctdsp.asm b/libavcodec/x86/idctdsp.asm deleted file mode 100644 index 089425a9ab..0000000000 --- a/libavcodec/x86/idctdsp.asm +++ /dev/null @@ -1,183 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized IDCT-related routines -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2003-2013 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pb_80 - -SECTION .text - -;-------------------------------------------------------------------------- -;void ff_put_signed_pixels_clamped(const int16_t *block, uint8_t *pixels, -; ptrdiff_t line_size) -;-------------------------------------------------------------------------- - -%macro PUT_SIGNED_PIXELS_CLAMPED_HALF 1 - mova m1, [blockq+mmsize*0+%1] - mova m2, [blockq+mmsize*2+%1] -%if mmsize == 8 - mova m3, [blockq+mmsize*4+%1] - mova m4, [blockq+mmsize*6+%1] -%endif - packsswb m1, [blockq+mmsize*1+%1] - packsswb m2, [blockq+mmsize*3+%1] -%if mmsize == 8 - packsswb m3, [blockq+mmsize*5+%1] - packsswb m4, [blockq+mmsize*7+%1] -%endif - paddb m1, m0 - paddb m2, m0 -%if mmsize == 8 - paddb m3, m0 - paddb m4, m0 - movq [pixelsq+lsizeq*0], m1 - movq [pixelsq+lsizeq*1], m2 - movq [pixelsq+lsizeq*2], m3 - movq [pixelsq+lsize3q ], m4 -%else - movq [pixelsq+lsizeq*0], m1 - movhps [pixelsq+lsizeq*1], m1 - movq [pixelsq+lsizeq*2], m2 - movhps [pixelsq+lsize3q ], m2 -%endif -%endmacro - -%macro PUT_SIGNED_PIXELS_CLAMPED 1 -cglobal put_signed_pixels_clamped, 3, 4, %1, block, pixels, lsize, lsize3 - mova m0, [pb_80] - lea lsize3q, [lsizeq*3] - PUT_SIGNED_PIXELS_CLAMPED_HALF 0 - lea pixelsq, [pixelsq+lsizeq*4] - PUT_SIGNED_PIXELS_CLAMPED_HALF 64 - RET -%endmacro - -INIT_MMX mmx -PUT_SIGNED_PIXELS_CLAMPED 0 -INIT_XMM sse2 -PUT_SIGNED_PIXELS_CLAMPED 3 - -;-------------------------------------------------------------------------- -; void ff_put_pixels_clamped(const int16_t *block, uint8_t *pixels, -; ptrdiff_t line_size); -;-------------------------------------------------------------------------- -; %1 = block offset -%macro PUT_PIXELS_CLAMPED_HALF 1 - mova m0, [blockq+mmsize*0+%1] - mova m1, [blockq+mmsize*2+%1] -%if mmsize == 8 - mova m2, [blockq+mmsize*4+%1] - mova m3, [blockq+mmsize*6+%1] -%endif - packuswb m0, [blockq+mmsize*1+%1] - packuswb m1, [blockq+mmsize*3+%1] -%if mmsize == 8 - packuswb m2, [blockq+mmsize*5+%1] - packuswb m3, [blockq+mmsize*7+%1] - movq [pixelsq], m0 - movq [lsizeq+pixelsq], m1 - movq [2*lsizeq+pixelsq], m2 - movq [lsize3q+pixelsq], m3 -%else - movq [pixelsq], m0 - movhps [lsizeq+pixelsq], m0 - movq [2*lsizeq+pixelsq], m1 - movhps [lsize3q+pixelsq], m1 -%endif -%endmacro - -%macro PUT_PIXELS_CLAMPED 0 -cglobal put_pixels_clamped, 3, 4, 2, block, pixels, lsize, lsize3 - lea lsize3q, [lsizeq*3] - PUT_PIXELS_CLAMPED_HALF 0 - lea pixelsq, [pixelsq+lsizeq*4] - PUT_PIXELS_CLAMPED_HALF 64 - RET -%endmacro - -INIT_MMX mmx -PUT_PIXELS_CLAMPED -INIT_XMM sse2 -PUT_PIXELS_CLAMPED - -;-------------------------------------------------------------------------- -; void ff_add_pixels_clamped(const int16_t *block, uint8_t *pixels, -; ptrdiff_t line_size); -;-------------------------------------------------------------------------- -; %1 = block offset -%macro ADD_PIXELS_CLAMPED 1 - mova m0, [blockq+mmsize*0+%1] - mova m1, [blockq+mmsize*1+%1] -%if mmsize == 8 - mova m5, [blockq+mmsize*2+%1] - mova m6, [blockq+mmsize*3+%1] -%endif - movq m2, [pixelsq] - movq m3, [pixelsq+lsizeq] -%if mmsize == 8 - mova m7, m2 - punpcklbw m2, m4 - punpckhbw m7, m4 - paddsw m0, m2 - paddsw m1, m7 - mova m7, m3 - punpcklbw m3, m4 - punpckhbw m7, m4 - paddsw m5, m3 - paddsw m6, m7 -%else - punpcklbw m2, m4 - punpcklbw m3, m4 - paddsw m0, m2 - paddsw m1, m3 -%endif - packuswb m0, m1 -%if mmsize == 8 - packuswb m5, m6 - movq [pixelsq], m0 - movq [pixelsq+lsizeq], m5 -%else - movq [pixelsq], m0 - movhps [pixelsq+lsizeq], m0 -%endif -%endmacro - -%macro ADD_PIXELS_CLAMPED 0 -cglobal add_pixels_clamped, 3, 3, 5, block, pixels, lsize - pxor m4, m4 - ADD_PIXELS_CLAMPED 0 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 32 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 64 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 96 - RET -%endmacro - -INIT_MMX mmx -ADD_PIXELS_CLAMPED -INIT_XMM sse2 -ADD_PIXELS_CLAMPED diff --git a/libavcodec/x86/imdct36.asm b/libavcodec/x86/imdct36.asm deleted file mode 100644 index b386ab95fc..0000000000 --- a/libavcodec/x86/imdct36.asm +++ /dev/null @@ -1,741 +0,0 @@ -;****************************************************************************** -;* 36 point SSE-optimized IMDCT transform -;* Copyright (c) 2011 Vitor Sessak -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -ps_mask: dd 0, ~0, ~0, ~0 -ps_mask2: dd 0, ~0, 0, ~0 -ps_mask3: dd 0, 0, 0, ~0 -ps_mask4: dd 0, ~0, 0, 0 - -ps_val1: dd -0.5, -0.5, -0.8660254038, -0.8660254038 -ps_val2: dd 1.0, 1.0, 0.8660254038, 0.8660254038 -ps_val3: dd 0.1736481777, 0.1736481777, 0.3420201433, 0.3420201433 -ps_val4: dd -0.7660444431, -0.7660444431, 0.8660254038, 0.8660254038 -ps_val5: dd -0.9396926208, -0.9396926208, -0.9848077530, -0.9848077530 -ps_val6: dd 0.5, 0.5, -0.6427876097, -0.6427876097 -ps_val7: dd 1.0, 1.0, -0.6427876097, -0.6427876097 - -ps_p1p1m1m1: dd 0, 0, 0x80000000, 0x80000000 -ps_p1m1p1m1: dd 0, 0x80000000, 0, 0x80000000 - -ps_cosh: dd 1.0, 0.50190991877167369479, 1.0, 5.73685662283492756461 - dd 1.0, 0.51763809020504152469, 1.0, 1.93185165257813657349 - dd 1.0, 0.55168895948124587824, -1.0, -1.18310079157624925896 - dd 1.0, 0.61038729438072803416, -1.0, -0.87172339781054900991 - dd 1.0, 0.70710678118654752439, 0.0, 0.0 - -ps_cosh_sse3: dd 1.0, -0.50190991877167369479, 1.0, -5.73685662283492756461 - dd 1.0, -0.51763809020504152469, 1.0, -1.93185165257813657349 - dd 1.0, -0.55168895948124587824, -1.0, 1.18310079157624925896 - dd 1.0, -0.61038729438072803416, -1.0, 0.87172339781054900991 - dd 1.0, -0.70710678118654752439, 0.0, 0.0 - -costabs: times 4 dd 0.98480773 - times 4 dd 0.93969262 - times 4 dd 0.86602539 - times 4 dd -0.76604444 - times 4 dd -0.64278764 - times 4 dd 0.50000000 - times 4 dd -0.50000000 - times 4 dd -0.34202015 - times 4 dd -0.17364818 - times 4 dd 0.50190992 - times 4 dd 0.51763808 - times 4 dd 0.55168896 - times 4 dd 0.61038726 - times 4 dd 0.70710677 - times 4 dd 0.87172341 - times 4 dd 1.18310082 - times 4 dd 1.93185163 - times 4 dd 5.73685646 - -%define SBLIMIT 32 -SECTION .text - -%macro PSHUFD 3 -%if cpuflag(sse2) && notcpuflag(avx) - pshufd %1, %2, %3 -%else - shufps %1, %2, %2, %3 -%endif -%endmacro - -; input %2={x1,x2,x3,x4}, %3={y1,y2,y3,y4} -; output %1={x3,x4,y1,y2} -%macro BUILDINVHIGHLOW 3 -%if cpuflag(avx) - shufps %1, %2, %3, 0x4e -%else - movlhps %1, %3 - movhlps %1, %2 -%endif -%endmacro - -; input %2={x1,x2,x3,x4}, %3={y1,y2,y3,y4} -; output %1={x4,y1,y2,y3} -%macro ROTLEFT 3 -%if cpuflag(ssse3) - palignr %1, %3, %2, 12 -%else - BUILDINVHIGHLOW %1, %2, %3 - shufps %1, %1, %3, 0x99 -%endif -%endmacro - -%macro INVERTHL 2 -%if cpuflag(sse2) - PSHUFD %1, %2, 0x4e -%else - movhlps %1, %2 - movlhps %1, %2 -%endif -%endmacro - -%macro BUTTERF 3 - INVERTHL %2, %1 - xorps %1, [ps_p1p1m1m1] - addps %1, %2 -%if cpuflag(sse3) - mulps %1, %1, [ps_cosh_sse3 + %3] - PSHUFD %2, %1, 0xb1 - addsubps %1, %1, %2 -%else - mulps %1, [ps_cosh + %3] - PSHUFD %2, %1, 0xb1 - xorps %1, [ps_p1m1p1m1] - addps %1, %2 -%endif -%endmacro - -%macro BUTTERF2 3 -%if cpuflag(sse3) - mulps %1, %1, [ps_cosh_sse3 + %3] - PSHUFD %2, %1, 0xe1 - addsubps %1, %1, %2 -%else - mulps %1, [ps_cosh + %3] - PSHUFD %2, %1, 0xe1 - xorps %1, [ps_p1m1p1m1] - addps %1, %2 -%endif -%endmacro - -%macro STORE 4 -%if cpuflag(sse4) - movss [%3 ], %1 - extractps dword [%3 + %4], %1, 1 - extractps dword [%3 + 2*%4], %1, 2 - extractps dword [%3 + 3*%4], %1, 3 -%else - movhlps %2, %1 - movss [%3 ], %1 - movss [%3 + 2*%4], %2 - shufps %1, %1, 0xb1 - movss [%3 + %4], %1 - movhlps %2, %1 - movss [%3 + 3*%4], %2 -%endif -%endmacro - -%macro LOAD 4 - movlps %1, [%3 ] - movhps %1, [%3 + %4] - movlps %2, [%3 + 2*%4] - movhps %2, [%3 + 3*%4] - shufps %1, %2, 0x88 -%endmacro - -%macro LOADA64 2 -%if cpuflag(avx) - movu %1, [%2] -%else - movlps %1, [%2] - movhps %1, [%2 + 8] -%endif -%endmacro - -%macro DEFINE_IMDCT 0 -cglobal imdct36_float, 4,4,9, out, buf, in, win - - ; for(i=17;i>=1;i--) in[i] += in[i-1]; - LOADA64 m0, inq - LOADA64 m1, inq + 16 - - ROTLEFT m5, m0, m1 - - PSHUFD m6, m0, 0x93 - andps m6, m6, [ps_mask] - addps m0, m0, m6 - - LOADA64 m2, inq + 32 - - ROTLEFT m7, m1, m2 - - addps m1, m1, m5 - LOADA64 m3, inq + 48 - - ROTLEFT m5, m2, m3 - - xorps m4, m4, m4 - movlps m4, [inq+64] - BUILDINVHIGHLOW m6, m3, m4 - shufps m6, m6, m4, 0xa9 - - addps m4, m4, m6 - addps m2, m2, m7 - addps m3, m3, m5 - - ; for(i=17;i>=3;i-=2) in[i] += in[i-2]; - movlhps m5, m5, m0 - andps m5, m5, [ps_mask3] - - BUILDINVHIGHLOW m7, m0, m1 - andps m7, m7, [ps_mask2] - - addps m0, m0, m5 - - BUILDINVHIGHLOW m6, m1, m2 - andps m6, m6, [ps_mask2] - - addps m1, m1, m7 - - BUILDINVHIGHLOW m7, m2, m3 - andps m7, m7, [ps_mask2] - - addps m2, m2, m6 - - movhlps m6, m6, m3 - andps m6, m6, [ps_mask4] - - addps m3, m3, m7 - addps m4, m4, m6 - - ; Populate tmp[] - movlhps m6, m1, m5 ; zero out high values - subps m6, m6, m4 - - subps m5, m0, m3 - -%if ARCH_X86_64 - SWAP m5, m8 -%endif - - mulps m7, m2, [ps_val1] - -%if ARCH_X86_64 - mulps m5, m8, [ps_val2] -%else - mulps m5, m5, [ps_val2] -%endif - addps m7, m7, m5 - - mulps m5, m6, [ps_val1] - subps m7, m7, m5 - -%if ARCH_X86_64 - SWAP m5, m8 -%else - subps m5, m0, m3 -%endif - - subps m5, m5, m6 - addps m5, m5, m2 - - shufps m6, m4, m3, 0xe4 - subps m6, m6, m2 - mulps m6, m6, [ps_val3] - - addps m4, m4, m1 - mulps m4, m4, [ps_val4] - - shufps m1, m1, m0, 0xe4 - addps m1, m1, m2 - mulps m1, m1, [ps_val5] - - mulps m3, m3, [ps_val6] - mulps m0, m0, [ps_val7] - addps m0, m0, m3 - - xorps m2, m1, [ps_p1p1m1m1] - subps m2, m2, m4 - addps m2, m2, m0 - - addps m3, m4, m0 - subps m3, m3, m6 - xorps m3, m3, [ps_p1p1m1m1] - - shufps m0, m0, m4, 0xe4 - subps m0, m0, m1 - addps m0, m0, m6 - - BUILDINVHIGHLOW m4, m2, m3 - shufps m3, m3, m2, 0x4e - - ; we have tmp = {SwAPLH(m0), SwAPLH(m7), m3, m4, m5} - - BUTTERF m0, m1, 0 - BUTTERF m7, m2, 16 - BUTTERF m3, m6, 32 - BUTTERF m4, m1, 48 - BUTTERF2 m5, m1, 64 - - ; permutates: - ; m0 0 1 2 3 => 2 6 10 14 m1 - ; m7 4 5 6 7 => 3 7 11 15 m2 - ; m3 8 9 10 11 => 17 13 9 5 m3 - ; m4 12 13 14 15 => 16 12 8 4 m5 - ; m5 16 17 xx xx => 0 1 xx xx m0 - - unpckhps m1, m0, m7 - unpckhps m6, m3, m4 - movhlps m2, m6, m1 - movlhps m1, m1, m6 - - unpcklps m5, m5, m4 - unpcklps m3, m3, m7 - movhlps m4, m3, m5 - movlhps m5, m5, m3 - SWAP m4, m3 - ; permutation done - - PSHUFD m6, m2, 0xb1 - movss m4, [bufq + 4*68] - movss m7, [bufq + 4*64] - unpcklps m7, m7, m4 - mulps m6, m6, [winq + 16*4] - addps m6, m6, m7 - movss [outq + 64*SBLIMIT], m6 - shufps m6, m6, m6, 0xb1 - movss [outq + 68*SBLIMIT], m6 - - mulps m6, m3, [winq + 4*4] - LOAD m4, m7, bufq + 4*16, 16 - addps m6, m6, m4 - STORE m6, m7, outq + 16*SBLIMIT, 4*SBLIMIT - - shufps m4, m0, m3, 0xb5 - mulps m4, m4, [winq + 8*4] - LOAD m7, m6, bufq + 4*32, 16 - addps m4, m4, m7 - STORE m4, m6, outq + 32*SBLIMIT, 4*SBLIMIT - - shufps m3, m3, m2, 0xb1 - mulps m3, m3, [winq + 12*4] - LOAD m7, m6, bufq + 4*48, 16 - addps m3, m3, m7 - STORE m3, m7, outq + 48*SBLIMIT, 4*SBLIMIT - - mulps m2, m2, [winq] - LOAD m6, m7, bufq, 16 - addps m2, m2, m6 - STORE m2, m7, outq, 4*SBLIMIT - - mulps m4, m1, [winq + 20*4] - STORE m4, m7, bufq, 16 - - mulps m3, m5, [winq + 24*4] - STORE m3, m7, bufq + 4*16, 16 - - shufps m0, m0, m5, 0xb0 - mulps m0, m0, [winq + 28*4] - STORE m0, m7, bufq + 4*32, 16 - - shufps m5, m5, m1, 0xb1 - mulps m5, m5, [winq + 32*4] - STORE m5, m7, bufq + 4*48, 16 - - shufps m1, m1, m1, 0xb1 - mulps m1, m1, [winq + 36*4] - movss [bufq + 4*64], m1 - shufps m1, m1, 0xb1 - movss [bufq + 4*68], m1 - RET -%endmacro - -%if ARCH_X86_32 -INIT_XMM sse -DEFINE_IMDCT -%endif - -INIT_XMM sse2 -DEFINE_IMDCT - -INIT_XMM sse3 -DEFINE_IMDCT - -INIT_XMM ssse3 -DEFINE_IMDCT - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEFINE_IMDCT -%endif - -INIT_XMM sse - -%if ARCH_X86_64 -%define SPILL SWAP -%define UNSPILL SWAP -%define SPILLED(x) m %+ x -%else -%define SPILLED(x) [tmpq+(x-8)*16 + 32*4] -%macro SPILL 2 ; xmm#, mempos - movaps SPILLED(%2), m%1 -%endmacro -%macro UNSPILL 2 - movaps m%1, SPILLED(%2) -%endmacro -%endif - -%macro DEFINE_FOUR_IMDCT 0 -cglobal four_imdct36_float, 5,5,16, out, buf, in, win, tmp - movlps m0, [inq+64] - movhps m0, [inq+64 + 72] - movlps m3, [inq+64 + 2*72] - movhps m3, [inq+64 + 3*72] - - shufps m5, m0, m3, 0xdd - shufps m0, m0, m3, 0x88 - - mova m1, [inq+48] - movu m6, [inq+48 + 72] - mova m7, [inq+48 + 2*72] - movu m3, [inq+48 + 3*72] - - TRANSPOSE4x4PS 1, 6, 7, 3, 4 - - addps m4, m6, m7 - mova [tmpq+4*28], m4 - - addps m7, m3 - addps m6, m1 - addps m3, m0 - addps m0, m5 - addps m0, m7 - addps m7, m6 - mova [tmpq+4*12], m7 - SPILL 3, 12 - - mova m4, [inq+32] - movu m5, [inq+32 + 72] - mova m2, [inq+32 + 2*72] - movu m7, [inq+32 + 3*72] - - TRANSPOSE4x4PS 4, 5, 2, 7, 3 - - addps m1, m7 - SPILL 1, 11 - - addps m3, m5, m2 - SPILL 3, 13 - - addps m7, m2 - addps m5, m4 - addps m6, m7 - mova [tmpq], m6 - addps m7, m5 - mova [tmpq+4*16], m7 - - mova m2, [inq+16] - movu m7, [inq+16 + 72] - mova m1, [inq+16 + 2*72] - movu m6, [inq+16 + 3*72] - - TRANSPOSE4x4PS 2, 7, 1, 6, 3 - - addps m4, m6 - addps m6, m1 - addps m1, m7 - addps m7, m2 - addps m5, m6 - SPILL 5, 15 - addps m6, m7 - mulps m6, [costabs + 16*2] - mova [tmpq+4*8], m6 - SPILL 1, 10 - SPILL 0, 14 - - mova m1, [inq] - movu m6, [inq + 72] - mova m3, [inq + 2*72] - movu m5, [inq + 3*72] - - TRANSPOSE4x4PS 1, 6, 3, 5, 0 - - addps m2, m5 - addps m5, m3 - addps m7, m5 - addps m3, m6 - addps m6, m1 - SPILL 7, 8 - addps m5, m6 - SPILL 6, 9 - addps m6, m4, SPILLED(12) - subps m6, m2 - UNSPILL 7, 11 - SPILL 5, 11 - subps m5, m1, m7 - mulps m7, [costabs + 16*5] - addps m7, m1 - mulps m0, m6, [costabs + 16*6] - addps m0, m5 - mova [tmpq+4*24], m0 - addps m6, m5 - mova [tmpq+4*4], m6 - addps m6, m4, m2 - mulps m6, [costabs + 16*1] - subps m4, SPILLED(12) - mulps m4, [costabs + 16*8] - addps m2, SPILLED(12) - mulps m2, [costabs + 16*3] - subps m5, m7, m6 - subps m5, m2 - addps m6, m7 - addps m6, m4 - addps m7, m2 - subps m7, m4 - mova [tmpq+4*20], m7 - mova m2, [tmpq+4*28] - mova [tmpq+4*28], m5 - UNSPILL 7, 13 - subps m5, m7, m2 - mulps m5, [costabs + 16*7] - UNSPILL 1, 10 - mulps m1, [costabs + 16*2] - addps m4, m3, m2 - mulps m4, [costabs + 16*4] - addps m2, m7 - addps m7, m3 - mulps m7, [costabs] - subps m3, m2 - mulps m3, [costabs + 16*2] - addps m2, m7, m5 - addps m2, m1 - SPILL 2, 10 - addps m7, m4 - subps m7, m1 - SPILL 7, 12 - subps m5, m4 - subps m5, m1 - UNSPILL 0, 14 - SPILL 5, 13 - addps m1, m0, SPILLED(15) - subps m1, SPILLED(8) - mova m4, [costabs + 16*5] - mulps m4, [tmpq] - UNSPILL 2, 9 - addps m4, m2 - subps m2, [tmpq] - mulps m5, m1, [costabs + 16*6] - addps m5, m2 - SPILL 5, 9 - addps m2, m1 - SPILL 2, 14 - UNSPILL 5, 15 - subps m7, m5, m0 - addps m5, SPILLED(8) - mulps m5, [costabs + 16*1] - mulps m7, [costabs + 16*8] - addps m0, SPILLED(8) - mulps m0, [costabs + 16*3] - subps m2, m4, m5 - subps m2, m0 - SPILL 2, 15 - addps m5, m4 - addps m5, m7 - addps m4, m0 - subps m4, m7 - SPILL 4, 8 - mova m7, [tmpq+4*16] - mova m2, [tmpq+4*12] - addps m0, m7, m2 - subps m0, SPILLED(11) - mulps m0, [costabs + 16*2] - addps m4, m7, SPILLED(11) - mulps m4, [costabs] - subps m7, m2 - mulps m7, [costabs + 16*7] - addps m2, SPILLED(11) - mulps m2, [costabs + 16*4] - addps m1, m7, [tmpq+4*8] - addps m1, m4 - addps m4, m2 - subps m4, [tmpq+4*8] - SPILL 4, 11 - subps m7, m2 - subps m7, [tmpq+4*8] - addps m4, m6, SPILLED(10) - subps m6, SPILLED(10) - addps m2, m5, m1 - mulps m2, [costabs + 16*9] - subps m5, m1 - mulps m5, [costabs + 16*17] - subps m1, m4, m2 - addps m4, m2 - mulps m2, m1, [winq+4*36] - addps m2, [bufq+4*36] - mova [outq+1152], m2 - mulps m1, [winq+4*32] - addps m1, [bufq+4*32] - mova [outq+1024], m1 - mulps m1, m4, [winq+4*116] - mova [bufq+4*36], m1 - mulps m4, [winq+4*112] - mova [bufq+4*32], m4 - addps m2, m6, m5 - subps m6, m5 - mulps m1, m6, [winq+4*68] - addps m1, [bufq+4*68] - mova [outq+2176], m1 - mulps m6, [winq] - addps m6, [bufq] - mova [outq], m6 - mulps m1, m2, [winq+4*148] - mova [bufq+4*68], m1 - mulps m2, [winq+4*80] - mova [bufq], m2 - addps m5, m3, [tmpq+4*24] - mova m2, [tmpq+4*24] - subps m2, m3 - mova m1, SPILLED(9) - subps m1, m0 - mulps m1, [costabs + 16*10] - addps m0, SPILLED(9) - mulps m0, [costabs + 16*16] - addps m6, m5, m1 - subps m5, m1 - mulps m3, m5, [winq+4*40] - addps m3, [bufq+4*40] - mova [outq+1280], m3 - mulps m5, [winq+4*28] - addps m5, [bufq+4*28] - mova [outq+896], m5 - mulps m1, m6, [winq+4*120] - mova [bufq+4*40], m1 - mulps m6, [winq+4*108] - mova [bufq+4*28], m6 - addps m1, m2, m0 - subps m2, m0 - mulps m5, m2, [winq+4*64] - addps m5, [bufq+4*64] - mova [outq+2048], m5 - mulps m2, [winq+4*4] - addps m2, [bufq+4*4] - mova [outq+128], m2 - mulps m0, m1, [winq+4*144] - mova [bufq+4*64], m0 - mulps m1, [winq+4*84] - mova [bufq+4*4], m1 - mova m1, [tmpq+4*28] - mova m5, m1 - addps m1, SPILLED(13) - subps m5, SPILLED(13) - UNSPILL 3, 15 - addps m2, m7, m3 - mulps m2, [costabs + 16*11] - subps m3, m7 - mulps m3, [costabs + 16*15] - addps m0, m2, m1 - subps m1, m2 - SWAP m0, m2 - mulps m6, m1, [winq+4*44] - addps m6, [bufq+4*44] - mova [outq+1408], m6 - mulps m1, [winq+4*24] - addps m1, [bufq+4*24] - mova [outq+768], m1 - mulps m0, m2, [winq+4*124] - mova [bufq+4*44], m0 - mulps m2, [winq+4*104] - mova [bufq+4*24], m2 - addps m0, m5, m3 - subps m5, m3 - mulps m1, m5, [winq+4*60] - addps m1, [bufq+4*60] - mova [outq+1920], m1 - mulps m5, [winq+4*8] - addps m5, [bufq+4*8] - mova [outq+256], m5 - mulps m1, m0, [winq+4*140] - mova [bufq+4*60], m1 - mulps m0, [winq+4*88] - mova [bufq+4*8], m0 - mova m1, [tmpq+4*20] - addps m1, SPILLED(12) - mova m2, [tmpq+4*20] - subps m2, SPILLED(12) - UNSPILL 7, 8 - subps m0, m7, SPILLED(11) - addps m7, SPILLED(11) - mulps m4, m7, [costabs + 16*12] - mulps m0, [costabs + 16*14] - addps m5, m1, m4 - subps m1, m4 - mulps m7, m1, [winq+4*48] - addps m7, [bufq+4*48] - mova [outq+1536], m7 - mulps m1, [winq+4*20] - addps m1, [bufq+4*20] - mova [outq+640], m1 - mulps m1, m5, [winq+4*128] - mova [bufq+4*48], m1 - mulps m5, [winq+4*100] - mova [bufq+4*20], m5 - addps m6, m2, m0 - subps m2, m0 - mulps m1, m2, [winq+4*56] - addps m1, [bufq+4*56] - mova [outq+1792], m1 - mulps m2, [winq+4*12] - addps m2, [bufq+4*12] - mova [outq+384], m2 - mulps m0, m6, [winq+4*136] - mova [bufq+4*56], m0 - mulps m6, [winq+4*92] - mova [bufq+4*12], m6 - UNSPILL 0, 14 - mulps m0, [costabs + 16*13] - mova m3, [tmpq+4*4] - addps m2, m0, m3 - subps m3, m0 - mulps m0, m3, [winq+4*52] - addps m0, [bufq+4*52] - mova [outq+1664], m0 - mulps m3, [winq+4*16] - addps m3, [bufq+4*16] - mova [outq+512], m3 - mulps m0, m2, [winq+4*132] - mova [bufq+4*52], m0 - mulps m2, [winq+4*96] - mova [bufq+4*16], m2 - RET -%endmacro - -INIT_XMM sse -DEFINE_FOUR_IMDCT - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -DEFINE_FOUR_IMDCT -%endif diff --git a/libavcodec/x86/jpeg2000dsp.asm b/libavcodec/x86/jpeg2000dsp.asm deleted file mode 100644 index 61dfdd4f71..0000000000 --- a/libavcodec/x86/jpeg2000dsp.asm +++ /dev/null @@ -1,164 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized JPEG2000 DSP functions -;* Copyright (c) 2014 Nicolas Bertrand -;* Copyright (c) 2015 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pf_ict0: times 8 dd 1.402 -pf_ict1: times 8 dd 0.34413 -pf_ict2: times 8 dd 0.71414 -pf_ict3: times 8 dd 1.772 - -SECTION .text - -;*********************************************************************** -; ff_ict_float_(float *src0, float *src1, float *src2, int csize) -;*********************************************************************** -%macro ICT_FLOAT 1 -cglobal ict_float, 4, 4, %1, src0, src1, src2, csize - shl csized, 2 - add src0q, csizeq - add src1q, csizeq - add src2q, csizeq - neg csizeq - movaps m6, [pf_ict0] - movaps m7, [pf_ict1] - %define ICT0 m6 - %define ICT1 m7 - -%if ARCH_X86_64 - movaps m8, [pf_ict2] - %define ICT2 m8 -%if cpuflag(avx) - movaps m3, [pf_ict3] - %define ICT3 m3 -%else - movaps m9, [pf_ict3] - %define ICT3 m9 -%endif - -%else ; ARCH_X86_32 - %define ICT2 [pf_ict2] -%if cpuflag(avx) - movaps m3, [pf_ict3] - %define ICT3 m3 -%else - %define ICT3 [pf_ict3] -%endif - -%endif ; ARCH - -align 16 -.loop: - movaps m0, [src0q+csizeq] - movaps m1, [src1q+csizeq] - movaps m2, [src2q+csizeq] - -%if cpuflag(fma4) || cpuflag(fma3) -%if cpuflag(fma4) - fnmaddps m5, m1, ICT1, m0 - fmaddps m4, m2, ICT0, m0 -%else ; fma3 - movaps m5, m1 - movaps m4, m2 - fnmaddps m5, m5, ICT1, m0 - fmaddps m4, m4, ICT0, m0 -%endif - fmaddps m0, m1, ICT3, m0 - fnmaddps m5, m2, ICT2, m5 -%else ; non FMA -%if cpuflag(avx) - mulps m5, m1, ICT1 - mulps m4, m2, ICT0 - mulps m1, m1, ICT3 - mulps m2, m2, ICT2 - subps m5, m0, m5 -%else ; sse - movaps m3, m1 - movaps m4, m2 - movaps m5, m0 - mulps m3, ICT1 - mulps m4, ICT0 - mulps m1, ICT3 - mulps m2, ICT2 - subps m5, m3 -%endif - addps m4, m4, m0 - addps m0, m0, m1 - subps m5, m5, m2 -%endif - - movaps [src0q+csizeq], m4 - movaps [src2q+csizeq], m0 - movaps [src1q+csizeq], m5 - add csizeq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse -ICT_FLOAT 10 -INIT_YMM avx -ICT_FLOAT 9 -%if HAVE_FMA4_EXTERNAL -INIT_XMM fma4 -ICT_FLOAT 9 -%endif -INIT_YMM fma3 -ICT_FLOAT 9 - -;*************************************************************************** -; ff_rct_int_(int32_t *src0, int32_t *src1, int32_t *src2, int csize) -;*************************************************************************** -%macro RCT_INT 0 -cglobal rct_int, 4, 4, 4, src0, src1, src2, csize - shl csized, 2 - add src0q, csizeq - add src1q, csizeq - add src2q, csizeq - neg csizeq - -align 16 -.loop: - mova m1, [src1q+csizeq] - mova m2, [src2q+csizeq] - mova m0, [src0q+csizeq] - paddd m3, m1, m2 - psrad m3, 2 - psubd m0, m3 - paddd m1, m0 - paddd m2, m0 - mova [src1q+csizeq], m0 - mova [src2q+csizeq], m1 - mova [src0q+csizeq], m2 - add csizeq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -RCT_INT -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -RCT_INT -%endif diff --git a/libavcodec/x86/lossless_audiodsp.asm b/libavcodec/x86/lossless_audiodsp.asm deleted file mode 100644 index 063d7b41af..0000000000 --- a/libavcodec/x86/lossless_audiodsp.asm +++ /dev/null @@ -1,190 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2008 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro SCALARPRODUCT 0 -; int ff_scalarproduct_and_madd_int16(int16_t *v1, int16_t *v2, int16_t *v3, -; int order, int mul) -cglobal scalarproduct_and_madd_int16, 4,4,8, v1, v2, v3, order, mul - shl orderq, 1 - movd m7, mulm -%if mmsize == 16 - pshuflw m7, m7, 0 - punpcklqdq m7, m7 -%else - pshufw m7, m7, 0 -%endif - pxor m6, m6 - add v1q, orderq - add v2q, orderq - add v3q, orderq - neg orderq -.loop: - movu m0, [v2q + orderq] - movu m1, [v2q + orderq + mmsize] - mova m4, [v1q + orderq] - mova m5, [v1q + orderq + mmsize] - movu m2, [v3q + orderq] - movu m3, [v3q + orderq + mmsize] - pmaddwd m0, m4 - pmaddwd m1, m5 - pmullw m2, m7 - pmullw m3, m7 - paddd m6, m0 - paddd m6, m1 - paddw m2, m4 - paddw m3, m5 - mova [v1q + orderq], m2 - mova [v1q + orderq + mmsize], m3 - add orderq, mmsize*2 - jl .loop - HADDD m6, m0 - movd eax, m6 - RET -%endmacro - -INIT_MMX mmxext -SCALARPRODUCT -INIT_XMM sse2 -SCALARPRODUCT - -INIT_XMM sse4 -; int ff_scalarproduct_and_madd_int32(int16_t *v1, int32_t *v2, int16_t *v3, -; int order, int mul) -cglobal scalarproduct_and_madd_int32, 4,4,8, v1, v2, v3, order, mul - shl orderq, 1 - movd m7, mulm - SPLATW m7, m7 - pxor m6, m6 - add v1q, orderq - lea v2q, [v2q + 2*orderq] - add v3q, orderq - neg orderq -.loop: - mova m3, [v1q + orderq] - movu m0, [v2q + 2*orderq] - pmovsxwd m4, m3 - movu m1, [v2q + 2*orderq + mmsize] - movhlps m5, m3 - movu m2, [v3q + orderq] - pmovsxwd m5, m5 - pmullw m2, m7 - pmulld m0, m4 - pmulld m1, m5 - paddw m2, m3 - paddd m6, m0 - paddd m6, m1 - mova [v1q + orderq], m2 - add orderq, 16 - jl .loop - HADDD m6, m0 - movd eax, m6 - RET - -%macro SCALARPRODUCT_LOOP 1 -align 16 -.loop%1: - sub orderq, mmsize*2 -%if %1 - mova m1, m4 - mova m4, [v2q + orderq] - mova m0, [v2q + orderq + mmsize] - palignr m1, m0, %1 - palignr m0, m4, %1 - mova m3, m5 - mova m5, [v3q + orderq] - mova m2, [v3q + orderq + mmsize] - palignr m3, m2, %1 - palignr m2, m5, %1 -%else - mova m0, [v2q + orderq] - mova m1, [v2q + orderq + mmsize] - mova m2, [v3q + orderq] - mova m3, [v3q + orderq + mmsize] -%endif - %define t0 [v1q + orderq] - %define t1 [v1q + orderq + mmsize] -%if ARCH_X86_64 - mova m8, t0 - mova m9, t1 - %define t0 m8 - %define t1 m9 -%endif - pmaddwd m0, t0 - pmaddwd m1, t1 - pmullw m2, m7 - pmullw m3, m7 - paddw m2, t0 - paddw m3, t1 - paddd m6, m0 - paddd m6, m1 - mova [v1q + orderq], m2 - mova [v1q + orderq + mmsize], m3 - jg .loop%1 -%if %1 - jmp .end -%endif -%endmacro - -; int ff_scalarproduct_and_madd_int16(int16_t *v1, int16_t *v2, int16_t *v3, -; int order, int mul) -INIT_XMM ssse3 -cglobal scalarproduct_and_madd_int16, 4,5,10, v1, v2, v3, order, mul - shl orderq, 1 - movd m7, mulm - pshuflw m7, m7, 0 - punpcklqdq m7, m7 - pxor m6, m6 - mov r4d, v2d - and r4d, 15 - and v2q, ~15 - and v3q, ~15 - mova m4, [v2q + orderq] - mova m5, [v3q + orderq] - ; linear is faster than branch tree or jump table, because the branches taken are cyclic (i.e. predictable) - cmp r4d, 0 - je .loop0 - cmp r4d, 2 - je .loop2 - cmp r4d, 4 - je .loop4 - cmp r4d, 6 - je .loop6 - cmp r4d, 8 - je .loop8 - cmp r4d, 10 - je .loop10 - cmp r4d, 12 - je .loop12 -SCALARPRODUCT_LOOP 14 -SCALARPRODUCT_LOOP 12 -SCALARPRODUCT_LOOP 10 -SCALARPRODUCT_LOOP 8 -SCALARPRODUCT_LOOP 6 -SCALARPRODUCT_LOOP 4 -SCALARPRODUCT_LOOP 2 -SCALARPRODUCT_LOOP 0 -.end: - HADDD m6, m0 - movd eax, m6 - RET diff --git a/libavcodec/x86/lossless_videodsp.asm b/libavcodec/x86/lossless_videodsp.asm deleted file mode 100644 index 0a1b7091c9..0000000000 --- a/libavcodec/x86/lossless_videodsp.asm +++ /dev/null @@ -1,406 +0,0 @@ -;****************************************************************************** -;* SIMD lossless video DSP utils -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2014 Michael Niedermayer -;* Copyright (c) 2017 Jokyo Images -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pb_15 -pb_zzzzzzzz77777777: times 8 db -1 -pb_7: times 8 db 7 -pb_ef: times 8 db 14,15 -pb_67: times 8 db 6, 7 -pb_zzzz3333zzzzbbbb: db -1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,11,11,11,11 -pb_zz11zz55zz99zzdd: db -1,-1,1,1,-1,-1,5,5,-1,-1,9,9,-1,-1,13,13 -pb_zzzz2323zzzzabab: db -1,-1,-1,-1, 2, 3, 2, 3,-1,-1,-1,-1,10,11,10,11 -pb_zzzzzzzz67676767: db -1,-1,-1,-1,-1,-1,-1,-1, 6, 7, 6, 7, 6, 7, 6, 7 - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_add_median_pred_mmxext(uint8_t *dst, const uint8_t *top, -; const uint8_t *diff, int w, -; int *left, int *left_top) -;------------------------------------------------------------------------------ -%macro MEDIAN_PRED 0 -cglobal add_median_pred, 6,6,8, dst, top, diff, w, left, left_top - movu m0, [topq] - mova m2, m0 - movd m4, [left_topq] - LSHIFT m2, 1 - mova m1, m0 - por m4, m2 - movd m3, [leftq] - psubb m0, m4 ; t-tl - add dstq, wq - add topq, wq - add diffq, wq - neg wq - jmp .skip -.loop: - movu m4, [topq+wq] - mova m0, m4 - LSHIFT m4, 1 - por m4, m1 - mova m1, m0 ; t - psubb m0, m4 ; t-tl -.skip: - movu m2, [diffq+wq] -%assign i 0 -%rep mmsize - mova m4, m0 - paddb m4, m3 ; t-tl+l - mova m5, m3 - pmaxub m3, m1 - pminub m5, m1 - pminub m3, m4 - pmaxub m3, m5 ; median - paddb m3, m2 ; +residual -%if i==0 - mova m7, m3 - LSHIFT m7, mmsize-1 -%else - mova m6, m3 - RSHIFT m7, 1 - LSHIFT m6, mmsize-1 - por m7, m6 -%endif -%if i= 16 - pshufb m2, m1, m6 - paddb m1, m2 -%endif - paddb xm0, xm1 -%if %1 - mova [dstq+wq], xm0 -%else - movq [dstq+wq], xm0 - movhps [dstq+wq+8], xm0 -%endif - -%if mmsize == 32 - vextracti128 xm2, m1, 1 ; get second lane of the ymm - pshufb xm0, xm5 ; set alls val to last val of the first lane - paddb xm0, xm2 -;store val -%if %1 - mova [dstq+wq+16], xm0 -%else; - movq [dstq+wq+16], xm0 - movhps [dstq+wq+16+8], xm0 -%endif -%endif - add wq, mmsize - jl %%.loop -%if mmsize == 32 - movzx eax, byte [dstq - 1] -%else; - mov eax, mmsize-1 - sub eax, wd - movd m1, eax - pshufb m0, m1 - movd eax, m0 -%endif - RET -%endmacro - -;------------------------------------------------------------------------------ -; int ff_add_left_pred(uint8_t *dst, const uint8_t *src, int w, int left) -;------------------------------------------------------------------------------ -INIT_MMX ssse3 -cglobal add_left_pred, 3,3,7, dst, src, w, left -.skip_prologue: - mova m5, [pb_7] - mova m4, [pb_zzzz3333zzzzbbbb] - mova m3, [pb_zz11zz55zz99zzdd] - movd m0, leftm - psllq m0, 56 - ADD_LEFT_LOOP 1, 1 - -%macro ADD_LEFT_PRED_UNALIGNED 0 -cglobal add_left_pred_unaligned, 3,3,7, dst, src, w, left - mova xm5, [pb_15] - VBROADCASTI128 m6, [pb_zzzzzzzz77777777] - VBROADCASTI128 m4, [pb_zzzz3333zzzzbbbb] - VBROADCASTI128 m3, [pb_zz11zz55zz99zzdd] - movd xm0, leftm - pslldq xm0, 15 - test srcq, mmsize - 1 - jnz .src_unaligned - test dstq, mmsize - 1 - jnz .dst_unaligned - ADD_LEFT_LOOP 1, 1 -.dst_unaligned: - ADD_LEFT_LOOP 0, 1 -.src_unaligned: - ADD_LEFT_LOOP 0, 0 -%endmacro - -INIT_XMM ssse3 -ADD_LEFT_PRED_UNALIGNED - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -ADD_LEFT_PRED_UNALIGNED -%endif - -;------------------------------------------------------------------------------ -; void ff_add_bytes(uint8_t *dst, uint8_t *src, ptrdiff_t w); -;------------------------------------------------------------------------------ -%macro ADD_BYTES 0 -cglobal add_bytes, 3,4,2, dst, src, w, size - mov sizeq, wq - and sizeq, -2*mmsize - jz .2 - add dstq, sizeq - add srcq, sizeq - neg sizeq -.1: - mova m0, [srcq + sizeq] - mova m1, [srcq + sizeq + mmsize] - paddb m0, [dstq + sizeq] - paddb m1, [dstq + sizeq + mmsize] - mova [dstq + sizeq], m0 - mova [dstq + sizeq + mmsize], m1 - add sizeq, 2*mmsize - jl .1 -.2: - and wq, 2*mmsize-1 - jz .end - add dstq, wq - add srcq, wq - neg wq -.3: - mov sizeb, [srcq + wq] - add [dstq + wq], sizeb - inc wq - jl .3 -.end: - REP_RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -ADD_BYTES -%endif -INIT_XMM sse2 -ADD_BYTES - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -ADD_BYTES -%endif - -%macro ADD_HFYU_LEFT_LOOP_INT16 2 ; %1 = dst alignment (a/u), %2 = src alignment (a/u) - add wd, wd - add srcq, wq - add dstq, wq - neg wq -%%.loop: - mov%2 m1, [srcq+wq] - mova m2, m1 - pslld m1, 16 - paddw m1, m2 - mova m2, m1 - - pshufb m1, m3 - paddw m1, m2 - pshufb m0, m5 -%if mmsize == 16 - mova m2, m1 - pshufb m1, m4 - paddw m1, m2 -%endif - paddw m0, m1 - pand m0, m7 -%ifidn %1, a - mova [dstq+wq], m0 -%else - movq [dstq+wq], m0 - movhps [dstq+wq+8], m0 -%endif - add wq, mmsize - jl %%.loop - mov eax, mmsize-1 - sub eax, wd - mov wd, eax - shl wd, 8 - lea eax, [wd+eax-1] - movd m1, eax - pshufb m0, m1 - movd eax, m0 - RET -%endmacro - -;--------------------------------------------------------------------------------------------- -; int add_left_pred_int16(uint16_t *dst, const uint16_t *src, unsigned mask, int w, int left) -;--------------------------------------------------------------------------------------------- -INIT_MMX ssse3 -cglobal add_left_pred_int16, 4,4,8, dst, src, mask, w, left -.skip_prologue: - mova m5, [pb_67] - mova m3, [pb_zzzz2323zzzzabab] - movd m0, leftm - psllq m0, 48 - movd m7, maskm - SPLATW m7 ,m7 - ADD_HFYU_LEFT_LOOP_INT16 a, a - -INIT_XMM ssse3 -cglobal add_left_pred_int16_unaligned, 4,4,8, dst, src, mask, w, left - mova m5, [pb_ef] - mova m4, [pb_zzzzzzzz67676767] - mova m3, [pb_zzzz2323zzzzabab] - movd m0, leftm - pslldq m0, 14 - movd m7, maskm - SPLATW m7 ,m7 - test srcq, 15 - jnz .src_unaligned - test dstq, 15 - jnz .dst_unaligned - ADD_HFYU_LEFT_LOOP_INT16 a, a -.dst_unaligned: - ADD_HFYU_LEFT_LOOP_INT16 u, a -.src_unaligned: - ADD_HFYU_LEFT_LOOP_INT16 u, u - - -;--------------------------------------------------------------------------------------------- -; void add_gradient_pred(uint8_t *src, const ptrdiff_t stride, const ptrdiff_t width) -;--------------------------------------------------------------------------------------------- -%macro ADD_GRADIENT_PRED 0 -cglobal add_gradient_pred, 3,4,5, src, stride, width, tmp - mova xm0, [pb_15] - -;load src - 1 in xm1 - movd xm1, [srcq-1] -%if cpuflag(avx2) - vpbroadcastb xm1, xm1 -%else - pxor xm2, xm2 - pshufb xm1, xm2 -%endif - - add srcq, widthq - neg widthq - neg strideq - -.loop: - lea tmpq, [srcq + strideq] - mova m2, [tmpq + widthq] ; A = src[x-stride] - movu m3, [tmpq + widthq - 1] ; B = src[x - (stride + 1)] - mova m4, [srcq + widthq] ; current val (src[x]) - - psubb m2, m3; A - B - -; prefix sum A-B - pslldq m3, m2, 1 - paddb m2, m3 - pslldq m3, m2, 2 - paddb m2, m3 - pslldq m3, m2, 4 - paddb m2, m3 - pslldq m3, m2, 8 - paddb m2, m3 - -; prefix sum current val - pslldq m3, m4, 1 - paddb m4, m3 - pslldq m3, m4, 2 - paddb m4, m3 - pslldq m3, m4, 4 - paddb m4, m3 - pslldq m3, m4, 8 - paddb m4, m3 - -; last sum - paddb m2, m4 ; current + (A - B) - - paddb xm1, xm2 ; += C - mova [srcq + widthq], xm1 ; store - - pshufb xm1, xm0 ; put last val in all val of xm1 - -%if mmsize == 32 - vextracti128 xm2, m2, 1 ; get second lane of the ymm - paddb xm1, xm2; += C - - mova [srcq + widthq + 16], xm1 ; store - pshufb xm1, xm0 ; put last val in all val of m1 -%endif - - add widthq, mmsize - jl .loop - RET - -%endmacro - -INIT_XMM ssse3 -ADD_GRADIENT_PRED - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -ADD_GRADIENT_PRED -%endif diff --git a/libavcodec/x86/lossless_videoencdsp.asm b/libavcodec/x86/lossless_videoencdsp.asm deleted file mode 100644 index fb1204f0f1..0000000000 --- a/libavcodec/x86/lossless_videoencdsp.asm +++ /dev/null @@ -1,194 +0,0 @@ -;************************************************************************ -;* SIMD-optimized lossless video encoding functions -;* Copyright (c) 2000, 2001 Fabrice Bellard -;* Copyright (c) 2002-2004 Michael Niedermayer -;* -;* MMX optimization by Nick Kurshev -;* Conversion to NASM format by Tiancheng "Timothy" Gu -;* -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -cextern pb_80 - -SECTION .text - -; void ff_diff_bytes(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, -; intptr_t w); -%macro DIFF_BYTES_PROLOGUE 0 -%if ARCH_X86_32 -cglobal diff_bytes, 3,5,2, dst, src1, src2 -%define wq r4q - DECLARE_REG_TMP 3 - mov wq, r3mp -%else -cglobal diff_bytes, 4,5,2, dst, src1, src2, w - DECLARE_REG_TMP 4 -%endif ; ARCH_X86_32 -%define i t0q -%endmacro - -; labels to jump to if w < regsize and w < 0 -%macro DIFF_BYTES_LOOP_PREP 2 - mov i, wq - and i, -2 * regsize - js %2 - jz %1 - add dstq, i - add src1q, i - add src2q, i - neg i -%endmacro - -; mov type used for src1q, dstq, first reg, second reg -%macro DIFF_BYTES_LOOP_CORE 4 -%if mmsize != 16 - mov%1 %3, [src1q + i] - mov%1 %4, [src1q + i + regsize] - psubb %3, [src2q + i] - psubb %4, [src2q + i + regsize] - mov%2 [dstq + i], %3 - mov%2 [regsize + dstq + i], %4 -%else - ; SSE enforces alignment of psubb operand - mov%1 %3, [src1q + i] - movu %4, [src2q + i] - psubb %3, %4 - mov%2 [dstq + i], %3 - mov%1 %3, [src1q + i + regsize] - movu %4, [src2q + i + regsize] - psubb %3, %4 - mov%2 [regsize + dstq + i], %3 -%endif -%endmacro - -%macro DIFF_BYTES_BODY 2 ; mov type used for src1q, for dstq - %define regsize mmsize -.loop_%1%2: - DIFF_BYTES_LOOP_CORE %1, %2, m0, m1 - add i, 2 * regsize - jl .loop_%1%2 -.skip_main_%1%2: - and wq, 2 * regsize - 1 - jz .end_%1%2 -%if mmsize > 16 - ; fall back to narrower xmm - %define regsize (mmsize / 2) - DIFF_BYTES_LOOP_PREP .setup_loop_gpr_aa, .end_aa -.loop2_%1%2: - DIFF_BYTES_LOOP_CORE %1, %2, xm0, xm1 - add i, 2 * regsize - jl .loop2_%1%2 -.setup_loop_gpr_%1%2: - and wq, 2 * regsize - 1 - jz .end_%1%2 -%endif - add dstq, wq - add src1q, wq - add src2q, wq - neg wq -.loop_gpr_%1%2: - mov t0b, [src1q + wq] - sub t0b, [src2q + wq] - mov [dstq + wq], t0b - inc wq - jl .loop_gpr_%1%2 -.end_%1%2: - REP_RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -DIFF_BYTES_PROLOGUE - %define regsize mmsize - DIFF_BYTES_LOOP_PREP .skip_main_aa, .end_aa - DIFF_BYTES_BODY a, a -%undef i -%endif - -INIT_XMM sse2 -DIFF_BYTES_PROLOGUE - %define regsize mmsize - DIFF_BYTES_LOOP_PREP .skip_main_aa, .end_aa - test dstq, regsize - 1 - jnz .loop_uu - test src1q, regsize - 1 - jnz .loop_ua - DIFF_BYTES_BODY a, a - DIFF_BYTES_BODY u, a - DIFF_BYTES_BODY u, u -%undef i - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -DIFF_BYTES_PROLOGUE - %define regsize mmsize - ; Directly using unaligned SSE2 version is marginally faster than - ; branching based on arguments. - DIFF_BYTES_LOOP_PREP .skip_main_uu, .end_uu - test dstq, regsize - 1 - jnz .loop_uu - test src1q, regsize - 1 - jnz .loop_ua - DIFF_BYTES_BODY a, a - DIFF_BYTES_BODY u, a - DIFF_BYTES_BODY u, u -%undef i -%endif - - -;-------------------------------------------------------------------------------------------------- -;void sub_left_predict(uint8_t *dst, uint8_t *src, ptrdiff_t stride, ptrdiff_t width, int height) -;-------------------------------------------------------------------------------------------------- - -INIT_XMM avx -cglobal sub_left_predict, 5,6,5, dst, src, stride, width, height, x - mova m1, [pb_80] ; prev initial - add dstq, widthq - add srcq, widthq - lea xd, [widthq-1] - neg widthq - and xd, 15 - pinsrb m4, m1, xd, 15 - mov xq, widthq - - .loop: - movu m0, [srcq + widthq] - palignr m2, m0, m1, 15 - movu m1, [srcq + widthq + 16] - palignr m3, m1, m0, 15 - psubb m2, m0, m2 - psubb m3, m1, m3 - movu [dstq + widthq], m2 - movu [dstq + widthq + 16], m3 - add widthq, 2 * 16 - jl .loop - - add srcq, strideq - sub dstq, xq ; dst + width - test xd, 16 - jz .mod32 - mova m1, m0 - -.mod32: - pshufb m1, m4 - mov widthq, xq - dec heightd - jg .loop - RET diff --git a/libavcodec/x86/mdct15.asm b/libavcodec/x86/mdct15.asm deleted file mode 100644 index 2a2cdbd21b..0000000000 --- a/libavcodec/x86/mdct15.asm +++ /dev/null @@ -1,221 +0,0 @@ -;****************************************************************************** -;* SIMD optimized non-power-of-two MDCT functions -;* -;* Copyright (C) 2017 Rostislav Pehlivanov -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -perm_neg: dd 2, 5, 3, 4, 6, 1, 7, 0 -perm_pos: dd 0, 7, 1, 6, 4, 3, 5, 2 -sign_adjust_r: times 4 dd 0x80000000, 0x00000000 - -sign_adjust_5: dd 0x00000000, 0x80000000, 0x80000000, 0x00000000 - -SECTION .text - -%if ARCH_X86_64 - -;***************************************************************************************** -;void ff_fft15_avx(FFTComplex *out, FFTComplex *in, FFTComplex *exptab, ptrdiff_t stride); -;***************************************************************************************** -%macro FFT5 3 ; %1 - in_offset, %2 - dst1 (64bit used), %3 - dst2 - VBROADCASTSD m0, [inq + %1] ; in[ 0].re, in[ 0].im, in[ 0].re, in[ 0].im - movsd xm1, [inq + 1*16 + 8 + %1] ; in[ 3].re, in[ 3].im, 0, 0 - movsd xm4, [inq + 6*16 + 0 + %1] ; in[12].re, in[12].im, 0, 0 - movhps xm1, [inq + 3*16 + 0 + %1] ; in[ 3].re, in[ 3].im, in[ 6].re, in[ 6].im - movhps xm4, [inq + 4*16 + 8 + %1] ; in[12].re, in[12].im, in[ 9].re, in[ 9].im - - subps xm2, xm1, xm4 ; t[2].im, t[2].re, t[3].im, t[3].re - addps xm1, xm4 ; t[0].re, t[0].im, t[1].re, t[1].im - - movhlps %2, xm1 ; t[0].re, t[1].re, t[0].im, t[1].im - addps %2, xm1 - addps %2, xm0 ; DC[0].re, DC[0].im, junk... - movlhps %2, %2 ; DC[0].re, DC[0].im, DC[0].re, DC[0].im - - shufps xm3, xm1, xm2, q0110 ; t[0].re, t[0].im, t[2].re, t[2].im - shufps xm1, xm2, q2332 ; t[1].re, t[1].im, t[3].re, t[3].im - - mulps xm%3, xm1, xm5 - mulps xm4, xm3, xm6 - mulps xm1, xm6 - - xorps xm1, xm7 - mulps xm3, xm5 - addsubps xm3, xm1 ; t[0].re, t[0].im, t[2].re, t[2].im - subps xm%3, xm4 ; t[4].re, t[4].im, t[5].re, t[5].im - - movhlps xm2, xm%3, xm3 ; t[2].re, t[2].im, t[5].re, t[5].im - movlhps xm3, xm%3 ; t[0].re, t[0].im, t[4].re, t[4].im - - xorps xm2, xm7 - addps xm%3, xm2, xm3 - subps xm3, xm2 - - shufps xm3, xm3, q1032 - vinsertf128 m%3, m%3, xm3, 1 ; All ACs (tmp[1] through to tmp[4]) - addps m%3, m%3, m0 ; Finally offset with DCs -%endmacro - -%macro BUTTERFLIES_DC 1 ; %1 - exptab_offset - mulps xm0, xm9, [exptabq + %1 + 16*0] - mulps xm1, xm10, [exptabq + %1 + 16*1] - - haddps xm0, xm1 - movhlps xm1, xm0 ; t[0].re, t[1].re, t[0].im, t[1].im - - addps xm0, xm1 - addps xm0, xm8 - - movsd [outq], xm0 -%endmacro - -%macro BUTTERFLIES_AC 1 ; %1 - exptab_offset - mulps m0, m12, [exptabq + 64*0 + 0*mmsize + %1] - mulps m1, m12, [exptabq + 64*0 + 1*mmsize + %1] - mulps m2, m13, [exptabq + 64*1 + 0*mmsize + %1] - mulps m3, m13, [exptabq + 64*1 + 1*mmsize + %1] - - addps m0, m0, m2 - addps m1, m1, m3 - addps m0, m0, m11 - - shufps m1, m1, m1, q2301 - addps m0, m0, m1 - - vextractf128 xm1, m0, 1 - - movlps [outq + strideq*1], xm0 - movhps [outq + strideq*2], xm0 - movlps [outq + stride3q], xm1 - movhps [outq + strideq*4], xm1 -%endmacro - -INIT_YMM avx -cglobal fft15, 4, 5, 14, out, in, exptab, stride, stride5 - shl strideq, 3 - - movaps xm5, [exptabq + 480 + 16*0] - movaps xm6, [exptabq + 480 + 16*1] - movaps xm7, [sign_adjust_5] - - FFT5 0, xm8, 11 - FFT5 8, xm9, 12 - FFT5 16, xm10, 13 - -%define stride3q inq - lea stride3q, [strideq + strideq*2] - lea stride5q, [strideq + strideq*4] - - BUTTERFLIES_DC (8*6 + 4*0)*2*4 - BUTTERFLIES_AC (8*0 + 0*0)*2*4 - - add outq, stride5q - BUTTERFLIES_DC (8*6 + 4*1)*2*4 - BUTTERFLIES_AC (8*2 + 0*0)*2*4 - - add outq, stride5q - BUTTERFLIES_DC (8*6 + 4*2)*2*4 - BUTTERFLIES_AC (8*4 + 0*0)*2*4 - - RET - -%endif ; ARCH_X86_64 - -;******************************************************************************************************* -;void ff_mdct15_postreindex(FFTComplex *out, FFTComplex *in, FFTComplex *exp, int *lut, ptrdiff_t len8); -;******************************************************************************************************* -%macro LUT_LOAD_4D 3 - mov r4d, [lutq + %3q*4 + 0] - movsd xmm%1, [inq + r4q*8] - mov r4d, [lutq + %3q*4 + 4] - movhps xmm%1, [inq + r4q*8] -%if cpuflag(avx2) - mov r4d, [lutq + %3q*4 + 8] - movsd %2, [inq + r4q*8] - mov r4d, [lutq + %3q*4 + 12] - movhps %2, [inq + r4q*8] - vinsertf128 %1, %1, %2, 1 -%endif -%endmacro - -%macro POSTROTATE_FN 1 -cglobal mdct15_postreindex, 5, 7, 8 + cpuflag(avx2)*2, out, in, exp, lut, len8, offset_p, offset_n - - xor offset_nq, offset_nq - lea offset_pq, [len8q*2 - %1] - - movaps m7, [sign_adjust_r] - -%if cpuflag(avx2) - movaps m8, [perm_pos] - movaps m9, [perm_neg] -%endif - -.loop: - movups m0, [expq + offset_pq*8] ; exp[p0].re, exp[p0].im, exp[p1].re, exp[p1].im, exp[p2].re, exp[p2].im, exp[p3].re, exp[p3].im - movups m1, [expq + offset_nq*8] ; exp[n3].re, exp[n3].im, exp[n2].re, exp[n2].im, exp[n1].re, exp[n1].im, exp[n0].re, exp[n0].im - - LUT_LOAD_4D m3, xm4, offset_p ; in[p0].re, in[p0].im, in[p1].re, in[p1].im, in[p2].re, in[p2].im, in[p3].re, in[p3].im - LUT_LOAD_4D m4, xm5, offset_n ; in[n3].re, in[n3].im, in[n2].re, in[n2].im, in[n1].re, in[n1].im, in[n0].re, in[n0].im - - mulps m5, m3, m0 ; in[p].reim * exp[p].reim - mulps m6, m4, m1 ; in[n].reim * exp[n].reim - - xorps m5, m7 ; in[p].re *= -1, in[p].im *= 1 - xorps m6, m7 ; in[n].re *= -1, in[n].im *= 1 - - shufps m3, m3, m3, q2301 ; in[p].imre - shufps m4, m4, m4, q2301 ; in[n].imre - - mulps m3, m0 ; in[p].imre * exp[p].reim - mulps m4, m1 ; in[n].imre * exp[n].reim - - haddps m3, m6 ; out[n0].im, out[n1].im, out[n3].re, out[n2].re, out[n2].im, out[n3].im, out[n1].re, out[n0].re - haddps m5, m4 ; out[p0].re, out[p1].re, out[p3].im, out[p2].im, out[p2].re, out[p3].re, out[p1].im, out[p0].im - -%if cpuflag(avx2) - vpermps m3, m9, m3 ; out[n3].im, out[n3].re, out[n2].im, out[n2].re, out[n1].im, out[n1].re, out[n0].im, out[n0].re - vpermps m5, m8, m5 ; out[p0].re, out[p0].im, out[p1].re, out[p1].im, out[p2].re, out[p2].im, out[p3].re, out[p3].im -%else - shufps m3, m3, m3, q0312 - shufps m5, m5, m5, q2130 -%endif - - movups [outq + offset_nq*8], m3 - movups [outq + offset_pq*8], m5 - - sub offset_pq, %1 - add offset_nq, %1 - cmp offset_nq, offset_pq - jle .loop - - REP_RET -%endmacro - -INIT_XMM sse3 -POSTROTATE_FN 2 - -%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -POSTROTATE_FN 4 -%endif diff --git a/libavcodec/x86/me_cmp.asm b/libavcodec/x86/me_cmp.asm deleted file mode 100644 index ad06d485ab..0000000000 --- a/libavcodec/x86/me_cmp.asm +++ /dev/null @@ -1,934 +0,0 @@ -;***************************************************************************** -;* SIMD-optimized motion compensation estimation -;***************************************************************************** -;* Copyright (c) 2000, 2001 Fabrice Bellard -;* Copyright (c) 2002-2004 Michael Niedermayer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pb_1 -cextern pb_80 - -SECTION .text - -%macro DIFF_PIXELS_1 4 - movh %1, %3 - movh %2, %4 - punpcklbw %2, %1 - punpcklbw %1, %1 - psubw %1, %2 -%endmacro - -; %1=uint8_t *pix1, %2=uint8_t *pix2, %3=static offset, %4=stride, %5=stride*3 -; %6=temporary storage location -; this macro requires $mmsize stack space (aligned) on %6 (except on SSE+x86-64) -%macro DIFF_PIXELS_8 6 - DIFF_PIXELS_1 m0, m7, [%1 +%3], [%2 +%3] - DIFF_PIXELS_1 m1, m7, [%1+%4 +%3], [%2+%4 +%3] - DIFF_PIXELS_1 m2, m7, [%1+%4*2+%3], [%2+%4*2+%3] - add %1, %5 - add %2, %5 - DIFF_PIXELS_1 m3, m7, [%1 +%3], [%2 +%3] - DIFF_PIXELS_1 m4, m7, [%1+%4 +%3], [%2+%4 +%3] - DIFF_PIXELS_1 m5, m7, [%1+%4*2+%3], [%2+%4*2+%3] - DIFF_PIXELS_1 m6, m7, [%1+%5 +%3], [%2+%5 +%3] -%ifdef m8 - DIFF_PIXELS_1 m7, m8, [%1+%4*4+%3], [%2+%4*4+%3] -%else - mova [%6], m0 - DIFF_PIXELS_1 m7, m0, [%1+%4*4+%3], [%2+%4*4+%3] - mova m0, [%6] -%endif - sub %1, %5 - sub %2, %5 -%endmacro - -%macro HADAMARD8 0 - SUMSUB_BADC w, 0, 1, 2, 3 - SUMSUB_BADC w, 4, 5, 6, 7 - SUMSUB_BADC w, 0, 2, 1, 3 - SUMSUB_BADC w, 4, 6, 5, 7 - SUMSUB_BADC w, 0, 4, 1, 5 - SUMSUB_BADC w, 2, 6, 3, 7 -%endmacro - -%macro ABS1_SUM 3 - ABS1 %1, %2 - paddusw %3, %1 -%endmacro - -%macro ABS2_SUM 6 - ABS2 %1, %2, %3, %4 - paddusw %5, %1 - paddusw %6, %2 -%endmacro - -%macro ABS_SUM_8x8_64 1 - ABS2 m0, m1, m8, m9 - ABS2_SUM m2, m3, m8, m9, m0, m1 - ABS2_SUM m4, m5, m8, m9, m0, m1 - ABS2_SUM m6, m7, m8, m9, m0, m1 - paddusw m0, m1 -%endmacro - -%macro ABS_SUM_8x8_32 1 - mova [%1], m7 - ABS1 m0, m7 - ABS1 m1, m7 - ABS1_SUM m2, m7, m0 - ABS1_SUM m3, m7, m1 - ABS1_SUM m4, m7, m0 - ABS1_SUM m5, m7, m1 - ABS1_SUM m6, m7, m0 - mova m2, [%1] - ABS1_SUM m2, m7, m1 - paddusw m0, m1 -%endmacro - -; FIXME: HSUM saturates at 64k, while an 8x8 hadamard or dct block can get up to -; about 100k on extreme inputs. But that's very unlikely to occur in natural video, -; and it's even more unlikely to not have any alternative mvs/modes with lower cost. -%macro HSUM 3 -%if cpuflag(sse2) - movhlps %2, %1 - paddusw %1, %2 - pshuflw %2, %1, 0xE - paddusw %1, %2 - pshuflw %2, %1, 0x1 - paddusw %1, %2 - movd %3, %1 -%elif cpuflag(mmxext) - pshufw %2, %1, 0xE - paddusw %1, %2 - pshufw %2, %1, 0x1 - paddusw %1, %2 - movd %3, %1 -%elif cpuflag(mmx) - mova %2, %1 - psrlq %1, 32 - paddusw %1, %2 - mova %2, %1 - psrlq %1, 16 - paddusw %1, %2 - movd %3, %1 -%endif -%endmacro - -%macro STORE4 5 - mova [%1+mmsize*0], %2 - mova [%1+mmsize*1], %3 - mova [%1+mmsize*2], %4 - mova [%1+mmsize*3], %5 -%endmacro - -%macro LOAD4 5 - mova %2, [%1+mmsize*0] - mova %3, [%1+mmsize*1] - mova %4, [%1+mmsize*2] - mova %5, [%1+mmsize*3] -%endmacro - -%macro hadamard8_16_wrapper 2 -cglobal hadamard8_diff, 4, 4, %1 -%ifndef m8 - %assign pad %2*mmsize-(4+stack_offset&(mmsize-1)) - SUB rsp, pad -%endif - call hadamard8x8_diff %+ SUFFIX -%ifndef m8 - ADD rsp, pad -%endif - RET - -cglobal hadamard8_diff16, 5, 6, %1 -%ifndef m8 - %assign pad %2*mmsize-(4+stack_offset&(mmsize-1)) - SUB rsp, pad -%endif - - call hadamard8x8_diff %+ SUFFIX - mov r5d, eax - - add r1, 8 - add r2, 8 - call hadamard8x8_diff %+ SUFFIX - add r5d, eax - - cmp r4d, 16 - jne .done - - lea r1, [r1+r3*8-8] - lea r2, [r2+r3*8-8] - call hadamard8x8_diff %+ SUFFIX - add r5d, eax - - add r1, 8 - add r2, 8 - call hadamard8x8_diff %+ SUFFIX - add r5d, eax - -.done: - mov eax, r5d -%ifndef m8 - ADD rsp, pad -%endif - RET -%endmacro - -%macro HADAMARD8_DIFF 0-1 -%if cpuflag(sse2) -hadamard8x8_diff %+ SUFFIX: - lea r0, [r3*3] - DIFF_PIXELS_8 r1, r2, 0, r3, r0, rsp+gprsize - HADAMARD8 -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [rsp+gprsize], [rsp+mmsize+gprsize] -%endif - HADAMARD8 - ABS_SUM_8x8 rsp+gprsize - HSUM m0, m1, eax - and eax, 0xFFFF - ret - -hadamard8_16_wrapper %1, 3 -%elif cpuflag(mmx) -ALIGN 16 -; int ff_hadamard8_diff_ ## cpu(MpegEncContext *s, uint8_t *src1, -; uint8_t *src2, ptrdiff_t stride, int h) -; r0 = void *s = unused, int h = unused (always 8) -; note how r1, r2 and r3 are not clobbered in this function, so 16x16 -; can simply call this 2x2x (and that's why we access rsp+gprsize -; everywhere, which is rsp of calling func -hadamard8x8_diff %+ SUFFIX: - lea r0, [r3*3] - - ; first 4x8 pixels - DIFF_PIXELS_8 r1, r2, 0, r3, r0, rsp+gprsize+0x60 - HADAMARD8 - mova [rsp+gprsize+0x60], m7 - TRANSPOSE4x4W 0, 1, 2, 3, 7 - STORE4 rsp+gprsize, m0, m1, m2, m3 - mova m7, [rsp+gprsize+0x60] - TRANSPOSE4x4W 4, 5, 6, 7, 0 - STORE4 rsp+gprsize+0x40, m4, m5, m6, m7 - - ; second 4x8 pixels - DIFF_PIXELS_8 r1, r2, 4, r3, r0, rsp+gprsize+0x60 - HADAMARD8 - mova [rsp+gprsize+0x60], m7 - TRANSPOSE4x4W 0, 1, 2, 3, 7 - STORE4 rsp+gprsize+0x20, m0, m1, m2, m3 - mova m7, [rsp+gprsize+0x60] - TRANSPOSE4x4W 4, 5, 6, 7, 0 - - LOAD4 rsp+gprsize+0x40, m0, m1, m2, m3 - HADAMARD8 - ABS_SUM_8x8_32 rsp+gprsize+0x60 - mova [rsp+gprsize+0x60], m0 - - LOAD4 rsp+gprsize , m0, m1, m2, m3 - LOAD4 rsp+gprsize+0x20, m4, m5, m6, m7 - HADAMARD8 - ABS_SUM_8x8_32 rsp+gprsize - paddusw m0, [rsp+gprsize+0x60] - - HSUM m0, m1, eax - and rax, 0xFFFF - ret - -hadamard8_16_wrapper 0, 14 -%endif -%endmacro - -INIT_MMX mmx -HADAMARD8_DIFF - -INIT_MMX mmxext -HADAMARD8_DIFF - -INIT_XMM sse2 -%if ARCH_X86_64 -%define ABS_SUM_8x8 ABS_SUM_8x8_64 -%else -%define ABS_SUM_8x8 ABS_SUM_8x8_32 -%endif -HADAMARD8_DIFF 10 - -INIT_XMM ssse3 -%define ABS_SUM_8x8 ABS_SUM_8x8_64 -HADAMARD8_DIFF 9 - -; int ff_sse*_*(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, -; ptrdiff_t line_size, int h) - -%macro SUM_SQUARED_ERRORS 1 -cglobal sse%1, 5,5,8, v, pix1, pix2, lsize, h -%if %1 == mmsize - shr hd, 1 -%endif - pxor m0, m0 ; mm0 = 0 - pxor m7, m7 ; mm7 holds the sum - -.next2lines: ; FIXME why are these unaligned movs? pix1[] is aligned - movu m1, [pix1q] ; m1 = pix1[0][0-15], [0-7] for mmx - movu m2, [pix2q] ; m2 = pix2[0][0-15], [0-7] for mmx -%if %1 == mmsize - movu m3, [pix1q+lsizeq] ; m3 = pix1[1][0-15], [0-7] for mmx - movu m4, [pix2q+lsizeq] ; m4 = pix2[1][0-15], [0-7] for mmx -%else ; %1 / 2 == mmsize; mmx only - mova m3, [pix1q+8] ; m3 = pix1[0][8-15] - mova m4, [pix2q+8] ; m4 = pix2[0][8-15] -%endif - - ; todo: mm1-mm2, mm3-mm4 - ; algo: subtract mm1 from mm2 with saturation and vice versa - ; OR the result to get the absolute difference - mova m5, m1 - mova m6, m3 - psubusb m1, m2 - psubusb m3, m4 - psubusb m2, m5 - psubusb m4, m6 - - por m2, m1 - por m4, m3 - - ; now convert to 16-bit vectors so we can square them - mova m1, m2 - mova m3, m4 - - punpckhbw m2, m0 - punpckhbw m4, m0 - punpcklbw m1, m0 ; mm1 not spread over (mm1,mm2) - punpcklbw m3, m0 ; mm4 not spread over (mm3,mm4) - - pmaddwd m2, m2 - pmaddwd m4, m4 - pmaddwd m1, m1 - pmaddwd m3, m3 - - paddd m1, m2 - paddd m3, m4 - paddd m7, m1 - paddd m7, m3 - -%if %1 == mmsize - lea pix1q, [pix1q + 2*lsizeq] - lea pix2q, [pix2q + 2*lsizeq] -%else - add pix1q, lsizeq - add pix2q, lsizeq -%endif - dec hd - jnz .next2lines - - HADDD m7, m1 - movd eax, m7 ; return value - RET -%endmacro - -INIT_MMX mmx -SUM_SQUARED_ERRORS 8 - -INIT_MMX mmx -SUM_SQUARED_ERRORS 16 - -INIT_XMM sse2 -SUM_SQUARED_ERRORS 16 - -;----------------------------------------------- -;int ff_sum_abs_dctelem(int16_t *block) -;----------------------------------------------- -; %1 = number of xmm registers used -; %2 = number of inline loops - -%macro SUM_ABS_DCTELEM 2 -cglobal sum_abs_dctelem, 1, 1, %1, block - pxor m0, m0 - pxor m1, m1 -%assign %%i 0 -%rep %2 - mova m2, [blockq+mmsize*(0+%%i)] - mova m3, [blockq+mmsize*(1+%%i)] - mova m4, [blockq+mmsize*(2+%%i)] - mova m5, [blockq+mmsize*(3+%%i)] - ABS1_SUM m2, m6, m0 - ABS1_SUM m3, m6, m1 - ABS1_SUM m4, m6, m0 - ABS1_SUM m5, m6, m1 -%assign %%i %%i+4 -%endrep - paddusw m0, m1 - HSUM m0, m1, eax - and eax, 0xFFFF - RET -%endmacro - -INIT_MMX mmx -SUM_ABS_DCTELEM 0, 4 -INIT_MMX mmxext -SUM_ABS_DCTELEM 0, 4 -INIT_XMM sse2 -SUM_ABS_DCTELEM 7, 2 -INIT_XMM ssse3 -SUM_ABS_DCTELEM 6, 2 - -;------------------------------------------------------------------------------ -; int ff_hf_noise*_mmx(uint8_t *pix1, ptrdiff_t lsize, int h) -;------------------------------------------------------------------------------ -; %1 = 8/16. %2-5=m# -%macro HF_NOISE_PART1 5 - mova m%2, [pix1q] -%if %1 == 8 - mova m%3, m%2 - psllq m%2, 8 - psrlq m%3, 8 - psrlq m%2, 8 -%else - mova m%3, [pix1q+1] -%endif - mova m%4, m%2 - mova m%5, m%3 - punpcklbw m%2, m7 - punpcklbw m%3, m7 - punpckhbw m%4, m7 - punpckhbw m%5, m7 - psubw m%2, m%3 - psubw m%4, m%5 -%endmacro - -; %1-2 = m# -%macro HF_NOISE_PART2 4 - psubw m%1, m%3 - psubw m%2, m%4 - pxor m3, m3 - pxor m1, m1 - pcmpgtw m3, m%1 - pcmpgtw m1, m%2 - pxor m%1, m3 - pxor m%2, m1 - psubw m%1, m3 - psubw m%2, m1 - paddw m%2, m%1 - paddw m6, m%2 -%endmacro - -; %1 = 8/16 -%macro HF_NOISE 1 -cglobal hf_noise%1, 3,3,0, pix1, lsize, h - sub hd, 2 - pxor m7, m7 - pxor m6, m6 - HF_NOISE_PART1 %1, 0, 1, 2, 3 - add pix1q, lsizeq - HF_NOISE_PART1 %1, 4, 1, 5, 3 - HF_NOISE_PART2 0, 2, 4, 5 - add pix1q, lsizeq -.loop: - HF_NOISE_PART1 %1, 0, 1, 2, 3 - HF_NOISE_PART2 4, 5, 0, 2 - add pix1q, lsizeq - HF_NOISE_PART1 %1, 4, 1, 5, 3 - HF_NOISE_PART2 0, 2, 4, 5 - add pix1q, lsizeq - sub hd, 2 - jne .loop - - mova m0, m6 - punpcklwd m0, m7 - punpckhwd m6, m7 - paddd m6, m0 - mova m0, m6 - psrlq m6, 32 - paddd m0, m6 - movd eax, m0 ; eax = result of hf_noise8; - REP_RET ; return eax; -%endmacro - -INIT_MMX mmx -HF_NOISE 8 -HF_NOISE 16 - -;--------------------------------------------------------------------------------------- -;int ff_sad_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, ptrdiff_t stride, int h); -;--------------------------------------------------------------------------------------- -;%1 = 8/16 -%macro SAD 1 -cglobal sad%1, 5, 5, 3, v, pix1, pix2, stride, h - movu m2, [pix2q] - movu m1, [pix2q+strideq] - psadbw m2, [pix1q] - psadbw m1, [pix1q+strideq] - paddw m2, m1 -%if %1 != mmsize - movu m0, [pix2q+8] - movu m1, [pix2q+strideq+8] - psadbw m0, [pix1q+8] - psadbw m1, [pix1q+strideq+8] - paddw m2, m0 - paddw m2, m1 -%endif - sub hd, 2 - -align 16 -.loop: - lea pix1q, [pix1q+strideq*2] - lea pix2q, [pix2q+strideq*2] - movu m0, [pix2q] - movu m1, [pix2q+strideq] - psadbw m0, [pix1q] - psadbw m1, [pix1q+strideq] - paddw m2, m0 - paddw m2, m1 -%if %1 != mmsize - movu m0, [pix2q+8] - movu m1, [pix2q+strideq+8] - psadbw m0, [pix1q+8] - psadbw m1, [pix1q+strideq+8] - paddw m2, m0 - paddw m2, m1 -%endif - sub hd, 2 - jg .loop -%if mmsize == 16 - movhlps m0, m2 - paddw m2, m0 -%endif - movd eax, m2 - RET -%endmacro - -INIT_MMX mmxext -SAD 8 -SAD 16 -INIT_XMM sse2 -SAD 16 - -;------------------------------------------------------------------------------------------ -;int ff_sad_x2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, ptrdiff_t stride, int h); -;------------------------------------------------------------------------------------------ -;%1 = 8/16 -%macro SAD_X2 1 -cglobal sad%1_x2, 5, 5, 5, v, pix1, pix2, stride, h - movu m0, [pix2q] - movu m2, [pix2q+strideq] -%if mmsize == 16 - movu m3, [pix2q+1] - movu m4, [pix2q+strideq+1] - pavgb m0, m3 - pavgb m2, m4 -%else - pavgb m0, [pix2q+1] - pavgb m2, [pix2q+strideq+1] -%endif - psadbw m0, [pix1q] - psadbw m2, [pix1q+strideq] - paddw m0, m2 -%if %1 != mmsize - movu m1, [pix2q+8] - movu m2, [pix2q+strideq+8] - pavgb m1, [pix2q+9] - pavgb m2, [pix2q+strideq+9] - psadbw m1, [pix1q+8] - psadbw m2, [pix1q+strideq+8] - paddw m0, m1 - paddw m0, m2 -%endif - sub hd, 2 - -align 16 -.loop: - lea pix1q, [pix1q+2*strideq] - lea pix2q, [pix2q+2*strideq] - movu m1, [pix2q] - movu m2, [pix2q+strideq] -%if mmsize == 16 - movu m3, [pix2q+1] - movu m4, [pix2q+strideq+1] - pavgb m1, m3 - pavgb m2, m4 -%else - pavgb m1, [pix2q+1] - pavgb m2, [pix2q+strideq+1] -%endif - psadbw m1, [pix1q] - psadbw m2, [pix1q+strideq] - paddw m0, m1 - paddw m0, m2 -%if %1 != mmsize - movu m1, [pix2q+8] - movu m2, [pix2q+strideq+8] - pavgb m1, [pix2q+9] - pavgb m2, [pix2q+strideq+9] - psadbw m1, [pix1q+8] - psadbw m2, [pix1q+strideq+8] - paddw m0, m1 - paddw m0, m2 -%endif - sub hd, 2 - jg .loop -%if mmsize == 16 - movhlps m1, m0 - paddw m0, m1 -%endif - movd eax, m0 - RET -%endmacro - -INIT_MMX mmxext -SAD_X2 8 -SAD_X2 16 -INIT_XMM sse2 -SAD_X2 16 - -;------------------------------------------------------------------------------------------ -;int ff_sad_y2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, ptrdiff_t stride, int h); -;------------------------------------------------------------------------------------------ -;%1 = 8/16 -%macro SAD_Y2 1 -cglobal sad%1_y2, 5, 5, 4, v, pix1, pix2, stride, h - movu m1, [pix2q] - movu m0, [pix2q+strideq] - movu m3, [pix2q+2*strideq] - pavgb m1, m0 - pavgb m0, m3 - psadbw m1, [pix1q] - psadbw m0, [pix1q+strideq] - paddw m0, m1 - mova m1, m3 -%if %1 != mmsize - movu m4, [pix2q+8] - movu m5, [pix2q+strideq+8] - movu m6, [pix2q+2*strideq+8] - pavgb m4, m5 - pavgb m5, m6 - psadbw m4, [pix1q+8] - psadbw m5, [pix1q+strideq+8] - paddw m0, m4 - paddw m0, m5 - mova m4, m6 -%endif - add pix2q, strideq - sub hd, 2 - -align 16 -.loop: - lea pix1q, [pix1q+2*strideq] - lea pix2q, [pix2q+2*strideq] - movu m2, [pix2q] - movu m3, [pix2q+strideq] - pavgb m1, m2 - pavgb m2, m3 - psadbw m1, [pix1q] - psadbw m2, [pix1q+strideq] - paddw m0, m1 - paddw m0, m2 - mova m1, m3 -%if %1 != mmsize - movu m5, [pix2q+8] - movu m6, [pix2q+strideq+8] - pavgb m4, m5 - pavgb m5, m6 - psadbw m4, [pix1q+8] - psadbw m5, [pix1q+strideq+8] - paddw m0, m4 - paddw m0, m5 - mova m4, m6 -%endif - sub hd, 2 - jg .loop -%if mmsize == 16 - movhlps m1, m0 - paddw m0, m1 -%endif - movd eax, m0 - RET -%endmacro - -INIT_MMX mmxext -SAD_Y2 8 -SAD_Y2 16 -INIT_XMM sse2 -SAD_Y2 16 - -;------------------------------------------------------------------------------------------- -;int ff_sad_approx_xy2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, ptrdiff_t stride, int h); -;------------------------------------------------------------------------------------------- -;%1 = 8/16 -%macro SAD_APPROX_XY2 1 -cglobal sad%1_approx_xy2, 5, 5, 7, v, pix1, pix2, stride, h - mova m4, [pb_1] - movu m1, [pix2q] - movu m0, [pix2q+strideq] - movu m3, [pix2q+2*strideq] -%if mmsize == 16 - movu m5, [pix2q+1] - movu m6, [pix2q+strideq+1] - movu m2, [pix2q+2*strideq+1] - pavgb m1, m5 - pavgb m0, m6 - pavgb m3, m2 -%else - pavgb m1, [pix2q+1] - pavgb m0, [pix2q+strideq+1] - pavgb m3, [pix2q+2*strideq+1] -%endif - psubusb m0, m4 - pavgb m1, m0 - pavgb m0, m3 - psadbw m1, [pix1q] - psadbw m0, [pix1q+strideq] - paddw m0, m1 - mova m1, m3 -%if %1 != mmsize - movu m5, [pix2q+8] - movu m6, [pix2q+strideq+8] - movu m7, [pix2q+2*strideq+8] - pavgb m5, [pix2q+1+8] - pavgb m6, [pix2q+strideq+1+8] - pavgb m7, [pix2q+2*strideq+1+8] - psubusb m6, m4 - pavgb m5, m6 - pavgb m6, m7 - psadbw m5, [pix1q+8] - psadbw m6, [pix1q+strideq+8] - paddw m0, m5 - paddw m0, m6 - mova m5, m7 -%endif - add pix2q, strideq - sub hd, 2 - -align 16 -.loop: - lea pix1q, [pix1q+2*strideq] - lea pix2q, [pix2q+2*strideq] - movu m2, [pix2q] - movu m3, [pix2q+strideq] -%if mmsize == 16 - movu m5, [pix2q+1] - movu m6, [pix2q+strideq+1] - pavgb m2, m5 - pavgb m3, m6 -%else - pavgb m2, [pix2q+1] - pavgb m3, [pix2q+strideq+1] -%endif - psubusb m2, m4 - pavgb m1, m2 - pavgb m2, m3 - psadbw m1, [pix1q] - psadbw m2, [pix1q+strideq] - paddw m0, m1 - paddw m0, m2 - mova m1, m3 -%if %1 != mmsize - movu m6, [pix2q+8] - movu m7, [pix2q+strideq+8] - pavgb m6, [pix2q+8+1] - pavgb m7, [pix2q+strideq+8+1] - psubusb m6, m4 - pavgb m5, m6 - pavgb m6, m7 - psadbw m5, [pix1q+8] - psadbw m6, [pix1q+strideq+8] - paddw m0, m5 - paddw m0, m6 - mova m5, m7 -%endif - sub hd, 2 - jg .loop -%if mmsize == 16 - movhlps m1, m0 - paddw m0, m1 -%endif - movd eax, m0 - RET -%endmacro - -INIT_MMX mmxext -SAD_APPROX_XY2 8 -SAD_APPROX_XY2 16 -INIT_XMM sse2 -SAD_APPROX_XY2 16 - -;-------------------------------------------------------------------- -;int ff_vsad_intra(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, -; ptrdiff_t line_size, int h); -;-------------------------------------------------------------------- -; %1 = 8/16 -%macro VSAD_INTRA 1 -cglobal vsad_intra%1, 5, 5, 3, v, pix1, pix2, lsize, h - mova m0, [pix1q] -%if %1 == mmsize - mova m2, [pix1q+lsizeq] - psadbw m0, m2 -%else - mova m2, [pix1q+lsizeq] - mova m3, [pix1q+8] - mova m4, [pix1q+lsizeq+8] - psadbw m0, m2 - psadbw m3, m4 - paddw m0, m3 -%endif - sub hd, 2 - -.loop: - lea pix1q, [pix1q + 2*lsizeq] -%if %1 == mmsize - mova m1, [pix1q] - psadbw m2, m1 - paddw m0, m2 - mova m2, [pix1q+lsizeq] - psadbw m1, m2 - paddw m0, m1 -%else - mova m1, [pix1q] - mova m3, [pix1q+8] - psadbw m2, m1 - psadbw m4, m3 - paddw m0, m2 - paddw m0, m4 - mova m2, [pix1q+lsizeq] - mova m4, [pix1q+lsizeq+8] - psadbw m1, m2 - psadbw m3, m4 - paddw m0, m1 - paddw m0, m3 -%endif - sub hd, 2 - jg .loop - -%if mmsize == 16 - pshufd m1, m0, 0xe - paddd m0, m1 -%endif - movd eax, m0 - RET -%endmacro - -INIT_MMX mmxext -VSAD_INTRA 8 -VSAD_INTRA 16 -INIT_XMM sse2 -VSAD_INTRA 16 - -;--------------------------------------------------------------------- -;int ff_vsad_approx(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, -; ptrdiff_t line_size, int h); -;--------------------------------------------------------------------- -; %1 = 8/16 -%macro VSAD_APPROX 1 -cglobal vsad%1_approx, 5, 5, 5, v, pix1, pix2, lsize, h - mova m1, [pb_80] - mova m0, [pix1q] -%if %1 == mmsize ; vsad8_mmxext, vsad16_sse2 - mova m4, [pix1q+lsizeq] -%if mmsize == 16 - movu m3, [pix2q] - movu m2, [pix2q+lsizeq] - psubb m0, m3 - psubb m4, m2 -%else - psubb m0, [pix2q] - psubb m4, [pix2q+lsizeq] -%endif - pxor m0, m1 - pxor m4, m1 - psadbw m0, m4 -%else ; vsad16_mmxext - mova m3, [pix1q+8] - psubb m0, [pix2q] - psubb m3, [pix2q+8] - pxor m0, m1 - pxor m3, m1 - mova m4, [pix1q+lsizeq] - mova m5, [pix1q+lsizeq+8] - psubb m4, [pix2q+lsizeq] - psubb m5, [pix2q+lsizeq+8] - pxor m4, m1 - pxor m5, m1 - psadbw m0, m4 - psadbw m3, m5 - paddw m0, m3 -%endif - sub hd, 2 - -.loop: - lea pix1q, [pix1q + 2*lsizeq] - lea pix2q, [pix2q + 2*lsizeq] - mova m2, [pix1q] -%if %1 == mmsize ; vsad8_mmxext, vsad16_sse2 -%if mmsize == 16 - movu m3, [pix2q] - psubb m2, m3 -%else - psubb m2, [pix2q] -%endif - pxor m2, m1 - psadbw m4, m2 - paddw m0, m4 - mova m4, [pix1q+lsizeq] - movu m3, [pix2q+lsizeq] - psubb m4, m3 - pxor m4, m1 - psadbw m2, m4 - paddw m0, m2 -%else ; vsad16_mmxext - mova m3, [pix1q+8] - psubb m2, [pix2q] - psubb m3, [pix2q+8] - pxor m2, m1 - pxor m3, m1 - psadbw m4, m2 - psadbw m5, m3 - paddw m0, m4 - paddw m0, m5 - mova m4, [pix1q+lsizeq] - mova m5, [pix1q+lsizeq+8] - psubb m4, [pix2q+lsizeq] - psubb m5, [pix2q+lsizeq+8] - pxor m4, m1 - pxor m5, m1 - psadbw m2, m4 - psadbw m3, m5 - paddw m0, m2 - paddw m0, m3 -%endif - sub hd, 2 - jg .loop - -%if mmsize == 16 - pshufd m1, m0, 0xe - paddd m0, m1 -%endif - movd eax, m0 - RET -%endmacro - -INIT_MMX mmxext -VSAD_APPROX 8 -VSAD_APPROX 16 -INIT_XMM sse2 -VSAD_APPROX 16 diff --git a/libavcodec/x86/mlpdsp.asm b/libavcodec/x86/mlpdsp.asm deleted file mode 100644 index 3dc641e89e..0000000000 --- a/libavcodec/x86/mlpdsp.asm +++ /dev/null @@ -1,196 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized MLP DSP functions -;* Copyright (c) 2014 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%if ARCH_X86_64 - -%macro SHLX 2 -%if cpuflag(bmi2) - shlx %1, %1, %2q -%else - shl %1, %2b -%endif -%endmacro - -%macro REMATRIX 0 - movdqa m0, [samplesq] - movdqa m1, [coeffsq ] - pshufd m2, m0, q2301 - pshufd m3, m1, q2301 - pmuldq m0, m1 - pmuldq m3, m2 - paddq m0, m3 -%if notcpuflag(avx2) - movdqa m1, [samplesq + 16] - movdqa m2, [coeffsq + 16] - pshufd m3, m1, q2301 - pshufd m4, m2, q2301 - pmuldq m1, m2 - pmuldq m4, m3 - paddq m0, m1 - paddq m0, m4 -%else - vextracti128 xm1, m0, 1 - paddq xm0, xm1 -%endif -%endmacro - -%macro LOOP_END 0 - pshufd xm1, xm0, q0032 - paddq xm0, xm1 - movq accumq, xm0 - movzx blsbsd, byte [blsbs_ptrq] ; load *bypassed_lsbs - sar accumq, 14 ; accum >>= 14 - and accumd, maskd ; accum &= mask - add accumd, blsbsd ; accum += *bypassed_lsbs - mov [samplesq + dest_chq], accumd ; samples[dest_ch] = accum - add blsbs_ptrq, 8 ; bypassed_lsbs += MAX_CHANNELS; - add samplesq, 32 ; samples += MAX_CHANNELS; - cmp blsbs_ptrq, cntq -%endmacro - -%macro LOOP_SHIFT_END 0 - pshufd xm1, xm0, q0032 - paddq xm0, xm1 - movq accumq, xm0 - and indexd, auspd ; index &= access_unit_size_pow2; - movsx noiseq, byte [noise_bufferq + indexq] ; load noise_buffer[index] - add indexd, index2d ; index += index2 - SHLX noiseq, mns ; noise_buffer[index] <<= matrix_noise_shift - add accumq, noiseq ; accum += noise_buffer[index] - movzx noised, byte [blsbs_ptrq] ; load *bypassed_lsbs (reuse tmp noise register) - sar accumq, 14 ; accum >>= 14 - and accumd, maskd ; accum &= mask - add accumd, noised ; accum += *bypassed_lsbs - mov [samplesq + dest_chq], accumd ; samples[dest_ch] = accum - add blsbs_ptrq, 8 ; bypassed_lsbs += MAX_CHANNELS; - add samplesq, 32 ; samples += MAX_CHANNELS; - cmp blsbs_ptrq, cntq -%endmacro - -;void ff_mlp_rematrix_channel(int32_t *samples, const int32_t *coeffs, -; const uint8_t *bypassed_lsbs, const int8_t *noise_buffer, -; int index, unsigned int dest_ch, uint16_t blockpos, -; unsigned int maxchan, int matrix_noise_shift, -; int access_unit_size_pow2, int32_t mask) -%macro MLP_REMATRIX_CHANNEL 0 -cglobal mlp_rematrix_channel, 0, 13, 5, samples, coeffs, blsbs_ptr, blsbs, \ - index, dest_ch, blockpos, maxchan, mns, \ - accum, mask, cnt - mov mnsd, mnsm ; load matrix_noise_shift - movzx blockposq, word blockposm ; load and zero extend blockpos (16bit) - mov maxchand, maxchanm ; load maxchan - mov maskd, maskm ; load mask -%if WIN64 - mov dest_chd, dest_chm ; load dest_chd (not needed on UNIX64) -%endif - shl dest_chd, 2 - lea cntq, [blsbs_ptrq + blockposq*8] - test mnsd, mnsd ; is matrix_noise_shift != 0? - jne .shift ; jump if true - cmp maxchand, 4 ; is maxchan < 4? - jl .loop4 ; jump if true - -align 16 -.loop8: - ; Process 5 or more channels - REMATRIX - LOOP_END - jne .loop8 - RET - -align 16 -.loop4: - ; Process up to 4 channels - movdqa xm0, [samplesq] - movdqa xm1, [coeffsq ] - pshufd xm2, xm0, q2301 - pshufd xm3, xm1, q2301 - pmuldq xm0, xm1 - pmuldq xm3, xm2 - paddq xm0, xm3 - LOOP_END - jne .loop4 - RET - -.shift: -%if WIN64 - mov indexd, indexm ; load index (not needed on UNIX64) -%endif - mov r9d, r9m ; load access_unit_size_pow2 -%if cpuflag(bmi2) - ; bmi2 has shift functions that accept any gpr, not just cl, so keep things in place. - DEFINE_ARGS samples, coeffs, blsbs_ptr, noise_buffer, \ - index, dest_ch, accum, index2, mns, \ - ausp, mask, cnt, noise - add mnsd, 7 ; matrix_noise_shift += 7 -%else ; sse4 - mov r6, rcx ; move rcx elsewhere so we can use cl for matrix_noise_shift -%if WIN64 - ; r0 = rcx - DEFINE_ARGS mns, coeffs, blsbs_ptr, noise_buffer, index, dest_ch, samples, \ - index2, accum, ausp, mask, cnt, noise -%else ; UNIX64 - ; r3 = rcx - DEFINE_ARGS samples, coeffs, blsbs_ptr, mns, index, dest_ch, noise_buffer, \ - index2, accum, ausp, mask, cnt, noise -%endif - lea mnsd, [r8 + 7] ; rcx = matrix_noise_shift + 7 -%endif ; cpuflag - sub auspd, 1 ; access_unit_size_pow2 -= 1 - cmp r7d, 4 ; is maxchan < 4? - lea index2q, [indexq*2 + 1] ; index2 = 2 * index + 1; - jl .loop4_shift ; jump if maxchan < 4 - -align 16 -.loop8_shift: - ; Process 5 or more channels - REMATRIX - LOOP_SHIFT_END - jne .loop8_shift - RET - -align 16 -.loop4_shift: - ; Process up to 4 channels - movdqa xm0, [samplesq] - movdqa xm1, [coeffsq ] - pshufd xm2, xm0, q2301 - pshufd xm3, xm1, q2301 - pmuldq xm0, xm1 - pmuldq xm3, xm2 - paddq xm0, xm3 - LOOP_SHIFT_END - jne .loop4_shift - RET -%endmacro - -INIT_XMM sse4 -MLP_REMATRIX_CHANNEL -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2, bmi2 -MLP_REMATRIX_CHANNEL -%endif - -%endif ; ARCH_X86_64 diff --git a/libavcodec/x86/mpegvideoencdsp.asm b/libavcodec/x86/mpegvideoencdsp.asm deleted file mode 100644 index aec73f82dc..0000000000 --- a/libavcodec/x86/mpegvideoencdsp.asm +++ /dev/null @@ -1,154 +0,0 @@ -;***************************************************************************** -;* SIMD-optimized MPEG encoding functions -;***************************************************************************** -;* Copyright (c) 2000, 2001 Fabrice Bellard -;* Copyright (c) 2002-2004 Michael Niedermayer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pw_1 - -SECTION .text -; int ff_pix_sum16_mmx(uint8_t *pix, int line_size) -; %1 = number of loops -; %2 = number of GPRs used -%macro PIX_SUM16 3 -cglobal pix_sum16, 2, %2, 6 - movsxdifnidn r1, r1d - mov r2, %1 -%if mmsize == 16 - lea r3, [r1*3] -%endif -%if notcpuflag(xop) - pxor m5, m5 -%endif - pxor m4, m4 -.loop: -%if cpuflag(xop) - vphaddubq m0, [r0] - vphaddubq m1, [r0+r1] - vphaddubq m2, [r0+r1*2] - vphaddubq m3, [r0+r3] -%else - mova m0, [r0] -%if mmsize == 8 - mova m1, [r0+8] -%if cpuflag(mmxext) - mova m2, [r0+r1] - mova m3, [r0+r1+8] -%endif -%else ; sse2 - mova m1, [r0+r1] - mova m2, [r0+r1*2] - mova m3, [r0+r3] -%endif -%if cpuflag(mmxext) - psadbw m0, m5 - psadbw m1, m5 - psadbw m2, m5 - psadbw m3, m5 -%else ; mmx - punpckhbw m2, m0, m5 - punpcklbw m0, m5 - punpckhbw m3, m1, m5 - punpcklbw m1, m5 -%endif ; cpuflag(mmxext) -%endif ; cpuflag(xop) - paddw m1, m0 - paddw m3, m2 - paddw m3, m1 - paddw m4, m3 -%if cpuflag(mmxext) - lea r0, [r0+r1*%3] -%else - add r0, r1 -%endif - dec r2 - jne .loop -%if mmsize == 16 - pshufd m0, m4, q0032 - paddd m4, m0 -%elif notcpuflag(mmxext) - HADDW m4, m5 -%endif - movd eax, m4 - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -PIX_SUM16 16, 3, 0 -INIT_MMX mmxext -PIX_SUM16 8, 4, 2 -%endif -INIT_XMM sse2 -PIX_SUM16 4, 4, 4 -%if HAVE_XOP_EXTERNAL -INIT_XMM xop -PIX_SUM16 4, 4, 4 -%endif - -; int ff_pix_norm1_mmx(uint8_t *pix, int line_size) -; %1 = number of xmm registers used -; %2 = number of loops -%macro PIX_NORM1 2 -cglobal pix_norm1, 2, 3, %1 - movsxdifnidn r1, r1d - mov r2, %2 - pxor m0, m0 - pxor m5, m5 -.loop: - mova m2, [r0+0] -%if mmsize == 8 - mova m3, [r0+8] -%else - mova m3, [r0+r1] -%endif - punpckhbw m1, m2, m0 - punpcklbw m2, m0 - punpckhbw m4, m3, m0 - punpcklbw m3, m0 - pmaddwd m1, m1 - pmaddwd m2, m2 - pmaddwd m3, m3 - pmaddwd m4, m4 - paddd m2, m1 - paddd m4, m3 - paddd m5, m2 - paddd m5, m4 -%if mmsize == 8 - add r0, r1 -%else - lea r0, [r0+r1*2] -%endif - dec r2 - jne .loop - HADDD m5, m1 - movd eax, m5 - RET -%endmacro - -INIT_MMX mmx -PIX_NORM1 0, 16 -INIT_XMM sse2 -PIX_NORM1 6, 8 - diff --git a/libavcodec/x86/opusdsp.asm b/libavcodec/x86/opusdsp.asm deleted file mode 100644 index f5d206a8b1..0000000000 --- a/libavcodec/x86/opusdsp.asm +++ /dev/null @@ -1,110 +0,0 @@ -;****************************************************************************** -;* Opus SIMD functions -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - - ; 0.85..^1 0.85..^2 0.85..^3 0.85..^4 -tab_st: dd 0x3f599a00, 0x3f38f671, 0x3f1d382a, 0x3f05a32f - -SECTION .text - -INIT_XMM fma3 -%if UNIX64 -cglobal opus_deemphasis, 3, 3, 8, out, in, len -%else -cglobal opus_deemphasis, 4, 4, 8, out, in, coeff, len -%endif -%if ARCH_X86_32 - VBROADCASTSS m0, coeffm -%elif WIN64 - shufps m0, m2, m2, 0 -%else - shufps m0, m0, 0 -%endif - - movaps m4, [tab_st] - VBROADCASTSS m5, m4 - shufps m6, m4, m4, q1111 - shufps m7, m4, m4, q2222 - -.loop: - movaps m1, [inq] ; x0, x1, x2, x3 - - pslldq m2, m1, 4 ; 0, x0, x1, x2 - pslldq m3, m1, 8 ; 0, 0, x0, x1 - - fmaddps m2, m2, m5, m1 ; x + c1*x[0-2] - pslldq m1, 12 ; 0, 0, 0, x0 - - fmaddps m2, m3, m6, m2 ; x + c1*x[0-2] + c2*x[0-1] - fmaddps m1, m1, m7, m2 ; x + c1*x[0-2] + c2*x[0-1] + c3*x[0] - fmaddps m0, m0, m4, m1 ; x + c1*x[0-2] + c2*x[0-1] + c3*x[0] + c*s - - movaps [outq], m0 - shufps m0, m0, q3333 ; new state - - add inq, mmsize - add outq, mmsize - sub lenq, mmsize >> 2 - jg .loop - -%if ARCH_X86_64 == 0 - movss r0m, m0 - fld dword r0m -%endif - RET - - -INIT_XMM fma3 -cglobal opus_postfilter, 4, 4, 8, data, period, gains, len - VBROADCASTSS m0, [gainsq + 0] - VBROADCASTSS m1, [gainsq + 4] - VBROADCASTSS m2, [gainsq + 8] - - lea periodq, [periodq*4 + 8] - neg periodq - - movups m3, [dataq + periodq] - mulps m3, m2 - -.loop: - movups m4, [dataq + periodq + 4] - movups m5, [dataq + periodq + 8] - movups m6, [dataq + periodq + 12] - movups m7, [dataq + periodq + 16] - - fmaddps m3, m7, m2, m3 - addps m6, m4 - - fmaddps m5, m5, m0, [dataq] - fmaddps m6, m6, m1, m3 - - addps m5, m6 - mulps m3, m7, m2 - - movaps [dataq], m5 - - add dataq, mmsize - sub lenq, mmsize >> 2 - jg .loop - - RET diff --git a/libavcodec/x86/pixblockdsp.asm b/libavcodec/x86/pixblockdsp.asm deleted file mode 100644 index 440fe29bcc..0000000000 --- a/libavcodec/x86/pixblockdsp.asm +++ /dev/null @@ -1,128 +0,0 @@ -;***************************************************************************** -;* SIMD-optimized pixel operations -;***************************************************************************** -;* Copyright (c) 2000, 2001 Fabrice Bellard -;* Copyright (c) 2002-2004 Michael Niedermayer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_MMX mmx -; void ff_get_pixels_mmx(int16_t *block, const uint8_t *pixels, ptrdiff_t stride) -cglobal get_pixels, 3,4 - add r0, 128 - mov r3, -128 - pxor m7, m7 -.loop: - mova m0, [r1] - mova m2, [r1+r2] - mova m1, m0 - mova m3, m2 - punpcklbw m0, m7 - punpckhbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - mova [r0+r3+ 0], m0 - mova [r0+r3+ 8], m1 - mova [r0+r3+16], m2 - mova [r0+r3+24], m3 - lea r1, [r1+r2*2] - add r3, 32 - js .loop - REP_RET - -INIT_XMM sse2 -cglobal get_pixels, 3, 4, 5 - lea r3, [r2*3] - pxor m4, m4 - movh m0, [r1] - movh m1, [r1+r2] - movh m2, [r1+r2*2] - movh m3, [r1+r3] - lea r1, [r1+r2*4] - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpcklbw m3, m4 - mova [r0], m0 - mova [r0+0x10], m1 - mova [r0+0x20], m2 - mova [r0+0x30], m3 - movh m0, [r1] - movh m1, [r1+r2*1] - movh m2, [r1+r2*2] - movh m3, [r1+r3] - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpcklbw m3, m4 - mova [r0+0x40], m0 - mova [r0+0x50], m1 - mova [r0+0x60], m2 - mova [r0+0x70], m3 - RET - -; void ff_diff_pixels_mmx(int16_t *block, const uint8_t *s1, const uint8_t *s2, -; ptrdiff_t stride); -%macro DIFF_PIXELS 0 -cglobal diff_pixels, 4,5,5 - pxor m4, m4 - add r0, 128 - mov r4, -128 -.loop: - movq m0, [r1] - movq m2, [r2] -%if mmsize == 8 - movq m1, m0 - movq m3, m2 - punpcklbw m0, m4 - punpckhbw m1, m4 - punpcklbw m2, m4 - punpckhbw m3, m4 -%else - movq m1, [r1+r3] - movq m3, [r2+r3] - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpcklbw m3, m4 -%endif - psubw m0, m2 - psubw m1, m3 - mova [r0+r4+0], m0 - mova [r0+r4+mmsize], m1 -%if mmsize == 8 - add r1, r3 - add r2, r3 -%else - lea r1, [r1+r3*2] - lea r2, [r2+r3*2] -%endif - add r4, 2 * mmsize - jne .loop - RET -%endmacro - -INIT_MMX mmx -DIFF_PIXELS - -INIT_XMM sse2 -DIFF_PIXELS diff --git a/libavcodec/x86/pngdsp.asm b/libavcodec/x86/pngdsp.asm deleted file mode 100644 index 50e4255dec..0000000000 --- a/libavcodec/x86/pngdsp.asm +++ /dev/null @@ -1,173 +0,0 @@ -;****************************************************************************** -;* x86 optimizations for PNG decoding -;* -;* Copyright (c) 2008 Loren Merritt -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pw_255 - -SECTION .text - -; %1 = nr. of xmm registers used -%macro ADD_BYTES_FN 1 -cglobal add_bytes_l2, 4, 6, %1, dst, src1, src2, wa, w, i -%if ARCH_X86_64 - movsxd waq, wad -%endif - xor iq, iq - - ; vector loop - mov wq, waq - and waq, ~(mmsize*2-1) - jmp .end_v -.loop_v: - movu m0, [src2q+iq] - movu m1, [src2q+iq+mmsize] - paddb m0, [src1q+iq] - paddb m1, [src1q+iq+mmsize] - movu [dstq+iq ], m0 - movu [dstq+iq+mmsize], m1 - add iq, mmsize*2 -.end_v: - cmp iq, waq - jl .loop_v - -%if mmsize == 16 - ; vector loop - mov waq, wq - and waq, ~7 - jmp .end_l -.loop_l: - movq mm0, [src1q+iq] - paddb mm0, [src2q+iq] - movq [dstq+iq ], mm0 - add iq, 8 -.end_l: - cmp iq, waq - jl .loop_l -%endif - - ; scalar loop for leftover - jmp .end_s -.loop_s: - mov wab, [src1q+iq] - add wab, [src2q+iq] - mov [dstq+iq], wab - inc iq -.end_s: - cmp iq, wq - jl .loop_s - REP_RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -ADD_BYTES_FN 0 -%endif - -INIT_XMM sse2 -ADD_BYTES_FN 2 - -%macro ADD_PAETH_PRED_FN 1 -cglobal add_png_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr -%if ARCH_X86_64 - movsxd bppq, bppd - movsxd wq, wd -%endif - lea endq, [dstq+wq-(mmsize/2-1)] - sub topq, dstq - sub srcq, dstq - sub dstq, bppq - pxor m7, m7 - - PUSH dstq - lea cntrq, [bppq-1] - shr cntrq, 2 + mmsize/16 -.bpp_loop: - lea dstq, [dstq+cntrq*(mmsize/2)] - movh m0, [dstq] - movh m1, [topq+dstq] - punpcklbw m0, m7 - punpcklbw m1, m7 - add dstq, bppq -.loop: - mova m2, m1 - movh m1, [topq+dstq] - mova m3, m2 - punpcklbw m1, m7 - mova m4, m2 - psubw m3, m1 - psubw m4, m0 - mova m5, m3 - paddw m5, m4 -%if cpuflag(ssse3) - pabsw m3, m3 - pabsw m4, m4 - pabsw m5, m5 -%else ; !cpuflag(ssse3) - psubw m7, m5 - pmaxsw m5, m7 - pxor m6, m6 - pxor m7, m7 - psubw m6, m3 - psubw m7, m4 - pmaxsw m3, m6 - pmaxsw m4, m7 - pxor m7, m7 -%endif ; cpuflag(ssse3) - mova m6, m4 - pminsw m6, m5 - pcmpgtw m3, m6 - pcmpgtw m4, m5 - mova m6, m4 - pand m4, m3 - pandn m6, m3 - pandn m3, m0 - movh m0, [srcq+dstq] - pand m6, m1 - pand m2, m4 - punpcklbw m0, m7 - paddw m0, m6 - paddw m3, m2 - paddw m0, m3 - pand m0, [pw_255] - mova m3, m0 - packuswb m3, m3 - movh [dstq], m3 - add dstq, bppq - cmp dstq, endq - jl .loop - - mov dstq, [rsp] - dec cntrq - jge .bpp_loop - POP dstq - RET -%endmacro - -INIT_MMX mmxext -ADD_PAETH_PRED_FN 0 - -INIT_MMX ssse3 -ADD_PAETH_PRED_FN 0 diff --git a/libavcodec/x86/proresdsp.asm b/libavcodec/x86/proresdsp.asm deleted file mode 100644 index 65c9fad51c..0000000000 --- a/libavcodec/x86/proresdsp.asm +++ /dev/null @@ -1,68 +0,0 @@ -;****************************************************************************** -;* x86-SIMD-optimized IDCT for prores -;* this is identical to "simple" IDCT written by Michael Niedermayer -;* except for the clip range -;* -;* Copyright (c) 2011 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -%if ARCH_X86_64 - -SECTION_RODATA - -pw_88: times 8 dw 0x2008 -cextern pw_1 -cextern pw_4 -cextern pw_1019 -; Below are defined in simple_idct10.asm built from selecting idctdsp -cextern w4_plus_w2_hi -cextern w4_min_w2_hi -cextern w4_plus_w6_hi -cextern w4_min_w6_hi -cextern w1_plus_w3_hi -cextern w3_min_w1_hi -cextern w7_plus_w3_hi -cextern w3_min_w7_hi -cextern w1_plus_w5 -cextern w5_min_w1 -cextern w5_plus_w7 -cextern w7_min_w5 - -%include "libavcodec/x86/simple_idct10_template.asm" - -SECTION .text - -define_constants _hi - -%macro idct_fn 0 -cglobal prores_idct_put_10, 4, 4, 15, pixels, lsize, block, qmat - IDCT_FN pw_1, 15, pw_88, 18, "put", pw_4, pw_1019, r3 - RET -%endmacro - -INIT_XMM sse2 -idct_fn -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -idct_fn -%endif - -%endif diff --git a/libavcodec/x86/qpel.asm b/libavcodec/x86/qpel.asm deleted file mode 100644 index 4e72d5084f..0000000000 --- a/libavcodec/x86/qpel.asm +++ /dev/null @@ -1,179 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized quarterpel functions -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2003-2013 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro op_avgh 3 - movh %3, %2 - pavgb %1, %3 - movh %2, %1 -%endmacro - -%macro op_avg 2 - pavgb %1, %2 - mova %2, %1 -%endmacro - -%macro op_puth 2-3 - movh %2, %1 -%endmacro - -%macro op_put 2 - mova %2, %1 -%endmacro - -; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2, -; int dstStride, int src1Stride, int h) -%macro PIXELS4_L2 1 -%define OP op_%1h -cglobal %1_pixels4_l2, 6,6 - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - test r5d, 1 - je .loop - movd m0, [r1] - movd m1, [r2] - add r1, r4 - add r2, 4 - pavgb m0, m1 - OP m0, [r0], m3 - add r0, r3 - dec r5d -.loop: - mova m0, [r1] - mova m1, [r1+r4] - lea r1, [r1+2*r4] - pavgb m0, [r2] - pavgb m1, [r2+4] - OP m0, [r0], m3 - OP m1, [r0+r3], m3 - lea r0, [r0+2*r3] - mova m0, [r1] - mova m1, [r1+r4] - lea r1, [r1+2*r4] - pavgb m0, [r2+8] - pavgb m1, [r2+12] - OP m0, [r0], m3 - OP m1, [r0+r3], m3 - lea r0, [r0+2*r3] - add r2, 16 - sub r5d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PIXELS4_L2 put -PIXELS4_L2 avg - -; void ff_put/avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2, -; int dstStride, int src1Stride, int h) -%macro PIXELS8_L2 1 -%define OP op_%1 -cglobal %1_pixels8_l2, 6,6 - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - test r5d, 1 - je .loop - mova m0, [r1] - mova m1, [r2] - add r1, r4 - add r2, 8 - pavgb m0, m1 - OP m0, [r0] - add r0, r3 - dec r5d -.loop: - mova m0, [r1] - mova m1, [r1+r4] - lea r1, [r1+2*r4] - pavgb m0, [r2] - pavgb m1, [r2+8] - OP m0, [r0] - OP m1, [r0+r3] - lea r0, [r0+2*r3] - mova m0, [r1] - mova m1, [r1+r4] - lea r1, [r1+2*r4] - pavgb m0, [r2+16] - pavgb m1, [r2+24] - OP m0, [r0] - OP m1, [r0+r3] - lea r0, [r0+2*r3] - add r2, 32 - sub r5d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PIXELS8_L2 put -PIXELS8_L2 avg - -; void ff_put/avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2, -; int dstStride, int src1Stride, int h) -%macro PIXELS16_L2 1 -%define OP op_%1 -cglobal %1_pixels16_l2, 6,6 - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - test r5d, 1 - je .loop - mova m0, [r1] - mova m1, [r1+8] - pavgb m0, [r2] - pavgb m1, [r2+8] - add r1, r4 - add r2, 16 - OP m0, [r0] - OP m1, [r0+8] - add r0, r3 - dec r5d -.loop: - mova m0, [r1] - mova m1, [r1+8] - add r1, r4 - pavgb m0, [r2] - pavgb m1, [r2+8] - OP m0, [r0] - OP m1, [r0+8] - add r0, r3 - mova m0, [r1] - mova m1, [r1+8] - add r1, r4 - pavgb m0, [r2+16] - pavgb m1, [r2+24] - OP m0, [r0] - OP m1, [r0+8] - add r0, r3 - add r2, 32 - sub r5d, 2 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PIXELS16_L2 put -PIXELS16_L2 avg diff --git a/libavcodec/x86/qpeldsp.asm b/libavcodec/x86/qpeldsp.asm deleted file mode 100644 index 282faed14f..0000000000 --- a/libavcodec/x86/qpeldsp.asm +++ /dev/null @@ -1,560 +0,0 @@ -;****************************************************************************** -;* mpeg4 qpel -;* Copyright (c) 2003 Michael Niedermayer -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -cextern pb_1 -cextern pw_3 -cextern pw_15 -cextern pw_16 -cextern pw_20 - - -SECTION .text - -; void ff_put_no_rnd_pixels8_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h) -%macro PUT_NO_RND_PIXELS8_L2 0 -cglobal put_no_rnd_pixels8_l2, 6,6 - movsxdifnidn r4, r4d - movsxdifnidn r3, r3d - pcmpeqb m6, m6 - test r5d, 1 - je .loop - mova m0, [r1] - mova m1, [r2] - add r1, r4 - add r2, 8 - pxor m0, m6 - pxor m1, m6 - PAVGB m0, m1 - pxor m0, m6 - mova [r0], m0 - add r0, r3 - dec r5d -.loop: - mova m0, [r1] - add r1, r4 - mova m1, [r1] - add r1, r4 - mova m2, [r2] - mova m3, [r2+8] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6 - pxor m3, m6 - PAVGB m0, m2 - PAVGB m1, m3 - pxor m0, m6 - pxor m1, m6 - mova [r0], m0 - add r0, r3 - mova [r0], m1 - add r0, r3 - mova m0, [r1] - add r1, r4 - mova m1, [r1] - add r1, r4 - mova m2, [r2+16] - mova m3, [r2+24] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6 - pxor m3, m6 - PAVGB m0, m2 - PAVGB m1, m3 - pxor m0, m6 - pxor m1, m6 - mova [r0], m0 - add r0, r3 - mova [r0], m1 - add r0, r3 - add r2, 32 - sub r5d, 4 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_NO_RND_PIXELS8_L2 - - -; void ff_put_no_rnd_pixels16_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h) -%macro PUT_NO_RND_PIXELS16_l2 0 -cglobal put_no_rnd_pixels16_l2, 6,6 - movsxdifnidn r3, r3d - movsxdifnidn r4, r4d - pcmpeqb m6, m6 - test r5d, 1 - je .loop - mova m0, [r1] - mova m1, [r1+8] - mova m2, [r2] - mova m3, [r2+8] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6 - pxor m3, m6 - PAVGB m0, m2 - PAVGB m1, m3 - pxor m0, m6 - pxor m1, m6 - add r1, r4 - add r2, 16 - mova [r0], m0 - mova [r0+8], m1 - add r0, r3 - dec r5d -.loop: - mova m0, [r1] - mova m1, [r1+8] - add r1, r4 - mova m2, [r2] - mova m3, [r2+8] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6 - pxor m3, m6 - PAVGB m0, m2 - PAVGB m1, m3 - pxor m0, m6 - pxor m1, m6 - mova [r0], m0 - mova [r0+8], m1 - add r0, r3 - mova m0, [r1] - mova m1, [r1+8] - add r1, r4 - mova m2, [r2+16] - mova m3, [r2+24] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6 - pxor m3, m6 - PAVGB m0, m2 - PAVGB m1, m3 - pxor m0, m6 - pxor m1, m6 - mova [r0], m0 - mova [r0+8], m1 - add r0, r3 - add r2, 32 - sub r5d, 2 - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PUT_NO_RND_PIXELS16_l2 -INIT_MMX 3dnow -PUT_NO_RND_PIXELS16_l2 - -%macro MPEG4_QPEL16_H_LOWPASS 1 -cglobal %1_mpeg4_qpel16_h_lowpass, 5, 5, 0, 16 - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - pxor m7, m7 -.loop: - mova m0, [r1] - mova m1, m0 - mova m2, m0 - punpcklbw m0, m7 - punpckhbw m1, m7 - pshufw m5, m0, 0x90 - pshufw m6, m0, 0x41 - mova m3, m2 - mova m4, m2 - psllq m2, 8 - psllq m3, 16 - psllq m4, 24 - punpckhbw m2, m7 - punpckhbw m3, m7 - punpckhbw m4, m7 - paddw m5, m3 - paddw m6, m2 - paddw m5, m5 - psubw m6, m5 - pshufw m5, m0, 6 - pmullw m6, [pw_3] - paddw m0, m4 - paddw m5, m1 - pmullw m0, [pw_20] - psubw m0, m5 - paddw m6, [PW_ROUND] - paddw m0, m6 - psraw m0, 5 - mova [rsp+8], m0 - mova m0, [r1+5] - mova m5, m0 - mova m6, m0 - psrlq m0, 8 - psrlq m5, 16 - punpcklbw m0, m7 - punpcklbw m5, m7 - paddw m2, m0 - paddw m3, m5 - paddw m2, m2 - psubw m3, m2 - mova m2, m6 - psrlq m6, 24 - punpcklbw m2, m7 - punpcklbw m6, m7 - pmullw m3, [pw_3] - paddw m1, m2 - paddw m4, m6 - pmullw m1, [pw_20] - psubw m3, m4 - paddw m1, [PW_ROUND] - paddw m3, m1 - psraw m3, 5 - mova m1, [rsp+8] - packuswb m1, m3 - OP_MOV [r0], m1, m4 - mova m1, [r1+9] - mova m4, m1 - mova m3, m1 - psrlq m1, 8 - psrlq m4, 16 - punpcklbw m1, m7 - punpcklbw m4, m7 - paddw m5, m1 - paddw m0, m4 - paddw m5, m5 - psubw m0, m5 - mova m5, m3 - psrlq m3, 24 - pmullw m0, [pw_3] - punpcklbw m3, m7 - paddw m2, m3 - psubw m0, m2 - mova m2, m5 - punpcklbw m2, m7 - punpckhbw m5, m7 - paddw m6, m2 - pmullw m6, [pw_20] - paddw m0, [PW_ROUND] - paddw m0, m6 - psraw m0, 5 - paddw m3, m5 - pshufw m6, m5, 0xf9 - paddw m6, m4 - pshufw m4, m5, 0xbe - pshufw m5, m5, 0x6f - paddw m4, m1 - paddw m5, m2 - paddw m6, m6 - psubw m4, m6 - pmullw m3, [pw_20] - pmullw m4, [pw_3] - psubw m3, m5 - paddw m4, [PW_ROUND] - paddw m4, m3 - psraw m4, 5 - packuswb m0, m4 - OP_MOV [r0+8], m0, m4 - add r1, r3 - add r0, r2 - dec r4d - jne .loop - REP_RET -%endmacro - -%macro PUT_OP 2-3 - mova %1, %2 -%endmacro - -%macro AVG_OP 2-3 - mova %3, %1 - pavgb %2, %3 - mova %1, %2 -%endmacro - -INIT_MMX mmxext -%define PW_ROUND pw_16 -%define OP_MOV PUT_OP -MPEG4_QPEL16_H_LOWPASS put -%define PW_ROUND pw_16 -%define OP_MOV AVG_OP -MPEG4_QPEL16_H_LOWPASS avg -%define PW_ROUND pw_15 -%define OP_MOV PUT_OP -MPEG4_QPEL16_H_LOWPASS put_no_rnd - - - -%macro MPEG4_QPEL8_H_LOWPASS 1 -cglobal %1_mpeg4_qpel8_h_lowpass, 5, 5, 0, 8 - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - pxor m7, m7 -.loop: - mova m0, [r1] - mova m1, m0 - mova m2, m0 - punpcklbw m0, m7 - punpckhbw m1, m7 - pshufw m5, m0, 0x90 - pshufw m6, m0, 0x41 - mova m3, m2 - mova m4, m2 - psllq m2, 8 - psllq m3, 16 - psllq m4, 24 - punpckhbw m2, m7 - punpckhbw m3, m7 - punpckhbw m4, m7 - paddw m5, m3 - paddw m6, m2 - paddw m5, m5 - psubw m6, m5 - pshufw m5, m0, 0x6 - pmullw m6, [pw_3] - paddw m0, m4 - paddw m5, m1 - pmullw m0, [pw_20] - psubw m0, m5 - paddw m6, [PW_ROUND] - paddw m0, m6 - psraw m0, 5 - movh m5, [r1+5] - punpcklbw m5, m7 - pshufw m6, m5, 0xf9 - paddw m1, m5 - paddw m2, m6 - pshufw m6, m5, 0xbe - pshufw m5, m5, 0x6f - paddw m3, m6 - paddw m4, m5 - paddw m2, m2 - psubw m3, m2 - pmullw m1, [pw_20] - pmullw m3, [pw_3] - psubw m3, m4 - paddw m1, [PW_ROUND] - paddw m3, m1 - psraw m3, 5 - packuswb m0, m3 - OP_MOV [r0], m0, m4 - add r1, r3 - add r0, r2 - dec r4d - jne .loop - REP_RET -%endmacro - -INIT_MMX mmxext -%define PW_ROUND pw_16 -%define OP_MOV PUT_OP -MPEG4_QPEL8_H_LOWPASS put -%define PW_ROUND pw_16 -%define OP_MOV AVG_OP -MPEG4_QPEL8_H_LOWPASS avg -%define PW_ROUND pw_15 -%define OP_MOV PUT_OP -MPEG4_QPEL8_H_LOWPASS put_no_rnd - - - -%macro QPEL_V_LOW 5 - paddw m0, m1 - mova m4, [pw_20] - pmullw m4, m0 - mova m0, %4 - mova m5, %1 - paddw m5, m0 - psubw m4, m5 - mova m5, %2 - mova m6, %3 - paddw m5, m3 - paddw m6, m2 - paddw m6, m6 - psubw m5, m6 - pmullw m5, [pw_3] - paddw m4, [PW_ROUND] - paddw m5, m4 - psraw m5, 5 - packuswb m5, m5 - OP_MOV %5, m5, m7 - SWAP 0,1,2,3 -%endmacro - -%macro MPEG4_QPEL16_V_LOWPASS 1 -cglobal %1_mpeg4_qpel16_v_lowpass, 4, 6, 0, 544 - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - - mov r4d, 17 - mov r5, rsp - pxor m7, m7 -.looph: - mova m0, [r1] - mova m1, [r1] - mova m2, [r1+8] - mova m3, [r1+8] - punpcklbw m0, m7 - punpckhbw m1, m7 - punpcklbw m2, m7 - punpckhbw m3, m7 - mova [r5], m0 - mova [r5+0x88], m1 - mova [r5+0x110], m2 - mova [r5+0x198], m3 - add r5, 8 - add r1, r3 - dec r4d - jne .looph - - - ; NOTE: r1 CHANGES VALUES: r1 -> 4 - 14*dstStride - mov r4d, 4 - mov r1, 4 - neg r2 - lea r1, [r1+r2*8] - lea r1, [r1+r2*4] - lea r1, [r1+r2*2] - neg r2 - mov r5, rsp -.loopv: - pxor m7, m7 - mova m0, [r5+ 0x0] - mova m1, [r5+ 0x8] - mova m2, [r5+0x10] - mova m3, [r5+0x18] - QPEL_V_LOW [r5+0x10], [r5+ 0x8], [r5+ 0x0], [r5+0x20], [r0] - QPEL_V_LOW [r5+ 0x8], [r5+ 0x0], [r5+ 0x0], [r5+0x28], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+ 0x0], [r5+ 0x0], [r5+ 0x8], [r5+0x30], [r0] - QPEL_V_LOW [r5+ 0x0], [r5+ 0x8], [r5+0x10], [r5+0x38], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+ 0x8], [r5+0x10], [r5+0x18], [r5+0x40], [r0] - QPEL_V_LOW [r5+0x10], [r5+0x18], [r5+0x20], [r5+0x48], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+0x18], [r5+0x20], [r5+0x28], [r5+0x50], [r0] - QPEL_V_LOW [r5+0x20], [r5+0x28], [r5+0x30], [r5+0x58], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+0x28], [r5+0x30], [r5+0x38], [r5+0x60], [r0] - QPEL_V_LOW [r5+0x30], [r5+0x38], [r5+0x40], [r5+0x68], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+0x38], [r5+0x40], [r5+0x48], [r5+0x70], [r0] - QPEL_V_LOW [r5+0x40], [r5+0x48], [r5+0x50], [r5+0x78], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+0x48], [r5+0x50], [r5+0x58], [r5+0x80], [r0] - QPEL_V_LOW [r5+0x50], [r5+0x58], [r5+0x60], [r5+0x80], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+0x58], [r5+0x60], [r5+0x68], [r5+0x78], [r0] - QPEL_V_LOW [r5+0x60], [r5+0x68], [r5+0x70], [r5+0x70], [r0+r2] - - add r5, 0x88 - add r0, r1 - dec r4d - jne .loopv - REP_RET -%endmacro - -%macro PUT_OPH 2-3 - movh %1, %2 -%endmacro - -%macro AVG_OPH 2-3 - movh %3, %1 - pavgb %2, %3 - movh %1, %2 -%endmacro - -INIT_MMX mmxext -%define PW_ROUND pw_16 -%define OP_MOV PUT_OPH -MPEG4_QPEL16_V_LOWPASS put -%define PW_ROUND pw_16 -%define OP_MOV AVG_OPH -MPEG4_QPEL16_V_LOWPASS avg -%define PW_ROUND pw_15 -%define OP_MOV PUT_OPH -MPEG4_QPEL16_V_LOWPASS put_no_rnd - - - -%macro MPEG4_QPEL8_V_LOWPASS 1 -cglobal %1_mpeg4_qpel8_v_lowpass, 4, 6, 0, 288 - movsxdifnidn r2, r2d - movsxdifnidn r3, r3d - - mov r4d, 9 - mov r5, rsp - pxor m7, m7 -.looph: - mova m0, [r1] - mova m1, [r1] - punpcklbw m0, m7 - punpckhbw m1, m7 - mova [r5], m0 - mova [r5+0x48], m1 - add r5, 8 - add r1, r3 - dec r4d - jne .looph - - - ; NOTE: r1 CHANGES VALUES: r1 -> 4 - 6*dstStride - mov r4d, 2 - mov r1, 4 - neg r2 - lea r1, [r1+r2*4] - lea r1, [r1+r2*2] - neg r2 - mov r5, rsp -.loopv: - pxor m7, m7 - mova m0, [r5+ 0x0] - mova m1, [r5+ 0x8] - mova m2, [r5+0x10] - mova m3, [r5+0x18] - QPEL_V_LOW [r5+0x10], [r5+ 0x8], [r5+ 0x0], [r5+0x20], [r0] - QPEL_V_LOW [r5+ 0x8], [r5+ 0x0], [r5+ 0x0], [r5+0x28], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+ 0x0], [r5+ 0x0], [r5+ 0x8], [r5+0x30], [r0] - QPEL_V_LOW [r5+ 0x0], [r5+ 0x8], [r5+0x10], [r5+0x38], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+ 0x8], [r5+0x10], [r5+0x18], [r5+0x40], [r0] - QPEL_V_LOW [r5+0x10], [r5+0x18], [r5+0x20], [r5+0x40], [r0+r2] - lea r0, [r0+r2*2] - QPEL_V_LOW [r5+0x18], [r5+0x20], [r5+0x28], [r5+0x38], [r0] - QPEL_V_LOW [r5+0x20], [r5+0x28], [r5+0x30], [r5+0x30], [r0+r2] - - add r5, 0x48 - add r0, r1 - dec r4d - jne .loopv - REP_RET -%endmacro - -INIT_MMX mmxext -%define PW_ROUND pw_16 -%define OP_MOV PUT_OPH -MPEG4_QPEL8_V_LOWPASS put -%define PW_ROUND pw_16 -%define OP_MOV AVG_OPH -MPEG4_QPEL8_V_LOWPASS avg -%define PW_ROUND pw_15 -%define OP_MOV PUT_OPH -MPEG4_QPEL8_V_LOWPASS put_no_rnd diff --git a/libavcodec/x86/rv34dsp.asm b/libavcodec/x86/rv34dsp.asm deleted file mode 100644 index 692b4acfcd..0000000000 --- a/libavcodec/x86/rv34dsp.asm +++ /dev/null @@ -1,213 +0,0 @@ -;****************************************************************************** -;* MMX/SSE2-optimized functions for the RV30 and RV40 decoders -;* Copyright (C) 2012 Christophe Gisquet -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -pw_row_coeffs: times 4 dw 13 - times 4 dw 17 - times 4 dw 7 -pd_512: times 2 dd 0x200 -pw_col_coeffs: dw 13, 13, 13, -13 - dw 17, 7, 7, -17 - dw 13, -13, 13, 13 - dw -7, 17, -17, -7 - -SECTION .text - -%macro IDCT_DC_NOROUND 1 - imul %1, 13*13*3 - sar %1, 11 -%endmacro - -%macro IDCT_DC_ROUND 1 - imul %1, 13*13 - add %1, 0x200 - sar %1, 10 -%endmacro - -%macro rv34_idct 1 -cglobal rv34_idct_%1, 1, 2, 0 - movsx r1, word [r0] - IDCT_DC r1 - movd m0, r1d - pshufw m0, m0, 0 - movq [r0+ 0], m0 - movq [r0+ 8], m0 - movq [r0+16], m0 - movq [r0+24], m0 - REP_RET -%endmacro - -INIT_MMX mmxext -%define IDCT_DC IDCT_DC_ROUND -rv34_idct dc -%define IDCT_DC IDCT_DC_NOROUND -rv34_idct dc_noround - -; ff_rv34_idct_dc_add_mmx(uint8_t *dst, int stride, int dc); -%if ARCH_X86_32 -INIT_MMX mmx -cglobal rv34_idct_dc_add, 3, 3 - ; calculate DC - IDCT_DC_ROUND r2 - pxor m1, m1 - movd m0, r2d - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 - punpcklbw m0, m0 - punpcklbw m1, m1 - punpcklwd m0, m0 - punpcklwd m1, m1 - - ; add DC - lea r2, [r0+r1*2] - movh m2, [r0] - movh m3, [r0+r1] - movh m4, [r2] - movh m5, [r2+r1] - paddusb m2, m0 - paddusb m3, m0 - paddusb m4, m0 - paddusb m5, m0 - psubusb m2, m1 - psubusb m3, m1 - psubusb m4, m1 - psubusb m5, m1 - movh [r0], m2 - movh [r0+r1], m3 - movh [r2], m4 - movh [r2+r1], m5 - RET -%endif - -; Load coeffs and perform row transform -; Output: coeffs in mm[0467], rounder in mm5 -%macro ROW_TRANSFORM 1 - pxor mm7, mm7 - mova mm0, [%1+ 0*8] - mova mm1, [%1+ 1*8] - mova mm2, [%1+ 2*8] - mova mm3, [%1+ 3*8] - mova [%1+ 0*8], mm7 - mova [%1+ 1*8], mm7 - mova [%1+ 2*8], mm7 - mova [%1+ 3*8], mm7 - mova mm4, mm0 - mova mm6, [pw_row_coeffs+ 0] - paddsw mm0, mm2 ; b0 + b2 - psubsw mm4, mm2 ; b0 - b2 - pmullw mm0, mm6 ; *13 = z0 - pmullw mm4, mm6 ; *13 = z1 - mova mm5, mm1 - pmullw mm1, [pw_row_coeffs+ 8] ; b1*17 - pmullw mm5, [pw_row_coeffs+16] ; b1* 7 - mova mm7, mm3 - pmullw mm3, [pw_row_coeffs+ 8] ; b3*17 - pmullw mm7, [pw_row_coeffs+16] ; b3* 7 - paddsw mm1, mm7 ; z3 = b1*17 + b3* 7 - psubsw mm5, mm3 ; z2 = b1* 7 - b3*17 - mova mm7, mm0 - mova mm6, mm4 - paddsw mm0, mm1 ; z0 + z3 - psubsw mm7, mm1 ; z0 - z3 - paddsw mm4, mm5 ; z1 + z2 - psubsw mm6, mm5 ; z1 - z2 - mova mm5, [pd_512] ; 0x200 -%endmacro - -; ff_rv34_idct_add_mmxext(uint8_t *dst, ptrdiff_t stride, int16_t *block); -%macro COL_TRANSFORM 4 - pshufw mm3, %2, 0xDD ; col. 1,3,1,3 - pshufw %2, %2, 0x88 ; col. 0,2,0,2 - pmaddwd %2, %3 ; 13*c0+13*c2 | 13*c0-13*c2 = z0 | z1 - pmaddwd mm3, %4 ; 17*c1+ 7*c3 | 7*c1-17*c3 = z3 | z2 - paddd %2, mm5 - pshufw mm1, %2, 01001110b ; z1 | z0 - pshufw mm2, mm3, 01001110b ; z2 | z3 - paddd %2, mm3 ; z0+z3 | z1+z2 - psubd mm1, mm2 ; z1-z2 | z0-z3 - movd mm3, %1 - psrad %2, 10 - pxor mm2, mm2 - psrad mm1, 10 - punpcklbw mm3, mm2 - packssdw %2, mm1 - paddw %2, mm3 - packuswb %2, %2 - movd %1, %2 -%endmacro -INIT_MMX mmxext -cglobal rv34_idct_add, 3,3,0, d, s, b - ROW_TRANSFORM bq - COL_TRANSFORM [dq], mm0, [pw_col_coeffs+ 0], [pw_col_coeffs+ 8] - mova mm0, [pw_col_coeffs+ 0] - COL_TRANSFORM [dq+sq], mm4, mm0, [pw_col_coeffs+ 8] - mova mm4, [pw_col_coeffs+ 8] - lea dq, [dq + 2*sq] - COL_TRANSFORM [dq], mm6, mm0, mm4 - COL_TRANSFORM [dq+sq], mm7, mm0, mm4 - ret - -; ff_rv34_idct_dc_add_sse4(uint8_t *dst, int stride, int dc); -%macro RV34_IDCT_DC_ADD 0 -cglobal rv34_idct_dc_add, 3, 3, 6 - ; load data - IDCT_DC_ROUND r2 - pxor m1, m1 - - ; calculate DC - movd m0, r2d - lea r2, [r0+r1*2] - movd m2, [r0] - movd m3, [r0+r1] - pshuflw m0, m0, 0 - movd m4, [r2] - movd m5, [r2+r1] - punpcklqdq m0, m0 - punpckldq m2, m3 - punpckldq m4, m5 - punpcklbw m2, m1 - punpcklbw m4, m1 - paddw m2, m0 - paddw m4, m0 - packuswb m2, m4 - movd [r0], m2 -%if cpuflag(sse4) - pextrd [r0+r1], m2, 1 - pextrd [r2], m2, 2 - pextrd [r2+r1], m2, 3 -%else - psrldq m2, 4 - movd [r0+r1], m2 - psrldq m2, 4 - movd [r2], m2 - psrldq m2, 4 - movd [r2+r1], m2 -%endif - RET -%endmacro - -INIT_XMM sse2 -RV34_IDCT_DC_ADD -INIT_XMM sse4 -RV34_IDCT_DC_ADD diff --git a/libavcodec/x86/rv40dsp.asm b/libavcodec/x86/rv40dsp.asm deleted file mode 100644 index bcad1aee80..0000000000 --- a/libavcodec/x86/rv40dsp.asm +++ /dev/null @@ -1,500 +0,0 @@ -;****************************************************************************** -;* MMX/SSE2-optimized functions for the RV40 decoder -;* Copyright (c) 2010 Ronald S. Bultje -;* Copyright (c) 2010 Fiona Glaser -;* Copyright (C) 2012 Christophe Gisquet -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_1024: times 8 dw 1 << (16 - 6) ; pw_1024 - -sixtap_filter_hb_m: times 8 db 1, -5 - times 8 db 52, 20 - ; multiplied by 2 to have the same shift - times 8 db 2, -10 - times 8 db 40, 40 - ; back to normal - times 8 db 1, -5 - times 8 db 20, 52 - -sixtap_filter_v_m: times 8 dw 1 - times 8 dw -5 - times 8 dw 52 - times 8 dw 20 - ; multiplied by 2 to have the same shift - times 8 dw 2 - times 8 dw -10 - times 8 dw 40 - times 8 dw 40 - ; back to normal - times 8 dw 1 - times 8 dw -5 - times 8 dw 20 - times 8 dw 52 - -%ifdef PIC -%define sixtap_filter_hw picregq -%define sixtap_filter_hb picregq -%define sixtap_filter_v picregq -%define npicregs 1 -%else -%define sixtap_filter_hw sixtap_filter_hw_m -%define sixtap_filter_hb sixtap_filter_hb_m -%define sixtap_filter_v sixtap_filter_v_m -%define npicregs 0 -%endif - -filter_h6_shuf1: db 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8 -filter_h6_shuf2: db 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10 -filter_h6_shuf3: db 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 11, 10, 12, 11 - -cextern pw_32 -cextern pw_16 -cextern pw_512 - -SECTION .text - -;----------------------------------------------------------------------------- -; subpel MC functions: -; -; void ff_[put|rv40]_rv40_qpel_[h|v]_(uint8_t *dst, int deststride, -; uint8_t *src, int srcstride, -; int len, int m); -;---------------------------------------------------------------------- -%macro LOAD 2 -%if WIN64 - movsxd %1q, %1d -%endif -%ifdef PIC - add %1q, picregq -%else - add %1q, %2 -%endif -%endmacro - -%macro STORE 3 -%ifidn %3, avg - movh %2, [dstq] -%endif - packuswb %1, %1 -%ifidn %3, avg - PAVGB %1, %2 -%endif - movh [dstq], %1 -%endmacro - -%macro FILTER_V 1 -cglobal %1_rv40_qpel_v, 6,6+npicregs,12, dst, dststride, src, srcstride, height, my, picreg -%ifdef PIC - lea picregq, [sixtap_filter_v_m] -%endif - pxor m7, m7 - LOAD my, sixtap_filter_v - - ; read 5 lines - sub srcq, srcstrideq - sub srcq, srcstrideq - movh m0, [srcq] - movh m1, [srcq+srcstrideq] - movh m2, [srcq+srcstrideq*2] - lea srcq, [srcq+srcstrideq*2] - add srcq, srcstrideq - movh m3, [srcq] - movh m4, [srcq+srcstrideq] - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - -%ifdef m8 - mova m8, [myq+ 0] - mova m9, [myq+16] - mova m10, [myq+32] - mova m11, [myq+48] -%define COEFF05 m8 -%define COEFF14 m9 -%define COEFF2 m10 -%define COEFF3 m11 -%else -%define COEFF05 [myq+ 0] -%define COEFF14 [myq+16] -%define COEFF2 [myq+32] -%define COEFF3 [myq+48] -%endif -.nextrow: - mova m6, m1 - movh m5, [srcq+2*srcstrideq] ; read new row - paddw m6, m4 - punpcklbw m5, m7 - pmullw m6, COEFF14 - paddw m0, m5 - pmullw m0, COEFF05 - paddw m6, m0 - mova m0, m1 - paddw m6, [pw_32] - mova m1, m2 - pmullw m2, COEFF2 - paddw m6, m2 - mova m2, m3 - pmullw m3, COEFF3 - paddw m6, m3 - - ; round/clip/store - mova m3, m4 - psraw m6, 6 - mova m4, m5 - STORE m6, m5, %1 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET -%endmacro - -%macro FILTER_H 1 -cglobal %1_rv40_qpel_h, 6, 6+npicregs, 12, dst, dststride, src, srcstride, height, mx, picreg -%ifdef PIC - lea picregq, [sixtap_filter_v_m] -%endif - pxor m7, m7 - LOAD mx, sixtap_filter_v - mova m6, [pw_32] -%ifdef m8 - mova m8, [mxq+ 0] - mova m9, [mxq+16] - mova m10, [mxq+32] - mova m11, [mxq+48] -%define COEFF05 m8 -%define COEFF14 m9 -%define COEFF2 m10 -%define COEFF3 m11 -%else -%define COEFF05 [mxq+ 0] -%define COEFF14 [mxq+16] -%define COEFF2 [mxq+32] -%define COEFF3 [mxq+48] -%endif -.nextrow: - movq m0, [srcq-2] - movq m5, [srcq+3] - movq m1, [srcq-1] - movq m4, [srcq+2] - punpcklbw m0, m7 - punpcklbw m5, m7 - punpcklbw m1, m7 - punpcklbw m4, m7 - movq m2, [srcq-0] - movq m3, [srcq+1] - paddw m0, m5 - paddw m1, m4 - punpcklbw m2, m7 - punpcklbw m3, m7 - pmullw m0, COEFF05 - pmullw m1, COEFF14 - pmullw m2, COEFF2 - pmullw m3, COEFF3 - paddw m0, m6 - paddw m1, m2 - paddw m0, m3 - paddw m0, m1 - psraw m0, 6 - STORE m0, m1, %1 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -FILTER_V put -FILTER_H put - -INIT_MMX mmxext -FILTER_V avg -FILTER_H avg - -INIT_MMX 3dnow -FILTER_V avg -FILTER_H avg -%endif - -INIT_XMM sse2 -FILTER_H put -FILTER_H avg -FILTER_V put -FILTER_V avg - -%macro FILTER_SSSE3 1 -cglobal %1_rv40_qpel_v, 6,6+npicregs,8, dst, dststride, src, srcstride, height, my, picreg -%ifdef PIC - lea picregq, [sixtap_filter_hb_m] -%endif - - ; read 5 lines - sub srcq, srcstrideq - LOAD my, sixtap_filter_hb - sub srcq, srcstrideq - movh m0, [srcq] - movh m1, [srcq+srcstrideq] - movh m2, [srcq+srcstrideq*2] - lea srcq, [srcq+srcstrideq*2] - add srcq, srcstrideq - mova m5, [myq] - movh m3, [srcq] - movh m4, [srcq+srcstrideq] - lea srcq, [srcq+2*srcstrideq] - -.nextrow: - mova m6, m2 - punpcklbw m0, m1 - punpcklbw m6, m3 - pmaddubsw m0, m5 - pmaddubsw m6, [myq+16] - movh m7, [srcq] ; read new row - paddw m6, m0 - mova m0, m1 - mova m1, m2 - mova m2, m3 - mova m3, m4 - mova m4, m7 - punpcklbw m7, m3 - pmaddubsw m7, m5 - paddw m6, m7 - pmulhrsw m6, [pw_512] - STORE m6, m7, %1 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -cglobal %1_rv40_qpel_h, 6,6+npicregs,8, dst, dststride, src, srcstride, height, mx, picreg -%ifdef PIC - lea picregq, [sixtap_filter_hb_m] -%endif - mova m3, [filter_h6_shuf2] - mova m4, [filter_h6_shuf3] - LOAD mx, sixtap_filter_hb - mova m5, [mxq] ; set up 6tap filter in bytes - mova m6, [mxq+16] - mova m7, [filter_h6_shuf1] - -.nextrow: - movu m0, [srcq-2] - mova m1, m0 - mova m2, m0 - pshufb m0, m7 - pshufb m1, m3 - pshufb m2, m4 - pmaddubsw m0, m5 - pmaddubsw m1, m6 - pmaddubsw m2, m5 - paddw m0, m1 - paddw m0, m2 - pmulhrsw m0, [pw_512] - STORE m0, m1, %1 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET -%endmacro - -INIT_XMM ssse3 -FILTER_SSSE3 put -FILTER_SSSE3 avg - -; %1=5-bit weights?, %2=dst %3=src1 %4=src3 %5=stride if SSE2 -%macro RV40_WCORE 4-5 - movh m4, [%3 + r6 + 0] - movh m5, [%4 + r6 + 0] -%if %0 == 4 -%define OFFSET r6 + mmsize / 2 -%else - ; 8x8 block and SSE2, stride was provided -%define OFFSET r6 - add r6, r5 -%endif - movh m6, [%3 + OFFSET] - movh m7, [%4 + OFFSET] - -%if %1 == 0 - ; 14-bit weights - punpcklbw m4, m0 - punpcklbw m5, m0 - punpcklbw m6, m0 - punpcklbw m7, m0 - - psllw m4, 7 - psllw m5, 7 - psllw m6, 7 - psllw m7, 7 - pmulhw m4, m3 - pmulhw m5, m2 - pmulhw m6, m3 - pmulhw m7, m2 - - paddw m4, m5 - paddw m6, m7 -%else - ; 5-bit weights -%if cpuflag(ssse3) - punpcklbw m4, m5 - punpcklbw m6, m7 - - pmaddubsw m4, m3 - pmaddubsw m6, m3 -%else - punpcklbw m4, m0 - punpcklbw m5, m0 - punpcklbw m6, m0 - punpcklbw m7, m0 - - pmullw m4, m3 - pmullw m5, m2 - pmullw m6, m3 - pmullw m7, m2 - paddw m4, m5 - paddw m6, m7 -%endif - -%endif - - ; bias and shift down -%if cpuflag(ssse3) - pmulhrsw m4, m1 - pmulhrsw m6, m1 -%else - paddw m4, m1 - paddw m6, m1 - psrlw m4, 5 - psrlw m6, 5 -%endif - - packuswb m4, m6 -%if %0 == 5 - ; Only called for 8x8 blocks and SSE2 - sub r6, r5 - movh [%2 + r6], m4 - add r6, r5 - movhps [%2 + r6], m4 -%else - mova [%2 + r6], m4 -%endif -%endmacro - - -%macro MAIN_LOOP 2 -%if mmsize == 8 - RV40_WCORE %2, r0, r1, r2 -%if %1 == 16 - RV40_WCORE %2, r0 + 8, r1 + 8, r2 + 8 -%endif - - ; Prepare for next loop - add r6, r5 -%else -%ifidn %1, 8 - RV40_WCORE %2, r0, r1, r2, r5 - ; Prepare 2 next lines - add r6, r5 -%else - RV40_WCORE %2, r0, r1, r2 - ; Prepare single next line - add r6, r5 -%endif -%endif - -%endmacro - -; void ff_rv40_weight_func_%1(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w1, int w2, int stride) -; %1=size %2=num of xmm regs -; The weights are FP0.14 notation of fractions depending on pts. -; For timebases without rounding error (i.e. PAL), the fractions -; can be simplified, and several operations can be avoided. -; Therefore, we check here whether they are multiples of 2^9 for -; those simplifications to occur. -%macro RV40_WEIGHT 3 -cglobal rv40_weight_func_%1_%2, 6, 7, 8 -%if cpuflag(ssse3) - mova m1, [pw_1024] -%else - mova m1, [pw_16] -%endif - pxor m0, m0 - ; Set loop counter and increments - mov r6, r5 - shl r6, %3 - add r0, r6 - add r1, r6 - add r2, r6 - neg r6 - - movd m2, r3d - movd m3, r4d -%ifidn %1,rnd -%define RND 0 - SPLATW m2, m2 -%else -%define RND 1 -%if cpuflag(ssse3) - punpcklbw m3, m2 -%else - SPLATW m2, m2 -%endif -%endif - SPLATW m3, m3 - -.loop: - MAIN_LOOP %2, RND - jnz .loop - REP_RET -%endmacro - -INIT_MMX mmxext -RV40_WEIGHT rnd, 8, 3 -RV40_WEIGHT rnd, 16, 4 -RV40_WEIGHT nornd, 8, 3 -RV40_WEIGHT nornd, 16, 4 - -INIT_XMM sse2 -RV40_WEIGHT rnd, 8, 3 -RV40_WEIGHT rnd, 16, 4 -RV40_WEIGHT nornd, 8, 3 -RV40_WEIGHT nornd, 16, 4 - -INIT_XMM ssse3 -RV40_WEIGHT rnd, 8, 3 -RV40_WEIGHT rnd, 16, 4 -RV40_WEIGHT nornd, 8, 3 -RV40_WEIGHT nornd, 16, 4 diff --git a/libavcodec/x86/sbcdsp.asm b/libavcodec/x86/sbcdsp.asm deleted file mode 100644 index d68d3a9ae8..0000000000 --- a/libavcodec/x86/sbcdsp.asm +++ /dev/null @@ -1,168 +0,0 @@ -;****************************************************************************** -;* SIMD optimized SBC encoder DSP functions -;* -;* Copyright (C) 2017 Aurelien Jacobs -;* Copyright (C) 2008-2010 Nokia Corporation -;* Copyright (C) 2004-2010 Marcel Holtmann -;* Copyright (C) 2004-2005 Henryk Ploetz -;* Copyright (C) 2005-2006 Brad Midgley -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -scale_mask: times 2 dd 0x8000 ; 1 << (SBC_PROTO_FIXED_SCALE - 1) - -SECTION .text - -%macro NIDN 3 -%ifnidn %2, %3 - %1 %2, %3 -%endif -%endmacro - -%macro ANALYZE_MAC 9 ; out1, out2, in1, in2, tmp1, tmp2, add1, add2, offset - NIDN movq, %5, %3 - NIDN movq, %6, %4 - pmaddwd %5, [constsq+%9] - pmaddwd %6, [constsq+%9+8] - NIDN paddd, %1, %7 - NIDN paddd, %2, %8 -%endmacro - -%macro ANALYZE_MAC_IN 7 ; out1, out2, tmp1, tmp2, add1, add2, offset - ANALYZE_MAC %1, %2, [inq+%7], [inq+%7+8], %3, %4, %5, %6, %7 -%endmacro - -%macro ANALYZE_MAC_REG 7 ; out1, out2, in, tmp1, tmp2, offset, pack -%ifidn %7, pack - psrad %3, 16 ; SBC_PROTO_FIXED_SCALE - packssdw %3, %3 -%endif - ANALYZE_MAC %1, %2, %3, %3, %4, %5, %4, %5, %6 -%endmacro - -;******************************************************************* -;void ff_sbc_analyze_4(const int16_t *in, int32_t *out, const int16_t *consts); -;******************************************************************* -INIT_MMX mmx -cglobal sbc_analyze_4, 3, 3, 4, in, out, consts - ANALYZE_MAC_IN m0, m1, m0, m1, [scale_mask], [scale_mask], 0 - ANALYZE_MAC_IN m0, m1, m2, m3, m2, m3, 16 - ANALYZE_MAC_IN m0, m1, m2, m3, m2, m3, 32 - ANALYZE_MAC_IN m0, m1, m2, m3, m2, m3, 48 - ANALYZE_MAC_IN m0, m1, m2, m3, m2, m3, 64 - - ANALYZE_MAC_REG m0, m2, m0, m0, m2, 80, pack - ANALYZE_MAC_REG m0, m2, m1, m1, m3, 96, pack - - movq [outq ], m0 - movq [outq+8], m2 - - RET - - -;******************************************************************* -;void ff_sbc_analyze_8(const int16_t *in, int32_t *out, const int16_t *consts); -;******************************************************************* -INIT_MMX mmx -cglobal sbc_analyze_8, 3, 3, 4, in, out, consts - ANALYZE_MAC_IN m0, m1, m0, m1, [scale_mask], [scale_mask], 0 - ANALYZE_MAC_IN m2, m3, m2, m3, [scale_mask], [scale_mask], 16 - ANALYZE_MAC_IN m0, m1, m4, m5, m4, m5, 32 - ANALYZE_MAC_IN m2, m3, m6, m7, m6, m7, 48 - ANALYZE_MAC_IN m0, m1, m4, m5, m4, m5, 64 - ANALYZE_MAC_IN m2, m3, m6, m7, m6, m7, 80 - ANALYZE_MAC_IN m0, m1, m4, m5, m4, m5, 96 - ANALYZE_MAC_IN m2, m3, m6, m7, m6, m7, 112 - ANALYZE_MAC_IN m0, m1, m4, m5, m4, m5, 128 - ANALYZE_MAC_IN m2, m3, m6, m7, m6, m7, 144 - - ANALYZE_MAC_REG m4, m5, m0, m4, m5, 160, pack - ANALYZE_MAC_REG m4, m5, m1, m6, m7, 192, pack - ANALYZE_MAC_REG m4, m5, m2, m6, m7, 224, pack - ANALYZE_MAC_REG m4, m5, m3, m6, m7, 256, pack - - movq [outq ], m4 - movq [outq+8], m5 - - ANALYZE_MAC_REG m0, m5, m0, m0, m5, 176, no - ANALYZE_MAC_REG m0, m5, m1, m1, m7, 208, no - ANALYZE_MAC_REG m0, m5, m2, m2, m7, 240, no - ANALYZE_MAC_REG m0, m5, m3, m3, m7, 272, no - - movq [outq+16], m0 - movq [outq+24], m5 - - RET - - -;******************************************************************* -;void ff_sbc_calc_scalefactors(int32_t sb_sample_f[16][2][8], -; uint32_t scale_factor[2][8], -; int blocks, int channels, int subbands) -;******************************************************************* -INIT_MMX mmx -cglobal sbc_calc_scalefactors, 5, 7, 4, sb_sample_f, scale_factor, blocks, channels, subbands, ptr, blk - ; subbands = 4 * subbands * channels - movq m3, [scale_mask] - shl subbandsd, 2 - cmp channelsd, 2 - jl .loop_1 - shl subbandsd, 1 - -.loop_1: - sub subbandsq, 8 - lea ptrq, [sb_sample_fq + subbandsq] - - ; blk = (blocks - 1) * 64; - lea blkq, [blocksq - 1] - shl blkd, 6 - - movq m0, m3 -.loop_2: - movq m1, [ptrq+blkq] - pxor m2, m2 - pcmpgtd m1, m2 - paddd m1, [ptrq+blkq] - pcmpgtd m2, m1 - pxor m1, m2 - - por m0, m1 - - sub blkq, 64 - jns .loop_2 - - movd blkd, m0 - psrlq m0, 32 - bsr blkd, blkd - sub blkd, 15 ; SCALE_OUT_BITS - mov [scale_factorq + subbandsq], blkd - - movd blkd, m0 - bsr blkd, blkd - sub blkd, 15 ; SCALE_OUT_BITS - mov [scale_factorq + subbandsq + 4], blkd - - cmp subbandsq, 0 - jg .loop_1 - - emms - RET diff --git a/libavcodec/x86/sbrdsp.asm b/libavcodec/x86/sbrdsp.asm deleted file mode 100644 index 62bbe512ec..0000000000 --- a/libavcodec/x86/sbrdsp.asm +++ /dev/null @@ -1,548 +0,0 @@ -;****************************************************************************** -;* AAC Spectral Band Replication decoding functions -;* Copyright (C) 2012 Christophe Gisquet -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -; mask equivalent for multiply by -1.0 1.0 -ps_mask times 2 dd 1<<31, 0 -ps_mask2 times 2 dd 0, 1<<31 -ps_mask3 dd 0, 0, 0, 1<<31 -ps_noise0 times 2 dd 1.0, 0.0, -ps_noise2 times 2 dd -1.0, 0.0 -ps_noise13 dd 0.0, 1.0, 0.0, -1.0 - dd 0.0, -1.0, 0.0, 1.0 - dd 0.0, 1.0, 0.0, -1.0 -cextern sbr_noise_table -cextern ps_neg - -SECTION .text - -INIT_XMM sse -cglobal sbr_sum_square, 2, 3, 6 - mov r2d, r1d - xorps m0, m0 - xorps m1, m1 - sar r2, 3 - jz .prepare -.loop: - movu m2, [r0 + 0] - movu m3, [r0 + 16] - movu m4, [r0 + 32] - movu m5, [r0 + 48] - mulps m2, m2 - mulps m3, m3 - mulps m4, m4 - mulps m5, m5 - addps m0, m2 - addps m1, m3 - addps m0, m4 - addps m1, m5 - add r0, 64 - dec r2 - jnz .loop -.prepare: - and r1, 7 - sar r1, 1 - jz .end -; len is a multiple of 2, thus there are at least 4 elements to process -.endloop: - movu m2, [r0] - add r0, 16 - mulps m2, m2 - dec r1 - addps m0, m2 - jnz .endloop -.end: - addps m0, m1 - movhlps m2, m0 - addps m0, m2 - movss m1, m0 - shufps m0, m0, 1 - addss m0, m1 -%if ARCH_X86_64 == 0 - movss r0m, m0 - fld dword r0m -%endif - RET - -%define STEP 40*4*2 -cglobal sbr_hf_g_filt, 5, 6, 5 - lea r1, [r1 + 8*r4] ; offset by ixh elements into X_high - mov r5, r3 - and r3, 0xFC - lea r2, [r2 + r3*4] - lea r0, [r0 + r3*8] - neg r3 - jz .loop1 -.loop4: - movlps m0, [r2 + 4*r3 + 0] - movlps m1, [r2 + 4*r3 + 8] - movlps m2, [r1 + 0*STEP] - movlps m3, [r1 + 2*STEP] - movhps m2, [r1 + 1*STEP] - movhps m3, [r1 + 3*STEP] - unpcklps m0, m0 - unpcklps m1, m1 - mulps m0, m2 - mulps m1, m3 - movu [r0 + 8*r3 + 0], m0 - movu [r0 + 8*r3 + 16], m1 - add r1, 4*STEP - add r3, 4 - jnz .loop4 - and r5, 3 ; number of single element loops - jz .end -.loop1: ; element 0 and 1 can be computed at the same time - movss m0, [r2] - movlps m2, [r1] - unpcklps m0, m0 - mulps m2, m0 - movlps [r0], m2 - add r0, 8 - add r2, 4 - add r1, STEP - dec r5 - jnz .loop1 -.end: - RET - -; void ff_sbr_hf_gen_sse(float (*X_high)[2], const float (*X_low)[2], -; const float alpha0[2], const float alpha1[2], -; float bw, int start, int end) -; -cglobal sbr_hf_gen, 4,4,8, X_high, X_low, alpha0, alpha1, BW, S, E - ; load alpha factors -%define bw m0 -%if ARCH_X86_64 == 0 || WIN64 - movss bw, BWm -%endif - movlps m2, [alpha1q] - movlps m1, [alpha0q] - shufps bw, bw, 0 - mulps m2, bw ; (a1[0] a1[1])*bw - mulps m1, bw ; (a0[0] a0[1])*bw = (a2 a3) - mulps m2, bw ; (a1[0] a1[1])*bw*bw = (a0 a1) - mova m3, m1 - mova m4, m2 - - ; Set pointers -%if ARCH_X86_64 == 0 || WIN64 - ; start and end 6th and 7th args on stack - mov r2d, Sm - mov r3d, Em - DEFINE_ARGS X_high, X_low, start, end -%else -; BW does not actually occupy a register, so shift by 1 - DEFINE_ARGS X_high, X_low, alpha0, alpha1, start, end - movsxd startq, startd - movsxd endq, endd -%endif - sub startq, endq ; neg num of loops - lea X_highq, [X_highq + endq*2*4] - lea X_lowq, [X_lowq + endq*2*4 - 2*2*4] - shl startq, 3 ; offset from num loops - - mova m0, [X_lowq + startq] - shufps m3, m3, q1111 - shufps m4, m4, q1111 - xorps m3, [ps_mask] - shufps m1, m1, q0000 - shufps m2, m2, q0000 - xorps m4, [ps_mask] -.loop2: - movu m7, [X_lowq + startq + 8] ; BbCc - mova m6, m0 - mova m5, m7 - shufps m0, m0, q2301 ; aAbB - shufps m7, m7, q2301 ; bBcC - mulps m0, m4 - mulps m7, m3 - mulps m6, m2 - mulps m5, m1 - addps m7, m0 - mova m0, [X_lowq + startq + 16] ; CcDd - addps m7, m0 - addps m6, m5 - addps m7, m6 - mova [X_highq + startq], m7 - add startq, 16 - jnz .loop2 - RET - -cglobal sbr_sum64x5, 1,2,4,z - lea r1q, [zq+ 256] -.loop: - mova m0, [zq+ 0] - mova m2, [zq+ 16] - mova m1, [zq+ 256] - mova m3, [zq+ 272] - addps m0, [zq+ 512] - addps m2, [zq+ 528] - addps m1, [zq+ 768] - addps m3, [zq+ 784] - addps m0, [zq+1024] - addps m2, [zq+1040] - addps m0, m1 - addps m2, m3 - mova [zq], m0 - mova [zq+16], m2 - add zq, 32 - cmp zq, r1q - jne .loop - REP_RET - -INIT_XMM sse -cglobal sbr_qmf_post_shuffle, 2,3,4,W,z - lea r2q, [zq + (64-4)*4] - mova m3, [ps_neg] -.loop: - mova m1, [zq] - xorps m0, m3, [r2q] - shufps m0, m0, m0, q0123 - unpcklps m2, m0, m1 - unpckhps m0, m0, m1 - mova [Wq + 0], m2 - mova [Wq + 16], m0 - add Wq, 32 - sub r2q, 16 - add zq, 16 - cmp zq, r2q - jl .loop - REP_RET - -INIT_XMM sse -cglobal sbr_neg_odd_64, 1,2,4,z - lea r1q, [zq+256] -.loop: - mova m0, [zq+ 0] - mova m1, [zq+16] - mova m2, [zq+32] - mova m3, [zq+48] - xorps m0, [ps_mask2] - xorps m1, [ps_mask2] - xorps m2, [ps_mask2] - xorps m3, [ps_mask2] - mova [zq+ 0], m0 - mova [zq+16], m1 - mova [zq+32], m2 - mova [zq+48], m3 - add zq, 64 - cmp zq, r1q - jne .loop - REP_RET - -; void ff_sbr_qmf_deint_bfly_sse2(float *v, const float *src0, const float *src1) -%macro SBR_QMF_DEINT_BFLY 0 -cglobal sbr_qmf_deint_bfly, 3,5,8, v,src0,src1,vrev,c - mov cq, 64*4-2*mmsize - lea vrevq, [vq + 64*4] -.loop: - mova m0, [src0q+cq] - mova m1, [src1q] - mova m4, [src0q+cq+mmsize] - mova m5, [src1q+mmsize] -%if cpuflag(sse2) - pshufd m2, m0, q0123 - pshufd m3, m1, q0123 - pshufd m6, m4, q0123 - pshufd m7, m5, q0123 -%else - shufps m2, m0, m0, q0123 - shufps m3, m1, m1, q0123 - shufps m6, m4, m4, q0123 - shufps m7, m5, m5, q0123 -%endif - addps m5, m2 - subps m0, m7 - addps m1, m6 - subps m4, m3 - mova [vrevq], m1 - mova [vrevq+mmsize], m5 - mova [vq+cq], m0 - mova [vq+cq+mmsize], m4 - add src1q, 2*mmsize - add vrevq, 2*mmsize - sub cq, 2*mmsize - jge .loop - REP_RET -%endmacro - -INIT_XMM sse -SBR_QMF_DEINT_BFLY - -INIT_XMM sse2 -SBR_QMF_DEINT_BFLY - -INIT_XMM sse2 -cglobal sbr_qmf_pre_shuffle, 1,4,6,z -%define OFFSET (32*4-2*mmsize) - mov r3q, OFFSET - lea r1q, [zq + (32+1)*4] - lea r2q, [zq + 64*4] - mova m5, [ps_neg] -.loop: - movu m0, [r1q] - movu m2, [r1q + mmsize] - movu m1, [zq + r3q + 4 + mmsize] - movu m3, [zq + r3q + 4] - - pxor m2, m5 - pxor m0, m5 - pshufd m2, m2, q0123 - pshufd m0, m0, q0123 - SBUTTERFLY dq, 2, 3, 4 - SBUTTERFLY dq, 0, 1, 4 - mova [r2q + 2*r3q + 0*mmsize], m2 - mova [r2q + 2*r3q + 1*mmsize], m3 - mova [r2q + 2*r3q + 2*mmsize], m0 - mova [r2q + 2*r3q + 3*mmsize], m1 - add r1q, 2*mmsize - sub r3q, 2*mmsize - jge .loop - movq m2, [zq] - movq [r2q], m2 - REP_RET - -%ifdef PIC -%define NREGS 1 -%if UNIX64 -%define NOISE_TABLE r6q ; r5q is m_max -%else -%define NOISE_TABLE r5q -%endif -%else -%define NREGS 0 -%define NOISE_TABLE sbr_noise_table -%endif - -%macro LOAD_NST 1 -%ifdef PIC - lea NOISE_TABLE, [%1] - mova m0, [kxq + NOISE_TABLE] -%else - mova m0, [kxq + %1] -%endif -%endmacro - -INIT_XMM sse2 -; sbr_hf_apply_noise_0(float (*Y)[2], const float *s_m, -; const float *q_filt, int noise, -; int kx, int m_max) -cglobal sbr_hf_apply_noise_0, 5,5+NREGS+UNIX64,8, Y,s_m,q_filt,noise,kx,m_max - mova m0, [ps_noise0] - jmp apply_noise_main - -; sbr_hf_apply_noise_1(float (*Y)[2], const float *s_m, -; const float *q_filt, int noise, -; int kx, int m_max) -cglobal sbr_hf_apply_noise_1, 5,5+NREGS+UNIX64,8, Y,s_m,q_filt,noise,kx,m_max - and kxq, 1 - shl kxq, 4 - LOAD_NST ps_noise13 - jmp apply_noise_main - -; sbr_hf_apply_noise_2(float (*Y)[2], const float *s_m, -; const float *q_filt, int noise, -; int kx, int m_max) -cglobal sbr_hf_apply_noise_2, 5,5+NREGS+UNIX64,8, Y,s_m,q_filt,noise,kx,m_max - mova m0, [ps_noise2] - jmp apply_noise_main - -; sbr_hf_apply_noise_3(float (*Y)[2], const float *s_m, -; const float *q_filt, int noise, -; int kx, int m_max) -cglobal sbr_hf_apply_noise_3, 5,5+NREGS+UNIX64,8, Y,s_m,q_filt,noise,kx,m_max - and kxq, 1 - shl kxq, 4 - LOAD_NST ps_noise13+16 - -apply_noise_main: -%if ARCH_X86_64 == 0 || WIN64 - mov kxd, m_maxm - DEFINE_ARGS Y, s_m, q_filt, noise, count -%else - DEFINE_ARGS Y, s_m, q_filt, noise, kx, count -%endif - movsxdifnidn noiseq, noised - dec noiseq - shl countd, 2 -%ifdef PIC - lea NOISE_TABLE, [sbr_noise_table] -%endif - lea Yq, [Yq + 2*countq] - add s_mq, countq - add q_filtq, countq - shl noiseq, 3 - pxor m5, m5 - neg countq -.loop: - mova m1, [q_filtq + countq] - movu m3, [noiseq + NOISE_TABLE + 1*mmsize] - movu m4, [noiseq + NOISE_TABLE + 2*mmsize] - add noiseq, 2*mmsize - and noiseq, 0x1ff<<3 - punpckhdq m2, m1, m1 - punpckldq m1, m1 - mulps m1, m3 ; m2 = q_filt[m] * ff_sbr_noise_table[noise] - mulps m2, m4 ; m2 = q_filt[m] * ff_sbr_noise_table[noise] - mova m3, [s_mq + countq] - ; TODO: replace by a vpermd in AVX2 - punpckhdq m4, m3, m3 - punpckldq m3, m3 - pcmpeqd m6, m3, m5 ; m6 == 0 - pcmpeqd m7, m4, m5 ; m7 == 0 - mulps m3, m0 ; s_m[m] * phi_sign - mulps m4, m0 ; s_m[m] * phi_sign - pand m1, m6 - pand m2, m7 - movu m6, [Yq + 2*countq] - movu m7, [Yq + 2*countq + mmsize] - addps m3, m1 - addps m4, m2 - addps m6, m3 - addps m7, m4 - movu [Yq + 2*countq], m6 - movu [Yq + 2*countq + mmsize], m7 - add countq, mmsize - jl .loop - RET - -INIT_XMM sse -cglobal sbr_qmf_deint_neg, 2,4,4,v,src,vrev,c -%define COUNT 32*4 -%define OFFSET 32*4 - mov cq, -COUNT - lea vrevq, [vq + OFFSET + COUNT] - add vq, OFFSET-mmsize - add srcq, 2*COUNT - mova m3, [ps_neg] -.loop: - mova m0, [srcq + 2*cq + 0*mmsize] - mova m1, [srcq + 2*cq + 1*mmsize] - shufps m2, m0, m1, q2020 - shufps m1, m0, q1313 - xorps m2, m3 - mova [vq], m1 - mova [vrevq + cq], m2 - sub vq, mmsize - add cq, mmsize - jl .loop - REP_RET - -%macro SBR_AUTOCORRELATE 0 -cglobal sbr_autocorrelate, 2,3,8,32, x, phi, cnt - mov cntq, 37*8 - add xq, cntq - neg cntq - -%if cpuflag(sse3) -%define MOVH movsd - movddup m5, [xq+cntq] -%else -%define MOVH movlps - movlps m5, [xq+cntq] - movlhps m5, m5 -%endif - MOVH m7, [xq+cntq+8 ] - MOVH m1, [xq+cntq+16] - shufps m7, m7, q0110 - shufps m1, m1, q0110 - mulps m3, m5, m7 ; x[0][0] * x[1][0], x[0][1] * x[1][1], x[0][0] * x[1][1], x[0][1] * x[1][0] - mulps m4, m5, m5 ; x[0][0] * x[0][0], x[0][1] * x[0][1]; - mulps m5, m1 ; real_sum2 = x[0][0] * x[2][0], x[0][1] * x[2][1]; imag_sum2 = x[0][0] * x[2][1], x[0][1] * x[2][0] - movaps [rsp ], m3 - movaps [rsp+16], m4 - add cntq, 8 - - MOVH m2, [xq+cntq+16] - movlhps m7, m7 - shufps m2, m2, q0110 - mulps m6, m7, m1 ; real_sum1 = x[1][0] * x[2][0], x[1][1] * x[2][1]; imag_sum1 += x[1][0] * x[2][1], x[1][1] * x[2][0] - mulps m4, m7, m2 - mulps m7, m7 ; real_sum0 = x[1][0] * x[1][0], x[1][1] * x[1][1]; - addps m5, m4 ; real_sum2 += x[1][0] * x[3][0], x[1][1] * x[3][1]; imag_sum2 += x[1][0] * x[3][1], x[1][1] * x[3][0] - -align 16 -.loop: - add cntq, 8 - MOVH m0, [xq+cntq+16] - movlhps m1, m1 - shufps m0, m0, q0110 - mulps m3, m1, m2 - mulps m4, m1, m0 - mulps m1, m1 - addps m6, m3 ; real_sum1 += x[i][0] * x[i + 1][0], x[i][1] * x[i + 1][1]; imag_sum1 += x[i][0] * x[i + 1][1], x[i][1] * x[i + 1][0]; - addps m5, m4 ; real_sum2 += x[i][0] * x[i + 2][0], x[i][1] * x[i + 2][1]; imag_sum2 += x[i][0] * x[i + 2][1], x[i][1] * x[i + 2][0]; - addps m7, m1 ; real_sum0 += x[i][0] * x[i][0], x[i][1] * x[i][1]; - add cntq, 8 - MOVH m1, [xq+cntq+16] - movlhps m2, m2 - shufps m1, m1, q0110 - mulps m3, m2, m0 - mulps m4, m2, m1 - mulps m2, m2 - addps m6, m3 ; real_sum1 += x[i][0] * x[i + 1][0], x[i][1] * x[i + 1][1]; imag_sum1 += x[i][0] * x[i + 1][1], x[i][1] * x[i + 1][0]; - addps m5, m4 ; real_sum2 += x[i][0] * x[i + 2][0], x[i][1] * x[i + 2][1]; imag_sum2 += x[i][0] * x[i + 2][1], x[i][1] * x[i + 2][0]; - addps m7, m2 ; real_sum0 += x[i][0] * x[i][0], x[i][1] * x[i][1]; - add cntq, 8 - MOVH m2, [xq+cntq+16] - movlhps m0, m0 - shufps m2, m2, q0110 - mulps m3, m0, m1 - mulps m4, m0, m2 - mulps m0, m0 - addps m6, m3 ; real_sum1 += x[i][0] * x[i + 1][0], x[i][1] * x[i + 1][1]; imag_sum1 += x[i][0] * x[i + 1][1], x[i][1] * x[i + 1][0]; - addps m5, m4 ; real_sum2 += x[i][0] * x[i + 2][0], x[i][1] * x[i + 2][1]; imag_sum2 += x[i][0] * x[i + 2][1], x[i][1] * x[i + 2][0]; - addps m7, m0 ; real_sum0 += x[i][0] * x[i][0], x[i][1] * x[i][1]; - jl .loop - - movlhps m1, m1 - mulps m2, m1 - mulps m1, m1 - addps m2, m6 ; real_sum1 + x[38][0] * x[39][0], x[38][1] * x[39][1]; imag_sum1 + x[38][0] * x[39][1], x[38][1] * x[39][0]; - addps m1, m7 ; real_sum0 + x[38][0] * x[38][0], x[38][1] * x[38][1]; - addps m6, [rsp ] ; real_sum1 + x[ 0][0] * x[ 1][0], x[ 0][1] * x[ 1][1]; imag_sum1 + x[ 0][0] * x[ 1][1], x[ 0][1] * x[ 1][0]; - addps m7, [rsp+16] ; real_sum0 + x[ 0][0] * x[ 0][0], x[ 0][1] * x[ 0][1]; - - xorps m2, [ps_mask3] - xorps m5, [ps_mask3] - xorps m6, [ps_mask3] - HADDPS m2, m5, m3 - HADDPS m7, m6, m4 -%if cpuflag(sse3) - movshdup m0, m1 -%else - movss m0, m1 - shufps m1, m1, q0001 -%endif - addss m1, m0 - movaps [phiq ], m2 - movhps [phiq+0x18], m7 - movss [phiq+0x28], m7 - movss [phiq+0x10], m1 - RET -%endmacro - -INIT_XMM sse -SBR_AUTOCORRELATE -INIT_XMM sse3 -SBR_AUTOCORRELATE diff --git a/libavcodec/x86/simple_idct.asm b/libavcodec/x86/simple_idct.asm deleted file mode 100644 index 6fedbb5784..0000000000 --- a/libavcodec/x86/simple_idct.asm +++ /dev/null @@ -1,889 +0,0 @@ -; -; Simple IDCT MMX -; -; Copyright (c) 2001, 2002 Michael Niedermayer -; -; Conversion from gcc syntax to x264asm syntax with minimal modifications -; by James Darnley . -; -; 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pb_80 - -wm1010: dw 0, 0xffff, 0, 0xffff -d40000: dd 4 << 16, 0 - -; 23170.475006 -; 22725.260826 -; 21406.727617 -; 19265.545870 -; 16384.000000 -; 12872.826198 -; 8866.956905 -; 4520.335430 - -%define C0 23170 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 -%define C1 22725 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 -%define C2 21407 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 -%define C3 19266 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 -%define C4 16383 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) - 0.5 -%define C5 12873 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 -%define C6 8867 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 -%define C7 4520 ; cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 - -%define ROW_SHIFT 11 -%define COL_SHIFT 20 ; 6 - -coeffs: - dw 1 << (ROW_SHIFT - 1), 0 - dw 1 << (ROW_SHIFT - 1), 0 - dw 1 << (ROW_SHIFT - 1), 1 - dw 1 << (ROW_SHIFT - 1), 0 - - dw C4, C4, C4, C4 - dw C4, -C4, C4, -C4 - - dw C2, C6, C2, C6 - dw C6, -C2, C6, -C2 - - dw C1, C3, C1, C3 - dw C5, C7, C5, C7 - - dw C3, -C7, C3, -C7 - dw -C1, -C5, -C1, -C5 - - dw C5, -C1, C5, -C1 - dw C7, C3, C7, C3 - - dw C7, -C5, C7, -C5 - dw C3, -C1, C3, -C1 - -SECTION .text - -%macro DC_COND_IDCT 7 - movq mm0, [blockq + %1] ; R4 R0 r4 r0 - movq mm1, [blockq + %2] ; R6 R2 r6 r2 - movq mm2, [blockq + %3] ; R3 R1 r3 r1 - movq mm3, [blockq + %4] ; R7 R5 r7 r5 - movq mm4, [wm1010] - pand mm4, mm0 - por mm4, mm1 - por mm4, mm2 - por mm4, mm3 - packssdw mm4, mm4 - movd t0d, mm4 - or t0d, t0d - jz %%1 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm5, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm5, mm1 ; C6R6+C2R2 C6r6+C2r2 - movq mm6, [coeffs + 40] ; -C2 C6 -C2 C6 - pmaddwd mm1, mm6 ; -C2R6+C6R2 -C2r6+C6r2 - movq mm7, [coeffs + 48] ; C3 C1 C3 C1 - pmaddwd mm7, mm2 ; C3R3+C1R1 C3r3+C1r1 - paddd mm4, [coeffs + 8] - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - paddd mm4, mm5 ; A0 a0 - psubd mm6, mm5 ; A3 a3 - movq mm5, [coeffs + 56] ; C7 C5 C7 C5 - pmaddwd mm5, mm3 ; C7R7+C5R5 C7r7+C5r5 - paddd mm0, [coeffs + 8] - paddd mm1, mm0 ; A1 a1 - paddd mm0, mm0 - psubd mm0, mm1 ; A2 a2 - pmaddwd mm2, [coeffs + 64] ; -C7R3+C3R1 -C7r3+C3r1 - paddd mm7, mm5 ; B0 b0 - movq mm5, [coeffs + 72] ; -C5 -C1 -C5 -C1 - pmaddwd mm5, mm3 ; -C5R7-C1R5 -C5r7-C1r5 - paddd mm7, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm7 ; A0-B0 a0-b0 - paddd mm5, mm2 ; B1 b1 - psrad mm7, %7 - psrad mm4, %7 - movq mm2, mm1 ; A1 a1 - paddd mm1, mm5 ; A1+B1 a1+b1 - psubd mm2, mm5 ; A1-B1 a1-b1 - psrad mm1, %7 - psrad mm2, %7 - packssdw mm7, mm1 ; A1+B1 a1+b1 A0+B0 a0+b0 - packssdw mm2, mm4 ; A0-B0 a0-b0 A1-B1 a1-b1 - movq [%5], mm7 - movq mm1, [blockq + %3] ; R3 R1 r3 r1 - movq mm4, [coeffs + 80] ; -C1 C5 -C1 C5 - movq [24 + %5], mm2 - pmaddwd mm4, mm1 ; -C1R3+C5R1 -C1r3+C5r1 - movq mm7, [coeffs + 88] ; C3 C7 C3 C7 - pmaddwd mm1, [coeffs + 96] ; -C5R3+C7R1 -C5r3+C7r1 - pmaddwd mm7, mm3 ; C3R7+C7R5 C3r7+C7r5 - movq mm2, mm0 ; A2 a2 - pmaddwd mm3, [coeffs + 104] ; -C1R7+C3R5 -C1r7+C3r5 - paddd mm4, mm7 ; B2 b2 - paddd mm2, mm4 ; A2+B2 a2+b2 - psubd mm0, mm4 ; a2-B2 a2-b2 - psrad mm2, %7 - psrad mm0, %7 - movq mm4, mm6 ; A3 a3 - paddd mm3, mm1 ; B3 b3 - paddd mm6, mm3 ; A3+B3 a3+b3 - psubd mm4, mm3 ; a3-B3 a3-b3 - psrad mm6, %7 - packssdw mm2, mm6 ; A3+B3 a3+b3 A2+B2 a2+b2 - movq [8 + %5], mm2 - psrad mm4, %7 - packssdw mm4, mm0 ; A2-B2 a2-b2 A3-B3 a3-b3 - movq [16 + %5], mm4 - jmp %%2 -%%1: - pslld mm0, 16 - paddd mm0, [d40000] - psrad mm0, 13 - packssdw mm0, mm0 - movq [%5], mm0 - movq [8 + %5], mm0 - movq [16 + %5], mm0 - movq [24 + %5], mm0 -%%2: -%endmacro - -%macro Z_COND_IDCT 8 - movq mm0, [blockq + %1] ; R4 R0 r4 r0 - movq mm1, [blockq + %2] ; R6 R2 r6 r2 - movq mm2, [blockq + %3] ; R3 R1 r3 r1 - movq mm3, [blockq + %4] ; R7 R5 r7 r5 - movq mm4, mm0 - por mm4, mm1 - por mm4, mm2 - por mm4, mm3 - packssdw mm4, mm4 - movd t0d, mm4 - or t0d, t0d - jz %8 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm5, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm5, mm1 ; C6R6+C2R2 C6r6+C2r2 - movq mm6, [coeffs + 40] ; -C2 C6 -C2 C6 - pmaddwd mm1, mm6 ; -C2R6+C6R2 -C2r6+C6r2 - movq mm7, [coeffs + 48] ; C3 C1 C3 C1 - pmaddwd mm7, mm2 ; C3R3+C1R1 C3r3+C1r1 - paddd mm4, [coeffs] - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - paddd mm4, mm5 ; A0 a0 - psubd mm6, mm5 ; A3 a3 - movq mm5, [coeffs + 56] ; C7 C5 C7 C5 - pmaddwd mm5, mm3 ; C7R7+C5R5 C7r7+C5r5 - paddd mm0, [coeffs] - paddd mm1, mm0 ; A1 a1 - paddd mm0, mm0 - psubd mm0, mm1 ; A2 a2 - pmaddwd mm2, [coeffs + 64] ; -C7R3+C3R1 -C7r3+C3r1 - paddd mm7, mm5 ; B0 b0 - movq mm5, [coeffs + 72] ; -C5 -C1 -C5 -C1 - pmaddwd mm5, mm3 ; -C5R7-C1R5 -C5r7-C1r5 - paddd mm7, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm7 ; A0-B0 a0-b0 - paddd mm5, mm2 ; B1 b1 - psrad mm7, %7 - psrad mm4, %7 - movq mm2, mm1 ; A1 a1 - paddd mm1, mm5 ; A1+B1 a1+b1 - psubd mm2, mm5 ; A1-B1 a1-b1 - psrad mm1, %7 - psrad mm2, %7 - packssdw mm7, mm1 ; A1+B1 a1+b1 A0+B0 a0+b0 - packssdw mm2, mm4 ; A0-B0 a0-b0 A1-B1 a1-b1 - movq [%5], mm7 - movq mm1, [blockq + %3] ; R3 R1 r3 r1 - movq mm4, [coeffs + 80] ; -C1 C5 -C1 C5 - movq [24 + %5], mm2 - pmaddwd mm4, mm1 ; -C1R3+C5R1 -C1r3+C5r1 - movq mm7, [coeffs + 88] ; C3 C7 C3 C7 - pmaddwd mm1, [coeffs + 96] ; -C5R3+C7R1 -C5r3+C7r1 - pmaddwd mm7, mm3 ; C3R7+C7R5 C3r7+C7r5 - movq mm2, mm0 ; A2 a2 - pmaddwd mm3, [coeffs + 104] ; -C1R7+C3R5 -C1r7+C3r5 - paddd mm4, mm7 ; B2 b2 - paddd mm2, mm4 ; A2+B2 a2+b2 - psubd mm0, mm4 ; a2-B2 a2-b2 - psrad mm2, %7 - psrad mm0, %7 - movq mm4, mm6 ; A3 a3 - paddd mm3, mm1 ; B3 b3 - paddd mm6, mm3 ; A3+B3 a3+b3 - psubd mm4, mm3 ; a3-B3 a3-b3 - psrad mm6, %7 - packssdw mm2, mm6 ; A3+B3 a3+b3 A2+B2 a2+b2 - movq [8 + %5], mm2 - psrad mm4, %7 - packssdw mm4, mm0 ; A2-B2 a2-b2 A3-B3 a3-b3 - movq [16 + %5], mm4 -%endmacro - -%macro IDCT1 6 - movq mm0, %1 ; R4 R0 r4 r0 - movq mm1, %2 ; R6 R2 r6 r2 - movq mm2, %3 ; R3 R1 r3 r1 - movq mm3, %4 ; R7 R5 r7 r5 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm5, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm5, mm1 ; C6R6+C2R2 C6r6+C2r2 - movq mm6, [coeffs + 40] ; -C2 C6 -C2 C6 - pmaddwd mm1, mm6 ; -C2R6+C6R2 -C2r6+C6r2 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - movq mm7, [coeffs + 48] ; C3 C1 C3 C1 - pmaddwd mm7, mm2 ; C3R3+C1R1 C3r3+C1r1 - paddd mm4, mm5 ; A0 a0 - psubd mm6, mm5 ; A3 a3 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - paddd mm0, mm1 ; A1 a1 - psubd mm5, mm1 ; A2 a2 - movq mm1, [coeffs + 56] ; C7 C5 C7 C5 - pmaddwd mm1, mm3 ; C7R7+C5R5 C7r7+C5r5 - pmaddwd mm2, [coeffs + 64] ; -C7R3+C3R1 -C7r3+C3r1 - paddd mm7, mm1 ; B0 b0 - movq mm1, [coeffs + 72] ; -C5 -C1 -C5 -C1 - pmaddwd mm1, mm3 ; -C5R7-C1R5 -C5r7-C1r5 - paddd mm7, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm7 ; A0-B0 a0-b0 - paddd mm1, mm2 ; B1 b1 - psrad mm7, %6 - psrad mm4, %6 - movq mm2, mm0 ; A1 a1 - paddd mm0, mm1 ; A1+B1 a1+b1 - psubd mm2, mm1 ; A1-B1 a1-b1 - psrad mm0, %6 - psrad mm2, %6 - packssdw mm7, mm7 ; A0+B0 a0+b0 - movd [%5], mm7 - packssdw mm0, mm0 ; A1+B1 a1+b1 - movd [16 + %5], mm0 - packssdw mm2, mm2 ; A1-B1 a1-b1 - movd [96 + %5], mm2 - packssdw mm4, mm4 ; A0-B0 a0-b0 - movd [112 + %5], mm4 - movq mm0, %3 ; R3 R1 r3 r1 - movq mm4, [coeffs + 80] ; -C1 C5 -C1 C5 - pmaddwd mm4, mm0 ; -C1R3+C5R1 -C1r3+C5r1 - movq mm7, [coeffs + 88] ; C3 C7 C3 C7 - pmaddwd mm0, [coeffs + 96] ; -C5R3+C7R1 -C5r3+C7r1 - pmaddwd mm7, mm3 ; C3R7+C7R5 C3r7+C7r5 - movq mm2, mm5 ; A2 a2 - pmaddwd mm3, [coeffs + 104] ; -C1R7+C3R5 -C1r7+C3r5 - paddd mm4, mm7 ; B2 b2 - paddd mm2, mm4 ; A2+B2 a2+b2 - psubd mm5, mm4 ; a2-B2 a2-b2 - psrad mm2, %6 - psrad mm5, %6 - movq mm4, mm6 ; A3 a3 - paddd mm3, mm0 ; B3 b3 - paddd mm6, mm3 ; A3+B3 a3+b3 - psubd mm4, mm3 ; a3-B3 a3-b3 - psrad mm6, %6 - psrad mm4, %6 - packssdw mm2, mm2 ; A2+B2 a2+b2 - packssdw mm6, mm6 ; A3+B3 a3+b3 - movd [32 + %5], mm2 - packssdw mm4, mm4 ; A3-B3 a3-b3 - packssdw mm5, mm5 ; A2-B2 a2-b2 - movd [48 + %5], mm6 - movd [64 + %5], mm4 - movd [80 + %5], mm5 -%endmacro - -%macro IDCT2 6 - movq mm0, %1 ; R4 R0 r4 r0 - movq mm1, %2 ; R6 R2 r6 r2 - movq mm3, %4 ; R7 R5 r7 r5 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm5, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm5, mm1 ; C6R6+C2R2 C6r6+C2r2 - movq mm6, [coeffs + 40] ; -C2 C6 -C2 C6 - pmaddwd mm1, mm6 ; -C2R6+C6R2 -C2r6+C6r2 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - paddd mm4, mm5 ; A0 a0 - psubd mm6, mm5 ; A3 a3 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - paddd mm0, mm1 ; A1 a1 - psubd mm5, mm1 ; A2 a2 - movq mm1, [coeffs + 56] ; C7 C5 C7 C5 - pmaddwd mm1, mm3 ; C7R7+C5R5 C7r7+C5r5 - movq mm7, [coeffs + 72] ; -C5 -C1 -C5 -C1 - pmaddwd mm7, mm3 ; -C5R7-C1R5 -C5r7-C1r5 - paddd mm1, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm1 ; A0-B0 a0-b0 - psrad mm1, %6 - psrad mm4, %6 - movq mm2, mm0 ; A1 a1 - paddd mm0, mm7 ; A1+B1 a1+b1 - psubd mm2, mm7 ; A1-B1 a1-b1 - psrad mm0, %6 - psrad mm2, %6 - packssdw mm1, mm1 ; A0+B0 a0+b0 - movd [%5], mm1 - packssdw mm0, mm0 ; A1+B1 a1+b1 - movd [16 + %5], mm0 - packssdw mm2, mm2 ; A1-B1 a1-b1 - movd [96 + %5], mm2 - packssdw mm4, mm4 ; A0-B0 a0-b0 - movd [112 + %5], mm4 - movq mm1, [coeffs + 88] ; C3 C7 C3 C7 - pmaddwd mm1, mm3 ; C3R7+C7R5 C3r7+C7r5 - movq mm2, mm5 ; A2 a2 - pmaddwd mm3, [coeffs + 104] ; -C1R7+C3R5 -C1r7+C3r5 - paddd mm2, mm1 ; A2+B2 a2+b2 - psubd mm5, mm1 ; a2-B2 a2-b2 - psrad mm2, %6 - psrad mm5, %6 - movq mm1, mm6 ; A3 a3 - paddd mm6, mm3 ; A3+B3 a3+b3 - psubd mm1, mm3 ; a3-B3 a3-b3 - psrad mm6, %6 - psrad mm1, %6 - packssdw mm2, mm2 ; A2+B2 a2+b2 - packssdw mm6, mm6 ; A3+B3 a3+b3 - movd [32 + %5], mm2 - packssdw mm1, mm1 ; A3-B3 a3-b3 - packssdw mm5, mm5 ; A2-B2 a2-b2 - movd [48 + %5], mm6 - movd [64 + %5], mm1 - movd [80 + %5], mm5 -%endmacro - -%macro IDCT3 6 - movq mm0, %1 ; R4 R0 r4 r0 - movq mm3, %4 ; R7 R5 r7 r5 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm1, [coeffs + 56] ; C7 C5 C7 C5 - pmaddwd mm1, mm3 ; C7R7+C5R5 C7r7+C5r5 - movq mm7, [coeffs + 72] ; -C5 -C1 -C5 -C1 - pmaddwd mm7, mm3 ; -C5R7-C1R5 -C5r7-C1r5 - paddd mm1, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm1 ; A0-B0 a0-b0 - psrad mm1, %6 - psrad mm4, %6 - movq mm2, mm0 ; A1 a1 - paddd mm0, mm7 ; A1+B1 a1+b1 - psubd mm2, mm7 ; A1-B1 a1-b1 - psrad mm0, %6 - psrad mm2, %6 - packssdw mm1, mm1 ; A0+B0 a0+b0 - movd [%5], mm1 - packssdw mm0, mm0 ; A1+B1 a1+b1 - movd [16 + %5], mm0 - packssdw mm2, mm2 ; A1-B1 a1-b1 - movd [96 + %5], mm2 - packssdw mm4, mm4 ; A0-B0 a0-b0 - movd [112 + %5], mm4 - movq mm1, [coeffs + 88] ; C3 C7 C3 C7 - pmaddwd mm1, mm3 ; C3R7+C7R5 C3r7+C7r5 - movq mm2, mm5 ; A2 a2 - pmaddwd mm3, [coeffs + 104] ; -C1R7+C3R5 -C1r7+C3r5 - paddd mm2, mm1 ; A2+B2 a2+b2 - psubd mm5, mm1 ; a2-B2 a2-b2 - psrad mm2, %6 - psrad mm5, %6 - movq mm1, mm6 ; A3 a3 - paddd mm6, mm3 ; A3+B3 a3+b3 - psubd mm1, mm3 ; a3-B3 a3-b3 - psrad mm6, %6 - psrad mm1, %6 - packssdw mm2, mm2 ; A2+B2 a2+b2 - packssdw mm6, mm6 ; A3+B3 a3+b3 - movd [32 + %5], mm2 - packssdw mm1, mm1 ; A3-B3 a3-b3 - packssdw mm5, mm5 ; A2-B2 a2-b2 - movd [48 + %5], mm6 - movd [64 + %5], mm1 - movd [80 + %5], mm5 -%endmacro - -%macro IDCT4 6 - movq mm0, %1 ; R4 R0 r4 r0 - movq mm2, %3 ; R3 R1 r3 r1 - movq mm3, %4 ; R7 R5 r7 r5 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - movq mm7, [coeffs + 48] ; C3 C1 C3 C1 - pmaddwd mm7, mm2 ; C3R3+C1R1 C3r3+C1r1 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm1, [coeffs + 56] ; C7 C5 C7 C5 - pmaddwd mm1, mm3 ; C7R7+C5R5 C7r7+C5r5 - pmaddwd mm2, [coeffs + 64] ; -C7R3+C3R1 -C7r3+C3r1 - paddd mm7, mm1 ; B0 b0 - movq mm1, [coeffs + 72] ; -C5 -C1 -C5 -C1 - pmaddwd mm1, mm3 ; -C5R7-C1R5 -C5r7-C1r5 - paddd mm7, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm7 ; A0-B0 a0-b0 - paddd mm1, mm2 ; B1 b1 - psrad mm7, %6 - psrad mm4, %6 - movq mm2, mm0 ; A1 a1 - paddd mm0, mm1 ; A1+B1 a1+b1 - psubd mm2, mm1 ; A1-B1 a1-b1 - psrad mm0, %6 - psrad mm2, %6 - packssdw mm7, mm7 ; A0+B0 a0+b0 - movd [%5], mm7 - packssdw mm0, mm0 ; A1+B1 a1+b1 - movd [16 + %5], mm0 - packssdw mm2, mm2 ; A1-B1 a1-b1 - movd [96 + %5], mm2 - packssdw mm4, mm4 ; A0-B0 a0-b0 - movd [112 + %5], mm4 - movq mm0, %3 ; R3 R1 r3 r1 - movq mm4, [coeffs + 80] ; -C1 C5 -C1 C5 - pmaddwd mm4, mm0 ; -C1R3+C5R1 -C1r3+C5r1 - movq mm7, [coeffs + 88] ; C3 C7 C3 C7 - pmaddwd mm0, [coeffs + 96] ; -C5R3+C7R1 -C5r3+C7r1 - pmaddwd mm7, mm3 ; C3R7+C7R5 C3r7+C7r5 - movq mm2, mm5 ; A2 a2 - pmaddwd mm3, [coeffs + 104] ; -C1R7+C3R5 -C1r7+C3r5 - paddd mm4, mm7 ; B2 b2 - paddd mm2, mm4 ; A2+B2 a2+b2 - psubd mm5, mm4 ; a2-B2 a2-b2 - psrad mm2, %6 - psrad mm5, %6 - movq mm4, mm6 ; A3 a3 - paddd mm3, mm0 ; B3 b3 - paddd mm6, mm3 ; A3+B3 a3+b3 - psubd mm4, mm3 ; a3-B3 a3-b3 - psrad mm6, %6 - psrad mm4, %6 - packssdw mm2, mm2 ; A2+B2 a2+b2 - packssdw mm6, mm6 ; A3+B3 a3+b3 - movd [32 + %5], mm2 - packssdw mm4, mm4 ; A3-B3 a3-b3 - packssdw mm5, mm5 ; A2-B2 a2-b2 - movd [48 + %5], mm6 - movd [64 + %5], mm4 - movd [80 + %5], mm5 -%endmacro - -%macro IDCT5 6 - movq mm0, %1 ; R4 R0 r4 r0 - movq mm2, %3 ; R3 R1 r3 r1 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - movq mm7, [coeffs + 48] ; C3 C1 C3 C1 - pmaddwd mm7, mm2 ; C3R3+C1R1 C3r3+C1r1 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm3, [coeffs + 64] - pmaddwd mm3, mm2 ; -C7R3+C3R1 -C7r3+C3r1 - paddd mm7, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm7 ; A0-B0 a0-b0 - psrad mm7, %6 - psrad mm4, %6 - movq mm1, mm0 ; A1 a1 - paddd mm0, mm3 ; A1+B1 a1+b1 - psubd mm1, mm3 ; A1-B1 a1-b1 - psrad mm0, %6 - psrad mm1, %6 - packssdw mm7, mm7 ; A0+B0 a0+b0 - movd [%5], mm7 - packssdw mm0, mm0 ; A1+B1 a1+b1 - movd [16 + %5], mm0 - packssdw mm1, mm1 ; A1-B1 a1-b1 - movd [96 + %5], mm1 - packssdw mm4, mm4 ; A0-B0 a0-b0 - movd [112 + %5], mm4 - movq mm4, [coeffs + 80] ; -C1 C5 -C1 C5 - pmaddwd mm4, mm2 ; -C1R3+C5R1 -C1r3+C5r1 - pmaddwd mm2, [coeffs + 96] ; -C5R3+C7R1 -C5r3+C7r1 - movq mm1, mm5 ; A2 a2 - paddd mm1, mm4 ; A2+B2 a2+b2 - psubd mm5, mm4 ; a2-B2 a2-b2 - psrad mm1, %6 - psrad mm5, %6 - movq mm4, mm6 ; A3 a3 - paddd mm6, mm2 ; A3+B3 a3+b3 - psubd mm4, mm2 ; a3-B3 a3-b3 - psrad mm6, %6 - psrad mm4, %6 - packssdw mm1, mm1 ; A2+B2 a2+b2 - packssdw mm6, mm6 ; A3+B3 a3+b3 - movd [32 + %5], mm1 - packssdw mm4, mm4 ; A3-B3 a3-b3 - packssdw mm5, mm5 ; A2-B2 a2-b2 - movd [48 + %5], mm6 - movd [64 + %5], mm4 - movd [80 + %5], mm5 -%endmacro - -%macro IDCT6 6 - movq mm0, [%1] ; R4 R0 r4 r0 - movq mm1, [%2] ; R6 R2 r6 r2 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm5, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm5, mm1 ; C6R6+C2R2 C6r6+C2r2 - movq mm6, [coeffs + 40] ; -C2 C6 -C2 C6 - pmaddwd mm1, mm6 ; -C2R6+C6R2 -C2r6+C6r2 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - paddd mm4, mm5 ; A0 a0 - psubd mm6, mm5 ; A3 a3 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - paddd mm0, mm1 ; A1 a1 - psubd mm5, mm1 ; A2 a2 - movq mm2, [8 + %1] ; R4 R0 r4 r0 - movq mm3, [8 + %2] ; R6 R2 r6 r2 - movq mm1, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm1, mm2 ; C4R4+C4R0 C4r4+C4r0 - movq mm7, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm2, mm7 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm7, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm7, mm3 ; C6R6+C2R2 C6r6+C2r2 - pmaddwd mm3, [coeffs + 40] ; -C2R6+C6R2 -C2r6+C6r2 - paddd mm7, mm1 ; A0 a0 - paddd mm1, mm1 ; 2C0 2c0 - psubd mm1, mm7 ; A3 a3 - paddd mm3, mm2 ; A1 a1 - paddd mm2, mm2 ; 2C1 2c1 - psubd mm2, mm3 ; A2 a2 - psrad mm4, %6 - psrad mm7, %6 - psrad mm3, %6 - packssdw mm4, mm7 ; A0 a0 - movq [%5], mm4 - psrad mm0, %6 - packssdw mm0, mm3 ; A1 a1 - movq [16 + %5], mm0 - movq [96 + %5], mm0 - movq [112 + %5], mm4 - psrad mm5, %6 - psrad mm6, %6 - psrad mm2, %6 - packssdw mm5, mm2 ; A2-B2 a2-b2 - movq [32 + %5], mm5 - psrad mm1, %6 - packssdw mm6, mm1 ; A3+B3 a3+b3 - movq [48 + %5], mm6 - movq [64 + %5], mm6 - movq [80 + %5], mm5 -%endmacro - -%macro IDCT7 6 - movq mm0, %1 ; R4 R0 r4 r0 - movq mm1, %2 ; R6 R2 r6 r2 - movq mm2, %3 ; R3 R1 r3 r1 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm5, [coeffs + 32] ; C6 C2 C6 C2 - pmaddwd mm5, mm1 ; C6R6+C2R2 C6r6+C2r2 - movq mm6, [coeffs + 40] ; -C2 C6 -C2 C6 - pmaddwd mm1, mm6 ; -C2R6+C6R2 -C2r6+C6r2 - movq mm6, mm4 ; C4R4+C4R0 C4r4+C4r0 - movq mm7, [coeffs + 48] ; C3 C1 C3 C1 - pmaddwd mm7, mm2 ; C3R3+C1R1 C3r3+C1r1 - paddd mm4, mm5 ; A0 a0 - psubd mm6, mm5 ; A3 a3 - movq mm5, mm0 ; -C4R4+C4R0 -C4r4+C4r0 - paddd mm0, mm1 ; A1 a1 - psubd mm5, mm1 ; A2 a2 - movq mm1, [coeffs + 64] - pmaddwd mm1, mm2 ; -C7R3+C3R1 -C7r3+C3r1 - paddd mm7, mm4 ; A0+B0 a0+b0 - paddd mm4, mm4 ; 2A0 2a0 - psubd mm4, mm7 ; A0-B0 a0-b0 - psrad mm7, %6 - psrad mm4, %6 - movq mm3, mm0 ; A1 a1 - paddd mm0, mm1 ; A1+B1 a1+b1 - psubd mm3, mm1 ; A1-B1 a1-b1 - psrad mm0, %6 - psrad mm3, %6 - packssdw mm7, mm7 ; A0+B0 a0+b0 - movd [%5], mm7 - packssdw mm0, mm0 ; A1+B1 a1+b1 - movd [16 + %5], mm0 - packssdw mm3, mm3 ; A1-B1 a1-b1 - movd [96 + %5], mm3 - packssdw mm4, mm4 ; A0-B0 a0-b0 - movd [112 + %5], mm4 - movq mm4, [coeffs + 80] ; -C1 C5 -C1 C5 - pmaddwd mm4, mm2 ; -C1R3+C5R1 -C1r3+C5r1 - pmaddwd mm2, [coeffs + 96] ; -C5R3+C7R1 -C5r3+C7r1 - movq mm3, mm5 ; A2 a2 - paddd mm3, mm4 ; A2+B2 a2+b2 - psubd mm5, mm4 ; a2-B2 a2-b2 - psrad mm3, %6 - psrad mm5, %6 - movq mm4, mm6 ; A3 a3 - paddd mm6, mm2 ; A3+B3 a3+b3 - psubd mm4, mm2 ; a3-B3 a3-b3 - psrad mm6, %6 - packssdw mm3, mm3 ; A2+B2 a2+b2 - movd [32 + %5], mm3 - psrad mm4, %6 - packssdw mm6, mm6 ; A3+B3 a3+b3 - movd [48 + %5], mm6 - packssdw mm4, mm4 ; A3-B3 a3-b3 - packssdw mm5, mm5 ; A2-B2 a2-b2 - movd [64 + %5], mm4 - movd [80 + %5], mm5 -%endmacro - -%macro IDCT8 6 - movq mm0, [%1] ; R4 R0 r4 r0 - movq mm4, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm4, mm0 ; C4R4+C4R0 C4r4+C4r0 - movq mm5, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm0, mm5 ; -C4R4+C4R0 -C4r4+C4r0 - psrad mm4, %6 - psrad mm0, %6 - movq mm2, [8 + %1] ; R4 R0 r4 r0 - movq mm1, [coeffs + 16] ; C4 C4 C4 C4 - pmaddwd mm1, mm2 ; C4R4+C4R0 C4r4+C4r0 - movq mm7, [coeffs + 24] ; -C4 C4 -C4 C4 - pmaddwd mm2, mm7 ; -C4R4+C4R0 -C4r4+C4r0 - movq mm7, [coeffs + 32] ; C6 C2 C6 C2 - psrad mm1, %6 - packssdw mm4, mm1 ; A0 a0 - movq [%5], mm4 - psrad mm2, %6 - packssdw mm0, mm2 ; A1 a1 - movq [16 + %5], mm0 - movq [96 + %5], mm0 - movq [112 + %5], mm4 - movq [32 + %5], mm0 - movq [48 + %5], mm4 - movq [64 + %5], mm4 - movq [80 + %5], mm0 -%endmacro - -%macro IDCT 0 - DC_COND_IDCT 0, 8, 16, 24, rsp + 0, null, 11 - Z_COND_IDCT 32, 40, 48, 56, rsp + 32, null, 11, %%4 - Z_COND_IDCT 64, 72, 80, 88, rsp + 64, null, 11, %%2 - Z_COND_IDCT 96, 104, 112, 120, rsp + 96, null, 11, %%1 - - IDCT1 [rsp + 0], [rsp + 64], [rsp + 32], [rsp + 96], blockq + 0, 20 - IDCT1 [rsp + 8], [rsp + 72], [rsp + 40], [rsp + 104], blockq + 4, 20 - IDCT1 [rsp + 16], [rsp + 80], [rsp + 48], [rsp + 112], blockq + 8, 20 - IDCT1 [rsp + 24], [rsp + 88], [rsp + 56], [rsp + 120], blockq + 12, 20 - jmp %%9 - - ALIGN 16 - %%4: - Z_COND_IDCT 64, 72, 80, 88, rsp + 64, null, 11, %%6 - Z_COND_IDCT 96, 104, 112, 120, rsp + 96, null, 11, %%5 - - IDCT2 [rsp + 0], [rsp + 64], [rsp + 32], [rsp + 96], blockq + 0, 20 - IDCT2 [rsp + 8], [rsp + 72], [rsp + 40], [rsp + 104], blockq + 4, 20 - IDCT2 [rsp + 16], [rsp + 80], [rsp + 48], [rsp + 112], blockq + 8, 20 - IDCT2 [rsp + 24], [rsp + 88], [rsp + 56], [rsp + 120], blockq + 12, 20 - jmp %%9 - - ALIGN 16 - %%6: - Z_COND_IDCT 96, 104, 112, 120, rsp + 96, null, 11, %%7 - - IDCT3 [rsp + 0], [rsp + 64], [rsp + 32], [rsp + 96], blockq + 0, 20 - IDCT3 [rsp + 8], [rsp + 72], [rsp + 40], [rsp + 104], blockq + 4, 20 - IDCT3 [rsp + 16], [rsp + 80], [rsp + 48], [rsp + 112], blockq + 8, 20 - IDCT3 [rsp + 24], [rsp + 88], [rsp + 56], [rsp + 120], blockq + 12, 20 - jmp %%9 - - ALIGN 16 - %%2: - Z_COND_IDCT 96, 104, 112, 120, rsp + 96, null, 11, %%3 - - IDCT4 [rsp + 0], [rsp + 64], [rsp + 32], [rsp + 96], blockq + 0, 20 - IDCT4 [rsp + 8], [rsp + 72], [rsp + 40], [rsp + 104], blockq + 4, 20 - IDCT4 [rsp + 16], [rsp + 80], [rsp + 48], [rsp + 112], blockq + 8, 20 - IDCT4 [rsp + 24], [rsp + 88], [rsp + 56], [rsp + 120], blockq + 12, 20 - jmp %%9 - - ALIGN 16 - %%3: - - IDCT5 [rsp + 0], [rsp + 64], [rsp + 32], [rsp + 96], blockq + 0, 20 - IDCT5 [rsp + 8], [rsp + 72], [rsp + 40], [rsp + 104], blockq + 4, 20 - IDCT5 [rsp + 16], [rsp + 80], [rsp + 48], [rsp + 112], blockq + 8, 20 - IDCT5 [rsp + 24], [rsp + 88], [rsp + 56], [rsp + 120], blockq + 12, 20 - jmp %%9 - - ALIGN 16 - %%5: - - IDCT6 rsp + 0, rsp + 64, rsp + 32, rsp + 96, blockq + 0, 20 - IDCT6 rsp + 16, rsp + 80, rsp + 48, rsp + 112, blockq + 8, 20 - jmp %%9 - - ALIGN 16 - %%1: - - IDCT7 [rsp + 0], [rsp + 64], [rsp + 32], [rsp + 96], blockq + 0, 20 - IDCT7 [rsp + 8], [rsp + 72], [rsp + 40], [rsp + 104], blockq + 4, 20 - IDCT7 [rsp + 16], [rsp + 80], [rsp + 48], [rsp + 112], blockq + 8, 20 - IDCT7 [rsp + 24], [rsp + 88], [rsp + 56], [rsp + 120], blockq + 12, 20 - jmp %%9 - - ALIGN 16 - %%7: - - IDCT8 rsp + 0, rsp + 64, rsp + 32, rsp + 96, blockq + 0, 20 - IDCT8 rsp + 16, rsp + 80, rsp + 48, rsp + 112, blockq + 8, 20 - - %%9: -%endmacro - -%macro PUT_PIXELS_CLAMPED_HALF 1 - mova m0, [blockq+mmsize*0+%1] - mova m1, [blockq+mmsize*2+%1] -%if mmsize == 8 - mova m2, [blockq+mmsize*4+%1] - mova m3, [blockq+mmsize*6+%1] -%endif - packuswb m0, [blockq+mmsize*1+%1] - packuswb m1, [blockq+mmsize*3+%1] -%if mmsize == 8 - packuswb m2, [blockq+mmsize*5+%1] - packuswb m3, [blockq+mmsize*7+%1] - movq [pixelsq], m0 - movq [lsizeq+pixelsq], m1 - movq [2*lsizeq+pixelsq], m2 - movq [lsize3q+pixelsq], m3 -%else - movq [pixelsq], m0 - movhps [lsizeq+pixelsq], m0 - movq [2*lsizeq+pixelsq], m1 - movhps [lsize3q+pixelsq], m1 -%endif -%endmacro - -%macro ADD_PIXELS_CLAMPED 1 - mova m0, [blockq+mmsize*0+%1] - mova m1, [blockq+mmsize*1+%1] -%if mmsize == 8 - mova m5, [blockq+mmsize*2+%1] - mova m6, [blockq+mmsize*3+%1] -%endif - movq m2, [pixelsq] - movq m3, [pixelsq+lsizeq] -%if mmsize == 8 - mova m7, m2 - punpcklbw m2, m4 - punpckhbw m7, m4 - paddsw m0, m2 - paddsw m1, m7 - mova m7, m3 - punpcklbw m3, m4 - punpckhbw m7, m4 - paddsw m5, m3 - paddsw m6, m7 -%else - punpcklbw m2, m4 - punpcklbw m3, m4 - paddsw m0, m2 - paddsw m1, m3 -%endif - packuswb m0, m1 -%if mmsize == 8 - packuswb m5, m6 - movq [pixelsq], m0 - movq [pixelsq+lsizeq], m5 -%else - movq [pixelsq], m0 - movhps [pixelsq+lsizeq], m0 -%endif -%endmacro - -INIT_MMX mmx - -cglobal simple_idct, 1, 2, 8, 128, block, t0 - IDCT -RET - -cglobal simple_idct_put, 3, 5, 8, 128, pixels, lsize, block, lsize3, t0 - IDCT - lea lsize3q, [lsizeq*3] - PUT_PIXELS_CLAMPED_HALF 0 - lea pixelsq, [pixelsq+lsizeq*4] - PUT_PIXELS_CLAMPED_HALF 64 -RET - -cglobal simple_idct_add, 3, 4, 8, 128, pixels, lsize, block, t0 - IDCT - pxor m4, m4 - ADD_PIXELS_CLAMPED 0 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 32 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 64 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 96 -RET - -INIT_XMM sse2 - -cglobal simple_idct_put, 3, 5, 8, 128, pixels, lsize, block, lsize3, t0 - IDCT - lea lsize3q, [lsizeq*3] - PUT_PIXELS_CLAMPED_HALF 0 - lea pixelsq, [pixelsq+lsizeq*4] - PUT_PIXELS_CLAMPED_HALF 64 -RET - -cglobal simple_idct_add, 3, 4, 8, 128, pixels, lsize, block, t0 - IDCT - pxor m4, m4 - ADD_PIXELS_CLAMPED 0 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 32 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 64 - lea pixelsq, [pixelsq+lsizeq*2] - ADD_PIXELS_CLAMPED 96 -RET diff --git a/libavcodec/x86/simple_idct10.asm b/libavcodec/x86/simple_idct10.asm deleted file mode 100644 index 069bb61378..0000000000 --- a/libavcodec/x86/simple_idct10.asm +++ /dev/null @@ -1,205 +0,0 @@ -;****************************************************************************** -;* x86-SIMD-optimized IDCT for prores -;* this is identical to "simple" IDCT written by Michael Niedermayer -;* except for the clip range -;* -;* Copyright (c) 2011 Ronald S. Bultje -;* Copyright (c) 2015 Christophe Gisquet -;* -;* 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -%if ARCH_X86_64 - -SECTION_RODATA - -cextern pw_2 -cextern pw_16 -cextern pw_32 -cextern pw_1023 -cextern pw_4095 -pd_round_11: times 4 dd 1<<(11-1) -pd_round_12: times 4 dd 1<<(12-1) -pd_round_15: times 4 dd 1<<(15-1) -pd_round_19: times 4 dd 1<<(19-1) -pd_round_20: times 4 dd 1<<(20-1) - -%macro CONST_DEC 3 -const %1 -times 4 dw %2, %3 -%endmacro - -%define W1sh2 22725 ; W1 = 90901 = 22725<<2 + 1 -%define W2sh2 21407 ; W2 = 85627 = 21407<<2 - 1 -%define W3sh2 19265 ; W3 = 77062 = 19265<<2 + 2 -%define W4sh2 16384 ; W4 = 65535 = 16384<<2 - 1 -%define W3sh2_lo 19266 -%define W4sh2_lo 16383 -%define W5sh2 12873 ; W5 = 51491 = 12873<<2 - 1 -%define W6sh2 8867 ; W6 = 35468 = 8867<<2 -%define W7sh2 4520 ; W7 = 18081 = 4520<<2 + 1 - -CONST_DEC w4_plus_w2_hi, W4sh2, +W2sh2 -CONST_DEC w4_min_w2_hi, W4sh2, -W2sh2 -CONST_DEC w4_plus_w6_hi, W4sh2, +W6sh2 -CONST_DEC w4_min_w6_hi, W4sh2, -W6sh2 -CONST_DEC w1_plus_w3_hi, W1sh2, +W3sh2 -CONST_DEC w3_min_w1_hi, W3sh2, -W1sh2 -CONST_DEC w7_plus_w3_hi, W7sh2, +W3sh2 -CONST_DEC w3_min_w7_hi, W3sh2, -W7sh2 -CONST_DEC w1_plus_w5, W1sh2, +W5sh2 -CONST_DEC w5_min_w1, W5sh2, -W1sh2 -CONST_DEC w5_plus_w7, W5sh2, +W7sh2 -CONST_DEC w7_min_w5, W7sh2, -W5sh2 -CONST_DEC w4_plus_w2_lo, W4sh2_lo, +W2sh2 -CONST_DEC w4_min_w2_lo, W4sh2_lo, -W2sh2 -CONST_DEC w4_plus_w6_lo, W4sh2_lo, +W6sh2 -CONST_DEC w4_min_w6_lo, W4sh2_lo, -W6sh2 -CONST_DEC w1_plus_w3_lo, W1sh2, +W3sh2_lo -CONST_DEC w3_min_w1_lo, W3sh2_lo, -W1sh2 -CONST_DEC w7_plus_w3_lo, W7sh2, +W3sh2_lo -CONST_DEC w3_min_w7_lo, W3sh2_lo, -W7sh2 - -%include "libavcodec/x86/simple_idct10_template.asm" - -SECTION .text - -%macro STORE_HI_LO 12 - movq %1, %9 - movq %3, %10 - movq %5, %11 - movq %7, %12 - movhps %2, %9 - movhps %4, %10 - movhps %6, %11 - movhps %8, %12 -%endmacro - -%macro LOAD_ZXBW_8 16 - pmovzxbw %1, %9 - pmovzxbw %2, %10 - pmovzxbw %3, %11 - pmovzxbw %4, %12 - pmovzxbw %5, %13 - pmovzxbw %6, %14 - pmovzxbw %7, %15 - pmovzxbw %8, %16 -%endmacro - -%macro LOAD_ZXBW_4 9 - movh %1, %5 - movh %2, %6 - movh %3, %7 - movh %4, %8 - punpcklbw %1, %9 - punpcklbw %2, %9 - punpcklbw %3, %9 - punpcklbw %4, %9 -%endmacro - -%define PASS4ROWS(base, stride, stride3) \ - [base], [base + stride], [base + 2*stride], [base + stride3] - -%macro idct_fn 0 - -define_constants _lo - -cglobal simple_idct8, 1, 1, 16, 32, block - IDCT_FN "", 11, pw_32, 20, "store" -RET - -cglobal simple_idct8_put, 3, 4, 16, 32, pixels, lsize, block - IDCT_FN "", 11, pw_32, 20 - lea r3, [3*lsizeq] - lea r2, [pixelsq + r3] - packuswb m8, m0 - packuswb m1, m2 - packuswb m4, m11 - packuswb m9, m10 - STORE_HI_LO PASS8ROWS(pixelsq, r2, lsizeq, r3), m8, m1, m4, m9 -RET - -cglobal simple_idct8_add, 3, 4, 16, 32, pixels, lsize, block - IDCT_FN "", 11, pw_32, 20 - lea r2, [3*lsizeq] - %if cpuflag(sse4) - lea r3, [pixelsq + r2] - LOAD_ZXBW_8 m3, m5, m6, m7, m12, m13, m14, m15, PASS8ROWS(pixelsq, r3, lsizeq, r2) - paddsw m8, m3 - paddsw m0, m5 - paddsw m1, m6 - paddsw m2, m7 - paddsw m4, m12 - paddsw m11, m13 - paddsw m9, m14 - paddsw m10, m15 - %else - pxor m12, m12 - LOAD_ZXBW_4 m3, m5, m6, m7, PASS4ROWS(pixelsq, lsizeq, r2), m12 - paddsw m8, m3 - paddsw m0, m5 - paddsw m1, m6 - paddsw m2, m7 - lea r3, [pixelsq + 4*lsizeq] - LOAD_ZXBW_4 m3, m5, m6, m7, PASS4ROWS(r3, lsizeq, r2), m12 - paddsw m4, m3 - paddsw m11, m5 - paddsw m9, m6 - paddsw m10, m7 - lea r3, [pixelsq + r2] - %endif - packuswb m8, m0 - packuswb m1, m2 - packuswb m4, m11 - packuswb m9, m10 - STORE_HI_LO PASS8ROWS(pixelsq, r3, lsizeq, r2), m8, m1, m4, m9 -RET - -define_constants _hi - -cglobal simple_idct10, 1, 1, 16, block - IDCT_FN "", 12, "", 19, "store" - RET - -cglobal simple_idct10_put, 3, 3, 16, pixels, lsize, block - IDCT_FN "", 12, "", 19, "put", 0, pw_1023 - RET - -cglobal simple_idct12, 1, 1, 16, block - ; coeffs are already 15bits, adding the offset would cause - ; overflow in the input - IDCT_FN "", 15, pw_2, 16, "store" - RET - -cglobal simple_idct12_put, 3, 3, 16, pixels, lsize, block - ; range isn't known, so the C simple_idct range is used - ; Also, using a bias on input overflows, so use the bias - ; on output of the first butterfly instead - IDCT_FN "", 15, pw_2, 16, "put", 0, pw_4095 - RET -%endmacro - -INIT_XMM sse2 -idct_fn -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -idct_fn -%endif - -%endif diff --git a/libavcodec/x86/simple_idct10_template.asm b/libavcodec/x86/simple_idct10_template.asm deleted file mode 100644 index 0d04a9818a..0000000000 --- a/libavcodec/x86/simple_idct10_template.asm +++ /dev/null @@ -1,369 +0,0 @@ -;****************************************************************************** -;* x86-SIMD-optimized IDCT for prores -;* this is identical to "simple" IDCT written by Michael Niedermayer -;* except for the clip range -;* -;* Copyright (c) 2011 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 -;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -; add SECTION_RODATA and proper include before including this file! - -%if ARCH_X86_64 - -%macro define_constants 1 - %undef w4_plus_w2 - %undef w4_min_w2 - %undef w4_plus_w6 - %undef w4_min_w6 - %undef w1_plus_w3 - %undef w3_min_w1 - %undef w7_plus_w3 - %undef w3_min_w7 - %define w4_plus_w2 w4_plus_w2%1 - %define w4_min_w2 w4_min_w2%1 - %define w4_plus_w6 w4_plus_w6%1 - %define w4_min_w6 w4_min_w6%1 - %define w1_plus_w3 w1_plus_w3%1 - %define w3_min_w1 w3_min_w1%1 - %define w7_plus_w3 w7_plus_w3%1 - %define w3_min_w7 w3_min_w7%1 -%endmacro - -; interleave data while maintaining source -; %1=type, %2=dstlo, %3=dsthi, %4=src, %5=interleave -%macro SBUTTERFLY3 5 - punpckl%1 m%2, m%4, m%5 - punpckh%1 m%3, m%4, m%5 -%endmacro - -; %1/%2=src1/dst1, %3/%4=dst2, %5/%6=src2, %7=shift -; action: %3/%4 = %1/%2 - %5/%6; %1/%2 += %5/%6 -; %1/%2/%3/%4 >>= %7; dword -> word (in %1/%3) -%macro SUMSUB_SHPK 7 - psubd %3, %1, %5 ; { a0 - b0 }[0-3] - psubd %4, %2, %6 ; { a0 - b0 }[4-7] - paddd %1, %5 ; { a0 + b0 }[0-3] - paddd %2, %6 ; { a0 + b0 }[4-7] - psrad %1, %7 - psrad %2, %7 - psrad %3, %7 - psrad %4, %7 - packssdw %1, %2 ; row[0] - packssdw %3, %4 ; row[7] -%endmacro - -; %1 = initial bias ("" if nop) -; %2 = number of bits to shift at the end -; %3 = qmat (for prores) -%macro IDCT_1D 2-3 - ; a0 = (W4 * row[0]) + (1 << (15 - 1)); - ; a1 = a0; - ; a2 = a0; - ; a3 = a0; - ; a0 += W2 * row[2]; - ; a1 += W6 * row[2]; - ; a2 -= W6 * row[2]; - ; a3 -= W2 * row[2]; -%ifstr %1 - mova m15, [pd_round_ %+ %2] -%else - paddw m10, [%1] -%endif - SBUTTERFLY3 wd, 0, 1, 10, 8 ; { row[0], row[2] }[0-3]/[4-7] - pmaddwd m2, m0, [w4_plus_w6] - pmaddwd m3, m1, [w4_plus_w6] - pmaddwd m4, m0, [w4_min_w6] - pmaddwd m5, m1, [w4_min_w6] - pmaddwd m6, m0, [w4_min_w2] - pmaddwd m7, m1, [w4_min_w2] - pmaddwd m0, [w4_plus_w2] - pmaddwd m1, [w4_plus_w2] -%ifstr %1 - ; Adding 1<<(%2-1) for >=15 bits values - paddd m2, m15 - paddd m3, m15 - paddd m4, m15 - paddd m5, m15 - paddd m6, m15 - paddd m7, m15 - paddd m0, m15 - paddd m1, m15 -%endif - - ; a0: -1*row[0]-1*row[2] - ; a1: -1*row[0] - ; a2: -1*row[0] - ; a3: -1*row[0]+1*row[2] - - ; a0 += W4*row[4] + W6*row[6]; i.e. -1*row[4] - ; a1 -= W4*row[4] + W2*row[6]; i.e. -1*row[4]-1*row[6] - ; a2 -= W4*row[4] - W2*row[6]; i.e. -1*row[4]+1*row[6] - ; a3 += W4*row[4] - W6*row[6]; i.e. -1*row[4] - SBUTTERFLY3 wd, 8, 9, 13, 12 ; { row[4], row[6] }[0-3]/[4-7] - pmaddwd m10, m8, [w4_plus_w6] - pmaddwd m11, m9, [w4_plus_w6] - paddd m0, m10 ; a0[0-3] - paddd m1, m11 ; a0[4-7] - pmaddwd m10, m8, [w4_min_w6] - pmaddwd m11, m9, [w4_min_w6] - paddd m6, m10 ; a3[0-3] - paddd m7, m11 ; a3[4-7] - pmaddwd m10, m8, [w4_min_w2] - pmaddwd m11, m9, [w4_min_w2] - pmaddwd m8, [w4_plus_w2] - pmaddwd m9, [w4_plus_w2] - psubd m4, m10 ; a2[0-3] intermediate - psubd m5, m11 ; a2[4-7] intermediate - psubd m2, m8 ; a1[0-3] intermediate - psubd m3, m9 ; a1[4-7] intermediate - - ; load/store - mova [blockq+ 0], m0 - mova [blockq+ 32], m2 - mova [blockq+ 64], m4 - mova [blockq+ 96], m6 - mova m10,[blockq+ 16] ; { row[1] }[0-7] - mova m8, [blockq+ 48] ; { row[3] }[0-7] - mova m13,[blockq+ 80] ; { row[5] }[0-7] - mova m14,[blockq+112] ; { row[7] }[0-7] - mova [blockq+ 16], m1 - mova [blockq+ 48], m3 - mova [blockq+ 80], m5 - mova [blockq+112], m7 -%if %0 == 3 - pmullw m10,[%3+ 16] - pmullw m8, [%3+ 48] - pmullw m13,[%3+ 80] - pmullw m14,[%3+112] -%endif - - ; b0 = MUL(W1, row[1]); - ; MAC(b0, W3, row[3]); - ; b1 = MUL(W3, row[1]); - ; MAC(b1, -W7, row[3]); - ; b2 = MUL(W5, row[1]); - ; MAC(b2, -W1, row[3]); - ; b3 = MUL(W7, row[1]); - ; MAC(b3, -W5, row[3]); - SBUTTERFLY3 wd, 0, 1, 10, 8 ; { row[1], row[3] }[0-3]/[4-7] - pmaddwd m2, m0, [w3_min_w7] - pmaddwd m3, m1, [w3_min_w7] - pmaddwd m4, m0, [w5_min_w1] - pmaddwd m5, m1, [w5_min_w1] - pmaddwd m6, m0, [w7_min_w5] - pmaddwd m7, m1, [w7_min_w5] - pmaddwd m0, [w1_plus_w3] - pmaddwd m1, [w1_plus_w3] - - ; b0: +1*row[1]+2*row[3] - ; b1: +2*row[1]-1*row[3] - ; b2: -1*row[1]-1*row[3] - ; b3: +1*row[1]+1*row[3] - - ; MAC(b0, W5, row[5]); - ; MAC(b0, W7, row[7]); - ; MAC(b1, -W1, row[5]); - ; MAC(b1, -W5, row[7]); - ; MAC(b2, W7, row[5]); - ; MAC(b2, W3, row[7]); - ; MAC(b3, W3, row[5]); - ; MAC(b3, -W1, row[7]); - SBUTTERFLY3 wd, 8, 9, 13, 14 ; { row[5], row[7] }[0-3]/[4-7] - - ; b0: -1*row[5]+1*row[7] - ; b1: -1*row[5]+1*row[7] - ; b2: +1*row[5]+2*row[7] - ; b3: +2*row[5]-1*row[7] - - pmaddwd m10, m8, [w1_plus_w5] - pmaddwd m11, m9, [w1_plus_w5] - pmaddwd m12, m8, [w5_plus_w7] - pmaddwd m13, m9, [w5_plus_w7] - psubd m2, m10 ; b1[0-3] - psubd m3, m11 ; b1[4-7] - paddd m0, m12 ; b0[0-3] - paddd m1, m13 ; b0[4-7] - pmaddwd m12, m8, [w7_plus_w3] - pmaddwd m13, m9, [w7_plus_w3] - pmaddwd m8, [w3_min_w1] - pmaddwd m9, [w3_min_w1] - paddd m4, m12 ; b2[0-3] - paddd m5, m13 ; b2[4-7] - paddd m6, m8 ; b3[0-3] - paddd m7, m9 ; b3[4-7] - - ; row[0] = (a0 + b0) >> 15; - ; row[7] = (a0 - b0) >> 15; - ; row[1] = (a1 + b1) >> 15; - ; row[6] = (a1 - b1) >> 15; - ; row[2] = (a2 + b2) >> 15; - ; row[5] = (a2 - b2) >> 15; - ; row[3] = (a3 + b3) >> 15; - ; row[4] = (a3 - b3) >> 15; - mova m8, [blockq+ 0] ; a0[0-3] - mova m9, [blockq+16] ; a0[4-7] - SUMSUB_SHPK m8, m9, m10, m11, m0, m1, %2 - mova m0, [blockq+32] ; a1[0-3] - mova m1, [blockq+48] ; a1[4-7] - SUMSUB_SHPK m0, m1, m9, m11, m2, m3, %2 - mova m1, [blockq+64] ; a2[0-3] - mova m2, [blockq+80] ; a2[4-7] - SUMSUB_SHPK m1, m2, m11, m3, m4, m5, %2 - mova m2, [blockq+96] ; a3[0-3] - mova m3, [blockq+112] ; a3[4-7] - SUMSUB_SHPK m2, m3, m4, m5, m6, m7, %2 -%endmacro - -; void ff_prores_idct_put_10_(uint8_t *pixels, ptrdiff_t stride, -; int16_t *block, const int16_t *qmat); - -; %1 = row shift -; %2 = row bias macro -; %3 = column shift -; %4 = column bias macro -; %5 = final action (nothing, "store", "put", "add") -; %6 = min pixel value -; %7 = max pixel value -; %8 = qmat (for prores) - -%macro IDCT_FN 4-8 - ; for (i = 0; i < 8; i++) - ; idctRowCondDC(block + i*8); - mova m10,[blockq+ 0] ; { row[0] }[0-7] - mova m8, [blockq+32] ; { row[2] }[0-7] - mova m13,[blockq+64] ; { row[4] }[0-7] - mova m12,[blockq+96] ; { row[6] }[0-7] - -%if %0 == 8 - pmullw m10,[%8+ 0] - pmullw m8, [%8+32] - pmullw m13,[%8+64] - pmullw m12,[%8+96] - - IDCT_1D %1, %2, %8 -%elif %2 == 11 - ; This copies the DC-only shortcut. When there is only a DC coefficient the - ; C shifts the value and splats it to all coeffs rather than multiplying and - ; doing the full IDCT. This causes a difference on 8-bit because the - ; coefficient is 16383 rather than 16384 (which you can get with shifting). - por m1, m8, m13 - por m1, m12 - por m1, [blockq+ 16] ; { row[1] }[0-7] - por m1, [blockq+ 48] ; { row[3] }[0-7] - por m1, [blockq+ 80] ; { row[5] }[0-7] - por m1, [blockq+112] ; { row[7] }[0-7] - pxor m2, m2 - pcmpeqw m1, m2 - psllw m2, m10, 3 - pand m2, m1 - pcmpeqb m3, m3 - pxor m1, m3 - mova [rsp], m1 - mova [rsp+16], m2 - - IDCT_1D %1, %2 - - mova m5, [rsp] - mova m6, [rsp+16] - pand m8, m5 - por m8, m6 - pand m0, m5 - por m0, m6 - pand m1, m5 - por m1, m6 - pand m2, m5 - por m2, m6 - pand m4, m5 - por m4, m6 - pand m11, m5 - por m11, m6 - pand m9, m5 - por m9, m6 - pand m10, m5 - por m10, m6 -%else - IDCT_1D %1, %2 -%endif - - ; transpose for second part of IDCT - TRANSPOSE8x8W 8, 0, 1, 2, 4, 11, 9, 10, 3 - mova [blockq+ 16], m0 - mova [blockq+ 48], m2 - mova [blockq+ 80], m11 - mova [blockq+112], m10 - SWAP 8, 10 - SWAP 1, 8 - SWAP 4, 13 - SWAP 9, 12 - - ; for (i = 0; i < 8; i++) - ; idctSparseColAdd(dest + i, line_size, block + i); - IDCT_1D %3, %4 - - ; clip/store -%if %0 >= 5 -%ifidn %5,"store" - ; No clamping, means pure idct - mova [blockq+ 0], m8 - mova [blockq+ 16], m0 - mova [blockq+ 32], m1 - mova [blockq+ 48], m2 - mova [blockq+ 64], m4 - mova [blockq+ 80], m11 - mova [blockq+ 96], m9 - mova [blockq+112], m10 -%elifidn %5,"put" -%ifidn %6, 0 - pxor m3, m3 -%else - mova m3, [%6] -%endif ; ifidn %6, 0 - mova m5, [%7] - pmaxsw m8, m3 - pmaxsw m0, m3 - pmaxsw m1, m3 - pmaxsw m2, m3 - pmaxsw m4, m3 - pmaxsw m11, m3 - pmaxsw m9, m3 - pmaxsw m10, m3 - pminsw m8, m5 - pminsw m0, m5 - pminsw m1, m5 - pminsw m2, m5 - pminsw m4, m5 - pminsw m11, m5 - pminsw m9, m5 - pminsw m10, m5 - - lea r2, [r1*3] - mova [r0 ], m8 - mova [r0+r1 ], m0 - mova [r0+r1*2], m1 - mova [r0+r2 ], m2 - lea r0, [r0+r1*4] - mova [r0 ], m4 - mova [r0+r1 ], m11 - mova [r0+r1*2], m9 - mova [r0+r2 ], m10 -%endif ; %5 action -%endif; if %0 >= 5 -%endmacro - -%endif diff --git a/libavcodec/x86/svq1enc.asm b/libavcodec/x86/svq1enc.asm deleted file mode 100644 index a87632836d..0000000000 --- a/libavcodec/x86/svq1enc.asm +++ /dev/null @@ -1,61 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized SVQ1 encoder functions -;* Copyright (c) 2007 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro SSD_INT8_VS_INT16 0 -cglobal ssd_int8_vs_int16, 3, 3, 3, pix1, pix2, size - pxor m0, m0 -.loop: - sub sizeq, 8 - movq m1, [pix1q + sizeq] - mova m2, [pix2q + sizeq*2] -%if mmsize == 8 - movq m3, [pix2q + sizeq*2 + mmsize] - punpckhbw m4, m1 - punpcklbw m1, m1 - psraw m4, 8 - psraw m1, 8 - psubw m3, m4 - psubw m2, m1 - pmaddwd m3, m3 - pmaddwd m2, m2 - paddd m0, m3 - paddd m0, m2 -%else - punpcklbw m1, m1 - psraw m1, 8 - psubw m2, m1 - pmaddwd m2, m2 - paddd m0, m2 -%endif - jg .loop - HADDD m0, m1 - movd eax, m0 - RET -%endmacro - -INIT_MMX mmx -SSD_INT8_VS_INT16 -INIT_XMM sse2 -SSD_INT8_VS_INT16 diff --git a/libavcodec/x86/synth_filter.asm b/libavcodec/x86/synth_filter.asm deleted file mode 100644 index bc1a48f409..0000000000 --- a/libavcodec/x86/synth_filter.asm +++ /dev/null @@ -1,246 +0,0 @@ -;****************************************************************************** -;* SSE-optimized functions for the DCA decoder -;* Copyright (C) 2012-2014 Christophe Gisquet -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro SETZERO 1 -%if cpuflag(sse2) && notcpuflag(avx) - pxor %1, %1 -%else - xorps %1, %1, %1 -%endif -%endmacro - -%macro SHUF 3 -%if cpuflag(avx) - mova %3, [%2 - 16] - vperm2f128 %1, %3, %3, 1 - vshufps %1, %1, %1, q0123 -%elif cpuflag(sse2) - pshufd %1, [%2], q0123 -%else - mova %1, [%2] - shufps %1, %1, q0123 -%endif -%endmacro - -%macro INNER_LOOP 1 - ; reading backwards: ptr1 = synth_buf + j + i; ptr2 = synth_buf + j - i - ;~ a += window[i + j] * (-synth_buf[15 - i + j]) - ;~ b += window[i + j + 16] * (synth_buf[i + j]) - SHUF m5, ptr2 + j + (15 - 3) * 4, m6 - mova m6, [ptr1 + j] -%if ARCH_X86_64 - SHUF m11, ptr2 + j + (15 - 3) * 4 - mmsize, m12 - mova m12, [ptr1 + j + mmsize] -%endif -%if cpuflag(fma3) - fmaddps m2, m6, [win + %1 + j + 16 * 4], m2 - fnmaddps m1, m5, [win + %1 + j], m1 -%if ARCH_X86_64 - fmaddps m8, m12, [win + %1 + j + mmsize + 16 * 4], m8 - fnmaddps m7, m11, [win + %1 + j + mmsize], m7 -%endif -%else ; non-FMA - mulps m6, m6, [win + %1 + j + 16 * 4] - mulps m5, m5, [win + %1 + j] -%if ARCH_X86_64 - mulps m12, m12, [win + %1 + j + mmsize + 16 * 4] - mulps m11, m11, [win + %1 + j + mmsize] -%endif - addps m2, m2, m6 - subps m1, m1, m5 -%if ARCH_X86_64 - addps m8, m8, m12 - subps m7, m7, m11 -%endif -%endif ; cpuflag(fma3) - ;~ c += window[i + j + 32] * (synth_buf[16 + i + j]) - ;~ d += window[i + j + 48] * (synth_buf[31 - i + j]) - SHUF m6, ptr2 + j + (31 - 3) * 4, m5 - mova m5, [ptr1 + j + 16 * 4] -%if ARCH_X86_64 - SHUF m12, ptr2 + j + (31 - 3) * 4 - mmsize, m11 - mova m11, [ptr1 + j + mmsize + 16 * 4] -%endif -%if cpuflag(fma3) - fmaddps m3, m5, [win + %1 + j + 32 * 4], m3 - fmaddps m4, m6, [win + %1 + j + 48 * 4], m4 -%if ARCH_X86_64 - fmaddps m9, m11, [win + %1 + j + mmsize + 32 * 4], m9 - fmaddps m10, m12, [win + %1 + j + mmsize + 48 * 4], m10 -%endif -%else ; non-FMA - mulps m5, m5, [win + %1 + j + 32 * 4] - mulps m6, m6, [win + %1 + j + 48 * 4] -%if ARCH_X86_64 - mulps m11, m11, [win + %1 + j + mmsize + 32 * 4] - mulps m12, m12, [win + %1 + j + mmsize + 48 * 4] -%endif - addps m3, m3, m5 - addps m4, m4, m6 -%if ARCH_X86_64 - addps m9, m9, m11 - addps m10, m10, m12 -%endif -%endif ; cpuflag(fma3) - sub j, 64 * 4 -%endmacro - -; void ff_synth_filter_inner_(float *synth_buf, float synth_buf2[32], -; const float window[512], float out[32], -; intptr_t offset, float scale) -%macro SYNTH_FILTER 0 -cglobal synth_filter_inner, 0, 6 + 4 * ARCH_X86_64, 7 + 6 * ARCH_X86_64, \ - synth_buf, synth_buf2, window, out, off, scale -%define scale m0 -%if ARCH_X86_32 || WIN64 -%if cpuflag(sse2) && notcpuflag(avx) - movd scale, scalem - SPLATD m0 -%else - VBROADCASTSS m0, scalem -%endif -; Make sure offset is in a register and not on the stack -%define OFFQ r4q -%else - SPLATD xmm0 -%if cpuflag(avx) - vinsertf128 m0, m0, xmm0, 1 -%endif -%define OFFQ offq -%endif - ; prepare inner counter limit 1 - mov r5q, 480 - sub r5q, offmp - and r5q, -64 - shl r5q, 2 -%if ARCH_X86_32 || notcpuflag(avx) - mov OFFQ, r5q -%define i r5q - mov i, 16 * 4 - (ARCH_X86_64 + 1) * mmsize ; main loop counter -%else -%define i 0 -%define OFFQ r5q -%endif - -%define buf2 synth_buf2q -%if ARCH_X86_32 - mov buf2, synth_buf2mp -%endif -.mainloop: - ; m1 = a m2 = b m3 = c m4 = d - SETZERO m3 - SETZERO m4 - mova m1, [buf2 + i] - mova m2, [buf2 + i + 16 * 4] -%if ARCH_X86_32 -%define ptr1 r0q -%define ptr2 r1q -%define win r2q -%define j r3q - mov win, windowm - mov ptr1, synth_bufm -%if ARCH_X86_32 || notcpuflag(avx) - add win, i - add ptr1, i -%endif -%else ; ARCH_X86_64 -%define ptr1 r6q -%define ptr2 r7q ; must be loaded -%define win r8q -%define j r9q - SETZERO m9 - SETZERO m10 - mova m7, [buf2 + i + mmsize] - mova m8, [buf2 + i + mmsize + 16 * 4] - lea win, [windowq + i] - lea ptr1, [synth_bufq + i] -%endif - mov ptr2, synth_bufmp - ; prepare the inner loop counter - mov j, OFFQ -%if ARCH_X86_32 || notcpuflag(avx) - sub ptr2, i -%endif -.loop1: - INNER_LOOP 0 - jge .loop1 - - mov j, 448 * 4 - sub j, OFFQ - jz .end - sub ptr1, j - sub ptr2, j - add win, OFFQ ; now at j-64, so define OFFSET - sub j, 64 * 4 -.loop2: - INNER_LOOP 64 * 4 - jge .loop2 - -.end: -%if ARCH_X86_32 - mov buf2, synth_buf2m ; needed for next iteration anyway - mov outq, outmp ; j, which will be set again during it -%endif - ;~ out[i] = a * scale; - ;~ out[i + 16] = b * scale; - mulps m1, m1, scale - mulps m2, m2, scale -%if ARCH_X86_64 - mulps m7, m7, scale - mulps m8, m8, scale -%endif - ;~ synth_buf2[i] = c; - ;~ synth_buf2[i + 16] = d; - mova [buf2 + i + 0 * 4], m3 - mova [buf2 + i + 16 * 4], m4 -%if ARCH_X86_64 - mova [buf2 + i + 0 * 4 + mmsize], m9 - mova [buf2 + i + 16 * 4 + mmsize], m10 -%endif - ;~ out[i] = a; - ;~ out[i + 16] = a; - mova [outq + i + 0 * 4], m1 - mova [outq + i + 16 * 4], m2 -%if ARCH_X86_64 - mova [outq + i + 0 * 4 + mmsize], m7 - mova [outq + i + 16 * 4 + mmsize], m8 -%endif -%if ARCH_X86_32 || notcpuflag(avx) - sub i, (ARCH_X86_64 + 1) * mmsize - jge .mainloop -%endif - RET -%endmacro - -%if ARCH_X86_32 -INIT_XMM sse -SYNTH_FILTER -%endif -INIT_XMM sse2 -SYNTH_FILTER -INIT_YMM avx -SYNTH_FILTER -INIT_YMM fma3 -SYNTH_FILTER diff --git a/libavcodec/x86/takdsp.asm b/libavcodec/x86/takdsp.asm deleted file mode 100644 index 5f3ded3ea2..0000000000 --- a/libavcodec/x86/takdsp.asm +++ /dev/null @@ -1,116 +0,0 @@ -;****************************************************************************** -;* TAK DSP SIMD optimizations -;* -;* Copyright (C) 2015 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pd_128: times 4 dd 128 - -SECTION .text - -INIT_XMM sse2 -cglobal tak_decorrelate_ls, 3, 3, 2, p1, p2, length - shl lengthd, 2 - add p1q, lengthq - add p2q, lengthq - neg lengthq -.loop: - mova m0, [p1q+lengthq+mmsize*0] - mova m1, [p1q+lengthq+mmsize*1] - paddd m0, [p2q+lengthq+mmsize*0] - paddd m1, [p2q+lengthq+mmsize*1] - mova [p2q+lengthq+mmsize*0], m0 - mova [p2q+lengthq+mmsize*1], m1 - add lengthq, mmsize*2 - jl .loop - REP_RET - -cglobal tak_decorrelate_sr, 3, 3, 2, p1, p2, length - shl lengthd, 2 - add p1q, lengthq - add p2q, lengthq - neg lengthq - -.loop: - mova m0, [p2q+lengthq+mmsize*0] - mova m1, [p2q+lengthq+mmsize*1] - psubd m0, [p1q+lengthq+mmsize*0] - psubd m1, [p1q+lengthq+mmsize*1] - mova [p1q+lengthq+mmsize*0], m0 - mova [p1q+lengthq+mmsize*1], m1 - add lengthq, mmsize*2 - jl .loop - REP_RET - -cglobal tak_decorrelate_sm, 3, 3, 6, p1, p2, length - shl lengthd, 2 - add p1q, lengthq - add p2q, lengthq - neg lengthq - -.loop: - mova m0, [p1q+lengthq] - mova m1, [p2q+lengthq] - mova m3, [p1q+lengthq+mmsize] - mova m4, [p2q+lengthq+mmsize] - mova m2, m1 - mova m5, m4 - psrad m2, 1 - psrad m5, 1 - psubd m0, m2 - psubd m3, m5 - paddd m1, m0 - paddd m4, m3 - mova [p1q+lengthq], m0 - mova [p2q+lengthq], m1 - mova [p1q+lengthq+mmsize], m3 - mova [p2q+lengthq+mmsize], m4 - add lengthq, mmsize*2 - jl .loop - REP_RET - -INIT_XMM sse4 -cglobal tak_decorrelate_sf, 3, 3, 5, p1, p2, length, dshift, dfactor - shl lengthd, 2 - add p1q, lengthq - add p2q, lengthq - neg lengthq - - movd m2, dshiftm - movd m3, dfactorm - pshufd m3, m3, 0 - mova m4, [pd_128] - -.loop: - mova m0, [p1q+lengthq] - mova m1, [p2q+lengthq] - psrad m1, m2 - pmulld m1, m3 - paddd m1, m4 - psrad m1, 8 - pslld m1, m2 - psubd m1, m0 - mova [p1q+lengthq], m1 - add lengthq, mmsize - jl .loop - REP_RET diff --git a/libavcodec/x86/ttadsp.asm b/libavcodec/x86/ttadsp.asm deleted file mode 100644 index db12a32eca..0000000000 --- a/libavcodec/x86/ttadsp.asm +++ /dev/null @@ -1,119 +0,0 @@ -;****************************************************************************** -;* TTA DSP SIMD optimizations -;* -;* Copyright (C) 2014 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pd_n0113: dd ~0, ~1, ~1, ~3 -pd_1224: dd 1, 2, 2, 4 - -SECTION .text - -%macro TTA_FILTER 2 -INIT_XMM %1 -cglobal tta_filter_process, 5,5,%2, qm, dx, dl, error, in, shift, round - mova m2, [qmq ] - mova m3, [qmq + 0x10] - mova m4, [dxq ] - mova m5, [dxq + 0x10] - - movd m6, [errorq] ; if (filter->error < 0) { - SPLATD m6 ; for (int i = 0; i < 8; i++) - psignd m0, m4, m6 ; filter->qm[i] -= filter->dx[i]; - psignd m1, m5, m6 ; } else if (filter->error > 0) { - paddd m2, m0 ; for (int i = 0; i < 8; i++) - paddd m3, m1 ; filter->qm[i] += filter->dx[i]; - mova [qmq ], m2 ; } - mova [qmq + 0x10], m3 ; - - mova m0, [dlq ] - mova m1, [dlq + 0x10] - -%if cpuflag(sse4) - pmulld m2, m0 - pmulld m3, m1 -%else - pshufd m6, m0, 0xb1 - pshufd m7, m2, 0xb1 - pmuludq m6, m7 - pshufd m6, m6, 0xd8 - pmuludq m2, m0 - pshufd m2, m2, 0xd8 - punpckldq m2, m6 - - pshufd m6, m1, 0xb1 - pshufd m7, m3, 0xb1 - pmuludq m6, m7 - pshufd m6, m6, 0xd8 - pmuludq m3, m1 - pshufd m3, m3, 0xd8 - punpckldq m3, m6 -%endif - ; Using horizontal add (phaddd) seems to be slower than shuffling stuff around - paddd m2, m3 ; int sum = filter->round + - ; filter->dl[0] * filter->qm[0] + - pshufd m3, m2, 0xe ; filter->dl[1] * filter->qm[1] + - paddd m2, m3 ; filter->dl[2] * filter->qm[2] + - ; filter->dl[3] * filter->qm[3] + - movd m6, roundm ; filter->dl[4] * filter->qm[4] + - paddd m6, m2 ; filter->dl[5] * filter->qm[5] + - pshufd m2, m2, 0x1 ; filter->dl[6] * filter->qm[6] + - paddd m6, m2 ; filter->dl[7] * filter->qm[7]; - - palignr m5, m4, 4 ; filter->dx[0] = filter->dx[1]; filter->dx[1] = filter->dx[2]; - ; filter->dx[2] = filter->dx[3]; filter->dx[3] = filter->dx[4]; - - palignr m2, m1, m0, 4 ; filter->dl[0] = filter->dl[1]; filter->dl[1] = filter->dl[2]; - ; filter->dl[2] = filter->dl[3]; filter->dl[3] = filter->dl[4]; - - psrad m4, m1, 30 ; filter->dx[4] = ((filter->dl[4] >> 30) | 1); - por m4, [pd_1224 ] ; filter->dx[5] = ((filter->dl[5] >> 30) | 2) & ~1; - pand m4, [pd_n0113] ; filter->dx[6] = ((filter->dl[6] >> 30) | 2) & ~1; - ; filter->dx[7] = ((filter->dl[7] >> 30) | 4) & ~3; - - mova [dlq ], m2 - mova [dxq ], m5 - mova [dxq + 0x10], m4 - movd m0, [inq] ; filter->error = *in; - movd [errorq], m0 ; - - movd m2, shiftm ; *in += (sum >> filter->shift); - psrad m6, m2 ; - paddd m0, m6 ; - movd [inq], m0 ; - - psrldq m1, 4 ; - pslldq m0, 12 ; filter->dl[4] = -filter->dl[5]; - pshufd m0, m0, 0xf0 ; filter->dl[5] = -filter->dl[6]; - psubd m0, m1 ; filter->dl[6] = *in - filter->dl[7]; - psrldq m1, m0, 4 ; filter->dl[7] = *in; - pshufd m1, m1, 0xf4 ; filter->dl[5] += filter->dl[6]; - paddd m0, m1 ; filter->dl[4] += filter->dl[5]; - psrldq m1, 4 ; - paddd m0, m1 ; - mova [dlq + 0x10], m0 ; - RET -%endmacro - -TTA_FILTER ssse3, 8 -TTA_FILTER sse4, 7 diff --git a/libavcodec/x86/ttaencdsp.asm b/libavcodec/x86/ttaencdsp.asm deleted file mode 100644 index c9cbd49874..0000000000 --- a/libavcodec/x86/ttaencdsp.asm +++ /dev/null @@ -1,119 +0,0 @@ -;****************************************************************************** -;* TTA Encoder DSP SIMD optimizations -;* -;* Copyright (C) 2014-2016 James Almer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pd_n0113: dd ~0, ~1, ~1, ~3 -pd_1224: dd 1, 2, 2, 4 - -SECTION .text - -%macro TTAENC_FILTER 2 -INIT_XMM %1 -cglobal ttaenc_filter_process, 5,5,%2, qm, dx, dl, error, in, shift, round - mova m2, [qmq ] - mova m3, [qmq + 0x10] - mova m4, [dxq ] - mova m5, [dxq + 0x10] - - movd m6, [errorq] ; if (filter->error < 0) { - SPLATD m6 ; for (int i = 0; i < 8; i++) - psignd m0, m4, m6 ; filter->qm[i] -= filter->dx[i]; - psignd m1, m5, m6 ; } else if (filter->error > 0) { - paddd m2, m0 ; for (int i = 0; i < 8; i++) - paddd m3, m1 ; filter->qm[i] += filter->dx[i]; - mova [qmq ], m2 ; } - mova [qmq + 0x10], m3 ; - - mova m0, [dlq ] - mova m1, [dlq + 0x10] - -%if cpuflag(sse4) - pmulld m2, m0 - pmulld m3, m1 -%else - pshufd m6, m0, 0xb1 - pshufd m7, m2, 0xb1 - pmuludq m6, m7 - pshufd m6, m6, 0xd8 - pmuludq m2, m0 - pshufd m2, m2, 0xd8 - punpckldq m2, m6 - - pshufd m6, m1, 0xb1 - pshufd m7, m3, 0xb1 - pmuludq m6, m7 - pshufd m6, m6, 0xd8 - pmuludq m3, m1 - pshufd m3, m3, 0xd8 - punpckldq m3, m6 -%endif - ; Using horizontal add (phaddd) seems to be slower than shuffling stuff around - paddd m2, m3 ; int sum = filter->round + - ; filter->dl[0] * filter->qm[0] + - pshufd m3, m2, 0xe ; filter->dl[1] * filter->qm[1] + - paddd m2, m3 ; filter->dl[2] * filter->qm[2] + - ; filter->dl[3] * filter->qm[3] + - movd m6, roundm ; filter->dl[4] * filter->qm[4] + - paddd m6, m2 ; filter->dl[5] * filter->qm[5] + - pshufd m2, m2, 0x1 ; filter->dl[6] * filter->qm[6] + - paddd m6, m2 ; filter->dl[7] * filter->qm[7]; - - palignr m5, m4, 4 ; filter->dx[0] = filter->dx[1]; filter->dx[1] = filter->dx[2]; - ; filter->dx[2] = filter->dx[3]; filter->dx[3] = filter->dx[4]; - - palignr m2, m1, m0, 4 ; filter->dl[0] = filter->dl[1]; filter->dl[1] = filter->dl[2]; - ; filter->dl[2] = filter->dl[3]; filter->dl[3] = filter->dl[4]; - - psrad m4, m1, 30 ; filter->dx[4] = ((filter->dl[4] >> 30) | 1); - por m4, [pd_1224 ] ; filter->dx[5] = ((filter->dl[5] >> 30) | 2) & ~1; - pand m4, [pd_n0113] ; filter->dx[6] = ((filter->dl[6] >> 30) | 2) & ~1; - ; filter->dx[7] = ((filter->dl[7] >> 30) | 4) & ~3; - - mova [dlq ], m2 - mova [dxq ], m5 - mova [dxq + 0x10], m4 - - movd m2, shiftm ; - movd m0, [inq] ; - psrad m6, m2 ; - psubd m3, m0, m6 ; - movd [inq], m3 ; *in -= (sum >> filter->shift); - movd [errorq], m3 ; filter->error = *in; - - psrldq m1, 4 ; - pslldq m0, 12 ; filter->dl[4] = -filter->dl[5]; - pshufd m0, m0, 0xf0 ; filter->dl[5] = -filter->dl[6]; - psubd m0, m1 ; filter->dl[6] = *in - filter->dl[7]; - psrldq m1, m0, 4 ; filter->dl[7] = *in; - pshufd m1, m1, 0xf4 ; filter->dl[5] += filter->dl[6]; - paddd m0, m1 ; filter->dl[4] += filter->dl[5]; - psrldq m1, 4 ; - paddd m0, m1 ; - mova [dlq + 0x10], m0 ; - RET -%endmacro - -TTAENC_FILTER ssse3, 8 -TTAENC_FILTER sse4, 7 diff --git a/libavcodec/x86/utvideodsp.asm b/libavcodec/x86/utvideodsp.asm deleted file mode 100644 index b799c44b64..0000000000 --- a/libavcodec/x86/utvideodsp.asm +++ /dev/null @@ -1,137 +0,0 @@ -;****************************************************************************** -;* SIMD-optimized UTVideo functions -;* Copyright (c) 2017 Paul B Mahol -;* Copyright (c) 2017 Jokyo Images -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pb_80 -cextern pw_512 -cextern pw_1023 - -SECTION .text - -;------------------------------------------------------------------------------------------- -; void restore_rgb_planes(uint8_t *src_r, uint8_t *src_g, uint8_t *src_b, -; ptrdiff_t linesize_r, ptrdiff_t linesize_g, ptrdiff_t linesize_b, -; int width, int height) -;------------------------------------------------------------------------------------------- -%macro RESTORE_RGB_PLANES 0 -cglobal restore_rgb_planes, 7 + ARCH_X86_64, 7 + ARCH_X86_64 * 2, 4, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x - movsxdifnidn wq, wd - add src_rq, wq - add src_gq, wq - add src_bq, wq - neg wq -%if ARCH_X86_64 == 0 - mov wm, wq -DEFINE_ARGS src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, x -%define wq r6m -%define hd r7mp -%endif - mova m3, [pb_80] -.nextrow: - mov xq, wq - - .loop: - mova m0, [src_rq + xq] - mova m1, [src_gq + xq] - mova m2, [src_bq + xq] - psubb m1, m3 - paddb m0, m1 - paddb m2, m1 - mova [src_rq+xq], m0 - mova [src_bq+xq], m2 - add xq, mmsize - jl .loop - - add src_rq, linesize_rq - add src_gq, linesize_gq - add src_bq, linesize_bq - sub hd, 1 - jg .nextrow - REP_RET -%endmacro - -INIT_XMM sse2 -RESTORE_RGB_PLANES - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -RESTORE_RGB_PLANES -%endif - -;------------------------------------------------------------------------------------------- -; void restore_rgb_planes10(uint16_t *src_r, uint16_t *src_g, uint16_t *src_b, -; ptrdiff_t linesize_r, ptrdiff_t linesize_g, ptrdiff_t linesize_b, -; int width, int height) -;------------------------------------------------------------------------------------------- -%macro RESTORE_RGB_PLANES10 0 -cglobal restore_rgb_planes10, 7 + ARCH_X86_64, 7 + ARCH_X86_64 * 2, 5, src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, w, h, x - shl wd, 1 - shl linesize_rq, 1 - shl linesize_gq, 1 - shl linesize_bq, 1 - add src_rq, wq - add src_gq, wq - add src_bq, wq - mova m3, [pw_512] - mova m4, [pw_1023] - neg wq -%if ARCH_X86_64 == 0 - mov wm, wq -DEFINE_ARGS src_r, src_g, src_b, linesize_r, linesize_g, linesize_b, x -%define wq r6m -%define hd r7mp -%endif -.nextrow: - mov xq, wq - - .loop: - mova m0, [src_rq + xq] - mova m1, [src_gq + xq] - mova m2, [src_bq + xq] - psubw m1, m3 - paddw m0, m1 - paddw m2, m1 - pand m0, m4 - pand m2, m4 - mova [src_rq+xq], m0 - mova [src_bq+xq], m2 - add xq, mmsize - jl .loop - - add src_rq, linesize_rq - add src_gq, linesize_gq - add src_bq, linesize_bq - sub hd, 1 - jg .nextrow - REP_RET -%endmacro - -INIT_XMM sse2 -RESTORE_RGB_PLANES10 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -RESTORE_RGB_PLANES10 -%endif diff --git a/libavcodec/x86/v210.asm b/libavcodec/x86/v210.asm deleted file mode 100644 index 3b9e0761df..0000000000 --- a/libavcodec/x86/v210.asm +++ /dev/null @@ -1,129 +0,0 @@ -;****************************************************************************** -;* V210 SIMD unpack -;* Copyright (c) 2011 Loren Merritt -;* Copyright (c) 2011 Kieran Kunhya -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -; for AVX2 version only -v210_luma_permute: dd 0,1,2,4,5,6,7,7 ; 32-byte alignment required -v210_chroma_shuf2: db 0,1,2,3,4,5,8,9,10,11,12,13,-1,-1,-1,-1 -v210_luma_shuf_avx2: db 0,1,4,5,6,7,8,9,12,13,14,15,-1,-1,-1,-1 -v210_chroma_shuf_avx2: db 0,1,4,5,10,11,-1,-1,2,3,8,9,12,13,-1,-1 - -v210_mult: dw 64,4,64,4,64,4,64,4 -v210_luma_shuf: db 8,9,0,1,2,3,12,13,4,5,6,7,-1,-1,-1,-1 -v210_chroma_shuf: db 0,1,8,9,6,7,-1,-1,2,3,4,5,12,13,-1,-1 - -SECTION .text - -%macro v210_planar_unpack 1 - -; v210_planar_unpack(const uint32_t *src, uint16_t *y, uint16_t *u, uint16_t *v, int width) -cglobal v210_planar_unpack_%1, 5, 5, 6 + 2 * cpuflag(avx2), src, y, u, v, w - movsxdifnidn wq, wd - lea yq, [yq+2*wq] - add uq, wq - add vq, wq - neg wq - - VBROADCASTI128 m3, [v210_mult] - -%if cpuflag(avx2) - VBROADCASTI128 m4, [v210_luma_shuf_avx2] - VBROADCASTI128 m5, [v210_chroma_shuf_avx2] - mova m6, [v210_luma_permute] - VBROADCASTI128 m7, [v210_chroma_shuf2] -%else - VBROADCASTI128 m4, [v210_luma_shuf] - VBROADCASTI128 m5, [v210_chroma_shuf] -%endif - -.loop: -%ifidn %1, unaligned - movu m0, [srcq] ; yB v5 yA u5 y9 v4 y8 u4 y7 v3 y6 u3 y5 v2 y4 u2 y3 v1 y2 u1 y1 v0 y0 u0 -%else - mova m0, [srcq] -%endif - - pmullw m1, m0, m3 - pslld m0, 12 - psrlw m1, 6 ; yB yA u5 v4 y8 y7 v3 u3 y5 y4 u2 v1 y2 y1 v0 u0 - psrld m0, 22 ; 00 v5 00 y9 00 u4 00 y6 00 v2 00 y3 00 u1 00 y0 - -%if cpuflag(avx2) - vpblendd m2, m1, m0, 0x55 ; yB yA 00 y9 y8 y7 00 y6 y5 y4 00 y3 y2 y1 00 y0 - pshufb m2, m4 ; 00 00 yB yA y9 y8 y7 y6 00 00 y5 y4 y3 y2 y1 y0 - vpermd m2, m6, m2 ; 00 00 00 00 yB yA y9 y8 y7 y6 y5 y4 y3 y2 y1 y0 - movu [yq+2*wq], m2 - - vpblendd m1, m1, m0, 0xaa ; 00 v5 u5 v4 00 u4 v3 u3 00 v2 u2 v1 00 u1 v0 u0 - pshufb m1, m5 ; 00 v5 v4 v3 00 u5 u4 u3 00 v2 v1 v0 00 u2 u1 u0 - vpermq m1, m1, 0xd8 ; 00 v5 v4 v3 00 v2 v1 v0 00 u5 u4 u3 00 u2 u1 u0 - pshufb m1, m7 ; 00 00 v5 v4 v3 v2 v1 v0 00 00 u5 u4 u3 u2 u1 u0 - - movu [uq+wq], xm1 - vextracti128 [vq+wq], m1, 1 -%else - shufps m2, m1, m0, 0x8d ; 00 y9 00 y6 yB yA y8 y7 00 y3 00 y0 y5 y4 y2 y1 - pshufb m2, m4 ; 00 00 yB yA y9 y8 y7 y6 00 00 y5 y4 y3 y2 y1 y0 - movu [yq+2*wq], m2 - - shufps m1, m0, 0xd8 ; 00 v5 00 u4 u5 v4 v3 u3 00 v2 00 u1 u2 v1 v0 u0 - pshufb m1, m5 ; 00 v5 v4 v3 00 u5 u4 u3 00 v2 v1 v0 00 u2 u1 u0 - - movq [uq+wq], m1 - movhps [vq+wq], m1 -%endif - - add srcq, mmsize - add wq, (mmsize*3)/8 - jl .loop - - REP_RET -%endmacro - -INIT_XMM ssse3 -v210_planar_unpack unaligned - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -v210_planar_unpack unaligned -%endif - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -v210_planar_unpack unaligned -%endif - -INIT_XMM ssse3 -v210_planar_unpack aligned - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -v210_planar_unpack aligned -%endif - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -v210_planar_unpack aligned -%endif diff --git a/libavcodec/x86/v210enc.asm b/libavcodec/x86/v210enc.asm deleted file mode 100644 index 965f2bea3c..0000000000 --- a/libavcodec/x86/v210enc.asm +++ /dev/null @@ -1,184 +0,0 @@ -;****************************************************************************** -;* V210 SIMD pack -;* Copyright (c) 2014 Kieran Kunhya -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -cextern pw_4 -%define v210_enc_min_10 pw_4 -v210_enc_max_10: times 16 dw 0x3fb - -v210_enc_luma_mult_10: times 2 dw 4,1,16,4,1,16,0,0 -v210_enc_luma_shuf_10: times 2 db -1,0,1,-1,2,3,4,5,-1,6,7,-1,8,9,10,11 - -v210_enc_chroma_mult_10: times 2 dw 1,4,16,0,16,1,4,0 -v210_enc_chroma_shuf_10: times 2 db 0,1,8,9,-1,2,3,-1,10,11,4,5,-1,12,13,-1 - -cextern pb_1 -%define v210_enc_min_8 pb_1 -cextern pb_FE -%define v210_enc_max_8 pb_FE - -v210_enc_luma_shuf_8: times 2 db 6,-1,7,-1,8,-1,9,-1,10,-1,11,-1,-1,-1,-1,-1 -v210_enc_luma_mult_8: times 2 dw 16,4,64,16,4,64,0,0 - -v210_enc_chroma_shuf1_8: times 2 db 0,-1,1,-1,2,-1,3,-1,8,-1,9,-1,10,-1,11,-1 -v210_enc_chroma_shuf2_8: times 2 db 3,-1,4,-1,5,-1,7,-1,11,-1,12,-1,13,-1,15,-1 - -v210_enc_chroma_mult_8: times 2 dw 4,16,64,0,64,4,16,0 - -SECTION .text - -%macro v210_planar_pack_10 0 - -; v210_planar_pack_10(const uint16_t *y, const uint16_t *u, const uint16_t *v, uint8_t *dst, ptrdiff_t width) -cglobal v210_planar_pack_10, 5, 5, 4+cpuflag(avx2), y, u, v, dst, width - lea r0, [yq+2*widthq] - add uq, widthq - add vq, widthq - neg widthq - - mova m2, [v210_enc_min_10] - mova m3, [v210_enc_max_10] - -.loop: - movu xm0, [yq+2*widthq] -%if cpuflag(avx2) - vinserti128 m0, m0, [yq+widthq*2+12], 1 -%endif - CLIPW m0, m2, m3 - - movq xm1, [uq+widthq] - movhps xm1, [vq+widthq] -%if cpuflag(avx2) - movq xm4, [uq+widthq+6] - movhps xm4, [vq+widthq+6] - vinserti128 m1, m1, xm4, 1 -%endif - CLIPW m1, m2, m3 - - pmullw m0, [v210_enc_luma_mult_10] - pshufb m0, [v210_enc_luma_shuf_10] - - pmullw m1, [v210_enc_chroma_mult_10] - pshufb m1, [v210_enc_chroma_shuf_10] - - por m0, m1 - - movu [dstq], m0 - - add dstq, mmsize - add widthq, (mmsize*3)/8 - jl .loop - - RET -%endmacro - -%if HAVE_SSSE3_EXTERNAL -INIT_XMM ssse3 -v210_planar_pack_10 -%endif - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -v210_planar_pack_10 -%endif - -%macro v210_planar_pack_8 0 - -; v210_planar_pack_8(const uint8_t *y, const uint8_t *u, const uint8_t *v, uint8_t *dst, ptrdiff_t width) -cglobal v210_planar_pack_8, 5, 5, 7, y, u, v, dst, width - add yq, widthq - shr widthq, 1 - add uq, widthq - add vq, widthq - neg widthq - - mova m4, [v210_enc_min_8] - mova m5, [v210_enc_max_8] - pxor m6, m6 - -.loop: - movu xm1, [yq+widthq*2] -%if cpuflag(avx2) - vinserti128 m1, m1, [yq+widthq*2+12], 1 -%endif - CLIPUB m1, m4, m5 - - punpcklbw m0, m1, m6 - ; can't unpack high bytes in the same way because we process - ; only six bytes at a time - pshufb m1, [v210_enc_luma_shuf_8] - - pmullw m0, [v210_enc_luma_mult_8] - pmullw m1, [v210_enc_luma_mult_8] - pshufb m0, [v210_enc_luma_shuf_10] - pshufb m1, [v210_enc_luma_shuf_10] - - movq xm3, [uq+widthq] - movhps xm3, [vq+widthq] -%if cpuflag(avx2) - movq xm2, [uq+widthq+6] - movhps xm2, [vq+widthq+6] - vinserti128 m3, m3, xm2, 1 -%endif - CLIPUB m3, m4, m5 - - ; shuffle and multiply to get the same packing as in 10-bit - pshufb m2, m3, [v210_enc_chroma_shuf1_8] - pshufb m3, [v210_enc_chroma_shuf2_8] - - pmullw m2, [v210_enc_chroma_mult_8] - pmullw m3, [v210_enc_chroma_mult_8] - pshufb m2, [v210_enc_chroma_shuf_10] - pshufb m3, [v210_enc_chroma_shuf_10] - - por m0, m2 - por m1, m3 - - movu [dstq], xm0 - movu [dstq+16], xm1 -%if cpuflag(avx2) - vextracti128 [dstq+32], m0, 1 - vextracti128 [dstq+48], m1, 1 -%endif - - add dstq, 2*mmsize - add widthq, (mmsize*3)/8 - jl .loop - - RET -%endmacro - -%if HAVE_SSSE3_EXTERNAL -INIT_XMM ssse3 -v210_planar_pack_8 -%endif -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -v210_planar_pack_8 -%endif - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -v210_planar_pack_8 -%endif diff --git a/libavcodec/x86/vc1dsp_loopfilter.asm b/libavcodec/x86/vc1dsp_loopfilter.asm deleted file mode 100644 index fd33bd13dc..0000000000 --- a/libavcodec/x86/vc1dsp_loopfilter.asm +++ /dev/null @@ -1,317 +0,0 @@ -;****************************************************************************** -;* VC1 loopfilter optimizations -;* Copyright (c) 2009 David Conrad -;* -;* 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 "libavutil/x86/x86util.asm" - -cextern pw_4 -cextern pw_5 - -SECTION .text - -; dst_low, dst_high (src), zero -; zero-extends one vector from 8 to 16 bits -%macro UNPACK_8TO16 4 - mova m%2, m%3 - punpckh%1 m%3, m%4 - punpckl%1 m%2, m%4 -%endmacro - -%macro STORE_4_WORDS 6 -%if cpuflag(sse4) - pextrw %1, %5, %6+0 - pextrw %2, %5, %6+1 - pextrw %3, %5, %6+2 - pextrw %4, %5, %6+3 -%else - movd %6d, %5 -%if mmsize==16 - psrldq %5, 4 -%else - psrlq %5, 32 -%endif - mov %1, %6w - shr %6, 16 - mov %2, %6w - movd %6d, %5 - mov %3, %6w - shr %6, 16 - mov %4, %6w -%endif -%endmacro - -; in: p1 p0 q0 q1, clobbers p0 -; out: p1 = (2*(p1 - q1) - 5*(p0 - q0) + 4) >> 3 -%macro VC1_LOOP_FILTER_A0 4 - psubw %1, %4 - psubw %2, %3 - paddw %1, %1 - pmullw %2, [pw_5] - psubw %1, %2 - paddw %1, [pw_4] - psraw %1, 3 -%endmacro - -; in: p0 q0 a0 a1 a2 -; m0 m1 m7 m6 m5 -; %1: size -; out: m0=p0' m1=q0' -%macro VC1_FILTER 1 - PABSW m4, m7 - PABSW m3, m6 - PABSW m2, m5 - mova m6, m4 - pminsw m3, m2 - pcmpgtw m6, m3 ; if (a2 < a0 || a1 < a0) - psubw m3, m4 - pmullw m3, [pw_5] ; 5*(a3 - a0) - PABSW m2, m3 - psraw m2, 3 ; abs(d/8) - pxor m7, m3 ; d_sign ^= a0_sign - - pxor m5, m5 - movd m3, r2d -%if %1 > 4 - punpcklbw m3, m3 -%endif - punpcklbw m3, m5 - pcmpgtw m3, m4 ; if (a0 < pq) - pand m6, m3 - - mova m3, m0 - psubw m3, m1 - PABSW m4, m3 - psraw m4, 1 - pxor m3, m7 ; d_sign ^ clip_sign - psraw m3, 15 - pminsw m2, m4 ; min(d, clip) - pcmpgtw m4, m5 - pand m6, m4 ; filt3 (C return value) - -; each set of 4 pixels is not filtered if the 3rd is not -%if mmsize==16 - pshuflw m4, m6, 0xaa -%if %1 > 4 - pshufhw m4, m4, 0xaa -%endif -%else - pshufw m4, m6, 0xaa -%endif - pandn m3, m4 - pand m2, m6 - pand m3, m2 ; d final - - psraw m7, 15 - pxor m3, m7 - psubw m3, m7 - psubw m0, m3 - paddw m1, m3 - packuswb m0, m0 - packuswb m1, m1 -%endmacro - -; 1st param: size of filter -; 2nd param: mov suffix equivalent to the filter size -%macro VC1_V_LOOP_FILTER 2 - pxor m5, m5 - mov%2 m6, [r4] - mov%2 m4, [r4+r1] - mov%2 m7, [r4+2*r1] - mov%2 m0, [r4+r3] - punpcklbw m6, m5 - punpcklbw m4, m5 - punpcklbw m7, m5 - punpcklbw m0, m5 - - VC1_LOOP_FILTER_A0 m6, m4, m7, m0 - mov%2 m1, [r0] - mov%2 m2, [r0+r1] - punpcklbw m1, m5 - punpcklbw m2, m5 - mova m4, m0 - VC1_LOOP_FILTER_A0 m7, m4, m1, m2 - mov%2 m3, [r0+2*r1] - mov%2 m4, [r0+r3] - punpcklbw m3, m5 - punpcklbw m4, m5 - mova m5, m1 - VC1_LOOP_FILTER_A0 m5, m2, m3, m4 - - VC1_FILTER %1 - mov%2 [r4+r3], m0 - mov%2 [r0], m1 -%endmacro - -; 1st param: size of filter -; NOTE: UNPACK_8TO16 this number of 8 bit numbers are in half a register -; 2nd (optional) param: temp register to use for storing words -%macro VC1_H_LOOP_FILTER 1-2 -%if %1 == 4 - movq m0, [r0 -4] - movq m1, [r0+ r1-4] - movq m2, [r0+2*r1-4] - movq m3, [r0+ r3-4] - TRANSPOSE4x4B 0, 1, 2, 3, 4 -%else - movq m0, [r0 -4] - movq m4, [r0+ r1-4] - movq m1, [r0+2*r1-4] - movq m5, [r0+ r3-4] - movq m2, [r4 -4] - movq m6, [r4+ r1-4] - movq m3, [r4+2*r1-4] - movq m7, [r4+ r3-4] - punpcklbw m0, m4 - punpcklbw m1, m5 - punpcklbw m2, m6 - punpcklbw m3, m7 - TRANSPOSE4x4W 0, 1, 2, 3, 4 -%endif - pxor m5, m5 - - UNPACK_8TO16 bw, 6, 0, 5 - UNPACK_8TO16 bw, 7, 1, 5 - VC1_LOOP_FILTER_A0 m6, m0, m7, m1 - UNPACK_8TO16 bw, 4, 2, 5 - mova m0, m1 ; m0 = p0 - VC1_LOOP_FILTER_A0 m7, m1, m4, m2 - UNPACK_8TO16 bw, 1, 3, 5 - mova m5, m4 - VC1_LOOP_FILTER_A0 m5, m2, m1, m3 - SWAP 1, 4 ; m1 = q0 - - VC1_FILTER %1 - punpcklbw m0, m1 -%if %0 > 1 - STORE_4_WORDS [r0-1], [r0+r1-1], [r0+2*r1-1], [r0+r3-1], m0, %2 -%if %1 > 4 - psrldq m0, 4 - STORE_4_WORDS [r4-1], [r4+r1-1], [r4+2*r1-1], [r4+r3-1], m0, %2 -%endif -%else - STORE_4_WORDS [r0-1], [r0+r1-1], [r0+2*r1-1], [r0+r3-1], m0, 0 - STORE_4_WORDS [r4-1], [r4+r1-1], [r4+2*r1-1], [r4+r3-1], m0, 4 -%endif -%endmacro - - -%macro START_V_FILTER 0 - mov r4, r0 - lea r3, [4*r1] - sub r4, r3 - lea r3, [r1+2*r1] - imul r2, 0x01010101 -%endmacro - -%macro START_H_FILTER 1 - lea r3, [r1+2*r1] -%if %1 > 4 - lea r4, [r0+4*r1] -%endif - imul r2, 0x01010101 -%endmacro - -%macro VC1_LF 0 -cglobal vc1_v_loop_filter_internal - VC1_V_LOOP_FILTER 4, d - ret - -cglobal vc1_h_loop_filter_internal - VC1_H_LOOP_FILTER 4, r4 - ret - -; void ff_vc1_v_loop_filter4_mmxext(uint8_t *src, int stride, int pq) -cglobal vc1_v_loop_filter4, 3,5,0 - START_V_FILTER - call vc1_v_loop_filter_internal - RET - -; void ff_vc1_h_loop_filter4_mmxext(uint8_t *src, int stride, int pq) -cglobal vc1_h_loop_filter4, 3,5,0 - START_H_FILTER 4 - call vc1_h_loop_filter_internal - RET - -; void ff_vc1_v_loop_filter8_mmxext(uint8_t *src, int stride, int pq) -cglobal vc1_v_loop_filter8, 3,5,0 - START_V_FILTER - call vc1_v_loop_filter_internal - add r4, 4 - add r0, 4 - call vc1_v_loop_filter_internal - RET - -; void ff_vc1_h_loop_filter8_mmxext(uint8_t *src, int stride, int pq) -cglobal vc1_h_loop_filter8, 3,5,0 - START_H_FILTER 4 - call vc1_h_loop_filter_internal - lea r0, [r0+4*r1] - call vc1_h_loop_filter_internal - RET -%endmacro - -INIT_MMX mmxext -VC1_LF - -INIT_XMM sse2 -; void ff_vc1_v_loop_filter8_sse2(uint8_t *src, int stride, int pq) -cglobal vc1_v_loop_filter8, 3,5,8 - START_V_FILTER - VC1_V_LOOP_FILTER 8, q - RET - -; void ff_vc1_h_loop_filter8_sse2(uint8_t *src, int stride, int pq) -cglobal vc1_h_loop_filter8, 3,6,8 - START_H_FILTER 8 - VC1_H_LOOP_FILTER 8, r5 - RET - -INIT_MMX ssse3 -; void ff_vc1_v_loop_filter4_ssse3(uint8_t *src, int stride, int pq) -cglobal vc1_v_loop_filter4, 3,5,0 - START_V_FILTER - VC1_V_LOOP_FILTER 4, d - RET - -; void ff_vc1_h_loop_filter4_ssse3(uint8_t *src, int stride, int pq) -cglobal vc1_h_loop_filter4, 3,5,0 - START_H_FILTER 4 - VC1_H_LOOP_FILTER 4, r4 - RET - -INIT_XMM ssse3 -; void ff_vc1_v_loop_filter8_ssse3(uint8_t *src, int stride, int pq) -cglobal vc1_v_loop_filter8, 3,5,8 - START_V_FILTER - VC1_V_LOOP_FILTER 8, q - RET - -; void ff_vc1_h_loop_filter8_ssse3(uint8_t *src, int stride, int pq) -cglobal vc1_h_loop_filter8, 3,6,8 - START_H_FILTER 8 - VC1_H_LOOP_FILTER 8, r5 - RET - -INIT_XMM sse4 -; void ff_vc1_h_loop_filter8_sse4(uint8_t *src, int stride, int pq) -cglobal vc1_h_loop_filter8, 3,5,8 - START_H_FILTER 8 - VC1_H_LOOP_FILTER 8 - RET diff --git a/libavcodec/x86/vc1dsp_mc.asm b/libavcodec/x86/vc1dsp_mc.asm deleted file mode 100644 index 0e6d87dd8b..0000000000 --- a/libavcodec/x86/vc1dsp_mc.asm +++ /dev/null @@ -1,292 +0,0 @@ -;****************************************************************************** -;* VC1 motion compensation optimizations -;* Copyright (c) 2007 Christophe GISQUET -;* -;* 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 "libavutil/x86/x86util.asm" - -cextern pw_9 -cextern pw_128 - -SECTION .text - -%if HAVE_MMX_INLINE - -; XXX some of these macros are not used right now, but they will in the future -; when more functions are ported. - -%macro OP_PUT 2 ; dst, src -%endmacro - -%macro OP_AVG 2 ; dst, src - pavgb %1, %2 -%endmacro - -%macro NORMALIZE_MMX 1 ; shift - paddw m3, m7 ; +bias-r - paddw m4, m7 ; +bias-r - psraw m3, %1 - psraw m4, %1 -%endmacro - -%macro TRANSFER_DO_PACK 2 ; op, dst - packuswb m3, m4 - %1 m3, [%2] - mova [%2], m3 -%endmacro - -%macro TRANSFER_DONT_PACK 2 ; op, dst - %1 m3, [%2] - %1 m3, [%2 + mmsize] - mova [%2], m3 - mova [mmsize + %2], m4 -%endmacro - -; see MSPEL_FILTER13_CORE for use as UNPACK macro -%macro DO_UNPACK 1 ; reg - punpcklbw %1, m0 -%endmacro -%macro DONT_UNPACK 1 ; reg -%endmacro - -; Compute the rounder 32-r or 8-r and unpacks it to m7 -%macro LOAD_ROUNDER_MMX 1 ; round - movd m7, %1 - punpcklwd m7, m7 - punpckldq m7, m7 -%endmacro - -%macro SHIFT2_LINE 5 ; off, r0, r1, r2, r3 - paddw m%3, m%4 - movh m%2, [srcq + stride_neg2] - pmullw m%3, m6 - punpcklbw m%2, m0 - movh m%5, [srcq + strideq] - psubw m%3, m%2 - punpcklbw m%5, m0 - paddw m%3, m7 - psubw m%3, m%5 - psraw m%3, shift - movu [dstq + %1], m%3 - add srcq, strideq -%endmacro - -INIT_MMX mmx -; void ff_vc1_put_ver_16b_shift2_mmx(int16_t *dst, const uint8_t *src, -; x86_reg stride, int rnd, int64_t shift) -; Sacrificing m6 makes it possible to pipeline loads from src -%if ARCH_X86_32 -cglobal vc1_put_ver_16b_shift2, 3,6,0, dst, src, stride - DECLARE_REG_TMP 3, 4, 5 - %define rnd r3mp - %define shift qword r4m -%else ; X86_64 -cglobal vc1_put_ver_16b_shift2, 4,7,0, dst, src, stride - DECLARE_REG_TMP 4, 5, 6 - %define rnd r3d - ; We need shift either in memory or in a mm reg as it's used in psraw - ; On WIN64, the arg is already on the stack - ; On UNIX64, m5 doesn't seem to be used -%if WIN64 - %define shift r4mp -%else ; UNIX64 - %define shift m5 - mova shift, r4q -%endif ; WIN64 -%endif ; X86_32 -%define stride_neg2 t0q -%define stride_9minus4 t1q -%define i t2q - mov stride_neg2, strideq - neg stride_neg2 - add stride_neg2, stride_neg2 - lea stride_9minus4, [strideq * 9 - 4] - mov i, 3 - LOAD_ROUNDER_MMX rnd - mova m6, [pw_9] - pxor m0, m0 -.loop: - movh m2, [srcq] - add srcq, strideq - movh m3, [srcq] - punpcklbw m2, m0 - punpcklbw m3, m0 - SHIFT2_LINE 0, 1, 2, 3, 4 - SHIFT2_LINE 24, 2, 3, 4, 1 - SHIFT2_LINE 48, 3, 4, 1, 2 - SHIFT2_LINE 72, 4, 1, 2, 3 - SHIFT2_LINE 96, 1, 2, 3, 4 - SHIFT2_LINE 120, 2, 3, 4, 1 - SHIFT2_LINE 144, 3, 4, 1, 2 - SHIFT2_LINE 168, 4, 1, 2, 3 - sub srcq, stride_9minus4 - add dstq, 8 - dec i - jnz .loop - REP_RET -%undef rnd -%undef shift -%undef stride_neg2 -%undef stride_9minus4 -%undef i - -; void ff_vc1_*_hor_16b_shift2_mmx(uint8_t *dst, x86_reg stride, -; const int16_t *src, int rnd); -; Data is already unpacked, so some operations can directly be made from -; memory. -%macro HOR_16B_SHIFT2 2 ; op, opname -cglobal vc1_%2_hor_16b_shift2, 4, 5, 0, dst, stride, src, rnd, h - mov hq, 8 - sub srcq, 2 - sub rndd, (-1+9+9-1) * 1024 ; add -1024 bias - LOAD_ROUNDER_MMX rndd - mova m5, [pw_9] - mova m6, [pw_128] - pxor m0, m0 - -.loop: - mova m1, [srcq + 2 * 0] - mova m2, [srcq + 2 * 0 + mmsize] - mova m3, [srcq + 2 * 1] - mova m4, [srcq + 2 * 1 + mmsize] - paddw m3, [srcq + 2 * 2] - paddw m4, [srcq + 2 * 2 + mmsize] - paddw m1, [srcq + 2 * 3] - paddw m2, [srcq + 2 * 3 + mmsize] - pmullw m3, m5 - pmullw m4, m5 - psubw m3, m1 - psubw m4, m2 - NORMALIZE_MMX 7 - ; remove bias - paddw m3, m6 - paddw m4, m6 - TRANSFER_DO_PACK %1, dstq - add srcq, 24 - add dstq, strideq - dec hq - jnz .loop - - RET -%endmacro - -INIT_MMX mmx -HOR_16B_SHIFT2 OP_PUT, put - -INIT_MMX mmxext -HOR_16B_SHIFT2 OP_AVG, avg -%endif ; HAVE_MMX_INLINE - -%macro INV_TRANS_INIT 0 - movsxdifnidn linesizeq, linesized - movd m0, blockd - SPLATW m0, m0 - pxor m1, m1 - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 - - DEFINE_ARGS dest, linesize, linesize3 - lea linesize3q, [linesizeq*3] -%endmacro - -%macro INV_TRANS_PROCESS 1 - mov%1 m2, [destq+linesizeq*0] - mov%1 m3, [destq+linesizeq*1] - mov%1 m4, [destq+linesizeq*2] - mov%1 m5, [destq+linesize3q] - paddusb m2, m0 - paddusb m3, m0 - paddusb m4, m0 - paddusb m5, m0 - psubusb m2, m1 - psubusb m3, m1 - psubusb m4, m1 - psubusb m5, m1 - mov%1 [linesizeq*0+destq], m2 - mov%1 [linesizeq*1+destq], m3 - mov%1 [linesizeq*2+destq], m4 - mov%1 [linesize3q +destq], m5 -%endmacro - -; ff_vc1_inv_trans_?x?_dc_mmxext(uint8_t *dest, ptrdiff_t linesize, int16_t *block) -INIT_MMX mmxext -cglobal vc1_inv_trans_4x4_dc, 3,4,0, dest, linesize, block - movsx r3d, WORD [blockq] - mov blockd, r3d ; dc - shl blockd, 4 ; 16 * dc - lea blockd, [blockq+r3+4] ; 17 * dc + 4 - sar blockd, 3 ; >> 3 - mov r3d, blockd ; dc - shl blockd, 4 ; 16 * dc - lea blockd, [blockq+r3+64] ; 17 * dc + 64 - sar blockd, 7 ; >> 7 - - INV_TRANS_INIT - - INV_TRANS_PROCESS h - RET - -INIT_MMX mmxext -cglobal vc1_inv_trans_4x8_dc, 3,4,0, dest, linesize, block - movsx r3d, WORD [blockq] - mov blockd, r3d ; dc - shl blockd, 4 ; 16 * dc - lea blockd, [blockq+r3+4] ; 17 * dc + 4 - sar blockd, 3 ; >> 3 - shl blockd, 2 ; 4 * dc - lea blockd, [blockq*3+64] ; 12 * dc + 64 - sar blockd, 7 ; >> 7 - - INV_TRANS_INIT - - INV_TRANS_PROCESS h - lea destq, [destq+linesizeq*4] - INV_TRANS_PROCESS h - RET - -INIT_MMX mmxext -cglobal vc1_inv_trans_8x4_dc, 3,4,0, dest, linesize, block - movsx blockd, WORD [blockq] ; dc - lea blockd, [blockq*3+1] ; 3 * dc + 1 - sar blockd, 1 ; >> 1 - mov r3d, blockd ; dc - shl blockd, 4 ; 16 * dc - lea blockd, [blockq+r3+64] ; 17 * dc + 64 - sar blockd, 7 ; >> 7 - - INV_TRANS_INIT - - INV_TRANS_PROCESS a - RET - -INIT_MMX mmxext -cglobal vc1_inv_trans_8x8_dc, 3,3,0, dest, linesize, block - movsx blockd, WORD [blockq] ; dc - lea blockd, [blockq*3+1] ; 3 * dc + 1 - sar blockd, 1 ; >> 1 - lea blockd, [blockq*3+16] ; 3 * dc + 16 - sar blockd, 5 ; >> 5 - - INV_TRANS_INIT - - INV_TRANS_PROCESS a - lea destq, [destq+linesizeq*4] - INV_TRANS_PROCESS a - RET diff --git a/libavcodec/x86/videodsp.asm b/libavcodec/x86/videodsp.asm deleted file mode 100644 index e237860700..0000000000 --- a/libavcodec/x86/videodsp.asm +++ /dev/null @@ -1,468 +0,0 @@ -;****************************************************************************** -;* Core video DSP functions -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -; slow vertical extension loop function. Works with variable-width, and -; does per-line reading/writing of source data - -%macro V_COPY_ROW 2 ; type (top/body/bottom), h -.%1_y_loop: ; do { - mov wq, r7mp ; initialize w (r7mp = wmp) -.%1_x_loop: ; do { - movu m0, [srcq+wq] ; m0 = read($mmsize) - movu [dstq+wq], m0 ; write(m0, $mmsize) - add wq, mmsize ; w -= $mmsize - cmp wq, -mmsize ; } while (w > $mmsize); - jl .%1_x_loop - movu m0, [srcq-mmsize] ; m0 = read($mmsize) - movu [dstq-mmsize], m0 ; write(m0, $mmsize) -%ifidn %1, body ; if ($type == body) { - add srcq, src_strideq ; src += src_stride -%endif ; } - add dstq, dst_strideq ; dst += dst_stride - dec %2 ; } while (--$h); - jnz .%1_y_loop -%endmacro - -%macro vvar_fn 0 -; .----. <- zero -; | | <- top is copied from first line in body of source -; |----| <- start_y -; | | <- body is copied verbatim (line-by-line) from source -; |----| <- end_y -; | | <- bottom is copied from last line in body of source -; '----' <- bh -%if ARCH_X86_64 -cglobal emu_edge_vvar, 7, 8, 1, dst, dst_stride, src, src_stride, \ - start_y, end_y, bh, w -%else ; x86-32 -cglobal emu_edge_vvar, 1, 6, 1, dst, src, start_y, end_y, bh, w -%define src_strideq r3mp -%define dst_strideq r1mp - mov srcq, r2mp - mov start_yq, r4mp - mov end_yq, r5mp - mov bhq, r6mp -%endif - sub bhq, end_yq ; bh -= end_q - sub end_yq, start_yq ; end_q -= start_q - add srcq, r7mp ; (r7mp = wmp) - add dstq, r7mp ; (r7mp = wmp) - neg r7mp ; (r7mp = wmp) - test start_yq, start_yq ; if (start_q) { - jz .body - V_COPY_ROW top, start_yq ; v_copy_row(top, start_yq) -.body: ; } - V_COPY_ROW body, end_yq ; v_copy_row(body, end_yq) - test bhq, bhq ; if (bh) { - jz .end - sub srcq, src_strideq ; src -= src_stride - V_COPY_ROW bottom, bhq ; v_copy_row(bottom, bh) -.end: ; } - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -vvar_fn -%endif - -INIT_XMM sse -vvar_fn - -%macro hvar_fn 0 -cglobal emu_edge_hvar, 5, 6, 1, dst, dst_stride, start_x, n_words, h, w - lea dstq, [dstq+n_wordsq*2] - neg n_wordsq - lea start_xq, [start_xq+n_wordsq*2] -.y_loop: ; do { -%if cpuflag(avx2) - vpbroadcastb m0, [dstq+start_xq] - mov wq, n_wordsq ; initialize w -%else - movzx wd, byte [dstq+start_xq] ; w = read(1) - imul wd, 0x01010101 ; w *= 0x01010101 - movd m0, wd - mov wq, n_wordsq ; initialize w -%if cpuflag(sse2) - pshufd m0, m0, q0000 ; splat -%else ; mmx - punpckldq m0, m0 ; splat -%endif ; mmx/sse -%endif ; avx2 -.x_loop: ; do { - movu [dstq+wq*2], m0 ; write($reg, $mmsize) - add wq, mmsize/2 ; w -= $mmsize/2 - cmp wq, -(mmsize/2) ; } while (w > $mmsize/2) - jl .x_loop - movu [dstq-mmsize], m0 ; write($reg, $mmsize) - add dstq, dst_strideq ; dst += dst_stride - dec hq ; } while (h--) - jnz .y_loop - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -hvar_fn -%endif - -INIT_XMM sse2 -hvar_fn - -%if HAVE_AVX2_EXTERNAL -INIT_XMM avx2 -hvar_fn -%endif - -; macro to read/write a horizontal number of pixels (%2) to/from registers -; on sse, - fills xmm0-15 for consecutive sets of 16 pixels -; - if (%2 & 8) fills 8 bytes into xmm$next -; - if (%2 & 4) fills 4 bytes into xmm$next -; - if (%2 & 3) fills 1, 2 or 4 bytes in eax -; on mmx, - fills mm0-7 for consecutive sets of 8 pixels -; - if (%2 & 4) fills 4 bytes into mm$next -; - if (%2 & 3) fills 1, 2 or 4 bytes in eax -; writing data out is in the same way -%macro READ_NUM_BYTES 2 -%assign %%off 0 ; offset in source buffer -%assign %%mmx_idx 0 ; mmx register index -%assign %%xmm_idx 0 ; xmm register index - -%rep %2/mmsize -%if mmsize == 16 - movu xmm %+ %%xmm_idx, [srcq+%%off] -%assign %%xmm_idx %%xmm_idx+1 -%else ; mmx - movu mm %+ %%mmx_idx, [srcq+%%off] -%assign %%mmx_idx %%mmx_idx+1 -%endif -%assign %%off %%off+mmsize -%endrep ; %2/mmsize - -%if mmsize == 16 -%if (%2-%%off) >= 8 -%if %2 > 16 && (%2-%%off) > 8 - movu xmm %+ %%xmm_idx, [srcq+%2-16] -%assign %%xmm_idx %%xmm_idx+1 -%assign %%off %2 -%else - movq mm %+ %%mmx_idx, [srcq+%%off] -%assign %%mmx_idx %%mmx_idx+1 -%assign %%off %%off+8 -%endif -%endif ; (%2-%%off) >= 8 -%endif - -%if (%2-%%off) >= 4 -%if %2 > 8 && (%2-%%off) > 4 - movq mm %+ %%mmx_idx, [srcq+%2-8] -%assign %%off %2 -%else - movd mm %+ %%mmx_idx, [srcq+%%off] -%assign %%off %%off+4 -%endif -%assign %%mmx_idx %%mmx_idx+1 -%endif ; (%2-%%off) >= 4 - -%if (%2-%%off) >= 1 -%if %2 >= 4 - movd mm %+ %%mmx_idx, [srcq+%2-4] -%elif (%2-%%off) == 1 - mov valb, [srcq+%2-1] -%elif (%2-%%off) == 2 - mov valw, [srcq+%2-2] -%else - mov valb, [srcq+%2-1] - ror vald, 16 - mov valw, [srcq+%2-3] -%endif -%endif ; (%2-%%off) >= 1 -%endmacro ; READ_NUM_BYTES - -%macro WRITE_NUM_BYTES 2 -%assign %%off 0 ; offset in destination buffer -%assign %%mmx_idx 0 ; mmx register index -%assign %%xmm_idx 0 ; xmm register index - -%rep %2/mmsize -%if mmsize == 16 - movu [dstq+%%off], xmm %+ %%xmm_idx -%assign %%xmm_idx %%xmm_idx+1 -%else ; mmx - movu [dstq+%%off], mm %+ %%mmx_idx -%assign %%mmx_idx %%mmx_idx+1 -%endif -%assign %%off %%off+mmsize -%endrep ; %2/mmsize - -%if mmsize == 16 -%if (%2-%%off) >= 8 -%if %2 > 16 && (%2-%%off) > 8 - movu [dstq+%2-16], xmm %+ %%xmm_idx -%assign %%xmm_idx %%xmm_idx+1 -%assign %%off %2 -%else - movq [dstq+%%off], mm %+ %%mmx_idx -%assign %%mmx_idx %%mmx_idx+1 -%assign %%off %%off+8 -%endif -%endif ; (%2-%%off) >= 8 -%endif - -%if (%2-%%off) >= 4 -%if %2 > 8 && (%2-%%off) > 4 - movq [dstq+%2-8], mm %+ %%mmx_idx -%assign %%off %2 -%else - movd [dstq+%%off], mm %+ %%mmx_idx -%assign %%off %%off+4 -%endif -%assign %%mmx_idx %%mmx_idx+1 -%endif ; (%2-%%off) >= 4 - -%if (%2-%%off) >= 1 -%if %2 >= 4 - movd [dstq+%2-4], mm %+ %%mmx_idx -%elif (%2-%%off) == 1 - mov [dstq+%2-1], valb -%elif (%2-%%off) == 2 - mov [dstq+%2-2], valw -%else - mov [dstq+%2-3], valw - ror vald, 16 - mov [dstq+%2-1], valb -%ifnidn %1, body - ror vald, 16 -%endif -%endif -%endif ; (%2-%%off) >= 1 -%endmacro ; WRITE_NUM_BYTES - -; vertical top/bottom extend and body copy fast loops -; these are function pointers to set-width line copy functions, i.e. -; they read a fixed number of pixels into set registers, and write -; those out into the destination buffer -%macro VERTICAL_EXTEND 2 -%assign %%n %1 -%rep 1+%2-%1 -%if %%n <= 3 -%if ARCH_X86_64 -cglobal emu_edge_vfix %+ %%n, 6, 8, 0, dst, dst_stride, src, src_stride, \ - start_y, end_y, val, bh - mov bhq, r6mp ; r6mp = bhmp -%else ; x86-32 -cglobal emu_edge_vfix %+ %%n, 0, 6, 0, val, dst, src, start_y, end_y, bh - mov dstq, r0mp - mov srcq, r2mp - mov start_yq, r4mp - mov end_yq, r5mp - mov bhq, r6mp -%define dst_strideq r1mp -%define src_strideq r3mp -%endif ; x86-64/32 -%else -%if ARCH_X86_64 -cglobal emu_edge_vfix %+ %%n, 7, 7, 1, dst, dst_stride, src, src_stride, \ - start_y, end_y, bh -%else ; x86-32 -cglobal emu_edge_vfix %+ %%n, 1, 5, 1, dst, src, start_y, end_y, bh - mov srcq, r2mp - mov start_yq, r4mp - mov end_yq, r5mp - mov bhq, r6mp -%define dst_strideq r1mp -%define src_strideq r3mp -%endif ; x86-64/32 -%endif - ; FIXME move this to c wrapper? - sub bhq, end_yq ; bh -= end_y - sub end_yq, start_yq ; end_y -= start_y - - ; extend pixels above body - test start_yq, start_yq ; if (start_y) { - jz .body_loop - READ_NUM_BYTES top, %%n ; $variable_regs = read($n) -.top_loop: ; do { - WRITE_NUM_BYTES top, %%n ; write($variable_regs, $n) - add dstq, dst_strideq ; dst += linesize - dec start_yq ; } while (--start_y) - jnz .top_loop ; } - - ; copy body pixels -.body_loop: ; do { - READ_NUM_BYTES body, %%n ; $variable_regs = read($n) - WRITE_NUM_BYTES body, %%n ; write($variable_regs, $n) - add dstq, dst_strideq ; dst += dst_stride - add srcq, src_strideq ; src += src_stride - dec end_yq ; } while (--end_y) - jnz .body_loop - - ; copy bottom pixels - test bhq, bhq ; if (block_h) { - jz .end - sub srcq, src_strideq ; src -= linesize - READ_NUM_BYTES bottom, %%n ; $variable_regs = read($n) -.bottom_loop: ; do { - WRITE_NUM_BYTES bottom, %%n ; write($variable_regs, $n) - add dstq, dst_strideq ; dst += linesize - dec bhq ; } while (--bh) - jnz .bottom_loop ; } - -.end: - RET -%assign %%n %%n+1 -%endrep ; 1+%2-%1 -%endmacro ; VERTICAL_EXTEND - -INIT_MMX mmx -VERTICAL_EXTEND 1, 15 -%if ARCH_X86_32 -VERTICAL_EXTEND 16, 22 -%endif - -INIT_XMM sse -VERTICAL_EXTEND 16, 22 - -; left/right (horizontal) fast extend functions -; these are essentially identical to the vertical extend ones above, -; just left/right separated because number of pixels to extend is -; obviously not the same on both sides. - -%macro READ_V_PIXEL 2 -%if cpuflag(avx2) - vpbroadcastb m0, %2 -%else - movzx vald, byte %2 - imul vald, 0x01010101 -%if %1 >= 8 - movd m0, vald -%if mmsize == 16 - pshufd m0, m0, q0000 -%else - punpckldq m0, m0 -%endif ; mmsize == 16 -%endif ; %1 > 16 -%endif ; avx2 -%endmacro ; READ_V_PIXEL - -%macro WRITE_V_PIXEL 2 -%assign %%off 0 - -%if %1 >= 8 - -%rep %1/mmsize - movu [%2+%%off], m0 -%assign %%off %%off+mmsize -%endrep ; %1/mmsize - -%if mmsize == 16 -%if %1-%%off >= 8 -%if %1 > 16 && %1-%%off > 8 - movu [%2+%1-16], m0 -%assign %%off %1 -%else - movq [%2+%%off], m0 -%assign %%off %%off+8 -%endif -%endif ; %1-%%off >= 8 -%endif ; mmsize == 16 - -%if %1-%%off >= 4 -%if %1 > 8 && %1-%%off > 4 - movq [%2+%1-8], m0 -%assign %%off %1 -%else - movd [%2+%%off], m0 -%assign %%off %%off+4 -%endif -%endif ; %1-%%off >= 4 - -%else ; %1 < 8 - -%rep %1/4 - mov [%2+%%off], vald -%assign %%off %%off+4 -%endrep ; %1/4 - -%endif ; %1 >=/< 8 - -%if %1-%%off == 2 -%if cpuflag(avx2) - movd [%2+%%off-2], m0 -%else - mov [%2+%%off], valw -%endif ; avx2 -%endif ; (%1-%%off)/2 -%endmacro ; WRITE_V_PIXEL - -%macro H_EXTEND 2 -%assign %%n %1 -%rep 1+(%2-%1)/2 -%if cpuflag(avx2) -cglobal emu_edge_hfix %+ %%n, 4, 4, 1, dst, dst_stride, start_x, bh -%else -cglobal emu_edge_hfix %+ %%n, 4, 5, 1, dst, dst_stride, start_x, bh, val -%endif -.loop_y: ; do { - READ_V_PIXEL %%n, [dstq+start_xq] ; $variable_regs = read($n) - WRITE_V_PIXEL %%n, dstq ; write($variable_regs, $n) - add dstq, dst_strideq ; dst += dst_stride - dec bhq ; } while (--bh) - jnz .loop_y - RET -%assign %%n %%n+2 -%endrep ; 1+(%2-%1)/2 -%endmacro ; H_EXTEND - -INIT_MMX mmx -H_EXTEND 2, 14 -%if ARCH_X86_32 -H_EXTEND 16, 22 -%endif - -INIT_XMM sse2 -H_EXTEND 16, 22 - -%if HAVE_AVX2_EXTERNAL -INIT_XMM avx2 -H_EXTEND 8, 22 -%endif - -%macro PREFETCH_FN 1 -cglobal prefetch, 3, 3, 0, buf, stride, h -.loop: - %1 [bufq] - add bufq, strideq - dec hd - jg .loop - REP_RET -%endmacro - -INIT_MMX mmxext -PREFETCH_FN prefetcht0 -%if ARCH_X86_32 -INIT_MMX 3dnow -PREFETCH_FN prefetch -%endif diff --git a/libavcodec/x86/vorbisdsp.asm b/libavcodec/x86/vorbisdsp.asm deleted file mode 100644 index d952296716..0000000000 --- a/libavcodec/x86/vorbisdsp.asm +++ /dev/null @@ -1,86 +0,0 @@ -;****************************************************************************** -;* Vorbis x86 optimizations -;* Copyright (C) 2006 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pdw_80000000: times 4 dd 0x80000000 - -SECTION .text - -%if ARCH_X86_32 -INIT_MMX 3dnow -cglobal vorbis_inverse_coupling, 3, 3, 6, mag, ang, block_size - pxor m7, m7 - lea magq, [magq+block_sizeq*4] - lea angq, [angq+block_sizeq*4] - neg block_sizeq -.loop: - mova m0, [magq+block_sizeq*4] - mova m1, [angq+block_sizeq*4] - mova m2, m0 - mova m3, m1 - pfcmpge m2, m7 ; m <= 0.0 - pfcmpge m3, m7 ; a <= 0.0 - pslld m2, 31 ; keep only the sign bit - pxor m1, m2 - mova m4, m3 - pand m3, m1 - pandn m4, m1 - pfadd m3, m0 ; a = m + ((a < 0) & (a ^ sign(m))) - pfsub m0, m4 ; m = m + ((a > 0) & (a ^ sign(m))) - mova [angq+block_sizeq*4], m3 - mova [magq+block_sizeq*4], m0 - add block_sizeq, 2 - jl .loop - femms - RET -%endif - -INIT_XMM sse -cglobal vorbis_inverse_coupling, 3, 3, 6, mag, ang, block_size - mova m5, [pdw_80000000] - shl block_sized, 2 - add magq, block_sizeq - add angq, block_sizeq - neg block_sizeq - -align 16 -.loop: - mova m0, [magq+block_sizeq] - mova m1, [angq+block_sizeq] - xorps m2, m2 - xorps m3, m3 - cmpleps m2, m0 ; m <= 0.0 - cmpleps m3, m1 ; a <= 0.0 - andps m2, m5 ; keep only the sign bit - xorps m1, m2 - mova m4, m3 - andps m3, m1 - andnps m4, m1 - addps m3, m0 ; a = m + ((a < 0) & (a ^ sign(m))) - subps m0, m4 ; m = m + ((a > 0) & (a ^ sign(m))) - mova [angq+block_sizeq], m3 - mova [magq+block_sizeq], m0 - add block_sizeq, mmsize - jl .loop - RET diff --git a/libavcodec/x86/vp3dsp.asm b/libavcodec/x86/vp3dsp.asm deleted file mode 100644 index d88d5a1edf..0000000000 --- a/libavcodec/x86/vp3dsp.asm +++ /dev/null @@ -1,742 +0,0 @@ -;****************************************************************************** -;* MMX/SSE2-optimized functions for the VP3 decoder -;* Copyright (c) 2007 Aurelien Jacobs -;* -;* 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 "libavutil/x86/x86util.asm" - -; MMX-optimized functions cribbed from the original VP3 source code. - -SECTION_RODATA - -vp3_idct_data: times 8 dw 64277 - times 8 dw 60547 - times 8 dw 54491 - times 8 dw 46341 - times 8 dw 36410 - times 8 dw 25080 - times 8 dw 12785 - -pb_7: times 8 db 0x07 -pb_1F: times 8 db 0x1f -pb_81: times 8 db 0x81 - -cextern pb_1 -cextern pb_3 -cextern pb_80 -cextern pb_FE - -cextern pw_8 - -SECTION .text - -; this is off by one or two for some cases when filter_limit is greater than 63 -; in: p0 in mm6, p1 in mm4, p2 in mm2, p3 in mm1 -; out: p1 in mm4, p2 in mm3 -%macro VP3_LOOP_FILTER 0 - movq m7, m6 - pand m6, [pb_7] ; p0&7 - psrlw m7, 3 - pand m7, [pb_1F] ; p0>>3 - movq m3, m2 ; p2 - pxor m2, m4 - pand m2, [pb_1] ; (p2^p1)&1 - movq m5, m2 - paddb m2, m2 - paddb m2, m5 ; 3*(p2^p1)&1 - paddb m2, m6 ; extra bits lost in shifts - pcmpeqb m0, m0 - pxor m1, m0 ; 255 - p3 - pavgb m1, m2 ; (256 - p3 + extrabits) >> 1 - pxor m0, m4 ; 255 - p1 - pavgb m0, m3 ; (256 + p2-p1) >> 1 - paddb m1, [pb_3] - pavgb m1, m0 ; 128+2+( p2-p1 - p3) >> 2 - pavgb m1, m0 ; 128+1+(3*(p2-p1) - p3) >> 3 - paddusb m7, m1 ; d+128+1 - movq m6, [pb_81] - psubusb m6, m7 - psubusb m7, [pb_81] - - movq m5, [r2+516] ; flim - pminub m6, m5 - pminub m7, m5 - movq m0, m6 - movq m1, m7 - paddb m6, m6 - paddb m7, m7 - pminub m6, m5 - pminub m7, m5 - psubb m6, m0 - psubb m7, m1 - paddusb m4, m7 - psubusb m4, m6 - psubusb m3, m7 - paddusb m3, m6 -%endmacro - -%macro STORE_4_WORDS 1 - movd r2d, %1 - mov [r0 -1], r2w - psrlq %1, 32 - shr r2, 16 - mov [r0+r1 -1], r2w - movd r2d, %1 - mov [r0+r1*2-1], r2w - shr r2, 16 - mov [r0+r3 -1], r2w -%endmacro - -INIT_MMX mmxext -cglobal vp3_v_loop_filter, 3, 4 - mov r3, r1 - neg r1 - movq m6, [r0+r1*2] - movq m4, [r0+r1 ] - movq m2, [r0 ] - movq m1, [r0+r3 ] - - VP3_LOOP_FILTER - - movq [r0+r1], m4 - movq [r0 ], m3 - RET - -cglobal vp3_h_loop_filter, 3, 4 - lea r3, [r1*3] - - movd m6, [r0 -2] - movd m4, [r0+r1 -2] - movd m2, [r0+r1*2-2] - movd m1, [r0+r3 -2] - lea r0, [r0+r1*4 ] - punpcklbw m6, [r0 -2] - punpcklbw m4, [r0+r1 -2] - punpcklbw m2, [r0+r1*2-2] - punpcklbw m1, [r0+r3 -2] - sub r0, r3 - sub r0, r1 - - TRANSPOSE4x4B 6, 4, 2, 1, 0 - VP3_LOOP_FILTER - SBUTTERFLY bw, 4, 3, 5 - - STORE_4_WORDS m4 - lea r0, [r0+r1*4 ] - STORE_4_WORDS m3 - RET - -%macro PAVGB_NO_RND 0 - mova m4, m0 - mova m5, m2 - pand m4, m1 - pand m5, m3 - pxor m1, m0 - pxor m3, m2 - pand m1, m6 - pand m3, m6 - psrlq m1, 1 - psrlq m3, 1 - paddb m4, m1 - paddb m5, m3 -%endmacro - -INIT_MMX mmx -cglobal put_vp_no_rnd_pixels8_l2, 5, 6, 0, dst, src1, src2, stride, h, stride3 - mova m6, [pb_FE] - lea stride3q,[strideq+strideq*2] -.loop: - mova m0, [src1q] - mova m1, [src2q] - mova m2, [src1q+strideq] - mova m3, [src2q+strideq] - PAVGB_NO_RND - mova [dstq], m4 - mova [dstq+strideq], m5 - - mova m0, [src1q+strideq*2] - mova m1, [src2q+strideq*2] - mova m2, [src1q+stride3q] - mova m3, [src2q+stride3q] - PAVGB_NO_RND - mova [dstq+strideq*2], m4 - mova [dstq+stride3q], m5 - - lea src1q, [src1q+strideq*4] - lea src2q, [src2q+strideq*4] - lea dstq, [dstq+strideq*4] - sub hd, 4 - jnz .loop - RET - -; from original comments: The Macro does IDct on 4 1-D Dcts -%macro BeginIDCT 0 - movq m2, I(3) - movq m6, C(3) - movq m4, m2 - movq m7, J(5) - pmulhw m4, m6 ; r4 = c3*i3 - i3 - movq m1, C(5) - pmulhw m6, m7 ; r6 = c3*i5 - i5 - movq m5, m1 - pmulhw m1, m2 ; r1 = c5*i3 - i3 - movq m3, I(1) - pmulhw m5, m7 ; r5 = c5*i5 - i5 - movq m0, C(1) - paddw m4, m2 ; r4 = c3*i3 - paddw m6, m7 ; r6 = c3*i5 - paddw m2, m1 ; r2 = c5*i3 - movq m1, J(7) - paddw m7, m5 ; r7 = c5*i5 - movq m5, m0 ; r5 = c1 - pmulhw m0, m3 ; r0 = c1*i1 - i1 - paddsw m4, m7 ; r4 = C = c3*i3 + c5*i5 - pmulhw m5, m1 ; r5 = c1*i7 - i7 - movq m7, C(7) - psubsw m6, m2 ; r6 = D = c3*i5 - c5*i3 - paddw m0, m3 ; r0 = c1*i1 - pmulhw m3, m7 ; r3 = c7*i1 - movq m2, I(2) - pmulhw m7, m1 ; r7 = c7*i7 - paddw m5, m1 ; r5 = c1*i7 - movq m1, m2 ; r1 = i2 - pmulhw m2, C(2) ; r2 = c2*i2 - i2 - psubsw m3, m5 ; r3 = B = c7*i1 - c1*i7 - movq m5, J(6) - paddsw m0, m7 ; r0 = A = c1*i1 + c7*i7 - movq m7, m5 ; r7 = i6 - psubsw m0, m4 ; r0 = A - C - pmulhw m5, C(2) ; r5 = c2*i6 - i6 - paddw m2, m1 ; r2 = c2*i2 - pmulhw m1, C(6) ; r1 = c6*i2 - paddsw m4, m4 ; r4 = C + C - paddsw m4, m0 ; r4 = C. = A + C - psubsw m3, m6 ; r3 = B - D - paddw m5, m7 ; r5 = c2*i6 - paddsw m6, m6 ; r6 = D + D - pmulhw m7, C(6) ; r7 = c6*i6 - paddsw m6, m3 ; r6 = D. = B + D - movq I(1), m4 ; save C. at I(1) - psubsw m1, m5 ; r1 = H = c6*i2 - c2*i6 - movq m4, C(4) - movq m5, m3 ; r5 = B - D - pmulhw m3, m4 ; r3 = (c4 - 1) * (B - D) - paddsw m7, m2 ; r3 = (c4 - 1) * (B - D) - movq I(2), m6 ; save D. at I(2) - movq m2, m0 ; r2 = A - C - movq m6, I(0) - pmulhw m0, m4 ; r0 = (c4 - 1) * (A - C) - paddw m5, m3 ; r5 = B. = c4 * (B - D) - movq m3, J(4) - psubsw m5, m1 ; r5 = B.. = B. - H - paddw m2, m0 ; r0 = A. = c4 * (A - C) - psubsw m6, m3 ; r6 = i0 - i4 - movq m0, m6 - pmulhw m6, m4 ; r6 = (c4 - 1) * (i0 - i4) - paddsw m3, m3 ; r3 = i4 + i4 - paddsw m1, m1 ; r1 = H + H - paddsw m3, m0 ; r3 = i0 + i4 - paddsw m1, m5 ; r1 = H. = B + H - pmulhw m4, m3 ; r4 = (c4 - 1) * (i0 + i4) - paddsw m6, m0 ; r6 = F = c4 * (i0 - i4) - psubsw m6, m2 ; r6 = F. = F - A. - paddsw m2, m2 ; r2 = A. + A. - movq m0, I(1) ; r0 = C. - paddsw m2, m6 ; r2 = A.. = F + A. - paddw m4, m3 ; r4 = E = c4 * (i0 + i4) - psubsw m2, m1 ; r2 = R2 = A.. - H. -%endmacro - -; RowIDCT gets ready to transpose -%macro RowIDCT 0 - BeginIDCT - movq m3, I(2) ; r3 = D. - psubsw m4, m7 ; r4 = E. = E - G - paddsw m1, m1 ; r1 = H. + H. - paddsw m7, m7 ; r7 = G + G - paddsw m1, m2 ; r1 = R1 = A.. + H. - paddsw m7, m4 ; r1 = R1 = A.. + H. - psubsw m4, m3 ; r4 = R4 = E. - D. - paddsw m3, m3 - psubsw m6, m5 ; r6 = R6 = F. - B.. - paddsw m5, m5 - paddsw m3, m4 ; r3 = R3 = E. + D. - paddsw m5, m6 ; r5 = R5 = F. + B.. - psubsw m7, m0 ; r7 = R7 = G. - C. - paddsw m0, m0 - movq I(1), m1 ; save R1 - paddsw m0, m7 ; r0 = R0 = G. + C. -%endmacro - -; Column IDCT normalizes and stores final results -%macro ColumnIDCT 0 - BeginIDCT - paddsw m2, OC_8 ; adjust R2 (and R1) for shift - paddsw m1, m1 ; r1 = H. + H. - paddsw m1, m2 ; r1 = R1 = A.. + H. - psraw m2, 4 ; r2 = NR2 - psubsw m4, m7 ; r4 = E. = E - G - psraw m1, 4 ; r1 = NR2 - movq m3, I(2) ; r3 = D. - paddsw m7, m7 ; r7 = G + G - movq I(2), m2 ; store NR2 at I2 - paddsw m7, m4 ; r7 = G. = E + G - movq I(1), m1 ; store NR1 at I1 - psubsw m4, m3 ; r4 = R4 = E. - D. - paddsw m4, OC_8 ; adjust R4 (and R3) for shift - paddsw m3, m3 ; r3 = D. + D. - paddsw m3, m4 ; r3 = R3 = E. + D. - psraw m4, 4 ; r4 = NR4 - psubsw m6, m5 ; r6 = R6 = F. - B.. - psraw m3, 4 ; r3 = NR3 - paddsw m6, OC_8 ; adjust R6 (and R5) for shift - paddsw m5, m5 ; r5 = B.. + B.. - paddsw m5, m6 ; r5 = R5 = F. + B.. - psraw m6, 4 ; r6 = NR6 - movq J(4), m4 ; store NR4 at J4 - psraw m5, 4 ; r5 = NR5 - movq I(3), m3 ; store NR3 at I3 - psubsw m7, m0 ; r7 = R7 = G. - C. - paddsw m7, OC_8 ; adjust R7 (and R0) for shift - paddsw m0, m0 ; r0 = C. + C. - paddsw m0, m7 ; r0 = R0 = G. + C. - psraw m7, 4 ; r7 = NR7 - movq J(6), m6 ; store NR6 at J6 - psraw m0, 4 ; r0 = NR0 - movq J(5), m5 ; store NR5 at J5 - movq J(7), m7 ; store NR7 at J7 - movq I(0), m0 ; store NR0 at I0 -%endmacro - -; Following macro does two 4x4 transposes in place. -; -; At entry (we assume): -; -; r0 = a3 a2 a1 a0 -; I(1) = b3 b2 b1 b0 -; r2 = c3 c2 c1 c0 -; r3 = d3 d2 d1 d0 -; -; r4 = e3 e2 e1 e0 -; r5 = f3 f2 f1 f0 -; r6 = g3 g2 g1 g0 -; r7 = h3 h2 h1 h0 -; -; At exit, we have: -; -; I(0) = d0 c0 b0 a0 -; I(1) = d1 c1 b1 a1 -; I(2) = d2 c2 b2 a2 -; I(3) = d3 c3 b3 a3 -; -; J(4) = h0 g0 f0 e0 -; J(5) = h1 g1 f1 e1 -; J(6) = h2 g2 f2 e2 -; J(7) = h3 g3 f3 e3 -; -; I(0) I(1) I(2) I(3) is the transpose of r0 I(1) r2 r3. -; J(4) J(5) J(6) J(7) is the transpose of r4 r5 r6 r7. -; -; Since r1 is free at entry, we calculate the Js first. -%macro Transpose 0 - movq m1, m4 ; r1 = e3 e2 e1 e0 - punpcklwd m4, m5 ; r4 = f1 e1 f0 e0 - movq I(0), m0 ; save a3 a2 a1 a0 - punpckhwd m1, m5 ; r1 = f3 e3 f2 e2 - movq m0, m6 ; r0 = g3 g2 g1 g0 - punpcklwd m6, m7 ; r6 = h1 g1 h0 g0 - movq m5, m4 ; r5 = f1 e1 f0 e0 - punpckldq m4, m6 ; r4 = h0 g0 f0 e0 = R4 - punpckhdq m5, m6 ; r5 = h1 g1 f1 e1 = R5 - movq m6, m1 ; r6 = f3 e3 f2 e2 - movq J(4), m4 - punpckhwd m0, m7 ; r0 = h3 g3 h2 g2 - movq J(5), m5 - punpckhdq m6, m0 ; r6 = h3 g3 f3 e3 = R7 - movq m4, I(0) ; r4 = a3 a2 a1 a0 - punpckldq m1, m0 ; r1 = h2 g2 f2 e2 = R6 - movq m5, I(1) ; r5 = b3 b2 b1 b0 - movq m0, m4 ; r0 = a3 a2 a1 a0 - movq J(7), m6 - punpcklwd m0, m5 ; r0 = b1 a1 b0 a0 - movq J(6), m1 - punpckhwd m4, m5 ; r4 = b3 a3 b2 a2 - movq m5, m2 ; r5 = c3 c2 c1 c0 - punpcklwd m2, m3 ; r2 = d1 c1 d0 c0 - movq m1, m0 ; r1 = b1 a1 b0 a0 - punpckldq m0, m2 ; r0 = d0 c0 b0 a0 = R0 - punpckhdq m1, m2 ; r1 = d1 c1 b1 a1 = R1 - movq m2, m4 ; r2 = b3 a3 b2 a2 - movq I(0), m0 - punpckhwd m5, m3 ; r5 = d3 c3 d2 c2 - movq I(1), m1 - punpckhdq m4, m5 ; r4 = d3 c3 b3 a3 = R3 - punpckldq m2, m5 ; r2 = d2 c2 b2 a2 = R2 - movq I(3), m4 - movq I(2), m2 -%endmacro - -%macro VP3_1D_IDCT_SSE2 0 - movdqa m2, I(3) ; xmm2 = i3 - movdqa m6, C(3) ; xmm6 = c3 - movdqa m4, m2 ; xmm4 = i3 - movdqa m7, I(5) ; xmm7 = i5 - pmulhw m4, m6 ; xmm4 = c3 * i3 - i3 - movdqa m1, C(5) ; xmm1 = c5 - pmulhw m6, m7 ; xmm6 = c3 * i5 - i5 - movdqa m5, m1 ; xmm5 = c5 - pmulhw m1, m2 ; xmm1 = c5 * i3 - i3 - movdqa m3, I(1) ; xmm3 = i1 - pmulhw m5, m7 ; xmm5 = c5 * i5 - i5 - movdqa m0, C(1) ; xmm0 = c1 - paddw m4, m2 ; xmm4 = c3 * i3 - paddw m6, m7 ; xmm6 = c3 * i5 - paddw m2, m1 ; xmm2 = c5 * i3 - movdqa m1, I(7) ; xmm1 = i7 - paddw m7, m5 ; xmm7 = c5 * i5 - movdqa m5, m0 ; xmm5 = c1 - pmulhw m0, m3 ; xmm0 = c1 * i1 - i1 - paddsw m4, m7 ; xmm4 = c3 * i3 + c5 * i5 = C - pmulhw m5, m1 ; xmm5 = c1 * i7 - i7 - movdqa m7, C(7) ; xmm7 = c7 - psubsw m6, m2 ; xmm6 = c3 * i5 - c5 * i3 = D - paddw m0, m3 ; xmm0 = c1 * i1 - pmulhw m3, m7 ; xmm3 = c7 * i1 - movdqa m2, I(2) ; xmm2 = i2 - pmulhw m7, m1 ; xmm7 = c7 * i7 - paddw m5, m1 ; xmm5 = c1 * i7 - movdqa m1, m2 ; xmm1 = i2 - pmulhw m2, C(2) ; xmm2 = i2 * c2 -i2 - psubsw m3, m5 ; xmm3 = c7 * i1 - c1 * i7 = B - movdqa m5, I(6) ; xmm5 = i6 - paddsw m0, m7 ; xmm0 = c1 * i1 + c7 * i7 = A - movdqa m7, m5 ; xmm7 = i6 - psubsw m0, m4 ; xmm0 = A - C - pmulhw m5, C(2) ; xmm5 = c2 * i6 - i6 - paddw m2, m1 ; xmm2 = i2 * c2 - pmulhw m1, C(6) ; xmm1 = c6 * i2 - paddsw m4, m4 ; xmm4 = C + C - paddsw m4, m0 ; xmm4 = A + C = C. - psubsw m3, m6 ; xmm3 = B - D - paddw m5, m7 ; xmm5 = c2 * i6 - paddsw m6, m6 ; xmm6 = D + D - pmulhw m7, C(6) ; xmm7 = c6 * i6 - paddsw m6, m3 ; xmm6 = B + D = D. - movdqa I(1), m4 ; Save C. at I(1) - psubsw m1, m5 ; xmm1 = c6 * i2 - c2 * i6 = H - movdqa m4, C(4) ; xmm4 = C4 - movdqa m5, m3 ; xmm5 = B - D - pmulhw m3, m4 ; xmm3 = ( c4 -1 ) * ( B - D ) - paddsw m7, m2 ; xmm7 = c2 * i2 + c6 * i6 = G - movdqa I(2), m6 ; save D. at I(2) - movdqa m2, m0 ; xmm2 = A - C - movdqa m6, I(0) ; xmm6 = i0 - pmulhw m0, m4 ; xmm0 = ( c4 - 1 ) * ( A - C ) = A. - paddw m5, m3 ; xmm5 = c4 * ( B - D ) = B. - movdqa m3, I(4) ; xmm3 = i4 - psubsw m5, m1 ; xmm5 = B. - H = B.. - paddw m2, m0 ; xmm2 = c4 * ( A - C) = A. - psubsw m6, m3 ; xmm6 = i0 - i4 - movdqa m0, m6 ; xmm0 = i0 - i4 - pmulhw m6, m4 ; xmm6 = (c4 - 1) * (i0 - i4) = F - paddsw m3, m3 ; xmm3 = i4 + i4 - paddsw m1, m1 ; xmm1 = H + H - paddsw m3, m0 ; xmm3 = i0 + i4 - paddsw m1, m5 ; xmm1 = B. + H = H. - pmulhw m4, m3 ; xmm4 = ( c4 - 1 ) * ( i0 + i4 ) - paddw m6, m0 ; xmm6 = c4 * ( i0 - i4 ) - psubsw m6, m2 ; xmm6 = F - A. = F. - paddsw m2, m2 ; xmm2 = A. + A. - movdqa m0, I(1) ; Load C. from I(1) - paddsw m2, m6 ; xmm2 = F + A. = A.. - paddw m4, m3 ; xmm4 = c4 * ( i0 + i4 ) = 3 - psubsw m2, m1 ; xmm2 = A.. - H. = R2 - ADD(m2) ; Adjust R2 and R1 before shifting - paddsw m1, m1 ; xmm1 = H. + H. - paddsw m1, m2 ; xmm1 = A.. + H. = R1 - SHIFT(m2) ; xmm2 = op2 - psubsw m4, m7 ; xmm4 = E - G = E. - SHIFT(m1) ; xmm1 = op1 - movdqa m3, I(2) ; Load D. from I(2) - paddsw m7, m7 ; xmm7 = G + G - paddsw m7, m4 ; xmm7 = E + G = G. - psubsw m4, m3 ; xmm4 = E. - D. = R4 - ADD(m4) ; Adjust R4 and R3 before shifting - paddsw m3, m3 ; xmm3 = D. + D. - paddsw m3, m4 ; xmm3 = E. + D. = R3 - SHIFT(m4) ; xmm4 = op4 - psubsw m6, m5 ; xmm6 = F. - B..= R6 - SHIFT(m3) ; xmm3 = op3 - ADD(m6) ; Adjust R6 and R5 before shifting - paddsw m5, m5 ; xmm5 = B.. + B.. - paddsw m5, m6 ; xmm5 = F. + B.. = R5 - SHIFT(m6) ; xmm6 = op6 - SHIFT(m5) ; xmm5 = op5 - psubsw m7, m0 ; xmm7 = G. - C. = R7 - ADD(m7) ; Adjust R7 and R0 before shifting - paddsw m0, m0 ; xmm0 = C. + C. - paddsw m0, m7 ; xmm0 = G. + C. - SHIFT(m7) ; xmm7 = op7 - SHIFT(m0) ; xmm0 = op0 -%endmacro - -%macro PUT_BLOCK 8 - movdqa O(0), m%1 - movdqa O(1), m%2 - movdqa O(2), m%3 - movdqa O(3), m%4 - movdqa O(4), m%5 - movdqa O(5), m%6 - movdqa O(6), m%7 - movdqa O(7), m%8 -%endmacro - -%macro VP3_IDCT 1 -%if mmsize == 16 -%define I(x) [%1+16*x] -%define O(x) [%1+16*x] -%define C(x) [vp3_idct_data+16*(x-1)] -%define SHIFT(x) -%define ADD(x) - VP3_1D_IDCT_SSE2 -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [%1], [%1+16] -%endif - PUT_BLOCK 0, 1, 2, 3, 4, 5, 6, 7 - -%define SHIFT(x) psraw x, 4 -%define ADD(x) paddsw x, [pw_8] - VP3_1D_IDCT_SSE2 - PUT_BLOCK 0, 1, 2, 3, 4, 5, 6, 7 -%else ; mmsize == 8 - ; eax = quantized input - ; ebx = dequantizer matrix - ; ecx = IDCT constants - ; M(I) = ecx + MaskOffset(0) + I * 8 - ; C(I) = ecx + CosineOffset(32) + (I-1) * 8 - ; edx = output - ; r0..r7 = mm0..mm7 -%define OC_8 [pw_8] -%define C(x) [vp3_idct_data+16*(x-1)] - - ; at this point, function has completed dequantization + dezigzag + - ; partial transposition; now do the idct itself -%define I(x) [%1+16*x] -%define J(x) [%1+16*x] - RowIDCT - Transpose - -%define I(x) [%1+16*x+8] -%define J(x) [%1+16*x+8] - RowIDCT - Transpose - -%define I(x) [%1+16* x] -%define J(x) [%1+16*(x-4)+8] - ColumnIDCT - -%define I(x) [%1+16* x +64] -%define J(x) [%1+16*(x-4)+72] - ColumnIDCT -%endif ; mmsize == 16/8 -%endmacro - -%macro vp3_idct_funcs 0 -cglobal vp3_idct_put, 3, 4, 9 - VP3_IDCT r2 - - mova m4, [pb_80] - lea r3, [r1*3] -%assign %%i 0 -%rep 16/mmsize - mova m0, [r2+mmsize*0+%%i] - mova m1, [r2+mmsize*2+%%i] - mova m2, [r2+mmsize*4+%%i] - mova m3, [r2+mmsize*6+%%i] -%if mmsize == 8 - packsswb m0, [r2+mmsize*8+%%i] - packsswb m1, [r2+mmsize*10+%%i] - packsswb m2, [r2+mmsize*12+%%i] - packsswb m3, [r2+mmsize*14+%%i] -%else - packsswb m0, [r2+mmsize*1+%%i] - packsswb m1, [r2+mmsize*3+%%i] - packsswb m2, [r2+mmsize*5+%%i] - packsswb m3, [r2+mmsize*7+%%i] -%endif - paddb m0, m4 - paddb m1, m4 - paddb m2, m4 - paddb m3, m4 - movq [r0 ], m0 -%if mmsize == 8 - movq [r0+r1 ], m1 - movq [r0+r1*2], m2 - movq [r0+r3 ], m3 -%else - movhps [r0+r1 ], m0 - movq [r0+r1*2], m1 - movhps [r0+r3 ], m1 -%endif -%if %%i == 0 - lea r0, [r0+r1*4] -%endif -%if mmsize == 16 - movq [r0 ], m2 - movhps [r0+r1 ], m2 - movq [r0+r1*2], m3 - movhps [r0+r3 ], m3 -%endif -%assign %%i %%i+8 -%endrep - - pxor m0, m0 -%assign %%offset 0 -%rep 128/mmsize - mova [r2+%%offset], m0 -%assign %%offset %%offset+mmsize -%endrep - RET - -cglobal vp3_idct_add, 3, 4, 9 - VP3_IDCT r2 - - lea r3, [r1*3] - pxor m4, m4 -%if mmsize == 16 -%assign %%i 0 -%rep 2 - movq m0, [r0] - movq m1, [r0+r1] - movq m2, [r0+r1*2] - movq m3, [r0+r3] - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpcklbw m3, m4 - paddsw m0, [r2+ 0+%%i] - paddsw m1, [r2+16+%%i] - paddsw m2, [r2+32+%%i] - paddsw m3, [r2+48+%%i] - packuswb m0, m1 - packuswb m2, m3 - movq [r0 ], m0 - movhps [r0+r1 ], m0 - movq [r0+r1*2], m2 - movhps [r0+r3 ], m2 -%if %%i == 0 - lea r0, [r0+r1*4] -%endif -%assign %%i %%i+64 -%endrep -%else -%assign %%i 0 -%rep 2 - movq m0, [r0] - movq m1, [r0+r1] - movq m2, [r0+r1*2] - movq m3, [r0+r3] - movq m5, m0 - movq m6, m1 - movq m7, m2 - punpcklbw m0, m4 - punpcklbw m1, m4 - punpcklbw m2, m4 - punpckhbw m5, m4 - punpckhbw m6, m4 - punpckhbw m7, m4 - paddsw m0, [r2+ 0+%%i] - paddsw m1, [r2+16+%%i] - paddsw m2, [r2+32+%%i] - paddsw m5, [r2+64+%%i] - paddsw m6, [r2+80+%%i] - paddsw m7, [r2+96+%%i] - packuswb m0, m5 - movq m5, m3 - punpcklbw m3, m4 - punpckhbw m5, m4 - packuswb m1, m6 - paddsw m3, [r2+48+%%i] - paddsw m5, [r2+112+%%i] - packuswb m2, m7 - packuswb m3, m5 - movq [r0 ], m0 - movq [r0+r1 ], m1 - movq [r0+r1*2], m2 - movq [r0+r3 ], m3 -%if %%i == 0 - lea r0, [r0+r1*4] -%endif -%assign %%i %%i+8 -%endrep -%endif -%assign %%i 0 -%rep 128/mmsize - mova [r2+%%i], m4 -%assign %%i %%i+mmsize -%endrep - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -vp3_idct_funcs -%endif - -INIT_XMM sse2 -vp3_idct_funcs - -%macro DC_ADD 0 - movq m2, [r0 ] - movq m3, [r0+r1 ] - paddusb m2, m0 - movq m4, [r0+r1*2] - paddusb m3, m0 - movq m5, [r0+r2 ] - paddusb m4, m0 - paddusb m5, m0 - psubusb m2, m1 - psubusb m3, m1 - movq [r0 ], m2 - psubusb m4, m1 - movq [r0+r1 ], m3 - psubusb m5, m1 - movq [r0+r1*2], m4 - movq [r0+r2 ], m5 -%endmacro - -INIT_MMX mmxext -cglobal vp3_idct_dc_add, 3, 4 - movsx r3, word [r2] - mov word [r2], 0 - lea r2, [r1*3] - add r3, 15 - sar r3, 5 - movd m0, r3d - pshufw m0, m0, 0x0 - pxor m1, m1 - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 - DC_ADD - lea r0, [r0+r1*4] - DC_ADD - RET diff --git a/libavcodec/x86/vp6dsp.asm b/libavcodec/x86/vp6dsp.asm deleted file mode 100644 index 0be531e5c2..0000000000 --- a/libavcodec/x86/vp6dsp.asm +++ /dev/null @@ -1,167 +0,0 @@ -;****************************************************************************** -;* MMX/SSE2-optimized functions for the VP6 decoder -;* Copyright (C) 2009 Sebastien Lucas -;* Copyright (C) 2009 Zuxy Meng -;* -;* 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 "libavutil/x86/x86util.asm" - -cextern pw_64 - -SECTION .text - -%macro DIAG4 6 -%if mmsize == 8 - movq m0, [%1+%2] - movq m1, [%1+%3] - movq m3, m0 - movq m4, m1 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpckhbw m3, m7 - punpckhbw m4, m7 - pmullw m0, [rsp+8*11] ; src[x-8 ] * biweight [0] - pmullw m1, [rsp+8*12] ; src[x ] * biweight [1] - pmullw m3, [rsp+8*11] ; src[x-8 ] * biweight [0] - pmullw m4, [rsp+8*12] ; src[x ] * biweight [1] - paddw m0, m1 - paddw m3, m4 - movq m1, [%1+%4] - movq m2, [%1+%5] - movq m4, m1 - movq m5, m2 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpckhbw m4, m7 - punpckhbw m5, m7 - pmullw m1, [rsp+8*13] ; src[x+8 ] * biweight [2] - pmullw m2, [rsp+8*14] ; src[x+16] * biweight [3] - pmullw m4, [rsp+8*13] ; src[x+8 ] * biweight [2] - pmullw m5, [rsp+8*14] ; src[x+16] * biweight [3] - paddw m1, m2 - paddw m4, m5 - paddsw m0, m1 - paddsw m3, m4 - paddsw m0, m6 ; Add 64 - paddsw m3, m6 ; Add 64 - psraw m0, 7 - psraw m3, 7 - packuswb m0, m3 - movq [%6], m0 -%else ; mmsize == 16 - movq m0, [%1+%2] - movq m1, [%1+%3] - punpcklbw m0, m7 - punpcklbw m1, m7 - pmullw m0, m4 ; src[x-8 ] * biweight [0] - pmullw m1, m5 ; src[x ] * biweight [1] - paddw m0, m1 - movq m1, [%1+%4] - movq m2, [%1+%5] - punpcklbw m1, m7 - punpcklbw m2, m7 - pmullw m1, m6 ; src[x+8 ] * biweight [2] - pmullw m2, m3 ; src[x+16] * biweight [3] - paddw m1, m2 - paddsw m0, m1 - paddsw m0, [pw_64] ; Add 64 - psraw m0, 7 - packuswb m0, m0 - movq [%6], m0 -%endif ; mmsize == 8/16 -%endmacro - -%macro SPLAT4REGS 0 -%if mmsize == 8 - movq m5, m3 - punpcklwd m3, m3 - movq m4, m3 - punpckldq m3, m3 - punpckhdq m4, m4 - punpckhwd m5, m5 - movq m2, m5 - punpckhdq m2, m2 - punpckldq m5, m5 - movq [rsp+8*11], m3 - movq [rsp+8*12], m4 - movq [rsp+8*13], m5 - movq [rsp+8*14], m2 -%else ; mmsize == 16 - pshuflw m4, m3, 0x0 - pshuflw m5, m3, 0x55 - pshuflw m6, m3, 0xAA - pshuflw m3, m3, 0xFF - punpcklqdq m4, m4 - punpcklqdq m5, m5 - punpcklqdq m6, m6 - punpcklqdq m3, m3 -%endif ; mmsize == 8/16 -%endmacro - -%macro vp6_filter_diag4 0 -; void ff_vp6_filter_diag4_(uint8_t *dst, uint8_t *src, ptrdiff_t stride, -; const int16_t h_weight[4], const int16_t v_weights[4]) -cglobal vp6_filter_diag4, 5, 7, 8 - mov r5, rsp ; backup stack pointer - and rsp, ~(mmsize-1) ; align stack -%if mmsize == 16 - sub rsp, 8*11 -%else - sub rsp, 8*15 - movq m6, [pw_64] -%endif - - sub r1, r2 - - pxor m7, m7 - movq m3, [r3] - SPLAT4REGS - - mov r3, rsp - mov r6, 11 -.nextrow: - DIAG4 r1, -1, 0, 1, 2, r3 - add r3, 8 - add r1, r2 - dec r6 - jnz .nextrow - - movq m3, [r4] - SPLAT4REGS - - lea r3, [rsp+8] - mov r6, 8 -.nextcol: - DIAG4 r3, -8, 0, 8, 16, r0 - add r3, 8 - add r0, r2 - dec r6 - jnz .nextcol - - mov rsp, r5 ; restore stack pointer - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -vp6_filter_diag4 -%endif - -INIT_XMM sse2 -vp6_filter_diag4 diff --git a/libavcodec/x86/vp8dsp.asm b/libavcodec/x86/vp8dsp.asm deleted file mode 100644 index 75de5690a1..0000000000 --- a/libavcodec/x86/vp8dsp.asm +++ /dev/null @@ -1,1231 +0,0 @@ -;****************************************************************************** -;* VP8 MMXEXT optimizations -;* Copyright (c) 2010 Ronald S. Bultje -;* Copyright (c) 2010 Fiona Glaser -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -fourtap_filter_hw_m: times 4 dw -6, 123 - times 4 dw 12, -1 - times 4 dw -9, 93 - times 4 dw 50, -6 - times 4 dw -6, 50 - times 4 dw 93, -9 - times 4 dw -1, 12 - times 4 dw 123, -6 - -sixtap_filter_hw_m: times 4 dw 2, -11 - times 4 dw 108, 36 - times 4 dw -8, 1 - times 4 dw 3, -16 - times 4 dw 77, 77 - times 4 dw -16, 3 - times 4 dw 1, -8 - times 4 dw 36, 108 - times 4 dw -11, 2 - -fourtap_filter_hb_m: times 8 db -6, 123 - times 8 db 12, -1 - times 8 db -9, 93 - times 8 db 50, -6 - times 8 db -6, 50 - times 8 db 93, -9 - times 8 db -1, 12 - times 8 db 123, -6 - -sixtap_filter_hb_m: times 8 db 2, 1 - times 8 db -11, 108 - times 8 db 36, -8 - times 8 db 3, 3 - times 8 db -16, 77 - times 8 db 77, -16 - times 8 db 1, 2 - times 8 db -8, 36 - times 8 db 108, -11 - -fourtap_filter_v_m: times 8 dw -6 - times 8 dw 123 - times 8 dw 12 - times 8 dw -1 - times 8 dw -9 - times 8 dw 93 - times 8 dw 50 - times 8 dw -6 - times 8 dw -6 - times 8 dw 50 - times 8 dw 93 - times 8 dw -9 - times 8 dw -1 - times 8 dw 12 - times 8 dw 123 - times 8 dw -6 - -sixtap_filter_v_m: times 8 dw 2 - times 8 dw -11 - times 8 dw 108 - times 8 dw 36 - times 8 dw -8 - times 8 dw 1 - times 8 dw 3 - times 8 dw -16 - times 8 dw 77 - times 8 dw 77 - times 8 dw -16 - times 8 dw 3 - times 8 dw 1 - times 8 dw -8 - times 8 dw 36 - times 8 dw 108 - times 8 dw -11 - times 8 dw 2 - -bilinear_filter_vw_m: times 8 dw 1 - times 8 dw 2 - times 8 dw 3 - times 8 dw 4 - times 8 dw 5 - times 8 dw 6 - times 8 dw 7 - -bilinear_filter_vb_m: times 8 db 7, 1 - times 8 db 6, 2 - times 8 db 5, 3 - times 8 db 4, 4 - times 8 db 3, 5 - times 8 db 2, 6 - times 8 db 1, 7 - -%ifdef PIC -%define fourtap_filter_hw picregq -%define sixtap_filter_hw picregq -%define fourtap_filter_hb picregq -%define sixtap_filter_hb picregq -%define fourtap_filter_v picregq -%define sixtap_filter_v picregq -%define bilinear_filter_vw picregq -%define bilinear_filter_vb picregq -%define npicregs 1 -%else -%define fourtap_filter_hw fourtap_filter_hw_m -%define sixtap_filter_hw sixtap_filter_hw_m -%define fourtap_filter_hb fourtap_filter_hb_m -%define sixtap_filter_hb sixtap_filter_hb_m -%define fourtap_filter_v fourtap_filter_v_m -%define sixtap_filter_v sixtap_filter_v_m -%define bilinear_filter_vw bilinear_filter_vw_m -%define bilinear_filter_vb bilinear_filter_vb_m -%define npicregs 0 -%endif - -filter_h2_shuf: db 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8 -filter_h4_shuf: db 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10 - -filter_h6_shuf1: db 0, 5, 1, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12 -filter_h6_shuf2: db 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9 -filter_h6_shuf3: db 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11 - -pw_20091: times 4 dw 20091 -pw_17734: times 4 dw 17734 - -cextern pw_3 -cextern pw_4 -cextern pw_64 -cextern pw_256 - -SECTION .text - -;------------------------------------------------------------------------------- -; subpel MC functions: -; -; void ff_put_vp8_epel_hv_(uint8_t *dst, ptrdiff_t deststride, -; uint8_t *src, ptrdiff_t srcstride, -; int height, int mx, int my); -;------------------------------------------------------------------------------- - -%macro FILTER_SSSE3 1 -cglobal put_vp8_epel%1_h6, 6, 6 + npicregs, 8, dst, dststride, src, srcstride, height, mx, picreg - lea mxd, [mxq*3] - mova m3, [filter_h6_shuf2] - mova m4, [filter_h6_shuf3] -%ifdef PIC - lea picregq, [sixtap_filter_hb_m] -%endif - mova m5, [sixtap_filter_hb+mxq*8-48] ; set up 6tap filter in bytes - mova m6, [sixtap_filter_hb+mxq*8-32] - mova m7, [sixtap_filter_hb+mxq*8-16] - -.nextrow: - movu m0, [srcq-2] - mova m1, m0 - mova m2, m0 -%if mmsize == 8 -; For epel4, we need 9 bytes, but only 8 get loaded; to compensate, do the -; shuffle with a memory operand - punpcklbw m0, [srcq+3] -%else - pshufb m0, [filter_h6_shuf1] -%endif - pshufb m1, m3 - pshufb m2, m4 - pmaddubsw m0, m5 - pmaddubsw m1, m6 - pmaddubsw m2, m7 - paddsw m0, m1 - paddsw m0, m2 - pmulhrsw m0, [pw_256] - packuswb m0, m0 - movh [dstq], m0 ; store - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -cglobal put_vp8_epel%1_h4, 6, 6 + npicregs, 7, dst, dststride, src, srcstride, height, mx, picreg - shl mxd, 4 - mova m2, [pw_256] - mova m3, [filter_h2_shuf] - mova m4, [filter_h4_shuf] -%ifdef PIC - lea picregq, [fourtap_filter_hb_m] -%endif - mova m5, [fourtap_filter_hb+mxq-16] ; set up 4tap filter in bytes - mova m6, [fourtap_filter_hb+mxq] - -.nextrow: - movu m0, [srcq-1] - mova m1, m0 - pshufb m0, m3 - pshufb m1, m4 - pmaddubsw m0, m5 - pmaddubsw m1, m6 - paddsw m0, m1 - pmulhrsw m0, m2 - packuswb m0, m0 - movh [dstq], m0 ; store - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -cglobal put_vp8_epel%1_v4, 7, 7, 8, dst, dststride, src, srcstride, height, picreg, my - shl myd, 4 -%ifdef PIC - lea picregq, [fourtap_filter_hb_m] -%endif - mova m5, [fourtap_filter_hb+myq-16] - mova m6, [fourtap_filter_hb+myq] - mova m7, [pw_256] - - ; read 3 lines - sub srcq, srcstrideq - movh m0, [srcq] - movh m1, [srcq+ srcstrideq] - movh m2, [srcq+2*srcstrideq] - add srcq, srcstrideq - -.nextrow: - movh m3, [srcq+2*srcstrideq] ; read new row - mova m4, m0 - mova m0, m1 - punpcklbw m4, m1 - mova m1, m2 - punpcklbw m2, m3 - pmaddubsw m4, m5 - pmaddubsw m2, m6 - paddsw m4, m2 - mova m2, m3 - pmulhrsw m4, m7 - packuswb m4, m4 - movh [dstq], m4 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -cglobal put_vp8_epel%1_v6, 7, 7, 8, dst, dststride, src, srcstride, height, picreg, my - lea myd, [myq*3] -%ifdef PIC - lea picregq, [sixtap_filter_hb_m] -%endif - lea myq, [sixtap_filter_hb+myq*8] - - ; read 5 lines - sub srcq, srcstrideq - sub srcq, srcstrideq - movh m0, [srcq] - movh m1, [srcq+srcstrideq] - movh m2, [srcq+srcstrideq*2] - lea srcq, [srcq+srcstrideq*2] - add srcq, srcstrideq - movh m3, [srcq] - movh m4, [srcq+srcstrideq] - -.nextrow: - movh m5, [srcq+2*srcstrideq] ; read new row - mova m6, m0 - punpcklbw m6, m5 - mova m0, m1 - punpcklbw m1, m2 - mova m7, m3 - punpcklbw m7, m4 - pmaddubsw m6, [myq-48] - pmaddubsw m1, [myq-32] - pmaddubsw m7, [myq-16] - paddsw m6, m1 - paddsw m6, m7 - mova m1, m2 - mova m2, m3 - pmulhrsw m6, [pw_256] - mova m3, m4 - packuswb m6, m6 - mova m4, m5 - movh [dstq], m6 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET -%endmacro - -INIT_MMX ssse3 -FILTER_SSSE3 4 -INIT_XMM ssse3 -FILTER_SSSE3 8 - -; 4x4 block, H-only 4-tap filter -INIT_MMX mmxext -cglobal put_vp8_epel4_h4, 6, 6 + npicregs, 0, dst, dststride, src, srcstride, height, mx, picreg - shl mxd, 4 -%ifdef PIC - lea picregq, [fourtap_filter_hw_m] -%endif - movq mm4, [fourtap_filter_hw+mxq-16] ; set up 4tap filter in words - movq mm5, [fourtap_filter_hw+mxq] - movq mm7, [pw_64] - pxor mm6, mm6 - -.nextrow: - movq mm1, [srcq-1] ; (ABCDEFGH) load 8 horizontal pixels - - ; first set of 2 pixels - movq mm2, mm1 ; byte ABCD.. - punpcklbw mm1, mm6 ; byte->word ABCD - pshufw mm0, mm2, 9 ; byte CDEF.. - punpcklbw mm0, mm6 ; byte->word CDEF - pshufw mm3, mm1, 0x94 ; word ABBC - pshufw mm1, mm0, 0x94 ; word CDDE - pmaddwd mm3, mm4 ; multiply 2px with F0/F1 - movq mm0, mm1 ; backup for second set of pixels - pmaddwd mm1, mm5 ; multiply 2px with F2/F3 - paddd mm3, mm1 ; finish 1st 2px - - ; second set of 2 pixels, use backup of above - punpckhbw mm2, mm6 ; byte->word EFGH - pmaddwd mm0, mm4 ; multiply backed up 2px with F0/F1 - pshufw mm1, mm2, 0x94 ; word EFFG - pmaddwd mm1, mm5 ; multiply 2px with F2/F3 - paddd mm0, mm1 ; finish 2nd 2px - - ; merge two sets of 2 pixels into one set of 4, round/clip/store - packssdw mm3, mm0 ; merge dword->word (4px) - paddsw mm3, mm7 ; rounding - psraw mm3, 7 - packuswb mm3, mm6 ; clip and word->bytes - movd [dstq], mm3 ; store - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -; 4x4 block, H-only 6-tap filter -INIT_MMX mmxext -cglobal put_vp8_epel4_h6, 6, 6 + npicregs, 0, dst, dststride, src, srcstride, height, mx, picreg - lea mxd, [mxq*3] -%ifdef PIC - lea picregq, [sixtap_filter_hw_m] -%endif - movq mm4, [sixtap_filter_hw+mxq*8-48] ; set up 4tap filter in words - movq mm5, [sixtap_filter_hw+mxq*8-32] - movq mm6, [sixtap_filter_hw+mxq*8-16] - movq mm7, [pw_64] - pxor mm3, mm3 - -.nextrow: - movq mm1, [srcq-2] ; (ABCDEFGH) load 8 horizontal pixels - - ; first set of 2 pixels - movq mm2, mm1 ; byte ABCD.. - punpcklbw mm1, mm3 ; byte->word ABCD - pshufw mm0, mm2, 0x9 ; byte CDEF.. - punpckhbw mm2, mm3 ; byte->word EFGH - punpcklbw mm0, mm3 ; byte->word CDEF - pshufw mm1, mm1, 0x94 ; word ABBC - pshufw mm2, mm2, 0x94 ; word EFFG - pmaddwd mm1, mm4 ; multiply 2px with F0/F1 - pshufw mm3, mm0, 0x94 ; word CDDE - movq mm0, mm3 ; backup for second set of pixels - pmaddwd mm3, mm5 ; multiply 2px with F2/F3 - paddd mm1, mm3 ; add to 1st 2px cache - movq mm3, mm2 ; backup for second set of pixels - pmaddwd mm2, mm6 ; multiply 2px with F4/F5 - paddd mm1, mm2 ; finish 1st 2px - - ; second set of 2 pixels, use backup of above - movd mm2, [srcq+3] ; byte FGHI (prevent overreads) - pmaddwd mm0, mm4 ; multiply 1st backed up 2px with F0/F1 - pmaddwd mm3, mm5 ; multiply 2nd backed up 2px with F2/F3 - paddd mm0, mm3 ; add to 2nd 2px cache - pxor mm3, mm3 - punpcklbw mm2, mm3 ; byte->word FGHI - pshufw mm2, mm2, 0xE9 ; word GHHI - pmaddwd mm2, mm6 ; multiply 2px with F4/F5 - paddd mm0, mm2 ; finish 2nd 2px - - ; merge two sets of 2 pixels into one set of 4, round/clip/store - packssdw mm1, mm0 ; merge dword->word (4px) - paddsw mm1, mm7 ; rounding - psraw mm1, 7 - packuswb mm1, mm3 ; clip and word->bytes - movd [dstq], mm1 ; store - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -INIT_XMM sse2 -cglobal put_vp8_epel8_h4, 6, 6 + npicregs, 10, dst, dststride, src, srcstride, height, mx, picreg - shl mxd, 5 -%ifdef PIC - lea picregq, [fourtap_filter_v_m] -%endif - lea mxq, [fourtap_filter_v+mxq-32] - pxor m7, m7 - mova m4, [pw_64] - mova m5, [mxq+ 0] - mova m6, [mxq+16] -%ifdef m8 - mova m8, [mxq+32] - mova m9, [mxq+48] -%endif -.nextrow: - movq m0, [srcq-1] - movq m1, [srcq-0] - movq m2, [srcq+1] - movq m3, [srcq+2] - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - pmullw m0, m5 - pmullw m1, m6 -%ifdef m8 - pmullw m2, m8 - pmullw m3, m9 -%else - pmullw m2, [mxq+32] - pmullw m3, [mxq+48] -%endif - paddsw m0, m1 - paddsw m2, m3 - paddsw m0, m2 - paddsw m0, m4 - psraw m0, 7 - packuswb m0, m7 - movh [dstq], m0 ; store - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -INIT_XMM sse2 -cglobal put_vp8_epel8_h6, 6, 6 + npicregs, 14, dst, dststride, src, srcstride, height, mx, picreg - lea mxd, [mxq*3] - shl mxd, 4 -%ifdef PIC - lea picregq, [sixtap_filter_v_m] -%endif - lea mxq, [sixtap_filter_v+mxq-96] - pxor m7, m7 - mova m6, [pw_64] -%ifdef m8 - mova m8, [mxq+ 0] - mova m9, [mxq+16] - mova m10, [mxq+32] - mova m11, [mxq+48] - mova m12, [mxq+64] - mova m13, [mxq+80] -%endif -.nextrow: - movq m0, [srcq-2] - movq m1, [srcq-1] - movq m2, [srcq-0] - movq m3, [srcq+1] - movq m4, [srcq+2] - movq m5, [srcq+3] - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - punpcklbw m5, m7 -%ifdef m8 - pmullw m0, m8 - pmullw m1, m9 - pmullw m2, m10 - pmullw m3, m11 - pmullw m4, m12 - pmullw m5, m13 -%else - pmullw m0, [mxq+ 0] - pmullw m1, [mxq+16] - pmullw m2, [mxq+32] - pmullw m3, [mxq+48] - pmullw m4, [mxq+64] - pmullw m5, [mxq+80] -%endif - paddsw m1, m4 - paddsw m0, m5 - paddsw m1, m2 - paddsw m0, m3 - paddsw m0, m1 - paddsw m0, m6 - psraw m0, 7 - packuswb m0, m7 - movh [dstq], m0 ; store - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - -%macro FILTER_V 1 -; 4x4 block, V-only 4-tap filter -cglobal put_vp8_epel%1_v4, 7, 7, 8, dst, dststride, src, srcstride, height, picreg, my - shl myd, 5 -%ifdef PIC - lea picregq, [fourtap_filter_v_m] -%endif - lea myq, [fourtap_filter_v+myq-32] - mova m6, [pw_64] - pxor m7, m7 - mova m5, [myq+48] - - ; read 3 lines - sub srcq, srcstrideq - movh m0, [srcq] - movh m1, [srcq+ srcstrideq] - movh m2, [srcq+2*srcstrideq] - add srcq, srcstrideq - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - -.nextrow: - ; first calculate negative taps (to prevent losing positive overflows) - movh m4, [srcq+2*srcstrideq] ; read new row - punpcklbw m4, m7 - mova m3, m4 - pmullw m0, [myq+0] - pmullw m4, m5 - paddsw m4, m0 - - ; then calculate positive taps - mova m0, m1 - pmullw m1, [myq+16] - paddsw m4, m1 - mova m1, m2 - pmullw m2, [myq+32] - paddsw m4, m2 - mova m2, m3 - - ; round/clip/store - paddsw m4, m6 - psraw m4, 7 - packuswb m4, m7 - movh [dstq], m4 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET - - -; 4x4 block, V-only 6-tap filter -cglobal put_vp8_epel%1_v6, 7, 7, 8, dst, dststride, src, srcstride, height, picreg, my - shl myd, 4 - lea myq, [myq*3] -%ifdef PIC - lea picregq, [sixtap_filter_v_m] -%endif - lea myq, [sixtap_filter_v+myq-96] - pxor m7, m7 - - ; read 5 lines - sub srcq, srcstrideq - sub srcq, srcstrideq - movh m0, [srcq] - movh m1, [srcq+srcstrideq] - movh m2, [srcq+srcstrideq*2] - lea srcq, [srcq+srcstrideq*2] - add srcq, srcstrideq - movh m3, [srcq] - movh m4, [srcq+srcstrideq] - punpcklbw m0, m7 - punpcklbw m1, m7 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - -.nextrow: - ; first calculate negative taps (to prevent losing positive overflows) - mova m5, m1 - pmullw m5, [myq+16] - mova m6, m4 - pmullw m6, [myq+64] - paddsw m6, m5 - - ; then calculate positive taps - movh m5, [srcq+2*srcstrideq] ; read new row - punpcklbw m5, m7 - pmullw m0, [myq+0] - paddsw m6, m0 - mova m0, m1 - mova m1, m2 - pmullw m2, [myq+32] - paddsw m6, m2 - mova m2, m3 - pmullw m3, [myq+48] - paddsw m6, m3 - mova m3, m4 - mova m4, m5 - pmullw m5, [myq+80] - paddsw m6, m5 - - ; round/clip/store - paddsw m6, [pw_64] - psraw m6, 7 - packuswb m6, m7 - movh [dstq], m6 - - ; go to next line - add dstq, dststrideq - add srcq, srcstrideq - dec heightd ; next row - jg .nextrow - REP_RET -%endmacro - -INIT_MMX mmxext -FILTER_V 4 -INIT_XMM sse2 -FILTER_V 8 - -%macro FILTER_BILINEAR 1 -%if cpuflag(ssse3) -cglobal put_vp8_bilinear%1_v, 7, 7, 5, dst, dststride, src, srcstride, height, picreg, my - shl myd, 4 -%ifdef PIC - lea picregq, [bilinear_filter_vb_m] -%endif - pxor m4, m4 - mova m3, [bilinear_filter_vb+myq-16] -.nextrow: - movh m0, [srcq+srcstrideq*0] - movh m1, [srcq+srcstrideq*1] - movh m2, [srcq+srcstrideq*2] - punpcklbw m0, m1 - punpcklbw m1, m2 - pmaddubsw m0, m3 - pmaddubsw m1, m3 - psraw m0, 2 - psraw m1, 2 - pavgw m0, m4 - pavgw m1, m4 -%if mmsize==8 - packuswb m0, m0 - packuswb m1, m1 - movh [dstq+dststrideq*0], m0 - movh [dstq+dststrideq*1], m1 -%else - packuswb m0, m1 - movh [dstq+dststrideq*0], m0 - movhps [dstq+dststrideq*1], m0 -%endif -%else ; cpuflag(ssse3) -cglobal put_vp8_bilinear%1_v, 7, 7, 7, dst, dststride, src, srcstride, height, picreg, my - shl myd, 4 -%ifdef PIC - lea picregq, [bilinear_filter_vw_m] -%endif - pxor m6, m6 - mova m5, [bilinear_filter_vw+myq-1*16] - neg myq - mova m4, [bilinear_filter_vw+myq+7*16] -.nextrow: - movh m0, [srcq+srcstrideq*0] - movh m1, [srcq+srcstrideq*1] - movh m3, [srcq+srcstrideq*2] - punpcklbw m0, m6 - punpcklbw m1, m6 - punpcklbw m3, m6 - mova m2, m1 - pmullw m0, m4 - pmullw m1, m5 - pmullw m2, m4 - pmullw m3, m5 - paddsw m0, m1 - paddsw m2, m3 - psraw m0, 2 - psraw m2, 2 - pavgw m0, m6 - pavgw m2, m6 -%if mmsize == 8 - packuswb m0, m0 - packuswb m2, m2 - movh [dstq+dststrideq*0], m0 - movh [dstq+dststrideq*1], m2 -%else - packuswb m0, m2 - movh [dstq+dststrideq*0], m0 - movhps [dstq+dststrideq*1], m0 -%endif -%endif ; cpuflag(ssse3) - - lea dstq, [dstq+dststrideq*2] - lea srcq, [srcq+srcstrideq*2] - sub heightd, 2 - jg .nextrow - REP_RET - -%if cpuflag(ssse3) -cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 5, dst, dststride, src, srcstride, height, mx, picreg - shl mxd, 4 -%ifdef PIC - lea picregq, [bilinear_filter_vb_m] -%endif - pxor m4, m4 - mova m2, [filter_h2_shuf] - mova m3, [bilinear_filter_vb+mxq-16] -.nextrow: - movu m0, [srcq+srcstrideq*0] - movu m1, [srcq+srcstrideq*1] - pshufb m0, m2 - pshufb m1, m2 - pmaddubsw m0, m3 - pmaddubsw m1, m3 - psraw m0, 2 - psraw m1, 2 - pavgw m0, m4 - pavgw m1, m4 -%if mmsize==8 - packuswb m0, m0 - packuswb m1, m1 - movh [dstq+dststrideq*0], m0 - movh [dstq+dststrideq*1], m1 -%else - packuswb m0, m1 - movh [dstq+dststrideq*0], m0 - movhps [dstq+dststrideq*1], m0 -%endif -%else ; cpuflag(ssse3) -cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 7, dst, dststride, src, srcstride, height, mx, picreg - shl mxd, 4 -%ifdef PIC - lea picregq, [bilinear_filter_vw_m] -%endif - pxor m6, m6 - mova m5, [bilinear_filter_vw+mxq-1*16] - neg mxq - mova m4, [bilinear_filter_vw+mxq+7*16] -.nextrow: - movh m0, [srcq+srcstrideq*0+0] - movh m1, [srcq+srcstrideq*0+1] - movh m2, [srcq+srcstrideq*1+0] - movh m3, [srcq+srcstrideq*1+1] - punpcklbw m0, m6 - punpcklbw m1, m6 - punpcklbw m2, m6 - punpcklbw m3, m6 - pmullw m0, m4 - pmullw m1, m5 - pmullw m2, m4 - pmullw m3, m5 - paddsw m0, m1 - paddsw m2, m3 - psraw m0, 2 - psraw m2, 2 - pavgw m0, m6 - pavgw m2, m6 -%if mmsize == 8 - packuswb m0, m0 - packuswb m2, m2 - movh [dstq+dststrideq*0], m0 - movh [dstq+dststrideq*1], m2 -%else - packuswb m0, m2 - movh [dstq+dststrideq*0], m0 - movhps [dstq+dststrideq*1], m0 -%endif -%endif ; cpuflag(ssse3) - - lea dstq, [dstq+dststrideq*2] - lea srcq, [srcq+srcstrideq*2] - sub heightd, 2 - jg .nextrow - REP_RET -%endmacro - -INIT_MMX mmxext -FILTER_BILINEAR 4 -INIT_XMM sse2 -FILTER_BILINEAR 8 -INIT_MMX ssse3 -FILTER_BILINEAR 4 -INIT_XMM ssse3 -FILTER_BILINEAR 8 - -INIT_MMX mmx -cglobal put_vp8_pixels8, 5, 5, 0, dst, dststride, src, srcstride, height -.nextrow: - movq mm0, [srcq+srcstrideq*0] - movq mm1, [srcq+srcstrideq*1] - lea srcq, [srcq+srcstrideq*2] - movq [dstq+dststrideq*0], mm0 - movq [dstq+dststrideq*1], mm1 - lea dstq, [dstq+dststrideq*2] - sub heightd, 2 - jg .nextrow - REP_RET - -%if ARCH_X86_32 -INIT_MMX mmx -cglobal put_vp8_pixels16, 5, 5, 0, dst, dststride, src, srcstride, height -.nextrow: - movq mm0, [srcq+srcstrideq*0+0] - movq mm1, [srcq+srcstrideq*0+8] - movq mm2, [srcq+srcstrideq*1+0] - movq mm3, [srcq+srcstrideq*1+8] - lea srcq, [srcq+srcstrideq*2] - movq [dstq+dststrideq*0+0], mm0 - movq [dstq+dststrideq*0+8], mm1 - movq [dstq+dststrideq*1+0], mm2 - movq [dstq+dststrideq*1+8], mm3 - lea dstq, [dstq+dststrideq*2] - sub heightd, 2 - jg .nextrow - REP_RET -%endif - -INIT_XMM sse -cglobal put_vp8_pixels16, 5, 5, 2, dst, dststride, src, srcstride, height -.nextrow: - movups xmm0, [srcq+srcstrideq*0] - movups xmm1, [srcq+srcstrideq*1] - lea srcq, [srcq+srcstrideq*2] - movaps [dstq+dststrideq*0], xmm0 - movaps [dstq+dststrideq*1], xmm1 - lea dstq, [dstq+dststrideq*2] - sub heightd, 2 - jg .nextrow - REP_RET - -;----------------------------------------------------------------------------- -; void ff_vp8_idct_dc_add_(uint8_t *dst, int16_t block[16], ptrdiff_t stride); -;----------------------------------------------------------------------------- - -%macro ADD_DC 4 - %4 m2, [dst1q+%3] - %4 m3, [dst1q+strideq+%3] - %4 m4, [dst2q+%3] - %4 m5, [dst2q+strideq+%3] - paddusb m2, %1 - paddusb m3, %1 - paddusb m4, %1 - paddusb m5, %1 - psubusb m2, %2 - psubusb m3, %2 - psubusb m4, %2 - psubusb m5, %2 - %4 [dst1q+%3], m2 - %4 [dst1q+strideq+%3], m3 - %4 [dst2q+%3], m4 - %4 [dst2q+strideq+%3], m5 -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -cglobal vp8_idct_dc_add, 3, 3, 0, dst, block, stride - ; load data - movd m0, [blockq] - - ; calculate DC - paddw m0, [pw_4] - pxor m1, m1 - psraw m0, 3 - movd [blockq], m1 - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 - punpcklbw m0, m0 - punpcklbw m1, m1 - punpcklwd m0, m0 - punpcklwd m1, m1 - - ; add DC - DEFINE_ARGS dst1, dst2, stride - lea dst2q, [dst1q+strideq*2] - ADD_DC m0, m1, 0, movh - RET -%endif - -%macro VP8_IDCT_DC_ADD 0 -cglobal vp8_idct_dc_add, 3, 3, 6, dst, block, stride - ; load data - movd m0, [blockq] - pxor m1, m1 - - ; calculate DC - paddw m0, [pw_4] - movd [blockq], m1 - DEFINE_ARGS dst1, dst2, stride - lea dst2q, [dst1q+strideq*2] - movd m2, [dst1q] - movd m3, [dst1q+strideq] - movd m4, [dst2q] - movd m5, [dst2q+strideq] - psraw m0, 3 - pshuflw m0, m0, 0 - punpcklqdq m0, m0 - punpckldq m2, m3 - punpckldq m4, m5 - punpcklbw m2, m1 - punpcklbw m4, m1 - paddw m2, m0 - paddw m4, m0 - packuswb m2, m4 - movd [dst1q], m2 -%if cpuflag(sse4) - pextrd [dst1q+strideq], m2, 1 - pextrd [dst2q], m2, 2 - pextrd [dst2q+strideq], m2, 3 -%else - psrldq m2, 4 - movd [dst1q+strideq], m2 - psrldq m2, 4 - movd [dst2q], m2 - psrldq m2, 4 - movd [dst2q+strideq], m2 -%endif - RET -%endmacro - -INIT_XMM sse2 -VP8_IDCT_DC_ADD -INIT_XMM sse4 -VP8_IDCT_DC_ADD - -;----------------------------------------------------------------------------- -; void ff_vp8_idct_dc_add4y_(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride); -;----------------------------------------------------------------------------- - -%if ARCH_X86_32 -INIT_MMX mmx -cglobal vp8_idct_dc_add4y, 3, 3, 0, dst, block, stride - ; load data - movd m0, [blockq+32*0] ; A - movd m1, [blockq+32*2] ; C - punpcklwd m0, [blockq+32*1] ; A B - punpcklwd m1, [blockq+32*3] ; C D - punpckldq m0, m1 ; A B C D - pxor m6, m6 - - ; calculate DC - paddw m0, [pw_4] - movd [blockq+32*0], m6 - movd [blockq+32*1], m6 - movd [blockq+32*2], m6 - movd [blockq+32*3], m6 - psraw m0, 3 - psubw m6, m0 - packuswb m0, m0 - packuswb m6, m6 - punpcklbw m0, m0 ; AABBCCDD - punpcklbw m6, m6 ; AABBCCDD - movq m1, m0 - movq m7, m6 - punpcklbw m0, m0 ; AAAABBBB - punpckhbw m1, m1 ; CCCCDDDD - punpcklbw m6, m6 ; AAAABBBB - punpckhbw m7, m7 ; CCCCDDDD - - ; add DC - DEFINE_ARGS dst1, dst2, stride - lea dst2q, [dst1q+strideq*2] - ADD_DC m0, m6, 0, mova - ADD_DC m1, m7, 8, mova - RET -%endif - -INIT_XMM sse2 -cglobal vp8_idct_dc_add4y, 3, 3, 6, dst, block, stride - ; load data - movd m0, [blockq+32*0] ; A - movd m1, [blockq+32*2] ; C - punpcklwd m0, [blockq+32*1] ; A B - punpcklwd m1, [blockq+32*3] ; C D - punpckldq m0, m1 ; A B C D - pxor m1, m1 - - ; calculate DC - paddw m0, [pw_4] - movd [blockq+32*0], m1 - movd [blockq+32*1], m1 - movd [blockq+32*2], m1 - movd [blockq+32*3], m1 - psraw m0, 3 - psubw m1, m0 - packuswb m0, m0 - packuswb m1, m1 - punpcklbw m0, m0 - punpcklbw m1, m1 - punpcklbw m0, m0 - punpcklbw m1, m1 - - ; add DC - DEFINE_ARGS dst1, dst2, stride - lea dst2q, [dst1q+strideq*2] - ADD_DC m0, m1, 0, mova - RET - -;----------------------------------------------------------------------------- -; void ff_vp8_idct_dc_add4uv_(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride); -;----------------------------------------------------------------------------- - -INIT_MMX mmx -cglobal vp8_idct_dc_add4uv, 3, 3, 0, dst, block, stride - ; load data - movd m0, [blockq+32*0] ; A - movd m1, [blockq+32*2] ; C - punpcklwd m0, [blockq+32*1] ; A B - punpcklwd m1, [blockq+32*3] ; C D - punpckldq m0, m1 ; A B C D - pxor m6, m6 - - ; calculate DC - paddw m0, [pw_4] - movd [blockq+32*0], m6 - movd [blockq+32*1], m6 - movd [blockq+32*2], m6 - movd [blockq+32*3], m6 - psraw m0, 3 - psubw m6, m0 - packuswb m0, m0 - packuswb m6, m6 - punpcklbw m0, m0 ; AABBCCDD - punpcklbw m6, m6 ; AABBCCDD - movq m1, m0 - movq m7, m6 - punpcklbw m0, m0 ; AAAABBBB - punpckhbw m1, m1 ; CCCCDDDD - punpcklbw m6, m6 ; AAAABBBB - punpckhbw m7, m7 ; CCCCDDDD - - ; add DC - DEFINE_ARGS dst1, dst2, stride - lea dst2q, [dst1q+strideq*2] - ADD_DC m0, m6, 0, mova - lea dst1q, [dst1q+strideq*4] - lea dst2q, [dst2q+strideq*4] - ADD_DC m1, m7, 0, mova - RET - -;----------------------------------------------------------------------------- -; void ff_vp8_idct_add_(uint8_t *dst, int16_t block[16], ptrdiff_t stride); -;----------------------------------------------------------------------------- - -; calculate %1=mul_35468(%1)-mul_20091(%2); %2=mul_20091(%1)+mul_35468(%2) -; this macro assumes that m6/m7 have words for 20091/17734 loaded -%macro VP8_MULTIPLY_SUMSUB 4 - mova %3, %1 - mova %4, %2 - pmulhw %3, m6 ;20091(1) - pmulhw %4, m6 ;20091(2) - paddw %3, %1 - paddw %4, %2 - paddw %1, %1 - paddw %2, %2 - pmulhw %1, m7 ;35468(1) - pmulhw %2, m7 ;35468(2) - psubw %1, %4 - paddw %2, %3 -%endmacro - -; calculate x0=%1+%3; x1=%1-%3 -; x2=mul_35468(%2)-mul_20091(%4); x3=mul_20091(%2)+mul_35468(%4) -; %1=x0+x3 (tmp0); %2=x1+x2 (tmp1); %3=x1-x2 (tmp2); %4=x0-x3 (tmp3) -; %5/%6 are temporary registers -; we assume m6/m7 have constant words 20091/17734 loaded in them -%macro VP8_IDCT_TRANSFORM4x4_1D 6 - SUMSUB_BA w, %3, %1, %5 ;t0, t1 - VP8_MULTIPLY_SUMSUB m%2, m%4, m%5,m%6 ;t2, t3 - SUMSUB_BA w, %4, %3, %5 ;tmp0, tmp3 - SUMSUB_BA w, %2, %1, %5 ;tmp1, tmp2 - SWAP %4, %1 - SWAP %4, %3 -%endmacro - -%macro VP8_IDCT_ADD 0 -cglobal vp8_idct_add, 3, 3, 0, dst, block, stride - ; load block data - movq m0, [blockq+ 0] - movq m1, [blockq+ 8] - movq m2, [blockq+16] - movq m3, [blockq+24] - movq m6, [pw_20091] - movq m7, [pw_17734] -%if cpuflag(sse) - xorps xmm0, xmm0 - movaps [blockq+ 0], xmm0 - movaps [blockq+16], xmm0 -%else - pxor m4, m4 - movq [blockq+ 0], m4 - movq [blockq+ 8], m4 - movq [blockq+16], m4 - movq [blockq+24], m4 -%endif - - ; actual IDCT - VP8_IDCT_TRANSFORM4x4_1D 0, 1, 2, 3, 4, 5 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - paddw m0, [pw_4] - VP8_IDCT_TRANSFORM4x4_1D 0, 1, 2, 3, 4, 5 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - - ; store - pxor m4, m4 - DEFINE_ARGS dst1, dst2, stride - lea dst2q, [dst1q+2*strideq] - STORE_DIFFx2 m0, m1, m6, m7, m4, 3, dst1q, strideq - STORE_DIFFx2 m2, m3, m6, m7, m4, 3, dst2q, strideq - - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -VP8_IDCT_ADD -%endif -INIT_MMX sse -VP8_IDCT_ADD - -;----------------------------------------------------------------------------- -; void ff_vp8_luma_dc_wht(int16_t block[4][4][16], int16_t dc[16]) -;----------------------------------------------------------------------------- - -%macro SCATTER_WHT 3 - movd dc1d, m%1 - movd dc2d, m%2 - mov [blockq+2*16*(0+%3)], dc1w - mov [blockq+2*16*(1+%3)], dc2w - shr dc1d, 16 - shr dc2d, 16 - psrlq m%1, 32 - psrlq m%2, 32 - mov [blockq+2*16*(4+%3)], dc1w - mov [blockq+2*16*(5+%3)], dc2w - movd dc1d, m%1 - movd dc2d, m%2 - mov [blockq+2*16*(8+%3)], dc1w - mov [blockq+2*16*(9+%3)], dc2w - shr dc1d, 16 - shr dc2d, 16 - mov [blockq+2*16*(12+%3)], dc1w - mov [blockq+2*16*(13+%3)], dc2w -%endmacro - -%macro HADAMARD4_1D 4 - SUMSUB_BADC w, %2, %1, %4, %3 - SUMSUB_BADC w, %4, %2, %3, %1 - SWAP %1, %4, %3 -%endmacro - -%macro VP8_DC_WHT 0 -cglobal vp8_luma_dc_wht, 2, 3, 0, block, dc1, dc2 - movq m0, [dc1q] - movq m1, [dc1q+8] - movq m2, [dc1q+16] - movq m3, [dc1q+24] -%if cpuflag(sse) - xorps xmm0, xmm0 - movaps [dc1q+ 0], xmm0 - movaps [dc1q+16], xmm0 -%else - pxor m4, m4 - movq [dc1q+ 0], m4 - movq [dc1q+ 8], m4 - movq [dc1q+16], m4 - movq [dc1q+24], m4 -%endif - HADAMARD4_1D 0, 1, 2, 3 - TRANSPOSE4x4W 0, 1, 2, 3, 4 - paddw m0, [pw_3] - HADAMARD4_1D 0, 1, 2, 3 - psraw m0, 3 - psraw m1, 3 - psraw m2, 3 - psraw m3, 3 - SCATTER_WHT 0, 1, 0 - SCATTER_WHT 2, 3, 2 - RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -VP8_DC_WHT -%endif -INIT_MMX sse -VP8_DC_WHT diff --git a/libavcodec/x86/vp8dsp_loopfilter.asm b/libavcodec/x86/vp8dsp_loopfilter.asm deleted file mode 100644 index caeb405267..0000000000 --- a/libavcodec/x86/vp8dsp_loopfilter.asm +++ /dev/null @@ -1,1584 +0,0 @@ -;****************************************************************************** -;* VP8 MMXEXT optimizations -;* Copyright (c) 2010 Ronald S. Bultje -;* Copyright (c) 2010 Fiona Glaser -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_27: times 8 dw 27 -pw_63: times 8 dw 63 - -pb_4: times 16 db 4 -pb_F8: times 16 db 0xF8 -pb_FE: times 16 db 0xFE -pb_27_63: times 8 db 27, 63 -pb_18_63: times 8 db 18, 63 -pb_9_63: times 8 db 9, 63 - -cextern pb_1 -cextern pb_3 -cextern pw_9 -cextern pw_18 -cextern pb_80 - -SECTION .text - -;----------------------------------------------------------------------------- -; void ff_vp8_h/v_loop_filter_simple_(uint8_t *dst, ptrdiff_t stride, int flim); -;----------------------------------------------------------------------------- - -; macro called with 7 mm register indexes as argument, and 4 regular registers -; -; first 4 mm registers will carry the transposed pixel data -; the other three are scratchspace (one would be sufficient, but this allows -; for more spreading/pipelining and thus faster execution on OOE CPUs) -; -; first two regular registers are buf+4*stride and buf+5*stride -; third is -stride, fourth is +stride -%macro READ_8x4_INTERLEAVED 11 - ; interleave 8 (A-H) rows of 4 pixels each - movd m%1, [%8+%10*4] ; A0-3 - movd m%5, [%9+%10*4] ; B0-3 - movd m%2, [%8+%10*2] ; C0-3 - movd m%6, [%8+%10] ; D0-3 - movd m%3, [%8] ; E0-3 - movd m%7, [%9] ; F0-3 - movd m%4, [%9+%11] ; G0-3 - punpcklbw m%1, m%5 ; A/B interleaved - movd m%5, [%9+%11*2] ; H0-3 - punpcklbw m%2, m%6 ; C/D interleaved - punpcklbw m%3, m%7 ; E/F interleaved - punpcklbw m%4, m%5 ; G/H interleaved -%endmacro - -; macro called with 7 mm register indexes as argument, and 5 regular registers -; first 11 mean the same as READ_8x4_TRANSPOSED above -; fifth regular register is scratchspace to reach the bottom 8 rows, it -; will be set to second regular register + 8*stride at the end -%macro READ_16x4_INTERLEAVED 12 - ; transpose 16 (A-P) rows of 4 pixels each - lea %12, [r0+8*r2] - - ; read (and interleave) those addressable by %8 (=r0), A/C/D/E/I/K/L/M - movd m%1, [%8+%10*4] ; A0-3 - movd m%3, [%12+%10*4] ; I0-3 - movd m%2, [%8+%10*2] ; C0-3 - movd m%4, [%12+%10*2] ; K0-3 - movd m%6, [%8+%10] ; D0-3 - movd m%5, [%12+%10] ; L0-3 - movd m%7, [%12] ; M0-3 - add %12, %11 - punpcklbw m%1, m%3 ; A/I - movd m%3, [%8] ; E0-3 - punpcklbw m%2, m%4 ; C/K - punpcklbw m%6, m%5 ; D/L - punpcklbw m%3, m%7 ; E/M - punpcklbw m%2, m%6 ; C/D/K/L interleaved - - ; read (and interleave) those addressable by %9 (=r4), B/F/G/H/J/N/O/P - movd m%5, [%9+%10*4] ; B0-3 - movd m%4, [%12+%10*4] ; J0-3 - movd m%7, [%9] ; F0-3 - movd m%6, [%12] ; N0-3 - punpcklbw m%5, m%4 ; B/J - punpcklbw m%7, m%6 ; F/N - punpcklbw m%1, m%5 ; A/B/I/J interleaved - punpcklbw m%3, m%7 ; E/F/M/N interleaved - movd m%4, [%9+%11] ; G0-3 - movd m%6, [%12+%11] ; O0-3 - movd m%5, [%9+%11*2] ; H0-3 - movd m%7, [%12+%11*2] ; P0-3 - punpcklbw m%4, m%6 ; G/O - punpcklbw m%5, m%7 ; H/P - punpcklbw m%4, m%5 ; G/H/O/P interleaved -%endmacro - -; write 4 mm registers of 2 dwords each -; first four arguments are mm register indexes containing source data -; last four are registers containing buf+4*stride, buf+5*stride, -; -stride and +stride -%macro WRITE_4x2D 8 - ; write out (2 dwords per register) - movd [%5+%7*4], m%1 - movd [%5+%7*2], m%2 - movd [%5], m%3 - movd [%6+%8], m%4 - punpckhdq m%1, m%1 - punpckhdq m%2, m%2 - punpckhdq m%3, m%3 - punpckhdq m%4, m%4 - movd [%6+%7*4], m%1 - movd [%5+%7], m%2 - movd [%6], m%3 - movd [%6+%8*2], m%4 -%endmacro - -; write 4 xmm registers of 4 dwords each -; arguments same as WRITE_2x4D, but with an extra register, so that the 5 regular -; registers contain buf+4*stride, buf+5*stride, buf+12*stride, -stride and +stride -; we add 1*stride to the third regular registry in the process -; the 10th argument is 16 if it's a Y filter (i.e. all regular registers cover the -; same memory region), or 8 if they cover two separate buffers (third one points to -; a different memory region than the first two), allowing for more optimal code for -; the 16-width case -%macro WRITE_4x4D 10 - ; write out (4 dwords per register), start with dwords zero - movd [%5+%8*4], m%1 - movd [%5], m%2 - movd [%7+%8*4], m%3 - movd [%7], m%4 - - ; store dwords 1 - psrldq m%1, 4 - psrldq m%2, 4 - psrldq m%3, 4 - psrldq m%4, 4 - movd [%6+%8*4], m%1 - movd [%6], m%2 -%if %10 == 16 - movd [%6+%9*4], m%3 -%endif - movd [%7+%9], m%4 - - ; write dwords 2 - psrldq m%1, 4 - psrldq m%2, 4 -%if %10 == 8 - movd [%5+%8*2], m%1 - movd %5d, m%3 -%endif - psrldq m%3, 4 - psrldq m%4, 4 -%if %10 == 16 - movd [%5+%8*2], m%1 -%endif - movd [%6+%9], m%2 - movd [%7+%8*2], m%3 - movd [%7+%9*2], m%4 - add %7, %9 - - ; store dwords 3 - psrldq m%1, 4 - psrldq m%2, 4 - psrldq m%3, 4 - psrldq m%4, 4 -%if %10 == 8 - mov [%7+%8*4], %5d - movd [%6+%8*2], m%1 -%else - movd [%5+%8], m%1 -%endif - movd [%6+%9*2], m%2 - movd [%7+%8*2], m%3 - movd [%7+%9*2], m%4 -%endmacro - -; write 4 or 8 words in the mmx/xmm registers as 8 lines -; 1 and 2 are the registers to write, this can be the same (for SSE2) -; for pre-SSE4: -; 3 is a general-purpose register that we will clobber -; for SSE4: -; 3 is a pointer to the destination's 5th line -; 4 is a pointer to the destination's 4th line -; 5/6 is -stride and +stride -%macro WRITE_2x4W 6 - movd %3d, %1 - punpckhdq %1, %1 - mov [%4+%5*4], %3w - shr %3, 16 - add %4, %6 - mov [%4+%5*4], %3w - - movd %3d, %1 - add %4, %5 - mov [%4+%5*2], %3w - shr %3, 16 - mov [%4+%5 ], %3w - - movd %3d, %2 - punpckhdq %2, %2 - mov [%4 ], %3w - shr %3, 16 - mov [%4+%6 ], %3w - - movd %3d, %2 - add %4, %6 - mov [%4+%6 ], %3w - shr %3, 16 - mov [%4+%6*2], %3w - add %4, %5 -%endmacro - -%macro WRITE_8W 5 -%if cpuflag(sse4) - pextrw [%3+%4*4], %1, 0 - pextrw [%2+%4*4], %1, 1 - pextrw [%3+%4*2], %1, 2 - pextrw [%3+%4 ], %1, 3 - pextrw [%3 ], %1, 4 - pextrw [%2 ], %1, 5 - pextrw [%2+%5 ], %1, 6 - pextrw [%2+%5*2], %1, 7 -%else - movd %2d, %1 - psrldq %1, 4 - mov [%3+%4*4], %2w - shr %2, 16 - add %3, %5 - mov [%3+%4*4], %2w - - movd %2d, %1 - psrldq %1, 4 - add %3, %4 - mov [%3+%4*2], %2w - shr %2, 16 - mov [%3+%4 ], %2w - - movd %2d, %1 - psrldq %1, 4 - mov [%3 ], %2w - shr %2, 16 - mov [%3+%5 ], %2w - - movd %2d, %1 - add %3, %5 - mov [%3+%5 ], %2w - shr %2, 16 - mov [%3+%5*2], %2w -%endif -%endmacro - -%macro SIMPLE_LOOPFILTER 2 -cglobal vp8_%1_loop_filter_simple, 3, %2, 8, dst, stride, flim, cntr -%if mmsize == 8 ; mmx/mmxext - mov cntrq, 2 -%endif -%if cpuflag(ssse3) - pxor m0, m0 -%endif - SPLATB_REG m7, flim, m0 ; splat "flim" into register - - ; set up indexes to address 4 rows -%if mmsize == 8 - DEFINE_ARGS dst1, mstride, stride, cntr, dst2 -%else - DEFINE_ARGS dst1, mstride, stride, dst3, dst2 -%endif - mov strideq, mstrideq - neg mstrideq -%ifidn %1, h - lea dst1q, [dst1q+4*strideq-2] -%endif - -%if mmsize == 8 ; mmx / mmxext -.next8px: -%endif -%ifidn %1, v - ; read 4 half/full rows of pixels - mova m0, [dst1q+mstrideq*2] ; p1 - mova m1, [dst1q+mstrideq] ; p0 - mova m2, [dst1q] ; q0 - mova m3, [dst1q+ strideq] ; q1 -%else ; h - lea dst2q, [dst1q+ strideq] - -%if mmsize == 8 ; mmx/mmxext - READ_8x4_INTERLEAVED 0, 1, 2, 3, 4, 5, 6, dst1q, dst2q, mstrideq, strideq -%else ; sse2 - READ_16x4_INTERLEAVED 0, 1, 2, 3, 4, 5, 6, dst1q, dst2q, mstrideq, strideq, dst3q -%endif - TRANSPOSE4x4W 0, 1, 2, 3, 4 -%endif - - ; simple_limit - mova m5, m2 ; m5=backup of q0 - mova m6, m1 ; m6=backup of p0 - psubusb m1, m2 ; p0-q0 - psubusb m2, m6 ; q0-p0 - por m1, m2 ; FFABS(p0-q0) - paddusb m1, m1 ; m1=FFABS(p0-q0)*2 - - mova m4, m3 - mova m2, m0 - psubusb m3, m0 ; q1-p1 - psubusb m0, m4 ; p1-q1 - por m3, m0 ; FFABS(p1-q1) - mova m0, [pb_80] - pxor m2, m0 - pxor m4, m0 - psubsb m2, m4 ; m2=p1-q1 (signed) backup for below - pand m3, [pb_FE] - psrlq m3, 1 ; m3=FFABS(p1-q1)/2, this can be used signed - paddusb m3, m1 - psubusb m3, m7 - pxor m1, m1 - pcmpeqb m3, m1 ; abs(p0-q0)*2+abs(p1-q1)/2<=flim mask(0xff/0x0) - - ; filter_common (use m2/p1-q1, m4=q0, m6=p0, m5/q0-p0 and m3/mask) - mova m4, m5 - pxor m5, m0 - pxor m0, m6 - psubsb m5, m0 ; q0-p0 (signed) - paddsb m2, m5 - paddsb m2, m5 - paddsb m2, m5 ; a=(p1-q1) + 3*(q0-p0) - pand m2, m3 ; apply filter mask (m3) - - mova m3, [pb_F8] - mova m1, m2 - paddsb m2, [pb_4] ; f1<<3=a+4 - paddsb m1, [pb_3] ; f2<<3=a+3 - pand m2, m3 - pand m1, m3 ; cache f2<<3 - - pxor m0, m0 - pxor m3, m3 - pcmpgtb m0, m2 ; which values are <0? - psubb m3, m2 ; -f1<<3 - psrlq m2, 3 ; +f1 - psrlq m3, 3 ; -f1 - pand m3, m0 - pandn m0, m2 - psubusb m4, m0 - paddusb m4, m3 ; q0-f1 - - pxor m0, m0 - pxor m3, m3 - pcmpgtb m0, m1 ; which values are <0? - psubb m3, m1 ; -f2<<3 - psrlq m1, 3 ; +f2 - psrlq m3, 3 ; -f2 - pand m3, m0 - pandn m0, m1 - paddusb m6, m0 - psubusb m6, m3 ; p0+f2 - - ; store -%ifidn %1, v - mova [dst1q], m4 - mova [dst1q+mstrideq], m6 -%else ; h - inc dst1q - SBUTTERFLY bw, 6, 4, 0 - -%if mmsize == 16 ; sse2 -%if cpuflag(sse4) - inc dst2q -%endif - WRITE_8W m6, dst2q, dst1q, mstrideq, strideq - lea dst2q, [dst3q+mstrideq+1] -%if cpuflag(sse4) - inc dst3q -%endif - WRITE_8W m4, dst3q, dst2q, mstrideq, strideq -%else ; mmx/mmxext - WRITE_2x4W m6, m4, dst2q, dst1q, mstrideq, strideq -%endif -%endif - -%if mmsize == 8 ; mmx/mmxext - ; next 8 pixels -%ifidn %1, v - add dst1q, 8 ; advance 8 cols = pixels -%else ; h - lea dst1q, [dst1q+strideq*8-1] ; advance 8 rows = lines -%endif - dec cntrq - jg .next8px - REP_RET -%else ; sse2 - RET -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -SIMPLE_LOOPFILTER v, 4 -SIMPLE_LOOPFILTER h, 5 -INIT_MMX mmxext -SIMPLE_LOOPFILTER v, 4 -SIMPLE_LOOPFILTER h, 5 -%endif - -INIT_XMM sse2 -SIMPLE_LOOPFILTER v, 3 -SIMPLE_LOOPFILTER h, 5 -INIT_XMM ssse3 -SIMPLE_LOOPFILTER v, 3 -SIMPLE_LOOPFILTER h, 5 -INIT_XMM sse4 -SIMPLE_LOOPFILTER h, 5 - -;----------------------------------------------------------------------------- -; void ff_vp8_h/v_loop_filter_inner_(uint8_t *dst, [uint8_t *v,] ptrdiff_t stride, -; int flimE, int flimI, int hev_thr); -;----------------------------------------------------------------------------- - -%macro INNER_LOOPFILTER 2 -%define stack_size 0 -%ifndef m8 ; stack layout: [0]=E, [1]=I, [2]=hev_thr -%ifidn %1, v ; [3]=hev() result -%define stack_size mmsize * -4 -%else ; h ; extra storage space for transposes -%define stack_size mmsize * -5 -%endif -%endif - -%if %2 == 8 ; chroma -cglobal vp8_%1_loop_filter8uv_inner, 6, 6, 13, stack_size, dst, dst8, stride, flimE, flimI, hevthr -%else ; luma -cglobal vp8_%1_loop_filter16y_inner, 5, 5, 13, stack_size, dst, stride, flimE, flimI, hevthr -%endif - -%if cpuflag(ssse3) - pxor m7, m7 -%endif - -%ifndef m8 - ; splat function arguments - SPLATB_REG m0, flimEq, m7 ; E - SPLATB_REG m1, flimIq, m7 ; I - SPLATB_REG m2, hevthrq, m7 ; hev_thresh - -%define m_flimE [rsp] -%define m_flimI [rsp+mmsize] -%define m_hevthr [rsp+mmsize*2] -%define m_maskres [rsp+mmsize*3] -%define m_p0backup [rsp+mmsize*3] -%define m_q0backup [rsp+mmsize*4] - - mova m_flimE, m0 - mova m_flimI, m1 - mova m_hevthr, m2 -%else -%define m_flimE m9 -%define m_flimI m10 -%define m_hevthr m11 -%define m_maskres m12 -%define m_p0backup m12 -%define m_q0backup m8 - - ; splat function arguments - SPLATB_REG m_flimE, flimEq, m7 ; E - SPLATB_REG m_flimI, flimIq, m7 ; I - SPLATB_REG m_hevthr, hevthrq, m7 ; hev_thresh -%endif - -%if %2 == 8 ; chroma - DEFINE_ARGS dst1, dst8, mstride, stride, dst2 -%elif mmsize == 8 - DEFINE_ARGS dst1, mstride, stride, dst2, cntr - mov cntrq, 2 -%else - DEFINE_ARGS dst1, mstride, stride, dst2, dst8 -%endif - mov strideq, mstrideq - neg mstrideq -%ifidn %1, h - lea dst1q, [dst1q+strideq*4-4] -%if %2 == 8 ; chroma - lea dst8q, [dst8q+strideq*4-4] -%endif -%endif - -%if mmsize == 8 -.next8px: -%endif - ; read - lea dst2q, [dst1q+strideq] -%ifidn %1, v -%if %2 == 8 && mmsize == 16 -%define movrow movh -%else -%define movrow mova -%endif - movrow m0, [dst1q+mstrideq*4] ; p3 - movrow m1, [dst2q+mstrideq*4] ; p2 - movrow m2, [dst1q+mstrideq*2] ; p1 - movrow m5, [dst2q] ; q1 - movrow m6, [dst2q+ strideq*1] ; q2 - movrow m7, [dst2q+ strideq*2] ; q3 -%if mmsize == 16 && %2 == 8 - movhps m0, [dst8q+mstrideq*4] - movhps m2, [dst8q+mstrideq*2] - add dst8q, strideq - movhps m1, [dst8q+mstrideq*4] - movhps m5, [dst8q] - movhps m6, [dst8q+ strideq ] - movhps m7, [dst8q+ strideq*2] - add dst8q, mstrideq -%endif -%elif mmsize == 8 ; mmx/mmxext (h) - ; read 8 rows of 8px each - movu m0, [dst1q+mstrideq*4] - movu m1, [dst2q+mstrideq*4] - movu m2, [dst1q+mstrideq*2] - movu m3, [dst1q+mstrideq ] - movu m4, [dst1q] - movu m5, [dst2q] - movu m6, [dst2q+ strideq ] - - ; 8x8 transpose - TRANSPOSE4x4B 0, 1, 2, 3, 7 - mova m_q0backup, m1 - movu m7, [dst2q+ strideq*2] - TRANSPOSE4x4B 4, 5, 6, 7, 1 - SBUTTERFLY dq, 0, 4, 1 ; p3/p2 - SBUTTERFLY dq, 2, 6, 1 ; q0/q1 - SBUTTERFLY dq, 3, 7, 1 ; q2/q3 - mova m1, m_q0backup - mova m_q0backup, m2 ; store q0 - SBUTTERFLY dq, 1, 5, 2 ; p1/p0 - mova m_p0backup, m5 ; store p0 - SWAP 1, 4 - SWAP 2, 4 - SWAP 6, 3 - SWAP 5, 3 -%else ; sse2 (h) -%if %2 == 16 - lea dst8q, [dst1q+ strideq*8] -%endif - - ; read 16 rows of 8px each, interleave - movh m0, [dst1q+mstrideq*4] - movh m1, [dst8q+mstrideq*4] - movh m2, [dst1q+mstrideq*2] - movh m5, [dst8q+mstrideq*2] - movh m3, [dst1q+mstrideq ] - movh m6, [dst8q+mstrideq ] - movh m4, [dst1q] - movh m7, [dst8q] - punpcklbw m0, m1 ; A/I - punpcklbw m2, m5 ; C/K - punpcklbw m3, m6 ; D/L - punpcklbw m4, m7 ; E/M - - add dst8q, strideq - movh m1, [dst2q+mstrideq*4] - movh m6, [dst8q+mstrideq*4] - movh m5, [dst2q] - movh m7, [dst8q] - punpcklbw m1, m6 ; B/J - punpcklbw m5, m7 ; F/N - movh m6, [dst2q+ strideq ] - movh m7, [dst8q+ strideq ] - punpcklbw m6, m7 ; G/O - - ; 8x16 transpose - TRANSPOSE4x4B 0, 1, 2, 3, 7 -%ifdef m8 - SWAP 1, 8 -%else - mova m_q0backup, m1 -%endif - movh m7, [dst2q+ strideq*2] - movh m1, [dst8q+ strideq*2] - punpcklbw m7, m1 ; H/P - TRANSPOSE4x4B 4, 5, 6, 7, 1 - SBUTTERFLY dq, 0, 4, 1 ; p3/p2 - SBUTTERFLY dq, 2, 6, 1 ; q0/q1 - SBUTTERFLY dq, 3, 7, 1 ; q2/q3 -%ifdef m8 - SWAP 1, 8 - SWAP 2, 8 -%else - mova m1, m_q0backup - mova m_q0backup, m2 ; store q0 -%endif - SBUTTERFLY dq, 1, 5, 2 ; p1/p0 -%ifdef m12 - SWAP 5, 12 -%else - mova m_p0backup, m5 ; store p0 -%endif - SWAP 1, 4 - SWAP 2, 4 - SWAP 6, 3 - SWAP 5, 3 -%endif - - ; normal_limit for p3-p2, p2-p1, q3-q2 and q2-q1 - mova m4, m1 - SWAP 4, 1 - psubusb m4, m0 ; p2-p3 - psubusb m0, m1 ; p3-p2 - por m0, m4 ; abs(p3-p2) - - mova m4, m2 - SWAP 4, 2 - psubusb m4, m1 ; p1-p2 - psubusb m1, m2 ; p2-p1 - por m1, m4 ; abs(p2-p1) - - mova m4, m6 - SWAP 4, 6 - psubusb m4, m7 ; q2-q3 - psubusb m7, m6 ; q3-q2 - por m7, m4 ; abs(q3-q2) - - mova m4, m5 - SWAP 4, 5 - psubusb m4, m6 ; q1-q2 - psubusb m6, m5 ; q2-q1 - por m6, m4 ; abs(q2-q1) - -%if notcpuflag(mmxext) - mova m4, m_flimI - pxor m3, m3 - psubusb m0, m4 - psubusb m1, m4 - psubusb m7, m4 - psubusb m6, m4 - pcmpeqb m0, m3 ; abs(p3-p2) <= I - pcmpeqb m1, m3 ; abs(p2-p1) <= I - pcmpeqb m7, m3 ; abs(q3-q2) <= I - pcmpeqb m6, m3 ; abs(q2-q1) <= I - pand m0, m1 - pand m7, m6 - pand m0, m7 -%else ; mmxext/sse2 - pmaxub m0, m1 - pmaxub m6, m7 - pmaxub m0, m6 -%endif - - ; normal_limit and high_edge_variance for p1-p0, q1-q0 - SWAP 7, 3 ; now m7 is zero -%ifidn %1, v - movrow m3, [dst1q+mstrideq ] ; p0 -%if mmsize == 16 && %2 == 8 - movhps m3, [dst8q+mstrideq ] -%endif -%elifdef m12 - SWAP 3, 12 -%else - mova m3, m_p0backup -%endif - - mova m1, m2 - SWAP 1, 2 - mova m6, m3 - SWAP 3, 6 - psubusb m1, m3 ; p1-p0 - psubusb m6, m2 ; p0-p1 - por m1, m6 ; abs(p1-p0) -%if notcpuflag(mmxext) - mova m6, m1 - psubusb m1, m4 - psubusb m6, m_hevthr - pcmpeqb m1, m7 ; abs(p1-p0) <= I - pcmpeqb m6, m7 ; abs(p1-p0) <= hev_thresh - pand m0, m1 - mova m_maskres, m6 -%else ; mmxext/sse2 - pmaxub m0, m1 ; max_I - SWAP 1, 4 ; max_hev_thresh -%endif - - SWAP 6, 4 ; now m6 is I -%ifidn %1, v - movrow m4, [dst1q] ; q0 -%if mmsize == 16 && %2 == 8 - movhps m4, [dst8q] -%endif -%elifdef m8 - SWAP 4, 8 -%else - mova m4, m_q0backup -%endif - mova m1, m4 - SWAP 1, 4 - mova m7, m5 - SWAP 7, 5 - psubusb m1, m5 ; q0-q1 - psubusb m7, m4 ; q1-q0 - por m1, m7 ; abs(q1-q0) -%if notcpuflag(mmxext) - mova m7, m1 - psubusb m1, m6 - psubusb m7, m_hevthr - pxor m6, m6 - pcmpeqb m1, m6 ; abs(q1-q0) <= I - pcmpeqb m7, m6 ; abs(q1-q0) <= hev_thresh - mova m6, m_maskres - pand m0, m1 ; abs([pq][321]-[pq][210]) <= I - pand m6, m7 -%else ; mmxext/sse2 - pxor m7, m7 - pmaxub m0, m1 - pmaxub m6, m1 - psubusb m0, m_flimI - psubusb m6, m_hevthr - pcmpeqb m0, m7 ; max(abs(..)) <= I - pcmpeqb m6, m7 ; !(max(abs..) > thresh) -%endif -%ifdef m12 - SWAP 6, 12 -%else - mova m_maskres, m6 ; !(abs(p1-p0) > hev_t || abs(q1-q0) > hev_t) -%endif - - ; simple_limit - mova m1, m3 - SWAP 1, 3 - mova m6, m4 ; keep copies of p0/q0 around for later use - SWAP 6, 4 - psubusb m1, m4 ; p0-q0 - psubusb m6, m3 ; q0-p0 - por m1, m6 ; abs(q0-p0) - paddusb m1, m1 ; m1=2*abs(q0-p0) - - mova m7, m2 - SWAP 7, 2 - mova m6, m5 - SWAP 6, 5 - psubusb m7, m5 ; p1-q1 - psubusb m6, m2 ; q1-p1 - por m7, m6 ; abs(q1-p1) - pxor m6, m6 - pand m7, [pb_FE] - psrlq m7, 1 ; abs(q1-p1)/2 - paddusb m7, m1 ; abs(q0-p0)*2+abs(q1-p1)/2 - psubusb m7, m_flimE - pcmpeqb m7, m6 ; abs(q0-p0)*2+abs(q1-p1)/2 <= E - pand m0, m7 ; normal_limit result - - ; filter_common; at this point, m2-m5=p1-q1 and m0 is filter_mask -%ifdef m8 ; x86-64 && sse2 - mova m8, [pb_80] -%define m_pb_80 m8 -%else ; x86-32 or mmx/mmxext -%define m_pb_80 [pb_80] -%endif - mova m1, m4 - mova m7, m3 - pxor m1, m_pb_80 - pxor m7, m_pb_80 - psubsb m1, m7 ; (signed) q0-p0 - mova m6, m2 - mova m7, m5 - pxor m6, m_pb_80 - pxor m7, m_pb_80 - psubsb m6, m7 ; (signed) p1-q1 - mova m7, m_maskres - pandn m7, m6 - paddsb m7, m1 - paddsb m7, m1 - paddsb m7, m1 ; 3*(q0-p0)+is4tap?(p1-q1) - - pand m7, m0 - mova m1, [pb_F8] - mova m6, m7 - paddsb m7, [pb_3] - paddsb m6, [pb_4] - pand m7, m1 - pand m6, m1 - - pxor m1, m1 - pxor m0, m0 - pcmpgtb m1, m7 - psubb m0, m7 - psrlq m7, 3 ; +f2 - psrlq m0, 3 ; -f2 - pand m0, m1 - pandn m1, m7 - psubusb m3, m0 - paddusb m3, m1 ; p0+f2 - - pxor m1, m1 - pxor m0, m0 - pcmpgtb m0, m6 - psubb m1, m6 - psrlq m6, 3 ; +f1 - psrlq m1, 3 ; -f1 - pand m1, m0 - pandn m0, m6 - psubusb m4, m0 - paddusb m4, m1 ; q0-f1 - -%ifdef m12 - SWAP 6, 12 -%else - mova m6, m_maskres -%endif -%if notcpuflag(mmxext) - mova m7, [pb_1] -%else ; mmxext/sse2 - pxor m7, m7 -%endif - pand m0, m6 - pand m1, m6 -%if notcpuflag(mmxext) - paddusb m0, m7 - pand m1, [pb_FE] - pandn m7, m0 - psrlq m1, 1 - psrlq m7, 1 - SWAP 0, 7 -%else ; mmxext/sse2 - psubusb m1, [pb_1] - pavgb m0, m7 ; a - pavgb m1, m7 ; -a -%endif - psubusb m5, m0 - psubusb m2, m1 - paddusb m5, m1 ; q1-a - paddusb m2, m0 ; p1+a - - ; store -%ifidn %1, v - movrow [dst1q+mstrideq*2], m2 - movrow [dst1q+mstrideq ], m3 - movrow [dst1q], m4 - movrow [dst1q+ strideq ], m5 -%if mmsize == 16 && %2 == 8 - movhps [dst8q+mstrideq*2], m2 - movhps [dst8q+mstrideq ], m3 - movhps [dst8q], m4 - movhps [dst8q+ strideq ], m5 -%endif -%else ; h - add dst1q, 2 - add dst2q, 2 - - ; 4x8/16 transpose - TRANSPOSE4x4B 2, 3, 4, 5, 6 - -%if mmsize == 8 ; mmx/mmxext (h) - WRITE_4x2D 2, 3, 4, 5, dst1q, dst2q, mstrideq, strideq -%else ; sse2 (h) - lea dst8q, [dst8q+mstrideq +2] - WRITE_4x4D 2, 3, 4, 5, dst1q, dst2q, dst8q, mstrideq, strideq, %2 -%endif -%endif - -%if mmsize == 8 -%if %2 == 8 ; chroma -%ifidn %1, h - sub dst1q, 2 -%endif - cmp dst1q, dst8q - mov dst1q, dst8q - jnz .next8px -%else -%ifidn %1, h - lea dst1q, [dst1q+ strideq*8-2] -%else ; v - add dst1q, 8 -%endif - dec cntrq - jg .next8px -%endif - REP_RET -%else ; mmsize == 16 - RET -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -INNER_LOOPFILTER v, 16 -INNER_LOOPFILTER h, 16 -INNER_LOOPFILTER v, 8 -INNER_LOOPFILTER h, 8 - -INIT_MMX mmxext -INNER_LOOPFILTER v, 16 -INNER_LOOPFILTER h, 16 -INNER_LOOPFILTER v, 8 -INNER_LOOPFILTER h, 8 -%endif - -INIT_XMM sse2 -INNER_LOOPFILTER v, 16 -INNER_LOOPFILTER h, 16 -INNER_LOOPFILTER v, 8 -INNER_LOOPFILTER h, 8 - -INIT_XMM ssse3 -INNER_LOOPFILTER v, 16 -INNER_LOOPFILTER h, 16 -INNER_LOOPFILTER v, 8 -INNER_LOOPFILTER h, 8 - -;----------------------------------------------------------------------------- -; void ff_vp8_h/v_loop_filter_mbedge_(uint8_t *dst, [uint8_t *v,] ptrdiff_t stride, -; int flimE, int flimI, int hev_thr); -;----------------------------------------------------------------------------- - -%macro MBEDGE_LOOPFILTER 2 -%define stack_size 0 -%ifndef m8 ; stack layout: [0]=E, [1]=I, [2]=hev_thr -%if mmsize == 16 ; [3]=hev() result - ; [4]=filter tmp result - ; [5]/[6] = p2/q2 backup - ; [7]=lim_res sign result -%define stack_size mmsize * -7 -%else ; 8 ; extra storage space for transposes -%define stack_size mmsize * -8 -%endif -%endif - -%if %2 == 8 ; chroma -cglobal vp8_%1_loop_filter8uv_mbedge, 6, 6, 15, stack_size, dst1, dst8, stride, flimE, flimI, hevthr -%else ; luma -cglobal vp8_%1_loop_filter16y_mbedge, 5, 5, 15, stack_size, dst1, stride, flimE, flimI, hevthr -%endif - -%if cpuflag(ssse3) - pxor m7, m7 -%endif - -%ifndef m8 - ; splat function arguments - SPLATB_REG m0, flimEq, m7 ; E - SPLATB_REG m1, flimIq, m7 ; I - SPLATB_REG m2, hevthrq, m7 ; hev_thresh - -%define m_flimE [rsp] -%define m_flimI [rsp+mmsize] -%define m_hevthr [rsp+mmsize*2] -%define m_maskres [rsp+mmsize*3] -%define m_limres [rsp+mmsize*4] -%define m_p0backup [rsp+mmsize*3] -%define m_q0backup [rsp+mmsize*4] -%define m_p2backup [rsp+mmsize*5] -%define m_q2backup [rsp+mmsize*6] -%if mmsize == 16 -%define m_limsign [rsp] -%else -%define m_limsign [rsp+mmsize*7] -%endif - - mova m_flimE, m0 - mova m_flimI, m1 - mova m_hevthr, m2 -%else ; sse2 on x86-64 -%define m_flimE m9 -%define m_flimI m10 -%define m_hevthr m11 -%define m_maskres m12 -%define m_limres m8 -%define m_p0backup m12 -%define m_q0backup m8 -%define m_p2backup m13 -%define m_q2backup m14 -%define m_limsign m9 - - ; splat function arguments - SPLATB_REG m_flimE, flimEq, m7 ; E - SPLATB_REG m_flimI, flimIq, m7 ; I - SPLATB_REG m_hevthr, hevthrq, m7 ; hev_thresh -%endif - -%if %2 == 8 ; chroma - DEFINE_ARGS dst1, dst8, mstride, stride, dst2 -%elif mmsize == 8 - DEFINE_ARGS dst1, mstride, stride, dst2, cntr - mov cntrq, 2 -%else - DEFINE_ARGS dst1, mstride, stride, dst2, dst8 -%endif - mov strideq, mstrideq - neg mstrideq -%ifidn %1, h - lea dst1q, [dst1q+strideq*4-4] -%if %2 == 8 ; chroma - lea dst8q, [dst8q+strideq*4-4] -%endif -%endif - -%if mmsize == 8 -.next8px: -%endif - ; read - lea dst2q, [dst1q+ strideq ] -%ifidn %1, v -%if %2 == 8 && mmsize == 16 -%define movrow movh -%else -%define movrow mova -%endif - movrow m0, [dst1q+mstrideq*4] ; p3 - movrow m1, [dst2q+mstrideq*4] ; p2 - movrow m2, [dst1q+mstrideq*2] ; p1 - movrow m5, [dst2q] ; q1 - movrow m6, [dst2q+ strideq ] ; q2 - movrow m7, [dst2q+ strideq*2] ; q3 -%if mmsize == 16 && %2 == 8 - movhps m0, [dst8q+mstrideq*4] - movhps m2, [dst8q+mstrideq*2] - add dst8q, strideq - movhps m1, [dst8q+mstrideq*4] - movhps m5, [dst8q] - movhps m6, [dst8q+ strideq ] - movhps m7, [dst8q+ strideq*2] - add dst8q, mstrideq -%endif -%elif mmsize == 8 ; mmx/mmxext (h) - ; read 8 rows of 8px each - movu m0, [dst1q+mstrideq*4] - movu m1, [dst2q+mstrideq*4] - movu m2, [dst1q+mstrideq*2] - movu m3, [dst1q+mstrideq ] - movu m4, [dst1q] - movu m5, [dst2q] - movu m6, [dst2q+ strideq ] - - ; 8x8 transpose - TRANSPOSE4x4B 0, 1, 2, 3, 7 - mova m_q0backup, m1 - movu m7, [dst2q+ strideq*2] - TRANSPOSE4x4B 4, 5, 6, 7, 1 - SBUTTERFLY dq, 0, 4, 1 ; p3/p2 - SBUTTERFLY dq, 2, 6, 1 ; q0/q1 - SBUTTERFLY dq, 3, 7, 1 ; q2/q3 - mova m1, m_q0backup - mova m_q0backup, m2 ; store q0 - SBUTTERFLY dq, 1, 5, 2 ; p1/p0 - mova m_p0backup, m5 ; store p0 - SWAP 1, 4 - SWAP 2, 4 - SWAP 6, 3 - SWAP 5, 3 -%else ; sse2 (h) -%if %2 == 16 - lea dst8q, [dst1q+ strideq*8 ] -%endif - - ; read 16 rows of 8px each, interleave - movh m0, [dst1q+mstrideq*4] - movh m1, [dst8q+mstrideq*4] - movh m2, [dst1q+mstrideq*2] - movh m5, [dst8q+mstrideq*2] - movh m3, [dst1q+mstrideq ] - movh m6, [dst8q+mstrideq ] - movh m4, [dst1q] - movh m7, [dst8q] - punpcklbw m0, m1 ; A/I - punpcklbw m2, m5 ; C/K - punpcklbw m3, m6 ; D/L - punpcklbw m4, m7 ; E/M - - add dst8q, strideq - movh m1, [dst2q+mstrideq*4] - movh m6, [dst8q+mstrideq*4] - movh m5, [dst2q] - movh m7, [dst8q] - punpcklbw m1, m6 ; B/J - punpcklbw m5, m7 ; F/N - movh m6, [dst2q+ strideq ] - movh m7, [dst8q+ strideq ] - punpcklbw m6, m7 ; G/O - - ; 8x16 transpose - TRANSPOSE4x4B 0, 1, 2, 3, 7 -%ifdef m8 - SWAP 1, 8 -%else - mova m_q0backup, m1 -%endif - movh m7, [dst2q+ strideq*2] - movh m1, [dst8q+ strideq*2] - punpcklbw m7, m1 ; H/P - TRANSPOSE4x4B 4, 5, 6, 7, 1 - SBUTTERFLY dq, 0, 4, 1 ; p3/p2 - SBUTTERFLY dq, 2, 6, 1 ; q0/q1 - SBUTTERFLY dq, 3, 7, 1 ; q2/q3 -%ifdef m8 - SWAP 1, 8 - SWAP 2, 8 -%else - mova m1, m_q0backup - mova m_q0backup, m2 ; store q0 -%endif - SBUTTERFLY dq, 1, 5, 2 ; p1/p0 -%ifdef m12 - SWAP 5, 12 -%else - mova m_p0backup, m5 ; store p0 -%endif - SWAP 1, 4 - SWAP 2, 4 - SWAP 6, 3 - SWAP 5, 3 -%endif - - ; normal_limit for p3-p2, p2-p1, q3-q2 and q2-q1 - mova m4, m1 - SWAP 4, 1 - psubusb m4, m0 ; p2-p3 - psubusb m0, m1 ; p3-p2 - por m0, m4 ; abs(p3-p2) - - mova m4, m2 - SWAP 4, 2 - psubusb m4, m1 ; p1-p2 - mova m_p2backup, m1 - psubusb m1, m2 ; p2-p1 - por m1, m4 ; abs(p2-p1) - - mova m4, m6 - SWAP 4, 6 - psubusb m4, m7 ; q2-q3 - psubusb m7, m6 ; q3-q2 - por m7, m4 ; abs(q3-q2) - - mova m4, m5 - SWAP 4, 5 - psubusb m4, m6 ; q1-q2 - mova m_q2backup, m6 - psubusb m6, m5 ; q2-q1 - por m6, m4 ; abs(q2-q1) - -%if notcpuflag(mmxext) - mova m4, m_flimI - pxor m3, m3 - psubusb m0, m4 - psubusb m1, m4 - psubusb m7, m4 - psubusb m6, m4 - pcmpeqb m0, m3 ; abs(p3-p2) <= I - pcmpeqb m1, m3 ; abs(p2-p1) <= I - pcmpeqb m7, m3 ; abs(q3-q2) <= I - pcmpeqb m6, m3 ; abs(q2-q1) <= I - pand m0, m1 - pand m7, m6 - pand m0, m7 -%else ; mmxext/sse2 - pmaxub m0, m1 - pmaxub m6, m7 - pmaxub m0, m6 -%endif - - ; normal_limit and high_edge_variance for p1-p0, q1-q0 - SWAP 7, 3 ; now m7 is zero -%ifidn %1, v - movrow m3, [dst1q+mstrideq ] ; p0 -%if mmsize == 16 && %2 == 8 - movhps m3, [dst8q+mstrideq ] -%endif -%elifdef m12 - SWAP 3, 12 -%else - mova m3, m_p0backup -%endif - - mova m1, m2 - SWAP 1, 2 - mova m6, m3 - SWAP 3, 6 - psubusb m1, m3 ; p1-p0 - psubusb m6, m2 ; p0-p1 - por m1, m6 ; abs(p1-p0) -%if notcpuflag(mmxext) - mova m6, m1 - psubusb m1, m4 - psubusb m6, m_hevthr - pcmpeqb m1, m7 ; abs(p1-p0) <= I - pcmpeqb m6, m7 ; abs(p1-p0) <= hev_thresh - pand m0, m1 - mova m_maskres, m6 -%else ; mmxext/sse2 - pmaxub m0, m1 ; max_I - SWAP 1, 4 ; max_hev_thresh -%endif - - SWAP 6, 4 ; now m6 is I -%ifidn %1, v - movrow m4, [dst1q] ; q0 -%if mmsize == 16 && %2 == 8 - movhps m4, [dst8q] -%endif -%elifdef m8 - SWAP 4, 8 -%else - mova m4, m_q0backup -%endif - mova m1, m4 - SWAP 1, 4 - mova m7, m5 - SWAP 7, 5 - psubusb m1, m5 ; q0-q1 - psubusb m7, m4 ; q1-q0 - por m1, m7 ; abs(q1-q0) -%if notcpuflag(mmxext) - mova m7, m1 - psubusb m1, m6 - psubusb m7, m_hevthr - pxor m6, m6 - pcmpeqb m1, m6 ; abs(q1-q0) <= I - pcmpeqb m7, m6 ; abs(q1-q0) <= hev_thresh - mova m6, m_maskres - pand m0, m1 ; abs([pq][321]-[pq][210]) <= I - pand m6, m7 -%else ; mmxext/sse2 - pxor m7, m7 - pmaxub m0, m1 - pmaxub m6, m1 - psubusb m0, m_flimI - psubusb m6, m_hevthr - pcmpeqb m0, m7 ; max(abs(..)) <= I - pcmpeqb m6, m7 ; !(max(abs..) > thresh) -%endif -%ifdef m12 - SWAP 6, 12 -%else - mova m_maskres, m6 ; !(abs(p1-p0) > hev_t || abs(q1-q0) > hev_t) -%endif - - ; simple_limit - mova m1, m3 - SWAP 1, 3 - mova m6, m4 ; keep copies of p0/q0 around for later use - SWAP 6, 4 - psubusb m1, m4 ; p0-q0 - psubusb m6, m3 ; q0-p0 - por m1, m6 ; abs(q0-p0) - paddusb m1, m1 ; m1=2*abs(q0-p0) - - mova m7, m2 - SWAP 7, 2 - mova m6, m5 - SWAP 6, 5 - psubusb m7, m5 ; p1-q1 - psubusb m6, m2 ; q1-p1 - por m7, m6 ; abs(q1-p1) - pxor m6, m6 - pand m7, [pb_FE] - psrlq m7, 1 ; abs(q1-p1)/2 - paddusb m7, m1 ; abs(q0-p0)*2+abs(q1-p1)/2 - psubusb m7, m_flimE - pcmpeqb m7, m6 ; abs(q0-p0)*2+abs(q1-p1)/2 <= E - pand m0, m7 ; normal_limit result - - ; filter_common; at this point, m2-m5=p1-q1 and m0 is filter_mask -%ifdef m8 ; x86-64 && sse2 - mova m8, [pb_80] -%define m_pb_80 m8 -%else ; x86-32 or mmx/mmxext -%define m_pb_80 [pb_80] -%endif - mova m1, m4 - mova m7, m3 - pxor m1, m_pb_80 - pxor m7, m_pb_80 - psubsb m1, m7 ; (signed) q0-p0 - mova m6, m2 - mova m7, m5 - pxor m6, m_pb_80 - pxor m7, m_pb_80 - psubsb m6, m7 ; (signed) p1-q1 - mova m7, m_maskres - paddsb m6, m1 - paddsb m6, m1 - paddsb m6, m1 - pand m6, m0 -%ifdef m8 - mova m_limres, m6 ; 3*(qp-p0)+(p1-q1) masked for filter_mbedge - pand m_limres, m7 -%else - mova m0, m6 - pand m0, m7 - mova m_limres, m0 -%endif - pandn m7, m6 ; 3*(q0-p0)+(p1-q1) masked for filter_common - - mova m1, [pb_F8] - mova m6, m7 - paddsb m7, [pb_3] - paddsb m6, [pb_4] - pand m7, m1 - pand m6, m1 - - pxor m1, m1 - pxor m0, m0 - pcmpgtb m1, m7 - psubb m0, m7 - psrlq m7, 3 ; +f2 - psrlq m0, 3 ; -f2 - pand m0, m1 - pandn m1, m7 - psubusb m3, m0 - paddusb m3, m1 ; p0+f2 - - pxor m1, m1 - pxor m0, m0 - pcmpgtb m0, m6 - psubb m1, m6 - psrlq m6, 3 ; +f1 - psrlq m1, 3 ; -f1 - pand m1, m0 - pandn m0, m6 - psubusb m4, m0 - paddusb m4, m1 ; q0-f1 - - ; filter_mbedge (m2-m5 = p1-q1; lim_res carries w) -%if cpuflag(ssse3) - mova m7, [pb_1] -%else - mova m7, [pw_63] -%endif -%ifdef m8 - SWAP 1, 8 -%else - mova m1, m_limres -%endif - pxor m0, m0 - mova m6, m1 - pcmpgtb m0, m1 ; which are negative -%if cpuflag(ssse3) - punpcklbw m6, m7 ; interleave with "1" for rounding - punpckhbw m1, m7 -%else - punpcklbw m6, m0 ; signed byte->word - punpckhbw m1, m0 -%endif - mova m_limsign, m0 -%if cpuflag(ssse3) - mova m7, [pb_27_63] -%ifndef m8 - mova m_limres, m1 -%endif -%ifdef m10 - SWAP 0, 10 ; don't lose lim_sign copy -%endif - mova m0, m7 - pmaddubsw m7, m6 - SWAP 6, 7 - pmaddubsw m0, m1 - SWAP 1, 0 -%ifdef m10 - SWAP 0, 10 -%else - mova m0, m_limsign -%endif -%else - mova m_maskres, m6 ; backup for later in filter - mova m_limres, m1 - pmullw m6, [pw_27] - pmullw m1, [pw_27] - paddw m6, m7 - paddw m1, m7 -%endif - psraw m6, 7 - psraw m1, 7 - packsswb m6, m1 ; a0 - pxor m1, m1 - psubb m1, m6 - pand m1, m0 ; -a0 - pandn m0, m6 ; +a0 -%if cpuflag(ssse3) - mova m6, [pb_18_63] ; pipelining -%endif - psubusb m3, m1 - paddusb m4, m1 - paddusb m3, m0 ; p0+a0 - psubusb m4, m0 ; q0-a0 - -%if cpuflag(ssse3) - SWAP 6, 7 -%ifdef m10 - SWAP 1, 10 -%else - mova m1, m_limres -%endif - mova m0, m7 - pmaddubsw m7, m6 - SWAP 6, 7 - pmaddubsw m0, m1 - SWAP 1, 0 -%ifdef m10 - SWAP 0, 10 -%endif - mova m0, m_limsign -%else - mova m6, m_maskres - mova m1, m_limres - pmullw m6, [pw_18] - pmullw m1, [pw_18] - paddw m6, m7 - paddw m1, m7 -%endif - mova m0, m_limsign - psraw m6, 7 - psraw m1, 7 - packsswb m6, m1 ; a1 - pxor m1, m1 - psubb m1, m6 - pand m1, m0 ; -a1 - pandn m0, m6 ; +a1 -%if cpuflag(ssse3) - mova m6, [pb_9_63] -%endif - psubusb m2, m1 - paddusb m5, m1 - paddusb m2, m0 ; p1+a1 - psubusb m5, m0 ; q1-a1 - -%if cpuflag(ssse3) - SWAP 6, 7 -%ifdef m10 - SWAP 1, 10 -%else - mova m1, m_limres -%endif - mova m0, m7 - pmaddubsw m7, m6 - SWAP 6, 7 - pmaddubsw m0, m1 - SWAP 1, 0 -%else -%ifdef m8 - SWAP 6, 12 - SWAP 1, 8 -%else - mova m6, m_maskres - mova m1, m_limres -%endif - pmullw m6, [pw_9] - pmullw m1, [pw_9] - paddw m6, m7 - paddw m1, m7 -%endif -%ifdef m9 - SWAP 7, 9 -%else - mova m7, m_limsign -%endif - psraw m6, 7 - psraw m1, 7 - packsswb m6, m1 ; a1 - pxor m0, m0 - psubb m0, m6 - pand m0, m7 ; -a1 - pandn m7, m6 ; +a1 -%ifdef m8 - SWAP 1, 13 - SWAP 6, 14 -%else - mova m1, m_p2backup - mova m6, m_q2backup -%endif - psubusb m1, m0 - paddusb m6, m0 - paddusb m1, m7 ; p1+a1 - psubusb m6, m7 ; q1-a1 - - ; store -%ifidn %1, v - movrow [dst2q+mstrideq*4], m1 - movrow [dst1q+mstrideq*2], m2 - movrow [dst1q+mstrideq ], m3 - movrow [dst1q], m4 - movrow [dst2q], m5 - movrow [dst2q+ strideq ], m6 -%if mmsize == 16 && %2 == 8 - add dst8q, mstrideq - movhps [dst8q+mstrideq*2], m1 - movhps [dst8q+mstrideq ], m2 - movhps [dst8q], m3 - add dst8q, strideq - movhps [dst8q], m4 - movhps [dst8q+ strideq ], m5 - movhps [dst8q+ strideq*2], m6 -%endif -%else ; h - inc dst1q - inc dst2q - - ; 4x8/16 transpose - TRANSPOSE4x4B 1, 2, 3, 4, 0 - SBUTTERFLY bw, 5, 6, 0 - -%if mmsize == 8 ; mmx/mmxext (h) - WRITE_4x2D 1, 2, 3, 4, dst1q, dst2q, mstrideq, strideq - add dst1q, 4 - WRITE_2x4W m5, m6, dst2q, dst1q, mstrideq, strideq -%else ; sse2 (h) - lea dst8q, [dst8q+mstrideq+1] - WRITE_4x4D 1, 2, 3, 4, dst1q, dst2q, dst8q, mstrideq, strideq, %2 - lea dst1q, [dst2q+mstrideq+4] - lea dst8q, [dst8q+mstrideq+4] -%if cpuflag(sse4) - add dst2q, 4 -%endif - WRITE_8W m5, dst2q, dst1q, mstrideq, strideq -%if cpuflag(sse4) - lea dst2q, [dst8q+ strideq ] -%endif - WRITE_8W m6, dst2q, dst8q, mstrideq, strideq -%endif -%endif - -%if mmsize == 8 -%if %2 == 8 ; chroma -%ifidn %1, h - sub dst1q, 5 -%endif - cmp dst1q, dst8q - mov dst1q, dst8q - jnz .next8px -%else -%ifidn %1, h - lea dst1q, [dst1q+ strideq*8-5] -%else ; v - add dst1q, 8 -%endif - dec cntrq - jg .next8px -%endif - REP_RET -%else ; mmsize == 16 - RET -%endif -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -MBEDGE_LOOPFILTER v, 16 -MBEDGE_LOOPFILTER h, 16 -MBEDGE_LOOPFILTER v, 8 -MBEDGE_LOOPFILTER h, 8 - -INIT_MMX mmxext -MBEDGE_LOOPFILTER v, 16 -MBEDGE_LOOPFILTER h, 16 -MBEDGE_LOOPFILTER v, 8 -MBEDGE_LOOPFILTER h, 8 -%endif - -INIT_XMM sse2 -MBEDGE_LOOPFILTER v, 16 -MBEDGE_LOOPFILTER h, 16 -MBEDGE_LOOPFILTER v, 8 -MBEDGE_LOOPFILTER h, 8 - -INIT_XMM ssse3 -MBEDGE_LOOPFILTER v, 16 -MBEDGE_LOOPFILTER h, 16 -MBEDGE_LOOPFILTER v, 8 -MBEDGE_LOOPFILTER h, 8 - -INIT_XMM sse4 -MBEDGE_LOOPFILTER h, 16 -MBEDGE_LOOPFILTER h, 8 diff --git a/libavcodec/x86/vp9intrapred.asm b/libavcodec/x86/vp9intrapred.asm deleted file mode 100644 index 31f7d449fd..0000000000 --- a/libavcodec/x86/vp9intrapred.asm +++ /dev/null @@ -1,2044 +0,0 @@ -;****************************************************************************** -;* VP9 Intra prediction SIMD optimizations -;* -;* Copyright (c) 2013 Ronald S. Bultje -;* -;* Parts based on: -;* H.264 intra prediction asm optimizations -;* Copyright (c) 2010 Fiona Glaser -;* Copyright (c) 2010 Holger Lubitz -;* Copyright (c) 2010 Loren Merritt -;* Copyright (c) 2010 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pw_m256: times 16 dw -256 -pw_m255: times 16 dw -255 -pw_4096: times 8 dw 4096 - -pb_4x3_4x2_4x1_4x0: times 4 db 3 - times 4 db 2 - times 4 db 1 - times 4 db 0 -pb_8x1_8x0: times 8 db 1 - times 8 db 0 -pb_8x3_8x2: times 8 db 3 - times 8 db 2 -pb_0to5_2x7: db 0, 1, 2, 3, 4, 5, 7, 7 - times 8 db -1 -pb_0to6_9x7: db 0, 1, 2, 3, 4, 5, 6 - times 9 db 7 -pb_1to6_10x7: db 1, 2, 3, 4, 5, 6 - times 10 db 7 -pb_2to6_3x7: -pb_2to6_11x7: db 2, 3, 4, 5, 6 - times 11 db 7 -pb_1toE_2xF: db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15 -pb_2toE_3xF: db 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15 -pb_13456_3xm1: db 1, 3, 4, 5, 6 - times 3 db -1 -pb_6012_4xm1: db 6, 0, 1, 2 - times 4 db -1 -pb_6xm1_246_8toE: times 6 db -1 - db 2, 4, 6, 8, 9, 10, 11, 12, 13, 14 -pb_6xm1_BDF_0to6: times 6 db -1 - db 11, 13, 15, 0, 1, 2, 3, 4, 5, 6 -pb_02468ACE_13579BDF: db 0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15 - -pb_15x0_1xm1: times 15 db 0 - db -1 -pb_0to2_5x3: db 0, 1, 2 - times 5 db 3 -pb_6xm1_2x0: times 6 db -1 - times 2 db 0 -pb_6x0_2xm1: times 6 db 0 - times 2 db -1 - -cextern pb_1 -cextern pb_2 -cextern pb_3 -cextern pb_15 -cextern pw_2 -cextern pw_4 -cextern pw_8 -cextern pw_16 -cextern pw_32 -cextern pw_255 -cextern pw_512 -cextern pw_1024 -cextern pw_2048 -cextern pw_8192 - -SECTION .text - -; dc_NxN(uint8_t *dst, ptrdiff_t stride, const uint8_t *l, const uint8_t *a) - -%macro DC_4to8_FUNCS 0 -cglobal vp9_ipred_dc_4x4, 4, 4, 0, dst, stride, l, a - movd m0, [lq] - punpckldq m0, [aq] - pxor m1, m1 - psadbw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_4096] - pshufb m0, m1 -%else - paddw m0, [pw_4] - psraw m0, 3 - punpcklbw m0, m0 - pshufw m0, m0, q0000 -%endif - movd [dstq+strideq*0], m0 - movd [dstq+strideq*1], m0 - lea dstq, [dstq+strideq*2] - movd [dstq+strideq*0], m0 - movd [dstq+strideq*1], m0 - RET - -cglobal vp9_ipred_dc_8x8, 4, 4, 0, dst, stride, l, a - movq m0, [lq] - movq m1, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pxor m2, m2 - psadbw m0, m2 - psadbw m1, m2 - paddw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_2048] - pshufb m0, m2 -%else - paddw m0, [pw_8] - psraw m0, 4 - punpcklbw m0, m0 - pshufw m0, m0, q0000 -%endif - movq [dstq+strideq*0], m0 - movq [dstq+strideq*1], m0 - movq [dstq+strideq*2], m0 - movq [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - movq [dstq+strideq*0], m0 - movq [dstq+strideq*1], m0 - movq [dstq+strideq*2], m0 - movq [dstq+stride3q ], m0 - RET -%endmacro - -INIT_MMX mmxext -DC_4to8_FUNCS -INIT_MMX ssse3 -DC_4to8_FUNCS - -%macro DC_16to32_FUNCS 0 -cglobal vp9_ipred_dc_16x16, 4, 4, 3, dst, stride, l, a - mova m0, [lq] - mova m1, [aq] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - pxor m2, m2 - psadbw m0, m2 - psadbw m1, m2 - paddw m0, m1 - movhlps m1, m0 - paddw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_1024] - pshufb m0, m2 -%else - paddw m0, [pw_16] - psraw m0, 5 - punpcklbw m0, m0 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -%endif - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dc_32x32, 4, 4, 5, dst, stride, l, a - mova m0, [lq] - mova m1, [lq+16] - mova m2, [aq] - mova m3, [aq+16] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - pxor m4, m4 - psadbw m0, m4 - psadbw m1, m4 - psadbw m2, m4 - psadbw m3, m4 - paddw m0, m1 - paddw m2, m3 - paddw m0, m2 - movhlps m1, m0 - paddw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_512] - pshufb m0, m4 -%else - paddw m0, [pw_32] - psraw m0, 6 - punpcklbw m0, m0 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -%endif - mov cntd, 8 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m0 - mova [dstq+strideq*2+ 0], m0 - mova [dstq+strideq*2+16], m0 - mova [dstq+stride3q + 0], m0 - mova [dstq+stride3q +16], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -DC_16to32_FUNCS -INIT_XMM ssse3 -DC_16to32_FUNCS - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_ipred_dc_32x32, 4, 4, 3, dst, stride, l, a - mova m0, [lq] - mova m1, [aq] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - pxor m2, m2 - psadbw m0, m2 - psadbw m1, m2 - paddw m0, m1 - vextracti128 xm1, m0, 1 - paddw xm0, xm1 - movhlps xm1, xm0 - paddw xm0, xm1 - pmulhrsw xm0, [pw_512] - vpbroadcastb m0, xm0 - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET -%endif - -; dc_top/left_NxN(uint8_t *dst, ptrdiff_t stride, const uint8_t *l, const uint8_t *a) - -%macro DC_1D_4to8_FUNCS 2 ; dir (top or left), arg (a or l) -cglobal vp9_ipred_dc_%1_4x4, 4, 4, 0, dst, stride, l, a - movd m0, [%2q] - pxor m1, m1 - psadbw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_8192] - pshufb m0, m1 -%else - paddw m0, [pw_2] - psraw m0, 2 - punpcklbw m0, m0 - pshufw m0, m0, q0000 -%endif - movd [dstq+strideq*0], m0 - movd [dstq+strideq*1], m0 - lea dstq, [dstq+strideq*2] - movd [dstq+strideq*0], m0 - movd [dstq+strideq*1], m0 - RET - -cglobal vp9_ipred_dc_%1_8x8, 4, 4, 0, dst, stride, l, a - movq m0, [%2q] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pxor m1, m1 - psadbw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_4096] - pshufb m0, m1 -%else - paddw m0, [pw_4] - psraw m0, 3 - punpcklbw m0, m0 - pshufw m0, m0, q0000 -%endif - movq [dstq+strideq*0], m0 - movq [dstq+strideq*1], m0 - movq [dstq+strideq*2], m0 - movq [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - movq [dstq+strideq*0], m0 - movq [dstq+strideq*1], m0 - movq [dstq+strideq*2], m0 - movq [dstq+stride3q ], m0 - RET -%endmacro - -INIT_MMX mmxext -DC_1D_4to8_FUNCS top, a -DC_1D_4to8_FUNCS left, l -INIT_MMX ssse3 -DC_1D_4to8_FUNCS top, a -DC_1D_4to8_FUNCS left, l - -%macro DC_1D_16to32_FUNCS 2; dir (top or left), arg (a or l) -cglobal vp9_ipred_dc_%1_16x16, 4, 4, 3, dst, stride, l, a - mova m0, [%2q] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - pxor m2, m2 - psadbw m0, m2 - movhlps m1, m0 - paddw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_2048] - pshufb m0, m2 -%else - paddw m0, [pw_8] - psraw m0, 4 - punpcklbw m0, m0 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -%endif - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dc_%1_32x32, 4, 4, 3, dst, stride, l, a - mova m0, [%2q] - mova m1, [%2q+16] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - pxor m2, m2 - psadbw m0, m2 - psadbw m1, m2 - paddw m0, m1 - movhlps m1, m0 - paddw m0, m1 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_1024] - pshufb m0, m2 -%else - paddw m0, [pw_16] - psraw m0, 5 - punpcklbw m0, m0 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -%endif - mov cntd, 8 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m0 - mova [dstq+strideq*2+ 0], m0 - mova [dstq+strideq*2+16], m0 - mova [dstq+stride3q + 0], m0 - mova [dstq+stride3q +16], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -DC_1D_16to32_FUNCS top, a -DC_1D_16to32_FUNCS left, l -INIT_XMM ssse3 -DC_1D_16to32_FUNCS top, a -DC_1D_16to32_FUNCS left, l - -%macro DC_1D_AVX2_FUNCS 2 ; dir (top or left), arg (a or l) -%if HAVE_AVX2_EXTERNAL -cglobal vp9_ipred_dc_%1_32x32, 4, 4, 3, dst, stride, l, a - mova m0, [%2q] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - pxor m2, m2 - psadbw m0, m2 - vextracti128 xm1, m0, 1 - paddw xm0, xm1 - movhlps xm1, xm0 - paddw xm0, xm1 - pmulhrsw xm0, [pw_1024] - vpbroadcastb m0, xm0 - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET -%endif -%endmacro - -INIT_YMM avx2 -DC_1D_AVX2_FUNCS top, a -DC_1D_AVX2_FUNCS left, l - -; v - -INIT_MMX mmx -cglobal vp9_ipred_v_8x8, 4, 4, 0, dst, stride, l, a - movq m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - movq [dstq+strideq*0], m0 - movq [dstq+strideq*1], m0 - movq [dstq+strideq*2], m0 - movq [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - movq [dstq+strideq*0], m0 - movq [dstq+strideq*1], m0 - movq [dstq+strideq*2], m0 - movq [dstq+stride3q ], m0 - RET - -INIT_XMM sse -cglobal vp9_ipred_v_16x16, 4, 4, 1, dst, stride, l, a - mova m0, [aq] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -INIT_XMM sse -cglobal vp9_ipred_v_32x32, 4, 4, 2, dst, stride, l, a - mova m0, [aq] - mova m1, [aq+16] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 8 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m1 - mova [dstq+strideq*2+ 0], m0 - mova [dstq+strideq*2+16], m1 - mova [dstq+stride3q + 0], m0 - mova [dstq+stride3q +16], m1 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -INIT_YMM avx -cglobal vp9_ipred_v_32x32, 4, 4, 1, dst, stride, l, a - mova m0, [aq] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -; h - -%macro H_XMM_FUNCS 2 -%if notcpuflag(avx) -cglobal vp9_ipred_h_4x4, 3, 4, 1, dst, stride, l, stride3 - movd m0, [lq] -%if cpuflag(ssse3) - pshufb m0, [pb_4x3_4x2_4x1_4x0] -%else - punpcklbw m0, m0 - pshuflw m0, m0, q0123 - punpcklwd m0, m0 -%endif - lea stride3q, [strideq*3] - movd [dstq+strideq*0], m0 - psrldq m0, 4 - movd [dstq+strideq*1], m0 - psrldq m0, 4 - movd [dstq+strideq*2], m0 - psrldq m0, 4 - movd [dstq+stride3q ], m0 - RET -%endif - -cglobal vp9_ipred_h_8x8, 3, 5, %1, dst, stride, l, stride3, cnt -%if cpuflag(ssse3) - mova m2, [pb_8x1_8x0] - mova m3, [pb_8x3_8x2] -%endif - lea stride3q, [strideq*3] - mov cntq, 1 -.loop: - movd m0, [lq+cntq*4] -%if cpuflag(ssse3) - pshufb m1, m0, m3 - pshufb m0, m2 -%else - punpcklbw m0, m0 - punpcklwd m0, m0 - pshufd m1, m0, q2233 - pshufd m0, m0, q0011 -%endif - movq [dstq+strideq*0], m1 - movhps [dstq+strideq*1], m1 - movq [dstq+strideq*2], m0 - movhps [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - dec cntq - jge .loop - RET - -cglobal vp9_ipred_h_16x16, 3, 5, %2, dst, stride, l, stride3, cnt -%if cpuflag(ssse3) - mova m5, [pb_1] - mova m6, [pb_2] - mova m7, [pb_3] - pxor m4, m4 -%endif - lea stride3q, [strideq*3] - mov cntq, 3 -.loop: - movd m3, [lq+cntq*4] -%if cpuflag(ssse3) - pshufb m0, m3, m7 - pshufb m1, m3, m6 -%else - punpcklbw m3, m3 - punpcklwd m3, m3 - pshufd m0, m3, q3333 - pshufd m1, m3, q2222 -%endif - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 -%if cpuflag(ssse3) - pshufb m2, m3, m5 - pshufb m3, m4 -%else - pshufd m2, m3, q1111 - pshufd m3, m3, q0000 -%endif - mova [dstq+strideq*2], m2 - mova [dstq+stride3q ], m3 - lea dstq, [dstq+strideq*4] - dec cntq - jge .loop - RET - -cglobal vp9_ipred_h_32x32, 3, 5, %2, dst, stride, l, stride3, cnt -%if cpuflag(ssse3) - mova m5, [pb_1] - mova m6, [pb_2] - mova m7, [pb_3] - pxor m4, m4 -%endif - lea stride3q, [strideq*3] - mov cntq, 7 -.loop: - movd m3, [lq+cntq*4] -%if cpuflag(ssse3) - pshufb m0, m3, m7 - pshufb m1, m3, m6 -%else - punpcklbw m3, m3 - punpcklwd m3, m3 - pshufd m0, m3, q3333 - pshufd m1, m3, q2222 -%endif - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*1+ 0], m1 - mova [dstq+strideq*1+16], m1 -%if cpuflag(ssse3) - pshufb m2, m3, m5 - pshufb m3, m4 -%else - pshufd m2, m3, q1111 - pshufd m3, m3, q0000 -%endif - mova [dstq+strideq*2+ 0], m2 - mova [dstq+strideq*2+16], m2 - mova [dstq+stride3q + 0], m3 - mova [dstq+stride3q +16], m3 - lea dstq, [dstq+strideq*4] - dec cntq - jge .loop - RET -%endmacro - -INIT_XMM sse2 -H_XMM_FUNCS 2, 4 -INIT_XMM ssse3 -H_XMM_FUNCS 4, 8 -INIT_XMM avx -H_XMM_FUNCS 4, 8 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_ipred_h_32x32, 3, 5, 8, dst, stride, l, stride3, cnt - mova m5, [pb_1] - mova m6, [pb_2] - mova m7, [pb_3] - pxor m4, m4 - lea stride3q, [strideq*3] - mov cntq, 7 -.loop: - movd xm3, [lq+cntq*4] - vinserti128 m3, m3, xm3, 1 - pshufb m0, m3, m7 - pshufb m1, m3, m6 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 - pshufb m2, m3, m5 - pshufb m3, m4 - mova [dstq+strideq*2], m2 - mova [dstq+stride3q ], m3 - lea dstq, [dstq+strideq*4] - dec cntq - jge .loop - RET -%endif - -; tm - -%macro TM_MMX_FUNCS 0 -cglobal vp9_ipred_tm_4x4, 4, 4, 0, dst, stride, l, a - pxor m1, m1 - movd m0, [aq] - pinsrw m2, [aq-1], 0 - punpcklbw m0, m1 - DEFINE_ARGS dst, stride, l, cnt -%if cpuflag(ssse3) - mova m3, [pw_m256] - mova m1, [pw_m255] - pshufb m2, m3 -%else - punpcklbw m2, m1 - pshufw m2, m2, q0000 -%endif - psubw m0, m2 - mov cntq, 1 -.loop: - pinsrw m2, [lq+cntq*2], 0 -%if cpuflag(ssse3) - pshufb m4, m2, m1 - pshufb m2, m3 -%else - punpcklbw m2, m1 - pshufw m4, m2, q1111 - pshufw m2, m2, q0000 -%endif - paddw m4, m0 - paddw m2, m0 - packuswb m4, m4 - packuswb m2, m2 - movd [dstq+strideq*0], m4 - movd [dstq+strideq*1], m2 - lea dstq, [dstq+strideq*2] - dec cntq - jge .loop - RET -%endmacro - -INIT_MMX mmxext -TM_MMX_FUNCS -INIT_MMX ssse3 -TM_MMX_FUNCS - -%macro TM_XMM_FUNCS 0 -cglobal vp9_ipred_tm_8x8, 4, 4, 5, dst, stride, l, a - pxor m1, m1 - movh m0, [aq] - pinsrw m2, [aq-1], 0 - punpcklbw m0, m1 - DEFINE_ARGS dst, stride, l, cnt -%if cpuflag(ssse3) - mova m3, [pw_m256] - mova m1, [pw_m255] - pshufb m2, m3 -%else - punpcklbw m2, m1 - punpcklwd m2, m2 - pshufd m2, m2, q0000 -%endif - psubw m0, m2 - mov cntq, 3 -.loop: - pinsrw m2, [lq+cntq*2], 0 -%if cpuflag(ssse3) - pshufb m4, m2, m1 - pshufb m2, m3 -%else - punpcklbw m2, m1 - punpcklwd m2, m2 - pshufd m4, m2, q1111 - pshufd m2, m2, q0000 -%endif - paddw m4, m0 - paddw m2, m0 - packuswb m4, m2 - movh [dstq+strideq*0], m4 - movhps [dstq+strideq*1], m4 - lea dstq, [dstq+strideq*2] - dec cntq - jge .loop - RET - -cglobal vp9_ipred_tm_16x16, 4, 4, 8, dst, stride, l, a - pxor m3, m3 - mova m0, [aq] - pinsrw m2, [aq-1], 0 - punpckhbw m1, m0, m3 - punpcklbw m0, m3 - DEFINE_ARGS dst, stride, l, cnt -%if cpuflag(ssse3) - mova m4, [pw_m256] - mova m3, [pw_m255] - pshufb m2, m4 -%else - punpcklbw m2, m3 - punpcklwd m2, m2 - pshufd m2, m2, q0000 -%endif - psubw m1, m2 - psubw m0, m2 - mov cntq, 7 -.loop: - pinsrw m7, [lq+cntq*2], 0 -%if cpuflag(ssse3) - pshufb m5, m7, m3 - pshufb m7, m4 -%else - punpcklbw m7, m3 - punpcklwd m7, m7 - pshufd m5, m7, q1111 - pshufd m7, m7, q0000 -%endif - paddw m2, m5, m0 - paddw m5, m1 - paddw m6, m7, m0 - paddw m7, m1 - packuswb m2, m5 - packuswb m6, m7 - mova [dstq+strideq*0], m2 - mova [dstq+strideq*1], m6 - lea dstq, [dstq+strideq*2] - dec cntq - jge .loop - RET - -%if ARCH_X86_64 -%define mem 0 -%else -%define mem 64 -%endif -cglobal vp9_ipred_tm_32x32, 4, 4, 14, mem, dst, stride, l, a - pxor m5, m5 - pinsrw m4, [aq-1], 0 - mova m0, [aq] - mova m2, [aq+16] - DEFINE_ARGS dst, stride, l, cnt -%if cpuflag(ssse3) -%if ARCH_X86_64 - mova m12, [pw_m256] - mova m13, [pw_m255] -%define pw_m256_reg m12 -%define pw_m255_reg m13 -%else -%define pw_m256_reg [pw_m256] -%define pw_m255_reg [pw_m255] -%endif - pshufb m4, pw_m256_reg -%else - punpcklbw m4, m5 - punpcklwd m4, m4 - pshufd m4, m4, q0000 -%endif - punpckhbw m1, m0, m5 - punpckhbw m3, m2, m5 - punpcklbw m0, m5 - punpcklbw m2, m5 - psubw m1, m4 - psubw m0, m4 - psubw m3, m4 - psubw m2, m4 -%if ARCH_X86_64 - SWAP 0, 8 - SWAP 1, 9 - SWAP 2, 10 - SWAP 3, 11 -%else - mova [rsp+0*16], m0 - mova [rsp+1*16], m1 - mova [rsp+2*16], m2 - mova [rsp+3*16], m3 -%endif - mov cntq, 15 -.loop: - pinsrw m3, [lq+cntq*2], 0 -%if cpuflag(ssse3) - pshufb m7, m3, pw_m255_reg - pshufb m3, pw_m256_reg -%else - pxor m7, m7 - punpcklbw m3, m7 - punpcklwd m3, m3 - pshufd m7, m3, q1111 - pshufd m3, m3, q0000 -%endif -%if ARCH_X86_64 - paddw m4, m7, m8 - paddw m5, m7, m9 - paddw m6, m7, m10 - paddw m7, m11 - paddw m0, m3, m8 - paddw m1, m3, m9 - paddw m2, m3, m10 - paddw m3, m11 -%else - paddw m4, m7, [rsp+0*16] - paddw m5, m7, [rsp+1*16] - paddw m6, m7, [rsp+2*16] - paddw m7, [rsp+3*16] - paddw m0, m3, [rsp+0*16] - paddw m1, m3, [rsp+1*16] - paddw m2, m3, [rsp+2*16] - paddw m3, [rsp+3*16] -%endif - packuswb m4, m5 - packuswb m6, m7 - packuswb m0, m1 - packuswb m2, m3 - mova [dstq+strideq*0+ 0], m4 - mova [dstq+strideq*0+16], m6 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m2 - lea dstq, [dstq+strideq*2] - dec cntq - jge .loop - RET -%undef pw_m256_reg -%undef pw_m255_reg -%undef mem -%endmacro - -INIT_XMM sse2 -TM_XMM_FUNCS -INIT_XMM ssse3 -TM_XMM_FUNCS -INIT_XMM avx -TM_XMM_FUNCS - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_ipred_tm_32x32, 4, 4, 8, dst, stride, l, a - pxor m3, m3 - pinsrw xm2, [aq-1], 0 - vinserti128 m2, m2, xm2, 1 - mova m0, [aq] - DEFINE_ARGS dst, stride, l, cnt - mova m4, [pw_m256] - mova m5, [pw_m255] - pshufb m2, m4 - punpckhbw m1, m0, m3 - punpcklbw m0, m3 - psubw m1, m2 - psubw m0, m2 - mov cntq, 15 -.loop: - pinsrw xm7, [lq+cntq*2], 0 - vinserti128 m7, m7, xm7, 1 - pshufb m3, m7, m5 - pshufb m7, m4 - paddw m2, m3, m0 - paddw m3, m1 - paddw m6, m7, m0 - paddw m7, m1 - packuswb m2, m3 - packuswb m6, m7 - mova [dstq+strideq*0], m2 - mova [dstq+strideq*1], m6 - lea dstq, [dstq+strideq*2] - dec cntq - jge .loop - RET -%endif - -; dl - -%macro LOWPASS 4 ; left [dst], center, right, tmp - pxor m%4, m%1, m%3 - pand m%4, [pb_1] - pavgb m%1, m%3 - psubusb m%1, m%4 - pavgb m%1, m%2 -%endmacro - -%macro DL_MMX_FUNCS 0 -cglobal vp9_ipred_dl_4x4, 4, 4, 0, dst, stride, l, a - movq m1, [aq] -%if cpuflag(ssse3) - pshufb m0, m1, [pb_0to5_2x7] - pshufb m2, m1, [pb_2to6_3x7] -%else - punpckhbw m3, m1, m1 ; 44556677 - pand m0, m1, [pb_6xm1_2x0] ; 012345__ - pand m3, [pb_6x0_2xm1] ; ______77 - psrlq m2, m1, 16 ; 234567__ - por m0, m3 ; 01234577 - por m2, m3 ; 23456777 -%endif - psrlq m1, 8 - LOWPASS 0, 1, 2, 3 - - pshufw m1, m0, q3321 - movd [dstq+strideq*0], m0 - movd [dstq+strideq*2], m1 - psrlq m0, 8 - psrlq m1, 8 - add dstq, strideq - movd [dstq+strideq*0], m0 - movd [dstq+strideq*2], m1 - RET -%endmacro - -INIT_MMX mmxext -DL_MMX_FUNCS -INIT_MMX ssse3 -DL_MMX_FUNCS - -%macro DL_XMM_FUNCS 0 -cglobal vp9_ipred_dl_8x8, 4, 4, 4, dst, stride, stride5, a - movq m0, [aq] - lea stride5q, [strideq*5] -%if cpuflag(ssse3) - pshufb m1, m0, [pb_1to6_10x7] -%else - punpcklbw m1, m0, m0 ; 0011223344556677 - punpckhwd m1, m1 ; 4x4,4x5,4x6,4x7 -%endif - shufps m0, m1, q3310 -%if notcpuflag(ssse3) - psrldq m1, m0, 1 - shufps m1, m0, q3210 -%endif - psrldq m2, m1, 1 - LOWPASS 0, 1, 2, 3 - - pshufd m1, m0, q3321 - movq [dstq+strideq*0], m0 - movq [dstq+strideq*4], m1 - psrldq m0, 1 - psrldq m1, 1 - movq [dstq+strideq*1], m0 - movq [dstq+stride5q ], m1 - lea dstq, [dstq+strideq*2] - psrldq m0, 1 - psrldq m1, 1 - movq [dstq+strideq*0], m0 - movq [dstq+strideq*4], m1 - psrldq m0, 1 - psrldq m1, 1 - movq [dstq+strideq*1], m0 - movq [dstq+stride5q ], m1 - RET - -cglobal vp9_ipred_dl_16x16, 4, 4, 6, dst, stride, l, a - mova m0, [aq] -%if cpuflag(ssse3) - mova m5, [pb_1toE_2xF] - pshufb m1, m0, m5 - pshufb m2, m1, m5 - pshufb m4, m0, [pb_15] -%else - pand m5, m0, [pb_15x0_1xm1] ; _______________F - psrldq m1, m0, 1 ; 123456789ABCDEF_ - por m1, m5 ; 123456789ABCDEFF - psrldq m2, m1, 1 ; 23456789ABCDEFF_ - por m2, m5 ; 23456789ABCDEFFF - pshufhw m4, m1, q3333 ; xxxxxxxxFFFFFFFF -%endif - LOWPASS 0, 1, 2, 3 - DEFINE_ARGS dst, stride, cnt, stride9 - lea stride9q, [strideq+strideq*8] - mov cntd, 4 - -.loop: - movhlps m4, m0 - mova [dstq+strideq*0], m0 -%if cpuflag(ssse3) - pshufb m0, m5 -%else - psrldq m0, 1 - por m0, m5 -%endif - mova [dstq+strideq*8], m4 - movhlps m4, m0 - mova [dstq+strideq*1], m0 -%if cpuflag(ssse3) - pshufb m0, m5 -%else - psrldq m0, 1 - por m0, m5 -%endif - mova [dstq+stride9q ], m4 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dl_32x32, 4, 5, 8, dst, stride, cnt, a, dst16 - mova m0, [aq] - mova m1, [aq+16] - PALIGNR m2, m1, m0, 1, m4 - PALIGNR m3, m1, m0, 2, m4 - LOWPASS 0, 2, 3, 4 -%if cpuflag(ssse3) - mova m5, [pb_1toE_2xF] - pshufb m2, m1, m5 - pshufb m3, m2, m5 - pshufb m6, m1, [pb_15] - mova m7, m6 -%else - pand m5, m1, [pb_15x0_1xm1] ; _______________F - psrldq m2, m1, 1 ; 123456789ABCDEF_ - por m2, m5 ; 123456789ABCDEFF - psrldq m3, m2, 1 ; 23456789ABCDEFF_ - por m3, m5 ; 23456789ABCDEFFF - pshufhw m7, m2, q3333 ; xxxxxxxxFFFFFFFF - pshufd m6, m7, q3333 -%endif - LOWPASS 1, 2, 3, 4 - lea dst16q, [dstq +strideq*8] - mov cntd, 8 - lea dst16q, [dst16q+strideq*8] -.loop: - movhlps m7, m1 - mova [dstq +strideq*0+ 0], m0 - mova [dstq +strideq*0+16], m1 - movhps [dstq+strideq*8+ 0], m0 - movq [dstq +strideq*8+ 8], m1 - mova [dstq +strideq*8+16], m7 - mova [dst16q+strideq*0+ 0], m1 - mova [dst16q+strideq*0+16], m6 - mova [dst16q+strideq*8+ 0], m7 - mova [dst16q+strideq*8+16], m6 -%if cpuflag(avx) - vpalignr m0, m1, m0, 1 - pshufb m1, m5 -%elif cpuflag(ssse3) - palignr m2, m1, m0, 1 - pshufb m1, m5 - mova m0, m2 -%else - mova m4, m1 - psrldq m0, 1 - pslldq m4, 15 - psrldq m1, 1 - por m0, m4 - por m1, m5 -%endif - add dstq, strideq - add dst16q, strideq - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -DL_XMM_FUNCS -INIT_XMM ssse3 -DL_XMM_FUNCS -INIT_XMM avx -DL_XMM_FUNCS - -; dr - -%macro DR_MMX_FUNCS 0 -cglobal vp9_ipred_dr_4x4, 4, 4, 0, dst, stride, l, a - movd m0, [lq] - punpckldq m0, [aq-1] - movd m1, [aq+3] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - PALIGNR m1, m0, 1, m3 - psrlq m2, m1, 8 - LOWPASS 0, 1, 2, 3 - - movd [dstq+stride3q ], m0 - psrlq m0, 8 - movd [dstq+strideq*2], m0 - psrlq m0, 8 - movd [dstq+strideq*1], m0 - psrlq m0, 8 - movd [dstq+strideq*0], m0 - RET -%endmacro - -INIT_MMX mmxext -DR_MMX_FUNCS -INIT_MMX ssse3 -DR_MMX_FUNCS - -%macro DR_XMM_FUNCS 0 -cglobal vp9_ipred_dr_8x8, 4, 4, 4, dst, stride, l, a - movq m1, [lq] - movhps m1, [aq-1] - movd m2, [aq+7] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pslldq m0, m1, 1 - PALIGNR m2, m1, 1, m3 - LOWPASS 0, 1, 2, 3 - - movhps [dstq+strideq*0], m0 - pslldq m0, 1 - movhps [dstq+strideq*1], m0 - pslldq m0, 1 - movhps [dstq+strideq*2], m0 - pslldq m0, 1 - movhps [dstq+stride3q ], m0 - pslldq m0, 1 - lea dstq, [dstq+strideq*4] - movhps [dstq+strideq*0], m0 - pslldq m0, 1 - movhps [dstq+strideq*1], m0 - pslldq m0, 1 - movhps [dstq+strideq*2], m0 - pslldq m0, 1 - movhps [dstq+stride3q ], m0 - RET - -cglobal vp9_ipred_dr_16x16, 4, 4, 6, dst, stride, l, a - mova m1, [lq] - movu m2, [aq-1] - movd m4, [aq+15] - DEFINE_ARGS dst, stride, stride9, cnt - lea stride9q, [strideq *3] - mov cntd, 4 - lea stride9q, [stride9q*3] - PALIGNR m4, m2, 1, m5 - PALIGNR m3, m2, m1, 15, m5 - LOWPASS 3, 2, 4, 5 - pslldq m0, m1, 1 - PALIGNR m2, m1, 1, m4 - LOWPASS 0, 1, 2, 4 - -.loop: - mova [dstq+strideq*0 ], m3 - movhps [dstq+strideq*8+0], m0 - movq [dstq+strideq*8+8], m3 - PALIGNR m3, m0, 15, m1 - pslldq m0, 1 - mova [dstq+strideq*1 ], m3 - movhps [dstq+stride9q +0], m0 - movq [dstq+stride9q +8], m3 - PALIGNR m3, m0, 15, m1 - pslldq m0, 1 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dr_32x32, 4, 4, 8, dst, stride, l, a - mova m1, [lq] - mova m2, [lq+16] - movu m3, [aq-1] - movu m4, [aq+15] - movd m5, [aq+31] - DEFINE_ARGS dst, stride, stride8, cnt - lea stride8q, [strideq*8] - PALIGNR m5, m4, 1, m7 - PALIGNR m6, m4, m3, 15, m7 - LOWPASS 5, 4, 6, 7 - PALIGNR m4, m3, 1, m7 - PALIGNR m6, m3, m2, 15, m7 - LOWPASS 4, 3, 6, 7 - PALIGNR m3, m2, 1, m7 - PALIGNR m6, m2, m1, 15, m7 - LOWPASS 3, 2, 6, 7 - PALIGNR m2, m1, 1, m6 - pslldq m0, m1, 1 - LOWPASS 2, 1, 0, 6 - mov cntd, 16 - - ; out=m2/m3/m4/m5 -.loop: - mova [dstq+stride8q*0+ 0], m4 - mova [dstq+stride8q*0+16], m5 - mova [dstq+stride8q*2+ 0], m3 - mova [dstq+stride8q*2+16], m4 - PALIGNR m5, m4, 15, m6 - PALIGNR m4, m3, 15, m6 - PALIGNR m3, m2, 15, m6 - pslldq m2, 1 - add dstq, strideq - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -DR_XMM_FUNCS -INIT_XMM ssse3 -DR_XMM_FUNCS -INIT_XMM avx -DR_XMM_FUNCS - -; vl - -INIT_MMX mmxext -cglobal vp9_ipred_vl_4x4, 4, 4, 0, dst, stride, l, a - movq m0, [aq] - psrlq m1, m0, 8 - psrlq m2, m1, 8 - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - movd [dstq+strideq*0], m1 - movd [dstq+strideq*1], m2 - lea dstq, [dstq+strideq*2] - psrlq m1, 8 - psrlq m2, 8 - movd [dstq+strideq*0], m1 - movd [dstq+strideq*1], m2 - RET - -%macro VL_XMM_FUNCS 0 -cglobal vp9_ipred_vl_8x8, 4, 4, 4, dst, stride, l, a - movq m0, [aq] -%if cpuflag(ssse3) - pshufb m0, [pb_0to6_9x7] -%else - punpcklbw m1, m0, m0 - punpckhwd m1, m1 - shufps m0, m1, q3310 -%endif - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - psrldq m1, m0, 1 - psrldq m2, m0, 2 - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - - movq [dstq+strideq*0], m1 - movq [dstq+strideq*1], m2 - psrldq m1, 1 - psrldq m2, 1 - movq [dstq+strideq*2], m1 - movq [dstq+stride3q ], m2 - lea dstq, [dstq+strideq*4] - psrldq m1, 1 - psrldq m2, 1 - movq [dstq+strideq*0], m1 - movq [dstq+strideq*1], m2 - psrldq m1, 1 - psrldq m2, 1 - movq [dstq+strideq*2], m1 - movq [dstq+stride3q ], m2 - RET - -cglobal vp9_ipred_vl_16x16, 4, 4, 5, dst, stride, l, a - mova m0, [aq] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] -%if cpuflag(ssse3) - mova m4, [pb_1toE_2xF] - pshufb m1, m0, m4 - pshufb m2, m1, m4 -%else - pand m4, m0, [pb_15x0_1xm1] ; _______________F - psrldq m1, m0, 1 ; 123456789ABCDEF_ - por m1, m4 ; 123456789ABCDEFF - psrldq m2, m1, 1 ; 23456789ABCDEFF_ - por m2, m4 ; 23456789ABCDEFFF -%endif - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - mov cntd, 4 -.loop: - mova [dstq+strideq*0], m1 - mova [dstq+strideq*1], m2 -%if cpuflag(ssse3) - pshufb m1, m4 - pshufb m2, m4 -%else - psrldq m1, 1 - psrldq m2, 1 - por m1, m4 - por m2, m4 -%endif - mova [dstq+strideq*2], m1 - mova [dstq+stride3q ], m2 -%if cpuflag(ssse3) - pshufb m1, m4 - pshufb m2, m4 -%else - psrldq m1, 1 - psrldq m2, 1 - por m1, m4 - por m2, m4 -%endif - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -cglobal vp9_ipred_vl_32x32, 4, 4, 7, dst, stride, l, a - mova m0, [aq] - mova m5, [aq+16] - DEFINE_ARGS dst, stride, dst16, cnt - PALIGNR m2, m5, m0, 1, m4 - PALIGNR m3, m5, m0, 2, m4 - lea dst16q, [dstq +strideq*8] - LOWPASS 3, 2, 0, 6 - pavgb m2, m0 -%if cpuflag(ssse3) - mova m4, [pb_1toE_2xF] - pshufb m0, m5, m4 - pshufb m1, m0, m4 -%else - pand m4, m5, [pb_15x0_1xm1] ; _______________F - psrldq m0, m5, 1 ; 123456789ABCDEF_ - por m0, m4 ; 123456789ABCDEFF - psrldq m1, m0, 1 ; 23456789ABCDEFF_ - por m1, m4 ; 23456789ABCDEFFF -%endif - lea dst16q, [dst16q+strideq*8] - LOWPASS 1, 0, 5, 6 - pavgb m0, m5 -%if cpuflag(ssse3) - pshufb m5, [pb_15] -%else - punpckhbw m5, m4, m4 - pshufhw m5, m5, q3333 - punpckhqdq m5, m5 -%endif - mov cntd, 8 - -.loop: -%macro %%write 3 - mova [dstq+stride%1+ 0], %2 - mova [dstq+stride%1+16], %3 - movhps [dst16q+stride%1 ], %2 - movu [dst16q+stride%1+ 8], %3 - movq [dst16q+stride%1+24], m5 -%if cpuflag(avx) - palignr %2, %3, %2, 1 - pshufb %3, m4 -%elif cpuflag(ssse3) - palignr m6, %3, %2, 1 - pshufb %3, m4 - mova %2, m6 -%else - pslldq m6, %3, 15 - psrldq %3, 1 - psrldq %2, 1 - por %3, m4 - por %2, m6 -%endif -%endmacro - - %%write q*0, m2, m0 - %%write q*1, m3, m1 - lea dstq, [dstq +strideq*2] - lea dst16q, [dst16q+strideq*2] - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -VL_XMM_FUNCS -INIT_XMM ssse3 -VL_XMM_FUNCS -INIT_XMM avx -VL_XMM_FUNCS - -; vr - -%macro VR_MMX_FUNCS 0 -cglobal vp9_ipred_vr_4x4, 4, 4, 0, dst, stride, l, a - movq m1, [aq-1] - punpckldq m2, [lq] - movd m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pavgb m0, m1 - PALIGNR m1, m2, 5, m3 - psrlq m2, m1, 8 - psllq m3, m1, 8 - LOWPASS 2, 1, 3, 4 - - ; ABCD <- for the following predictor: - ; EFGH - ; IABC | m0 contains ABCDxxxx - ; JEFG | m2 contains xJIEFGHx - -%if cpuflag(ssse3) - punpckldq m0, m2 - pshufb m2, [pb_13456_3xm1] - movd [dstq+strideq*0], m0 - pshufb m0, [pb_6012_4xm1] - movd [dstq+stride3q ], m2 - psrlq m2, 8 - movd [dstq+strideq*2], m0 - movd [dstq+strideq*1], m2 -%else - psllq m1, m2, 40 - psrlq m2, 24 - movd [dstq+strideq*0], m0 - movd [dstq+strideq*1], m2 - PALIGNR m0, m1, 7, m3 - psllq m1, 8 - PALIGNR m2, m1, 7, m3 - movd [dstq+strideq*2], m0 - movd [dstq+stride3q ], m2 -%endif - RET -%endmacro - -INIT_MMX mmxext -VR_MMX_FUNCS -INIT_MMX ssse3 -VR_MMX_FUNCS - -%macro VR_XMM_FUNCS 1 ; n_xmm_regs for 16x16 -cglobal vp9_ipred_vr_8x8, 4, 4, 5, dst, stride, l, a - movu m1, [aq-1] - movhps m2, [lq] - movq m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pavgb m0, m1 - PALIGNR m1, m2, 9, m3 - pslldq m2, m1, 1 - pslldq m3, m1, 2 - LOWPASS 1, 2, 3, 4 - - ; ABCDEFGH <- for the following predictor: - ; IJKLMNOP - ; QABCDEFG | m0 contains ABCDEFGHxxxxxxxx - ; RIJKLMNO | m1 contains xxVUTSRQIJKLMNOP - ; SQABCDEF - ; TRIJKLMN - ; USQABCDE - ; VTRIJKLM - -%if cpuflag(ssse3) - punpcklqdq m0, m1 ; ABCDEFGHxxVUTSRQ -%endif - movq [dstq+strideq*0], m0 - movhps [dstq+strideq*1], m1 -%if cpuflag(ssse3) - pshufb m0, [pb_6xm1_BDF_0to6] ; xxxxxxUSQABCDEFG - pshufb m1, [pb_6xm1_246_8toE] ; xxxxxxVTRIJKLMNO -%else - psrlw m2, m1, 8 ; x_U_S_Q_xxxxxxxx - pand m3, m1, [pw_255] ; x_V_T_R_xxxxxxxx - packuswb m3, m2 ; xVTRxxxxxUSQxxxx - pslldq m3, 4 ; xxxxxVTRxxxxxUSQ - PALIGNR m0, m3, 7, m4 ; xxxxxxUSQABCDEFG - psrldq m1, 8 - pslldq m3, 8 - PALIGNR m1, m3, 7, m4 ; xxxxxxVTRIJKLMNO -%endif - movhps [dstq+strideq*2], m0 - movhps [dstq+stride3q ], m1 - lea dstq, [dstq+strideq*4] - pslldq m0, 1 - pslldq m1, 1 - movhps [dstq+strideq*0], m0 - movhps [dstq+strideq*1], m1 - pslldq m0, 1 - pslldq m1, 1 - movhps [dstq+strideq*2], m0 - movhps [dstq+stride3q ], m1 - RET - -cglobal vp9_ipred_vr_16x16, 4, 4, %1, dst, stride, l, a - mova m0, [aq] - movu m1, [aq-1] - mova m2, [lq] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - PALIGNR m3, m1, m2, 15, m6 - LOWPASS 3, 1, 0, 4 - pavgb m0, m1 - PALIGNR m1, m2, 1, m6 - pslldq m4, m2, 1 - LOWPASS 1, 2, 4, 5 -%if cpuflag(ssse3) - pshufb m1, [pb_02468ACE_13579BDF] -%else - psrlw m5, m1, 8 - pand m1, [pw_255] - packuswb m1, m5 -%endif - mov cntd, 4 - -.loop: - movlhps m2, m1 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m3 - PALIGNR m4, m0, m1, 15, m6 - PALIGNR m5, m3, m2, 15, m6 - mova [dstq+strideq*2], m4 - mova [dstq+stride3q ], m5 - lea dstq, [dstq+strideq*4] - PALIGNR m0, m1, 14, m6 - PALIGNR m3, m2, 14, m6 - pslldq m1, 2 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_vr_32x32, 4, 4, 9, dst, stride, l, a - mova m0, [aq] - mova m2, [aq+16] - movu m1, [aq-1] - PALIGNR m3, m2, m0, 15, m6 - PALIGNR m4, m2, m0, 14, m6 - LOWPASS 4, 3, 2, 5 - pavgb m3, m2 - mova m2, [lq+16] - PALIGNR m5, m1, m2, 15, m6 - LOWPASS 5, 1, 0, 6 - pavgb m0, m1 - mova m6, [lq] -%if ARCH_X86_64 - SWAP 0, 8 -%else - mova [dstq], m0 -%endif - PALIGNR m1, m2, 1, m0 - PALIGNR m7, m2, m6, 15, m0 - LOWPASS 1, 2, 7, 0 - PALIGNR m2, m6, 1, m0 - pslldq m7, m6, 1 - LOWPASS 2, 6, 7, 0 -%if cpuflag(ssse3) - pshufb m1, [pb_02468ACE_13579BDF] - pshufb m2, [pb_02468ACE_13579BDF] -%else - psrlw m0, m1, 8 - psrlw m6, m2, 8 - pand m1, [pw_255] - pand m2, [pw_255] - packuswb m1, m0 - packuswb m2, m6 -%endif - DEFINE_ARGS dst, stride, dst16, cnt - lea dst16q, [dstq +strideq*8] - lea dst16q, [dst16q+strideq*8] - SBUTTERFLY qdq, 2, 1, 6 -%if ARCH_X86_64 - SWAP 0, 8 -%else - mova m0, [dstq] -%endif - mov cntd, 8 - -.loop: - ; even lines (0, 2, 4, ...): m1 | m0, m3 - ; odd lines (1, 3, 5, ...): m2 | m5, m4 -%macro %%write 4 - mova [dstq+stride%1+ 0], %3 - mova [dstq+stride%1+16], %4 - movhps [dst16q+stride%1 ], %2 - movu [dst16q+stride%1+ 8], %3 - movq [dst16q+stride%1+24], %4 - PALIGNR %4, %3, 15, m6 - PALIGNR %3, %2, 15, m6 - pslldq %2, 1 -%endmacro - - %%write q*0, m1, m0, m3 - %%write q*1, m2, m5, m4 - lea dstq, [dstq +strideq*2] - lea dst16q, [dst16q+strideq*2] - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -VR_XMM_FUNCS 7 -INIT_XMM ssse3 -VR_XMM_FUNCS 6 -INIT_XMM avx -VR_XMM_FUNCS 6 - -; hd - -INIT_MMX mmxext -cglobal vp9_ipred_hd_4x4, 4, 4, 0, dst, stride, l, a - movd m0, [lq] - punpckldq m0, [aq-1] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - psrlq m1, m0, 8 - psrlq m2, m1, 8 - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - - ; DHIJ <- for the following predictor: - ; CGDH - ; BFCG | m1 contains ABCDxxxx - ; AEBF | m2 contains EFGHIJxx - - punpcklbw m1, m2 - punpckhdq m0, m1, m2 - - ; m1 contains AEBFCGDH - ; m0 contains CGDHIJxx - - movd [dstq+stride3q ], m1 - movd [dstq+strideq*1], m0 - psrlq m1, 16 - psrlq m0, 16 - movd [dstq+strideq*2], m1 - movd [dstq+strideq*0], m0 - RET - -%macro HD_XMM_FUNCS 0 -cglobal vp9_ipred_hd_8x8, 4, 4, 5, dst, stride, l, a - movq m0, [lq] - movhps m0, [aq-1] - DEFINE_ARGS dst, stride, stride3, dst4 - lea stride3q, [strideq*3] - lea dst4q, [dstq+strideq*4] - psrldq m1, m0, 1 - psrldq m2, m1, 1 - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - - ; HPQRSTUV <- for the following predictor - ; GOHPQRST - ; FNGOHPQR | m1 contains ABCDEFGHxxxxxxxx - ; EMFNGOHP | m2 contains IJKLMNOPQRSTUVxx - ; DLEMFNGO - ; CKDLEMFN - ; BJCKDLEM - ; AIBJCKDL - - punpcklbw m1, m2 - movhlps m2, m2 - - ; m1 contains AIBJCKDLEMFNGOHP - ; m2 contains QRSTUVxxxxxxxxxx - - movhps [dstq +stride3q ], m1 - movq [dst4q+stride3q ], m1 - PALIGNR m3, m2, m1, 2, m4 - movhps [dstq +strideq*2], m3 - movq [dst4q+strideq*2], m3 - PALIGNR m3, m2, m1, 4, m4 - movhps [dstq +strideq*1], m3 - movq [dst4q+strideq*1], m3 - PALIGNR m2, m1, 6, m4 - movhps [dstq +strideq*0], m2 - movq [dst4q+strideq*0], m2 - RET - -cglobal vp9_ipred_hd_16x16, 4, 6, 7, dst, stride, l, a - mova m0, [lq] - movu m3, [aq-1] - DEFINE_ARGS dst, stride, stride4, dst4, dst8, dst12 - lea stride4q, [strideq*4] - lea dst4q, [dstq +stride4q] - lea dst8q, [dst4q+stride4q] - lea dst12q, [dst8q+stride4q] - psrldq m4, m3, 1 - psrldq m5, m3, 2 - LOWPASS 5, 4, 3, 6 - PALIGNR m1, m3, m0, 1, m6 - PALIGNR m2, m3, m0, 2, m6 - LOWPASS 2, 1, 0, 6 - pavgb m1, m0 - SBUTTERFLY bw, 1, 2, 6 - - ; I PROBABLY INVERTED L0 ad L16 here - ; m1, m2, m5 -.loop: - sub stride4q, strideq - movhps [dstq +stride4q +0], m2 - movq [dstq +stride4q +8], m5 - mova [dst4q+stride4q ], m2 - movhps [dst8q+stride4q +0], m1 - movq [dst8q+stride4q +8], m2 - mova [dst12q+stride4q ], m1 -%if cpuflag(avx) - palignr m1, m2, m1, 2 - palignr m2, m5, m2, 2 -%elif cpuflag(ssse3) - palignr m3, m2, m1, 2 - palignr m0, m5, m2, 2 - mova m1, m3 - mova m2, m0 -%else - ; slightly modified version of PALIGNR - mova m6, m2 - mova m4, m5 - pslldq m6, 14 - pslldq m4, 14 - psrldq m1, 2 - psrldq m2, 2 - por m1, m6 - por m2, m4 -%endif - psrldq m5, 2 - jg .loop - RET - -cglobal vp9_ipred_hd_32x32, 4, 6, 8, dst, stride, l, a - mova m0, [lq] - mova m1, [lq+16] - movu m2, [aq-1] - movu m3, [aq+15] - DEFINE_ARGS dst, stride, stride8, dst8, dst16, dst24 - lea stride8q, [strideq*8] - lea dst8q, [dstq +stride8q] - lea dst16q, [dst8q +stride8q] - lea dst24q, [dst16q+stride8q] - psrldq m4, m3, 1 - psrldq m5, m3, 2 - LOWPASS 5, 4, 3, 6 - PALIGNR m4, m3, m2, 2, m6 - PALIGNR m3, m2, 1, m6 - LOWPASS 4, 3, 2, 6 - PALIGNR m3, m2, m1, 2, m6 - PALIGNR m2, m1, 1, m6 - LOWPASS 3, 2, 1, 6 - pavgb m2, m1 - PALIGNR m6, m1, m0, 1, m7 - PALIGNR m1, m0, 2, m7 - LOWPASS 1, 6, 0, 7 - pavgb m0, m6 - SBUTTERFLY bw, 2, 3, 6 - SBUTTERFLY bw, 0, 1, 6 - - ; m0, m1, m2, m3, m4, m5 -.loop: - sub stride8q, strideq - mova [dstq +stride8q+ 0], m3 - mova [dstq +stride8q+16], m4 - mova [dst8q +stride8q+ 0], m2 - mova [dst8q +stride8q+16], m3 - mova [dst16q+stride8q+ 0], m1 - mova [dst16q+stride8q+16], m2 - mova [dst24q+stride8q+ 0], m0 - mova [dst24q+stride8q+16], m1 -%if cpuflag(avx) - palignr m0, m1, m0, 2 - palignr m1, m2, m1, 2 - palignr m2, m3, m2, 2 - palignr m3, m4, m3, 2 - palignr m4, m5, m4, 2 - psrldq m5, 2 -%elif cpuflag(ssse3) - psrldq m6, m5, 2 - palignr m5, m4, 2 - palignr m4, m3, 2 - palignr m3, m2, 2 - palignr m2, m1, 2 - palignr m1, m0, 2 - mova m0, m1 - mova m1, m2 - mova m2, m3 - mova m3, m4 - mova m4, m5 - mova m5, m6 -%else - ; sort of a half-integrated version of PALIGNR - pslldq m7, m4, 14 - pslldq m6, m5, 14 - psrldq m4, 2 - psrldq m5, 2 - por m4, m6 - pslldq m6, m3, 14 - psrldq m3, 2 - por m3, m7 - pslldq m7, m2, 14 - psrldq m2, 2 - por m2, m6 - pslldq m6, m1, 14 - psrldq m1, 2 - por m1, m7 - psrldq m0, 2 - por m0, m6 -%endif - jg .loop - RET -%endmacro - -INIT_XMM sse2 -HD_XMM_FUNCS -INIT_XMM ssse3 -HD_XMM_FUNCS -INIT_XMM avx -HD_XMM_FUNCS - -%macro HU_MMX_FUNCS 0 -cglobal vp9_ipred_hu_4x4, 3, 3, 0, dst, stride, l - movd m0, [lq] -%if cpuflag(ssse3) - pshufb m0, [pb_0to2_5x3] -%else - punpcklbw m1, m0, m0 ; 00112233 - pshufw m1, m1, q3333 ; 33333333 - punpckldq m0, m1 ; 01233333 -%endif - psrlq m1, m0, 8 - psrlq m2, m1, 8 - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - SBUTTERFLY bw, 1, 2, 0 - PALIGNR m2, m1, 2, m0 - movd [dstq+strideq*0], m1 - movd [dstq+strideq*1], m2 - punpckhdq m1, m1 - punpckhdq m2, m2 - movd [dstq+strideq*2], m1 - movd [dstq+stride3q ], m2 - RET -%endmacro - -INIT_MMX mmxext -HU_MMX_FUNCS -INIT_MMX ssse3 -HU_MMX_FUNCS - -%macro HU_XMM_FUNCS 1 ; n_xmm_regs in hu_32x32 -cglobal vp9_ipred_hu_8x8, 3, 4, 4, dst, stride, l - movq m0, [lq] -%if cpuflag(ssse3) - pshufb m0, [pb_0to6_9x7] -%else - punpcklbw m1, m0, m0 ; 0011223344556677 - punpckhwd m1, m1 ; 4444555566667777 - shufps m0, m1, q3310 ; 0123456777777777 -%endif - psrldq m1, m0, 1 - psrldq m2, m1, 1 - LOWPASS 2, 1, 0, 3 - pavgb m1, m0 - DEFINE_ARGS dst, stride, stride3, dst4 - lea stride3q, [strideq*3] - lea dst4q, [dstq+strideq*4] - SBUTTERFLY bw, 1, 2, 0 - movq [dstq +strideq*0], m1 - movhps [dst4q+strideq*0], m1 - PALIGNR m0, m2, m1, 2, m3 - movq [dstq +strideq*1], m0 - movhps [dst4q+strideq*1], m0 - PALIGNR m0, m2, m1, 4, m3 - movq [dstq +strideq*2], m0 - movhps [dst4q+strideq*2], m0 - PALIGNR m2, m1, 6, m3 - movq [dstq +stride3q ], m2 - movhps [dst4q+stride3q ], m2 - RET - -cglobal vp9_ipred_hu_16x16, 3, 4, 5, dst, stride, l - mova m0, [lq] -%if cpuflag(ssse3) - mova m3, [pb_2toE_3xF] - pshufb m1, m0, [pb_1toE_2xF] - pshufb m2, m0, m3 -%else - pand m3, m0, [pb_15x0_1xm1] - psrldq m1, m0, 1 - por m1, m3 - punpckhbw m3, m3 - psrldq m2, m0, 2 - por m2, m3 -%endif - LOWPASS 2, 1, 0, 4 - pavgb m1, m0 - DEFINE_ARGS dst, stride, stride9, cnt - lea stride9q, [strideq*8+strideq] - mov cntd, 4 - SBUTTERFLY bw, 1, 2, 0 - -.loop: - mova [dstq+strideq*0], m1 - mova [dstq+strideq*8], m2 - PALIGNR m0, m2, m1, 2, m4 -%if cpuflag(ssse3) - pshufb m2, m3 -%else - psrldq m2, 2 - por m2, m3 -%endif - mova [dstq+strideq*1], m0 - mova [dstq+stride9q ], m2 - PALIGNR m1, m2, m0, 2, m4 -%if cpuflag(ssse3) - pshufb m2, m3 -%else - psrldq m2, 2 - por m2, m3 -%endif - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop - RET - -cglobal vp9_ipred_hu_32x32, 3, 7, %1, dst, stride, l - mova m1, [lq] - mova m0, [lq+16] - PALIGNR m2, m0, m1, 1, m5 - PALIGNR m3, m0, m1, 2, m5 - LOWPASS 3, 2, 1, 5 - pavgb m2, m1 -%if cpuflag(ssse3) - mova m4, [pb_2toE_3xF] - pshufb m5, m0, [pb_1toE_2xF] - pshufb m1, m0, m4 -%else - pand m4, m0, [pb_15x0_1xm1] - psrldq m5, m0, 1 - por m5, m4 - punpckhbw m4, m4 - psrldq m1, m0, 2 - por m1, m4 -%endif - LOWPASS 1, 5, 0, 6 - pavgb m0, m5 - DEFINE_ARGS dst, stride, cnt, stride0, dst8, dst16, dst24 - mov cntd, 8 - xor stride0q, stride0q - lea dst8q, [dstq +strideq*8] - lea dst16q, [dst8q +strideq*8] - lea dst24q, [dst16q+strideq*8] - SBUTTERFLY bw, 0, 1, 5 - SBUTTERFLY bw, 2, 3, 5 -%if cpuflag(ssse3) - pshufb m6, m1, [pb_15] -%else - pshufhw m6, m4, q3333 - punpckhqdq m6, m6 -%endif - -.loop: - mova [dstq +stride0q+ 0], m2 - mova [dstq +stride0q+16], m3 - mova [dst8q +stride0q+ 0], m3 - mova [dst8q +stride0q+16], m0 - mova [dst16q+stride0q+ 0], m0 - mova [dst16q+stride0q+16], m1 - mova [dst24q+stride0q+ 0], m1 - mova [dst24q+stride0q+16], m6 -%if cpuflag(avx) - palignr m2, m3, m2, 2 - palignr m3, m0, m3, 2 - palignr m0, m1, m0, 2 - pshufb m1, m4 -%elif cpuflag(ssse3) - pshufb m5, m1, m4 - palignr m1, m0, 2 - palignr m0, m3, 2 - palignr m3, m2, 2 - mova m2, m3 - mova m3, m0 - mova m0, m1 - mova m1, m5 -%else - ; half-integrated version of PALIGNR - pslldq m5, m1, 14 - pslldq m7, m0, 14 - psrldq m1, 2 - psrldq m0, 2 - por m1, m4 - por m0, m5 - pslldq m5, m3, 14 - psrldq m3, 2 - por m3, m7 - psrldq m2, 2 - por m2, m5 -%endif - add stride0q, strideq - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -HU_XMM_FUNCS 8 -INIT_XMM ssse3 -HU_XMM_FUNCS 7 -INIT_XMM avx -HU_XMM_FUNCS 7 - -; FIXME 127, 128, 129 ? diff --git a/libavcodec/x86/vp9intrapred_16bpp.asm b/libavcodec/x86/vp9intrapred_16bpp.asm deleted file mode 100644 index 32b698243a..0000000000 --- a/libavcodec/x86/vp9intrapred_16bpp.asm +++ /dev/null @@ -1,2392 +0,0 @@ -;****************************************************************************** -;* VP9 Intra prediction SIMD optimizations -;* -;* Copyright (c) 2015 Ronald S. Bultje -;* Copyright (c) 2015 Henrik Gramner -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pd_2: times 8 dd 2 -pd_4: times 8 dd 4 -pd_8: times 8 dd 8 - -pb_2to15_14_15: db 2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,15 -pb_4_5_8to13_8x0: db 4,5,8,9,10,11,12,13,0,0,0,0,0,0,0,0 -pb_0to7_67x4: db 0,1,2,3,4,5,6,7,6,7,6,7,6,7,6,7 - -cextern pw_1 -cextern pw_1023 -cextern pw_4095 -cextern pd_16 -cextern pd_32 -cextern pd_65535; - -; FIXME most top-only functions (ddl, vl, v, dc_top) can be modified to take -; only 3 registers on x86-32, which would make it one cycle faster, but that -; would make the code quite a bit uglier... - -SECTION .text - -%macro SCRATCH 3-4 -%if ARCH_X86_64 - SWAP %1, %2 -%if %0 == 4 -%define reg_%4 m%2 -%endif -%else - mova [%3], m%1 -%if %0 == 4 -%define reg_%4 [%3] -%endif -%endif -%endmacro - -%macro UNSCRATCH 3-4 -%if ARCH_X86_64 - SWAP %1, %2 -%else - mova m%1, [%3] -%endif -%if %0 == 4 -%undef reg_%4 -%endif -%endmacro - -%macro PRELOAD 2-3 -%if ARCH_X86_64 - mova m%1, [%2] -%if %0 == 3 -%define reg_%3 m%1 -%endif -%elif %0 == 3 -%define reg_%3 [%2] -%endif -%endmacro - -INIT_MMX mmx -cglobal vp9_ipred_v_4x4_16, 2, 4, 1, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - RET - -INIT_XMM sse -cglobal vp9_ipred_v_8x8_16, 2, 4, 1, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - RET - -INIT_XMM sse -cglobal vp9_ipred_v_16x16_16, 2, 4, 2, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] - mova m1, [aq+mmsize] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m1 - mova [dstq+strideq*2+ 0], m0 - mova [dstq+strideq*2+16], m1 - mova [dstq+stride3q + 0], m0 - mova [dstq+stride3q +16], m1 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -INIT_XMM sse -cglobal vp9_ipred_v_32x32_16, 2, 4, 4, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq+mmsize*0] - mova m1, [aq+mmsize*1] - mova m2, [aq+mmsize*2] - mova m3, [aq+mmsize*3] - DEFINE_ARGS dst, stride, cnt - mov cntd, 16 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*0+32], m2 - mova [dstq+strideq*0+48], m3 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m1 - mova [dstq+strideq*1+32], m2 - mova [dstq+strideq*1+48], m3 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop - RET - -INIT_MMX mmxext -cglobal vp9_ipred_h_4x4_16, 3, 3, 4, dst, stride, l, a - mova m3, [lq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pshufw m0, m3, q3333 - pshufw m1, m3, q2222 - pshufw m2, m3, q1111 - pshufw m3, m3, q0000 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 - mova [dstq+strideq*2], m2 - mova [dstq+stride3q ], m3 - RET - -INIT_XMM sse2 -cglobal vp9_ipred_h_8x8_16, 3, 3, 4, dst, stride, l, a - mova m2, [lq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - punpckhwd m3, m2, m2 - pshufd m0, m3, q3333 - pshufd m1, m3, q2222 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 - pshufd m0, m3, q1111 - pshufd m1, m3, q0000 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m1 - lea dstq, [dstq+strideq*4] - punpcklwd m2, m2 - pshufd m0, m2, q3333 - pshufd m1, m2, q2222 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 - pshufd m0, m2, q1111 - pshufd m1, m2, q0000 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m1 - RET - -INIT_XMM sse2 -cglobal vp9_ipred_h_16x16_16, 3, 5, 4, dst, stride, l, stride3, cnt - mov cntd, 3 - lea stride3q, [strideq*3] -.loop: - movh m3, [lq+cntq*8] - punpcklwd m3, m3 - pshufd m0, m3, q3333 - pshufd m1, m3, q2222 - pshufd m2, m3, q1111 - pshufd m3, m3, q0000 - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*1+ 0], m1 - mova [dstq+strideq*1+16], m1 - mova [dstq+strideq*2+ 0], m2 - mova [dstq+strideq*2+16], m2 - mova [dstq+stride3q + 0], m3 - mova [dstq+stride3q +16], m3 - lea dstq, [dstq+strideq*4] - dec cntd - jge .loop - RET - -INIT_XMM sse2 -cglobal vp9_ipred_h_32x32_16, 3, 5, 4, dst, stride, l, stride3, cnt - mov cntd, 7 - lea stride3q, [strideq*3] -.loop: - movh m3, [lq+cntq*8] - punpcklwd m3, m3 - pshufd m0, m3, q3333 - pshufd m1, m3, q2222 - pshufd m2, m3, q1111 - pshufd m3, m3, q0000 - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*0+32], m0 - mova [dstq+strideq*0+48], m0 - mova [dstq+strideq*1+ 0], m1 - mova [dstq+strideq*1+16], m1 - mova [dstq+strideq*1+32], m1 - mova [dstq+strideq*1+48], m1 - mova [dstq+strideq*2+ 0], m2 - mova [dstq+strideq*2+16], m2 - mova [dstq+strideq*2+32], m2 - mova [dstq+strideq*2+48], m2 - mova [dstq+stride3q + 0], m3 - mova [dstq+stride3q +16], m3 - mova [dstq+stride3q +32], m3 - mova [dstq+stride3q +48], m3 - lea dstq, [dstq+strideq*4] - dec cntd - jge .loop - RET - -INIT_MMX mmxext -cglobal vp9_ipred_dc_4x4_16, 4, 4, 2, dst, stride, l, a - mova m0, [lq] - paddw m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pmaddwd m0, [pw_1] - pshufw m1, m0, q3232 - paddd m0, [pd_4] - paddd m0, m1 - psrad m0, 3 - pshufw m0, m0, q0000 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - RET - -INIT_XMM sse2 -cglobal vp9_ipred_dc_8x8_16, 4, 4, 2, dst, stride, l, a - mova m0, [lq] - paddw m0, [aq] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pmaddwd m0, [pw_1] - pshufd m1, m0, q3232 - paddd m0, m1 - pshufd m1, m0, q1111 - paddd m0, [pd_8] - paddd m0, m1 - psrad m0, 4 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - RET - -INIT_XMM sse2 -cglobal vp9_ipred_dc_16x16_16, 4, 4, 2, dst, stride, l, a - mova m0, [lq] - paddw m0, [lq+mmsize] - paddw m0, [aq] - paddw m0, [aq+mmsize] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 - pmaddwd m0, [pw_1] - pshufd m1, m0, q3232 - paddd m0, m1 - pshufd m1, m0, q1111 - paddd m0, [pd_16] - paddd m0, m1 - psrad m0, 5 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m0 - mova [dstq+strideq*2+ 0], m0 - mova [dstq+strideq*2+16], m0 - mova [dstq+stride3q + 0], m0 - mova [dstq+stride3q +16], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -INIT_XMM sse2 -cglobal vp9_ipred_dc_32x32_16, 4, 4, 2, dst, stride, l, a - mova m0, [lq+mmsize*0] - paddw m0, [lq+mmsize*1] - paddw m0, [lq+mmsize*2] - paddw m0, [lq+mmsize*3] - paddw m0, [aq+mmsize*0] - paddw m0, [aq+mmsize*1] - paddw m0, [aq+mmsize*2] - paddw m0, [aq+mmsize*3] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 16 - pmaddwd m0, [pw_1] - pshufd m1, m0, q3232 - paddd m0, m1 - pshufd m1, m0, q1111 - paddd m0, [pd_32] - paddd m0, m1 - psrad m0, 6 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*0+32], m0 - mova [dstq+strideq*0+48], m0 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m0 - mova [dstq+strideq*1+32], m0 - mova [dstq+strideq*1+48], m0 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop - RET - -%macro DC_1D_FNS 2 -INIT_MMX mmxext -cglobal vp9_ipred_dc_%1_4x4_16, 4, 4, 2, dst, stride, l, a - mova m0, [%2] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pmaddwd m0, [pw_1] - pshufw m1, m0, q3232 - paddd m0, [pd_2] - paddd m0, m1 - psrad m0, 2 - pshufw m0, m0, q0000 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - RET - -INIT_XMM sse2 -cglobal vp9_ipred_dc_%1_8x8_16, 4, 4, 2, dst, stride, l, a - mova m0, [%2] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pmaddwd m0, [pw_1] - pshufd m1, m0, q3232 - paddd m0, m1 - pshufd m1, m0, q1111 - paddd m0, [pd_4] - paddd m0, m1 - psrad m0, 3 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m0 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m0 - RET - -INIT_XMM sse2 -cglobal vp9_ipred_dc_%1_16x16_16, 4, 4, 2, dst, stride, l, a - mova m0, [%2] - paddw m0, [%2+mmsize] - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 - pmaddwd m0, [pw_1] - pshufd m1, m0, q3232 - paddd m0, m1 - pshufd m1, m0, q1111 - paddd m0, [pd_8] - paddd m0, m1 - psrad m0, 4 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m0 - mova [dstq+strideq*2+ 0], m0 - mova [dstq+strideq*2+16], m0 - mova [dstq+stride3q + 0], m0 - mova [dstq+stride3q +16], m0 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET - -INIT_XMM sse2 -cglobal vp9_ipred_dc_%1_32x32_16, 4, 4, 2, dst, stride, l, a - mova m0, [%2+mmsize*0] - paddw m0, [%2+mmsize*1] - paddw m0, [%2+mmsize*2] - paddw m0, [%2+mmsize*3] - DEFINE_ARGS dst, stride, cnt - mov cntd, 16 - pmaddwd m0, [pw_1] - pshufd m1, m0, q3232 - paddd m0, m1 - pshufd m1, m0, q1111 - paddd m0, [pd_16] - paddd m0, m1 - psrad m0, 5 - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m0 - mova [dstq+strideq*0+32], m0 - mova [dstq+strideq*0+48], m0 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m0 - mova [dstq+strideq*1+32], m0 - mova [dstq+strideq*1+48], m0 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop - RET -%endmacro - -DC_1D_FNS top, aq -DC_1D_FNS left, lq - -INIT_MMX mmxext -cglobal vp9_ipred_tm_4x4_10, 4, 4, 6, dst, stride, l, a - mova m5, [pw_1023] -.body: - mova m4, [aq] - mova m3, [lq] - movd m0, [aq-4] - pshufw m0, m0, q1111 - psubw m4, m0 - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - pshufw m0, m3, q3333 - pshufw m1, m3, q2222 - pshufw m2, m3, q1111 - pshufw m3, m3, q0000 - paddw m0, m4 - paddw m1, m4 - paddw m2, m4 - paddw m3, m4 - pxor m4, m4 - pmaxsw m0, m4 - pmaxsw m1, m4 - pmaxsw m2, m4 - pmaxsw m3, m4 - pminsw m0, m5 - pminsw m1, m5 - pminsw m2, m5 - pminsw m3, m5 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 - mova [dstq+strideq*2], m2 - mova [dstq+stride3q ], m3 - RET - -cglobal vp9_ipred_tm_4x4_12, 4, 4, 6, dst, stride, l, a - mova m5, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_ipred_tm_4x4_10 %+ SUFFIX).body - -INIT_XMM sse2 -cglobal vp9_ipred_tm_8x8_10, 4, 5, 7, dst, stride, l, a - mova m4, [pw_1023] -.body: - pxor m6, m6 - mova m5, [aq] - movd m0, [aq-4] - pshuflw m0, m0, q1111 - punpcklqdq m0, m0 - psubw m5, m0 - DEFINE_ARGS dst, stride, l, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 1 -.loop: - movh m3, [lq+cntq*8] - punpcklwd m3, m3 - pshufd m0, m3, q3333 - pshufd m1, m3, q2222 - pshufd m2, m3, q1111 - pshufd m3, m3, q0000 - paddw m0, m5 - paddw m1, m5 - paddw m2, m5 - paddw m3, m5 - pmaxsw m0, m6 - pmaxsw m1, m6 - pmaxsw m2, m6 - pmaxsw m3, m6 - pminsw m0, m4 - pminsw m1, m4 - pminsw m2, m4 - pminsw m3, m4 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m1 - mova [dstq+strideq*2], m2 - mova [dstq+stride3q ], m3 - lea dstq, [dstq+strideq*4] - dec cntd - jge .loop - RET - -cglobal vp9_ipred_tm_8x8_12, 4, 5, 7, dst, stride, l, a - mova m4, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_ipred_tm_8x8_10 %+ SUFFIX).body - -INIT_XMM sse2 -cglobal vp9_ipred_tm_16x16_10, 4, 4, 8, dst, stride, l, a - mova m7, [pw_1023] -.body: - pxor m6, m6 - mova m4, [aq] - mova m5, [aq+mmsize] - movd m0, [aq-4] - pshuflw m0, m0, q1111 - punpcklqdq m0, m0 - psubw m4, m0 - psubw m5, m0 - DEFINE_ARGS dst, stride, l, cnt - mov cntd, 7 -.loop: - movd m3, [lq+cntq*4] - punpcklwd m3, m3 - pshufd m2, m3, q1111 - pshufd m3, m3, q0000 - paddw m0, m2, m4 - paddw m2, m5 - paddw m1, m3, m4 - paddw m3, m5 - pmaxsw m0, m6 - pmaxsw m2, m6 - pmaxsw m1, m6 - pmaxsw m3, m6 - pminsw m0, m7 - pminsw m2, m7 - pminsw m1, m7 - pminsw m3, m7 - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m2 - mova [dstq+strideq*1+ 0], m1 - mova [dstq+strideq*1+16], m3 - lea dstq, [dstq+strideq*2] - dec cntd - jge .loop - RET - -cglobal vp9_ipred_tm_16x16_12, 4, 4, 8, dst, stride, l, a - mova m7, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_ipred_tm_16x16_10 %+ SUFFIX).body - -INIT_XMM sse2 -cglobal vp9_ipred_tm_32x32_10, 4, 4, 10, 32 * -ARCH_X86_32, dst, stride, l, a - mova m0, [pw_1023] -.body: - pxor m1, m1 -%if ARCH_X86_64 - SWAP 0, 8 - SWAP 1, 9 -%define reg_min m9 -%define reg_max m8 -%else - mova [rsp+ 0], m0 - mova [rsp+16], m1 -%define reg_min [rsp+16] -%define reg_max [rsp+ 0] -%endif - - mova m4, [aq+mmsize*0] - mova m5, [aq+mmsize*1] - mova m6, [aq+mmsize*2] - mova m7, [aq+mmsize*3] - movd m0, [aq-4] - pshuflw m0, m0, q1111 - punpcklqdq m0, m0 - psubw m4, m0 - psubw m5, m0 - psubw m6, m0 - psubw m7, m0 - DEFINE_ARGS dst, stride, l, cnt - mov cntd, 31 -.loop: - pinsrw m3, [lq+cntq*2], 0 - punpcklwd m3, m3 - pshufd m3, m3, q0000 - paddw m0, m3, m4 - paddw m1, m3, m5 - paddw m2, m3, m6 - paddw m3, m7 - pmaxsw m0, reg_min - pmaxsw m1, reg_min - pmaxsw m2, reg_min - pmaxsw m3, reg_min - pminsw m0, reg_max - pminsw m1, reg_max - pminsw m2, reg_max - pminsw m3, reg_max - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*0+32], m2 - mova [dstq+strideq*0+48], m3 - add dstq, strideq - dec cntd - jge .loop - RET - -cglobal vp9_ipred_tm_32x32_12, 4, 4, 10, 32 * -ARCH_X86_32, dst, stride, l, a - mova m0, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_ipred_tm_32x32_10 %+ SUFFIX).body - -; Directional intra predicion functions -; -; in the functions below, 'abcdefgh' refers to above data (sometimes simply -; abbreviated as a[N-M]). 'stuvwxyz' refers to left data (sometimes simply -; abbreviated as l[N-M]). * is top-left data. ABCDEFG or A[N-M] is filtered -; above data, STUVWXYZ or L[N-M] is filtered left data, and # is filtered -; top-left data. - -; left=(left+2*center+right+2)>>2 -%macro LOWPASS 3 ; left [dst], center, right - paddw m%1, m%3 - psraw m%1, 1 - pavgw m%1, m%2 -%endmacro - -; abcdefgh (src) -> bcdefghh (dst) -; dst/src can be the same register -%macro SHIFT_RIGHT 2-3 [pb_2to15_14_15] ; dst, src, [ssse3_shift_reg] -%if cpuflag(ssse3) - pshufb %1, %2, %3 ; abcdefgh -> bcdefghh -%else - psrldq %1, %2, 2 ; abcdefgh -> bcdefgh. - pshufhw %1, %1, q2210 ; bcdefgh. -> bcdefghh -%endif -%endmacro - -; abcdefgh (src) -> bcdefghh (dst1) and cdefghhh (dst2) -%macro SHIFT_RIGHTx2 3-4 [pb_2to15_14_15] ; dst1, dst2, src, [ssse3_shift_reg] -%if cpuflag(ssse3) - pshufb %1, %3, %4 ; abcdefgh -> bcdefghh - pshufb %2, %1, %4 ; bcdefghh -> cdefghhh -%else - psrldq %1, %3, 2 ; abcdefgh -> bcdefgh. - psrldq %2, %3, 4 ; abcdefgh -> cdefgh.. - pshufhw %1, %1, q2210 ; bcdefgh. -> bcdefghh - pshufhw %2, %2, q1110 ; cdefgh.. -> cdefghhh -%endif -%endmacro - -%macro DL_FUNCS 0 -cglobal vp9_ipred_dl_4x4_16, 2, 4, 3, dst, stride, l, a - movifnidn aq, amp - movu m1, [aq] ; abcdefgh - pshufhw m0, m1, q3310 ; abcdefhh - SHIFT_RIGHT m1, m1 ; bcdefghh - psrldq m2, m1, 2 ; cdefghh. - LOWPASS 0, 1, 2 ; BCDEFGh. - pshufd m1, m0, q3321 ; DEFGh... - movh [dstq+strideq*0], m0 - movh [dstq+strideq*2], m1 - add dstq, strideq - psrldq m0, 2 ; CDEFGh.. - psrldq m1, 2 ; EFGh.... - movh [dstq+strideq*0], m0 - movh [dstq+strideq*2], m1 - RET - -cglobal vp9_ipred_dl_8x8_16, 2, 4, 5, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] ; abcdefgh -%if cpuflag(ssse3) - mova m4, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m1, m2, m0, m4 ; bcdefghh/cdefghhh - LOWPASS 0, 1, 2 ; BCDEFGHh - shufps m1, m0, m2, q3332 ; FGHhhhhh - shufps m3, m0, m1, q2121 ; DEFGHhhh - DEFINE_ARGS dst, stride, stride5 - lea stride5q, [strideq*5] - - mova [dstq+strideq*0], m0 - mova [dstq+strideq*4], m1 - SHIFT_RIGHT m0, m0, m4 ; CDEFGHhh - pshuflw m1, m1, q3321 ; GHhhhhhh - pshufd m2, m0, q3321 ; EFGHhhhh - mova [dstq+strideq*1], m0 - mova [dstq+stride5q ], m1 - lea dstq, [dstq+strideq*2] - pshuflw m1, m1, q3321 ; Hhhhhhhh - mova [dstq+strideq*0], m3 - mova [dstq+strideq*4], m1 - pshuflw m1, m1, q3321 ; hhhhhhhh - mova [dstq+strideq*1], m2 - mova [dstq+stride5q ], m1 - RET - -cglobal vp9_ipred_dl_16x16_16, 2, 4, 5, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] ; abcdefgh - mova m3, [aq+mmsize] ; ijklmnop - PALIGNR m1, m3, m0, 2, m4 ; bcdefghi - PALIGNR m2, m3, m0, 4, m4 ; cdefghij - LOWPASS 0, 1, 2 ; BCDEFGHI -%if cpuflag(ssse3) - mova m4, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m2, m1, m3, m4 ; jklmnopp/klmnoppp - LOWPASS 1, 2, 3 ; JKLMNOPp - pshufd m2, m2, q3333 ; pppppppp - DEFINE_ARGS dst, stride, cnt - mov cntd, 8 - -.loop: - mova [dstq+strideq*0+ 0], m0 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*8+ 0], m1 - mova [dstq+strideq*8+16], m2 - add dstq, strideq -%if cpuflag(avx) - vpalignr m0, m1, m0, 2 -%else - PALIGNR m3, m1, m0, 2, m4 - mova m0, m3 -%endif - SHIFT_RIGHT m1, m1, m4 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dl_32x32_16, 2, 5, 7, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq+mmsize*0] ; abcdefgh - mova m1, [aq+mmsize*1] ; ijklmnop - mova m2, [aq+mmsize*2] ; qrstuvwx - mova m3, [aq+mmsize*3] ; yz012345 - PALIGNR m4, m1, m0, 2, m6 - PALIGNR m5, m1, m0, 4, m6 - LOWPASS 0, 4, 5 ; BCDEFGHI - PALIGNR m4, m2, m1, 2, m6 - PALIGNR m5, m2, m1, 4, m6 - LOWPASS 1, 4, 5 ; JKLMNOPQ - PALIGNR m4, m3, m2, 2, m6 - PALIGNR m5, m3, m2, 4, m6 - LOWPASS 2, 4, 5 ; RSTUVWXY -%if cpuflag(ssse3) - mova m6, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m4, m5, m3, m6 - LOWPASS 3, 4, 5 ; Z0123455 - pshufd m4, m4, q3333 ; 55555555 - DEFINE_ARGS dst, stride, stride8, stride24, cnt - mov cntd, 8 - lea stride8q, [strideq*8] - lea stride24q, [stride8q*3] - -.loop: - mova [dstq+stride8q*0+ 0], m0 - mova [dstq+stride8q*0+16], m1 - mova [dstq+stride8q*0+32], m2 - mova [dstq+stride8q*0+48], m3 - mova [dstq+stride8q*1+ 0], m1 - mova [dstq+stride8q*1+16], m2 - mova [dstq+stride8q*1+32], m3 - mova [dstq+stride8q*1+48], m4 - mova [dstq+stride8q*2+ 0], m2 - mova [dstq+stride8q*2+16], m3 - mova [dstq+stride8q*2+32], m4 - mova [dstq+stride8q*2+48], m4 - mova [dstq+stride24q + 0], m3 - mova [dstq+stride24q +16], m4 - mova [dstq+stride24q +32], m4 - mova [dstq+stride24q +48], m4 - add dstq, strideq -%if cpuflag(avx) - vpalignr m0, m1, m0, 2 - vpalignr m1, m2, m1, 2 - vpalignr m2, m3, m2, 2 -%else - PALIGNR m5, m1, m0, 2, m6 - mova m0, m5 - PALIGNR m5, m2, m1, 2, m6 - mova m1, m5 - PALIGNR m5, m3, m2, 2, m6 - mova m2, m5 -%endif - SHIFT_RIGHT m3, m3, m6 - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -DL_FUNCS -INIT_XMM ssse3 -DL_FUNCS -INIT_XMM avx -DL_FUNCS - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_ipred_dl_16x16_16, 2, 4, 5, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] ; abcdefghijklmnop - vpbroadcastw xm1, [aq+30] ; pppppppp - vperm2i128 m2, m0, m1, q0201 ; ijklmnoppppppppp - vpalignr m3, m2, m0, 2 ; bcdefghijklmnopp - vpalignr m4, m2, m0, 4 ; cdefghijklmnoppp - LOWPASS 0, 3, 4 ; BCDEFGHIJKLMNOPp - vperm2i128 m2, m0, m1, q0201 ; JKLMNOPppppppppp - DEFINE_ARGS dst, stride, stride3, cnt - mov cntd, 2 - lea stride3q, [strideq*3] - -.loop: - mova [dstq+strideq*0], m0 - vpalignr m3, m2, m0, 2 - vpalignr m4, m2, m0, 4 - mova [dstq+strideq*1], m3 - mova [dstq+strideq*2], m4 - vpalignr m3, m2, m0, 6 - vpalignr m4, m2, m0, 8 - mova [dstq+stride3q ], m3 - lea dstq, [dstq+strideq*4] - mova [dstq+strideq*0], m4 - vpalignr m3, m2, m0, 10 - vpalignr m4, m2, m0, 12 - mova [dstq+strideq*1], m3 - mova [dstq+strideq*2], m4 - vpalignr m3, m2, m0, 14 - mova [dstq+stride3q ], m3 - lea dstq, [dstq+strideq*4] - mova m0, m2 - vperm2i128 m2, m2, m2, q0101 ; pppppppppppppppp - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dl_32x32_16, 2, 6, 7, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq+mmsize*0+ 0] ; abcdefghijklmnop - mova m1, [aq+mmsize*1+ 0] ; qrstuvwxyz012345 - vpbroadcastw xm4, [aq+mmsize*1+30] ; 55555555 - vperm2i128 m5, m0, m1, q0201 ; ijklmnopqrstuvwx - vpalignr m2, m5, m0, 2 ; bcdefghijklmnopq - vpalignr m3, m5, m0, 4 ; cdefghijklmnopqr - LOWPASS 0, 2, 3 ; BCDEFGHIJKLMNOPQ - vperm2i128 m5, m1, m4, q0201 ; yz01234555555555 - vpalignr m2, m5, m1, 2 ; rstuvwxyz0123455 - vpalignr m3, m5, m1, 4 ; stuvwxyz01234555 - LOWPASS 1, 2, 3 ; RSTUVWXYZ......5 - vperm2i128 m2, m1, m4, q0201 ; Z......555555555 - vperm2i128 m5, m0, m1, q0201 ; JKLMNOPQRSTUVWXY - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 - -.loop: - mova [dstq+strideq*0 + 0], m0 - mova [dstq+strideq*0 +32], m1 - vpalignr m3, m5, m0, 2 - vpalignr m4, m2, m1, 2 - mova [dstq+strideq*1 + 0], m3 - mova [dstq+strideq*1 +32], m4 - vpalignr m3, m5, m0, 4 - vpalignr m4, m2, m1, 4 - mova [dstq+strideq*2 + 0], m3 - mova [dstq+strideq*2 +32], m4 - vpalignr m3, m5, m0, 6 - vpalignr m4, m2, m1, 6 - mova [dstq+stride3q*1+ 0], m3 - mova [dstq+stride3q*1+32], m4 - lea dstq, [dstq+strideq*4] - vpalignr m3, m5, m0, 8 - vpalignr m4, m2, m1, 8 - mova [dstq+strideq*0 + 0], m3 - mova [dstq+strideq*0 +32], m4 - vpalignr m3, m5, m0, 10 - vpalignr m4, m2, m1, 10 - mova [dstq+strideq*1 + 0], m3 - mova [dstq+strideq*1 +32], m4 - vpalignr m3, m5, m0, 12 - vpalignr m4, m2, m1, 12 - mova [dstq+strideq*2+ 0], m3 - mova [dstq+strideq*2+32], m4 - vpalignr m3, m5, m0, 14 - vpalignr m4, m2, m1, 14 - mova [dstq+stride3q+ 0], m3 - mova [dstq+stride3q+ 32], m4 - vpalignr m3, m5, m0, 16 - vpalignr m4, m2, m1, 16 - vperm2i128 m5, m3, m4, q0201 - vperm2i128 m2, m4, m4, q0101 - mova m0, m3 - mova m1, m4 - lea dstq, [dstq+strideq*4] - dec cntd - jg .loop - RET -%endif - -%macro DR_FUNCS 1 ; stack_mem_for_32x32_32bit_function -cglobal vp9_ipred_dr_4x4_16, 4, 4, 3, dst, stride, l, a - movh m0, [lq] ; wxyz.... - movhps m0, [aq-2] ; wxyz*abc - movd m1, [aq+6] ; d....... - PALIGNR m1, m0, 2, m2 ; xyz*abcd - psrldq m2, m1, 2 ; yz*abcd. - LOWPASS 0, 1, 2 ; XYZ#ABC. - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - movh [dstq+stride3q ], m0 - psrldq m0, 2 ; YZ#ABC.. - movh [dstq+strideq*2], m0 - psrldq m0, 2 ; Z#ABC... - movh [dstq+strideq*1], m0 - psrldq m0, 2 ; #ABC.... - movh [dstq+strideq*0], m0 - RET - -cglobal vp9_ipred_dr_8x8_16, 4, 4, 5, dst, stride, l, a - mova m0, [lq] ; stuvwxyz - movu m1, [aq-2] ; *abcdefg - mova m2, [aq] ; abcdefgh - psrldq m3, m2, 2 ; bcdefgh. - LOWPASS 3, 2, 1 ; ABCDEFG. - PALIGNR m1, m0, 2, m4 ; tuvwxyz* - PALIGNR m2, m1, 2, m4 ; uvwxyz*a - LOWPASS 2, 1, 0 ; TUVWXYZ# - DEFINE_ARGS dst, stride, dst4, stride3 - lea stride3q, [strideq*3] - lea dst4q, [dstq+strideq*4] - - movhps [dstq +stride3q +0], m2 - movh [dstq+ stride3q +8], m3 - mova [dst4q+stride3q +0], m2 - PALIGNR m1, m3, m2, 2, m0 - psrldq m3, 2 - movhps [dstq +strideq*2+0], m1 - movh [dstq+ strideq*2+8], m3 - mova [dst4q+strideq*2+0], m1 - PALIGNR m2, m3, m1, 2, m0 - psrldq m3, 2 - movhps [dstq +strideq*1+0], m2 - movh [dstq+ strideq*1+8], m3 - mova [dst4q+strideq*1+0], m2 - PALIGNR m1, m3, m2, 2, m0 - psrldq m3, 2 - movhps [dstq +strideq*0+0], m1 - movh [dstq+ strideq*0+8], m3 - mova [dst4q+strideq*0+0], m1 - RET - -cglobal vp9_ipred_dr_16x16_16, 4, 4, 7, dst, stride, l, a - mova m0, [lq] ; klmnopqr - mova m1, [lq+mmsize] ; stuvwxyz - movu m2, [aq-2] ; *abcdefg - movu m3, [aq+mmsize-2] ; hijklmno - mova m4, [aq] ; abcdefgh - mova m5, [aq+mmsize] ; ijklmnop - psrldq m6, m5, 2 ; jklmnop. - LOWPASS 6, 5, 3 ; IJKLMNO. - PALIGNR m5, m4, 2, m3 ; bcdefghi - LOWPASS 5, 4, 2 ; ABCDEFGH - PALIGNR m2, m1, 2, m3 ; tuvwxyz* - PALIGNR m4, m2, 2, m3 ; uvwxyz*a - LOWPASS 4, 2, 1 ; TUVWXYZ# - PALIGNR m1, m0, 2, m3 ; lmnopqrs - PALIGNR m2, m1, 2, m3 ; mnopqrst - LOWPASS 2, 1, 0 ; LMNOPQRS - DEFINE_ARGS dst, stride, dst8, cnt - lea dst8q, [dstq+strideq*8] - mov cntd, 8 - -.loop: - sub dst8q, strideq - mova [dst8q+strideq*0+ 0], m4 - mova [dst8q+strideq*0+16], m5 - mova [dst8q+strideq*8+ 0], m2 - mova [dst8q+strideq*8+16], m4 -%if cpuflag(avx) - vpalignr m2, m4, m2, 2 - vpalignr m4, m5, m4, 2 - vpalignr m5, m6, m5, 2 -%else - PALIGNR m0, m4, m2, 2, m1 - mova m2, m0 - PALIGNR m0, m5, m4, 2, m1 - mova m4, m0 - PALIGNR m0, m6, m5, 2, m1 - mova m5, m0 -%endif - psrldq m6, 2 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_dr_32x32_16, 4, 5, 10 + notcpuflag(ssse3), \ - %1 * ARCH_X86_32 * -mmsize, dst, stride, l, a - mova m0, [aq+mmsize*3] ; a[24-31] - movu m1, [aq+mmsize*3-2] ; a[23-30] - psrldq m2, m0, 2 ; a[25-31]. - LOWPASS 2, 0, 1 ; A[24-30]. - mova m1, [aq+mmsize*2] ; a[16-23] - movu m3, [aq+mmsize*2-2] ; a[15-22] - PALIGNR m0, m1, 2, m4 ; a[17-24] - LOWPASS 0, 1, 3 ; A[16-23] - mova m3, [aq+mmsize*1] ; a[8-15] - movu m4, [aq+mmsize*1-2] ; a[7-14] - PALIGNR m1, m3, 2, m5 ; a[9-16] - LOWPASS 1, 3, 4 ; A[8-15] - mova m4, [aq+mmsize*0] ; a[0-7] - movu m5, [aq+mmsize*0-2] ; *a[0-6] - PALIGNR m3, m4, 2, m6 ; a[1-8] - LOWPASS 3, 4, 5 ; A[0-7] - SCRATCH 1, 8, rsp+0*mmsize - SCRATCH 3, 9, rsp+1*mmsize -%if notcpuflag(ssse3) - SCRATCH 0, 10, rsp+2*mmsize -%endif - mova m6, [lq+mmsize*3] ; l[24-31] - PALIGNR m5, m6, 2, m0 ; l[25-31]* - PALIGNR m4, m5, 2, m0 ; l[26-31]*a - LOWPASS 4, 5, 6 ; L[25-31]# - mova m7, [lq+mmsize*2] ; l[16-23] - PALIGNR m6, m7, 2, m0 ; l[17-24] - PALIGNR m5, m6, 2, m0 ; l[18-25] - LOWPASS 5, 6, 7 ; L[17-24] - mova m1, [lq+mmsize*1] ; l[8-15] - PALIGNR m7, m1, 2, m0 ; l[9-16] - PALIGNR m6, m7, 2, m0 ; l[10-17] - LOWPASS 6, 7, 1 ; L[9-16] - mova m3, [lq+mmsize*0] ; l[0-7] - PALIGNR m1, m3, 2, m0 ; l[1-8] - PALIGNR m7, m1, 2, m0 ; l[2-9] - LOWPASS 7, 1, 3 ; L[1-8] -%if cpuflag(ssse3) -%if cpuflag(avx) - UNSCRATCH 1, 8, rsp+0*mmsize -%endif - UNSCRATCH 3, 9, rsp+1*mmsize -%else - UNSCRATCH 0, 10, rsp+2*mmsize -%endif - DEFINE_ARGS dst8, stride, stride8, stride24, cnt - lea stride8q, [strideq*8] - lea stride24q, [stride8q*3] - lea dst8q, [dst8q+strideq*8] - mov cntd, 8 - -.loop: - sub dst8q, strideq -%if notcpuflag(avx) - UNSCRATCH 1, 8, rsp+0*mmsize -%if notcpuflag(ssse3) - UNSCRATCH 3, 9, rsp+1*mmsize -%endif -%endif - mova [dst8q+stride8q*0+ 0], m4 - mova [dst8q+stride8q*0+16], m3 - mova [dst8q+stride8q*0+32], m1 - mova [dst8q+stride8q*0+48], m0 - mova [dst8q+stride8q*1+ 0], m5 - mova [dst8q+stride8q*1+16], m4 - mova [dst8q+stride8q*1+32], m3 - mova [dst8q+stride8q*1+48], m1 - mova [dst8q+stride8q*2+ 0], m6 - mova [dst8q+stride8q*2+16], m5 - mova [dst8q+stride8q*2+32], m4 - mova [dst8q+stride8q*2+48], m3 - mova [dst8q+stride24q + 0], m7 - mova [dst8q+stride24q +16], m6 - mova [dst8q+stride24q +32], m5 - mova [dst8q+stride24q +48], m4 -%if cpuflag(avx) - vpalignr m7, m6, m7, 2 - vpalignr m6, m5, m6, 2 - vpalignr m5, m4, m5, 2 - vpalignr m4, m3, m4, 2 - vpalignr m3, m1, m3, 2 - vpalignr m1, m0, m1, 2 - vpalignr m0, m2, m0, 2 -%else - SCRATCH 2, 8, rsp+0*mmsize -%if notcpuflag(ssse3) - SCRATCH 0, 9, rsp+1*mmsize -%endif - PALIGNR m2, m6, m7, 2, m0 - mova m7, m2 - PALIGNR m2, m5, m6, 2, m0 - mova m6, m2 - PALIGNR m2, m4, m5, 2, m0 - mova m5, m2 - PALIGNR m2, m3, m4, 2, m0 - mova m4, m2 - PALIGNR m2, m1, m3, 2, m0 - mova m3, m2 -%if notcpuflag(ssse3) - UNSCRATCH 0, 9, rsp+1*mmsize - SCRATCH 3, 9, rsp+1*mmsize -%endif - PALIGNR m2, m0, m1, 2, m3 - mova m1, m2 - UNSCRATCH 2, 8, rsp+0*mmsize - SCRATCH 1, 8, rsp+0*mmsize - PALIGNR m1, m2, m0, 2, m3 - mova m0, m1 -%endif - psrldq m2, 2 - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -DR_FUNCS 3 -INIT_XMM ssse3 -DR_FUNCS 2 -INIT_XMM avx -DR_FUNCS 2 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_ipred_dr_16x16_16, 4, 5, 6, dst, stride, l, a - mova m0, [lq] ; klmnopqrstuvwxyz - movu m1, [aq-2] ; *abcdefghijklmno - mova m2, [aq] ; abcdefghijklmnop - vperm2i128 m4, m2, m2, q2001 ; ijklmnop........ - vpalignr m5, m4, m2, 2 ; bcdefghijklmnop. - vperm2i128 m3, m0, m1, q0201 ; stuvwxyz*abcdefg - LOWPASS 1, 2, 5 ; ABCDEFGHIJKLMNO. - vpalignr m4, m3, m0, 2 ; lmnopqrstuvwxyz* - vpalignr m5, m3, m0, 4 ; mnopqrstuvwxyz*a - LOWPASS 0, 4, 5 ; LMNOPQRSTUVWXYZ# - vperm2i128 m5, m0, m1, q0201 ; TUVWXYZ#ABCDEFGH - DEFINE_ARGS dst, stride, stride3, stride5, dst3 - lea dst3q, [dstq+strideq*4] - lea stride3q, [strideq*3] - lea stride5q, [stride3q+strideq*2] - - vpalignr m3, m5, m0, 2 - vpalignr m4, m1, m5, 2 - mova [dst3q+stride5q*2], m3 ; 14 - mova [ dstq+stride3q*2], m4 ; 6 - vpalignr m3, m5, m0, 4 - vpalignr m4, m1, m5, 4 - sub dst3q, strideq - mova [dst3q+stride5q*2], m3 ; 13 - mova [dst3q+strideq*2 ], m4 ; 5 - mova [dst3q+stride3q*4], m0 ; 15 - vpalignr m3, m5, m0, 6 - vpalignr m4, m1, m5, 6 - mova [dstq+stride3q*4], m3 ; 12 - mova [dst3q+strideq*1], m4 ; 4 - vpalignr m3, m5, m0, 8 - vpalignr m4, m1, m5, 8 - mova [dst3q+strideq*8], m3 ; 11 - mova [dst3q+strideq*0], m4 ; 3 - vpalignr m3, m5, m0, 10 - vpalignr m4, m1, m5, 10 - mova [dstq+stride5q*2], m3 ; 10 - mova [dstq+strideq*2 ], m4 ; 2 - vpalignr m3, m5, m0, 12 - vpalignr m4, m1, m5, 12 - mova [dst3q+stride3q*2], m3 ; 9 - mova [dstq+strideq*1 ], m4 ; 1 - vpalignr m3, m5, m0, 14 - vpalignr m4, m1, m5, 14 - mova [dstq+strideq*8], m3 ; 8 - mova [dstq+strideq*0], m4 ; 0 - mova [dst3q+strideq*4], m5 ; 7 - RET - -%if ARCH_X86_64 -cglobal vp9_ipred_dr_32x32_16, 4, 7, 10, dst, stride, l, a - mova m0, [lq+mmsize*0+0] ; l[0-15] - mova m1, [lq+mmsize*1+0] ; l[16-31] - movu m2, [aq+mmsize*0-2] ; *abcdefghijklmno - mova m3, [aq+mmsize*0+0] ; abcdefghijklmnop - mova m4, [aq+mmsize*1+0] ; qrstuvwxyz012345 - vperm2i128 m5, m0, m1, q0201 ; lmnopqrstuvwxyz0 - vpalignr m6, m5, m0, 2 ; mnopqrstuvwxyz01 - vpalignr m7, m5, m0, 4 ; nopqrstuvwxyz012 - LOWPASS 0, 6, 7 ; L[0-15] - vperm2i128 m7, m1, m2, q0201 ; stuvwxyz*abcdefg - vpalignr m5, m7, m1, 2 ; lmnopqrstuvwxyz* - vpalignr m6, m7, m1, 4 ; mnopqrstuvwxyz*a - LOWPASS 1, 5, 6 ; L[16-31]# - vperm2i128 m5, m3, m4, q0201 ; ijklmnopqrstuvwx - vpalignr m6, m5, m3, 2 ; bcdefghijklmnopq - LOWPASS 2, 3, 6 ; A[0-15] - movu m3, [aq+mmsize*1-2] ; pqrstuvwxyz01234 - vperm2i128 m6, m4, m4, q2001 ; yz012345........ - vpalignr m7, m6, m4, 2 ; rstuvwxyz012345. - LOWPASS 3, 4, 7 ; A[16-31]. - vperm2i128 m4, m1, m2, q0201 ; TUVWXYZ#ABCDEFGH - vperm2i128 m5, m0, m1, q0201 ; L[7-15]L[16-23] - vperm2i128 m8, m2, m3, q0201 ; IJKLMNOPQRSTUVWX - DEFINE_ARGS dst8, stride, stride3, stride7, stride5, dst24, cnt - lea stride3q, [strideq*3] - lea stride5q, [stride3q+strideq*2] - lea stride7q, [strideq*4+stride3q] - lea dst24q, [dst8q+stride3q*8] - lea dst8q, [dst8q+strideq*8] - mov cntd, 2 - -.loop: - mova [dst24q+stride7q+0 ], m0 ; 31 23 15 7 - mova [dst24q+stride7q+32], m1 - mova [dst8q+stride7q+0], m1 - mova [dst8q+stride7q+32], m2 - vpalignr m6, m4, m1, 2 - vpalignr m7, m5, m0, 2 - vpalignr m9, m8, m2, 2 - mova [dst24q+stride3q*2+0], m7 ; 30 22 14 6 - mova [dst24q+stride3q*2+32], m6 - mova [dst8q+stride3q*2+0], m6 - mova [dst8q+stride3q*2+32], m9 - vpalignr m6, m4, m1, 4 - vpalignr m7, m5, m0, 4 - vpalignr m9, m8, m2, 4 - mova [dst24q+stride5q+0], m7 ; 29 21 13 5 - mova [dst24q+stride5q+32], m6 - mova [dst8q+stride5q+0], m6 - mova [dst8q+stride5q+32], m9 - vpalignr m6, m4, m1, 6 - vpalignr m7, m5, m0, 6 - vpalignr m9, m8, m2, 6 - mova [dst24q+strideq*4+0 ], m7 ; 28 20 12 4 - mova [dst24q+strideq*4+32], m6 - mova [dst8q+strideq*4+0], m6 - mova [dst8q+strideq*4+32], m9 - vpalignr m6, m4, m1, 8 - vpalignr m7, m5, m0, 8 - vpalignr m9, m8, m2, 8 - mova [dst24q+stride3q+0 ], m7 ; 27 19 11 3 - mova [dst24q+stride3q+32], m6 - mova [dst8q+stride3q+0], m6 - mova [dst8q+stride3q+32], m9 - vpalignr m6, m4, m1, 10 - vpalignr m7, m5, m0, 10 - vpalignr m9, m8, m2, 10 - mova [dst24q+strideq*2+0 ], m7 ; 26 18 10 2 - mova [dst24q+strideq*2+32], m6 - mova [dst8q+strideq*2+0], m6 - mova [dst8q+strideq*2+32], m9 - vpalignr m6, m4, m1, 12 - vpalignr m7, m5, m0, 12 - vpalignr m9, m8, m2, 12 - mova [dst24q+strideq+0 ], m7 ; 25 17 9 1 - mova [dst24q+strideq+32], m6 - mova [dst8q+strideq+0], m6 - mova [dst8q+strideq+32], m9 - vpalignr m6, m4, m1, 14 - vpalignr m7, m5, m0, 14 - vpalignr m9, m8, m2, 14 - mova [dst24q+strideq*0+0 ], m7 ; 24 16 8 0 - mova [dst24q+strideq*0+32], m6 - mova [dst8q+strideq*0+0], m6 - mova [dst8q+strideq*0+32], m9 - mova m0, m5 - mova m5, m1 - mova m1, m4 - mova m4, m2 - mova m2, m8 - mova m8, m3 - sub dst24q, stride7q - sub dst24q, strideq - sub dst8q, stride7q - sub dst8q, strideq - dec cntd - jg .loop - RET -%endif -%endif - -%macro VL_FUNCS 1 ; stack_mem_for_32x32_32bit_function -cglobal vp9_ipred_vl_4x4_16, 2, 4, 3, dst, stride, l, a - movifnidn aq, amp - movu m0, [aq] ; abcdefgh - psrldq m1, m0, 2 ; bcdefgh. - psrldq m2, m0, 4 ; cdefgh.. - LOWPASS 2, 1, 0 ; BCDEFGH. - pavgw m1, m0 ; ABCDEFG. - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - movh [dstq+strideq*0], m1 - movh [dstq+strideq*1], m2 - psrldq m1, 2 - psrldq m2, 2 - movh [dstq+strideq*2], m1 - movh [dstq+stride3q ], m2 - RET - -cglobal vp9_ipred_vl_8x8_16, 2, 4, 4, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] ; abcdefgh -%if cpuflag(ssse3) - mova m3, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m1, m2, m0, m3 ; bcdefghh/cdefghhh - LOWPASS 2, 1, 0 ; BCDEFGHh - pavgw m1, m0 ; ABCDEFGh - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - mova [dstq+strideq*0], m1 - mova [dstq+strideq*1], m2 - SHIFT_RIGHT m1, m1, m3 - SHIFT_RIGHT m2, m2, m3 - mova [dstq+strideq*2], m1 - mova [dstq+stride3q ], m2 - lea dstq, [dstq+strideq*4] - SHIFT_RIGHT m1, m1, m3 - SHIFT_RIGHT m2, m2, m3 - mova [dstq+strideq*0], m1 - mova [dstq+strideq*1], m2 - SHIFT_RIGHT m1, m1, m3 - SHIFT_RIGHT m2, m2, m3 - mova [dstq+strideq*2], m1 - mova [dstq+stride3q ], m2 - RET - -cglobal vp9_ipred_vl_16x16_16, 2, 4, 6, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq] - mova m1, [aq+mmsize] - PALIGNR m2, m1, m0, 2, m3 - PALIGNR m3, m1, m0, 4, m4 - LOWPASS 3, 2, 0 - pavgw m2, m0 -%if cpuflag(ssse3) - mova m4, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m5, m0, m1, m4 - LOWPASS 0, 5, 1 - pavgw m1, m5 - DEFINE_ARGS dst, stride, cnt - mov cntd, 8 - -.loop: - mova [dstq+strideq*0+ 0], m2 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*1+ 0], m3 - mova [dstq+strideq*1+16], m0 - lea dstq, [dstq+strideq*2] -%if cpuflag(avx) - vpalignr m2, m1, m2, 2 - vpalignr m3, m0, m3, 2 -%else - PALIGNR m5, m1, m2, 2, m4 - mova m2, m5 - PALIGNR m5, m0, m3, 2, m4 - mova m3, m5 -%endif - SHIFT_RIGHT m1, m1, m4 - SHIFT_RIGHT m0, m0, m4 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_vl_32x32_16, 2, 5, 11, %1 * mmsize * ARCH_X86_32, dst, stride, l, a - movifnidn aq, amp - mova m0, [aq+mmsize*0] - mova m1, [aq+mmsize*1] - mova m2, [aq+mmsize*2] - PALIGNR m6, m1, m0, 2, m5 - PALIGNR m7, m1, m0, 4, m5 - LOWPASS 7, 6, 0 - pavgw m6, m0 - SCRATCH 6, 8, rsp+0*mmsize - PALIGNR m4, m2, m1, 2, m0 - PALIGNR m5, m2, m1, 4, m0 - LOWPASS 5, 4, 1 - pavgw m4, m1 - mova m0, [aq+mmsize*3] - PALIGNR m1, m0, m2, 2, m6 - PALIGNR m3, m0, m2, 4, m6 - LOWPASS 3, 1, 2 - pavgw m2, m1 -%if cpuflag(ssse3) - PRELOAD 10, pb_2to15_14_15, shuf -%endif - SHIFT_RIGHTx2 m6, m1, m0, reg_shuf - LOWPASS 1, 6, 0 - pavgw m0, m6 -%if ARCH_X86_64 - pshufd m9, m6, q3333 -%endif -%if cpuflag(avx) - UNSCRATCH 6, 8, rsp+0*mmsize -%endif - DEFINE_ARGS dst, stride, cnt, stride16, stride17 - mov stride16q, strideq - mov cntd, 8 - shl stride16q, 4 - lea stride17q, [stride16q+strideq] - - ; FIXME m8 is unused for avx, so we could save one register here for win64 -.loop: -%if notcpuflag(avx) - UNSCRATCH 6, 8, rsp+0*mmsize -%endif - mova [dstq+strideq*0+ 0], m6 - mova [dstq+strideq*0+16], m4 - mova [dstq+strideq*0+32], m2 - mova [dstq+strideq*0+48], m0 - mova [dstq+strideq*1+ 0], m7 - mova [dstq+strideq*1+16], m5 - mova [dstq+strideq*1+32], m3 - mova [dstq+strideq*1+48], m1 - mova [dstq+stride16q+ 0], m4 - mova [dstq+stride16q+16], m2 - mova [dstq+stride16q+32], m0 -%if ARCH_X86_64 - mova [dstq+stride16q+48], m9 -%endif - mova [dstq+stride17q+ 0], m5 - mova [dstq+stride17q+16], m3 - mova [dstq+stride17q+32], m1 -%if ARCH_X86_64 - mova [dstq+stride17q+48], m9 -%endif - lea dstq, [dstq+strideq*2] -%if cpuflag(avx) - vpalignr m6, m4, m6, 2 - vpalignr m4, m2, m4, 2 - vpalignr m2, m0, m2, 2 - vpalignr m7, m5, m7, 2 - vpalignr m5, m3, m5, 2 - vpalignr m3, m1, m3, 2 -%else - SCRATCH 3, 8, rsp+0*mmsize -%if notcpuflag(ssse3) - SCRATCH 1, 10, rsp+1*mmsize -%endif - PALIGNR m3, m4, m6, 2, m1 - mova m6, m3 - PALIGNR m3, m2, m4, 2, m1 - mova m4, m3 - PALIGNR m3, m0, m2, 2, m1 - mova m2, m3 - PALIGNR m3, m5, m7, 2, m1 - mova m7, m3 - UNSCRATCH 3, 8, rsp+0*mmsize - SCRATCH 6, 8, rsp+0*mmsize -%if notcpuflag(ssse3) - UNSCRATCH 1, 10, rsp+1*mmsize - SCRATCH 7, 10, rsp+1*mmsize -%endif - PALIGNR m6, m3, m5, 2, m7 - mova m5, m6 - PALIGNR m6, m1, m3, 2, m7 - mova m3, m6 -%if notcpuflag(ssse3) - UNSCRATCH 7, 10, rsp+1*mmsize -%endif -%endif - SHIFT_RIGHT m1, m1, reg_shuf - SHIFT_RIGHT m0, m0, reg_shuf - dec cntd - jg .loop - -%if ARCH_X86_32 - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] -%assign %%n 0 -%rep 4 - mova [dstq+strideq*0+48], m0 - mova [dstq+strideq*1+48], m0 - mova [dstq+strideq*2+48], m0 - mova [dstq+stride3q +48], m0 -%if %%n < 3 - lea dstq, [dstq+strideq*4] -%endif -%assign %%n (%%n+1) -%endrep -%endif - RET -%endmacro - -INIT_XMM sse2 -VL_FUNCS 2 -INIT_XMM ssse3 -VL_FUNCS 1 -INIT_XMM avx -VL_FUNCS 1 - -%macro VR_FUNCS 0 -cglobal vp9_ipred_vr_4x4_16, 4, 4, 3, dst, stride, l, a - movu m0, [aq-2] - movhps m1, [lq] - PALIGNR m0, m1, 10, m2 ; xyz*abcd - pslldq m1, m0, 2 ; .xyz*abc - pslldq m2, m0, 4 ; ..xyz*ab - LOWPASS 2, 1, 0 ; ..YZ#ABC - pavgw m1, m0 ; ....#ABC - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - movhps [dstq+strideq*0], m1 - movhps [dstq+strideq*1], m2 - shufps m0, m2, m1, q3210 -%if cpuflag(ssse3) - pshufb m2, [pb_4_5_8to13_8x0] -%else - pshuflw m2, m2, q2222 - psrldq m2, 6 -%endif - psrldq m0, 6 - movh [dstq+strideq*2], m0 - movh [dstq+stride3q ], m2 - RET - -cglobal vp9_ipred_vr_8x8_16, 4, 4, 5, dst, stride, l, a - movu m1, [aq-2] ; *abcdefg - movu m2, [lq] ; stuvwxyz - mova m0, [aq] ; abcdefgh - PALIGNR m3, m1, m2, 14, m4 ; z*abcdef - LOWPASS 3, 1, 0 - pavgw m0, m1 - PALIGNR m1, m2, 2, m4 ; tuvwxyz* - pslldq m4, m2, 2 ; .stuvwxy - LOWPASS 4, 2, 1 - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m3 - PALIGNR m0, m4, 14, m1 - pslldq m4, 2 - PALIGNR m3, m4, 14, m1 - pslldq m4, 2 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m3 - lea dstq, [dstq+strideq*4] - PALIGNR m0, m4, 14, m1 - pslldq m4, 2 - PALIGNR m3, m4, 14, m1 - pslldq m4, 2 - mova [dstq+strideq*0], m0 - mova [dstq+strideq*1], m3 - PALIGNR m0, m4, 14, m1 - pslldq m4, 2 - PALIGNR m3, m4, 14, m4 - mova [dstq+strideq*2], m0 - mova [dstq+stride3q ], m3 - RET - -cglobal vp9_ipred_vr_16x16_16, 4, 4, 8, dst, stride, l, a - movu m1, [aq-2] ; *abcdefg - movu m2, [aq+mmsize-2] ; hijklmno - mova m3, [aq] ; abcdefgh - mova m4, [aq+mmsize] ; ijklmnop - mova m5, [lq+mmsize] ; stuvwxyz - PALIGNR m0, m1, m5, 14, m6 ; z*abcdef - movu m6, [aq+mmsize-4] ; ghijklmn - LOWPASS 6, 2, 4 - pavgw m2, m4 - LOWPASS 0, 1, 3 - pavgw m3, m1 - PALIGNR m1, m5, 2, m7 ; tuvwxyz* - movu m7, [lq+mmsize-2] ; rstuvwxy - LOWPASS 1, 5, 7 - movu m5, [lq+2] ; lmnopqrs - pslldq m4, m5, 2 ; .lmnopqr - pslldq m7, m5, 4 ; ..lmnopq - LOWPASS 5, 4, 7 - psrld m4, m1, 16 - psrld m7, m5, 16 - pand m1, [pd_65535] - pand m5, [pd_65535] - packssdw m7, m4 - packssdw m5, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 8 - -.loop: - mova [dstq+strideq*0+ 0], m3 - mova [dstq+strideq*0+16], m2 - mova [dstq+strideq*1+ 0], m0 - mova [dstq+strideq*1+16], m6 - lea dstq, [dstq+strideq*2] - PALIGNR m2, m3, 14, m4 - PALIGNR m3, m7, 14, m4 - pslldq m7, 2 - PALIGNR m6, m0, 14, m4 - PALIGNR m0, m5, 14, m4 - pslldq m5, 2 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_vr_32x32_16, 4, 5, 14, 6 * mmsize * ARCH_X86_32, dst, stride, l, a - movu m0, [aq+mmsize*0-2] ; *a[0-6] - movu m1, [aq+mmsize*1-2] ; a[7-14] - movu m2, [aq+mmsize*2-2] ; a[15-22] - movu m3, [aq+mmsize*3-2] ; a[23-30] - mova m4, [aq+mmsize*3+0] ; a[24-31] - movu m5, [aq+mmsize*3-4] ; a[22-29] - LOWPASS 5, 3, 4 ; A[23-30] - SCRATCH 5, 8, rsp+0*mmsize - pavgw m3, m4 - mova m4, [aq+mmsize*2+0] ; a[16-23] - movu m6, [aq+mmsize*2-4] ; a[14-21] - LOWPASS 6, 2, 4 ; A[15-22] - SCRATCH 6, 9, rsp+1*mmsize - pavgw m2, m4 - mova m4, [aq+mmsize*1+0] ; a[8-15] - movu m7, [aq+mmsize*1-4] ; a[6-13] - LOWPASS 7, 1, 4 ; A[7-14] - SCRATCH 7, 10, rsp+2*mmsize - pavgw m1, m4 - mova m4, [aq+mmsize*0+0] ; a[0-7] - mova m5, [lq+mmsize*3+0] ; l[24-31] - PALIGNR m6, m0, m5, 14, m7 ; l[31]*a[0-5] - LOWPASS 6, 0, 4 ; #A[0-6] - SCRATCH 6, 11, rsp+3*mmsize - pavgw m4, m0 - PALIGNR m0, m5, 2, m7 ; l[25-31]* - movu m7, [lq+mmsize*3-2] ; l[23-30] - LOWPASS 0, 5, 7 ; L[24-31] - movu m5, [lq+mmsize*2-2] ; l[15-22] - mova m7, [lq+mmsize*2+0] ; l[16-23] - movu m6, [lq+mmsize*2+2] ; l[17-24] - LOWPASS 5, 7, 6 ; L[16-23] - psrld m7, m0, 16 - psrld m6, m5, 16 - pand m0, [pd_65535] - pand m5, [pd_65535] - packssdw m6, m7 - packssdw m5, m0 - SCRATCH 5, 12, rsp+4*mmsize - SCRATCH 6, 13, rsp+5*mmsize - movu m6, [lq+mmsize*1-2] ; l[7-14] - mova m0, [lq+mmsize*1+0] ; l[8-15] - movu m5, [lq+mmsize*1+2] ; l[9-16] - LOWPASS 6, 0, 5 ; L[8-15] - movu m0, [lq+mmsize*0+2] ; l[1-8] - pslldq m5, m0, 2 ; .l[1-7] - pslldq m7, m0, 4 ; ..l[1-6] - LOWPASS 0, 5, 7 - psrld m5, m6, 16 - psrld m7, m0, 16 - pand m6, [pd_65535] - pand m0, [pd_65535] - packssdw m7, m5 - packssdw m0, m6 - UNSCRATCH 6, 13, rsp+5*mmsize - DEFINE_ARGS dst, stride, stride16, cnt, stride17 - mov stride16q, strideq - mov cntd, 8 - shl stride16q, 4 -%if ARCH_X86_64 - lea stride17q, [stride16q+strideq] -%endif - -.loop: - mova [dstq+strideq*0+ 0], m4 - mova [dstq+strideq*0+16], m1 - mova [dstq+strideq*0+32], m2 - mova [dstq+strideq*0+48], m3 -%if ARCH_X86_64 - mova [dstq+strideq*1+ 0], m11 - mova [dstq+strideq*1+16], m10 - mova [dstq+strideq*1+32], m9 - mova [dstq+strideq*1+48], m8 -%endif - mova [dstq+stride16q+ 0], m6 - mova [dstq+stride16q+16], m4 - mova [dstq+stride16q+32], m1 - mova [dstq+stride16q+48], m2 -%if ARCH_X86_64 - mova [dstq+stride17q+ 0], m12 - mova [dstq+stride17q+16], m11 - mova [dstq+stride17q+32], m10 - mova [dstq+stride17q+48], m9 -%endif - lea dstq, [dstq+strideq*2] - PALIGNR m3, m2, 14, m5 - PALIGNR m2, m1, 14, m5 - PALIGNR m1, m4, 14, m5 - PALIGNR m4, m6, 14, m5 - PALIGNR m6, m7, 14, m5 - pslldq m7, 2 -%if ARCH_X86_64 - PALIGNR m8, m9, 14, m5 - PALIGNR m9, m10, 14, m5 - PALIGNR m10, m11, 14, m5 - PALIGNR m11, m12, 14, m5 - PALIGNR m12, m0, 14, m5 - pslldq m0, 2 -%endif - dec cntd - jg .loop - -%if ARCH_X86_32 - UNSCRATCH 5, 12, rsp+4*mmsize - UNSCRATCH 4, 11, rsp+3*mmsize - UNSCRATCH 3, 10, rsp+2*mmsize - UNSCRATCH 2, 9, rsp+1*mmsize - UNSCRATCH 1, 8, rsp+0*mmsize - mov dstq, dstm - mov cntd, 8 - add dstq, strideq -.loop2: - mova [dstq+strideq*0+ 0], m4 - mova [dstq+strideq*0+16], m3 - mova [dstq+strideq*0+32], m2 - mova [dstq+strideq*0+48], m1 - mova [dstq+stride16q+ 0], m5 - mova [dstq+stride16q+16], m4 - mova [dstq+stride16q+32], m3 - mova [dstq+stride16q+48], m2 - lea dstq, [dstq+strideq*2] - PALIGNR m1, m2, 14, m6 - PALIGNR m2, m3, 14, m6 - PALIGNR m3, m4, 14, m6 - PALIGNR m4, m5, 14, m6 - PALIGNR m5, m0, 14, m6 - pslldq m0, 2 - dec cntd - jg .loop2 -%endif - RET -%endmacro - -INIT_XMM sse2 -VR_FUNCS -INIT_XMM ssse3 -VR_FUNCS -INIT_XMM avx -VR_FUNCS - -%macro HU_FUNCS 1 ; stack_mem_for_32x32_32bit_function -cglobal vp9_ipred_hu_4x4_16, 3, 3, 3, dst, stride, l, a - movh m0, [lq] ; abcd -%if cpuflag(ssse3) - pshufb m0, [pb_0to7_67x4] ; abcddddd -%else - punpcklqdq m0, m0 - pshufhw m0, m0, q3333 ; abcddddd -%endif - psrldq m1, m0, 2 ; bcddddd. - psrldq m2, m0, 4 ; cddddd.. - LOWPASS 2, 1, 0 ; BCDddd.. - pavgw m1, m0 ; abcddddd - SBUTTERFLY wd, 1, 2, 0 ; aBbCcDdd, dddddddd - PALIGNR m2, m1, 4, m0 ; bCcDdddd - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - movh [dstq+strideq*0], m1 ; aBbC - movh [dstq+strideq*1], m2 ; bCcD - movhps [dstq+strideq*2], m1 ; cDdd - movhps [dstq+stride3q ], m2 ; dddd - RET - -cglobal vp9_ipred_hu_8x8_16, 3, 3, 4, dst, stride, l, a - mova m0, [lq] -%if cpuflag(ssse3) - mova m3, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m1, m2, m0, m3 - LOWPASS 2, 1, 0 - pavgw m1, m0 - SBUTTERFLY wd, 1, 2, 0 - shufps m0, m1, m2, q1032 - pshufd m3, m2, q3332 - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - mova [dstq+strideq *0], m1 - mova [dstq+strideq *2], m0 - mova [dstq+strideq *4], m2 - mova [dstq+stride3q*2], m3 - add dstq, strideq -%if cpuflag(avx) - vpalignr m1, m2, m1, 4 -%else - PALIGNR m0, m2, m1, 4, m3 - mova m1, m0 -%endif - pshufd m2, m2, q3321 - shufps m0, m1, m2, q1032 - pshufd m3, m2, q3332 - mova [dstq+strideq *0], m1 - mova [dstq+strideq *2], m0 - mova [dstq+strideq *4], m2 - mova [dstq+stride3q*2], m3 - RET - -cglobal vp9_ipred_hu_16x16_16, 3, 4, 6 + notcpuflag(ssse3), dst, stride, l, a - mova m0, [lq] - mova m3, [lq+mmsize] - movu m1, [lq+2] - movu m2, [lq+4] - LOWPASS 2, 1, 0 - pavgw m1, m0 - SBUTTERFLY wd, 1, 2, 0 -%if cpuflag(ssse3) - mova m5, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m0, m4, m3, m5 - LOWPASS 4, 0, 3 - pavgw m3, m0 - SBUTTERFLY wd, 3, 4, 5 - pshufd m0, m0, q3333 - DEFINE_ARGS dst, stride, stride3, cnt - lea stride3q, [strideq*3] - mov cntd, 4 - -.loop: - mova [dstq+strideq *0+ 0], m1 - mova [dstq+strideq *0+16], m2 - mova [dstq+strideq *4+ 0], m2 - mova [dstq+strideq *4+16], m3 - mova [dstq+strideq *8+ 0], m3 - mova [dstq+strideq *8+16], m4 - mova [dstq+stride3q*4+ 0], m4 - mova [dstq+stride3q*4+16], m0 - add dstq, strideq -%if cpuflag(avx) - vpalignr m1, m2, m1, 4 - vpalignr m2, m3, m2, 4 - vpalignr m3, m4, m3, 4 - vpalignr m4, m0, m4, 4 -%else - PALIGNR m5, m2, m1, 4, m6 - mova m1, m5 - PALIGNR m5, m3, m2, 4, m6 - mova m2, m5 - PALIGNR m5, m4, m3, 4, m6 - mova m3, m5 - PALIGNR m5, m0, m4, 4, m6 - mova m4, m5 -%endif - dec cntd - jg .loop - RET - -cglobal vp9_ipred_hu_32x32_16, 3, 7, 10 + notcpuflag(ssse3), \ - %1 * -mmsize * ARCH_X86_32, dst, stride, l, a - mova m2, [lq+mmsize*0+0] - movu m1, [lq+mmsize*0+2] - movu m0, [lq+mmsize*0+4] - LOWPASS 0, 1, 2 - pavgw m1, m2 - SBUTTERFLY wd, 1, 0, 2 - SCRATCH 1, 8, rsp+0*mmsize - mova m4, [lq+mmsize*1+0] - movu m3, [lq+mmsize*1+2] - movu m2, [lq+mmsize*1+4] - LOWPASS 2, 3, 4 - pavgw m3, m4 - SBUTTERFLY wd, 3, 2, 4 - mova m6, [lq+mmsize*2+0] - movu m5, [lq+mmsize*2+2] - movu m4, [lq+mmsize*2+4] - LOWPASS 4, 5, 6 - pavgw m5, m6 - SBUTTERFLY wd, 5, 4, 6 - mova m7, [lq+mmsize*3+0] - SCRATCH 0, 9, rsp+1*mmsize -%if cpuflag(ssse3) - mova m0, [pb_2to15_14_15] -%endif - SHIFT_RIGHTx2 m1, m6, m7, m0 - LOWPASS 6, 1, 7 - pavgw m7, m1 - SBUTTERFLY wd, 7, 6, 0 - pshufd m1, m1, q3333 - UNSCRATCH 0, 9, rsp+1*mmsize - DEFINE_ARGS dst, stride, cnt, stride3, stride4, stride20, stride28 - lea stride3q, [strideq*3] - lea stride4q, [strideq*4] - lea stride28q, [stride4q*8] - lea stride20q, [stride4q*5] - sub stride28q, stride4q - mov cntd, 4 - -.loop: -%if ARCH_X86_64 - SWAP 1, 8 -%else - mova [rsp+1*mmsize], m1 - mova m1, [rsp+0*mmsize] -%endif - mova [dstq+strideq *0+ 0], m1 - mova [dstq+strideq *0+16], m0 - mova [dstq+strideq *0+32], m3 - mova [dstq+strideq *0+48], m2 - mova [dstq+stride4q*1+ 0], m0 - mova [dstq+stride4q*1+16], m3 - mova [dstq+stride4q*1+32], m2 - mova [dstq+stride4q*1+48], m5 - mova [dstq+stride4q*2+ 0], m3 - mova [dstq+stride4q*2+16], m2 - mova [dstq+stride4q*2+32], m5 - mova [dstq+stride4q*2+48], m4 -%if cpuflag(avx) - vpalignr m1, m0, m1, 4 - vpalignr m0, m3, m0, 4 - vpalignr m3, m2, m3, 4 -%else - SCRATCH 6, 9, rsp+2*mmsize -%if notcpuflag(ssse3) - SCRATCH 7, 10, rsp+3*mmsize -%endif - PALIGNR m6, m0, m1, 4, m7 - mova m1, m6 - PALIGNR m6, m3, m0, 4, m7 - mova m0, m6 - PALIGNR m6, m2, m3, 4, m7 - mova m3, m6 - UNSCRATCH 6, 9, rsp+2*mmsize - SCRATCH 0, 9, rsp+2*mmsize -%if notcpuflag(ssse3) - UNSCRATCH 7, 10, rsp+3*mmsize - SCRATCH 3, 10, rsp+3*mmsize -%endif -%endif -%if ARCH_X86_64 - SWAP 1, 8 -%else - mova [rsp+0*mmsize], m1 - mova m1, [rsp+1*mmsize] -%endif - mova [dstq+stride3q*4+ 0], m2 - mova [dstq+stride3q*4+16], m5 - mova [dstq+stride3q*4+32], m4 - mova [dstq+stride3q*4+48], m7 - mova [dstq+stride4q*4+ 0], m5 - mova [dstq+stride4q*4+16], m4 - mova [dstq+stride4q*4+32], m7 - mova [dstq+stride4q*4+48], m6 - mova [dstq+stride20q + 0], m4 - mova [dstq+stride20q +16], m7 - mova [dstq+stride20q +32], m6 - mova [dstq+stride20q +48], m1 - mova [dstq+stride3q*8+ 0], m7 - mova [dstq+stride3q*8+16], m6 - mova [dstq+stride3q*8+32], m1 - mova [dstq+stride3q*8+48], m1 - mova [dstq+stride28q + 0], m6 - mova [dstq+stride28q +16], m1 - mova [dstq+stride28q +32], m1 - mova [dstq+stride28q +48], m1 -%if cpuflag(avx) - vpalignr m2, m5, m2, 4 - vpalignr m5, m4, m5, 4 - vpalignr m4, m7, m4, 4 - vpalignr m7, m6, m7, 4 - vpalignr m6, m1, m6, 4 -%else - PALIGNR m0, m5, m2, 4, m3 - mova m2, m0 - PALIGNR m0, m4, m5, 4, m3 - mova m5, m0 - PALIGNR m0, m7, m4, 4, m3 - mova m4, m0 - PALIGNR m0, m6, m7, 4, m3 - mova m7, m0 - PALIGNR m0, m1, m6, 4, m3 - mova m6, m0 - UNSCRATCH 0, 9, rsp+2*mmsize -%if notcpuflag(ssse3) - UNSCRATCH 3, 10, rsp+3*mmsize -%endif -%endif - add dstq, strideq - dec cntd - jg .loop - RET -%endmacro - -INIT_XMM sse2 -HU_FUNCS 4 -INIT_XMM ssse3 -HU_FUNCS 3 -INIT_XMM avx -HU_FUNCS 2 - -%macro HD_FUNCS 0 -cglobal vp9_ipred_hd_4x4_16, 4, 4, 4, dst, stride, l, a - movh m0, [lq] - movhps m0, [aq-2] - psrldq m1, m0, 2 - psrldq m2, m0, 4 - LOWPASS 2, 1, 0 - pavgw m1, m0 - punpcklwd m1, m2 - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - - movh [dstq+stride3q ], m1 - movhps [dstq+strideq*1], m1 - movhlps m2, m2 - PALIGNR m2, m1, 4, m0 - movh [dstq+strideq*2], m2 - movhps [dstq+strideq*0], m2 - RET - -cglobal vp9_ipred_hd_8x8_16, 4, 4, 5, dst, stride, l, a - mova m0, [lq] - movu m1, [aq-2] - PALIGNR m2, m1, m0, 2, m3 - PALIGNR m3, m1, m0, 4, m4 - LOWPASS 3, 2, 0 - pavgw m2, m0 - SBUTTERFLY wd, 2, 3, 0 - psrldq m0, m1, 2 - psrldq m4, m1, 4 - LOWPASS 1, 0, 4 - DEFINE_ARGS dst8, mstride, cnt - lea dst8q, [dst8q+mstrideq*8] - neg mstrideq - mov cntd, 4 - -.loop: - add dst8q, mstrideq - mova [dst8q+mstrideq*0], m2 - mova [dst8q+mstrideq*4], m3 -%if cpuflag(avx) - vpalignr m2, m3, m2, 4 - vpalignr m3, m1, m3, 4 -%else - PALIGNR m0, m3, m2, 4, m4 - mova m2, m0 - PALIGNR m0, m1, m3, 4, m4 - mova m3, m0 -%endif - psrldq m1, 4 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_hd_16x16_16, 4, 4, 8, dst, stride, l, a - mova m2, [lq] - movu m1, [lq+2] - movu m0, [lq+4] - LOWPASS 0, 1, 2 - pavgw m1, m2 - mova m4, [lq+mmsize] - movu m5, [aq-2] - PALIGNR m3, m5, m4, 2, m6 - PALIGNR m2, m5, m4, 4, m6 - LOWPASS 2, 3, 4 - pavgw m3, m4 - SBUTTERFLY wd, 1, 0, 4 - SBUTTERFLY wd, 3, 2, 4 - mova m6, [aq] - movu m4, [aq+2] - LOWPASS 4, 6, 5 - movu m5, [aq+mmsize-2] - psrldq m6, m5, 2 - psrldq m7, m5, 4 - LOWPASS 5, 6, 7 - DEFINE_ARGS dst, mstride, mstride3, cnt - lea dstq, [dstq+mstrideq*8] - lea dstq, [dstq+mstrideq*8] - neg mstrideq - lea mstride3q, [mstrideq*3] - mov cntd, 4 - -.loop: - add dstq, mstrideq - mova [dstq+mstride3q*4+ 0], m2 - mova [dstq+mstride3q*4+16], m4 - mova [dstq+mstrideq *8+ 0], m3 - mova [dstq+mstrideq *8+16], m2 - mova [dstq+mstrideq *4+ 0], m0 - mova [dstq+mstrideq *4+16], m3 - mova [dstq+mstrideq *0+ 0], m1 - mova [dstq+mstrideq *0+16], m0 -%if cpuflag(avx) - vpalignr m1, m0, m1, 4 - vpalignr m0, m3, m0, 4 - vpalignr m3, m2, m3, 4 - vpalignr m2, m4, m2, 4 - vpalignr m4, m5, m4, 4 -%else - PALIGNR m6, m0, m1, 4, m7 - mova m1, m6 - PALIGNR m6, m3, m0, 4, m7 - mova m0, m6 - PALIGNR m6, m2, m3, 4, m7 - mova m3, m6 - PALIGNR m6, m4, m2, 4, m7 - mova m2, m6 - PALIGNR m6, m5, m4, 4, m7 - mova m4, m6 -%endif - psrldq m5, 4 - dec cntd - jg .loop - RET - -cglobal vp9_ipred_hd_32x32_16, 4, 4 + 3 * ARCH_X86_64, 14, \ - 10 * -mmsize * ARCH_X86_32, dst, stride, l, a - mova m2, [lq+mmsize*0+0] - movu m1, [lq+mmsize*0+2] - movu m0, [lq+mmsize*0+4] - LOWPASS 0, 1, 2 - pavgw m1, m2 - SBUTTERFLY wd, 1, 0, 2 - mova m4, [lq+mmsize*1+0] - movu m3, [lq+mmsize*1+2] - movu m2, [lq+mmsize*1+4] - LOWPASS 2, 3, 4 - pavgw m3, m4 - SBUTTERFLY wd, 3, 2, 4 - SCRATCH 0, 8, rsp+0*mmsize - SCRATCH 1, 9, rsp+1*mmsize - SCRATCH 2, 10, rsp+2*mmsize - SCRATCH 3, 11, rsp+3*mmsize - mova m6, [lq+mmsize*2+0] - movu m5, [lq+mmsize*2+2] - movu m4, [lq+mmsize*2+4] - LOWPASS 4, 5, 6 - pavgw m5, m6 - SBUTTERFLY wd, 5, 4, 6 - mova m0, [lq+mmsize*3+0] - movu m1, [aq+mmsize*0-2] - PALIGNR m7, m1, m0, 2, m2 - PALIGNR m6, m1, m0, 4, m2 - LOWPASS 6, 7, 0 - pavgw m7, m0 - SBUTTERFLY wd, 7, 6, 0 - mova m2, [aq+mmsize*0+0] - movu m0, [aq+mmsize*0+2] - LOWPASS 0, 2, 1 - movu m1, [aq+mmsize*1-2] - mova m2, [aq+mmsize*1+0] - movu m3, [aq+mmsize*1+2] - LOWPASS 1, 2, 3 - SCRATCH 6, 12, rsp+6*mmsize - SCRATCH 7, 13, rsp+7*mmsize - movu m2, [aq+mmsize*2-2] - mova m3, [aq+mmsize*2+0] - movu m6, [aq+mmsize*2+2] - LOWPASS 2, 3, 6 - movu m3, [aq+mmsize*3-2] - psrldq m6, m3, 2 - psrldq m7, m3, 4 - LOWPASS 3, 6, 7 - UNSCRATCH 6, 12, rsp+6*mmsize - UNSCRATCH 7, 13, rsp+7*mmsize -%if ARCH_X86_32 - mova [rsp+4*mmsize], m4 - mova [rsp+5*mmsize], m5 - ; we already backed up m6/m7 earlier on x86-32 in SCRATCH, so we don't need - ; to do it again here -%endif - DEFINE_ARGS dst, stride, cnt, stride3, stride4, stride20, stride28 - mov cntd, 4 - lea stride3q, [strideq*3] -%if ARCH_X86_64 - lea stride4q, [strideq*4] - lea stride28q, [stride4q*8] - lea stride20q, [stride4q*5] - sub stride28q, stride4q -%endif - add dstq, stride3q - - ; x86-32 doesn't have enough registers, so on that platform, we split - ; the loop in 2... Otherwise you spend most of the loop (un)scratching -.loop: -%if ARCH_X86_64 - mova [dstq+stride28q + 0], m9 - mova [dstq+stride28q +16], m8 - mova [dstq+stride28q +32], m11 - mova [dstq+stride28q +48], m10 - mova [dstq+stride3q*8+ 0], m8 - mova [dstq+stride3q*8+16], m11 - mova [dstq+stride3q*8+32], m10 - mova [dstq+stride3q*8+48], m5 - mova [dstq+stride20q + 0], m11 - mova [dstq+stride20q +16], m10 - mova [dstq+stride20q +32], m5 - mova [dstq+stride20q +48], m4 - mova [dstq+stride4q*4+ 0], m10 - mova [dstq+stride4q*4+16], m5 - mova [dstq+stride4q*4+32], m4 - mova [dstq+stride4q*4+48], m7 -%endif - mova [dstq+stride3q*4+ 0], m5 - mova [dstq+stride3q*4+16], m4 - mova [dstq+stride3q*4+32], m7 - mova [dstq+stride3q*4+48], m6 - mova [dstq+strideq* 8+ 0], m4 - mova [dstq+strideq* 8+16], m7 - mova [dstq+strideq* 8+32], m6 - mova [dstq+strideq* 8+48], m0 - mova [dstq+strideq* 4+ 0], m7 - mova [dstq+strideq* 4+16], m6 - mova [dstq+strideq* 4+32], m0 - mova [dstq+strideq* 4+48], m1 - mova [dstq+strideq* 0+ 0], m6 - mova [dstq+strideq* 0+16], m0 - mova [dstq+strideq* 0+32], m1 - mova [dstq+strideq* 0+48], m2 - sub dstq, strideq -%if cpuflag(avx) -%if ARCH_X86_64 - vpalignr m9, m8, m9, 4 - vpalignr m8, m11, m8, 4 - vpalignr m11, m10, m11, 4 - vpalignr m10, m5, m10, 4 -%endif - vpalignr m5, m4, m5, 4 - vpalignr m4, m7, m4, 4 - vpalignr m7, m6, m7, 4 - vpalignr m6, m0, m6, 4 - vpalignr m0, m1, m0, 4 - vpalignr m1, m2, m1, 4 - vpalignr m2, m3, m2, 4 -%else -%if ARCH_X86_64 - PALIGNR m12, m8, m9, 4, m13 - mova m9, m12 - PALIGNR m12, m11, m8, 4, m13 - mova m8, m12 - PALIGNR m12, m10, m11, 4, m13 - mova m11, m12 - PALIGNR m12, m5, m10, 4, m13 - mova m10, m12 -%endif - SCRATCH 3, 12, rsp+8*mmsize, sh -%if notcpuflag(ssse3) - SCRATCH 2, 13, rsp+9*mmsize -%endif - PALIGNR m3, m4, m5, 4, m2 - mova m5, m3 - PALIGNR m3, m7, m4, 4, m2 - mova m4, m3 - PALIGNR m3, m6, m7, 4, m2 - mova m7, m3 - PALIGNR m3, m0, m6, 4, m2 - mova m6, m3 - PALIGNR m3, m1, m0, 4, m2 - mova m0, m3 -%if notcpuflag(ssse3) - UNSCRATCH 2, 13, rsp+9*mmsize - SCRATCH 0, 13, rsp+9*mmsize -%endif - PALIGNR m3, m2, m1, 4, m0 - mova m1, m3 - PALIGNR m3, reg_sh, m2, 4, m0 - mova m2, m3 -%if notcpuflag(ssse3) - UNSCRATCH 0, 13, rsp+9*mmsize -%endif - UNSCRATCH 3, 12, rsp+8*mmsize, sh -%endif - psrldq m3, 4 - dec cntd - jg .loop - -%if ARCH_X86_32 - UNSCRATCH 0, 8, rsp+0*mmsize - UNSCRATCH 1, 9, rsp+1*mmsize - UNSCRATCH 2, 10, rsp+2*mmsize - UNSCRATCH 3, 11, rsp+3*mmsize - mova m4, [rsp+4*mmsize] - mova m5, [rsp+5*mmsize] - mova m6, [rsp+6*mmsize] - mova m7, [rsp+7*mmsize] - DEFINE_ARGS dst, stride, stride5, stride3 - lea stride5q, [strideq*5] - lea dstq, [dstq+stride5q*4] - DEFINE_ARGS dst, stride, cnt, stride3 - mov cntd, 4 -.loop_2: - mova [dstq+stride3q*4+ 0], m1 - mova [dstq+stride3q*4+16], m0 - mova [dstq+stride3q*4+32], m3 - mova [dstq+stride3q*4+48], m2 - mova [dstq+strideq* 8+ 0], m0 - mova [dstq+strideq* 8+16], m3 - mova [dstq+strideq* 8+32], m2 - mova [dstq+strideq* 8+48], m5 - mova [dstq+strideq* 4+ 0], m3 - mova [dstq+strideq* 4+16], m2 - mova [dstq+strideq* 4+32], m5 - mova [dstq+strideq* 4+48], m4 - mova [dstq+strideq* 0+ 0], m2 - mova [dstq+strideq* 0+16], m5 - mova [dstq+strideq* 0+32], m4 - mova [dstq+strideq* 0+48], m7 - sub dstq, strideq -%if cpuflag(avx) - vpalignr m1, m0, m1, 4 - vpalignr m0, m3, m0, 4 - vpalignr m3, m2, m3, 4 - vpalignr m2, m5, m2, 4 - vpalignr m5, m4, m5, 4 - vpalignr m4, m7, m4, 4 - vpalignr m7, m6, m7, 4 -%else - SCRATCH 6, 12, rsp+8*mmsize, sh -%if notcpuflag(ssse3) - SCRATCH 7, 13, rsp+9*mmsize -%endif - PALIGNR m6, m0, m1, 4, m7 - mova m1, m6 - PALIGNR m6, m3, m0, 4, m7 - mova m0, m6 - PALIGNR m6, m2, m3, 4, m7 - mova m3, m6 - PALIGNR m6, m5, m2, 4, m7 - mova m2, m6 - PALIGNR m6, m4, m5, 4, m7 - mova m5, m6 -%if notcpuflag(ssse3) - UNSCRATCH 7, 13, rsp+9*mmsize - SCRATCH 5, 13, rsp+9*mmsize -%endif - PALIGNR m6, m7, m4, 4, m5 - mova m4, m6 - PALIGNR m6, reg_sh, m7, 4, m5 - mova m7, m6 -%if notcpuflag(ssse3) - UNSCRATCH 5, 13, rsp+9*mmsize -%endif - UNSCRATCH 6, 12, rsp+8*mmsize, sh -%endif - psrldq m6, 4 - dec cntd - jg .loop_2 -%endif - RET -%endmacro - -INIT_XMM sse2 -HD_FUNCS -INIT_XMM ssse3 -HD_FUNCS -INIT_XMM avx -HD_FUNCS diff --git a/libavcodec/x86/vp9itxfm.asm b/libavcodec/x86/vp9itxfm.asm deleted file mode 100644 index 2c63fe514a..0000000000 --- a/libavcodec/x86/vp9itxfm.asm +++ /dev/null @@ -1,3197 +0,0 @@ -;****************************************************************************** -;* VP9 IDCT SIMD optimizations -;* -;* Copyright (C) 2013 Clément Bœsch -;* Copyright (C) 2013 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 "libavutil/x86/x86util.asm" -%include "vp9itxfm_template.asm" - -SECTION_RODATA 32 - -%macro VP9_IDCT_COEFFS 2-3 0 -const pw_m%1_%2 -times 8 dw -%1, %2 -const pw_%2_%1 -times 8 dw %2, %1 - -%if %3 == 1 -const pw_m%2_m%1 -times 8 dw -%2, -%1 -%if %1 != %2 -const pw_m%2_%1 -times 8 dw -%2, %1 -const pw_%1_%2 -times 8 dw %1, %2 -%endif -%endif - -%if %1 < 11585 -pw_m%1x2: times 16 dw -%1*2 -%elif %1 > 11585 -pw_%1x2: times 16 dw %1*2 -%else -const pw_%1x2 -times 16 dw %1*2 -%endif - -%if %2 != %1 -pw_%2x2: times 16 dw %2*2 -%endif -%endmacro - -VP9_IDCT_COEFFS 16364, 804 -VP9_IDCT_COEFFS 16305, 1606 -VP9_IDCT_COEFFS 16069, 3196, 1 -VP9_IDCT_COEFFS 15893, 3981 -VP9_IDCT_COEFFS 15137, 6270, 1 -VP9_IDCT_COEFFS 14811, 7005 -VP9_IDCT_COEFFS 14449, 7723 -VP9_IDCT_COEFFS 13160, 9760 -VP9_IDCT_COEFFS 11585, 11585, 1 -VP9_IDCT_COEFFS 11003, 12140 -VP9_IDCT_COEFFS 10394, 12665 -VP9_IDCT_COEFFS 9102, 13623, 1 -VP9_IDCT_COEFFS 8423, 14053 -VP9_IDCT_COEFFS 5520, 15426 -VP9_IDCT_COEFFS 4756, 15679 -VP9_IDCT_COEFFS 2404, 16207 - -const pw_5283_13377 -times 4 dw 5283, 13377 -const pw_9929_13377 -times 4 dw 9929, 13377 -const pw_15212_m13377 -times 4 dw 15212, -13377 -const pw_15212_9929 -times 4 dw 15212, 9929 -const pw_m5283_m15212 -times 4 dw -5283, -15212 -const pw_13377x2 -times 8 dw 13377*2 -const pw_m13377_13377 -times 4 dw -13377, 13377 -const pw_13377_0 -times 4 dw 13377, 0 - -cextern pw_8 -cextern pw_16 -cextern pw_32 -cextern pw_512 -cextern pw_1024 -cextern pw_2048 -cextern pw_m1 -cextern pd_8192 - -SECTION .text - -%macro VP9_UNPACK_MULSUB_2D_4X 6 ; dst1 [src1], dst2 [src2], dst3, dst4, mul1, mul2 - punpckhwd m%4, m%2, m%1 - punpcklwd m%2, m%1 - pmaddwd m%3, m%4, [pw_m%5_%6] - pmaddwd m%4, [pw_%6_%5] - pmaddwd m%1, m%2, [pw_m%5_%6] - pmaddwd m%2, [pw_%6_%5] -%endmacro - -%macro VP9_RND_SH_SUMSUB_BA 6 ; dst1 [src1], dst2 [src2], src3, src4, tmp, round - SUMSUB_BA d, %1, %2, %5 - SUMSUB_BA d, %3, %4, %5 - paddd m%1, %6 - paddd m%2, %6 - paddd m%3, %6 - paddd m%4, %6 - psrad m%1, 14 - psrad m%2, 14 - psrad m%3, 14 - psrad m%4, 14 - packssdw m%1, m%3 - packssdw m%2, m%4 -%endmacro - -%macro VP9_STORE_2X 5-6 dstq ; reg1, reg2, tmp1, tmp2, zero, dst -%if mmsize == 32 - pmovzxbw m%3, [%6] - pmovzxbw m%4, [%6+strideq] -%else - movh m%3, [%6] - movh m%4, [%6+strideq] - punpcklbw m%3, m%5 - punpcklbw m%4, m%5 -%endif - paddw m%3, m%1 - paddw m%4, m%2 -%if mmsize == 32 - packuswb m%3, m%4 - ; Intel... - vpermq m%3, m%3, q3120 - mova [%6], xm%3 - vextracti128 [%6+strideq], m%3, 1 -%elif mmsize == 16 - packuswb m%3, m%4 - movh [%6], m%3 - movhps [%6+strideq], m%3 -%else - packuswb m%3, m%5 - packuswb m%4, m%5 - movh [%6], m%3 - movh [%6+strideq], m%4 -%endif -%endmacro - -%macro ZERO_BLOCK 4 ; mem, stride, nnzcpl, zero_reg -%assign %%y 0 -%rep %3 -%assign %%x 0 -%rep %3*2/mmsize - mova [%1+%%y+%%x], %4 -%assign %%x (%%x+mmsize) -%endrep -%assign %%y (%%y+%2) -%endrep -%endmacro - -;------------------------------------------------------------------------------------------- -; void vp9_iwht_iwht_4x4_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;------------------------------------------------------------------------------------------- - -INIT_MMX mmx -cglobal vp9_iwht_iwht_4x4_add, 3, 3, 0, dst, stride, block, eob - mova m0, [blockq+0*8] - mova m1, [blockq+1*8] - mova m2, [blockq+2*8] - mova m3, [blockq+3*8] - psraw m0, 2 - psraw m1, 2 - psraw m2, 2 - psraw m3, 2 - - VP9_IWHT4_1D - TRANSPOSE4x4W 0, 1, 2, 3, 4 - VP9_IWHT4_1D - - pxor m4, m4 - VP9_STORE_2X 0, 1, 5, 6, 4 - lea dstq, [dstq+strideq*2] - VP9_STORE_2X 2, 3, 5, 6, 4 - ZERO_BLOCK blockq, 8, 4, m4 - RET - -;------------------------------------------------------------------------------------------- -; void vp9_idct_idct_4x4_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;------------------------------------------------------------------------------------------- - -; 2x2 top left corner -%macro VP9_IDCT4_2x2_1D 0 - pmulhrsw m0, m5 ; m0=t1 - mova m2, m0 ; m2=t0 - mova m3, m1 - pmulhrsw m1, m6 ; m1=t2 - pmulhrsw m3, m7 ; m3=t3 - VP9_IDCT4_1D_FINALIZE -%endmacro - -%macro VP9_IDCT4_WRITEOUT 0 -%if cpuflag(ssse3) - mova m5, [pw_2048] - pmulhrsw m0, m5 ; (x*2048 + (1<<14))>>15 <=> (x+8)>>4 - pmulhrsw m1, m5 -%else - mova m5, [pw_8] - paddw m0, m5 - paddw m1, m5 - psraw m0, 4 - psraw m1, 4 -%endif - VP9_STORE_2X 0, 1, 6, 7, 4 - lea dstq, [dstq+2*strideq] -%if cpuflag(ssse3) - pmulhrsw m2, m5 - pmulhrsw m3, m5 -%else - paddw m2, m5 - paddw m3, m5 - psraw m2, 4 - psraw m3, 4 -%endif - VP9_STORE_2X 2, 3, 6, 7, 4 -%endmacro - -%macro IDCT_4x4_FN 1 -INIT_MMX %1 -cglobal vp9_idct_idct_4x4_add, 4, 4, 0, dst, stride, block, eob - -%if cpuflag(ssse3) - cmp eobd, 4 ; 2x2 or smaller - jg .idctfull - - cmp eobd, 1 ; faster path for when only DC is set - jne .idct2x2 -%else - cmp eobd, 1 - jg .idctfull -%endif - -%if cpuflag(ssse3) - movd m0, [blockq] - mova m5, [pw_11585x2] - pmulhrsw m0, m5 - pmulhrsw m0, m5 -%else - DEFINE_ARGS dst, stride, block, coef - movsx coefd, word [blockq] - imul coefd, 11585 - add coefd, 8192 - sar coefd, 14 - imul coefd, 11585 - add coefd, (8 << 14) + 8192 - sar coefd, 14 + 4 - movd m0, coefd -%endif - pshufw m0, m0, 0 - pxor m4, m4 - movh [blockq], m4 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_2048] ; (x*2048 + (1<<14))>>15 <=> (x+8)>>4 -%endif - VP9_STORE_2X 0, 0, 6, 7, 4 - lea dstq, [dstq+2*strideq] - VP9_STORE_2X 0, 0, 6, 7, 4 - RET - -%if cpuflag(ssse3) -; faster path for when only top left 2x2 block is set -.idct2x2: - movd m0, [blockq+0] - movd m1, [blockq+8] - mova m5, [pw_11585x2] - mova m6, [pw_6270x2] - mova m7, [pw_15137x2] - VP9_IDCT4_2x2_1D - ; partial 2x4 transpose - punpcklwd m0, m1 - punpcklwd m2, m3 - SBUTTERFLY dq, 0, 2, 1 - SWAP 1, 2 - VP9_IDCT4_2x2_1D - pxor m4, m4 ; used for the block reset, and VP9_STORE_2X - movh [blockq+ 0], m4 - movh [blockq+ 8], m4 - VP9_IDCT4_WRITEOUT - RET -%endif - -.idctfull: ; generic full 4x4 idct/idct - mova m0, [blockq+ 0] - mova m1, [blockq+ 8] - mova m2, [blockq+16] - mova m3, [blockq+24] -%if cpuflag(ssse3) - mova m6, [pw_11585x2] -%endif - mova m7, [pd_8192] ; rounding - VP9_IDCT4_1D - TRANSPOSE4x4W 0, 1, 2, 3, 4 - VP9_IDCT4_1D - pxor m4, m4 ; used for the block reset, and VP9_STORE_2X - mova [blockq+ 0], m4 - mova [blockq+ 8], m4 - mova [blockq+16], m4 - mova [blockq+24], m4 - VP9_IDCT4_WRITEOUT - RET -%endmacro - -IDCT_4x4_FN mmxext -IDCT_4x4_FN ssse3 - -;------------------------------------------------------------------------------------------- -; void vp9_iadst_iadst_4x4_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;------------------------------------------------------------------------------------------- - -%macro IADST4_FN 5 -INIT_MMX %5 -cglobal vp9_%1_%3_4x4_add, 3, 3, 0, dst, stride, block, eob -%if WIN64 && notcpuflag(ssse3) - WIN64_SPILL_XMM 8 -%endif - movdqa xmm5, [pd_8192] - mova m0, [blockq+ 0] - mova m1, [blockq+ 8] - mova m2, [blockq+16] - mova m3, [blockq+24] -%if cpuflag(ssse3) - mova m6, [pw_11585x2] -%endif -%ifnidn %1%3, iadstiadst - movdq2q m7, xmm5 -%endif - VP9_%2_1D - TRANSPOSE4x4W 0, 1, 2, 3, 4 - VP9_%4_1D - pxor m4, m4 ; used for the block reset, and VP9_STORE_2X - mova [blockq+ 0], m4 - mova [blockq+ 8], m4 - mova [blockq+16], m4 - mova [blockq+24], m4 - VP9_IDCT4_WRITEOUT - RET -%endmacro - -IADST4_FN idct, IDCT4, iadst, IADST4, sse2 -IADST4_FN iadst, IADST4, idct, IDCT4, sse2 -IADST4_FN iadst, IADST4, iadst, IADST4, sse2 - -IADST4_FN idct, IDCT4, iadst, IADST4, ssse3 -IADST4_FN iadst, IADST4, idct, IDCT4, ssse3 -IADST4_FN iadst, IADST4, iadst, IADST4, ssse3 - -%macro SCRATCH 3 -%if ARCH_X86_64 - SWAP %1, %2 -%else - mova [%3], m%1 -%endif -%endmacro - -%macro UNSCRATCH 3 -%if ARCH_X86_64 - SWAP %1, %2 -%else - mova m%1, [%3] -%endif -%endmacro - -;------------------------------------------------------------------------------------------- -; void vp9_idct_idct_8x8_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;------------------------------------------------------------------------------------------- - -%macro VP9_IDCT8_1D_FINALIZE 0 - SUMSUB_BA w, 3, 6, 5 ; m3=t0+t7, m6=t0-t7 - SUMSUB_BA w, 1, 2, 5 ; m1=t1+t6, m2=t1-t6 - SUMSUB_BA w, 7, 0, 5 ; m7=t2+t5, m0=t2-t5 - - UNSCRATCH 5, 8, blockq+ 0 - SCRATCH 2, 8, blockq+ 0 - - SUMSUB_BA w, 5, 4, 2 ; m5=t3+t4, m4=t3-t4 - SWAP 7, 6, 2 - SWAP 3, 5, 0 - -%if ARCH_X86_64 - SWAP 6, 8 -%endif -%endmacro - -; x86-32 -; - in: m0/m4 is in mem -; - out: m6 is in mem -; x86-64: -; - everything is in registers (m0-7) -%macro VP9_IDCT8_1D 0 -%if ARCH_X86_64 - SWAP 0, 8 - SWAP 4, 9 -%endif - - VP9_UNPACK_MULSUB_2W_4X 5, 3, 9102, 13623, D_8192_REG, 0, 4 ; m5=t5a, m3=t6a - VP9_UNPACK_MULSUB_2W_4X 1, 7, 16069, 3196, D_8192_REG, 0, 4 ; m1=t4a, m7=t7a - SUMSUB_BA w, 5, 1, 0 ; m5=t4a+t5a (t4), m1=t4a-t5a (t5a) - SUMSUB_BA w, 3, 7, 0 ; m3=t7a+t6a (t7), m7=t7a-t6a (t6a) -%if cpuflag(ssse3) - SUMSUB_BA w, 1, 7, 0 ; m1=t6a+t5a (t6), m7=t6a-t5a (t5) - pmulhrsw m1, W_11585x2_REG ; m1=t6 - pmulhrsw m7, W_11585x2_REG ; m7=t5 -%else - VP9_UNPACK_MULSUB_2W_4X 7, 1, 11585, 11585, D_8192_REG, 0, 4 -%endif - VP9_UNPACK_MULSUB_2W_4X 2, 6, 15137, 6270, D_8192_REG, 0, 4 ; m2=t2a, m6=t3a - - UNSCRATCH 0, 8, blockq+ 0 ; IN(0) - UNSCRATCH 4, 9, blockq+64 ; IN(4) - SCRATCH 5, 8, blockq+ 0 - -%if cpuflag(ssse3) - SUMSUB_BA w, 4, 0, 5 ; m4=IN(0)+IN(4) m0=IN(0)-IN(4) - pmulhrsw m4, W_11585x2_REG ; m4=t0a - pmulhrsw m0, W_11585x2_REG ; m0=t1a -%else - SCRATCH 7, 9, blockq+64 - VP9_UNPACK_MULSUB_2W_4X 0, 4, 11585, 11585, D_8192_REG, 5, 7 - UNSCRATCH 7, 9, blockq+64 -%endif - SUMSUB_BA w, 6, 4, 5 ; m6=t0a+t3a (t0), m4=t0a-t3a (t3) - SUMSUB_BA w, 2, 0, 5 ; m2=t1a+t2a (t1), m0=t1a-t2a (t2) - - VP9_IDCT8_1D_FINALIZE -%endmacro - -%macro VP9_IDCT8_4x4_1D 0 - pmulhrsw m0, W_11585x2_REG ; m0=t1a/t0a - pmulhrsw m6, m2, [pw_15137x2] ; m6=t3a - pmulhrsw m2, [pw_6270x2] ; m2=t2a - pmulhrsw m7, m1, [pw_16069x2] ; m7=t7a - pmulhrsw m1, [pw_3196x2] ; m1=t4a - pmulhrsw m5, m3, [pw_m9102x2] ; m5=t5a - pmulhrsw m3, [pw_13623x2] ; m3=t6a - SUMSUB_BA w, 5, 1, 4 ; m1=t4a+t5a (t4), m5=t4a-t5a (t5a) - SUMSUB_BA w, 3, 7, 4 ; m3=t7a+t6a (t7), m7=t7a-t6a (t6a) - SUMSUB_BA w, 1, 7, 4 ; m1=t6a+t5a (t6), m7=t6a-t5a (t5) - pmulhrsw m1, W_11585x2_REG ; m1=t6 - pmulhrsw m7, W_11585x2_REG ; m7=t5 - psubw m4, m0, m6 ; m4=t0a-t3a (t3) - paddw m6, m0 ; m6=t0a+t3a (t0) - SCRATCH 5, 8, blockq+ 0 - SUMSUB_BA w, 2, 0, 5 ; m2=t1a+t2a (t1), m0=t1a-t2a (t2) - VP9_IDCT8_1D_FINALIZE -%endmacro - -%macro VP9_IDCT8_2x2_1D 1 - pmulhrsw m0, W_11585x2_REG ; m0=t0 - pmulhrsw m3, m1, W_16069x2_REG ; m3=t7 - pmulhrsw m1, W_3196x2_REG ; m1=t4 - psubw m7, m3, m1 ; t5 = t7a - t4a - paddw m5, m3, m1 ; t6 = t7a + t4a - pmulhrsw m7, W_11585x2_REG ; m7=t5 - pmulhrsw m5, W_11585x2_REG ; m5=t6 - SWAP 5, 1 - ; merged VP9_IDCT8_1D_FINALIZE to make register-sharing w/ avx easier - psubw m6, m0, m3 ; m6=t0-t7 - paddw m3, m0 ; m3=t0+t7 - psubw m2, m0, m1 ; m2=t1-t6 - paddw m1, m0 ; m1=t1+t6 -%if %1 == 1 - punpcklwd m3, m1 -%define SCRATCH_REG 1 -%elif ARCH_X86_32 - mova [blockq+ 0], m2 -%define SCRATCH_REG 2 -%else -%define SCRATCH_REG 8 -%endif - psubw m4, m0, m5 ; m4=t3-t4 - paddw m5, m0 ; m5=t3+t4 - SUMSUB_BA w, 7, 0, SCRATCH_REG ; m7=t2+t5, m0=t2-t5 - SWAP 7, 6, 2 - SWAP 3, 5, 0 -%undef SCRATCH_REG -%endmacro - -%macro VP9_IDCT8_WRITEx2 6-8 5 ; line1, line2, tmp1, tmp2, zero, pw_1024/pw_16, shift -%if cpuflag(ssse3) - pmulhrsw m%1, %6 ; (x*1024 + (1<<14))>>15 <=> (x+16)>>5 - pmulhrsw m%2, %6 -%else - paddw m%1, %6 - paddw m%2, %6 - psraw m%1, %7 - psraw m%2, %7 -%endif -%if %0 <= 7 - VP9_STORE_2X %1, %2, %3, %4, %5 -%else - VP9_STORE_2X %1, %2, %3, %4, %5, %8 -%endif -%endmacro - -; x86-32: -; - m6 is in mem -; x86-64: -; - m8 holds m6 (SWAP) -; m6 holds zero -%macro VP9_IDCT8_WRITEOUT 0 -%if ARCH_X86_64 -%if cpuflag(ssse3) - mova m9, [pw_1024] -%else - mova m9, [pw_16] -%endif -%define ROUND_REG m9 -%else -%if cpuflag(ssse3) -%define ROUND_REG [pw_1024] -%else -%define ROUND_REG [pw_16] -%endif -%endif - SCRATCH 5, 10, blockq+16 - SCRATCH 7, 11, blockq+32 - VP9_IDCT8_WRITEx2 0, 1, 5, 7, 6, ROUND_REG - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 2, 3, 5, 7, 6, ROUND_REG - lea dstq, [dstq+2*strideq] - UNSCRATCH 5, 10, blockq+16 - UNSCRATCH 7, 11, blockq+32 - VP9_IDCT8_WRITEx2 4, 5, 0, 1, 6, ROUND_REG - lea dstq, [dstq+2*strideq] - UNSCRATCH 5, 8, blockq+ 0 - VP9_IDCT8_WRITEx2 5, 7, 0, 1, 6, ROUND_REG - -%undef ROUND_REG -%endmacro - -%macro VP9_IDCT_IDCT_8x8_ADD_XMM 2 -INIT_XMM %1 -cglobal vp9_idct_idct_8x8_add, 4, 4, %2, dst, stride, block, eob - -%if cpuflag(ssse3) -%if ARCH_X86_64 - mova m12, [pw_11585x2] ; often used -%define W_11585x2_REG m12 -%else -%define W_11585x2_REG [pw_11585x2] -%endif - - cmp eobd, 12 ; top left half or less - jg .idctfull - - cmp eobd, 3 ; top left corner or less - jg .idcthalf - - cmp eobd, 1 ; faster path for when only DC is set - jne .idcttopleftcorner -%else - cmp eobd, 1 - jg .idctfull -%endif - -%if cpuflag(ssse3) - movd m0, [blockq] - pmulhrsw m0, W_11585x2_REG - pmulhrsw m0, W_11585x2_REG -%else - DEFINE_ARGS dst, stride, block, coef - movsx coefd, word [blockq] - imul coefd, 11585 - add coefd, 8192 - sar coefd, 14 - imul coefd, 11585 - add coefd, (16 << 14) + 8192 - sar coefd, 14 + 5 - movd m0, coefd -%endif - SPLATW m0, m0, 0 - pxor m4, m4 - movd [blockq], m4 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_1024] ; (x*1024 + (1<<14))>>15 <=> (x+16)>>5 -%endif -%rep 3 - VP9_STORE_2X 0, 0, 6, 7, 4 - lea dstq, [dstq+2*strideq] -%endrep - VP9_STORE_2X 0, 0, 6, 7, 4 - RET - -%if cpuflag(ssse3) -; faster path for when only left corner is set (3 input: DC, right to DC, below -; to DC). Note: also working with a 2x2 block -.idcttopleftcorner: - movd m0, [blockq+0] - movd m1, [blockq+16] -%if ARCH_X86_64 - mova m10, [pw_3196x2] - mova m11, [pw_16069x2] -%define W_3196x2_REG m10 -%define W_16069x2_REG m11 -%else -%define W_3196x2_REG [pw_3196x2] -%define W_16069x2_REG [pw_16069x2] -%endif - VP9_IDCT8_2x2_1D 1 - ; partial 2x8 transpose - ; punpcklwd m0, m1 already done inside idct - punpcklwd m2, m3 - punpcklwd m4, m5 - punpcklwd m6, m7 - punpckldq m0, m2 - punpckldq m4, m6 - SBUTTERFLY qdq, 0, 4, 1 - SWAP 1, 4 - VP9_IDCT8_2x2_1D 2 -%if ARCH_X86_64 - SWAP 6, 8 -%endif - pxor m6, m6 ; used for the block reset, and VP9_STORE_2X - VP9_IDCT8_WRITEOUT -%if ARCH_X86_64 - movd [blockq+ 0], m6 - movd [blockq+16], m6 -%else - mova [blockq+ 0], m6 - mova [blockq+16], m6 - mova [blockq+32], m6 -%endif - RET - -.idcthalf: - movh m0, [blockq + 0] - movh m1, [blockq +16] - movh m2, [blockq +32] - movh m3, [blockq +48] - VP9_IDCT8_4x4_1D - ; partial 4x8 transpose -%if ARCH_X86_32 - mova m6, [blockq+ 0] -%endif - punpcklwd m0, m1 - punpcklwd m2, m3 - punpcklwd m4, m5 - punpcklwd m6, m7 - SBUTTERFLY dq, 0, 2, 1 - SBUTTERFLY dq, 4, 6, 5 - SBUTTERFLY qdq, 0, 4, 1 - SBUTTERFLY qdq, 2, 6, 5 - SWAP 1, 4 - SWAP 3, 6 - VP9_IDCT8_4x4_1D -%if ARCH_X86_64 - SWAP 6, 8 -%endif - pxor m6, m6 - VP9_IDCT8_WRITEOUT -%if ARCH_X86_64 - movh [blockq+ 0], m6 - movh [blockq+16], m6 - movh [blockq+32], m6 -%else - mova [blockq+ 0], m6 - mova [blockq+16], m6 - mova [blockq+32], m6 -%endif - movh [blockq+48], m6 - RET -%endif - -.idctfull: ; generic full 8x8 idct/idct -%if ARCH_X86_64 - mova m0, [blockq+ 0] ; IN(0) -%endif - mova m1, [blockq+ 16] ; IN(1) - mova m2, [blockq+ 32] ; IN(2) - mova m3, [blockq+ 48] ; IN(3) -%if ARCH_X86_64 - mova m4, [blockq+ 64] ; IN(4) -%endif - mova m5, [blockq+ 80] ; IN(5) - mova m6, [blockq+ 96] ; IN(6) - mova m7, [blockq+112] ; IN(7) -%if ARCH_X86_64 - mova m11, [pd_8192] ; rounding -%define D_8192_REG m11 -%else -%define D_8192_REG [pd_8192] -%endif - VP9_IDCT8_1D -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [blockq+0], [blockq+64], 1 - mova [blockq+0], m0 -%endif - VP9_IDCT8_1D - -%if ARCH_X86_64 - SWAP 6, 8 -%endif - pxor m6, m6 ; used for the block reset, and VP9_STORE_2X - VP9_IDCT8_WRITEOUT - ZERO_BLOCK blockq, 16, 8, m6 - RET -%undef W_11585x2_REG -%endmacro - -VP9_IDCT_IDCT_8x8_ADD_XMM sse2, 12 -VP9_IDCT_IDCT_8x8_ADD_XMM ssse3, 13 -VP9_IDCT_IDCT_8x8_ADD_XMM avx, 13 - -;--------------------------------------------------------------------------------------------- -; void vp9_iadst_iadst_8x8_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;--------------------------------------------------------------------------------------------- - -; x86-32: -; - in: m0/3/4/7 are in mem [blockq+N*16] -; - out: m6 is in mem [blockq+0] -; x86-64: -; - everything is in registers -%macro VP9_IADST8_1D 0 ; input/output=m0/1/2/3/4/5/6/7 -%if ARCH_X86_64 - SWAP 0, 8 - SWAP 3, 9 - SWAP 4, 10 - SWAP 7, 11 -%endif - - VP9_UNPACK_MULSUB_2D_4X 5, 2, 0, 3, 14449, 7723 ; m5/2=t3[d], m2/4=t2[d] - VP9_UNPACK_MULSUB_2D_4X 1, 6, 4, 7, 4756, 15679 ; m1/4=t7[d], m6/7=t6[d] - SCRATCH 4, 12, blockq+1*16 - VP9_RND_SH_SUMSUB_BA 6, 2, 7, 3, 4, D_8192_REG ; m6=t2[w], m2=t6[w] - UNSCRATCH 4, 12, blockq+1*16 - VP9_RND_SH_SUMSUB_BA 1, 5, 4, 0, 3, D_8192_REG ; m1=t3[w], m5=t7[w] - - UNSCRATCH 0, 8, blockq+16*0 - UNSCRATCH 3, 9, blockq+16*3 - UNSCRATCH 4, 10, blockq+16*4 - UNSCRATCH 7, 11, blockq+16*7 - SCRATCH 1, 8, blockq+16*1 - SCRATCH 2, 9, blockq+16*2 - SCRATCH 5, 10, blockq+16*5 - SCRATCH 6, 11, blockq+16*6 - - VP9_UNPACK_MULSUB_2D_4X 7, 0, 1, 2, 16305, 1606 ; m7/1=t1[d], m0/2=t0[d] - VP9_UNPACK_MULSUB_2D_4X 3, 4, 5, 6, 10394, 12665 ; m3/5=t5[d], m4/6=t4[d] - SCRATCH 1, 12, blockq+ 0*16 - VP9_RND_SH_SUMSUB_BA 4, 0, 6, 2, 1, D_8192_REG ; m4=t0[w], m0=t4[w] - UNSCRATCH 1, 12, blockq+ 0*16 - VP9_RND_SH_SUMSUB_BA 3, 7, 5, 1, 2, D_8192_REG ; m3=t1[w], m7=t5[w] - - UNSCRATCH 2, 9, blockq+16*2 - UNSCRATCH 5, 10, blockq+16*5 - SCRATCH 3, 9, blockq+16*3 - SCRATCH 4, 10, blockq+16*4 - - ; m4=t0, m3=t1, m6=t2, m1=t3, m0=t4, m7=t5, m2=t6, m5=t7 - - VP9_UNPACK_MULSUB_2D_4X 0, 7, 1, 3, 15137, 6270 ; m0/1=t5[d], m7/3=t4[d] - VP9_UNPACK_MULSUB_2D_4X 5, 2, 4, 6, 6270, 15137 ; m5/4=t6[d], m2/6=t7[d] - SCRATCH 1, 12, blockq+ 0*16 - VP9_RND_SH_SUMSUB_BA 5, 7, 4, 3, 1, D_8192_REG - UNSCRATCH 1, 12, blockq+ 0*16 - PSIGNW m5, W_M1_REG ; m5=out1[w], m7=t6[w] - VP9_RND_SH_SUMSUB_BA 2, 0, 6, 1, 3, D_8192_REG ; m2=out6[w], m0=t7[w] - - UNSCRATCH 1, 8, blockq+16*1 - UNSCRATCH 3, 9, blockq+16*3 - UNSCRATCH 4, 10, blockq+16*4 - UNSCRATCH 6, 11, blockq+16*6 - SCRATCH 2, 8, blockq+16*0 - - SUMSUB_BA w, 6, 4, 2 ; m6=out0[w], m4=t2[w] - SUMSUB_BA w, 1, 3, 2 - PSIGNW m1, W_M1_REG ; m1=out7[w], m3=t3[w] - - ; m6=out0, m5=out1, m4=t2, m3=t3, m7=t6, m0=t7, m2=out6, m1=out7 - - ; unfortunately, the code below overflows in some cases -%if 0; cpuflag(ssse3) - SUMSUB_BA w, 3, 4, 2 - SUMSUB_BA w, 0, 7, 2 - pmulhrsw m3, W_11585x2_REG - pmulhrsw m7, W_11585x2_REG - pmulhrsw m4, W_11585x2_REG ; out4 - pmulhrsw m0, W_11585x2_REG ; out2 -%else - SCRATCH 5, 9, blockq+16*1 - VP9_UNPACK_MULSUB_2W_4X 4, 3, 11585, 11585, D_8192_REG, 2, 5 - VP9_UNPACK_MULSUB_2W_4X 7, 0, 11585, 11585, D_8192_REG, 2, 5 - UNSCRATCH 5, 9, blockq+16*1 -%endif - PSIGNW m3, W_M1_REG ; out3 - PSIGNW m7, W_M1_REG ; out5 - - ; m6=out0, m5=out1, m0=out2, m3=out3, m4=out4, m7=out5, m2=out6, m1=out7 - -%if ARCH_X86_64 - SWAP 2, 8 -%endif - SWAP 0, 6, 2 - SWAP 7, 1, 5 -%endmacro - -%macro IADST8_FN 6 -INIT_XMM %5 -cglobal vp9_%1_%3_8x8_add, 3, 3, %6, dst, stride, block, eob - -%ifidn %1, idct -%define first_is_idct 1 -%else -%define first_is_idct 0 -%endif - -%ifidn %3, idct -%define second_is_idct 1 -%else -%define second_is_idct 0 -%endif - -%if ARCH_X86_64 - mova m0, [blockq+ 0] ; IN(0) -%endif - mova m1, [blockq+ 16] ; IN(1) - mova m2, [blockq+ 32] ; IN(2) -%if ARCH_X86_64 || first_is_idct - mova m3, [blockq+ 48] ; IN(3) -%endif -%if ARCH_X86_64 - mova m4, [blockq+ 64] ; IN(4) -%endif - mova m5, [blockq+ 80] ; IN(5) - mova m6, [blockq+ 96] ; IN(6) -%if ARCH_X86_64 || first_is_idct - mova m7, [blockq+112] ; IN(7) -%endif -%if ARCH_X86_64 -%if cpuflag(ssse3) - mova m15, [pw_11585x2] ; often used -%endif - mova m13, [pd_8192] ; rounding - mova m14, [pw_m1] -%define W_11585x2_REG m15 -%define D_8192_REG m13 -%define W_M1_REG m14 -%else -%define W_11585x2_REG [pw_11585x2] -%define D_8192_REG [pd_8192] -%define W_M1_REG [pw_m1] -%endif - - ; note different calling conventions for idct8 vs. iadst8 on x86-32 - VP9_%2_1D -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [blockq+0], [blockq+64], 1 - mova [blockq+ 0], m0 -%if second_is_idct == 0 - mova [blockq+ 48], m3 - mova [blockq+112], m7 -%endif -%endif - VP9_%4_1D - -%if ARCH_X86_64 - SWAP 6, 8 -%endif - pxor m6, m6 ; used for the block reset, and VP9_STORE_2X - VP9_IDCT8_WRITEOUT - ZERO_BLOCK blockq, 16, 8, m6 - RET - -%undef W_11585x2_REG -%undef first_is_idct -%undef second_is_idct - -%endmacro - -IADST8_FN idct, IDCT8, iadst, IADST8, sse2, 15 -IADST8_FN iadst, IADST8, idct, IDCT8, sse2, 15 -IADST8_FN iadst, IADST8, iadst, IADST8, sse2, 15 -IADST8_FN idct, IDCT8, iadst, IADST8, ssse3, 16 -IADST8_FN idct, IDCT8, iadst, IADST8, avx, 16 -IADST8_FN iadst, IADST8, idct, IDCT8, ssse3, 16 -IADST8_FN iadst, IADST8, idct, IDCT8, avx, 16 -IADST8_FN iadst, IADST8, iadst, IADST8, ssse3, 16 -IADST8_FN iadst, IADST8, iadst, IADST8, avx, 16 - -;--------------------------------------------------------------------------------------------- -; void vp9_idct_idct_16x16_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;--------------------------------------------------------------------------------------------- - -; x86-64: -; at the end of this macro, m7 is stored in [%4+15*%5] -; everything else (t0-6 and t8-15) is stored in m0-6 and m8-15 -; the following sumsubs have not been done yet: -; SUMSUB_BA w, 6, 9, 15 ; t6, t9 -; SUMSUB_BA w, 7, 8, 15 ; t7, t8 -; or (x86-32) t0-t5 are in m0-m5, t10-t15 are in x11/9/7/5/3/1, -; and the following simsubs have not been done yet: -; SUMSUB_BA w, x13, x14, 7 ; t6, t9 -; SUMSUB_BA w, x15, x12, 7 ; t7, t8 - -%macro VP9_IDCT16_1D_START 6 ; src, nnzc, stride, scratch, scratch_stride, is_iadst -%if %2 <= 4 - mova m3, [%1+ 1*%3] ; IN(1) - mova m0, [%1+ 3*%3] ; IN(3) - - pmulhrsw m4, m3, [pw_16305x2] ; t14-15 - pmulhrsw m3, [pw_1606x2] ; t8-9 - pmulhrsw m7, m0, [pw_m4756x2] ; t10-11 - pmulhrsw m0, [pw_15679x2] ; t12-13 - - ; m8=t0, m9=t1, m10=t2, m11=t3, m12=t4, m14=t5, m13=t6, m15=t7 - ; m3=t8, m5=t9, m1=t10, m7=t11, m0=t12, m6=t13, m2=t14, m4=t15 - - VP9_UNPACK_MULSUB_2W_4X 2, 5, 4, 3, 15137, 6270, [pd_8192], 1, 6 ; t9, t14 - SCRATCH 4, 10, %4+ 1*%5 - SCRATCH 5, 11, %4+ 7*%5 - VP9_UNPACK_MULSUB_2W_4X 6, 1, 0, 7, 6270, m15137, [pd_8192], 4, 5 ; t10, t13 - UNSCRATCH 5, 11, %4+ 7*%5 - - ; m15=t0, m14=t1, m13=t2, m12=t3, m11=t4, m10=t5, m9=t6, m8=t7 - ; m7=t8, m6=t9, m2=t10, m3=t11, m4=t12, m5=t13, m1=t14, m0=t15 -%else - mova m5, [%1+ 1*%3] ; IN(1) - mova m4, [%1+ 7*%3] ; IN(7) -%if %2 <= 8 - pmulhrsw m2, m5, [pw_16305x2] ; t15 - pmulhrsw m5, [pw_1606x2] ; t8 - pmulhrsw m3, m4, [pw_m10394x2] ; t9 - pmulhrsw m4, [pw_12665x2] ; t14 -%else - mova m3, [%1+ 9*%3] ; IN(9) - mova m2, [%1+15*%3] ; IN(15) - - ; m10=in0, m5=in1, m14=in2, m6=in3, m9=in4, m7=in5, m15=in6, m4=in7 - ; m11=in8, m3=in9, m12=in10 m0=in11, m8=in12, m1=in13, m13=in14, m2=in15 - - VP9_UNPACK_MULSUB_2W_4X 5, 2, 16305, 1606, [pd_8192], 0, 1 ; t8, t15 - VP9_UNPACK_MULSUB_2W_4X 3, 4, 10394, 12665, [pd_8192], 0, 1 ; t9, t14 -%endif - - SUMSUB_BA w, 3, 5, 0 ; t8, t9 - SUMSUB_BA w, 4, 2, 0 ; t15, t14 - - VP9_UNPACK_MULSUB_2W_4X 2, 5, 15137, 6270, [pd_8192], 0, 1 ; t9, t14 - - SCRATCH 4, 10, %4+ 1*%5 - SCRATCH 5, 11, %4+ 7*%5 - - mova m6, [%1+ 3*%3] ; IN(3) - mova m7, [%1+ 5*%3] ; IN(5) -%if %2 <= 8 - pmulhrsw m0, m7, [pw_14449x2] ; t13 - pmulhrsw m7, [pw_7723x2] ; t10 - pmulhrsw m1, m6, [pw_m4756x2] ; t11 - pmulhrsw m6, [pw_15679x2] ; t12 -%else - mova m0, [%1+11*%3] ; IN(11) - mova m1, [%1+13*%3] ; IN(13) - - VP9_UNPACK_MULSUB_2W_4X 7, 0, 14449, 7723, [pd_8192], 4, 5 ; t10, t13 - VP9_UNPACK_MULSUB_2W_4X 1, 6, 4756, 15679, [pd_8192], 4, 5 ; t11, t12 -%endif - - ; m11=t0, m10=t1, m9=t2, m8=t3, m14=t4, m12=t5, m15=t6, m13=t7 - ; m5=t8, m3=t9, m7=t10, m1=t11, m6=t12, m0=t13, m4=t14, m2=t15 - - SUMSUB_BA w, 7, 1, 4 ; t11, t10 - SUMSUB_BA w, 0, 6, 4 ; t12, t13 - - ; m8=t0, m9=t1, m10=t2, m11=t3, m12=t4, m14=t5, m13=t6, m15=t7 - ; m3=t8, m5=t9, m1=t10, m7=t11, m0=t12, m6=t13, m2=t14, m4=t15 - - VP9_UNPACK_MULSUB_2W_4X 6, 1, 6270, m15137, [pd_8192], 4, 5 ; t10, t13 - - UNSCRATCH 5, 11, %4+ 7*%5 -%endif - - ; m8=t0, m9=t1, m10=t2, m11=t3, m12=t4, m13=t5, m14=t6, m15=t7 - ; m3=t8, m2=t9, m6=t10, m7=t11, m0=t12, m1=t13, m5=t14, m4=t15 - - SUMSUB_BA w, 7, 3, 4 ; t8, t11 - - ; backup first register - mova [%4+15*%5], m7 - - SUMSUB_BA w, 6, 2, 7 ; t9, t10 - UNSCRATCH 4, 10, %4+ 1*%5 - SUMSUB_BA w, 0, 4, 7 ; t15, t12 - SUMSUB_BA w, 1, 5, 7 ; t14. t13 - - ; m15=t0, m14=t1, m13=t2, m12=t3, m11=t4, m10=t5, m9=t6, m8=t7 - ; m7=t8, m6=t9, m2=t10, m3=t11, m4=t12, m5=t13, m1=t14, m0=t15 - -%if cpuflag(ssse3) && %6 == 0 - SUMSUB_BA w, 2, 5, 7 - SUMSUB_BA w, 3, 4, 7 - pmulhrsw m5, [pw_11585x2] ; t10 - pmulhrsw m4, [pw_11585x2] ; t11 - pmulhrsw m3, [pw_11585x2] ; t12 - pmulhrsw m2, [pw_11585x2] ; t13 -%else - SCRATCH 6, 10, %4+ 1*%5 - VP9_UNPACK_MULSUB_2W_4X 5, 2, 11585, 11585, [pd_8192], 6, 7 ; t10, t13 - VP9_UNPACK_MULSUB_2W_4X 4, 3, 11585, 11585, [pd_8192], 6, 7 ; t11, t12 - UNSCRATCH 6, 10, %4+ 1*%5 -%endif - - ; m15=t0, m14=t1, m13=t2, m12=t3, m11=t4, m10=t5, m9=t6, m8=t7 - ; m7=t8, m6=t9, m5=t10, m4=t11, m3=t12, m2=t13, m1=t14, m0=t15 - - SCRATCH 0, 8, %4+ 1*%5 - SCRATCH 1, 9, %4+ 3*%5 - SCRATCH 2, 10, %4+ 5*%5 - SCRATCH 3, 11, %4+ 7*%5 - SCRATCH 4, 12, %4+ 9*%5 - SCRATCH 5, 13, %4+11*%5 - SCRATCH 6, 14, %4+13*%5 - - ; even (tx8x8) -%if %2 <= 4 - mova m3, [%1+ 0*%3] ; IN(0) - mova m4, [%1+ 2*%3] ; IN(2) - - pmulhrsw m3, [pw_11585x2] ; t0-t3 - pmulhrsw m7, m4, [pw_16069x2] ; t6-7 - pmulhrsw m4, [pw_3196x2] ; t4-5 - -%if 0 ; overflows :( - paddw m6, m7, m4 - psubw m5, m7, m4 - pmulhrsw m5, [pw_11585x2] ; t5 - pmulhrsw m6, [pw_11585x2] ; t6 -%else - VP9_UNPACK_MULSUB_2W_4X 5, 6, 7, 4, 11585, 11585, [pd_8192], 0, 1 ; t5, t6 -%endif - - psubw m0, m3, m7 - paddw m7, m3 - psubw m1, m3, m6 - paddw m6, m3 - psubw m2, m3, m5 - paddw m5, m3 - -%if ARCH_X86_32 - SWAP 0, 7 -%endif - SCRATCH 7, 15, %4+12*%5 -%else - mova m6, [%1+ 2*%3] ; IN(2) - mova m1, [%1+ 4*%3] ; IN(4) - mova m7, [%1+ 6*%3] ; IN(6) -%if %2 <= 8 - pmulhrsw m0, m1, [pw_15137x2] ; t3 - pmulhrsw m1, [pw_6270x2] ; t2 - pmulhrsw m5, m6, [pw_16069x2] ; t7 - pmulhrsw m6, [pw_3196x2] ; t4 - pmulhrsw m4, m7, [pw_m9102x2] ; t5 - pmulhrsw m7, [pw_13623x2] ; t6 -%else - mova m4, [%1+10*%3] ; IN(10) - mova m0, [%1+12*%3] ; IN(12) - mova m5, [%1+14*%3] ; IN(14) - - VP9_UNPACK_MULSUB_2W_4X 1, 0, 15137, 6270, [pd_8192], 2, 3 ; t2, t3 - VP9_UNPACK_MULSUB_2W_4X 6, 5, 16069, 3196, [pd_8192], 2, 3 ; t4, t7 - VP9_UNPACK_MULSUB_2W_4X 4, 7, 9102, 13623, [pd_8192], 2, 3 ; t5, t6 -%endif - - SUMSUB_BA w, 4, 6, 2 ; t4, t5 - SUMSUB_BA w, 7, 5, 2 ; t7, t6 - -%if cpuflag(ssse3) && %6 == 0 - SUMSUB_BA w, 6, 5, 2 - pmulhrsw m5, [pw_11585x2] ; t5 - pmulhrsw m6, [pw_11585x2] ; t6 -%else - VP9_UNPACK_MULSUB_2W_4X 5, 6, 11585, 11585, [pd_8192], 2, 3 ; t5, t6 -%endif - - SCRATCH 5, 15, %4+10*%5 - mova m2, [%1+ 0*%3] ; IN(0) -%if %2 <= 8 - pmulhrsw m2, [pw_11585x2] ; t0 and t1 - psubw m3, m2, m0 - paddw m0, m2 - - SUMSUB_BA w, 7, 0, 5 ; t0, t7 -%else - mova m3, [%1+ 8*%3] ; IN(8) - - ; from 3 stages back -%if cpuflag(ssse3) && %6 == 0 - SUMSUB_BA w, 3, 2, 5 - pmulhrsw m3, [pw_11585x2] ; t0 - pmulhrsw m2, [pw_11585x2] ; t1 -%else - mova [%1+ 0*%3], m0 - VP9_UNPACK_MULSUB_2W_4X 2, 3, 11585, 11585, [pd_8192], 5, 0 ; t0, t1 - mova m0, [%1+ 0*%3] -%endif - - ; from 2 stages back - SUMSUB_BA w, 0, 3, 5 ; t0, t3 - - SUMSUB_BA w, 7, 0, 5 ; t0, t7 -%endif - UNSCRATCH 5, 15, %4+10*%5 -%if ARCH_X86_32 - SWAP 0, 7 -%endif - SCRATCH 7, 15, %4+12*%5 - SUMSUB_BA w, 1, 2, 7 ; t1, t2 - - ; from 1 stage back - SUMSUB_BA w, 6, 1, 7 ; t1, t6 - SUMSUB_BA w, 5, 2, 7 ; t2, t5 -%endif - SUMSUB_BA w, 4, 3, 7 ; t3, t4 - -%if ARCH_X86_64 - SWAP 0, 8 - SWAP 1, 9 - SWAP 2, 10 - SWAP 3, 11 - SWAP 4, 12 - SWAP 5, 13 - SWAP 6, 14 - - SUMSUB_BA w, 0, 15, 7 ; t0, t15 - SUMSUB_BA w, 1, 14, 7 ; t1, t14 - SUMSUB_BA w, 2, 13, 7 ; t2, t13 - SUMSUB_BA w, 3, 12, 7 ; t3, t12 - SUMSUB_BA w, 4, 11, 7 ; t4, t11 - SUMSUB_BA w, 5, 10, 7 ; t5, t10 -%else - SWAP 1, 6 - SWAP 2, 5 - SWAP 3, 4 - mova [%4+14*%5], m6 - -%macro %%SUMSUB_BA_STORE 5 ; reg, from_mem, to_mem, scratch, scratch_stride - mova m6, [%4+%2*%5] - SUMSUB_BA w, 6, %1, 7 - SWAP %1, 6 - mova [%4+%3*%5], m6 -%endmacro - - %%SUMSUB_BA_STORE 0, 1, 1, %4, %5 ; t0, t15 - %%SUMSUB_BA_STORE 1, 3, 3, %4, %5 ; t1, t14 - %%SUMSUB_BA_STORE 2, 5, 5, %4, %5 ; t2, t13 - %%SUMSUB_BA_STORE 3, 7, 7, %4, %5 ; t3, t12 - %%SUMSUB_BA_STORE 4, 9, 9, %4, %5 ; t4, t11 - %%SUMSUB_BA_STORE 5, 11, 11, %4, %5 ; t5, t10 -%endif -%endmacro - -%macro VP9_IDCT16_1D 2-4 16, 1 ; src, pass, nnzc, is_iadst -%if %2 == 1 - VP9_IDCT16_1D_START %1, %3, 32, tmpq, 16, %4 - -%if ARCH_X86_64 - ; backup a different register - mova m7, [tmpq+15*16] - mova [tmpq+ 1*16], m15 - - SUMSUB_BA w, 6, 9, 15 ; t6, t9 - SUMSUB_BA w, 7, 8, 15 ; t7, t8 - - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 15 - mova [tmpq+ 0], m0 - mova [tmpq+ 32], m1 - mova [tmpq+ 64], m2 - mova [tmpq+ 96], m3 - mova [tmpq+128], m4 - mova [tmpq+160], m5 - mova [tmpq+192], m6 - mova [tmpq+224], m7 - - mova m15, [tmpq+ 1*16] - TRANSPOSE8x8W 8, 9, 10, 11, 12, 13, 14, 15, 0 - mova [tmpq+ 16], m8 - mova [tmpq+ 48], m9 - mova [tmpq+ 80], m10 - mova [tmpq+112], m11 - mova [tmpq+144], m12 - mova [tmpq+176], m13 - mova [tmpq+208], m14 - mova [tmpq+240], m15 -%else - mova m6, [tmpq+13*16] - mova m7, [tmpq+14*16] - SUMSUB_BA w, 6, 7 ; t6, t9 - mova [tmpq+14*16], m6 - mova [tmpq+13*16], m7 - mova m7, [tmpq+15*16] - mova m6, [tmpq+12*16] - SUMSUB_BA w, 7, 6 ; t7, t8 - mova [tmpq+15*16], m6 - - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [tmpq+14*16], [tmpq+ 8*16], 1 - mova [tmpq+ 0*16], m0 - mova [tmpq+ 2*16], m1 - mova [tmpq+ 4*16], m2 - mova [tmpq+ 6*16], m3 - mova [tmpq+10*16], m5 - mova [tmpq+12*16], m6 - mova [tmpq+14*16], m7 - - mova m0, [tmpq+15*16] - mova m1, [tmpq+13*16] - mova m2, [tmpq+11*16] - mova m3, [tmpq+ 9*16] - mova m4, [tmpq+ 7*16] - mova m5, [tmpq+ 5*16] - mova m7, [tmpq+ 1*16] - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [tmpq+ 3*16], [tmpq+ 9*16], 1 - mova [tmpq+ 1*16], m0 - mova [tmpq+ 3*16], m1 - mova [tmpq+ 5*16], m2 - mova [tmpq+ 7*16], m3 - mova [tmpq+11*16], m5 - mova [tmpq+13*16], m6 - mova [tmpq+15*16], m7 -%endif -%else ; %2 == 2 - VP9_IDCT16_1D_START %1, %3, 32, %1, 32, %4 - -%if cpuflag(ssse3) -%define ROUND_REG [pw_512] -%else -%define ROUND_REG [pw_32] -%endif - - pxor m7, m7 -%if ARCH_X86_64 - ; backup more registers - mova [%1+ 2*32], m8 - mova [%1+ 3*32], m9 - - VP9_IDCT8_WRITEx2 0, 1, 8, 9, 7, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 2, 3, 8, 9, 7, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 4, 5, 8, 9, 7, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - ; restore from cache - SWAP 0, 7 ; move zero from m7 to m0 - mova m7, [%1+15*32] - mova m8, [%1+ 2*32] - mova m9, [%1+ 3*32] - - SUMSUB_BA w, 6, 9, 3 ; t6, t9 - SUMSUB_BA w, 7, 8, 3 ; t7, t8 - - VP9_IDCT8_WRITEx2 6, 7, 3, 4, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 8, 9, 3, 4, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 10, 11, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 12, 13, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 14, 15, 1, 2, 0, ROUND_REG, 6 -%else - mova [tmpq+ 0*32], m5 - - VP9_IDCT8_WRITEx2 0, 1, 5, 6, 7, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 2, 3, 5, 6, 7, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - SWAP 0, 7 ; move zero from m7 to m0 - mova m5, [tmpq+ 0*32] - - VP9_IDCT8_WRITEx2 4, 5, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - mova m4, [tmpq+13*32] - mova m7, [tmpq+14*32] - mova m5, [tmpq+15*32] - mova m6, [tmpq+12*32] - SUMSUB_BADC w, 4, 7, 5, 6, 1 - - VP9_IDCT8_WRITEx2 4, 5, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 6, 7, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - mova m4, [tmpq+11*32] - mova m5, [tmpq+ 9*32] - mova m6, [tmpq+ 7*32] - mova m7, [tmpq+ 5*32] - - VP9_IDCT8_WRITEx2 4, 5, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 6, 7, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - mova m4, [tmpq+ 3*32] - mova m5, [tmpq+ 1*32] - - VP9_IDCT8_WRITEx2 4, 5, 1, 2, 0, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] -%endif - -%undef ROUND_REG -%endif ; %2 == 1/2 -%endmacro - -%macro VP9_STORE_2XFULL 6-7 strideq; dc, tmp1, tmp2, tmp3, tmp4, zero, stride - mova m%3, [dstq] - mova m%5, [dstq+%7] - punpcklbw m%2, m%3, m%6 - punpckhbw m%3, m%6 - punpcklbw m%4, m%5, m%6 - punpckhbw m%5, m%6 - paddw m%2, m%1 - paddw m%3, m%1 - paddw m%4, m%1 - paddw m%5, m%1 - packuswb m%2, m%3 - packuswb m%4, m%5 - mova [dstq], m%2 - mova [dstq+%7], m%4 -%endmacro - -%macro VP9_IDCT_IDCT_16x16_ADD_XMM 1 -INIT_XMM %1 -cglobal vp9_idct_idct_16x16_add, 4, 6, 16, 512, dst, stride, block, eob -%if cpuflag(ssse3) - ; 2x2=eob=3, 4x4=eob=10 - cmp eobd, 38 - jg .idctfull - cmp eobd, 1 ; faster path for when only DC is set - jne .idct8x8 -%else - cmp eobd, 1 ; faster path for when only DC is set - jg .idctfull -%endif - - ; dc-only -%if cpuflag(ssse3) - movd m0, [blockq] - mova m1, [pw_11585x2] - pmulhrsw m0, m1 - pmulhrsw m0, m1 -%else - DEFINE_ARGS dst, stride, block, coef - movsx coefd, word [blockq] - imul coefd, 11585 - add coefd, 8192 - sar coefd, 14 - imul coefd, 11585 - add coefd, (32 << 14) + 8192 - sar coefd, 14 + 6 - movd m0, coefd -%endif - SPLATW m0, m0, q0000 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_512] -%endif - pxor m5, m5 - movd [blockq], m5 -%rep 7 - VP9_STORE_2XFULL 0, 1, 2, 3, 4, 5 - lea dstq, [dstq+2*strideq] -%endrep - VP9_STORE_2XFULL 0, 1, 2, 3, 4, 5 - RET - - DEFINE_ARGS dst, stride, block, cnt, dst_bak, tmp -%if cpuflag(ssse3) -.idct8x8: - mov tmpq, rsp - VP9_IDCT16_1D blockq, 1, 8, 0 - - mov cntd, 2 - mov dst_bakq, dstq -.loop2_8x8: - VP9_IDCT16_1D tmpq, 2, 8, 0 - lea dstq, [dst_bakq+8] - add tmpq, 16 - dec cntd - jg .loop2_8x8 - - ; at the end of the loop, m0 should still be zero - ; use that to zero out block coefficients - ZERO_BLOCK blockq, 32, 8, m0 - RET -%endif - -.idctfull: - mov cntd, 2 - mov tmpq, rsp -.loop1_full: - VP9_IDCT16_1D blockq, 1, 16, 0 - add blockq, 16 - add tmpq, 256 - dec cntd - jg .loop1_full - sub blockq, 32 - - mov cntd, 2 - mov tmpq, rsp - mov dst_bakq, dstq -.loop2_full: - VP9_IDCT16_1D tmpq, 2, 16, 0 - lea dstq, [dst_bakq+8] - add tmpq, 16 - dec cntd - jg .loop2_full - - ; at the end of the loop, m0 should still be zero - ; use that to zero out block coefficients - ZERO_BLOCK blockq, 32, 16, m0 - RET -%endmacro - -VP9_IDCT_IDCT_16x16_ADD_XMM sse2 -VP9_IDCT_IDCT_16x16_ADD_XMM ssse3 -VP9_IDCT_IDCT_16x16_ADD_XMM avx - -%macro VP9_IDCT16_YMM_1D 0 - VP9_UNPACK_MULSUB_2W_4X 1, 15, 16305, 1606, [pd_8192], 0, 4 ; t8, t15 - VP9_UNPACK_MULSUB_2W_4X 9, 7, 10394, 12665, [pd_8192], 0, 4 ; t9, t14 - - SUMSUB_BA w, 9, 1, 0 ; t8, t9 - SUMSUB_BA w, 7, 15, 0 ; t15, t14 - - VP9_UNPACK_MULSUB_2W_4X 15, 1, 15137, 6270, [pd_8192], 0, 4 ; t9, t14 - - VP9_UNPACK_MULSUB_2W_4X 5, 11, 14449, 7723, [pd_8192], 0, 4 ; t10, t13 - VP9_UNPACK_MULSUB_2W_4X 13, 3, 4756, 15679, [pd_8192], 0, 4 ; t11, t12 - - SUMSUB_BA w, 5, 13, 0 ; t11, t10 - SUMSUB_BA w, 11, 3, 0 ; t12, t13 - - VP9_UNPACK_MULSUB_2W_4X 3, 13, 6270, m15137, [pd_8192], 0, 4 ; t10, t13 - - SUMSUB_BA w, 5, 9, 0 ; t8, t11 - SUMSUB_BA w, 3, 15, 0 ; t9, t10 - SUMSUB_BA w, 11, 7, 0 ; t15, t12 - SUMSUB_BA w, 13, 1, 0 ; t14, t13 - - SUMSUB_BA w, 15, 1, 0 - SUMSUB_BA w, 9, 7, 0 - pmulhrsw m1, [pw_11585x2] ; t10 - pmulhrsw m7, [pw_11585x2] ; t11 - pmulhrsw m9, [pw_11585x2] ; t12 - pmulhrsw m15, [pw_11585x2] ; t13 - - ; even (tx8x8) - mova m4, [blockq+128] - mova [blockq+128], m5 - VP9_UNPACK_MULSUB_2W_4X 4, 12, 15137, 6270, [pd_8192], 0, 5 ; t2, t3 - VP9_UNPACK_MULSUB_2W_4X 2, 14, 16069, 3196, [pd_8192], 0, 5 ; t4, t7 - VP9_UNPACK_MULSUB_2W_4X 10, 6, 9102, 13623, [pd_8192], 0, 5 ; t5, t6 - mova m0, [blockq+ 0] - SUMSUB_BA w, 8, 0, 5 - pmulhrsw m8, [pw_11585x2] ; t0 - pmulhrsw m0, [pw_11585x2] ; t1 - - SUMSUB_BA w, 10, 2, 5 ; t4, t5 - SUMSUB_BA w, 6, 14, 5 ; t7, t6 - SUMSUB_BA w, 12, 8, 5 ; t0, t3 - SUMSUB_BA w, 4, 0, 5 ; t1, t2 - - SUMSUB_BA w, 2, 14, 5 - pmulhrsw m14, [pw_11585x2] ; t5 - pmulhrsw m2, [pw_11585x2] ; t6 - - SUMSUB_BA w, 6, 12, 5 ; t0, t7 - SUMSUB_BA w, 2, 4, 5 ; t1, t6 - SUMSUB_BA w, 14, 0, 5 ; t2, t5 - SUMSUB_BA w, 10, 8, 5 ; t3, t4 - - ; final stage - SUMSUB_BA w, 11, 6, 5 ; out0, out15 - SUMSUB_BA w, 13, 2, 5 ; out1, out14 - SUMSUB_BA w, 15, 14, 5 ; out2, out13 - SUMSUB_BA w, 9, 10, 5 ; out3, out12 - SUMSUB_BA w, 7, 8, 5 ; out4, out11 - SUMSUB_BA w, 1, 0, 5 ; out5, out10 - SUMSUB_BA w, 3, 4, 5 ; out6, out9 - mova m5, [blockq+128] - mova [blockq+192], m3 - SUMSUB_BA w, 5, 12, 3 ; out7, out8 - - SWAP 0, 11, 8, 12, 10 - SWAP 1, 13, 14, 2, 15, 6, 3, 9, 4, 7, 5 -%endmacro - -; this is almost identical to VP9_STORE_2X, but it does two rows -; for slightly improved interleaving, and it omits vpermq since the -; input is DC so all values are identical -%macro VP9_STORE_YMM_DC_4X 6 ; reg, tmp1, tmp2, tmp3, tmp4, zero - mova xm%2, [dstq] - mova xm%4, [dstq+strideq*2] - vinserti128 m%2, m%2, [dstq+strideq], 1 - vinserti128 m%4, m%4, [dstq+stride3q], 1 - punpckhbw m%3, m%2, m%6 - punpcklbw m%2, m%6 - punpckhbw m%5, m%4, m%6 - punpcklbw m%4, m%6 - paddw m%3, m%1 - paddw m%2, m%1 - paddw m%5, m%1 - paddw m%4, m%1 - packuswb m%2, m%3 - packuswb m%4, m%5 - mova [dstq], xm%2 - mova [dstq+strideq*2], xm%4 - vextracti128 [dstq+strideq], m%2, 1 - vextracti128 [dstq+stride3q], m%4, 1 -%endmacro - -%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_idct_idct_16x16_add, 4, 4, 16, dst, stride, block, eob - cmp eobd, 1 ; faster path for when only DC is set - jg .idctfull - - ; dc-only - mova m1, [pw_11585x2] - vpbroadcastw m0, [blockq] - pmulhrsw m0, m1 - pmulhrsw m0, m1 - pxor m5, m5 - pmulhrsw m0, [pw_512] - movd [blockq], xm5 - - DEFINE_ARGS dst, stride, stride3, cnt - mov cntd, 4 - lea stride3q, [strideq*3] -.loop_dc: - VP9_STORE_YMM_DC_4X 0, 1, 2, 3, 4, 5 - lea dstq, [dstq+4*strideq] - dec cntd - jg .loop_dc - RET - - DEFINE_ARGS dst, stride, block, eob -.idctfull: - mova m1, [blockq+ 32] - mova m2, [blockq+ 64] - mova m3, [blockq+ 96] - mova m5, [blockq+160] - mova m6, [blockq+192] - mova m7, [blockq+224] - mova m8, [blockq+256] - mova m9, [blockq+288] - mova m10, [blockq+320] - mova m11, [blockq+352] - mova m12, [blockq+384] - mova m13, [blockq+416] - mova m14, [blockq+448] - mova m15, [blockq+480] - - VP9_IDCT16_YMM_1D - TRANSPOSE16x16W 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \ - [blockq+192], [blockq+128], 1 - mova [blockq+ 0], m0 - VP9_IDCT16_YMM_1D - - mova [blockq+224], m7 - - ; store - VP9_IDCT8_WRITEx2 0, 1, 6, 7, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 2, 3, 6, 7, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 4, 5, 6, 7, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - mova m6, [blockq+192] - mova m7, [blockq+224] - VP9_IDCT8_WRITEx2 6, 7, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 8, 9, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 10, 11, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 12, 13, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 14, 15, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - - ; at the end of the loop, m0 should still be zero - ; use that to zero out block coefficients - pxor m0, m0 - ZERO_BLOCK blockq, 32, 16, m0 - RET -%endif - -;--------------------------------------------------------------------------------------------- -; void vp9_iadst_iadst_16x16_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;--------------------------------------------------------------------------------------------- - -%macro VP9_IADST16_1D 2 ; src, pass -%assign %%str 16*%2 - mova m0, [%1+ 0*32] ; in0 - mova m1, [%1+15*32] ; in15 - mova m2, [%1+ 7*32] ; in7 - mova m3, [%1+ 8*32] ; in8 - - VP9_UNPACK_MULSUB_2D_4X 1, 0, 4, 5, 16364, 804 ; m1/4=t1[d], m0/5=t0[d] - VP9_UNPACK_MULSUB_2D_4X 2, 3, 7, 6, 11003, 12140 ; m2/7=t9[d], m3/6=t8[d] - SCRATCH 4, 8, tmpq+ 0*%%str - VP9_RND_SH_SUMSUB_BA 3, 0, 6, 5, 4, [pd_8192] ; m3=t0[w], m0=t8[w] - UNSCRATCH 4, 8, tmpq+ 0*%%str - VP9_RND_SH_SUMSUB_BA 2, 1, 7, 4, 5, [pd_8192] ; m2=t1[w], m1=t9[w] - - SCRATCH 0, 10, tmpq+ 0*%%str - SCRATCH 1, 11, tmpq+15*%%str - mova [tmpq+ 7*%%str], m2 - mova [tmpq+ 8*%%str], m3 - - mova m1, [%1+ 2*32] ; in2 - mova m0, [%1+13*32] ; in13 - mova m3, [%1+ 5*32] ; in5 - mova m2, [%1+10*32] ; in10 - - VP9_UNPACK_MULSUB_2D_4X 0, 1, 6, 7, 15893, 3981 ; m0/6=t3[d], m1/7=t2[d] - VP9_UNPACK_MULSUB_2D_4X 3, 2, 4, 5, 8423, 14053 ; m3/4=t11[d], m2/5=t10[d] - SCRATCH 4, 12, tmpq+ 2*%%str - VP9_RND_SH_SUMSUB_BA 2, 1, 5, 7, 4, [pd_8192] ; m2=t2[w], m1=t10[w] - UNSCRATCH 4, 12, tmpq+ 2*%%str - VP9_RND_SH_SUMSUB_BA 3, 0, 4, 6, 5, [pd_8192] ; m3=t3[w], m0=t11[w] - - SCRATCH 0, 12, tmpq+ 2*%%str - SCRATCH 1, 13, tmpq+13*%%str - mova [tmpq+ 5*%%str], m2 - mova [tmpq+10*%%str], m3 - - mova m2, [%1+ 4*32] ; in4 - mova m3, [%1+11*32] ; in11 - mova m0, [%1+ 3*32] ; in3 - mova m1, [%1+12*32] ; in12 - - VP9_UNPACK_MULSUB_2D_4X 3, 2, 7, 6, 14811, 7005 ; m3/7=t5[d], m2/6=t4[d] - VP9_UNPACK_MULSUB_2D_4X 0, 1, 4, 5, 5520, 15426 ; m0/4=t13[d], m1/5=t12[d] - SCRATCH 4, 9, tmpq+ 4*%%str - VP9_RND_SH_SUMSUB_BA 1, 2, 5, 6, 4, [pd_8192] ; m1=t4[w], m2=t12[w] - UNSCRATCH 4, 9, tmpq+ 4*%%str - VP9_RND_SH_SUMSUB_BA 0, 3, 4, 7, 6, [pd_8192] ; m0=t5[w], m3=t13[w] - - SCRATCH 0, 8, tmpq+ 4*%%str - mova [tmpq+11*%%str], m1 ; t4:m1->r11 - UNSCRATCH 0, 10, tmpq+ 0*%%str - UNSCRATCH 1, 11, tmpq+15*%%str - - ; round 2 interleaved part 1 - VP9_UNPACK_MULSUB_2D_4X 0, 1, 6, 7, 16069, 3196 ; m1/7=t8[d], m0/6=t9[d] - VP9_UNPACK_MULSUB_2D_4X 3, 2, 5, 4, 3196, 16069 ; m3/5=t12[d], m2/4=t13[d] - SCRATCH 4, 9, tmpq+ 3*%%str - VP9_RND_SH_SUMSUB_BA 3, 1, 5, 7, 4, [pd_8192] ; m3=t8[w], m1=t12[w] - UNSCRATCH 4, 9, tmpq+ 3*%%str - VP9_RND_SH_SUMSUB_BA 2, 0, 4, 6, 5, [pd_8192] ; m2=t9[w], m0=t13[w] - - SCRATCH 0, 10, tmpq+ 0*%%str - SCRATCH 1, 11, tmpq+15*%%str - SCRATCH 2, 14, tmpq+ 3*%%str - SCRATCH 3, 15, tmpq+12*%%str - - mova m2, [%1+ 6*32] ; in6 - mova m3, [%1+ 9*32] ; in9 - mova m0, [%1+ 1*32] ; in1 - mova m1, [%1+14*32] ; in14 - - VP9_UNPACK_MULSUB_2D_4X 3, 2, 7, 6, 13160, 9760 ; m3/7=t7[d], m2/6=t6[d] - VP9_UNPACK_MULSUB_2D_4X 0, 1, 4, 5, 2404, 16207 ; m0/4=t15[d], m1/5=t14[d] - SCRATCH 4, 9, tmpq+ 6*%%str - VP9_RND_SH_SUMSUB_BA 1, 2, 5, 6, 4, [pd_8192] ; m1=t6[w], m2=t14[w] - UNSCRATCH 4, 9, tmpq+ 6*%%str - VP9_RND_SH_SUMSUB_BA 0, 3, 4, 7, 6, [pd_8192] ; m0=t7[w], m3=t15[w] - - ; r8=t0, r7=t1, r5=t2, r10=t3, r11=t4, m8|r4=t5, m1=t6, m0=t7 - ; m10|r0=t8, m11|r15=t9, m13|r13=t10, m12|r2=t11, m14|r3=t12, m15|r12=t13, m2=t14, m3=t15 - - UNSCRATCH 4, 12, tmpq+ 2*%%str - UNSCRATCH 5, 13, tmpq+13*%%str - SCRATCH 0, 12, tmpq+ 1*%%str - SCRATCH 1, 13, tmpq+14*%%str - - ; remainder of round 2 (rest of t8-15) - VP9_UNPACK_MULSUB_2D_4X 5, 4, 6, 7, 9102, 13623 ; m5/6=t11[d], m4/7=t10[d] - VP9_UNPACK_MULSUB_2D_4X 3, 2, 1, 0, 13623, 9102 ; m3/1=t14[d], m2/0=t15[d] - SCRATCH 0, 9, tmpq+ 6*%%str - VP9_RND_SH_SUMSUB_BA 3, 4, 1, 7, 0, [pd_8192] ; m3=t10[w], m4=t14[w] - UNSCRATCH 0, 9, tmpq+ 6*%%str - VP9_RND_SH_SUMSUB_BA 2, 5, 0, 6, 1, [pd_8192] ; m2=t11[w], m5=t15[w] - - ; m15|r12=t8, m14|r3=t9, m3=t10, m2=t11, m11|r15=t12, m10|r0=t13, m4=t14, m5=t15 - - UNSCRATCH 6, 14, tmpq+ 3*%%str - UNSCRATCH 7, 15, tmpq+12*%%str - - SUMSUB_BA w, 3, 7, 1 - PSIGNW m3, [pw_m1] ; m3=out1[w], m7=t10[w] - SUMSUB_BA w, 2, 6, 1 ; m2=out14[w], m6=t11[w] - - ; unfortunately, the code below overflows in some cases, e.g. - ; http://downloads.webmproject.org/test_data/libvpx/vp90-2-14-resize-fp-tiles-16-8.webm -%if 0; cpuflag(ssse3) - SUMSUB_BA w, 7, 6, 1 - pmulhrsw m7, [pw_11585x2] ; m7=out6[w] - pmulhrsw m6, [pw_11585x2] ; m6=out9[w] -%else - VP9_UNPACK_MULSUB_2W_4X 6, 7, 11585, 11585, [pd_8192], 1, 0 -%endif - - mova [tmpq+ 3*%%str], m6 - mova [tmpq+ 6*%%str], m7 - UNSCRATCH 6, 10, tmpq+ 0*%%str - UNSCRATCH 7, 11, tmpq+15*%%str - mova [tmpq+13*%%str], m2 - SCRATCH 3, 11, tmpq+ 9*%%str - - VP9_UNPACK_MULSUB_2D_4X 7, 6, 2, 3, 15137, 6270 ; m6/3=t13[d], m7/2=t12[d] - VP9_UNPACK_MULSUB_2D_4X 5, 4, 1, 0, 6270, 15137 ; m5/1=t14[d], m4/0=t15[d] - SCRATCH 0, 9, tmpq+ 2*%%str - VP9_RND_SH_SUMSUB_BA 5, 6, 1, 3, 0, [pd_8192] ; m5=out2[w], m6=t14[w] - UNSCRATCH 0, 9, tmpq+ 2*%%str - VP9_RND_SH_SUMSUB_BA 4, 7, 0, 2, 1, [pd_8192] - PSIGNW m4, [pw_m1] ; m4=out13[w], m7=t15[w] - - ; unfortunately, the code below overflows in some cases -%if 0; cpuflag(ssse3) - SUMSUB_BA w, 7, 6, 1 - pmulhrsw m7, [pw_m11585x2] ; m7=out5[w] - pmulhrsw m6, [pw_11585x2] ; m6=out10[w] -%else - PSIGNW m7, [pw_m1] - VP9_UNPACK_MULSUB_2W_4X 7, 6, 11585, 11585, [pd_8192], 1, 0 -%endif - - ; m11|r13=out1, m5=out2, m7=out5, r15=out6, r3=out9, m6=out10, m4=out13, r2=out14 - - mova m2, [tmpq+ 8*%%str] - mova m3, [tmpq+ 7*%%str] - mova m1, [tmpq+11*%%str] - mova [tmpq+ 7*%%str], m6 - mova [tmpq+11*%%str], m4 - mova m4, [tmpq+ 5*%%str] - SCRATCH 5, 14, tmpq+ 5*%%str - SCRATCH 7, 15, tmpq+ 8*%%str - UNSCRATCH 6, 8, tmpq+ 4*%%str - UNSCRATCH 5, 12, tmpq+ 1*%%str - UNSCRATCH 7, 13, tmpq+14*%%str - - ; m2=t0, m3=t1, m9=t2, m0=t3, m1=t4, m8=t5, m13=t6, m12=t7 - ; m11|r13=out1, m5=out2, m7=out5, r15=out6, r3=out9, r10=out10, r11=out13, r2=out14 - - SUMSUB_BA w, 1, 2, 0 ; m1=t0[w], m2=t4[w] - mova m0, [tmpq+10*%%str] - SCRATCH 1, 12, tmpq+ 1*%%str - SUMSUB_BA w, 6, 3, 1 ; m8=t1[w], m3=t5[w] - SCRATCH 6, 13, tmpq+ 4*%%str - SUMSUB_BA w, 7, 4, 1 ; m13=t2[w], m9=t6[w] - SCRATCH 7, 8, tmpq+10*%%str - SUMSUB_BA w, 5, 0, 1 ; m12=t3[w], m0=t7[w] - SCRATCH 5, 9, tmpq+14*%%str - - VP9_UNPACK_MULSUB_2D_4X 2, 3, 7, 5, 15137, 6270 ; m2/6=t5[d], m3/10=t4[d] - VP9_UNPACK_MULSUB_2D_4X 0, 4, 1, 6, 6270, 15137 ; m0/14=t6[d], m9/15=t7[d] - SCRATCH 6, 10, tmpq+ 0*%%str - VP9_RND_SH_SUMSUB_BA 0, 3, 1, 5, 6, [pd_8192] - UNSCRATCH 6, 10, tmpq+ 0*%%str - PSIGNW m0, [pw_m1] ; m0=out3[w], m3=t6[w] - VP9_RND_SH_SUMSUB_BA 4, 2, 6, 7, 5, [pd_8192] ; m9=out12[w], m2=t7[w] - - UNSCRATCH 1, 8, tmpq+10*%%str - UNSCRATCH 5, 9, tmpq+14*%%str - UNSCRATCH 6, 12, tmpq+ 1*%%str - UNSCRATCH 7, 13, tmpq+ 4*%%str - SCRATCH 4, 9, tmpq+14*%%str - - SUMSUB_BA w, 1, 6, 4 ; m13=out0[w], m1=t2[w] - SUMSUB_BA w, 5, 7, 4 - PSIGNW m5, [pw_m1] ; m12=out15[w], m8=t3[w] - - ; unfortunately, the code below overflows in some cases, e.g. - ; http://downloads.webmproject.org/test_data/libvpx/vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm -%if 0 ; cpuflag(ssse3) - SUMSUB_BA w, 7, 6, 4 - pmulhrsw m7, [pw_m11585x2] ; m8=out7[w] - pmulhrsw m6, [pw_11585x2] ; m1=out8[w] - SWAP 6, 7 - SUMSUB_BA w, 3, 2, 4 - pmulhrsw m3, [pw_11585x2] ; m3=out4[w] - pmulhrsw m2, [pw_11585x2] ; m2=out11[w] -%else - SCRATCH 5, 8, tmpq+10*%%str - VP9_UNPACK_MULSUB_2W_4X 6, 7, 11585, m11585, [pd_8192], 5, 4 - VP9_UNPACK_MULSUB_2W_4X 2, 3, 11585, 11585, [pd_8192], 5, 4 - UNSCRATCH 5, 8, tmpq+10*%%str -%endif - - ; m13=out0, m0=out3, m3=out4, m8=out7, m1=out8, m2=out11, m9=out12, m12=out15 - ; m11|r13=out1, m5=out2, m7=out5, r15=out6, r3=out9, r10=out10, r11=out13, r2=out14 - -%if %2 == 1 -%if ARCH_X86_64 - mova m13, [tmpq+ 6*%%str] - TRANSPOSE8x8W 1, 11, 14, 0, 3, 15, 13, 6, 10 - mova [tmpq+ 0*16], m1 - mova [tmpq+ 2*16], m11 - mova [tmpq+ 4*16], m14 - mova [tmpq+ 6*16], m0 - mova m1, [tmpq+ 3*%%str] - mova m11, [tmpq+ 7*%%str] - mova m14, [tmpq+11*%%str] - mova m0, [tmpq+13*%%str] - mova [tmpq+ 8*16], m3 - mova [tmpq+10*16], m15 - mova [tmpq+12*16], m13 - mova [tmpq+14*16], m6 - - TRANSPOSE8x8W 7, 1, 11, 2, 9, 14, 0, 5, 10 - mova [tmpq+ 1*16], m7 - mova [tmpq+ 3*16], m1 - mova [tmpq+ 5*16], m11 - mova [tmpq+ 7*16], m2 - mova [tmpq+ 9*16], m9 - mova [tmpq+11*16], m14 - mova [tmpq+13*16], m0 - mova [tmpq+15*16], m5 -%else - mova [tmpq+12*%%str], m2 - mova [tmpq+ 1*%%str], m5 - mova [tmpq+15*%%str], m7 - mova m2, [tmpq+ 9*%%str] - mova m5, [tmpq+ 5*%%str] - mova m7, [tmpq+ 8*%%str] - TRANSPOSE8x8W 1, 2, 5, 0, 3, 7, 4, 6, [tmpq+ 6*%%str], [tmpq+ 8*%%str], 1 - mova [tmpq+ 0*16], m1 - mova [tmpq+ 2*16], m2 - mova [tmpq+ 4*16], m5 - mova [tmpq+ 6*16], m0 - mova [tmpq+10*16], m7 - mova m3, [tmpq+12*%%str] - mova [tmpq+12*16], m4 - mova m4, [tmpq+14*%%str] - mova [tmpq+14*16], m6 - - mova m0, [tmpq+15*%%str] - mova m1, [tmpq+ 3*%%str] - mova m2, [tmpq+ 7*%%str] - mova m5, [tmpq+11*%%str] - mova m7, [tmpq+ 1*%%str] - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [tmpq+13*%%str], [tmpq+ 9*%%str], 1 - mova [tmpq+ 1*16], m0 - mova [tmpq+ 3*16], m1 - mova [tmpq+ 5*16], m2 - mova [tmpq+ 7*16], m3 - mova [tmpq+11*16], m5 - mova [tmpq+13*16], m6 - mova [tmpq+15*16], m7 -%endif -%else - pxor m4, m4 - -%if cpuflag(ssse3) -%define ROUND_REG [pw_512] -%else -%define ROUND_REG [pw_32] -%endif - -%if ARCH_X86_64 - mova m12, [tmpq+ 6*%%str] - VP9_IDCT8_WRITEx2 1, 11, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 14, 0, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 3, 15, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 12, 6, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - mova m1, [tmpq+ 3*%%str] - mova m11, [tmpq+ 7*%%str] - mova m14, [tmpq+11*%%str] - mova m0, [tmpq+13*%%str] - - VP9_IDCT8_WRITEx2 7, 1, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 11, 2, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 9, 14, 10, 8, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - VP9_IDCT8_WRITEx2 0, 5, 10, 8, 4, ROUND_REG, 6 -%else - mova [tmpq+ 0*%%str], m2 - mova [tmpq+ 1*%%str], m5 - mova [tmpq+ 2*%%str], m7 - mova m2, [tmpq+ 9*%%str] - VP9_IDCT8_WRITEx2 1, 2, 5, 7, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - mova m5, [tmpq+ 5*%%str] - VP9_IDCT8_WRITEx2 5, 0, 1, 2, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - mova m5, [tmpq+ 8*%%str] - VP9_IDCT8_WRITEx2 3, 5, 1, 2, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - mova m5, [tmpq+ 6*%%str] - VP9_IDCT8_WRITEx2 5, 6, 1, 2, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - - mova m0, [tmpq+ 2*%%str] - mova m3, [tmpq+ 3*%%str] - VP9_IDCT8_WRITEx2 0, 3, 1, 2, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - mova m0, [tmpq+ 7*%%str] - mova m3, [tmpq+ 0*%%str] - VP9_IDCT8_WRITEx2 0, 3, 1, 2, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - mova m0, [tmpq+14*%%str] - mova m3, [tmpq+11*%%str] - VP9_IDCT8_WRITEx2 0, 3, 1, 2, 4, ROUND_REG, 6 - lea dstq, [dstq+strideq*2] - mova m0, [tmpq+13*%%str] - mova m3, [tmpq+ 1*%%str] - VP9_IDCT8_WRITEx2 0, 3, 1, 2, 4, ROUND_REG, 6 -%endif - - SWAP 0, 4 ; zero -%undef ROUND_REG -%endif -%endmacro - -%macro IADST16_FN 5 -INIT_XMM %5 -cglobal vp9_%1_%3_16x16_add, 3, 6, 16, 512, dst, stride, block, cnt, dst_bak, tmp - mov cntd, 2 - mov tmpq, rsp -.loop1_full: - VP9_%2_1D blockq, 1 - add blockq, 16 - add tmpq, 256 - dec cntd - jg .loop1_full - sub blockq, 32 - - mov cntd, 2 - mov tmpq, rsp - mov dst_bakq, dstq -.loop2_full: - VP9_%4_1D tmpq, 2 - lea dstq, [dst_bakq+8] - add tmpq, 16 - dec cntd - jg .loop2_full - - ; at the end of the loop, m0 should still be zero - ; use that to zero out block coefficients - ZERO_BLOCK blockq, 32, 16, m0 - RET -%endmacro - -IADST16_FN idct, IDCT16, iadst, IADST16, sse2 -IADST16_FN iadst, IADST16, idct, IDCT16, sse2 -IADST16_FN iadst, IADST16, iadst, IADST16, sse2 -IADST16_FN idct, IDCT16, iadst, IADST16, ssse3 -IADST16_FN iadst, IADST16, idct, IDCT16, ssse3 -IADST16_FN iadst, IADST16, iadst, IADST16, ssse3 -IADST16_FN idct, IDCT16, iadst, IADST16, avx -IADST16_FN iadst, IADST16, idct, IDCT16, avx -IADST16_FN iadst, IADST16, iadst, IADST16, avx - -; in: data in m[0-15] except m0/m4, which are in [blockq+0] and [blockq+128] -; out: m[0-15] except m6, which is in [blockq+192] -; uses blockq as scratch space -%macro VP9_IADST16_YMM_1D 0 - mova [blockq+ 32], m3 - mova [blockq+ 64], m7 - mova [blockq+ 96], m8 - - ; first half of round 1 - VP9_UNPACK_MULSUB_2D_4X 9, 6, 0, 3, 13160, 9760 ; m9/x=t7[d], m6/x=t6[d] - VP9_UNPACK_MULSUB_2D_4X 1, 14, 4, 7, 2404, 16207 ; m1/x=t15[d], m14/x=t14[d] - VP9_RND_SH_SUMSUB_BA 14, 6, 7, 3, 8, [pd_8192] ; m14=t6[w], m6=t14[w] - VP9_RND_SH_SUMSUB_BA 1, 9, 4, 0, 8, [pd_8192] ; m1=t7[w], m9=t15[w] - - VP9_UNPACK_MULSUB_2D_4X 13, 2, 4, 7, 15893, 3981 ; m13/x=t3[d], m2/x=t2[d] - VP9_UNPACK_MULSUB_2D_4X 5, 10, 0, 3, 8423, 14053 ; m5/x=t11[d], m10/x=t10[d] - VP9_RND_SH_SUMSUB_BA 10, 2, 3, 7, 8, [pd_8192] ; m10=t2[w], m2=t10[w] - VP9_RND_SH_SUMSUB_BA 5, 13, 0, 4, 8, [pd_8192] ; m5=t3[w], m13=t11[w] - - ; half of round 2 t8-15 - VP9_UNPACK_MULSUB_2D_4X 2, 13, 4, 7, 9102, 13623 ; m2/x=t11[d], m13/x=t10[d] - VP9_UNPACK_MULSUB_2D_4X 9, 6, 3, 0, 13623, 9102 ; m9/x=t14[d], m6/x=t15[d] - VP9_RND_SH_SUMSUB_BA 9, 13, 3, 7, 8, [pd_8192] ; m9=t10[w], m13=t14[w] - VP9_RND_SH_SUMSUB_BA 6, 2, 0, 4, 8, [pd_8192] ; m6=t11[w], m2=t15[w] - - SUMSUB_BA w, 14, 10, 8 ; m14=t2, m10=t6 - SUMSUB_BA w, 1, 5, 8 ; m1=t3, m5=t7 - - mova m0, [blockq+ 0] - mova m4, [blockq+128] - mova m3, [blockq+ 32] - mova m7, [blockq+ 64] - mova m8, [blockq+ 96] - mova [blockq+ 0], m1 - mova [blockq+128], m14 - mova [blockq+ 32], m6 - mova [blockq+ 64], m9 - mova [blockq+ 96], m10 - - ; second half of round 1 - VP9_UNPACK_MULSUB_2D_4X 15, 0, 1, 9, 16364, 804 ; m15/x=t1[d], m0/x=t0[d] - VP9_UNPACK_MULSUB_2D_4X 7, 8, 10, 6, 11003, 12140 ; m7/x=t9[d], m8/x=t8[d] - VP9_RND_SH_SUMSUB_BA 8, 0, 6, 9, 14, [pd_8192] ; m8=t0[w], m0=t8[w] - VP9_RND_SH_SUMSUB_BA 7, 15, 10, 1, 14, [pd_8192] ; m7=t1[w], m15=t9[w] - - VP9_UNPACK_MULSUB_2D_4X 11, 4, 10, 6, 14811, 7005 ; m11/x=t5[d], m4/x=t4[d] - VP9_UNPACK_MULSUB_2D_4X 3, 12, 1, 9, 5520, 15426 ; m3/x=t13[d], m12/x=t12[d] - VP9_RND_SH_SUMSUB_BA 12, 4, 9, 6, 14, [pd_8192] ; m12=t4[w], m4=t12[w] - VP9_RND_SH_SUMSUB_BA 3, 11, 1, 10, 14, [pd_8192] ; m3=t5[w], m11=t13[w] - - ; second half of round 2 t8-15 - VP9_UNPACK_MULSUB_2D_4X 0, 15, 6, 10, 16069, 3196 ; m15/x=t8[d], m0/x=t9[d] - VP9_UNPACK_MULSUB_2D_4X 11, 4, 9, 1, 3196, 16069 ; m11/x=t12[d], m4/x=t13[d] - VP9_RND_SH_SUMSUB_BA 11, 15, 9, 10, 14, [pd_8192] ; m11=t8[w], m15=t12[w] - VP9_RND_SH_SUMSUB_BA 4, 0, 1, 6, 14, [pd_8192] ; m4=t9[w], m0=t13[w] - - SUMSUB_BA w, 12, 8, 14 ; m12=t0, m8=t4 - SUMSUB_BA w, 3, 7, 14 ; m3=t1, m7=t5 - - mova m10, [blockq+ 96] - mova [blockq+ 96], m12 - - ; round 3 - VP9_UNPACK_MULSUB_2D_4X 15, 0, 9, 12, 15137, 6270 ; m15/x=t13[d], m0/x=t12[d] - VP9_UNPACK_MULSUB_2D_4X 2, 13, 1, 6, 6270, 15137 ; m2/x=t14[d], m13/x=t15[d] - VP9_RND_SH_SUMSUB_BA 2, 0, 1, 12, 14, [pd_8192] ; m2=out2[w], m0=t14a[w] - VP9_RND_SH_SUMSUB_BA 13, 15, 6, 9, 14, [pd_8192] - PSIGNW m13, [pw_m1] ; m13=out13[w], m15=t15a[w] - - VP9_UNPACK_MULSUB_2D_4X 8, 7, 12, 9, 15137, 6270 ; m8/x=t5[d], m7/x=t4[d] - VP9_UNPACK_MULSUB_2D_4X 5, 10, 1, 6, 6270, 15137 ; m5/x=t6[d], m10/x=t7[d] - VP9_RND_SH_SUMSUB_BA 5, 7, 1, 9, 14, [pd_8192] - PSIGNW m5, [pw_m1] ; m5=out3[w], m7=t6[w] - VP9_RND_SH_SUMSUB_BA 10, 8, 6, 12, 14, [pd_8192] ; m10=out12[w], m8=t7[w] - - mova m1, [blockq+ 0] - mova m14, [blockq+128] - mova m6, [blockq+ 32] - mova m9, [blockq+ 64] - mova m12, [blockq+ 96] - mova [blockq+ 0], m10 - mova [blockq+128], m5 - - SUMSUB_BA w, 14, 12, 5 ; m14=out0, m12=t2a - SUMSUB_BA w, 1, 3, 5 - PSIGNW m1, [pw_m1] ; m1=out15, m3=t3a - - SUMSUB_BA w, 9, 11, 5 - PSIGNW m9, [pw_m1] ; m9=out1, m11=t10 - SUMSUB_BA w, 6, 4, 5 ; m6=out14, m4=t11 - - VP9_UNPACK_MULSUB_2W_4X 4, 11, 11585, 11585, [pd_8192], 5, 10 ; m4=out9, m11=out6 - mova m5, [blockq+128] - mova [blockq+192], m11 - PSIGNW m15, [pw_m1] - VP9_UNPACK_MULSUB_2W_4X 15, 0, 11585, 11585, [pd_8192], 10, 11 ; m15=out5, m0=out10 - - PSIGNW m3, [pw_m1] - VP9_UNPACK_MULSUB_2W_4X 3, 12, 11585, 11585, [pd_8192], 10, 11 ; m3=out7,m12=out8 - VP9_UNPACK_MULSUB_2W_4X 8, 7, 11585, 11585, [pd_8192], 10, 11 ; m8=out11,m7=out4 - - mova m10, [blockq+ 0] - - SWAP 0, 14, 6, 11, 8, 12, 10 - SWAP 1, 9, 15, 4, 7, 3, 5 - SWAP 5, 9, 15 -%endmacro - -%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL -%macro IADST16_YMM_FN 4 -INIT_YMM avx2 -cglobal vp9_%1_%3_16x16_add, 4, 4, 16, dst, stride, block, eob - mova m1, [blockq+ 32] - mova m2, [blockq+ 64] - mova m3, [blockq+ 96] - mova m5, [blockq+160] - mova m6, [blockq+192] - mova m7, [blockq+224] - mova m8, [blockq+256] - mova m9, [blockq+288] - mova m10, [blockq+320] - mova m11, [blockq+352] - mova m12, [blockq+384] - mova m13, [blockq+416] - mova m14, [blockq+448] - mova m15, [blockq+480] - - VP9_%2_YMM_1D - TRANSPOSE16x16W 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \ - [blockq+192], [blockq+128], 1 - mova [blockq+ 0], m0 - VP9_%4_YMM_1D - - mova [blockq+224], m7 - - ; store - VP9_IDCT8_WRITEx2 0, 1, 6, 7, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 2, 3, 6, 7, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 4, 5, 6, 7, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - mova m6, [blockq+192] - mova m7, [blockq+224] - VP9_IDCT8_WRITEx2 6, 7, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 8, 9, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 10, 11, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 12, 13, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - VP9_IDCT8_WRITEx2 14, 15, 1, 2, unused, [pw_512], 6 - lea dstq, [dstq+2*strideq] - - ; at the end of the loop, m0 should still be zero - ; use that to zero out block coefficients - pxor m0, m0 - ZERO_BLOCK blockq, 32, 16, m0 - RET -%endmacro - -IADST16_YMM_FN idct, IDCT16, iadst, IADST16 -IADST16_YMM_FN iadst, IADST16, idct, IDCT16 -IADST16_YMM_FN iadst, IADST16, iadst, IADST16 -%endif - -;--------------------------------------------------------------------------------------------- -; void vp9_idct_idct_32x32_add_(uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob); -;--------------------------------------------------------------------------------------------- - -%macro VP9_IDCT32_1D 2-3 32 ; src, pass, nnzc -%if %2 == 1 -%assign %%str mmsize -%else -%assign %%str 64 -%endif - - ; first do t0-15, this can be done identical to idct16x16 - VP9_IDCT16_1D_START %1, %3/2, 64*2, tmpq, 2*%%str, 1 - - ; store everything on stack to make space available for t16-31 - ; we store interleaved with the output of the second half (t16-31) - ; so we don't need to allocate extra stack space - mova [tmpq+ 0*%%str], m0 ; t0 - mova [tmpq+ 4*%%str], m1 ; t1 - mova [tmpq+ 8*%%str], m2 ; t2 - mova [tmpq+12*%%str], m3 ; t3 - mova [tmpq+16*%%str], m4 ; t4 - mova [tmpq+20*%%str], m5 ; t5 -%if ARCH_X86_64 - mova [tmpq+22*%%str], m10 ; t10 - mova [tmpq+18*%%str], m11 ; t11 - mova [tmpq+14*%%str], m12 ; t12 - mova [tmpq+10*%%str], m13 ; t13 - mova [tmpq+ 6*%%str], m14 ; t14 - mova [tmpq+ 2*%%str], m15 ; t15 -%endif - - mova m0, [tmpq+ 30*%%str] - UNSCRATCH 1, 6, tmpq+26*%%str - UNSCRATCH 2, 8, tmpq+24*%%str - UNSCRATCH 3, 9, tmpq+28*%%str - SUMSUB_BA w, 1, 3, 4 ; t6, t9 - SUMSUB_BA w, 0, 2, 4 ; t7, t8 - - mova [tmpq+24*%%str], m1 ; t6 - mova [tmpq+28*%%str], m0 ; t7 - mova [tmpq+30*%%str], m2 ; t8 - mova [tmpq+26*%%str], m3 ; t9 - - ; then, secondly, do t16-31 -%if %3 <= 8 - mova m4, [%1+ 1*64] - mova m7, [%1+ 7*64] - - pmulhrsw m1, m4, [pw_16364x2] ;t31 - pmulhrsw m4, [pw_804x2] ;t16 - - VP9_UNPACK_MULSUB_2W_4X 5, 0, 1, 4, 16069, 3196, [pd_8192], 6, 2 ; t17, t30 - - pmulhrsw m3, m7, [pw_m5520x2] ;t19 - pmulhrsw m7, [pw_15426x2] ;t28 - - SCRATCH 4, 13, tmpq+ 1*%%str - SCRATCH 5, 12, tmpq+15*%%str - - VP9_UNPACK_MULSUB_2W_4X 2, 6, 7, 3, 3196, m16069, [pd_8192], 4, 5 ; t18, t29 -%else - mova m0, [%1+ 1*64] - mova m1, [%1+15*64] -%if %3 <= 16 - pmulhrsw m5, m0, [pw_16364x2] - pmulhrsw m0, [pw_804x2] - pmulhrsw m4, m1, [pw_m11003x2] - pmulhrsw m1, [pw_12140x2] -%else - mova m4, [%1+17*64] - mova m5, [%1+31*64] - - VP9_UNPACK_MULSUB_2W_4X 0, 5, 16364, 804, [pd_8192], 2, 3 ; t16, t31 - VP9_UNPACK_MULSUB_2W_4X 4, 1, 11003, 12140, [pd_8192], 2, 3 ; t17, t30 -%endif - SUMSUB_BA w, 4, 0, 2 - SUMSUB_BA w, 1, 5, 2 - - VP9_UNPACK_MULSUB_2W_4X 5, 0, 16069, 3196, [pd_8192], 2, 3 ; t17, t30 - - SCRATCH 4, 13, tmpq+ 1*%%str - SCRATCH 5, 12, tmpq+15*%%str - - mova m2, [%1+ 7*64] - mova m3, [%1+ 9*64] -%if %3 <= 16 - pmulhrsw m7, m3, [pw_14811x2] - pmulhrsw m3, [pw_7005x2] - pmulhrsw m6, m2, [pw_m5520x2] - pmulhrsw m2, [pw_15426x2] -%else - mova m7, [%1+23*64] - mova m6, [%1+25*64] - - VP9_UNPACK_MULSUB_2W_4X 3, 7, 14811, 7005, [pd_8192], 4, 5 ; t18, t29 - VP9_UNPACK_MULSUB_2W_4X 6, 2, 5520, 15426, [pd_8192], 4, 5 ; t19, t28 -%endif - SUMSUB_BA w, 3, 6, 4 - SUMSUB_BA w, 7, 2, 4 - - VP9_UNPACK_MULSUB_2W_4X 2, 6, 3196, m16069, [pd_8192], 4, 5 ; t18, t29 -%endif - - UNSCRATCH 5, 12, tmpq+15*%%str - SUMSUB_BA w, 6, 0, 4 - mova [tmpq+25*%%str], m6 ; t19 - UNSCRATCH 4, 13, tmpq+ 1*%%str - SUMSUB_BA w, 7, 1, 6 - SUMSUB_BA w, 3, 4, 6 - mova [tmpq+23*%%str], m3 ; t16 - SUMSUB_BA w, 2, 5, 6 - - VP9_UNPACK_MULSUB_2W_4X 0, 5, 15137, 6270, [pd_8192], 6, 3 ; t18, t29 - VP9_UNPACK_MULSUB_2W_4X 1, 4, 15137, 6270, [pd_8192], 6, 3 ; t19, t28 - - SCRATCH 0, 10, tmpq+ 1*%%str - SCRATCH 1, 11, tmpq+ 7*%%str - SCRATCH 2, 9, tmpq+ 9*%%str - SCRATCH 4, 14, tmpq+15*%%str - SCRATCH 5, 15, tmpq+17*%%str - SCRATCH 7, 13, tmpq+31*%%str - -%if %3 <= 8 - mova m0, [%1+ 5*64] - mova m3, [%1+ 3*64] - - pmulhrsw m5, m0, [pw_15893x2] ;t27 - pmulhrsw m0, [pw_3981x2] ;t20 - - VP9_UNPACK_MULSUB_2W_4X 1, 4, 5, 0, 9102, 13623, [pd_8192], 7, 2 ; t21, t26 - - pmulhrsw m6, m3, [pw_m2404x2] ;t23 - pmulhrsw m3, [pw_16207x2] ;t24 - - SCRATCH 5, 8, tmpq+ 5*%%str - SCRATCH 4, 12, tmpq+11*%%str - - VP9_UNPACK_MULSUB_2W_4X 7, 2, 3, 6, 13623, m9102, [pd_8192], 4, 5 ; t22, t25 -%else - mova m4, [%1+ 5*64] - mova m5, [%1+11*64] -%if %3 <= 16 - pmulhrsw m1, m4, [pw_15893x2] - pmulhrsw m4, [pw_3981x2] - pmulhrsw m0, m5, [pw_m8423x2] - pmulhrsw m5, [pw_14053x2] -%else - mova m0, [%1+21*64] - mova m1, [%1+27*64] - - VP9_UNPACK_MULSUB_2W_4X 4, 1, 15893, 3981, [pd_8192], 2, 3 ; t20, t27 - VP9_UNPACK_MULSUB_2W_4X 0, 5, 8423, 14053, [pd_8192], 2, 3 ; t21, t26 -%endif - SUMSUB_BA w, 0, 4, 2 - SUMSUB_BA w, 5, 1, 2 - - VP9_UNPACK_MULSUB_2W_4X 1, 4, 9102, 13623, [pd_8192], 2, 3 ; t21, t26 - - SCRATCH 5, 8, tmpq+ 5*%%str - SCRATCH 4, 12, tmpq+11*%%str - - mova m7, [%1+ 3*64] - mova m6, [%1+13*64] -%if %3 <= 16 - pmulhrsw m3, m6, [pw_13160x2] - pmulhrsw m6, [pw_9760x2] - pmulhrsw m2, m7, [pw_m2404x2] - pmulhrsw m7, [pw_16207x2] -%else - mova m2, [%1+29*64] - mova m3, [%1+19*64] - VP9_UNPACK_MULSUB_2W_4X 6, 3, 13160, 9760, [pd_8192], 4, 5 ; t22, t25 - VP9_UNPACK_MULSUB_2W_4X 2, 7, 2404, 16207, [pd_8192], 4, 5 ; t23, t24 -%endif - SUMSUB_BA w, 6, 2, 4 - SUMSUB_BA w, 3, 7, 4 - - VP9_UNPACK_MULSUB_2W_4X 7, 2, 13623, m9102, [pd_8192], 4, 5 ; t22, t25 -%endif - - ; m4=t16, m5=t17, m9=t18, m8=t19, m0=t20, m1=t21, m13=t22, m12=t23, - ; m3=t24, m2=t25, m14=t26, m15=t27, m7=t28, m6=t29, m10=t30, m11=t31 - - UNSCRATCH 4, 12, tmpq+11*%%str - SUMSUB_BA w, 0, 6, 5 - SUMSUB_BA w, 4, 2, 5 - UNSCRATCH 5, 8, tmpq+ 5*%%str - SCRATCH 4, 8, tmpq+11*%%str - SUMSUB_BA w, 1, 7, 4 - SUMSUB_BA w, 5, 3, 4 - SCRATCH 5, 12, tmpq+ 5*%%str - - VP9_UNPACK_MULSUB_2W_4X 3, 6, 6270, m15137, [pd_8192], 4, 5 ; t20, t27 - VP9_UNPACK_MULSUB_2W_4X 2, 7, 6270, m15137, [pd_8192], 4, 5 ; t21, t26 - - ; m8[s]=t16, m9=t17, m5=t18, m4[s]=t19, m12=t20, m13=t21, m1=t22, m0=t23, - ; m15=t24, m14=t25, m2=t26, m3=t27, m11=t28, m10=t29, m6=t30, m7=t31 - - UNSCRATCH 5, 9, tmpq+ 9*%%str - mova m4, [tmpq+23*%%str] ; t16 -%if ARCH_X86_64 - SUMSUB_BA w, 1, 5, 9 - SUMSUB_BA w, 0, 4, 9 -%else - SUMSUB_BADC w, 1, 5, 0, 4 -%endif - mova [tmpq+29*%%str], m1 ; t17 - mova [tmpq+21*%%str], m0 ; t16 - UNSCRATCH 0, 10, tmpq+ 1*%%str - UNSCRATCH 1, 11, tmpq+ 7*%%str -%if ARCH_X86_64 - SUMSUB_BA w, 2, 0, 9 - SUMSUB_BA w, 3, 1, 9 -%else - SUMSUB_BADC w, 2, 0, 3, 1 -%endif - mova [tmpq+ 9*%%str], m2 ; t18 - mova [tmpq+13*%%str], m3 ; t19 - SCRATCH 0, 10, tmpq+23*%%str - SCRATCH 1, 11, tmpq+27*%%str - - UNSCRATCH 2, 14, tmpq+15*%%str - UNSCRATCH 3, 15, tmpq+17*%%str - SUMSUB_BA w, 6, 2, 0 - SUMSUB_BA w, 7, 3, 0 - SCRATCH 6, 14, tmpq+ 3*%%str - SCRATCH 7, 15, tmpq+ 7*%%str - - UNSCRATCH 0, 8, tmpq+11*%%str - mova m1, [tmpq+25*%%str] ; t19 - UNSCRATCH 6, 12, tmpq+ 5*%%str - UNSCRATCH 7, 13, tmpq+31*%%str -%if ARCH_X86_64 - SUMSUB_BA w, 0, 1, 9 - SUMSUB_BA w, 6, 7, 9 -%else - SUMSUB_BADC w, 0, 1, 6, 7 -%endif - - ; m0=t16, m1=t17, m2=t18, m3=t19, m11=t20, m10=t21, m9=t22, m8=t23, - ; m7=t24, m6=t25, m5=t26, m4=t27, m12=t28, m13=t29, m14=t30, m15=t31 - -%if 0; cpuflag(ssse3) -%if ARCH_X86_64 - SUMSUB_BA w, 4, 7, 8 - SUMSUB_BA w, 5, 1, 8 -%else - SUMSUB_BADC w, 4, 7, 5, 1 -%endif - - pmulhrsw m7, [pw_11585x2] - pmulhrsw m4, [pw_11585x2] - pmulhrsw m1, [pw_11585x2] - pmulhrsw m5, [pw_11585x2] - - mova [tmpq+ 5*%%str], m7 ; t23 - SCRATCH 1, 13, tmpq+25*%%str - UNSCRATCH 7, 10, tmpq+23*%%str - UNSCRATCH 1, 11, tmpq+27*%%str - -%if ARCH_X86_64 - SUMSUB_BA w, 7, 3, 10 - SUMSUB_BA w, 1, 2, 10 -%else - SUMSUB_BADC w, 7, 3, 1, 2 -%endif - - pmulhrsw m3, [pw_11585x2] - pmulhrsw m7, [pw_11585x2] - pmulhrsw m2, [pw_11585x2] - pmulhrsw m1, [pw_11585x2] -%else - SCRATCH 0, 8, tmpq+15*%%str - SCRATCH 6, 9, tmpq+17*%%str - VP9_UNPACK_MULSUB_2W_4X 7, 4, 11585, 11585, [pd_8192], 0, 6 - mova [tmpq+ 5*%%str], m7 ; t23 - UNSCRATCH 7, 10, tmpq+23*%%str - VP9_UNPACK_MULSUB_2W_4X 1, 5, 11585, 11585, [pd_8192], 0, 6 - SCRATCH 1, 13, tmpq+25*%%str - UNSCRATCH 1, 11, tmpq+27*%%str - VP9_UNPACK_MULSUB_2W_4X 3, 7, 11585, 11585, [pd_8192], 0, 6 - VP9_UNPACK_MULSUB_2W_4X 2, 1, 11585, 11585, [pd_8192], 0, 6 - UNSCRATCH 0, 8, tmpq+15*%%str - UNSCRATCH 6, 9, tmpq+17*%%str -%endif - - ; m0=t16, m1=t17, m2=t18, m3=t19, m4=t20, m5=t21, m6=t22, m7=t23, - ; m8=t24, m9=t25, m10=t26, m11=t27, m12=t28, m13=t29, m14=t30, m15=t31 - - ; then do final pass to sumsub+store the two halves -%if %2 == 1 - mova [tmpq+17*%%str], m2 ; t20 - mova [tmpq+ 1*%%str], m3 ; t21 -%if ARCH_X86_64 - mova [tmpq+25*%%str], m13 ; t22 - - mova m8, [tmpq+ 0*%%str] ; t0 - mova m9, [tmpq+ 4*%%str] ; t1 - mova m12, [tmpq+ 8*%%str] ; t2 - mova m11, [tmpq+12*%%str] ; t3 - mova m2, [tmpq+16*%%str] ; t4 - mova m3, [tmpq+20*%%str] ; t5 - mova m13, [tmpq+24*%%str] ; t6 - - SUMSUB_BA w, 6, 8, 10 - mova [tmpq+ 3*%%str], m8 ; t15 - SUMSUB_BA w, 0, 9, 8 - SUMSUB_BA w, 15, 12, 8 - SUMSUB_BA w, 14, 11, 8 - SUMSUB_BA w, 1, 2, 8 - SUMSUB_BA w, 7, 3, 8 - SUMSUB_BA w, 5, 13, 8 - mova m10, [tmpq+28*%%str] ; t7 - SUMSUB_BA w, 4, 10, 8 -%if cpuflag(avx2) - ; the "shitty" about this idct is that the final pass does the outermost - ; interleave sumsubs (t0/31, t1/30, etc) but the tN for the 16x16 need - ; to be sequential, which means I need to load/store half of the sumsub - ; intermediates back to/from memory to get a 16x16 transpose going... - ; This would be easier if we had more (e.g. 32) YMM regs here. - mova [tmpq+ 7*%%str], m9 - mova [tmpq+11*%%str], m12 - mova [tmpq+15*%%str], m11 - mova [tmpq+19*%%str], m2 - mova [tmpq+23*%%str], m3 - mova [tmpq+27*%%str], m13 - mova [tmpq+31*%%str], m10 - mova [tmpq+12*%%str], m5 - - mova m13, [tmpq+30*%%str] ; t8 - mova m12, [tmpq+26*%%str] ; t9 - mova m11, [tmpq+22*%%str] ; t10 - mova m10, [tmpq+18*%%str] ; t11 - mova m9, [tmpq+17*%%str] ; t20 - mova m8, [tmpq+ 1*%%str] ; t21 - mova m3, [tmpq+25*%%str] ; t22 - mova m2, [tmpq+ 5*%%str] ; t23 - - SUMSUB_BA w, 9, 10, 5 - SUMSUB_BA w, 8, 11, 5 - SUMSUB_BA w, 3, 12, 5 - SUMSUB_BA w, 2, 13, 5 - mova [tmpq+ 1*%%str], m10 - mova [tmpq+ 5*%%str], m11 - mova [tmpq+17*%%str], m12 - mova [tmpq+25*%%str], m13 - - mova m13, [tmpq+14*%%str] ; t12 - mova m12, [tmpq+10*%%str] ; t13 - mova m11, [tmpq+ 9*%%str] ; t18 - mova m10, [tmpq+13*%%str] ; t19 - - SUMSUB_BA w, 11, 12, 5 - SUMSUB_BA w, 10, 13, 5 - mova [tmpq+ 9*%%str], m13 - mova [tmpq+13*%%str], m12 - mova [tmpq+10*%%str], m10 - mova [tmpq+14*%%str], m11 - - mova m13, [tmpq+ 6*%%str] ; t14 - mova m12, [tmpq+ 2*%%str] ; t15 - mova m11, [tmpq+21*%%str] ; t16 - mova m10, [tmpq+29*%%str] ; t17 - SUMSUB_BA w, 11, 12, 5 - SUMSUB_BA w, 10, 13, 5 - mova [tmpq+21*%%str], m12 - mova [tmpq+29*%%str], m13 - mova m12, [tmpq+10*%%str] - mova m13, [tmpq+14*%%str] - - TRANSPOSE16x16W 6, 0, 15, 14, 1, 7, 5, 4, \ - 2, 3, 8, 9, 12, 13, 10, 11, \ - [tmpq+12*%%str], [tmpq+ 8*%%str], 1 - mova [tmpq+ 0*%%str], m6 - mova [tmpq+ 2*%%str], m0 - mova [tmpq+ 4*%%str], m15 - mova [tmpq+ 6*%%str], m14 - mova [tmpq+10*%%str], m7 - mova [tmpq+12*%%str], m5 - mova [tmpq+14*%%str], m4 - mova [tmpq+16*%%str], m2 - mova [tmpq+18*%%str], m3 - mova [tmpq+20*%%str], m8 - mova [tmpq+22*%%str], m9 - mova [tmpq+24*%%str], m12 - mova [tmpq+26*%%str], m13 - mova [tmpq+28*%%str], m10 - mova [tmpq+30*%%str], m11 - - mova m0, [tmpq+21*%%str] - mova m1, [tmpq+29*%%str] - mova m2, [tmpq+13*%%str] - mova m3, [tmpq+ 9*%%str] - mova m4, [tmpq+ 1*%%str] - mova m5, [tmpq+ 5*%%str] - mova m7, [tmpq+25*%%str] - mova m8, [tmpq+31*%%str] - mova m9, [tmpq+27*%%str] - mova m10, [tmpq+23*%%str] - mova m11, [tmpq+19*%%str] - mova m12, [tmpq+15*%%str] - mova m13, [tmpq+11*%%str] - mova m14, [tmpq+ 7*%%str] - mova m15, [tmpq+ 3*%%str] - TRANSPOSE16x16W 0, 1, 2, 3, 4, 5, 6, 7, \ - 8, 9, 10, 11, 12, 13, 14, 15, \ - [tmpq+17*%%str], [tmpq+ 9*%%str], 1 - mova [tmpq+ 1*%%str], m0 - mova [tmpq+ 3*%%str], m1 - mova [tmpq+ 5*%%str], m2 - mova [tmpq+ 7*%%str], m3 - mova [tmpq+11*%%str], m5 - mova [tmpq+13*%%str], m6 - mova [tmpq+15*%%str], m7 - mova [tmpq+17*%%str], m8 - mova [tmpq+19*%%str], m9 - mova [tmpq+21*%%str], m10 - mova [tmpq+23*%%str], m11 - mova [tmpq+25*%%str], m12 - mova [tmpq+27*%%str], m13 - mova [tmpq+29*%%str], m14 - mova [tmpq+31*%%str], m15 -%else ; !avx2 - TRANSPOSE8x8W 6, 0, 15, 14, 1, 7, 5, 4, 8 - mova [tmpq+ 0*%%str], m6 - mova [tmpq+ 4*%%str], m0 - mova [tmpq+ 8*%%str], m15 - mova [tmpq+12*%%str], m14 - mova [tmpq+16*%%str], m1 - mova [tmpq+20*%%str], m7 - mova [tmpq+24*%%str], m5 - mova [tmpq+28*%%str], m4 - - mova m8, [tmpq+ 3*%%str] ; t15 - TRANSPOSE8x8W 10, 13, 3, 2, 11, 12, 9, 8, 0 - mova [tmpq+ 3*%%str], m10 - mova [tmpq+ 7*%%str], m13 - mova [tmpq+11*%%str], m3 - mova [tmpq+15*%%str], m2 - mova [tmpq+19*%%str], m11 - mova [tmpq+23*%%str], m12 - mova [tmpq+27*%%str], m9 - mova [tmpq+31*%%str], m8 - - mova m15, [tmpq+30*%%str] ; t8 - mova m14, [tmpq+26*%%str] ; t9 - mova m13, [tmpq+22*%%str] ; t10 - mova m12, [tmpq+18*%%str] ; t11 - mova m11, [tmpq+14*%%str] ; t12 - mova m10, [tmpq+10*%%str] ; t13 - mova m9, [tmpq+ 6*%%str] ; t14 - mova m8, [tmpq+ 2*%%str] ; t15 - mova m7, [tmpq+21*%%str] ; t16 - mova m6, [tmpq+29*%%str] ; t17 - mova m5, [tmpq+ 9*%%str] ; t18 - mova m4, [tmpq+13*%%str] ; t19 - mova m3, [tmpq+17*%%str] ; t20 - mova m2, [tmpq+ 1*%%str] ; t21 - mova m1, [tmpq+25*%%str] ; t22 - - SUMSUB_BA w, 7, 8, 0 - mova [tmpq+ 2*%%str], m8 - mova m0, [tmpq+ 5*%%str] ; t23 - SUMSUB_BA w, 6, 9, 8 - SUMSUB_BA w, 5, 10, 8 - SUMSUB_BA w, 4, 11, 8 - SUMSUB_BA w, 3, 12, 8 - SUMSUB_BA w, 2, 13, 8 - SUMSUB_BA w, 1, 14, 8 - SUMSUB_BA w, 0, 15, 8 - - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8 - mova [tmpq+ 1*%%str], m0 - mova [tmpq+ 5*%%str], m1 - mova [tmpq+ 9*%%str], m2 - mova [tmpq+13*%%str], m3 - mova [tmpq+17*%%str], m4 - mova [tmpq+21*%%str], m5 - mova [tmpq+25*%%str], m6 - mova [tmpq+29*%%str], m7 - - mova m8, [tmpq+ 2*%%str] - TRANSPOSE8x8W 8, 9, 10, 11, 12, 13, 14, 15, 0 - mova [tmpq+ 2*%%str], m8 - mova [tmpq+ 6*%%str], m9 - mova [tmpq+10*%%str], m10 - mova [tmpq+14*%%str], m11 - mova [tmpq+18*%%str], m12 - mova [tmpq+22*%%str], m13 - mova [tmpq+26*%%str], m14 - mova [tmpq+30*%%str], m15 -%endif ; avx2 -%else - mova m2, [tmpq+24*%%str] ; t6 - mova m3, [tmpq+28*%%str] ; t7 - SUMSUB_BADC w, 5, 2, 4, 3 - mova [tmpq+24*%%str], m5 - mova [tmpq+23*%%str], m2 - mova [tmpq+28*%%str], m4 - mova [tmpq+19*%%str], m3 - - mova m2, [tmpq+16*%%str] ; t4 - mova m3, [tmpq+20*%%str] ; t5 - SUMSUB_BA w, 1, 2, 5 - SUMSUB_BA w, 7, 3, 5 - mova [tmpq+15*%%str], m2 - mova [tmpq+11*%%str], m3 - - mova m2, [tmpq+ 0*%%str] ; t0 - mova m3, [tmpq+ 4*%%str] ; t1 - SUMSUB_BA w, 6, 2, 5 - SUMSUB_BA w, 0, 3, 5 - mova [tmpq+31*%%str], m2 - mova [tmpq+27*%%str], m3 - - mova m2, [tmpq+ 8*%%str] ; t2 - mova m3, [tmpq+12*%%str] ; t3 - mova m5, [tmpq+ 7*%%str] - mova m4, [tmpq+ 3*%%str] - SUMSUB_BADC w, 5, 2, 4, 3 - mova [tmpq+ 7*%%str], m2 - mova [tmpq+ 3*%%str], m3 - - mova m3, [tmpq+28*%%str] - TRANSPOSE8x8W 6, 0, 5, 4, 1, 7, 2, 3, [tmpq+24*%%str], [tmpq+16*%%str], 1 - mova [tmpq+ 0*%%str], m6 - mova [tmpq+ 4*%%str], m0 - mova [tmpq+ 8*%%str], m5 - mova [tmpq+12*%%str], m4 - mova [tmpq+20*%%str], m7 - mova [tmpq+24*%%str], m2 - mova [tmpq+28*%%str], m3 - - mova m6, [tmpq+19*%%str] - mova m0, [tmpq+23*%%str] - mova m5, [tmpq+11*%%str] - mova m4, [tmpq+15*%%str] - mova m1, [tmpq+ 3*%%str] - mova m7, [tmpq+ 7*%%str] - mova m3, [tmpq+31*%%str] - TRANSPOSE8x8W 6, 0, 5, 4, 1, 7, 2, 3, [tmpq+27*%%str], [tmpq+19*%%str], 1 - mova [tmpq+ 3*%%str], m6 - mova [tmpq+ 7*%%str], m0 - mova [tmpq+11*%%str], m5 - mova [tmpq+15*%%str], m4 - mova [tmpq+23*%%str], m7 - mova [tmpq+27*%%str], m2 - mova [tmpq+31*%%str], m3 - - mova m1, [tmpq+ 6*%%str] ; t14 - mova m0, [tmpq+ 2*%%str] ; t15 - mova m7, [tmpq+21*%%str] ; t16 - mova m6, [tmpq+29*%%str] ; t17 - SUMSUB_BA w, 7, 0, 2 - SUMSUB_BA w, 6, 1, 2 - mova [tmpq+29*%%str], m7 - mova [tmpq+ 2*%%str], m0 - mova [tmpq+21*%%str], m6 - mova [tmpq+ 6*%%str], m1 - - mova m1, [tmpq+14*%%str] ; t12 - mova m0, [tmpq+10*%%str] ; t13 - mova m5, [tmpq+ 9*%%str] ; t18 - mova m4, [tmpq+13*%%str] ; t19 - SUMSUB_BA w, 5, 0, 2 - SUMSUB_BA w, 4, 1, 2 - mova [tmpq+10*%%str], m0 - mova [tmpq+14*%%str], m1 - - mova m1, [tmpq+22*%%str] ; t10 - mova m0, [tmpq+18*%%str] ; t11 - mova m3, [tmpq+17*%%str] ; t20 - mova m2, [tmpq+ 1*%%str] ; t21 - SUMSUB_BA w, 3, 0, 6 - SUMSUB_BA w, 2, 1, 6 - mova [tmpq+18*%%str], m0 - mova [tmpq+22*%%str], m1 - - mova m7, [tmpq+30*%%str] ; t8 - mova m6, [tmpq+26*%%str] ; t9 - mova m1, [tmpq+25*%%str] ; t22 - mova m0, [tmpq+ 5*%%str] ; t23 - SUMSUB_BADC w, 1, 6, 0, 7 - mova [tmpq+26*%%str], m6 - mova [tmpq+30*%%str], m7 - - mova m7, [tmpq+29*%%str] - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [tmpq+21*%%str], [tmpq+17*%%str], 1 - mova [tmpq+ 1*%%str], m0 - mova [tmpq+ 5*%%str], m1 - mova [tmpq+ 9*%%str], m2 - mova [tmpq+13*%%str], m3 - mova [tmpq+21*%%str], m5 - mova [tmpq+25*%%str], m6 - mova [tmpq+29*%%str], m7 - - mova m0, [tmpq+ 2*%%str] - mova m1, [tmpq+ 6*%%str] - mova m2, [tmpq+10*%%str] - mova m3, [tmpq+14*%%str] - mova m4, [tmpq+18*%%str] - mova m5, [tmpq+22*%%str] - mova m7, [tmpq+30*%%str] - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [tmpq+26*%%str], [tmpq+18*%%str], 1 - mova [tmpq+ 2*%%str], m0 - mova [tmpq+ 6*%%str], m1 - mova [tmpq+10*%%str], m2 - mova [tmpq+14*%%str], m3 - mova [tmpq+22*%%str], m5 - mova [tmpq+26*%%str], m6 - mova [tmpq+30*%%str], m7 -%endif -%else - ; t0-7 is in [tmpq+{0,4,8,12,16,20,24,28}*%%str] - ; t8-15 is in [tmpq+{2,6,10,14,18,22,26,30}*%%str] - ; t16-19 and t23 is in [tmpq+{1,5,9,13,29}*%%str] - ; t20-22 is in m4-6 - ; t24-31 is in m8-15 - -%if cpuflag(ssse3) -%define ROUND_REG [pw_512] -%else -%define ROUND_REG [pw_32] -%endif - -%macro %%STORE_2X2 7-8 1 ; src[1-4], tmp[1-2], zero, inc_dst_ptrs - SUMSUB_BA w, %4, %1, %5 - SUMSUB_BA w, %3, %2, %5 - VP9_IDCT8_WRITEx2 %4, %3, %5, %6, %7, ROUND_REG, 6 -%if %8 == 1 - add dstq, stride2q -%endif - VP9_IDCT8_WRITEx2 %2, %1, %5, %6, %7, ROUND_REG, 6, dst_endq -%if %8 == 1 - sub dst_endq, stride2q -%endif -%endmacro - -%if ARCH_X86_64 - pxor m10, m10 - - ; store t0-1 and t30-31 - mova m8, [tmpq+ 0*%%str] - mova m9, [tmpq+ 4*%%str] - %%STORE_2X2 8, 9, 0, 6, 12, 11, 10 - - ; store t2-3 and t28-29 - mova m8, [tmpq+ 8*%%str] - mova m9, [tmpq+12*%%str] - %%STORE_2X2 8, 9, 14, 15, 12, 11, 10 - - ; store t4-5 and t26-27 - mova m8, [tmpq+16*%%str] - mova m9, [tmpq+20*%%str] - %%STORE_2X2 8, 9, 7, 1, 12, 11, 10 - - ; store t6-7 and t24-25 - mova m8, [tmpq+24*%%str] - mova m9, [tmpq+28*%%str] - %%STORE_2X2 8, 9, 4, 5, 12, 11, 10 - - ; store t8-9 and t22-23 - mova m8, [tmpq+30*%%str] - mova m9, [tmpq+26*%%str] - mova m0, [tmpq+ 5*%%str] - %%STORE_2X2 8, 9, 13, 0, 12, 11, 10 - - ; store t10-11 and t20-21 - mova m8, [tmpq+22*%%str] - mova m9, [tmpq+18*%%str] - %%STORE_2X2 8, 9, 2, 3, 12, 11, 10 - - ; store t12-13 and t18-19 - mova m8, [tmpq+14*%%str] - mova m9, [tmpq+10*%%str] - mova m5, [tmpq+13*%%str] - mova m4, [tmpq+ 9*%%str] - %%STORE_2X2 8, 9, 4, 5, 12, 11, 10 - - ; store t14-17 - mova m8, [tmpq+ 6*%%str] - mova m9, [tmpq+ 2*%%str] - mova m5, [tmpq+29*%%str] - mova m4, [tmpq+21*%%str] - %%STORE_2X2 8, 9, 4, 5, 12, 11, 10, 0 - - SWAP 1, 10 ; zero -%else - mova [tmpq+ 1*%%str], m1 - mova [tmpq+11*%%str], m2 - mova [tmpq+15*%%str], m3 - mova [tmpq+17*%%str], m4 - mova [tmpq+19*%%str], m5 - pxor m1, m1 - - ; store t0-1 and t30-31 - mova m2, [tmpq+ 0*%%str] - mova m3, [tmpq+ 4*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1 - - ; store t2-3 and t28-29 - mova m2, [tmpq+ 8*%%str] - mova m3, [tmpq+12*%%str] - mova m0, [tmpq+ 3*%%str] - mova m6, [tmpq+ 7*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1 - - ; store t4-5 and t26-27 - mova m2, [tmpq+16*%%str] - mova m3, [tmpq+20*%%str] - mova m0, [tmpq+ 1*%%str] - %%STORE_2X2 2, 3, 7, 0, 4, 5, 1 - - ; store t6-7 and t24-25 - mova m2, [tmpq+24*%%str] - mova m3, [tmpq+28*%%str] - mova m0, [tmpq+17*%%str] - mova m6, [tmpq+19*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1 - - ; store t8-9 and t22-23 - mova m2, [tmpq+30*%%str] - mova m3, [tmpq+26*%%str] - mova m0, [tmpq+25*%%str] - mova m6, [tmpq+ 5*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1 - - ; store t10-11 and t20-21 - mova m2, [tmpq+22*%%str] - mova m3, [tmpq+18*%%str] - mova m0, [tmpq+11*%%str] - mova m6, [tmpq+15*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1 - - ; store t12-13 and t18-19 - mova m2, [tmpq+14*%%str] - mova m3, [tmpq+10*%%str] - mova m6, [tmpq+13*%%str] - mova m0, [tmpq+ 9*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1 - - ; store t14-17 - mova m2, [tmpq+ 6*%%str] - mova m3, [tmpq+ 2*%%str] - mova m6, [tmpq+29*%%str] - mova m0, [tmpq+21*%%str] - %%STORE_2X2 2, 3, 0, 6, 4, 5, 1, 0 -%endif -%undef ROUND_REG -%endif -%endmacro - -%macro VP9_IDCT_IDCT_32x32_ADD_XMM 1 -INIT_XMM %1 -cglobal vp9_idct_idct_32x32_add, 0, 6 + ARCH_X86_64 * 3, 16, 2048, dst, stride, block, eob - movifnidn eobd, dword eobm -%if cpuflag(ssse3) - cmp eobd, 135 - jg .idctfull - cmp eobd, 34 - jg .idct16x16 - cmp eobd, 1 - jg .idct8x8 -%else - cmp eobd, 1 - jg .idctfull -%endif - - ; dc-only case - movifnidn blockq, blockmp - movifnidn dstq, dstmp - movifnidn strideq, stridemp -%if cpuflag(ssse3) - movd m0, [blockq] - mova m1, [pw_11585x2] - pmulhrsw m0, m1 - pmulhrsw m0, m1 -%else - DEFINE_ARGS dst, stride, block, coef - movsx coefd, word [blockq] - imul coefd, 11585 - add coefd, 8192 - sar coefd, 14 - imul coefd, 11585 - add coefd, (32 << 14) + 8192 - sar coefd, 14 + 6 - movd m0, coefd -%endif - SPLATW m0, m0, q0000 -%if cpuflag(ssse3) - pmulhrsw m0, [pw_512] -%endif - pxor m5, m5 - movd [blockq], m5 -%rep 31 - VP9_STORE_2XFULL 0, 1, 2, 3, 4, 5, mmsize - add dstq, strideq -%endrep - VP9_STORE_2XFULL 0, 1, 2, 3, 4, 5, mmsize - RET - -%if ARCH_X86_64 - DEFINE_ARGS dst_bak, stride, block, cnt, dst, stride30, dst_end, stride2, tmp -%else -%define dst_bakq r0mp -%endif -%if cpuflag(ssse3) -.idct8x8: -%if ARCH_X86_32 - DEFINE_ARGS block, u1, u2, u3, u4, tmp - mov blockq, r2mp -%endif - mov tmpq, rsp - VP9_IDCT32_1D blockq, 1, 8 - -%if ARCH_X86_32 - DEFINE_ARGS dst, stride, stride30, dst_end, stride2, tmp - mov strideq, r1mp -%define cntd dword r3m -%endif - mov stride30q, strideq ; stride - lea stride2q, [strideq*2] ; stride*2 - shl stride30q, 5 ; stride*32 - mov cntd, 4 - sub stride30q, stride2q ; stride*30 -.loop2_8x8: - mov dstq, dst_bakq - lea dst_endq, [dstq+stride30q] - VP9_IDCT32_1D tmpq, 2, 8 - add dst_bakq, 8 - add tmpq, 16 - dec cntd - jg .loop2_8x8 - - ; at the end of the loop, m7 should still be zero - ; use that to zero out block coefficients -%if ARCH_X86_32 - DEFINE_ARGS block - mov blockq, r2mp -%endif - ZERO_BLOCK blockq, 64, 8, m1 - RET - -.idct16x16: -%if ARCH_X86_32 - DEFINE_ARGS block, tmp, cnt - mov blockq, r2mp -%endif - mov cntd, 2 - mov tmpq, rsp -.loop1_16x16: - VP9_IDCT32_1D blockq, 1, 16 - add blockq, 16 - add tmpq, 512 - dec cntd - jg .loop1_16x16 - -%if ARCH_X86_64 - sub blockq, 32 -%else - DEFINE_ARGS dst, stride, stride30, dst_end, stride2, tmp - mov strideq, r1mp -%define cntd dword r3m -%endif - - mov stride30q, strideq ; stride - lea stride2q, [strideq*2] ; stride*2 - shl stride30q, 5 ; stride*32 - mov cntd, 4 - mov tmpq, rsp - sub stride30q, stride2q ; stride*30 -.loop2_16x16: - mov dstq, dst_bakq - lea dst_endq, [dstq+stride30q] - VP9_IDCT32_1D tmpq, 2, 16 - add dst_bakq, 8 - add tmpq, 16 - dec cntd - jg .loop2_16x16 - - ; at the end of the loop, m7 should still be zero - ; use that to zero out block coefficients -%if ARCH_X86_32 - DEFINE_ARGS block - mov blockq, r2mp -%endif - ZERO_BLOCK blockq, 64, 16, m1 - RET -%endif - -.idctfull: -%if ARCH_X86_32 - DEFINE_ARGS block, tmp, cnt - mov blockq, r2mp -%endif - mov cntd, 4 - mov tmpq, rsp -.loop1_full: - VP9_IDCT32_1D blockq, 1 - add blockq, 16 - add tmpq, 512 - dec cntd - jg .loop1_full - -%if ARCH_X86_64 - sub blockq, 64 -%else - DEFINE_ARGS dst, stride, stride30, dst_end, stride2, tmp - mov strideq, r1mp -%define cntd dword r3m -%endif - - mov stride30q, strideq ; stride - lea stride2q, [strideq*2] ; stride*2 - shl stride30q, 5 ; stride*32 - mov cntd, 4 - mov tmpq, rsp - sub stride30q, stride2q ; stride*30 -.loop2_full: - mov dstq, dst_bakq - lea dst_endq, [dstq+stride30q] - VP9_IDCT32_1D tmpq, 2 - add dst_bakq, 8 - add tmpq, 16 - dec cntd - jg .loop2_full - - ; at the end of the loop, m7 should still be zero - ; use that to zero out block coefficients -%if ARCH_X86_32 - DEFINE_ARGS block - mov blockq, r2mp -%endif - ZERO_BLOCK blockq, 64, 32, m1 - RET -%endmacro - -VP9_IDCT_IDCT_32x32_ADD_XMM sse2 -VP9_IDCT_IDCT_32x32_ADD_XMM ssse3 -VP9_IDCT_IDCT_32x32_ADD_XMM avx - -; this is almost identical to VP9_STORE_2X, but it does two rows -; for slightly improved interleaving, and it omits vpermq since the -; input is DC so all values are identical -%macro VP9_STORE_YMM_DC_2X2 6 ; reg, tmp1, tmp2, tmp3, tmp4, zero - mova m%2, [dstq] - mova m%4, [dstq+strideq] - punpckhbw m%3, m%2, m%6 - punpcklbw m%2, m%6 - punpckhbw m%5, m%4, m%6 - punpcklbw m%4, m%6 - paddw m%3, m%1 - paddw m%2, m%1 - paddw m%5, m%1 - paddw m%4, m%1 - packuswb m%2, m%3 - packuswb m%4, m%5 - mova [dstq+strideq*0], m%2 - mova [dstq+strideq*1], m%4 -%endmacro - -%if ARCH_X86_64 && HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -cglobal vp9_idct_idct_32x32_add, 4, 9, 16, 2048, dst, stride, block, eob - cmp eobd, 135 - jg .idctfull - cmp eobd, 1 - jg .idct16x16 - - ; dc-only case - mova m1, [pw_11585x2] - vpbroadcastw m0, [blockq] - pmulhrsw m0, m1 - pmulhrsw m0, m1 - pxor m5, m5 - pmulhrsw m0, [pw_512] - movd [blockq], xm5 - - DEFINE_ARGS dst, stride, cnt - mov cntd, 16 -.loop_dc: - VP9_STORE_YMM_DC_2X2 0, 1, 2, 3, 4, 5 - lea dstq, [dstq+2*strideq] - dec cntd - jg .loop_dc - RET - - DEFINE_ARGS dst_bak, stride, block, cnt, dst, stride30, dst_end, stride2, tmp -.idct16x16: - mov tmpq, rsp - VP9_IDCT32_1D blockq, 1, 16 - - mov stride30q, strideq ; stride - lea stride2q, [strideq*2] ; stride*2 - shl stride30q, 5 ; stride*32 - mov cntd, 2 - sub stride30q, stride2q ; stride*30 -.loop2_16x16: - mov dstq, dst_bakq - lea dst_endq, [dstq+stride30q] - VP9_IDCT32_1D tmpq, 2, 16 - add dst_bakq, 16 - add tmpq, 32 - dec cntd - jg .loop2_16x16 - - ; at the end of the loop, m1 should still be zero - ; use that to zero out block coefficients - ZERO_BLOCK blockq, 64, 16, m1 - RET - -.idctfull: - mov cntd, 2 - mov tmpq, rsp -.loop1_full: - VP9_IDCT32_1D blockq, 1 - add blockq, 32 - add tmpq, 1024 - dec cntd - jg .loop1_full - - sub blockq, 64 - - mov stride30q, strideq ; stride - lea stride2q, [strideq*2] ; stride*2 - shl stride30q, 5 ; stride*32 - mov cntd, 2 - mov tmpq, rsp - sub stride30q, stride2q ; stride*30 -.loop2_full: - mov dstq, dst_bakq - lea dst_endq, [dstq+stride30q] - VP9_IDCT32_1D tmpq, 2 - add dst_bakq, 16 - add tmpq, 32 - dec cntd - jg .loop2_full - - ; at the end of the loop, m1 should still be zero - ; use that to zero out block coefficients - ZERO_BLOCK blockq, 64, 32, m1 - RET -%endif diff --git a/libavcodec/x86/vp9itxfm_16bpp.asm b/libavcodec/x86/vp9itxfm_16bpp.asm deleted file mode 100644 index 902685edf6..0000000000 --- a/libavcodec/x86/vp9itxfm_16bpp.asm +++ /dev/null @@ -1,2044 +0,0 @@ -;****************************************************************************** -;* VP9 inverse transform x86 SIMD optimizations -;* -;* Copyright (C) 2015 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 "libavutil/x86/x86util.asm" -%include "vp9itxfm_template.asm" - -SECTION_RODATA - -cextern pw_8 -cextern pw_1023 -cextern pw_2048 -cextern pw_4095 -cextern pw_m1 -cextern pd_1 -cextern pd_16 -cextern pd_32 -cextern pd_8192 - -pd_8: times 4 dd 8 -pd_3fff: times 4 dd 0x3fff - -cextern pw_11585x2 - -cextern pw_5283_13377 -cextern pw_9929_13377 -cextern pw_15212_m13377 -cextern pw_15212_9929 -cextern pw_m5283_m15212 -cextern pw_13377x2 -cextern pw_m13377_13377 -cextern pw_13377_0 - -pw_9929_m5283: times 4 dw 9929, -5283 - -%macro COEF_PAIR 2-3 -cextern pw_m%1_%2 -cextern pw_%2_%1 -%if %0 == 3 -cextern pw_m%1_m%2 -%if %1 != %2 -cextern pw_m%2_%1 -cextern pw_%1_%2 -%endif -%endif -%endmacro - -COEF_PAIR 2404, 16207 -COEF_PAIR 3196, 16069, 1 -COEF_PAIR 4756, 15679 -COEF_PAIR 5520, 15426 -COEF_PAIR 6270, 15137, 1 -COEF_PAIR 8423, 14053 -COEF_PAIR 10394, 12665 -COEF_PAIR 11003, 12140 -COEF_PAIR 11585, 11585, 1 -COEF_PAIR 13160, 9760 -COEF_PAIR 13623, 9102, 1 -COEF_PAIR 14449, 7723 -COEF_PAIR 14811, 7005 -COEF_PAIR 15893, 3981 -COEF_PAIR 16305, 1606 -COEF_PAIR 16364, 804 - -default_8x8: -times 12 db 1 -times 52 db 2 -row_8x8: -times 18 db 1 -times 46 db 2 -col_8x8: -times 6 db 1 -times 58 db 2 -default_16x16: -times 10 db 1 -times 28 db 2 -times 51 db 3 -times 167 db 4 -row_16x16: -times 21 db 1 -times 45 db 2 -times 60 db 3 -times 130 db 4 -col_16x16: -times 5 db 1 -times 12 db 2 -times 25 db 3 -times 214 db 4 -default_32x32: -times 9 db 1 -times 25 db 2 -times 36 db 3 -times 65 db 4 -times 105 db 5 -times 96 db 6 -times 112 db 7 -times 576 db 8 - -SECTION .text - -%macro VP9_STORE_2X 6-7 dstq ; reg1, reg2, tmp1, tmp2, min, max, dst - mova m%3, [%7] - mova m%4, [%7+strideq] - paddw m%3, m%1 - paddw m%4, m%2 - pmaxsw m%3, m%5 - pmaxsw m%4, m%5 - pminsw m%3, m%6 - pminsw m%4, m%6 - mova [%7], m%3 - mova [%7+strideq], m%4 -%endmacro - -%macro ZERO_BLOCK 4 ; mem, stride, nnzcpl, zero_reg -%assign %%y 0 -%rep %3 -%assign %%x 0 -%rep %3*4/mmsize - mova [%1+%%y+%%x], %4 -%assign %%x (%%x+mmsize) -%endrep -%assign %%y (%%y+%2) -%endrep -%endmacro - -; the input coefficients are scaled up by 2 bit (which we downscale immediately -; in the iwht), and is otherwise orthonormally increased by 1 bit per iwht_1d. -; therefore, a diff of 10-12+sign bit will fit in 12-14+sign bit after scaling, -; i.e. everything can be done in 15+1bpp words. Since the quant fractional bits -; add 2 bits, we need to scale before converting to word in 12bpp, since the -; input will be 16+sign bit which doesn't fit in 15+sign words, but in 10bpp -; we can scale after converting to words (which is half the instructions), -; since the input is only 14+sign bit, which fits in 15+sign words directly. - -%macro IWHT4_FN 2 ; bpp, max -cglobal vp9_iwht_iwht_4x4_add_%1, 3, 3, 8, dst, stride, block, eob - mova m7, [pw_%2] - mova m0, [blockq+0*16+0] - mova m1, [blockq+1*16+0] -%if %1 >= 12 - mova m4, [blockq+0*16+8] - mova m5, [blockq+1*16+8] - psrad m0, 2 - psrad m1, 2 - psrad m4, 2 - psrad m5, 2 - packssdw m0, m4 - packssdw m1, m5 -%else - packssdw m0, [blockq+0*16+8] - packssdw m1, [blockq+1*16+8] - psraw m0, 2 - psraw m1, 2 -%endif - mova m2, [blockq+2*16+0] - mova m3, [blockq+3*16+0] -%if %1 >= 12 - mova m4, [blockq+2*16+8] - mova m5, [blockq+3*16+8] - psrad m2, 2 - psrad m3, 2 - psrad m4, 2 - psrad m5, 2 - packssdw m2, m4 - packssdw m3, m5 -%else - packssdw m2, [blockq+2*16+8] - packssdw m3, [blockq+3*16+8] - psraw m2, 2 - psraw m3, 2 -%endif - - VP9_IWHT4_1D - TRANSPOSE4x4W 0, 1, 2, 3, 4 - VP9_IWHT4_1D - - pxor m6, m6 - VP9_STORE_2X 0, 1, 4, 5, 6, 7 - lea dstq, [dstq+strideq*2] - VP9_STORE_2X 2, 3, 4, 5, 6, 7 - ZERO_BLOCK blockq, 16, 4, m6 - RET -%endmacro - -INIT_MMX mmxext -IWHT4_FN 10, 1023 -INIT_MMX mmxext -IWHT4_FN 12, 4095 - -%macro VP9_IDCT4_WRITEOUT 0 -%if cpuflag(ssse3) - mova m5, [pw_2048] - pmulhrsw m0, m5 - pmulhrsw m1, m5 - pmulhrsw m2, m5 - pmulhrsw m3, m5 -%else - mova m5, [pw_8] - paddw m0, m5 - paddw m1, m5 - paddw m2, m5 - paddw m3, m5 - psraw m0, 4 - psraw m1, 4 - psraw m2, 4 - psraw m3, 4 -%endif - mova m5, [pw_1023] - VP9_STORE_2X 0, 1, 6, 7, 4, 5 - lea dstq, [dstq+2*strideq] - VP9_STORE_2X 2, 3, 6, 7, 4, 5 -%endmacro - -%macro DC_ONLY 2 ; shift, zero - mov coefd, dword [blockq] - movd [blockq], %2 - imul coefd, 11585 - add coefd, 8192 - sar coefd, 14 - imul coefd, 11585 - add coefd, ((1 << (%1 - 1)) << 14) + 8192 - sar coefd, 14 + %1 -%endmacro - -; 4x4 coefficients are 5+depth+sign bits, so for 10bpp, everything still fits -; in 15+1 words without additional effort, since the coefficients are 15bpp. - -%macro IDCT4_10_FN 0 -cglobal vp9_idct_idct_4x4_add_10, 4, 4, 8, dst, stride, block, eob - cmp eobd, 1 - jg .idctfull - - ; dc-only - pxor m4, m4 -%if cpuflag(ssse3) - movd m0, [blockq] - movd [blockq], m4 - mova m5, [pw_11585x2] - pmulhrsw m0, m5 - pmulhrsw m0, m5 -%else - DEFINE_ARGS dst, stride, block, coef - DC_ONLY 4, m4 - movd m0, coefd -%endif - pshufw m0, m0, 0 - mova m5, [pw_1023] -%if cpuflag(ssse3) - pmulhrsw m0, [pw_2048] ; (x*2048 + (1<<14))>>15 <=> (x+8)>>4 -%endif - VP9_STORE_2X 0, 0, 6, 7, 4, 5 - lea dstq, [dstq+2*strideq] - VP9_STORE_2X 0, 0, 6, 7, 4, 5 - RET - -.idctfull: - mova m0, [blockq+0*16+0] - mova m1, [blockq+1*16+0] - packssdw m0, [blockq+0*16+8] - packssdw m1, [blockq+1*16+8] - mova m2, [blockq+2*16+0] - mova m3, [blockq+3*16+0] - packssdw m2, [blockq+2*16+8] - packssdw m3, [blockq+3*16+8] - -%if cpuflag(ssse3) - mova m6, [pw_11585x2] -%endif - mova m7, [pd_8192] ; rounding - VP9_IDCT4_1D - TRANSPOSE4x4W 0, 1, 2, 3, 4 - VP9_IDCT4_1D - - pxor m4, m4 - ZERO_BLOCK blockq, 16, 4, m4 - VP9_IDCT4_WRITEOUT - RET -%endmacro - -INIT_MMX mmxext -IDCT4_10_FN -INIT_MMX ssse3 -IDCT4_10_FN - -%macro IADST4_FN 4 -cglobal vp9_%1_%3_4x4_add_10, 3, 3, 0, dst, stride, block, eob -%if WIN64 && notcpuflag(ssse3) - WIN64_SPILL_XMM 8 -%endif - movdqa xmm5, [pd_8192] - mova m0, [blockq+0*16+0] - mova m1, [blockq+1*16+0] - packssdw m0, [blockq+0*16+8] - packssdw m1, [blockq+1*16+8] - mova m2, [blockq+2*16+0] - mova m3, [blockq+3*16+0] - packssdw m2, [blockq+2*16+8] - packssdw m3, [blockq+3*16+8] - -%if cpuflag(ssse3) - mova m6, [pw_11585x2] -%endif -%ifnidn %1%3, iadstiadst - movdq2q m7, xmm5 -%endif - VP9_%2_1D - TRANSPOSE4x4W 0, 1, 2, 3, 4 - VP9_%4_1D - - pxor m4, m4 - ZERO_BLOCK blockq, 16, 4, m4 - VP9_IDCT4_WRITEOUT - RET -%endmacro - -INIT_MMX sse2 -IADST4_FN idct, IDCT4, iadst, IADST4 -IADST4_FN iadst, IADST4, idct, IDCT4 -IADST4_FN iadst, IADST4, iadst, IADST4 - -INIT_MMX ssse3 -IADST4_FN idct, IDCT4, iadst, IADST4 -IADST4_FN iadst, IADST4, idct, IDCT4 -IADST4_FN iadst, IADST4, iadst, IADST4 - -; inputs and outputs are dwords, coefficients are words -; -; dst1 = src1 * coef1 + src2 * coef2 + rnd >> 14 -; dst2 = src1 * coef2 - src2 * coef1 + rnd >> 14 -%macro SUMSUB_MUL 6-8 [pd_8192], [pd_3fff] ; src/dst 1-2, tmp1-2, coef1-2, rnd, mask - pand m%3, m%1, %8 - pand m%4, m%2, %8 - psrad m%1, 14 - psrad m%2, 14 - packssdw m%4, m%2 - packssdw m%3, m%1 - punpckhwd m%2, m%4, m%3 - punpcklwd m%4, m%3 - pmaddwd m%3, m%4, [pw_%6_%5] - pmaddwd m%1, m%2, [pw_%6_%5] - pmaddwd m%4, [pw_m%5_%6] - pmaddwd m%2, [pw_m%5_%6] - paddd m%3, %7 - paddd m%4, %7 - psrad m%3, 14 - psrad m%4, 14 - paddd m%1, m%3 - paddd m%2, m%4 -%endmacro - -%macro IDCT4_12BPP_1D 0-8 [pd_8192], [pd_3fff], 0, 1, 2, 3, 4, 5 ; rnd, mask, in/out0-3, tmp0-1 - SUMSUB_MUL %3, %5, %7, %8, 11585, 11585, %1, %2 - SUMSUB_MUL %4, %6, %7, %8, 15137, 6270, %1, %2 - SUMSUB_BA d, %4, %3, %7 - SUMSUB_BA d, %6, %5, %7 - SWAP %4, %6, %3 -%endmacro - -%macro STORE_4x4 6 ; tmp1-2, reg1-2, min, max - movh m%1, [dstq+strideq*0] - movh m%2, [dstq+strideq*2] - movhps m%1, [dstq+strideq*1] - movhps m%2, [dstq+stride3q ] - paddw m%1, m%3 - paddw m%2, m%4 - pmaxsw m%1, %5 - pmaxsw m%2, %5 - pminsw m%1, %6 - pminsw m%2, %6 - movh [dstq+strideq*0], m%1 - movhps [dstq+strideq*1], m%1 - movh [dstq+strideq*2], m%2 - movhps [dstq+stride3q ], m%2 -%endmacro - -%macro ROUND_AND_STORE_4x4 8 ; reg1-4, min, max, rnd, shift - paddd m%1, %7 - paddd m%2, %7 - paddd m%3, %7 - paddd m%4, %7 - psrad m%1, %8 - psrad m%2, %8 - psrad m%3, %8 - psrad m%4, %8 - packssdw m%1, m%2 - packssdw m%3, m%4 - STORE_4x4 %2, %4, %1, %3, %5, %6 -%endmacro - -INIT_XMM sse2 -cglobal vp9_idct_idct_4x4_add_12, 4, 4, 8, dst, stride, block, eob - cmp eobd, 1 - jg .idctfull - - ; dc-only - this is special, since for 4x4 12bpp, the max coef size is - ; 17+sign bpp. Since the multiply is with 11585, which is 14bpp, the - ; result of each multiply is 31+sign bit, i.e. it _exactly_ fits in a - ; dword. After the final shift (4), the result is 13+sign bits, so we - ; don't need any additional processing to fit it in a word - DEFINE_ARGS dst, stride, block, coef - pxor m4, m4 - DC_ONLY 4, m4 - movd m0, coefd - pshuflw m0, m0, q0000 - punpcklqdq m0, m0 - mova m5, [pw_4095] - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - STORE_4x4 1, 3, 0, 0, m4, m5 - RET - -.idctfull: - DEFINE_ARGS dst, stride, block, eob - mova m0, [blockq+0*16] - mova m1, [blockq+1*16] - mova m2, [blockq+2*16] - mova m3, [blockq+3*16] - mova m6, [pd_8192] - mova m7, [pd_3fff] - - IDCT4_12BPP_1D m6, m7 - TRANSPOSE4x4D 0, 1, 2, 3, 4 - IDCT4_12BPP_1D m6, m7 - - pxor m4, m4 - ZERO_BLOCK blockq, 16, 4, m4 - - ; writeout - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - mova m5, [pw_4095] - mova m6, [pd_8] - ROUND_AND_STORE_4x4 0, 1, 2, 3, m4, m5, m6, 4 - RET - -%macro SCRATCH 3-4 -%if ARCH_X86_64 - SWAP %1, %2 -%if %0 == 4 -%define reg_%4 m%2 -%endif -%else - mova [%3], m%1 -%if %0 == 4 -%define reg_%4 [%3] -%endif -%endif -%endmacro - -%macro UNSCRATCH 3-4 -%if ARCH_X86_64 - SWAP %1, %2 -%else - mova m%1, [%3] -%endif -%if %0 == 4 -%undef reg_%4 -%endif -%endmacro - -%macro PRELOAD 2-3 -%if ARCH_X86_64 - mova m%1, [%2] -%if %0 == 3 -%define reg_%3 m%1 -%endif -%elif %0 == 3 -%define reg_%3 [%2] -%endif -%endmacro - -; out0 = 5283 * in0 + 13377 + in1 + 15212 * in2 + 9929 * in3 + rnd >> 14 -; out1 = 9929 * in0 + 13377 * in1 - 5283 * in2 - 15282 * in3 + rnd >> 14 -; out2 = 13377 * in0 - 13377 * in2 + 13377 * in3 + rnd >> 14 -; out3 = 15212 * in0 - 13377 * in1 + 9929 * in2 - 5283 * in3 + rnd >> 14 -%macro IADST4_12BPP_1D 0-2 [pd_8192], [pd_3fff] ; rnd, mask - pand m4, m0, %2 - pand m5, m1, %2 - psrad m0, 14 - psrad m1, 14 - packssdw m5, m1 - packssdw m4, m0 - punpckhwd m1, m4, m5 - punpcklwd m4, m5 - pand m5, m2, %2 - pand m6, m3, %2 - psrad m2, 14 - psrad m3, 14 - packssdw m6, m3 - packssdw m5, m2 - punpckhwd m3, m5, m6 - punpcklwd m5, m6 - SCRATCH 1, 8, rsp+0*mmsize, a - SCRATCH 5, 9, rsp+1*mmsize, b - - ; m1/3 have the high bits of 0,1,2,3 - ; m4/5 have the low bits of 0,1,2,3 - ; m0/2/6/7 are free - - mova m2, [pw_15212_9929] - mova m0, [pw_5283_13377] - pmaddwd m7, m2, reg_b - pmaddwd m6, m4, m0 - pmaddwd m2, m3 - pmaddwd m0, reg_a - paddd m6, m7 - paddd m0, m2 - mova m1, [pw_m13377_13377] - mova m5, [pw_13377_0] - pmaddwd m7, m1, reg_b - pmaddwd m2, m4, m5 - pmaddwd m1, m3 - pmaddwd m5, reg_a - paddd m2, m7 - paddd m1, m5 - paddd m6, %1 - paddd m2, %1 - psrad m6, 14 - psrad m2, 14 - paddd m0, m6 ; t0 - paddd m2, m1 ; t2 - - mova m7, [pw_m5283_m15212] - mova m5, [pw_9929_13377] - pmaddwd m1, m7, reg_b - pmaddwd m6, m4, m5 - pmaddwd m7, m3 - pmaddwd m5, reg_a - paddd m6, m1 - paddd m7, m5 - UNSCRATCH 5, 9, rsp+1*mmsize, b - pmaddwd m5, [pw_9929_m5283] - pmaddwd m4, [pw_15212_m13377] - pmaddwd m3, [pw_9929_m5283] - UNSCRATCH 1, 8, rsp+0*mmsize, a - pmaddwd m1, [pw_15212_m13377] - paddd m4, m5 - paddd m3, m1 - paddd m6, %1 - paddd m4, %1 - psrad m6, 14 - psrad m4, 14 - paddd m7, m6 ; t1 - paddd m3, m4 ; t3 - - SWAP 1, 7 -%endmacro - -%macro IADST4_12BPP_FN 4 -cglobal vp9_%1_%3_4x4_add_12, 3, 3, 12, 2 * ARCH_X86_32 * mmsize, dst, stride, block, eob - mova m0, [blockq+0*16] - mova m1, [blockq+1*16] - mova m2, [blockq+2*16] - mova m3, [blockq+3*16] - - PRELOAD 10, pd_8192, rnd - PRELOAD 11, pd_3fff, mask - %2_12BPP_1D reg_rnd, reg_mask - TRANSPOSE4x4D 0, 1, 2, 3, 4 - %4_12BPP_1D reg_rnd, reg_mask - - pxor m4, m4 - ZERO_BLOCK blockq, 16, 4, m4 - - ; writeout - DEFINE_ARGS dst, stride, stride3 - lea stride3q, [strideq*3] - mova m5, [pw_4095] - mova m6, [pd_8] - ROUND_AND_STORE_4x4 0, 1, 2, 3, m4, m5, m6, 4 - RET -%endmacro - -INIT_XMM sse2 -IADST4_12BPP_FN idct, IDCT4, iadst, IADST4 -IADST4_12BPP_FN iadst, IADST4, idct, IDCT4 -IADST4_12BPP_FN iadst, IADST4, iadst, IADST4 - -; the following line has not been executed at the end of this macro: -; UNSCRATCH 6, 8, rsp+%3*mmsize -%macro IDCT8_1D 1-5 [pd_8192], [pd_3fff], 2 * mmsize, 17 ; src, rnd, mask, src_stride, stack_offset - mova m0, [%1+0*%4] - mova m2, [%1+2*%4] - mova m4, [%1+4*%4] - mova m6, [%1+6*%4] - IDCT4_12BPP_1D %2, %3, 0, 2, 4, 6, 1, 3 ; m0/2/4/6 have t0/1/2/3 - SCRATCH 4, 8, rsp+(%5+0)*mmsize - SCRATCH 6, 9, rsp+(%5+1)*mmsize - mova m1, [%1+1*%4] - mova m3, [%1+3*%4] - mova m5, [%1+5*%4] - mova m7, [%1+7*%4] - SUMSUB_MUL 1, 7, 4, 6, 16069, 3196, %2, %3 ; m1=t7a, m7=t4a - SUMSUB_MUL 5, 3, 4, 6, 9102, 13623, %2, %3 ; m5=t6a, m3=t5a - SUMSUB_BA d, 3, 7, 4 ; m3=t4, m7=t5a - SUMSUB_BA d, 5, 1, 4 ; m5=t7, m1=t6a - SUMSUB_MUL 1, 7, 4, 6, 11585, 11585, %2, %3 ; m1=t6, m7=t5 - SUMSUB_BA d, 5, 0, 4 ; m5=out0, m0=out7 - SUMSUB_BA d, 1, 2, 4 ; m1=out1, m2=out6 - UNSCRATCH 4, 8, rsp+(%5+0)*mmsize - UNSCRATCH 6, 9, rsp+(%5+1)*mmsize - SCRATCH 2, 8, rsp+(%5+0)*mmsize - SUMSUB_BA d, 7, 4, 2 ; m7=out2, m4=out5 - SUMSUB_BA d, 3, 6, 2 ; m3=out3, m6=out4 - SWAP 0, 5, 4, 6, 2, 7 -%endmacro - -%macro STORE_2x8 5-7 dstq, strideq ; tmp1-2, reg, min, max - mova m%1, [%6+%7*0] - mova m%2, [%6+%7*1] - paddw m%1, m%3 - paddw m%2, m%3 - pmaxsw m%1, %4 - pmaxsw m%2, %4 - pminsw m%1, %5 - pminsw m%2, %5 - mova [%6+%7*0], m%1 - mova [%6+%7*1], m%2 -%endmacro - -; FIXME we can use the intermediate storage (rsp[0-15]) on x86-32 for temp -; storage also instead of allocating two more stack spaces. This doesn't -; matter much but it's something... -INIT_XMM sse2 -cglobal vp9_idct_idct_8x8_add_10, 4, 6 + ARCH_X86_64, 14, \ - 16 * mmsize + 3 * ARCH_X86_32 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_1023] - cmp eobd, 1 - jg .idctfull - - ; dc-only - the 10bit version can be done entirely in 32bit, since the max - ; coef values are 16+sign bit, and the coef is 14bit, so 30+sign easily - ; fits in 32bit - DEFINE_ARGS dst, stride, block, coef - pxor m2, m2 - DC_ONLY 5, m2 - movd m1, coefd - pshuflw m1, m1, q0000 - punpcklqdq m1, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 4 -.loop_dc: - STORE_2x8 3, 4, 1, m2, m0 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop_dc - RET - -.idctfull: - SCRATCH 0, 12, rsp+16*mmsize, max - DEFINE_ARGS dst, stride, block, cnt, ptr, skip, dstbak -%if ARCH_X86_64 - mov dstbakq, dstq - movsxd cntq, cntd -%endif -%ifdef PIC - lea ptrq, [default_8x8] - movzx cntd, byte [ptrq+cntq-1] -%else - movzx cntd, byte [default_8x8+cntq-1] -%endif - mov skipd, 2 - sub skipd, cntd - mov ptrq, rsp - PRELOAD 10, pd_8192, rnd - PRELOAD 11, pd_3fff, mask - PRELOAD 13, pd_16, srnd -.loop_1: - IDCT8_1D blockq, reg_rnd, reg_mask - - TRANSPOSE4x4D 0, 1, 2, 3, 6 - mova [ptrq+ 0*mmsize], m0 - mova [ptrq+ 2*mmsize], m1 - mova [ptrq+ 4*mmsize], m2 - mova [ptrq+ 6*mmsize], m3 - UNSCRATCH 6, 8, rsp+17*mmsize - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 1*mmsize], m4 - mova [ptrq+ 3*mmsize], m5 - mova [ptrq+ 5*mmsize], m6 - mova [ptrq+ 7*mmsize], m7 - add ptrq, 8 * mmsize - add blockq, mmsize - dec cntd - jg .loop_1 - - ; zero-pad the remainder (skipped cols) - test skipd, skipd - jz .end - add skipd, skipd - lea blockq, [blockq+skipq*(mmsize/2)] - pxor m0, m0 -.loop_z: - mova [ptrq+mmsize*0], m0 - mova [ptrq+mmsize*1], m0 - mova [ptrq+mmsize*2], m0 - mova [ptrq+mmsize*3], m0 - add ptrq, 4 * mmsize - dec skipd - jg .loop_z -.end: - - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea stride3q, [strideq*3] - mov cntd, 2 - mov ptrq, rsp -.loop_2: - IDCT8_1D ptrq, reg_rnd, reg_mask - - pxor m6, m6 - ROUND_AND_STORE_4x4 0, 1, 2, 3, m6, reg_max, reg_srnd, 5 - lea dstq, [dstq+strideq*4] - UNSCRATCH 0, 8, rsp+17*mmsize - UNSCRATCH 1, 12, rsp+16*mmsize, max - UNSCRATCH 2, 13, pd_16, srnd - ROUND_AND_STORE_4x4 4, 5, 0, 7, m6, m1, m2, 5 - add ptrq, 16 -%if ARCH_X86_64 - lea dstq, [dstbakq+8] -%else - mov dstq, dstm - add dstq, 8 -%endif - dec cntd - jg .loop_2 - - ; m6 is still zero - ZERO_BLOCK blockq-2*mmsize, 32, 8, m6 - RET - -%macro DC_ONLY_64BIT 2 ; shift, zero -%if ARCH_X86_64 - movsxd coefq, dword [blockq] - movd [blockq], %2 - imul coefq, 11585 - add coefq, 8192 - sar coefq, 14 - imul coefq, 11585 - add coefq, ((1 << (%1 - 1)) << 14) + 8192 - sar coefq, 14 + %1 -%else - mov coefd, dword [blockq] - movd [blockq], %2 - DEFINE_ARGS dst, stride, cnt, coef, coefl - mov cntd, 2 -.loop_dc_calc: - mov coefld, coefd - sar coefd, 14 - and coefld, 0x3fff - imul coefd, 11585 - imul coefld, 11585 - add coefld, 8192 - sar coefld, 14 - add coefd, coefld - dec cntd - jg .loop_dc_calc - add coefd, 1 << (%1 - 1) - sar coefd, %1 -%endif -%endmacro - -INIT_XMM sse2 -cglobal vp9_idct_idct_8x8_add_12, 4, 6 + ARCH_X86_64, 14, \ - 16 * mmsize + 3 * ARCH_X86_32 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_4095] - cmp eobd, 1 - jg mangle(private_prefix %+ _ %+ vp9_idct_idct_8x8_add_10 %+ SUFFIX).idctfull - - ; dc-only - unfortunately, this one can overflow, since coefs are 18+sign - ; bpp, and 18+14+sign does not fit in 32bit, so we do 2-stage multiplies - DEFINE_ARGS dst, stride, block, coef, coefl - pxor m2, m2 - DC_ONLY_64BIT 5, m2 - movd m1, coefd - pshuflw m1, m1, q0000 - punpcklqdq m1, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 4 -.loop_dc: - STORE_2x8 3, 4, 1, m2, m0 - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop_dc - RET - -; inputs and outputs are dwords, coefficients are words -; -; dst1[hi]:dst3[lo] = src1 * coef1 + src2 * coef2 -; dst2[hi]:dst4[lo] = src1 * coef2 - src2 * coef1 -%macro SUMSUB_MUL_D 6-7 [pd_3fff] ; src/dst 1-2, dst3-4, coef1-2, mask - pand m%3, m%1, %7 - pand m%4, m%2, %7 - psrad m%1, 14 - psrad m%2, 14 - packssdw m%4, m%2 - packssdw m%3, m%1 - punpckhwd m%2, m%4, m%3 - punpcklwd m%4, m%3 - pmaddwd m%3, m%4, [pw_%6_%5] - pmaddwd m%1, m%2, [pw_%6_%5] - pmaddwd m%4, [pw_m%5_%6] - pmaddwd m%2, [pw_m%5_%6] -%endmacro - -; dst1 = src2[hi]:src4[lo] + src1[hi]:src3[lo] + rnd >> 14 -; dst2 = src2[hi]:src4[lo] - src1[hi]:src3[lo] + rnd >> 14 -%macro SUMSUB_PACK_D 5-6 [pd_8192] ; src/dst 1-2, src3-4, tmp, rnd - SUMSUB_BA d, %1, %2, %5 - SUMSUB_BA d, %3, %4, %5 - paddd m%3, %6 - paddd m%4, %6 - psrad m%3, 14 - psrad m%4, 14 - paddd m%1, m%3 - paddd m%2, m%4 -%endmacro - -%macro NEGD 1 -%if cpuflag(ssse3) - psignd %1, [pw_m1] -%else - pxor %1, [pw_m1] - paddd %1, [pd_1] -%endif -%endmacro - -; the following line has not been executed at the end of this macro: -; UNSCRATCH 6, 8, rsp+17*mmsize -%macro IADST8_1D 1-3 [pd_8192], [pd_3fff] ; src, rnd, mask - mova m0, [%1+ 0*mmsize] - mova m3, [%1+ 6*mmsize] - mova m4, [%1+ 8*mmsize] - mova m7, [%1+14*mmsize] - SUMSUB_MUL_D 7, 0, 1, 2, 16305, 1606, %3 ; m7/1=t0a, m0/2=t1a - SUMSUB_MUL_D 3, 4, 5, 6, 10394, 12665, %3 ; m3/5=t4a, m4/6=t5a - SCRATCH 0, 8, rsp+17*mmsize - SUMSUB_PACK_D 3, 7, 5, 1, 0, %2 ; m3=t0, m7=t4 - UNSCRATCH 0, 8, rsp+17*mmsize - SUMSUB_PACK_D 4, 0, 6, 2, 1, %2 ; m4=t1, m0=t5 - - SCRATCH 3, 8, rsp+17*mmsize - SCRATCH 4, 9, rsp+18*mmsize - SCRATCH 7, 10, rsp+19*mmsize - SCRATCH 0, 11, rsp+20*mmsize - - mova m1, [%1+ 2*mmsize] - mova m2, [%1+ 4*mmsize] - mova m5, [%1+10*mmsize] - mova m6, [%1+12*mmsize] - SUMSUB_MUL_D 5, 2, 3, 4, 14449, 7723, %3 ; m5/8=t2a, m2/9=t3a - SUMSUB_MUL_D 1, 6, 7, 0, 4756, 15679, %3 ; m1/10=t6a, m6/11=t7a - SCRATCH 2, 12, rsp+21*mmsize - SUMSUB_PACK_D 1, 5, 7, 3, 2, %2 ; m1=t2, m5=t6 - UNSCRATCH 2, 12, rsp+21*mmsize - SUMSUB_PACK_D 6, 2, 0, 4, 3, %2 ; m6=t3, m2=t7 - - UNSCRATCH 7, 10, rsp+19*mmsize - UNSCRATCH 0, 11, rsp+20*mmsize - SCRATCH 1, 10, rsp+19*mmsize - SCRATCH 6, 11, rsp+20*mmsize - - SUMSUB_MUL_D 7, 0, 3, 4, 15137, 6270, %3 ; m7/8=t4a, m0/9=t5a - SUMSUB_MUL_D 2, 5, 1, 6, 6270, 15137, %3 ; m2/10=t7a, m5/11=t6a - SCRATCH 2, 12, rsp+21*mmsize - SUMSUB_PACK_D 5, 7, 6, 3, 2, %2 ; m5=-out1, m7=t6 - UNSCRATCH 2, 12, rsp+21*mmsize - NEGD m5 ; m5=out1 - SUMSUB_PACK_D 2, 0, 1, 4, 3, %2 ; m2=out6, m0=t7 - SUMSUB_MUL 7, 0, 3, 4, 11585, 11585, %2, %3 ; m7=out2, m0=-out5 - NEGD m0 ; m0=out5 - - UNSCRATCH 3, 8, rsp+17*mmsize - UNSCRATCH 4, 9, rsp+18*mmsize - UNSCRATCH 1, 10, rsp+19*mmsize - UNSCRATCH 6, 11, rsp+20*mmsize - SCRATCH 2, 8, rsp+17*mmsize - SCRATCH 0, 9, rsp+18*mmsize - - SUMSUB_BA d, 1, 3, 2 ; m1=out0, m3=t2 - SUMSUB_BA d, 6, 4, 2 ; m6=-out7, m4=t3 - NEGD m6 ; m6=out7 - SUMSUB_MUL 3, 4, 2, 0, 11585, 11585, %2, %3 ; m3=-out3, m4=out4 - NEGD m3 ; m3=out3 - - UNSCRATCH 0, 9, rsp+18*mmsize - - SWAP 0, 1, 5 - SWAP 2, 7, 6 -%endmacro - -%macro IADST8_FN 5 -cglobal vp9_%1_%3_8x8_add_10, 4, 6 + ARCH_X86_64, 16, \ - 16 * mmsize + ARCH_X86_32 * 6 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_1023] - -.body: - SCRATCH 0, 13, rsp+16*mmsize, max - DEFINE_ARGS dst, stride, block, cnt, ptr, skip, dstbak -%if ARCH_X86_64 - mov dstbakq, dstq - movsxd cntq, cntd -%endif -%ifdef PIC - lea ptrq, [%5_8x8] - movzx cntd, byte [ptrq+cntq-1] -%else - movzx cntd, byte [%5_8x8+cntq-1] -%endif - mov skipd, 2 - sub skipd, cntd - mov ptrq, rsp - PRELOAD 14, pd_8192, rnd - PRELOAD 15, pd_3fff, mask -.loop_1: - %2_1D blockq, reg_rnd, reg_mask - - TRANSPOSE4x4D 0, 1, 2, 3, 6 - mova [ptrq+ 0*mmsize], m0 - mova [ptrq+ 2*mmsize], m1 - mova [ptrq+ 4*mmsize], m2 - mova [ptrq+ 6*mmsize], m3 - UNSCRATCH 6, 8, rsp+17*mmsize - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 1*mmsize], m4 - mova [ptrq+ 3*mmsize], m5 - mova [ptrq+ 5*mmsize], m6 - mova [ptrq+ 7*mmsize], m7 - add ptrq, 8 * mmsize - add blockq, mmsize - dec cntd - jg .loop_1 - - ; zero-pad the remainder (skipped cols) - test skipd, skipd - jz .end - add skipd, skipd - lea blockq, [blockq+skipq*(mmsize/2)] - pxor m0, m0 -.loop_z: - mova [ptrq+mmsize*0], m0 - mova [ptrq+mmsize*1], m0 - mova [ptrq+mmsize*2], m0 - mova [ptrq+mmsize*3], m0 - add ptrq, 4 * mmsize - dec skipd - jg .loop_z -.end: - - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea stride3q, [strideq*3] - mov cntd, 2 - mov ptrq, rsp -.loop_2: - %4_1D ptrq, reg_rnd, reg_mask - - pxor m6, m6 - PRELOAD 9, pd_16, srnd - ROUND_AND_STORE_4x4 0, 1, 2, 3, m6, reg_max, reg_srnd, 5 - lea dstq, [dstq+strideq*4] - UNSCRATCH 0, 8, rsp+17*mmsize - UNSCRATCH 1, 13, rsp+16*mmsize, max - UNSCRATCH 2, 9, pd_16, srnd - ROUND_AND_STORE_4x4 4, 5, 0, 7, m6, m1, m2, 5 - add ptrq, 16 -%if ARCH_X86_64 - lea dstq, [dstbakq+8] -%else - mov dstq, dstm - add dstq, 8 -%endif - dec cntd - jg .loop_2 - - ; m6 is still zero - ZERO_BLOCK blockq-2*mmsize, 32, 8, m6 - RET - -cglobal vp9_%1_%3_8x8_add_12, 4, 6 + ARCH_X86_64, 16, \ - 16 * mmsize + ARCH_X86_32 * 6 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_%1_%3_8x8_add_10 %+ SUFFIX).body -%endmacro - -INIT_XMM sse2 -IADST8_FN idct, IDCT8, iadst, IADST8, row -IADST8_FN iadst, IADST8, idct, IDCT8, col -IADST8_FN iadst, IADST8, iadst, IADST8, default - -%macro IDCT16_1D 1-4 4 * mmsize, 65, 67 ; src, src_stride, stack_offset, mm32bit_stack_offset - IDCT8_1D %1, [pd_8192], [pd_3fff], %2 * 2, %4 ; m0-3=t0-3a, m4-5/m8|r67/m7=t4-7 - ; SCRATCH 6, 8, rsp+(%4+0)*mmsize ; t6 - SCRATCH 0, 15, rsp+(%4+7)*mmsize ; t0a - SCRATCH 1, 14, rsp+(%4+6)*mmsize ; t1a - SCRATCH 2, 13, rsp+(%4+5)*mmsize ; t2a - SCRATCH 3, 12, rsp+(%4+4)*mmsize ; t3a - SCRATCH 4, 11, rsp+(%4+3)*mmsize ; t4 - mova [rsp+(%3+0)*mmsize], m5 ; t5 - mova [rsp+(%3+1)*mmsize], m7 ; t7 - - mova m0, [%1+ 1*%2] ; in1 - mova m3, [%1+ 7*%2] ; in7 - mova m4, [%1+ 9*%2] ; in9 - mova m7, [%1+15*%2] ; in15 - - SUMSUB_MUL 0, 7, 1, 2, 16305, 1606 ; m0=t15a, m7=t8a - SUMSUB_MUL 4, 3, 1, 2, 10394, 12665 ; m4=t14a, m3=t9a - SUMSUB_BA d, 3, 7, 1 ; m3=t8, m7=t9 - SUMSUB_BA d, 4, 0, 1 ; m4=t15,m0=t14 - SUMSUB_MUL 0, 7, 1, 2, 15137, 6270 ; m0=t14a, m7=t9a - - mova m1, [%1+ 3*%2] ; in3 - mova m2, [%1+ 5*%2] ; in5 - mova m5, [%1+11*%2] ; in11 - mova m6, [%1+13*%2] ; in13 - - SCRATCH 0, 9, rsp+(%4+1)*mmsize - SCRATCH 7, 10, rsp+(%4+2)*mmsize - - SUMSUB_MUL 2, 5, 0, 7, 14449, 7723 ; m2=t13a, m5=t10a - SUMSUB_MUL 6, 1, 0, 7, 4756, 15679 ; m6=t12a, m1=t11a - SUMSUB_BA d, 5, 1, 0 ; m5=t11,m1=t10 - SUMSUB_BA d, 2, 6, 0 ; m2=t12,m6=t13 - NEGD m1 ; m1=-t10 - SUMSUB_MUL 1, 6, 0, 7, 15137, 6270 ; m1=t13a, m6=t10a - - UNSCRATCH 7, 10, rsp+(%4+2)*mmsize - SUMSUB_BA d, 5, 3, 0 ; m5=t8a, m3=t11a - SUMSUB_BA d, 6, 7, 0 ; m6=t9, m7=t10 - SUMSUB_BA d, 2, 4, 0 ; m2=t15a,m4=t12a - SCRATCH 5, 10, rsp+(%4+2)*mmsize - SUMSUB_MUL 4, 3, 0, 5, 11585, 11585 ; m4=t12, m3=t11 - UNSCRATCH 0, 9, rsp+(%4+1)*mmsize - SUMSUB_BA d, 1, 0, 5 ; m1=t14, m0=t13 - SCRATCH 6, 9, rsp+(%4+1)*mmsize - SUMSUB_MUL 0, 7, 6, 5, 11585, 11585 ; m0=t13a,m7=t10a - - ; order: 15|r74,14|r73,13|r72,12|r71,11|r70,r65,8|r67,r66,10|r69,9|r68,7,3,4,0,1,2 - ; free: 6,5 - - UNSCRATCH 5, 15, rsp+(%4+7)*mmsize - SUMSUB_BA d, 2, 5, 6 ; m2=out0, m5=out15 - SCRATCH 5, 15, rsp+(%4+7)*mmsize - UNSCRATCH 5, 14, rsp+(%4+6)*mmsize - SUMSUB_BA d, 1, 5, 6 ; m1=out1, m5=out14 - SCRATCH 5, 14, rsp+(%4+6)*mmsize - UNSCRATCH 5, 13, rsp+(%4+5)*mmsize - SUMSUB_BA d, 0, 5, 6 ; m0=out2, m5=out13 - SCRATCH 5, 13, rsp+(%4+5)*mmsize - UNSCRATCH 5, 12, rsp+(%4+4)*mmsize - SUMSUB_BA d, 4, 5, 6 ; m4=out3, m5=out12 - SCRATCH 5, 12, rsp+(%4+4)*mmsize - UNSCRATCH 5, 11, rsp+(%4+3)*mmsize - SUMSUB_BA d, 3, 5, 6 ; m3=out4, m5=out11 - SCRATCH 4, 11, rsp+(%4+3)*mmsize - mova m4, [rsp+(%3+0)*mmsize] - SUMSUB_BA d, 7, 4, 6 ; m7=out5, m4=out10 - mova [rsp+(%3+0)*mmsize], m5 - UNSCRATCH 5, 8, rsp+(%4+0)*mmsize - UNSCRATCH 6, 9, rsp+(%4+1)*mmsize - SCRATCH 2, 8, rsp+(%4+0)*mmsize - SCRATCH 1, 9, rsp+(%4+1)*mmsize - UNSCRATCH 1, 10, rsp+(%4+2)*mmsize - SCRATCH 0, 10, rsp+(%4+2)*mmsize - mova m0, [rsp+(%3+1)*mmsize] - SUMSUB_BA d, 6, 5, 2 ; m6=out6, m5=out9 - SUMSUB_BA d, 1, 0, 2 ; m1=out7, m0=out8 - - SWAP 0, 3, 1, 7, 2, 6, 4 - - ; output order: 8-11|r67-70=out0-3 - ; 0-6,r65=out4-11 - ; 12-15|r71-74=out12-15 -%endmacro - -INIT_XMM sse2 -cglobal vp9_idct_idct_16x16_add_10, 4, 6 + ARCH_X86_64, 16, \ - 67 * mmsize + ARCH_X86_32 * 8 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_1023] - cmp eobd, 1 - jg .idctfull - - ; dc-only - the 10bit version can be done entirely in 32bit, since the max - ; coef values are 17+sign bit, and the coef is 14bit, so 31+sign easily - ; fits in 32bit - DEFINE_ARGS dst, stride, block, coef - pxor m2, m2 - DC_ONLY 6, m2 - movd m1, coefd - pshuflw m1, m1, q0000 - punpcklqdq m1, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 8 -.loop_dc: - STORE_2x8 3, 4, 1, m2, m0, dstq, mmsize - STORE_2x8 3, 4, 1, m2, m0, dstq+strideq, mmsize - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop_dc - RET - -.idctfull: - mova [rsp+64*mmsize], m0 - DEFINE_ARGS dst, stride, block, cnt, ptr, skip, dstbak -%if ARCH_X86_64 - mov dstbakq, dstq - movsxd cntq, cntd -%endif -%ifdef PIC - lea ptrq, [default_16x16] - movzx cntd, byte [ptrq+cntq-1] -%else - movzx cntd, byte [default_16x16+cntq-1] -%endif - mov skipd, 4 - sub skipd, cntd - mov ptrq, rsp -.loop_1: - IDCT16_1D blockq - - TRANSPOSE4x4D 0, 1, 2, 3, 7 - mova [ptrq+ 1*mmsize], m0 - mova [ptrq+ 5*mmsize], m1 - mova [ptrq+ 9*mmsize], m2 - mova [ptrq+13*mmsize], m3 - mova m7, [rsp+65*mmsize] - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 2*mmsize], m4 - mova [ptrq+ 6*mmsize], m5 - mova [ptrq+10*mmsize], m6 - mova [ptrq+14*mmsize], m7 - UNSCRATCH 0, 8, rsp+67*mmsize - UNSCRATCH 1, 9, rsp+68*mmsize - UNSCRATCH 2, 10, rsp+69*mmsize - UNSCRATCH 3, 11, rsp+70*mmsize - TRANSPOSE4x4D 0, 1, 2, 3, 7 - mova [ptrq+ 0*mmsize], m0 - mova [ptrq+ 4*mmsize], m1 - mova [ptrq+ 8*mmsize], m2 - mova [ptrq+12*mmsize], m3 - UNSCRATCH 4, 12, rsp+71*mmsize - UNSCRATCH 5, 13, rsp+72*mmsize - UNSCRATCH 6, 14, rsp+73*mmsize - UNSCRATCH 7, 15, rsp+74*mmsize - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 3*mmsize], m4 - mova [ptrq+ 7*mmsize], m5 - mova [ptrq+11*mmsize], m6 - mova [ptrq+15*mmsize], m7 - add ptrq, 16 * mmsize - add blockq, mmsize - dec cntd - jg .loop_1 - - ; zero-pad the remainder (skipped cols) - test skipd, skipd - jz .end - add skipd, skipd - lea blockq, [blockq+skipq*(mmsize/2)] - pxor m0, m0 -.loop_z: - mova [ptrq+mmsize*0], m0 - mova [ptrq+mmsize*1], m0 - mova [ptrq+mmsize*2], m0 - mova [ptrq+mmsize*3], m0 - mova [ptrq+mmsize*4], m0 - mova [ptrq+mmsize*5], m0 - mova [ptrq+mmsize*6], m0 - mova [ptrq+mmsize*7], m0 - add ptrq, 8 * mmsize - dec skipd - jg .loop_z -.end: - - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea stride3q, [strideq*3] - mov cntd, 4 - mov ptrq, rsp -.loop_2: - IDCT16_1D ptrq - - pxor m7, m7 - lea dstq, [dstq+strideq*4] - ROUND_AND_STORE_4x4 0, 1, 2, 3, m7, [rsp+64*mmsize], [pd_32], 6 - lea dstq, [dstq+strideq*4] - mova m0, [rsp+65*mmsize] - mova m1, [rsp+64*mmsize] - mova m2, [pd_32] - ROUND_AND_STORE_4x4 4, 5, 6, 0, m7, m1, m2, 6 - -%if ARCH_X86_64 - DEFINE_ARGS dstbak, stride, block, cnt, ptr, stride3, dst -%else - mov dstq, dstm -%endif - UNSCRATCH 0, 8, rsp+67*mmsize - UNSCRATCH 4, 9, rsp+68*mmsize - UNSCRATCH 5, 10, rsp+69*mmsize - UNSCRATCH 3, 11, rsp+70*mmsize - ROUND_AND_STORE_4x4 0, 4, 5, 3, m7, m1, m2, 6 -%if ARCH_X86_64 - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea dstq, [dstbakq+stride3q*4] -%else - lea dstq, [dstq+stride3q*4] -%endif - UNSCRATCH 4, 12, rsp+71*mmsize - UNSCRATCH 5, 13, rsp+72*mmsize - UNSCRATCH 6, 14, rsp+73*mmsize - UNSCRATCH 0, 15, rsp+74*mmsize - ROUND_AND_STORE_4x4 4, 5, 6, 0, m7, m1, m2, 6 - - add ptrq, mmsize -%if ARCH_X86_64 - add dstbakq, 8 - mov dstq, dstbakq -%else - add dword dstm, 8 - mov dstq, dstm -%endif - dec cntd - jg .loop_2 - - ; m7 is still zero - ZERO_BLOCK blockq-4*mmsize, 64, 16, m7 - RET - -INIT_XMM sse2 -cglobal vp9_idct_idct_16x16_add_12, 4, 6 + ARCH_X86_64, 16, \ - 67 * mmsize + ARCH_X86_32 * 8 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_4095] - cmp eobd, 1 - jg mangle(private_prefix %+ _ %+ vp9_idct_idct_16x16_add_10 %+ SUFFIX).idctfull - - ; dc-only - unfortunately, this one can overflow, since coefs are 19+sign - ; bpp, and 19+14+sign does not fit in 32bit, so we do 2-stage multiplies - DEFINE_ARGS dst, stride, block, coef, coefl - pxor m2, m2 - DC_ONLY_64BIT 6, m2 - movd m1, coefd - pshuflw m1, m1, q0000 - punpcklqdq m1, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 8 -.loop_dc: - STORE_2x8 3, 4, 1, m2, m0, dstq, mmsize - STORE_2x8 3, 4, 1, m2, m0, dstq+strideq, mmsize - lea dstq, [dstq+strideq*2] - dec cntd - jg .loop_dc - RET - -; r65-69 are available for spills -; r70-77 are available on x86-32 only (x86-64 should use m8-15) -; output should be in m8-11|r70-73, m0-6,r65 and m12-15|r74-77 -%macro IADST16_1D 1 ; src - mova m0, [%1+ 0*4*mmsize] ; in0 - mova m1, [%1+ 7*4*mmsize] ; in7 - mova m2, [%1+ 8*4*mmsize] ; in8 - mova m3, [%1+15*4*mmsize] ; in15 - SUMSUB_MUL_D 3, 0, 4, 5, 16364, 804 ; m3/4=t0, m0/5=t1 - SUMSUB_MUL_D 1, 2, 6, 7, 11003, 12140 ; m1/6=t8, m2/7=t9 - SCRATCH 0, 8, rsp+70*mmsize - SUMSUB_PACK_D 1, 3, 6, 4, 0 ; m1=t0a, m3=t8a - UNSCRATCH 0, 8, rsp+70*mmsize - SUMSUB_PACK_D 2, 0, 7, 5, 4 ; m2=t1a, m0=t9a - mova [rsp+67*mmsize], m1 - SCRATCH 2, 9, rsp+71*mmsize - SCRATCH 3, 12, rsp+74*mmsize - SCRATCH 0, 13, rsp+75*mmsize - - mova m0, [%1+ 3*4*mmsize] ; in3 - mova m1, [%1+ 4*4*mmsize] ; in4 - mova m2, [%1+11*4*mmsize] ; in11 - mova m3, [%1+12*4*mmsize] ; in12 - SUMSUB_MUL_D 2, 1, 4, 5, 14811, 7005 ; m2/4=t4, m1/5=t5 - SUMSUB_MUL_D 0, 3, 6, 7, 5520, 15426 ; m0/6=t12, m3/7=t13 - SCRATCH 1, 10, rsp+72*mmsize - SUMSUB_PACK_D 0, 2, 6, 4, 1 ; m0=t4a, m2=t12a - UNSCRATCH 1, 10, rsp+72*mmsize - SUMSUB_PACK_D 3, 1, 7, 5, 4 ; m3=t5a, m1=t13a - SCRATCH 0, 15, rsp+77*mmsize - SCRATCH 3, 11, rsp+73*mmsize - - UNSCRATCH 0, 12, rsp+74*mmsize ; t8a - UNSCRATCH 3, 13, rsp+75*mmsize ; t9a - SUMSUB_MUL_D 0, 3, 4, 5, 16069, 3196 ; m0/4=t8, m3/5=t9 - SUMSUB_MUL_D 1, 2, 6, 7, 3196, 16069 ; m1/6=t13, m2/7=t12 - SCRATCH 1, 12, rsp+74*mmsize - SUMSUB_PACK_D 2, 0, 7, 4, 1 ; m2=t8a, m0=t12a - UNSCRATCH 1, 12, rsp+74*mmsize - SUMSUB_PACK_D 1, 3, 6, 5, 4 ; m1=t9a, m3=t13a - mova [rsp+65*mmsize], m2 - mova [rsp+66*mmsize], m1 - SCRATCH 0, 8, rsp+70*mmsize - SCRATCH 3, 12, rsp+74*mmsize - - mova m0, [%1+ 2*4*mmsize] ; in2 - mova m1, [%1+ 5*4*mmsize] ; in5 - mova m2, [%1+10*4*mmsize] ; in10 - mova m3, [%1+13*4*mmsize] ; in13 - SUMSUB_MUL_D 3, 0, 4, 5, 15893, 3981 ; m3/4=t2, m0/5=t3 - SUMSUB_MUL_D 1, 2, 6, 7, 8423, 14053 ; m1/6=t10, m2/7=t11 - SCRATCH 0, 10, rsp+72*mmsize - SUMSUB_PACK_D 1, 3, 6, 4, 0 ; m1=t2a, m3=t10a - UNSCRATCH 0, 10, rsp+72*mmsize - SUMSUB_PACK_D 2, 0, 7, 5, 4 ; m2=t3a, m0=t11a - mova [rsp+68*mmsize], m1 - mova [rsp+69*mmsize], m2 - SCRATCH 3, 13, rsp+75*mmsize - SCRATCH 0, 14, rsp+76*mmsize - - mova m0, [%1+ 1*4*mmsize] ; in1 - mova m1, [%1+ 6*4*mmsize] ; in6 - mova m2, [%1+ 9*4*mmsize] ; in9 - mova m3, [%1+14*4*mmsize] ; in14 - SUMSUB_MUL_D 2, 1, 4, 5, 13160, 9760 ; m2/4=t6, m1/5=t7 - SUMSUB_MUL_D 0, 3, 6, 7, 2404, 16207 ; m0/6=t14, m3/7=t15 - SCRATCH 1, 10, rsp+72*mmsize - SUMSUB_PACK_D 0, 2, 6, 4, 1 ; m0=t6a, m2=t14a - UNSCRATCH 1, 10, rsp+72*mmsize - SUMSUB_PACK_D 3, 1, 7, 5, 4 ; m3=t7a, m1=t15a - - UNSCRATCH 4, 13, rsp+75*mmsize ; t10a - UNSCRATCH 5, 14, rsp+76*mmsize ; t11a - SCRATCH 0, 13, rsp+75*mmsize - SCRATCH 3, 14, rsp+76*mmsize - SUMSUB_MUL_D 4, 5, 6, 7, 9102, 13623 ; m4/6=t10, m5/7=t11 - SUMSUB_MUL_D 1, 2, 0, 3, 13623, 9102 ; m1/0=t15, m2/3=t14 - SCRATCH 0, 10, rsp+72*mmsize - SUMSUB_PACK_D 2, 4, 3, 6, 0 ; m2=t10a, m4=t14a - UNSCRATCH 0, 10, rsp+72*mmsize - SUMSUB_PACK_D 1, 5, 0, 7, 6 ; m1=t11a, m5=t15a - - UNSCRATCH 0, 8, rsp+70*mmsize ; t12a - UNSCRATCH 3, 12, rsp+74*mmsize ; t13a - SCRATCH 2, 8, rsp+70*mmsize - SCRATCH 1, 12, rsp+74*mmsize - SUMSUB_MUL_D 0, 3, 1, 2, 15137, 6270 ; m0/1=t12, m3/2=t13 - SUMSUB_MUL_D 5, 4, 7, 6, 6270, 15137 ; m5/7=t15, m4/6=t14 - SCRATCH 2, 10, rsp+72*mmsize - SUMSUB_PACK_D 4, 0, 6, 1, 2 ; m4=out2, m0=t14a - UNSCRATCH 2, 10, rsp+72*mmsize - SUMSUB_PACK_D 5, 3, 7, 2, 1 ; m5=-out13, m3=t15a - NEGD m5 ; m5=out13 - - UNSCRATCH 1, 9, rsp+71*mmsize ; t1a - mova m2, [rsp+68*mmsize] ; t2a - UNSCRATCH 6, 13, rsp+75*mmsize ; t6a - UNSCRATCH 7, 14, rsp+76*mmsize ; t7a - SCRATCH 4, 10, rsp+72*mmsize - SCRATCH 5, 13, rsp+75*mmsize - UNSCRATCH 4, 15, rsp+77*mmsize ; t4a - UNSCRATCH 5, 11, rsp+73*mmsize ; t5a - SCRATCH 0, 14, rsp+76*mmsize - SCRATCH 3, 15, rsp+77*mmsize - mova m0, [rsp+67*mmsize] ; t0a - SUMSUB_BA d, 4, 0, 3 ; m4=t0, m0=t4 - SUMSUB_BA d, 5, 1, 3 ; m5=t1, m1=t5 - SUMSUB_BA d, 6, 2, 3 ; m6=t2, m2=t6 - SCRATCH 4, 9, rsp+71*mmsize - mova m3, [rsp+69*mmsize] ; t3a - SUMSUB_BA d, 7, 3, 4 ; m7=t3, m3=t7 - - mova [rsp+67*mmsize], m5 - mova [rsp+68*mmsize], m6 - mova [rsp+69*mmsize], m7 - SUMSUB_MUL_D 0, 1, 4, 5, 15137, 6270 ; m0/4=t4a, m1/5=t5a - SUMSUB_MUL_D 3, 2, 7, 6, 6270, 15137 ; m3/7=t7a, m2/6=t6a - SCRATCH 1, 11, rsp+73*mmsize - SUMSUB_PACK_D 2, 0, 6, 4, 1 ; m2=-out3, m0=t6 - NEGD m2 ; m2=out3 - UNSCRATCH 1, 11, rsp+73*mmsize - SUMSUB_PACK_D 3, 1, 7, 5, 4 ; m3=out12, m1=t7 - SCRATCH 2, 11, rsp+73*mmsize - UNSCRATCH 2, 12, rsp+74*mmsize ; t11a - SCRATCH 3, 12, rsp+74*mmsize - - UNSCRATCH 3, 8, rsp+70*mmsize ; t10a - mova m4, [rsp+65*mmsize] ; t8a - mova m5, [rsp+66*mmsize] ; t9a - SUMSUB_BA d, 3, 4, 6 ; m3=-out1, m4=t10 - NEGD m3 ; m3=out1 - SUMSUB_BA d, 2, 5, 6 ; m2=out14, m5=t11 - UNSCRATCH 6, 9, rsp+71*mmsize ; t0 - UNSCRATCH 7, 14, rsp+76*mmsize ; t14a - SCRATCH 3, 9, rsp+71*mmsize - SCRATCH 2, 14, rsp+76*mmsize - - SUMSUB_MUL 1, 0, 2, 3, 11585, 11585 ; m1=out4, m0=out11 - mova [rsp+65*mmsize], m0 - SUMSUB_MUL 5, 4, 2, 3, 11585, 11585 ; m5=out6, m4=out9 - UNSCRATCH 0, 15, rsp+77*mmsize ; t15a - SUMSUB_MUL 7, 0, 2, 3, 11585, m11585 ; m7=out10, m0=out5 - - mova m2, [rsp+68*mmsize] ; t2 - SUMSUB_BA d, 2, 6, 3 ; m2=out0, m6=t2a - SCRATCH 2, 8, rsp+70*mmsize - mova m2, [rsp+67*mmsize] ; t1 - mova m3, [rsp+69*mmsize] ; t3 - mova [rsp+67*mmsize], m7 - SUMSUB_BA d, 3, 2, 7 ; m3=-out15, m2=t3a - NEGD m3 ; m3=out15 - SCRATCH 3, 15, rsp+77*mmsize - SUMSUB_MUL 6, 2, 7, 3, 11585, m11585 ; m6=out8, m2=out7 - mova m7, [rsp+67*mmsize] - - SWAP 0, 1 - SWAP 2, 5, 4, 6, 7, 3 -%endmacro - -%macro IADST16_FN 7 -cglobal vp9_%1_%4_16x16_add_10, 4, 6 + ARCH_X86_64, 16, \ - 70 * mmsize + ARCH_X86_32 * 8 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_1023] - -.body: - mova [rsp+64*mmsize], m0 - DEFINE_ARGS dst, stride, block, cnt, ptr, skip, dstbak -%if ARCH_X86_64 - mov dstbakq, dstq - movsxd cntq, cntd -%endif -%ifdef PIC - lea ptrq, [%7_16x16] - movzx cntd, byte [ptrq+cntq-1] -%else - movzx cntd, byte [%7_16x16+cntq-1] -%endif - mov skipd, 4 - sub skipd, cntd - mov ptrq, rsp -.loop_1: - %2_1D blockq - - TRANSPOSE4x4D 0, 1, 2, 3, 7 - mova [ptrq+ 1*mmsize], m0 - mova [ptrq+ 5*mmsize], m1 - mova [ptrq+ 9*mmsize], m2 - mova [ptrq+13*mmsize], m3 - mova m7, [rsp+65*mmsize] - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 2*mmsize], m4 - mova [ptrq+ 6*mmsize], m5 - mova [ptrq+10*mmsize], m6 - mova [ptrq+14*mmsize], m7 - UNSCRATCH 0, 8, rsp+(%3+0)*mmsize - UNSCRATCH 1, 9, rsp+(%3+1)*mmsize - UNSCRATCH 2, 10, rsp+(%3+2)*mmsize - UNSCRATCH 3, 11, rsp+(%3+3)*mmsize - TRANSPOSE4x4D 0, 1, 2, 3, 7 - mova [ptrq+ 0*mmsize], m0 - mova [ptrq+ 4*mmsize], m1 - mova [ptrq+ 8*mmsize], m2 - mova [ptrq+12*mmsize], m3 - UNSCRATCH 4, 12, rsp+(%3+4)*mmsize - UNSCRATCH 5, 13, rsp+(%3+5)*mmsize - UNSCRATCH 6, 14, rsp+(%3+6)*mmsize - UNSCRATCH 7, 15, rsp+(%3+7)*mmsize - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 3*mmsize], m4 - mova [ptrq+ 7*mmsize], m5 - mova [ptrq+11*mmsize], m6 - mova [ptrq+15*mmsize], m7 - add ptrq, 16 * mmsize - add blockq, mmsize - dec cntd - jg .loop_1 - - ; zero-pad the remainder (skipped cols) - test skipd, skipd - jz .end - add skipd, skipd - lea blockq, [blockq+skipq*(mmsize/2)] - pxor m0, m0 -.loop_z: - mova [ptrq+mmsize*0], m0 - mova [ptrq+mmsize*1], m0 - mova [ptrq+mmsize*2], m0 - mova [ptrq+mmsize*3], m0 - mova [ptrq+mmsize*4], m0 - mova [ptrq+mmsize*5], m0 - mova [ptrq+mmsize*6], m0 - mova [ptrq+mmsize*7], m0 - add ptrq, 8 * mmsize - dec skipd - jg .loop_z -.end: - - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea stride3q, [strideq*3] - mov cntd, 4 - mov ptrq, rsp -.loop_2: - %5_1D ptrq - - pxor m7, m7 - lea dstq, [dstq+strideq*4] - ROUND_AND_STORE_4x4 0, 1, 2, 3, m7, [rsp+64*mmsize], [pd_32], 6 - lea dstq, [dstq+strideq*4] - mova m0, [rsp+65*mmsize] - mova m1, [rsp+64*mmsize] - mova m2, [pd_32] - ROUND_AND_STORE_4x4 4, 5, 6, 0, m7, m1, m2, 6 - -%if ARCH_X86_64 - DEFINE_ARGS dstbak, stride, block, cnt, ptr, stride3, dst -%else - mov dstq, dstm -%endif - UNSCRATCH 0, 8, rsp+(%6+0)*mmsize - UNSCRATCH 4, 9, rsp+(%6+1)*mmsize - UNSCRATCH 5, 10, rsp+(%6+2)*mmsize - UNSCRATCH 3, 11, rsp+(%6+3)*mmsize - ROUND_AND_STORE_4x4 0, 4, 5, 3, m7, m1, m2, 6 -%if ARCH_X86_64 - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea dstq, [dstbakq+stride3q*4] -%else - lea dstq, [dstq+stride3q*4] -%endif - UNSCRATCH 4, 12, rsp+(%6+4)*mmsize - UNSCRATCH 5, 13, rsp+(%6+5)*mmsize - UNSCRATCH 6, 14, rsp+(%6+6)*mmsize - UNSCRATCH 0, 15, rsp+(%6+7)*mmsize - ROUND_AND_STORE_4x4 4, 5, 6, 0, m7, m1, m2, 6 - - add ptrq, mmsize -%if ARCH_X86_64 - add dstbakq, 8 - mov dstq, dstbakq -%else - add dword dstm, 8 - mov dstq, dstm -%endif - dec cntd - jg .loop_2 - - ; m7 is still zero - ZERO_BLOCK blockq-4*mmsize, 64, 16, m7 - RET - -cglobal vp9_%1_%4_16x16_add_12, 4, 6 + ARCH_X86_64, 16, \ - 70 * mmsize + ARCH_X86_32 * 8 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_%1_%4_16x16_add_10 %+ SUFFIX).body -%endmacro - -INIT_XMM sse2 -IADST16_FN idct, IDCT16, 67, iadst, IADST16, 70, row -IADST16_FN iadst, IADST16, 70, idct, IDCT16, 67, col -IADST16_FN iadst, IADST16, 70, iadst, IADST16, 70, default - -%macro IDCT32_1D 2-3 8 * mmsize; pass[1/2], src, src_stride - IDCT16_1D %2, 2 * %3, 272, 257 -%if ARCH_X86_64 - mova [rsp+257*mmsize], m8 - mova [rsp+258*mmsize], m9 - mova [rsp+259*mmsize], m10 - mova [rsp+260*mmsize], m11 - mova [rsp+261*mmsize], m12 - mova [rsp+262*mmsize], m13 - mova [rsp+263*mmsize], m14 - mova [rsp+264*mmsize], m15 -%endif - mova [rsp+265*mmsize], m0 - mova [rsp+266*mmsize], m1 - mova [rsp+267*mmsize], m2 - mova [rsp+268*mmsize], m3 - mova [rsp+269*mmsize], m4 - mova [rsp+270*mmsize], m5 - mova [rsp+271*mmsize], m6 - - ; r257-260: t0-3 - ; r265-272: t4/5a/6a/7/8/9a/10/11a - ; r261-264: t12a/13/14a/15 - ; r273-274 is free as scratch space, and 275-282 mirrors m8-15 on 32bit - - mova m0, [%2+ 1*%3] ; in1 - mova m1, [%2+15*%3] ; in15 - mova m2, [%2+17*%3] ; in17 - mova m3, [%2+31*%3] ; in31 - SUMSUB_MUL 0, 3, 4, 5, 16364, 804 ; m0=t31a, m3=t16a - SUMSUB_MUL 2, 1, 4, 5, 11003, 12140 ; m2=t30a, m1=t17a - SUMSUB_BA d, 1, 3, 4 ; m1=t16, m3=t17 - SUMSUB_BA d, 2, 0, 4 ; m2=t31, m0=t30 - SUMSUB_MUL 0, 3, 4, 5, 16069, 3196 ; m0=t30a, m3=t17a - SCRATCH 0, 8, rsp+275*mmsize - SCRATCH 2, 9, rsp+276*mmsize - - ; end of stage 1-3 first quart - - mova m0, [%2+ 7*%3] ; in7 - mova m2, [%2+ 9*%3] ; in9 - mova m4, [%2+23*%3] ; in23 - mova m5, [%2+25*%3] ; in25 - SUMSUB_MUL 2, 4, 6, 7, 14811, 7005 ; m2=t29a, m4=t18a - SUMSUB_MUL 5, 0, 6, 7, 5520, 15426 ; m5=t28a, m0=t19a - SUMSUB_BA d, 4, 0, 6 ; m4=t19, m0=t18 - SUMSUB_BA d, 2, 5, 6 ; m2=t28, m5=t29 - SUMSUB_MUL 5, 0, 6, 7, 3196, m16069 ; m5=t29a, m0=t18a - - ; end of stage 1-3 second quart - - SUMSUB_BA d, 4, 1, 6 ; m4=t16a, m1=t19a - SUMSUB_BA d, 0, 3, 6 ; m0=t17, m3=t18 - UNSCRATCH 6, 8, rsp+275*mmsize ; t30a - UNSCRATCH 7, 9, rsp+276*mmsize ; t31 - mova [rsp+273*mmsize], m4 - mova [rsp+274*mmsize], m0 - SUMSUB_BA d, 2, 7, 0 ; m2=t31a, m7=t28a - SUMSUB_BA d, 5, 6, 0 ; m5=t30, m6=t29 - SUMSUB_MUL 6, 3, 0, 4, 15137, 6270 ; m6=t29a, m3=t18a - SUMSUB_MUL 7, 1, 0, 4, 15137, 6270 ; m7=t28, m1=t19 - SCRATCH 3, 10, rsp+277*mmsize - SCRATCH 1, 11, rsp+278*mmsize - SCRATCH 7, 12, rsp+279*mmsize - SCRATCH 6, 13, rsp+280*mmsize - SCRATCH 5, 14, rsp+281*mmsize - SCRATCH 2, 15, rsp+282*mmsize - - ; end of stage 4-5 first half - - mova m0, [%2+ 5*%3] ; in5 - mova m1, [%2+11*%3] ; in11 - mova m2, [%2+21*%3] ; in21 - mova m3, [%2+27*%3] ; in27 - SUMSUB_MUL 0, 3, 4, 5, 15893, 3981 ; m0=t27a, m3=t20a - SUMSUB_MUL 2, 1, 4, 5, 8423, 14053 ; m2=t26a, m1=t21a - SUMSUB_BA d, 1, 3, 4 ; m1=t20, m3=t21 - SUMSUB_BA d, 2, 0, 4 ; m2=t27, m0=t26 - SUMSUB_MUL 0, 3, 4, 5, 9102, 13623 ; m0=t26a, m3=t21a - SCRATCH 0, 8, rsp+275*mmsize - SCRATCH 2, 9, rsp+276*mmsize - - ; end of stage 1-3 third quart - - mova m0, [%2+ 3*%3] ; in3 - mova m2, [%2+13*%3] ; in13 - mova m4, [%2+19*%3] ; in19 - mova m5, [%2+29*%3] ; in29 - SUMSUB_MUL 2, 4, 6, 7, 13160, 9760 ; m2=t25a, m4=t22a - SUMSUB_MUL 5, 0, 6, 7, 2404, 16207 ; m5=t24a, m0=t23a - SUMSUB_BA d, 4, 0, 6 ; m4=t23, m0=t22 - SUMSUB_BA d, 2, 5, 6 ; m2=t24, m5=t25 - SUMSUB_MUL 5, 0, 6, 7, 13623, m9102 ; m5=t25a, m0=t22a - - ; end of stage 1-3 fourth quart - - SUMSUB_BA d, 1, 4, 6 ; m1=t23a, m4=t20a - SUMSUB_BA d, 3, 0, 6 ; m3=t22, m0=t21 - UNSCRATCH 6, 8, rsp+275*mmsize ; t26a - UNSCRATCH 7, 9, rsp+276*mmsize ; t27 - SCRATCH 3, 8, rsp+275*mmsize - SCRATCH 1, 9, rsp+276*mmsize - SUMSUB_BA d, 7, 2, 1 ; m7=t24a, m2=t27a - SUMSUB_BA d, 6, 5, 1 ; m6=t25, m5=t26 - SUMSUB_MUL 2, 4, 1, 3, 6270, m15137 ; m2=t27, m4=t20 - SUMSUB_MUL 5, 0, 1, 3, 6270, m15137 ; m5=t26a, m0=t21a - - ; end of stage 4-5 second half - - UNSCRATCH 1, 12, rsp+279*mmsize ; t28 - UNSCRATCH 3, 13, rsp+280*mmsize ; t29a - SCRATCH 4, 12, rsp+279*mmsize - SCRATCH 0, 13, rsp+280*mmsize - SUMSUB_BA d, 5, 3, 0 ; m5=t29, m3=t26 - SUMSUB_BA d, 2, 1, 0 ; m2=t28a, m1=t27a - UNSCRATCH 0, 14, rsp+281*mmsize ; t30 - UNSCRATCH 4, 15, rsp+282*mmsize ; t31a - SCRATCH 2, 14, rsp+281*mmsize - SCRATCH 5, 15, rsp+282*mmsize - SUMSUB_BA d, 6, 0, 2 ; m6=t30a, m0=t25a - SUMSUB_BA d, 7, 4, 2 ; m7=t31, m4=t24 - - mova m2, [rsp+273*mmsize] ; t16a - mova m5, [rsp+274*mmsize] ; t17 - mova [rsp+273*mmsize], m6 - mova [rsp+274*mmsize], m7 - UNSCRATCH 6, 10, rsp+277*mmsize ; t18a - UNSCRATCH 7, 11, rsp+278*mmsize ; t19 - SCRATCH 4, 10, rsp+277*mmsize - SCRATCH 0, 11, rsp+278*mmsize - UNSCRATCH 4, 12, rsp+279*mmsize ; t20 - UNSCRATCH 0, 13, rsp+280*mmsize ; t21a - SCRATCH 3, 12, rsp+279*mmsize - SCRATCH 1, 13, rsp+280*mmsize - SUMSUB_BA d, 0, 6, 1 ; m0=t18, m6=t21 - SUMSUB_BA d, 4, 7, 1 ; m4=t19a, m7=t20a - UNSCRATCH 3, 8, rsp+275*mmsize ; t22 - UNSCRATCH 1, 9, rsp+276*mmsize ; t23a - SCRATCH 0, 8, rsp+275*mmsize - SCRATCH 4, 9, rsp+276*mmsize - SUMSUB_BA d, 3, 5, 0 ; m3=t17a, m5=t22a - SUMSUB_BA d, 1, 2, 0 ; m1=t16, m2=t23 - - ; end of stage 6 - - UNSCRATCH 0, 10, rsp+277*mmsize ; t24 - UNSCRATCH 4, 11, rsp+278*mmsize ; t25a - SCRATCH 1, 10, rsp+277*mmsize - SCRATCH 3, 11, rsp+278*mmsize - SUMSUB_MUL 0, 2, 1, 3, 11585, 11585 ; m0=t24a, m2=t23a - SUMSUB_MUL 4, 5, 1, 3, 11585, 11585 ; m4=t25, m5=t22 - UNSCRATCH 1, 12, rsp+279*mmsize ; t26 - UNSCRATCH 3, 13, rsp+280*mmsize ; t27a - SCRATCH 0, 12, rsp+279*mmsize - SCRATCH 4, 13, rsp+280*mmsize - SUMSUB_MUL 3, 7, 0, 4, 11585, 11585 ; m3=t27, m7=t20 - SUMSUB_MUL 1, 6, 0, 4, 11585, 11585 ; m1=t26a, m6=t21a - - ; end of stage 7 - - mova m0, [rsp+269*mmsize] ; t8 - mova m4, [rsp+270*mmsize] ; t9a - mova [rsp+269*mmsize], m1 ; t26a - mova [rsp+270*mmsize], m3 ; t27 - mova m3, [rsp+271*mmsize] ; t10 - SUMSUB_BA d, 2, 0, 1 ; m2=out8, m0=out23 - SUMSUB_BA d, 5, 4, 1 ; m5=out9, m4=out22 - SUMSUB_BA d, 6, 3, 1 ; m6=out10, m3=out21 - mova m1, [rsp+272*mmsize] ; t11a - mova [rsp+271*mmsize], m0 - SUMSUB_BA d, 7, 1, 0 ; m7=out11, m1=out20 - -%if %1 == 1 - TRANSPOSE4x4D 2, 5, 6, 7, 0 - mova [ptrq+ 2*mmsize], m2 - mova [ptrq+10*mmsize], m5 - mova [ptrq+18*mmsize], m6 - mova [ptrq+26*mmsize], m7 -%else ; %1 == 2 - pxor m0, m0 - lea dstq, [dstq+strideq*8] - ROUND_AND_STORE_4x4 2, 5, 6, 7, m0, [rsp+256*mmsize], [pd_32], 6 -%endif - mova m2, [rsp+271*mmsize] -%if %1 == 1 - TRANSPOSE4x4D 1, 3, 4, 2, 0 - mova [ptrq+ 5*mmsize], m1 - mova [ptrq+13*mmsize], m3 - mova [ptrq+21*mmsize], m4 - mova [ptrq+29*mmsize], m2 -%else ; %1 == 2 - lea dstq, [dstq+stride3q*4] - ROUND_AND_STORE_4x4 1, 3, 4, 2, m0, [rsp+256*mmsize], [pd_32], 6 -%endif - - ; end of last stage + store for out8-11 and out20-23 - - UNSCRATCH 0, 9, rsp+276*mmsize ; t19a - UNSCRATCH 1, 8, rsp+275*mmsize ; t18 - UNSCRATCH 2, 11, rsp+278*mmsize ; t17a - UNSCRATCH 3, 10, rsp+277*mmsize ; t16 - mova m7, [rsp+261*mmsize] ; t12a - mova m6, [rsp+262*mmsize] ; t13 - mova m5, [rsp+263*mmsize] ; t14a - SUMSUB_BA d, 0, 7, 4 ; m0=out12, m7=out19 - SUMSUB_BA d, 1, 6, 4 ; m1=out13, m6=out18 - SUMSUB_BA d, 2, 5, 4 ; m2=out14, m5=out17 - mova m4, [rsp+264*mmsize] ; t15 - SCRATCH 7, 8, rsp+275*mmsize - SUMSUB_BA d, 3, 4, 7 ; m3=out15, m4=out16 - -%if %1 == 1 - TRANSPOSE4x4D 0, 1, 2, 3, 7 - mova [ptrq+ 3*mmsize], m0 - mova [ptrq+11*mmsize], m1 - mova [ptrq+19*mmsize], m2 - mova [ptrq+27*mmsize], m3 -%else ; %1 == 2 -%if ARCH_X86_64 - SWAP 7, 9 - lea dstq, [dstbakq+stride3q*4] -%else ; x86-32 - pxor m7, m7 - mov dstq, dstm - lea dstq, [dstq+stride3q*4] -%endif - ROUND_AND_STORE_4x4 0, 1, 2, 3, m7, [rsp+256*mmsize], [pd_32], 6 -%endif - UNSCRATCH 0, 8, rsp+275*mmsize ; out19 -%if %1 == 1 - TRANSPOSE4x4D 4, 5, 6, 0, 7 - mova [ptrq+ 4*mmsize], m4 - mova [ptrq+12*mmsize], m5 - mova [ptrq+20*mmsize], m6 - mova [ptrq+28*mmsize], m0 -%else ; %1 == 2 - lea dstq, [dstq+strideq*4] - ROUND_AND_STORE_4x4 4, 5, 6, 0, m7, [rsp+256*mmsize], [pd_32], 6 -%endif - - ; end of last stage + store for out12-19 - -%if ARCH_X86_64 - SWAP 7, 8 -%endif - mova m7, [rsp+257*mmsize] ; t0 - mova m6, [rsp+258*mmsize] ; t1 - mova m5, [rsp+259*mmsize] ; t2 - mova m4, [rsp+260*mmsize] ; t3 - mova m0, [rsp+274*mmsize] ; t31 - mova m1, [rsp+273*mmsize] ; t30a - UNSCRATCH 2, 15, rsp+282*mmsize ; t29 - SUMSUB_BA d, 0, 7, 3 ; m0=out0, m7=out31 - SUMSUB_BA d, 1, 6, 3 ; m1=out1, m6=out30 - SUMSUB_BA d, 2, 5, 3 ; m2=out2, m5=out29 - SCRATCH 0, 9, rsp+276*mmsize - UNSCRATCH 3, 14, rsp+281*mmsize ; t28a - SUMSUB_BA d, 3, 4, 0 ; m3=out3, m4=out28 - -%if %1 == 1 - TRANSPOSE4x4D 4, 5, 6, 7, 0 - mova [ptrq+ 7*mmsize], m4 - mova [ptrq+15*mmsize], m5 - mova [ptrq+23*mmsize], m6 - mova [ptrq+31*mmsize], m7 -%else ; %1 == 2 -%if ARCH_X86_64 - SWAP 0, 8 -%else ; x86-32 - pxor m0, m0 -%endif - lea dstq, [dstq+stride3q*4] - ROUND_AND_STORE_4x4 4, 5, 6, 7, m0, [rsp+256*mmsize], [pd_32], 6 -%endif - UNSCRATCH 7, 9, rsp+276*mmsize ; out0 -%if %1 == 1 - TRANSPOSE4x4D 7, 1, 2, 3, 0 - mova [ptrq+ 0*mmsize], m7 - mova [ptrq+ 8*mmsize], m1 - mova [ptrq+16*mmsize], m2 - mova [ptrq+24*mmsize], m3 -%else ; %1 == 2 -%if ARCH_X86_64 - DEFINE_ARGS dstbak, stride, block, cnt, ptr, stride3, dst -%else ; x86-32 - mov dstq, dstm -%endif - ROUND_AND_STORE_4x4 7, 1, 2, 3, m0, [rsp+256*mmsize], [pd_32], 6 -%if ARCH_X86_64 - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak -%endif -%endif - - ; end of last stage + store for out0-3 and out28-31 - -%if ARCH_X86_64 - SWAP 0, 8 -%endif - mova m7, [rsp+265*mmsize] ; t4 - mova m6, [rsp+266*mmsize] ; t5a - mova m5, [rsp+267*mmsize] ; t6a - mova m4, [rsp+268*mmsize] ; t7 - mova m0, [rsp+270*mmsize] ; t27 - mova m1, [rsp+269*mmsize] ; t26a - UNSCRATCH 2, 13, rsp+280*mmsize ; t25 - SUMSUB_BA d, 0, 7, 3 ; m0=out4, m7=out27 - SUMSUB_BA d, 1, 6, 3 ; m1=out5, m6=out26 - SUMSUB_BA d, 2, 5, 3 ; m2=out6, m5=out25 - UNSCRATCH 3, 12, rsp+279*mmsize ; t24a - SCRATCH 7, 9, rsp+276*mmsize - SUMSUB_BA d, 3, 4, 7 ; m3=out7, m4=out24 - -%if %1 == 1 - TRANSPOSE4x4D 0, 1, 2, 3, 7 - mova [ptrq+ 1*mmsize], m0 - mova [ptrq+ 9*mmsize], m1 - mova [ptrq+17*mmsize], m2 - mova [ptrq+25*mmsize], m3 -%else ; %1 == 2 -%if ARCH_X86_64 - SWAP 7, 8 - lea dstq, [dstbakq+strideq*4] -%else ; x86-32 - pxor m7, m7 - lea dstq, [dstq+strideq*4] -%endif - ROUND_AND_STORE_4x4 0, 1, 2, 3, m7, [rsp+256*mmsize], [pd_32], 6 -%endif - UNSCRATCH 0, 9, rsp+276*mmsize ; out27 -%if %1 == 1 - TRANSPOSE4x4D 4, 5, 6, 0, 7 - mova [ptrq+ 6*mmsize], m4 - mova [ptrq+14*mmsize], m5 - mova [ptrq+22*mmsize], m6 - mova [ptrq+30*mmsize], m0 -%else ; %1 == 2 -%if ARCH_X86_64 - lea dstq, [dstbakq+stride3q*8] -%else - mov dstq, dstm - lea dstq, [dstq+stride3q*8] -%endif - ROUND_AND_STORE_4x4 4, 5, 6, 0, m7, [rsp+256*mmsize], [pd_32], 6 -%endif - - ; end of last stage + store for out4-7 and out24-27 -%endmacro - -INIT_XMM sse2 -cglobal vp9_idct_idct_32x32_add_10, 4, 6 + ARCH_X86_64, 16, \ - 275 * mmsize + ARCH_X86_32 * 8 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_1023] - cmp eobd, 1 - jg .idctfull - - ; dc-only - the 10bit version can be done entirely in 32bit, since the max - ; coef values are 17+sign bit, and the coef is 14bit, so 31+sign easily - ; fits in 32bit - DEFINE_ARGS dst, stride, block, coef - pxor m2, m2 - DC_ONLY 6, m2 - movd m1, coefd - pshuflw m1, m1, q0000 - punpcklqdq m1, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 32 -.loop_dc: - STORE_2x8 3, 4, 1, m2, m0, dstq, mmsize - STORE_2x8 3, 4, 1, m2, m0, dstq+mmsize*2, mmsize - add dstq, strideq - dec cntd - jg .loop_dc - RET - -.idctfull: - mova [rsp+256*mmsize], m0 - DEFINE_ARGS dst, stride, block, cnt, ptr, skip, dstbak -%if ARCH_X86_64 - mov dstbakq, dstq - movsxd cntq, cntd -%endif -%ifdef PIC - lea ptrq, [default_32x32] - movzx cntd, byte [ptrq+cntq-1] -%else - movzx cntd, byte [default_32x32+cntq-1] -%endif - mov skipd, 8 - sub skipd, cntd - mov ptrq, rsp -.loop_1: - IDCT32_1D 1, blockq - - add ptrq, 32 * mmsize - add blockq, mmsize - dec cntd - jg .loop_1 - - ; zero-pad the remainder (skipped cols) - test skipd, skipd - jz .end - shl skipd, 2 - lea blockq, [blockq+skipq*(mmsize/4)] - pxor m0, m0 -.loop_z: - mova [ptrq+mmsize*0], m0 - mova [ptrq+mmsize*1], m0 - mova [ptrq+mmsize*2], m0 - mova [ptrq+mmsize*3], m0 - mova [ptrq+mmsize*4], m0 - mova [ptrq+mmsize*5], m0 - mova [ptrq+mmsize*6], m0 - mova [ptrq+mmsize*7], m0 - add ptrq, 8 * mmsize - dec skipd - jg .loop_z -.end: - - DEFINE_ARGS dst, stride, block, cnt, ptr, stride3, dstbak - lea stride3q, [strideq*3] - mov cntd, 8 - mov ptrq, rsp -.loop_2: - IDCT32_1D 2, ptrq - - add ptrq, mmsize -%if ARCH_X86_64 - add dstbakq, 8 - mov dstq, dstbakq -%else - add dword dstm, 8 - mov dstq, dstm -%endif - dec cntd - jg .loop_2 - - ; m7 is still zero - ZERO_BLOCK blockq-8*mmsize, 128, 32, m7 - RET - -INIT_XMM sse2 -cglobal vp9_idct_idct_32x32_add_12, 4, 6 + ARCH_X86_64, 16, \ - 275 * mmsize + ARCH_X86_32 * 8 * mmsize, \ - dst, stride, block, eob - mova m0, [pw_4095] - cmp eobd, 1 - jg mangle(private_prefix %+ _ %+ vp9_idct_idct_32x32_add_10 %+ SUFFIX).idctfull - - ; dc-only - unfortunately, this one can overflow, since coefs are 19+sign - ; bpp, and 19+14+sign does not fit in 32bit, so we do 2-stage multiplies - DEFINE_ARGS dst, stride, block, coef, coefl - pxor m2, m2 - DC_ONLY_64BIT 6, m2 - movd m1, coefd - pshuflw m1, m1, q0000 - punpcklqdq m1, m1 - DEFINE_ARGS dst, stride, cnt - mov cntd, 32 -.loop_dc: - STORE_2x8 3, 4, 1, m2, m0, dstq, mmsize - STORE_2x8 3, 4, 1, m2, m0, dstq+mmsize*2, mmsize - add dstq, strideq - dec cntd - jg .loop_dc - RET diff --git a/libavcodec/x86/vp9itxfm_template.asm b/libavcodec/x86/vp9itxfm_template.asm deleted file mode 100644 index d2f2257d84..0000000000 --- a/libavcodec/x86/vp9itxfm_template.asm +++ /dev/null @@ -1,142 +0,0 @@ -;****************************************************************************** -;* VP9 IDCT SIMD optimizations -;* -;* Copyright (C) 2013 Clément Bœsch -;* Copyright (C) 2013 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 -;****************************************************************************** - -%macro VP9_IWHT4_1D 0 - SWAP 1, 2, 3 - paddw m0, m2 - psubw m3, m1 - psubw m4, m0, m3 - psraw m4, 1 - psubw m5, m4, m1 - SWAP 5, 1 - psubw m4, m2 - SWAP 4, 2 - psubw m0, m1 - paddw m3, m2 - SWAP 3, 2, 1 -%endmacro - -; (a*x + b*y + round) >> shift -%macro VP9_MULSUB_2W_2X 5 ; dst1, dst2/src, round, coefs1, coefs2 - pmaddwd m%1, m%2, %4 - pmaddwd m%2, %5 - paddd m%1, %3 - paddd m%2, %3 - psrad m%1, 14 - psrad m%2, 14 -%endmacro - -%macro VP9_MULSUB_2W_4X 7 ; dst1, dst2, coef1, coef2, rnd, tmp1/src, tmp2 - VP9_MULSUB_2W_2X %7, %6, %5, [pw_m%3_%4], [pw_%4_%3] - VP9_MULSUB_2W_2X %1, %2, %5, [pw_m%3_%4], [pw_%4_%3] - packssdw m%1, m%7 - packssdw m%2, m%6 -%endmacro - -%macro VP9_UNPACK_MULSUB_2W_4X 7-9 ; dst1, dst2, (src1, src2,) coef1, coef2, rnd, tmp1, tmp2 -%if %0 == 7 - punpckhwd m%6, m%2, m%1 - punpcklwd m%2, m%1 - VP9_MULSUB_2W_4X %1, %2, %3, %4, %5, %6, %7 -%else - punpckhwd m%8, m%4, m%3 - punpcklwd m%2, m%4, m%3 - VP9_MULSUB_2W_4X %1, %2, %5, %6, %7, %8, %9 -%endif -%endmacro - -%macro VP9_IDCT4_1D_FINALIZE 0 - SUMSUB_BA w, 3, 2, 4 ; m3=t3+t0, m2=-t3+t0 - SUMSUB_BA w, 1, 0, 4 ; m1=t2+t1, m0=-t2+t1 - SWAP 0, 3, 2 ; 3102 -> 0123 -%endmacro - -%macro VP9_IDCT4_1D 0 -%if cpuflag(ssse3) - SUMSUB_BA w, 2, 0, 4 ; m2=IN(0)+IN(2) m0=IN(0)-IN(2) - pmulhrsw m2, m6 ; m2=t0 - pmulhrsw m0, m6 ; m0=t1 -%else ; <= sse2 - VP9_UNPACK_MULSUB_2W_4X 0, 2, 11585, 11585, m7, 4, 5 ; m0=t1, m1=t0 -%endif - VP9_UNPACK_MULSUB_2W_4X 1, 3, 15137, 6270, m7, 4, 5 ; m1=t2, m3=t3 - VP9_IDCT4_1D_FINALIZE -%endmacro - -%macro VP9_IADST4_1D 0 - movq2dq xmm0, m0 - movq2dq xmm1, m1 - movq2dq xmm2, m2 - movq2dq xmm3, m3 -%if cpuflag(ssse3) - paddw m3, m0 -%endif - punpcklwd xmm0, xmm1 - punpcklwd xmm2, xmm3 - pmaddwd xmm1, xmm0, [pw_5283_13377] - pmaddwd xmm4, xmm0, [pw_9929_13377] -%if notcpuflag(ssse3) - pmaddwd xmm6, xmm0, [pw_13377_0] -%endif - pmaddwd xmm0, [pw_15212_m13377] - pmaddwd xmm3, xmm2, [pw_15212_9929] -%if notcpuflag(ssse3) - pmaddwd xmm7, xmm2, [pw_m13377_13377] -%endif - pmaddwd xmm2, [pw_m5283_m15212] -%if cpuflag(ssse3) - psubw m3, m2 -%else - paddd xmm6, xmm7 -%endif - paddd xmm0, xmm2 - paddd xmm3, xmm5 - paddd xmm2, xmm5 -%if notcpuflag(ssse3) - paddd xmm6, xmm5 -%endif - paddd xmm1, xmm3 - paddd xmm0, xmm3 - paddd xmm4, xmm2 - psrad xmm1, 14 - psrad xmm0, 14 - psrad xmm4, 14 -%if cpuflag(ssse3) - pmulhrsw m3, [pw_13377x2] ; out2 -%else - psrad xmm6, 14 -%endif - packssdw xmm0, xmm0 - packssdw xmm1, xmm1 - packssdw xmm4, xmm4 -%if notcpuflag(ssse3) - packssdw xmm6, xmm6 -%endif - movdq2q m0, xmm0 ; out3 - movdq2q m1, xmm1 ; out0 - movdq2q m2, xmm4 ; out1 -%if notcpuflag(ssse3) - movdq2q m3, xmm6 ; out2 -%endif - SWAP 0, 1, 2, 3 -%endmacro diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm deleted file mode 100644 index 4e7ede2235..0000000000 --- a/libavcodec/x86/vp9lpf.asm +++ /dev/null @@ -1,1211 +0,0 @@ -;****************************************************************************** -;* VP9 loop filter SIMD optimizations -;* -;* Copyright (C) 2013-2014 Clément Bœsch -;* Copyright (C) 2014 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -cextern pb_3 -cextern pb_80 - -pb_4: times 16 db 0x04 -pb_10: times 16 db 0x10 -pb_40: times 16 db 0x40 -pb_81: times 16 db 0x81 -pb_f8: times 16 db 0xf8 -pb_fe: times 16 db 0xfe -pb_ff: times 16 db 0xff - -cextern pw_4 -cextern pw_8 - -; with mix functions, two 8-bit thresholds are stored in a 16-bit storage, -; the following mask is used to splat both in the same register -mask_mix: times 8 db 0 - times 8 db 1 - -mask_mix84: times 8 db 0xff - times 8 db 0x00 -mask_mix48: times 8 db 0x00 - times 8 db 0xff - -SECTION .text - -%macro SCRATCH 3 -%ifdef m8 - SWAP %1, %2 -%else - mova [%3], m%1 -%endif -%endmacro - -%macro UNSCRATCH 3 -%ifdef m8 - SWAP %1, %2 -%else - mova m%1, [%3] -%endif -%endmacro - -; %1 = abs(%2-%3) -%macro ABSSUB 4 ; dst, src1 (RO), src2 (RO), tmp -%ifdef m8 - psubusb %1, %3, %2 - psubusb %4, %2, %3 -%else - mova %1, %3 - mova %4, %2 - psubusb %1, %2 - psubusb %4, %3 -%endif - por %1, %4 -%endmacro - -; %1 = %1>%2 -%macro CMP_GT 2-3 ; src/dst, cmp, pb_80 -%if %0 == 3 - pxor %1, %3 -%endif - pcmpgtb %1, %2 -%endmacro - -; %1 = abs(%2-%3) > %4 -%macro ABSSUB_GT 5-6 [pb_80]; dst, src1, src2, cmp, tmp, [pb_80] - ABSSUB %1, %2, %3, %5 ; dst = abs(src1-src2) - CMP_GT %1, %4, %6 ; dst > cmp -%endmacro - -%macro MASK_APPLY 4 ; %1=new_data/dst %2=old_data %3=mask %4=tmp - pand %1, %3 ; new &= mask - pandn %4, %3, %2 ; tmp = ~mask & old - por %1, %4 ; new&mask | old&~mask -%endmacro - -%macro UNPACK 4 -%ifdef m8 - punpck%1bw %2, %3, %4 -%else - mova %2, %3 - punpck%1bw %2, %4 -%endif -%endmacro - -%macro FILTER_SUBx2_ADDx2 11 ; %1=dst %2=h/l %3=cache %4=stack_off %5=sub1 %6=sub2 %7=add1 - ; %8=add2 %9=rshift, [unpack], [unpack_is_mem_on_x86_32] - psubw %3, [rsp+%4+%5*mmsize*2] - psubw %3, [rsp+%4+%6*mmsize*2] - paddw %3, [rsp+%4+%7*mmsize*2] -%ifnidn %10, "" -%if %11 == 0 - punpck%2bw %1, %10, m0 -%else - UNPACK %2, %1, %10, m0 -%endif - mova [rsp+%4+%8*mmsize*2], %1 - paddw %3, %1 -%else - paddw %3, [rsp+%4+%8*mmsize*2] -%endif - psraw %1, %3, %9 -%endmacro - -; FIXME interleave l/h better (for instruction pairing) -%macro FILTER_INIT 9 ; tmp1, tmp2, cacheL, cacheH, dstp, stack_off, filterid, mask, source - FILTER%7_INIT %1, l, %3, %6 + 0 - FILTER%7_INIT %2, h, %4, %6 + mmsize - packuswb %1, %2 - MASK_APPLY %1, %9, %8, %2 - mova %5, %1 -%endmacro - - -%macro FILTER_UPDATE 12-16 "", "", "", 0 ; tmp1, tmp2, cacheL, cacheH, dstp, stack_off, -, -, +, +, rshift, - ; mask, [source], [unpack + src], [unpack_is_mem_on_x86_32] -; FIXME interleave this properly with the subx2/addx2 -%ifnidn %15, "" -%if %16 == 0 || ARCH_X86_64 - mova %14, %15 -%endif -%endif - FILTER_SUBx2_ADDx2 %1, l, %3, %6 + 0, %7, %8, %9, %10, %11, %14, %16 - FILTER_SUBx2_ADDx2 %2, h, %4, %6 + mmsize, %7, %8, %9, %10, %11, %14, %16 - packuswb %1, %2 -%ifnidn %13, "" - MASK_APPLY %1, %13, %12, %2 -%else - MASK_APPLY %1, %5, %12, %2 -%endif - mova %5, %1 -%endmacro - -%macro SRSHIFT3B_2X 4 ; reg1, reg2, [pb_10], tmp - mova %4, [pb_f8] - pand %1, %4 - pand %2, %4 - psrlq %1, 3 - psrlq %2, 3 - pxor %1, %3 - pxor %2, %3 - psubb %1, %3 - psubb %2, %3 -%endmacro - -%macro EXTRACT_POS_NEG 3 ; i8, neg, pos - pxor %3, %3 - pxor %2, %2 - pcmpgtb %3, %1 ; i8 < 0 mask - psubb %2, %1 ; neg values (only the originally - will be kept) - pand %2, %3 ; negative values of i8 (but stored as +) - pandn %3, %1 ; positive values of i8 -%endmacro - -; clip_u8(u8 + i8) -%macro SIGN_ADD 4 ; dst, u8, i8, tmp1 - EXTRACT_POS_NEG %3, %4, %1 - paddusb %1, %2 ; add the positives - psubusb %1, %4 ; sub the negatives -%endmacro - -; clip_u8(u8 - i8) -%macro SIGN_SUB 4 ; dst, u8, i8, tmp1 - EXTRACT_POS_NEG %3, %1, %4 - paddusb %1, %2 ; add the negatives - psubusb %1, %4 ; sub the positives -%endmacro - -%macro FILTER6_INIT 4 ; %1=dst %2=h/l %3=cache, %4=stack_off - UNPACK %2, %1, rp3, m0 ; p3: B->W - mova [rsp+%4+0*mmsize*2], %1 - paddw %3, %1, %1 ; p3*2 - paddw %3, %1 ; p3*3 - punpck%2bw %1, m1, m0 ; p2: B->W - mova [rsp+%4+1*mmsize*2], %1 - paddw %3, %1 ; p3*3 + p2 - paddw %3, %1 ; p3*3 + p2*2 - UNPACK %2, %1, rp1, m0 ; p1: B->W - mova [rsp+%4+2*mmsize*2], %1 - paddw %3, %1 ; p3*3 + p2*2 + p1 - UNPACK %2, %1, rp0, m0 ; p0: B->W - mova [rsp+%4+3*mmsize*2], %1 - paddw %3, %1 ; p3*3 + p2*2 + p1 + p0 - UNPACK %2, %1, rq0, m0 ; q0: B->W - mova [rsp+%4+4*mmsize*2], %1 - paddw %3, %1 ; p3*3 + p2*2 + p1 + p0 + q0 - paddw %3, [pw_4] ; p3*3 + p2*2 + p1 + p0 + q0 + 4 - psraw %1, %3, 3 ; (p3*3 + p2*2 + p1 + p0 + q0 + 4) >> 3 -%endmacro - -%macro FILTER14_INIT 4 ; %1=dst %2=h/l %3=cache, %4=stack_off - punpck%2bw %1, m2, m0 ; p7: B->W - mova [rsp+%4+ 8*mmsize*2], %1 - psllw %3, %1, 3 ; p7*8 - psubw %3, %1 ; p7*7 - punpck%2bw %1, m3, m0 ; p6: B->W - mova [rsp+%4+ 9*mmsize*2], %1 - paddw %3, %1 ; p7*7 + p6 - paddw %3, %1 ; p7*7 + p6*2 - UNPACK %2, %1, rp5, m0 ; p5: B->W - mova [rsp+%4+10*mmsize*2], %1 - paddw %3, %1 ; p7*7 + p6*2 + p5 - UNPACK %2, %1, rp4, m0 ; p4: B->W - mova [rsp+%4+11*mmsize*2], %1 - paddw %3, %1 ; p7*7 + p6*2 + p5 + p4 - paddw %3, [rsp+%4+ 0*mmsize*2] ; p7*7 + p6*2 + p5 + p4 + p3 - paddw %3, [rsp+%4+ 1*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p2 - paddw %3, [rsp+%4+ 2*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p1 - paddw %3, [rsp+%4+ 3*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p0 - paddw %3, [rsp+%4+ 4*mmsize*2] ; p7*7 + p6*2 + p5 + .. + p0 + q0 - paddw %3, [pw_8] ; p7*7 + p6*2 + p5 + .. + p0 + q0 + 8 - psraw %1, %3, 4 ; (p7*7 + p6*2 + p5 + .. + p0 + q0 + 8) >> 4 -%endmacro - -%macro TRANSPOSE16x16B 17 - mova %17, m%16 - SBUTTERFLY bw, %1, %2, %16 - SBUTTERFLY bw, %3, %4, %16 - SBUTTERFLY bw, %5, %6, %16 - SBUTTERFLY bw, %7, %8, %16 - SBUTTERFLY bw, %9, %10, %16 - SBUTTERFLY bw, %11, %12, %16 - SBUTTERFLY bw, %13, %14, %16 - mova m%16, %17 - mova %17, m%14 - SBUTTERFLY bw, %15, %16, %14 - SBUTTERFLY wd, %1, %3, %14 - SBUTTERFLY wd, %2, %4, %14 - SBUTTERFLY wd, %5, %7, %14 - SBUTTERFLY wd, %6, %8, %14 - SBUTTERFLY wd, %9, %11, %14 - SBUTTERFLY wd, %10, %12, %14 - SBUTTERFLY wd, %13, %15, %14 - mova m%14, %17 - mova %17, m%12 - SBUTTERFLY wd, %14, %16, %12 - SBUTTERFLY dq, %1, %5, %12 - SBUTTERFLY dq, %2, %6, %12 - SBUTTERFLY dq, %3, %7, %12 - SBUTTERFLY dq, %4, %8, %12 - SBUTTERFLY dq, %9, %13, %12 - SBUTTERFLY dq, %10, %14, %12 - SBUTTERFLY dq, %11, %15, %12 - mova m%12, %17 - mova %17, m%8 - SBUTTERFLY dq, %12, %16, %8 - SBUTTERFLY qdq, %1, %9, %8 - SBUTTERFLY qdq, %2, %10, %8 - SBUTTERFLY qdq, %3, %11, %8 - SBUTTERFLY qdq, %4, %12, %8 - SBUTTERFLY qdq, %5, %13, %8 - SBUTTERFLY qdq, %6, %14, %8 - SBUTTERFLY qdq, %7, %15, %8 - mova m%8, %17 - mova %17, m%1 - SBUTTERFLY qdq, %8, %16, %1 - mova m%1, %17 - SWAP %2, %9 - SWAP %3, %5 - SWAP %4, %13 - SWAP %6, %11 - SWAP %8, %15 - SWAP %12, %14 -%endmacro - -%macro TRANSPOSE8x8B 13 - SBUTTERFLY bw, %1, %2, %7 - movdq%10 m%7, %9 - movdqa %11, m%2 - SBUTTERFLY bw, %3, %4, %2 - SBUTTERFLY bw, %5, %6, %2 - SBUTTERFLY bw, %7, %8, %2 - SBUTTERFLY wd, %1, %3, %2 - movdqa m%2, %11 - movdqa %11, m%3 - SBUTTERFLY wd, %2, %4, %3 - SBUTTERFLY wd, %5, %7, %3 - SBUTTERFLY wd, %6, %8, %3 - SBUTTERFLY dq, %1, %5, %3 - SBUTTERFLY dq, %2, %6, %3 - movdqa m%3, %11 - movh %12, m%2 - movhps %13, m%2 - SBUTTERFLY dq, %3, %7, %2 - SBUTTERFLY dq, %4, %8, %2 - SWAP %2, %5 - SWAP %4, %7 -%endmacro - -%macro DEFINE_REAL_P7_TO_Q7 0-1 0 -%define P7 dstq + 4*mstrideq + %1 -%define P6 dstq + mstride3q + %1 -%define P5 dstq + 2*mstrideq + %1 -%define P4 dstq + mstrideq + %1 -%define P3 dstq + %1 -%define P2 dstq + strideq + %1 -%define P1 dstq + 2* strideq + %1 -%define P0 dstq + stride3q + %1 -%define Q0 dstq + 4* strideq + %1 -%define Q1 dst2q + mstride3q + %1 -%define Q2 dst2q + 2*mstrideq + %1 -%define Q3 dst2q + mstrideq + %1 -%define Q4 dst2q + %1 -%define Q5 dst2q + strideq + %1 -%define Q6 dst2q + 2* strideq + %1 -%define Q7 dst2q + stride3q + %1 -%endmacro - -%macro DEFINE_TRANSPOSED_P7_TO_Q7 0-1 0 -%define P3 rsp + 0*mmsize + %1 -%define P2 rsp + 1*mmsize + %1 -%define P1 rsp + 2*mmsize + %1 -%define P0 rsp + 3*mmsize + %1 -%define Q0 rsp + 4*mmsize + %1 -%define Q1 rsp + 5*mmsize + %1 -%define Q2 rsp + 6*mmsize + %1 -%define Q3 rsp + 7*mmsize + %1 -%if mmsize == 16 -%define P7 rsp + 8*mmsize + %1 -%define P6 rsp + 9*mmsize + %1 -%define P5 rsp + 10*mmsize + %1 -%define P4 rsp + 11*mmsize + %1 -%define Q4 rsp + 12*mmsize + %1 -%define Q5 rsp + 13*mmsize + %1 -%define Q6 rsp + 14*mmsize + %1 -%define Q7 rsp + 15*mmsize + %1 -%endif -%endmacro - -; ..............AB -> AAAAAAAABBBBBBBB -%macro SPLATB_MIX 1-2 [mask_mix] -%if cpuflag(ssse3) - pshufb %1, %2 -%else - punpcklbw %1, %1 - punpcklwd %1, %1 - punpckldq %1, %1 -%endif -%endmacro - -%macro LOOPFILTER 5 ; %1=v/h %2=size1 %3+%4=stack, %5=mmx/32bit stack only -%assign %%ext 0 -%if ARCH_X86_32 || mmsize == 8 -%assign %%ext %5 -%endif - -%if UNIX64 -cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 5, 9, 16, %3 + %4 + %%ext, dst, stride, E, I, H, mstride, dst2, stride3, mstride3 -%else -%if WIN64 -cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 4, 8, 16, %3 + %4 + %%ext, dst, stride, E, I, mstride, dst2, stride3, mstride3 -%else -cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride, mstride, dst2, stride3, mstride3 -%define Ed dword r2m -%define Id dword r3m -%endif -%define Hd dword r4m -%endif - - mov mstrideq, strideq - neg mstrideq - - lea stride3q, [strideq*3] - lea mstride3q, [mstrideq*3] - -%ifidn %1, h -%if %2 != 16 -%if mmsize == 16 -%define movx movh -%else -%define movx mova -%endif - lea dstq, [dstq + 4*strideq - 4] -%else -%define movx movu - lea dstq, [dstq + 4*strideq - 8] ; go from top center (h pos) to center left (v pos) -%endif -%else - lea dstq, [dstq + 4*mstrideq] -%endif - ; FIXME we shouldn't need two dts registers if mmsize == 8 - lea dst2q, [dstq + 8*strideq] - - DEFINE_REAL_P7_TO_Q7 - -%ifidn %1, h - movx m0, [P7] - movx m1, [P6] - movx m2, [P5] - movx m3, [P4] - movx m4, [P3] - movx m5, [P2] -%if (ARCH_X86_64 && mmsize == 16) || %2 > 16 - movx m6, [P1] -%endif - movx m7, [P0] -%ifdef m8 - movx m8, [Q0] - movx m9, [Q1] - movx m10, [Q2] - movx m11, [Q3] - movx m12, [Q4] - movx m13, [Q5] - movx m14, [Q6] - movx m15, [Q7] - DEFINE_TRANSPOSED_P7_TO_Q7 -%if %2 == 16 - TRANSPOSE16x16B 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, [rsp] - mova [P7], m0 - mova [P6], m1 - mova [P5], m2 - mova [P4], m3 -%else ; %2 == 44/48/84/88 - ; 8x16 transpose - punpcklbw m0, m1 - punpcklbw m2, m3 - punpcklbw m4, m5 - punpcklbw m6, m7 - punpcklbw m8, m9 - punpcklbw m10, m11 - punpcklbw m12, m13 - punpcklbw m14, m15 - TRANSPOSE8x8W 0, 2, 4, 6, 8, 10, 12, 14, 15 - SWAP 0, 4 - SWAP 2, 5 - SWAP 0, 6 - SWAP 0, 7 - SWAP 10, 9 - SWAP 12, 10 - SWAP 14, 11 -%endif ; %2 - mova [P3], m4 - mova [P2], m5 - mova [P1], m6 - mova [P0], m7 - mova [Q0], m8 - mova [Q1], m9 - mova [Q2], m10 - mova [Q3], m11 -%if %2 == 16 - mova [Q4], m12 - mova [Q5], m13 - mova [Q6], m14 - mova [Q7], m15 -%endif ; %2 -%else ; x86-32 -%if %2 == 16 - TRANSPOSE8x8B 0, 1, 2, 3, 4, 5, 6, 7, [P1], u, [rsp+%3+%4], [rsp+64], [rsp+80] - DEFINE_TRANSPOSED_P7_TO_Q7 - movh [P7], m0 - movh [P5], m1 - movh [P3], m2 - movh [P1], m3 - movh [Q2], m5 - movh [Q4], m6 - movh [Q6], m7 - movhps [P6], m0 - movhps [P4], m1 - movhps [P2], m2 - movhps [P0], m3 - movhps [Q3], m5 - movhps [Q5], m6 - movhps [Q7], m7 - DEFINE_REAL_P7_TO_Q7 - movx m0, [Q0] - movx m1, [Q1] - movx m2, [Q2] - movx m3, [Q3] - movx m4, [Q4] - movx m5, [Q5] - movx m7, [Q7] - TRANSPOSE8x8B 0, 1, 2, 3, 4, 5, 6, 7, [Q6], u, [rsp+%3+%4], [rsp+72], [rsp+88] - DEFINE_TRANSPOSED_P7_TO_Q7 8 - movh [P7], m0 - movh [P5], m1 - movh [P3], m2 - movh [P1], m3 - movh [Q2], m5 - movh [Q4], m6 - movh [Q6], m7 - movhps [P6], m0 - movhps [P4], m1 - movhps [P2], m2 - movhps [P0], m3 - movhps [Q3], m5 - movhps [Q5], m6 - movhps [Q7], m7 - DEFINE_TRANSPOSED_P7_TO_Q7 -%elif %2 > 16 ; %2 == 44/48/84/88 - punpcklbw m0, m1 - punpcklbw m2, m3 - punpcklbw m4, m5 - punpcklbw m6, m7 - movx m1, [Q0] - movx m3, [Q1] - movx m5, [Q2] - movx m7, [Q3] - punpcklbw m1, m3 - punpcklbw m5, m7 - movx m3, [Q4] - movx m7, [Q5] - punpcklbw m3, m7 - mova [rsp], m3 - movx m3, [Q6] - movx m7, [Q7] - punpcklbw m3, m7 - DEFINE_TRANSPOSED_P7_TO_Q7 - TRANSPOSE8x8W 0, 2, 4, 6, 1, 5, 7, 3, [rsp], [Q0], 1 - mova [P3], m0 - mova [P2], m2 - mova [P1], m4 - mova [P0], m6 - mova [Q1], m5 - mova [Q2], m7 - mova [Q3], m3 -%else ; %2 == 4 || %2 == 8 - SBUTTERFLY bw, 0, 1, 6 - SBUTTERFLY bw, 2, 3, 6 - SBUTTERFLY bw, 4, 5, 6 - mova [rsp+4*mmsize], m5 - mova m6, [P1] - SBUTTERFLY bw, 6, 7, 5 - DEFINE_TRANSPOSED_P7_TO_Q7 - TRANSPOSE4x4W 0, 2, 4, 6, 5 - mova [P3], m0 - mova [P2], m2 - mova [P1], m4 - mova [P0], m6 - mova m5, [rsp+4*mmsize] - TRANSPOSE4x4W 1, 3, 5, 7, 0 - mova [Q0], m1 - mova [Q1], m3 - mova [Q2], m5 - mova [Q3], m7 -%endif ; %2 -%endif ; x86-32/64 -%endif ; %1 == h - - ; calc fm mask -%if %2 == 16 || mmsize == 8 -%if cpuflag(ssse3) - pxor m0, m0 -%endif - SPLATB_REG m2, I, m0 ; I I I I ... - SPLATB_REG m3, E, m0 ; E E E E ... -%else -%if cpuflag(ssse3) - mova m0, [mask_mix] -%endif - movd m2, Id - movd m3, Ed - SPLATB_MIX m2, m0 - SPLATB_MIX m3, m0 -%endif - mova m0, [pb_80] - pxor m2, m0 - pxor m3, m0 -%ifdef m8 -%ifidn %1, v - mova m8, [P3] - mova m9, [P2] - mova m10, [P1] - mova m11, [P0] - mova m12, [Q0] - mova m13, [Q1] - mova m14, [Q2] - mova m15, [Q3] -%else - ; In case of horizontal, P3..Q3 are already present in some registers due - ; to the previous transpose, so we just swap registers. - SWAP 8, 4, 12 - SWAP 9, 5, 13 - SWAP 10, 6, 14 - SWAP 11, 7, 15 -%endif -%define rp3 m8 -%define rp2 m9 -%define rp1 m10 -%define rp0 m11 -%define rq0 m12 -%define rq1 m13 -%define rq2 m14 -%define rq3 m15 -%else -%define rp3 [P3] -%define rp2 [P2] -%define rp1 [P1] -%define rp0 [P0] -%define rq0 [Q0] -%define rq1 [Q1] -%define rq2 [Q2] -%define rq3 [Q3] -%endif - ABSSUB_GT m5, rp3, rp2, m2, m7, m0 ; m5 = abs(p3-p2) <= I - ABSSUB_GT m1, rp2, rp1, m2, m7, m0 ; m1 = abs(p2-p1) <= I - por m5, m1 - ABSSUB_GT m1, rp1, rp0, m2, m7, m0 ; m1 = abs(p1-p0) <= I - por m5, m1 - ABSSUB_GT m1, rq0, rq1, m2, m7, m0 ; m1 = abs(q1-q0) <= I - por m5, m1 - ABSSUB_GT m1, rq1, rq2, m2, m7, m0 ; m1 = abs(q2-q1) <= I - por m5, m1 - ABSSUB_GT m1, rq2, rq3, m2, m7, m0 ; m1 = abs(q3-q2) <= I - por m5, m1 - ABSSUB m1, rp0, rq0, m7 ; abs(p0-q0) - paddusb m1, m1 ; abs(p0-q0) * 2 - ABSSUB m2, rp1, rq1, m7 ; abs(p1-q1) - pand m2, [pb_fe] ; drop lsb so shift can work - psrlq m2, 1 ; abs(p1-q1)/2 - paddusb m1, m2 ; abs(p0-q0)*2 + abs(p1-q1)/2 - pxor m1, m0 - pcmpgtb m1, m3 - por m1, m5 ; fm final value - SWAP 1, 3 - pxor m3, [pb_ff] - - ; (m3: fm, m8..15: p3 p2 p1 p0 q0 q1 q2 q3) - ; calc flat8in (if not 44_16) and hev masks -%if %2 != 44 && %2 != 4 - mova m6, [pb_81] ; [1 1 1 1 ...] ^ 0x80 - ABSSUB_GT m2, rp3, rp0, m6, m5 ; abs(p3 - p0) <= 1 -%ifdef m8 - mova m8, [pb_80] -%define rb80 m8 -%else -%define rb80 [pb_80] -%endif - ABSSUB_GT m1, rp2, rp0, m6, m5, rb80 ; abs(p2 - p0) <= 1 - por m2, m1 - ABSSUB m4, rp1, rp0, m5 ; abs(p1 - p0) -%if %2 <= 16 -%if cpuflag(ssse3) - pxor m0, m0 -%endif - SPLATB_REG m7, H, m0 ; H H H H ... -%else - movd m7, Hd - SPLATB_MIX m7 -%endif - pxor m7, rb80 - pxor m4, rb80 - pcmpgtb m0, m4, m7 ; abs(p1 - p0) > H (1/2 hev condition) - CMP_GT m4, m6 ; abs(p1 - p0) <= 1 - por m2, m4 ; (flat8in) - ABSSUB m4, rq1, rq0, m1 ; abs(q1 - q0) - pxor m4, rb80 - pcmpgtb m5, m4, m7 ; abs(q1 - q0) > H (2/2 hev condition) - por m0, m5 ; hev final value - CMP_GT m4, m6 ; abs(q1 - q0) <= 1 - por m2, m4 ; (flat8in) - ABSSUB_GT m1, rq2, rq0, m6, m5, rb80 ; abs(q2 - q0) <= 1 - por m2, m1 - ABSSUB_GT m1, rq3, rq0, m6, m5, rb80 ; abs(q3 - q0) <= 1 - por m2, m1 ; flat8in final value - pxor m2, [pb_ff] -%if %2 == 84 || %2 == 48 - pand m2, [mask_mix%2] -%endif -%else - mova m6, [pb_80] -%if %2 == 44 - movd m7, Hd - SPLATB_MIX m7 -%else -%if cpuflag(ssse3) - pxor m0, m0 -%endif - SPLATB_REG m7, H, m0 ; H H H H ... -%endif - pxor m7, m6 - ABSSUB m4, rp1, rp0, m1 ; abs(p1 - p0) - pxor m4, m6 - pcmpgtb m0, m4, m7 ; abs(p1 - p0) > H (1/2 hev condition) - ABSSUB m4, rq1, rq0, m1 ; abs(q1 - q0) - pxor m4, m6 - pcmpgtb m5, m4, m7 ; abs(q1 - q0) > H (2/2 hev condition) - por m0, m5 ; hev final value -%endif - -%if %2 == 16 - ; (m0: hev, m2: flat8in, m3: fm, m6: pb_81, m9..15: p2 p1 p0 q0 q1 q2 q3) - ; calc flat8out mask -%ifdef m8 - mova m8, [P7] - mova m9, [P6] -%define rp7 m8 -%define rp6 m9 -%else -%define rp7 [P7] -%define rp6 [P6] -%endif - ABSSUB_GT m1, rp7, rp0, m6, m5 ; abs(p7 - p0) <= 1 - ABSSUB_GT m7, rp6, rp0, m6, m5 ; abs(p6 - p0) <= 1 - por m1, m7 -%ifdef m8 - mova m8, [P5] - mova m9, [P4] -%define rp5 m8 -%define rp4 m9 -%else -%define rp5 [P5] -%define rp4 [P4] -%endif - ABSSUB_GT m7, rp5, rp0, m6, m5 ; abs(p5 - p0) <= 1 - por m1, m7 - ABSSUB_GT m7, rp4, rp0, m6, m5 ; abs(p4 - p0) <= 1 - por m1, m7 -%ifdef m8 - mova m14, [Q4] - mova m15, [Q5] -%define rq4 m14 -%define rq5 m15 -%else -%define rq4 [Q4] -%define rq5 [Q5] -%endif - ABSSUB_GT m7, rq4, rq0, m6, m5 ; abs(q4 - q0) <= 1 - por m1, m7 - ABSSUB_GT m7, rq5, rq0, m6, m5 ; abs(q5 - q0) <= 1 - por m1, m7 -%ifdef m8 - mova m14, [Q6] - mova m15, [Q7] -%define rq6 m14 -%define rq7 m15 -%else -%define rq6 [Q6] -%define rq7 [Q7] -%endif - ABSSUB_GT m7, rq6, rq0, m6, m5 ; abs(q4 - q0) <= 1 - por m1, m7 - ABSSUB_GT m7, rq7, rq0, m6, m5 ; abs(q5 - q0) <= 1 - por m1, m7 ; flat8out final value - pxor m1, [pb_ff] -%endif - - ; if (fm) { - ; if (out && in) filter_14() - ; else if (in) filter_6() - ; else if (hev) filter_2() - ; else filter_4() - ; } - ; - ; f14: fm & out & in - ; f6: fm & ~f14 & in => fm & ~(out & in) & in => fm & ~out & in - ; f2: fm & ~f14 & ~f6 & hev => fm & ~(out & in) & ~(~out & in) & hev => fm & ~in & hev - ; f4: fm & ~f14 & ~f6 & ~f2 => fm & ~(out & in) & ~(~out & in) & ~(~in & hev) => fm & ~in & ~hev - - ; (m0: hev, [m1: flat8out], [m2: flat8in], m3: fm, m8..15: p5 p4 p1 p0 q0 q1 q6 q7) - ; filter2() -%if %2 != 44 && %2 != 4 - mova m6, [pb_80] ; already in m6 if 44_16 - SCRATCH 2, 15, rsp+%3+%4 -%if %2 == 16 - SCRATCH 1, 8, rsp+%3+%4+16 -%endif -%endif - pxor m2, m6, rq0 ; q0 ^ 0x80 - pxor m4, m6, rp0 ; p0 ^ 0x80 - psubsb m2, m4 ; (signed) q0 - p0 - pxor m4, m6, rp1 ; p1 ^ 0x80 - pxor m5, m6, rq1 ; q1 ^ 0x80 - psubsb m4, m5 ; (signed) p1 - q1 - paddsb m4, m2 ; (q0 - p0) + (p1 - q1) - paddsb m4, m2 ; 2*(q0 - p0) + (p1 - q1) - paddsb m4, m2 ; 3*(q0 - p0) + (p1 - q1) - paddsb m6, m4, [pb_4] ; m6: f1 = clip(f + 4, 127) - paddsb m4, [pb_3] ; m4: f2 = clip(f + 3, 127) -%ifdef m8 - mova m14, [pb_10] ; will be reused in filter4() -%define rb10 m14 -%else -%define rb10 [pb_10] -%endif - SRSHIFT3B_2X m6, m4, rb10, m7 ; f1 and f2 sign byte shift by 3 - SIGN_SUB m7, rq0, m6, m5 ; m7 = q0 - f1 - SIGN_ADD m1, rp0, m4, m5 ; m1 = p0 + f2 -%if %2 != 44 && %2 != 4 -%ifdef m8 - pandn m6, m15, m3 ; ~mask(in) & mask(fm) -%else - mova m6, [rsp+%3+%4] - pandn m6, m3 -%endif - pand m6, m0 ; (~mask(in) & mask(fm)) & mask(hev) -%else - pand m6, m3, m0 -%endif - MASK_APPLY m7, rq0, m6, m5 ; m7 = filter2(q0) & mask / we write it in filter4() - MASK_APPLY m1, rp0, m6, m5 ; m1 = filter2(p0) & mask / we write it in filter4() - - ; (m0: hev, m1: p0', m2: q0-p0, m3: fm, m7: q0', [m8: flat8out], m10..13: p1 p0 q0 q1, m14: pb_10, [m15: flat8in], ) - ; filter4() - mova m4, m2 - paddsb m2, m4 ; 2 * (q0 - p0) - paddsb m2, m4 ; 3 * (q0 - p0) - paddsb m6, m2, [pb_4] ; m6: f1 = clip(f + 4, 127) - paddsb m2, [pb_3] ; m2: f2 = clip(f + 3, 127) - SRSHIFT3B_2X m6, m2, rb10, m4 ; f1 and f2 sign byte shift by 3 -%if %2 != 44 && %2 != 4 -%ifdef m8 - pandn m5, m15, m3 ; ~mask(in) & mask(fm) -%else - mova m5, [rsp+%3+%4] - pandn m5, m3 -%endif - pandn m0, m5 ; ~mask(hev) & (~mask(in) & mask(fm)) -%else - pandn m0, m3 -%endif - SIGN_SUB m5, rq0, m6, m4 ; q0 - f1 - MASK_APPLY m5, m7, m0, m4 ; filter4(q0) & mask - mova [Q0], m5 - SIGN_ADD m7, rp0, m2, m4 ; p0 + f2 - MASK_APPLY m7, m1, m0, m4 ; filter4(p0) & mask - mova [P0], m7 - paddb m6, [pb_80] ; - pxor m1, m1 ; f=(f1+1)>>1 - pavgb m6, m1 ; - psubb m6, [pb_40] ; - SIGN_ADD m1, rp1, m6, m2 ; p1 + f - SIGN_SUB m4, rq1, m6, m2 ; q1 - f - MASK_APPLY m1, rp1, m0, m2 ; m1 = filter4(p1) - MASK_APPLY m4, rq1, m0, m2 ; m4 = filter4(q1) - mova [P1], m1 - mova [Q1], m4 - -%if %2 != 44 && %2 != 4 - UNSCRATCH 2, 15, rsp+%3+%4 -%endif - - ; ([m1: flat8out], m2: flat8in, m3: fm, m10..13: p1 p0 q0 q1) - ; filter6() -%if %2 != 44 && %2 != 4 - pxor m0, m0 -%if %2 != 16 - pand m3, m2 -%else - pand m2, m3 ; mask(fm) & mask(in) -%ifdef m8 - pandn m3, m8, m2 ; ~mask(out) & (mask(fm) & mask(in)) -%else - mova m3, [rsp+%3+%4+16] - pandn m3, m2 -%endif -%endif -%ifdef m8 - mova m14, [P3] - mova m9, [Q3] -%define rp3 m14 -%define rq3 m9 -%else -%define rp3 [P3] -%define rq3 [Q3] -%endif - mova m1, [P2] - FILTER_INIT m4, m5, m6, m7, [P2], %4, 6, m3, m1 ; [p2] - mova m1, [Q2] - FILTER_UPDATE m4, m5, m6, m7, [P1], %4, 0, 1, 2, 5, 3, m3, "", rq1, "", 1 ; [p1] -p3 -p2 +p1 +q1 - FILTER_UPDATE m4, m5, m6, m7, [P0], %4, 0, 2, 3, 6, 3, m3, "", m1 ; [p0] -p3 -p1 +p0 +q2 - FILTER_UPDATE m4, m5, m6, m7, [Q0], %4, 0, 3, 4, 7, 3, m3, "", rq3, "", 1 ; [q0] -p3 -p0 +q0 +q3 - FILTER_UPDATE m4, m5, m6, m7, [Q1], %4, 1, 4, 5, 7, 3, m3, "" ; [q1] -p2 -q0 +q1 +q3 - FILTER_UPDATE m4, m5, m6, m7, [Q2], %4, 2, 5, 6, 7, 3, m3, m1 ; [q2] -p1 -q1 +q2 +q3 -%endif - -%if %2 == 16 - UNSCRATCH 1, 8, rsp+%3+%4+16 -%endif - - ; (m0: 0, [m1: flat8out], m2: fm & flat8in, m8..15: q2 q3 p1 p0 q0 q1 p3 p2) - ; filter14() - ; - ; m2 m3 m8 m9 m14 m15 m10 m11 m12 m13 - ; - ; q2 q3 p3 p2 p1 p0 q0 q1 - ; p6 -7 p7 p6 p5 p4 . . . . . - ; p5 -6 -p7 -p6 +p5 +q1 . . . . - ; p4 -5 -p7 -p5 +p4 +q2 . . . q2 - ; p3 -4 -p7 -p4 +p3 +q3 . . . q3 - ; p2 -3 -p7 -p3 +p2 +q4 . . . q4 - ; p1 -2 -p7 -p2 +p1 +q5 . . . q5 - ; p0 -1 -p7 -p1 +p0 +q6 . . . q6 - ; q0 +0 -p7 -p0 +q0 +q7 . . . q7 - ; q1 +1 -p6 -q0 +q1 +q7 q1 . . . - ; q2 +2 -p5 -q1 +q2 +q7 . q2 . . - ; q3 +3 -p4 -q2 +q3 +q7 . q3 . . - ; q4 +4 -p3 -q3 +q4 +q7 . q4 . . - ; q5 +5 -p2 -q4 +q5 +q7 . q5 . . - ; q6 +6 -p1 -q5 +q6 +q7 . q6 . . - -%if %2 == 16 - pand m1, m2 ; mask(out) & (mask(fm) & mask(in)) - mova m2, [P7] - mova m3, [P6] -%ifdef m8 - mova m8, [P5] - mova m9, [P4] -%define rp5 m8 -%define rp4 m9 -%define rp5s m8 -%define rp4s m9 -%define rp3s m14 -%define rq4 m8 -%define rq5 m9 -%define rq6 m14 -%define rq7 m15 -%define rq4s m8 -%define rq5s m9 -%define rq6s m14 -%else -%define rp5 [P5] -%define rp4 [P4] -%define rp5s "" -%define rp4s "" -%define rp3s "" -%define rq4 [Q4] -%define rq5 [Q5] -%define rq6 [Q6] -%define rq7 [Q7] -%define rq4s "" -%define rq5s "" -%define rq6s "" -%endif - FILTER_INIT m4, m5, m6, m7, [P6], %4, 14, m1, m3 ; [p6] - FILTER_UPDATE m4, m5, m6, m7, [P5], %4, 8, 9, 10, 5, 4, m1, rp5s ; [p5] -p7 -p6 +p5 +q1 - FILTER_UPDATE m4, m5, m6, m7, [P4], %4, 8, 10, 11, 6, 4, m1, rp4s ; [p4] -p7 -p5 +p4 +q2 - FILTER_UPDATE m4, m5, m6, m7, [P3], %4, 8, 11, 0, 7, 4, m1, rp3s ; [p3] -p7 -p4 +p3 +q3 - FILTER_UPDATE m4, m5, m6, m7, [P2], %4, 8, 0, 1, 12, 4, m1, "", rq4, [Q4], 1 ; [p2] -p7 -p3 +p2 +q4 - FILTER_UPDATE m4, m5, m6, m7, [P1], %4, 8, 1, 2, 13, 4, m1, "", rq5, [Q5], 1 ; [p1] -p7 -p2 +p1 +q5 - FILTER_UPDATE m4, m5, m6, m7, [P0], %4, 8, 2, 3, 14, 4, m1, "", rq6, [Q6], 1 ; [p0] -p7 -p1 +p0 +q6 - FILTER_UPDATE m4, m5, m6, m7, [Q0], %4, 8, 3, 4, 15, 4, m1, "", rq7, [Q7], 1 ; [q0] -p7 -p0 +q0 +q7 - FILTER_UPDATE m4, m5, m6, m7, [Q1], %4, 9, 4, 5, 15, 4, m1, "" ; [q1] -p6 -q0 +q1 +q7 - FILTER_UPDATE m4, m5, m6, m7, [Q2], %4, 10, 5, 6, 15, 4, m1, "" ; [q2] -p5 -q1 +q2 +q7 - FILTER_UPDATE m4, m5, m6, m7, [Q3], %4, 11, 6, 7, 15, 4, m1, "" ; [q3] -p4 -q2 +q3 +q7 - FILTER_UPDATE m4, m5, m6, m7, [Q4], %4, 0, 7, 12, 15, 4, m1, rq4s ; [q4] -p3 -q3 +q4 +q7 - FILTER_UPDATE m4, m5, m6, m7, [Q5], %4, 1, 12, 13, 15, 4, m1, rq5s ; [q5] -p2 -q4 +q5 +q7 - FILTER_UPDATE m4, m5, m6, m7, [Q6], %4, 2, 13, 14, 15, 4, m1, rq6s ; [q6] -p1 -q5 +q6 +q7 -%endif - -%ifidn %1, h -%if %2 == 16 - mova m0, [P7] - mova m1, [P6] - mova m2, [P5] - mova m3, [P4] - mova m4, [P3] - mova m5, [P2] -%if ARCH_X86_64 - mova m6, [P1] -%endif - mova m7, [P0] -%if ARCH_X86_64 - mova m8, [Q0] - mova m9, [Q1] - mova m10, [Q2] - mova m11, [Q3] - mova m12, [Q4] - mova m13, [Q5] - mova m14, [Q6] - mova m15, [Q7] - TRANSPOSE16x16B 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, [rsp] - DEFINE_REAL_P7_TO_Q7 - movu [P7], m0 - movu [P6], m1 - movu [P5], m2 - movu [P4], m3 - movu [P3], m4 - movu [P2], m5 - movu [P1], m6 - movu [P0], m7 - movu [Q0], m8 - movu [Q1], m9 - movu [Q2], m10 - movu [Q3], m11 - movu [Q4], m12 - movu [Q5], m13 - movu [Q6], m14 - movu [Q7], m15 -%else - DEFINE_REAL_P7_TO_Q7 - TRANSPOSE8x8B 0, 1, 2, 3, 4, 5, 6, 7, [rsp+32], a, [rsp+%3+%4], [Q0], [Q1] - movh [P7], m0 - movh [P5], m1 - movh [P3], m2 - movh [P1], m3 - movh [Q2], m5 - movh [Q4], m6 - movh [Q6], m7 - movhps [P6], m0 - movhps [P4], m1 - movhps [P2], m2 - movhps [P0], m3 - movhps [Q3], m5 - movhps [Q5], m6 - movhps [Q7], m7 - DEFINE_TRANSPOSED_P7_TO_Q7 - mova m0, [Q0] - mova m1, [Q1] - mova m2, [Q2] - mova m3, [Q3] - mova m4, [Q4] - mova m5, [Q5] - mova m7, [Q7] - DEFINE_REAL_P7_TO_Q7 8 - TRANSPOSE8x8B 0, 1, 2, 3, 4, 5, 6, 7, [rsp+224], a, [rsp+%3+%4], [Q0], [Q1] - movh [P7], m0 - movh [P5], m1 - movh [P3], m2 - movh [P1], m3 - movh [Q2], m5 - movh [Q4], m6 - movh [Q6], m7 - movhps [P6], m0 - movhps [P4], m1 - movhps [P2], m2 - movhps [P0], m3 - movhps [Q3], m5 - movhps [Q5], m6 - movhps [Q7], m7 -%endif -%elif %2 == 44 || %2 == 4 - SWAP 0, 1 ; m0 = p1 - SWAP 1, 7 ; m1 = p0 - SWAP 2, 5 ; m2 = q0 - SWAP 3, 4 ; m3 = q1 - DEFINE_REAL_P7_TO_Q7 2 - SBUTTERFLY bw, 0, 1, 4 - SBUTTERFLY bw, 2, 3, 4 - SBUTTERFLY wd, 0, 2, 4 - SBUTTERFLY wd, 1, 3, 4 -%if mmsize == 16 - movd [P7], m0 - movd [P3], m2 - movd [Q0], m1 - movd [Q4], m3 - psrldq m0, 4 - psrldq m1, 4 - psrldq m2, 4 - psrldq m3, 4 - movd [P6], m0 - movd [P2], m2 - movd [Q1], m1 - movd [Q5], m3 - psrldq m0, 4 - psrldq m1, 4 - psrldq m2, 4 - psrldq m3, 4 - movd [P5], m0 - movd [P1], m2 - movd [Q2], m1 - movd [Q6], m3 - psrldq m0, 4 - psrldq m1, 4 - psrldq m2, 4 - psrldq m3, 4 - movd [P4], m0 - movd [P0], m2 - movd [Q3], m1 - movd [Q7], m3 -%else - movd [P7], m0 - movd [P5], m2 - movd [P3], m1 - movd [P1], m3 - psrlq m0, 32 - psrlq m2, 32 - psrlq m1, 32 - psrlq m3, 32 - movd [P6], m0 - movd [P4], m2 - movd [P2], m1 - movd [P0], m3 -%endif -%else - ; the following code do a transpose of 8 full lines to 16 half - ; lines (high part). It is inlined to avoid the need of a staging area - mova m0, [P3] - mova m1, [P2] - mova m2, [P1] - mova m3, [P0] - mova m4, [Q0] - mova m5, [Q1] -%ifdef m8 - mova m6, [Q2] -%endif - mova m7, [Q3] - DEFINE_REAL_P7_TO_Q7 -%ifdef m8 - SBUTTERFLY bw, 0, 1, 8 - SBUTTERFLY bw, 2, 3, 8 - SBUTTERFLY bw, 4, 5, 8 - SBUTTERFLY bw, 6, 7, 8 - SBUTTERFLY wd, 0, 2, 8 - SBUTTERFLY wd, 1, 3, 8 - SBUTTERFLY wd, 4, 6, 8 - SBUTTERFLY wd, 5, 7, 8 - SBUTTERFLY dq, 0, 4, 8 - SBUTTERFLY dq, 1, 5, 8 - SBUTTERFLY dq, 2, 6, 8 - SBUTTERFLY dq, 3, 7, 8 -%else - SBUTTERFLY bw, 0, 1, 6 - mova [rsp+mmsize*4], m1 - mova m6, [rsp+mmsize*6] - SBUTTERFLY bw, 2, 3, 1 - SBUTTERFLY bw, 4, 5, 1 - SBUTTERFLY bw, 6, 7, 1 - SBUTTERFLY wd, 0, 2, 1 - mova [rsp+mmsize*6], m2 - mova m1, [rsp+mmsize*4] - SBUTTERFLY wd, 1, 3, 2 - SBUTTERFLY wd, 4, 6, 2 - SBUTTERFLY wd, 5, 7, 2 - SBUTTERFLY dq, 0, 4, 2 - SBUTTERFLY dq, 1, 5, 2 -%if mmsize == 16 - movh [Q0], m1 - movhps [Q1], m1 -%else - mova [P3], m1 -%endif - mova m2, [rsp+mmsize*6] - SBUTTERFLY dq, 2, 6, 1 - SBUTTERFLY dq, 3, 7, 1 -%endif - SWAP 3, 6 - SWAP 1, 4 -%if mmsize == 16 - movh [P7], m0 - movhps [P6], m0 - movh [P5], m1 - movhps [P4], m1 - movh [P3], m2 - movhps [P2], m2 - movh [P1], m3 - movhps [P0], m3 -%ifdef m8 - movh [Q0], m4 - movhps [Q1], m4 -%endif - movh [Q2], m5 - movhps [Q3], m5 - movh [Q4], m6 - movhps [Q5], m6 - movh [Q6], m7 - movhps [Q7], m7 -%else - mova [P7], m0 - mova [P6], m1 - mova [P5], m2 - mova [P4], m3 - mova [P2], m5 - mova [P1], m6 - mova [P0], m7 -%endif -%endif -%endif - - RET -%endmacro - -%macro LPF_16_VH 5 -INIT_XMM %5 -LOOPFILTER v, %1, %2, 0, %4 -LOOPFILTER h, %1, %2, %3, %4 -%endmacro - -%macro LPF_16_VH_ALL_OPTS 4 -LPF_16_VH %1, %2, %3, %4, sse2 -LPF_16_VH %1, %2, %3, %4, ssse3 -LPF_16_VH %1, %2, %3, %4, avx -%endmacro - -LPF_16_VH_ALL_OPTS 16, 512, 256, 32 -LPF_16_VH_ALL_OPTS 44, 0, 128, 0 -LPF_16_VH_ALL_OPTS 48, 256, 128, 16 -LPF_16_VH_ALL_OPTS 84, 256, 128, 16 -LPF_16_VH_ALL_OPTS 88, 256, 128, 16 - -INIT_MMX mmxext -LOOPFILTER v, 4, 0, 0, 0 -LOOPFILTER h, 4, 0, 64, 0 -LOOPFILTER v, 8, 128, 0, 8 -LOOPFILTER h, 8, 128, 64, 8 diff --git a/libavcodec/x86/vp9lpf_16bpp.asm b/libavcodec/x86/vp9lpf_16bpp.asm deleted file mode 100644 index c0888170c9..0000000000 --- a/libavcodec/x86/vp9lpf_16bpp.asm +++ /dev/null @@ -1,823 +0,0 @@ -;****************************************************************************** -;* VP9 loop filter SIMD optimizations -;* -;* Copyright (C) 2015 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_511: times 16 dw 511 -pw_2047: times 16 dw 2047 -pw_16384: times 16 dw 16384 -pw_m512: times 16 dw -512 -pw_m2048: times 16 dw -2048 - -cextern pw_1 -cextern pw_3 -cextern pw_4 -cextern pw_8 -cextern pw_16 -cextern pw_256 -cextern pw_1023 -cextern pw_4095 -cextern pw_m1 - -SECTION .text - -%macro SCRATCH 3-4 -%if ARCH_X86_64 - SWAP %1, %2 -%if %0 == 4 -%define reg_%4 m%2 -%endif -%else - mova [%3], m%1 -%if %0 == 4 -%define reg_%4 [%3] -%endif -%endif -%endmacro - -%macro UNSCRATCH 3-4 -%if ARCH_X86_64 - SWAP %1, %2 -%else - mova m%1, [%3] -%endif -%if %0 == 4 -%undef reg_%4 -%endif -%endmacro - -%macro PRELOAD 2-3 -%if ARCH_X86_64 - mova m%1, [%2] -%if %0 == 3 -%define reg_%3 m%1 -%endif -%elif %0 == 3 -%define reg_%3 [%2] -%endif -%endmacro - -; calculate p or q portion of flat8out -%macro FLAT8OUT_HALF 0 - psubw m4, m0 ; q4-q0 - psubw m5, m0 ; q5-q0 - psubw m6, m0 ; q6-q0 - psubw m7, m0 ; q7-q0 - ABS2 m4, m5, m2, m3 ; abs(q4-q0) | abs(q5-q0) - ABS2 m6, m7, m2, m3 ; abs(q6-q0) | abs(q7-q0) - pcmpgtw m4, reg_F ; abs(q4-q0) > F - pcmpgtw m5, reg_F ; abs(q5-q0) > F - pcmpgtw m6, reg_F ; abs(q6-q0) > F - pcmpgtw m7, reg_F ; abs(q7-q0) > F - por m5, m4 - por m7, m6 - por m7, m5 ; !flat8out, q portion -%endmacro - -; calculate p or q portion of flat8in/hev/fm (excluding mb_edge condition) -%macro FLAT8IN_HALF 1 -%if %1 > 4 - psubw m4, m3, m0 ; q3-q0 - psubw m5, m2, m0 ; q2-q0 - ABS2 m4, m5, m6, m7 ; abs(q3-q0) | abs(q2-q0) - pcmpgtw m4, reg_F ; abs(q3-q0) > F - pcmpgtw m5, reg_F ; abs(q2-q0) > F -%endif - psubw m3, m2 ; q3-q2 - psubw m2, m1 ; q2-q1 - ABS2 m3, m2, m6, m7 ; abs(q3-q2) | abs(q2-q1) - pcmpgtw m3, reg_I ; abs(q3-q2) > I - pcmpgtw m2, reg_I ; abs(q2-q1) > I -%if %1 > 4 - por m4, m5 -%endif - por m2, m3 - psubw m3, m1, m0 ; q1-q0 - ABS1 m3, m5 ; abs(q1-q0) -%if %1 > 4 - pcmpgtw m6, m3, reg_F ; abs(q1-q0) > F -%endif - pcmpgtw m7, m3, reg_H ; abs(q1-q0) > H - pcmpgtw m3, reg_I ; abs(q1-q0) > I -%if %1 > 4 - por m4, m6 -%endif - por m2, m3 -%endmacro - -; one step in filter_14/filter_6 -; -; take sum $reg, downshift, apply mask and write into dst -; -; if sub2/add1-2 are present, add/sub as appropriate to prepare for the next -; step's sum $reg. This is omitted for the last row in each filter. -; -; if dont_store is set, don't write the result into memory, instead keep the -; values in register so we can write it out later -%macro FILTER_STEP 6-10 "", "", "", 0 ; tmp, reg, mask, shift, dst, \ - ; src/sub1, sub2, add1, add2, dont_store - psrlw %1, %2, %4 - psubw %1, %6 ; abs->delta -%ifnidn %7, "" - psubw %2, %6 - psubw %2, %7 - paddw %2, %8 - paddw %2, %9 -%endif - pand %1, reg_%3 ; apply mask -%if %10 == 1 - paddw %6, %1 ; delta->abs -%else - paddw %1, %6 ; delta->abs - mova [%5], %1 -%endif -%endmacro - -; FIXME avx2 versions for 16_16 and mix2_{4,8}{4,8} - -%macro LOOP_FILTER 3 ; dir[h/v], wd[4/8/16], bpp[10/12] - -%if ARCH_X86_64 -%if %2 == 16 -%assign %%num_xmm_regs 16 -%elif %2 == 8 -%assign %%num_xmm_regs 15 -%else ; %2 == 4 -%assign %%num_xmm_regs 14 -%endif ; %2 -%assign %%bak_mem 0 -%else ; ARCH_X86_32 -%assign %%num_xmm_regs 8 -%if %2 == 16 -%assign %%bak_mem 7 -%elif %2 == 8 -%assign %%bak_mem 6 -%else ; %2 == 4 -%assign %%bak_mem 5 -%endif ; %2 -%endif ; ARCH_X86_64/32 - -%if %2 == 16 -%ifidn %1, v -%assign %%num_gpr_regs 6 -%else ; %1 == h -%assign %%num_gpr_regs 5 -%endif ; %1 -%assign %%wd_mem 6 -%else ; %2 == 8/4 -%assign %%num_gpr_regs 5 -%if ARCH_X86_32 && %2 == 8 -%assign %%wd_mem 2 -%else ; ARCH_X86_64 || %2 == 4 -%assign %%wd_mem 0 -%endif ; ARCH_X86_64/32 etc. -%endif ; %2 - -%ifidn %1, v -%assign %%tsp_mem 0 -%elif %2 == 16 ; && %1 == h -%assign %%tsp_mem 16 -%else ; %1 == h && %1 == 8/4 -%assign %%tsp_mem 8 -%endif ; %1/%2 - -%assign %%off %%wd_mem -%assign %%tspoff %%bak_mem+%%wd_mem -%assign %%stack_mem ((%%bak_mem+%%wd_mem+%%tsp_mem)*mmsize) - -%if %3 == 10 -%define %%maxsgn 511 -%define %%minsgn m512 -%define %%maxusgn 1023 -%define %%maxf 4 -%else ; %3 == 12 -%define %%maxsgn 2047 -%define %%minsgn m2048 -%define %%maxusgn 4095 -%define %%maxf 16 -%endif ; %3 - -cglobal vp9_loop_filter_%1_%2_%3, 5, %%num_gpr_regs, %%num_xmm_regs, %%stack_mem, dst, stride, E, I, H - ; prepare E, I and H masks - shl Ed, %3-8 - shl Id, %3-8 - shl Hd, %3-8 -%if cpuflag(ssse3) - mova m0, [pw_256] -%endif - movd m1, Ed - movd m2, Id - movd m3, Hd -%if cpuflag(ssse3) - pshufb m1, m0 ; E << (bit_depth - 8) - pshufb m2, m0 ; I << (bit_depth - 8) - pshufb m3, m0 ; H << (bit_depth - 8) -%else - punpcklwd m1, m1 - punpcklwd m2, m2 - punpcklwd m3, m3 - pshufd m1, m1, q0000 - pshufd m2, m2, q0000 - pshufd m3, m3, q0000 -%endif - SCRATCH 1, 8, rsp+(%%off+0)*mmsize, E - SCRATCH 2, 9, rsp+(%%off+1)*mmsize, I - SCRATCH 3, 10, rsp+(%%off+2)*mmsize, H -%if %2 > 4 - PRELOAD 11, pw_ %+ %%maxf, F -%endif - - ; set up variables to load data -%ifidn %1, v - DEFINE_ARGS dst8, stride, stride3, dst0, dst4, dst12 - lea stride3q, [strideq*3] - neg strideq -%if %2 == 16 - lea dst0q, [dst8q+strideq*8] -%else - lea dst4q, [dst8q+strideq*4] -%endif - neg strideq -%if %2 == 16 - lea dst12q, [dst8q+strideq*4] - lea dst4q, [dst0q+strideq*4] -%endif - -%if %2 == 16 -%define %%p7 dst0q -%define %%p6 dst0q+strideq -%define %%p5 dst0q+strideq*2 -%define %%p4 dst0q+stride3q -%endif -%define %%p3 dst4q -%define %%p2 dst4q+strideq -%define %%p1 dst4q+strideq*2 -%define %%p0 dst4q+stride3q -%define %%q0 dst8q -%define %%q1 dst8q+strideq -%define %%q2 dst8q+strideq*2 -%define %%q3 dst8q+stride3q -%if %2 == 16 -%define %%q4 dst12q -%define %%q5 dst12q+strideq -%define %%q6 dst12q+strideq*2 -%define %%q7 dst12q+stride3q -%endif -%else ; %1 == h - DEFINE_ARGS dst0, stride, stride3, dst4 - lea stride3q, [strideq*3] - lea dst4q, [dst0q+strideq*4] - -%define %%p3 rsp+(%%tspoff+0)*mmsize -%define %%p2 rsp+(%%tspoff+1)*mmsize -%define %%p1 rsp+(%%tspoff+2)*mmsize -%define %%p0 rsp+(%%tspoff+3)*mmsize -%define %%q0 rsp+(%%tspoff+4)*mmsize -%define %%q1 rsp+(%%tspoff+5)*mmsize -%define %%q2 rsp+(%%tspoff+6)*mmsize -%define %%q3 rsp+(%%tspoff+7)*mmsize - -%if %2 < 16 - movu m0, [dst0q+strideq*0-8] - movu m1, [dst0q+strideq*1-8] - movu m2, [dst0q+strideq*2-8] - movu m3, [dst0q+stride3q -8] - movu m4, [dst4q+strideq*0-8] - movu m5, [dst4q+strideq*1-8] - movu m6, [dst4q+strideq*2-8] - movu m7, [dst4q+stride3q -8] - -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 12 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [%%p0], [%%q0] -%endif - - mova [%%p3], m0 - mova [%%p2], m1 - mova [%%p1], m2 - mova [%%p0], m3 -%if ARCH_X86_64 - mova [%%q0], m4 -%endif - mova [%%q1], m5 - mova [%%q2], m6 - mova [%%q3], m7 - - ; FIXME investigate if we can _not_ load q0-3 below if h, and adjust register - ; order here accordingly -%else ; %2 == 16 - -%define %%p7 rsp+(%%tspoff+ 8)*mmsize -%define %%p6 rsp+(%%tspoff+ 9)*mmsize -%define %%p5 rsp+(%%tspoff+10)*mmsize -%define %%p4 rsp+(%%tspoff+11)*mmsize -%define %%q4 rsp+(%%tspoff+12)*mmsize -%define %%q5 rsp+(%%tspoff+13)*mmsize -%define %%q6 rsp+(%%tspoff+14)*mmsize -%define %%q7 rsp+(%%tspoff+15)*mmsize - - mova m0, [dst0q+strideq*0-16] - mova m1, [dst0q+strideq*1-16] - mova m2, [dst0q+strideq*2-16] - mova m3, [dst0q+stride3q -16] - mova m4, [dst4q+strideq*0-16] - mova m5, [dst4q+strideq*1-16] -%if ARCH_X86_64 - mova m6, [dst4q+strideq*2-16] -%endif - mova m7, [dst4q+stride3q -16] - -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 12 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [dst4q+strideq*2-16], [%%p3], 1 -%endif - - mova [%%p7], m0 - mova [%%p6], m1 - mova [%%p5], m2 - mova [%%p4], m3 -%if ARCH_X86_64 - mova [%%p3], m4 -%endif - mova [%%p2], m5 - mova [%%p1], m6 - mova [%%p0], m7 - - mova m0, [dst0q+strideq*0] - mova m1, [dst0q+strideq*1] - mova m2, [dst0q+strideq*2] - mova m3, [dst0q+stride3q ] - mova m4, [dst4q+strideq*0] - mova m5, [dst4q+strideq*1] -%if ARCH_X86_64 - mova m6, [dst4q+strideq*2] -%endif - mova m7, [dst4q+stride3q ] - -%if ARCH_X86_64 - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 12 -%else - TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [dst4q+strideq*2], [%%q4], 1 -%endif - - mova [%%q0], m0 - mova [%%q1], m1 - mova [%%q2], m2 - mova [%%q3], m3 -%if ARCH_X86_64 - mova [%%q4], m4 -%endif - mova [%%q5], m5 - mova [%%q6], m6 - mova [%%q7], m7 - - ; FIXME investigate if we can _not_ load q0|q4-7 below if h, and adjust register - ; order here accordingly -%endif ; %2 -%endif ; %1 - - ; load q0|q4-7 data - mova m0, [%%q0] -%if %2 == 16 - mova m4, [%%q4] - mova m5, [%%q5] - mova m6, [%%q6] - mova m7, [%%q7] - - ; flat8out q portion - FLAT8OUT_HALF - SCRATCH 7, 15, rsp+(%%off+6)*mmsize, F8O -%endif - - ; load q1-3 data - mova m1, [%%q1] - mova m2, [%%q2] - mova m3, [%%q3] - - ; r6-8|pw_4[m8-11]=reg_E/I/H/F - ; r9[m15]=!flatout[q] - ; m12-14=free - ; m0-3=q0-q3 - ; m4-7=free - - ; flat8in|fm|hev q portion - FLAT8IN_HALF %2 - SCRATCH 7, 13, rsp+(%%off+4)*mmsize, HEV -%if %2 > 4 - SCRATCH 4, 14, rsp+(%%off+5)*mmsize, F8I -%endif - - ; r6-8|pw_4[m8-11]=reg_E/I/H/F - ; r9[m15]=!flat8out[q] - ; r10[m13]=hev[q] - ; r11[m14]=!flat8in[q] - ; m2=!fm[q] - ; m0,1=q0-q1 - ; m2-7=free - ; m12=free - - ; load p0-1 - mova m3, [%%p0] - mova m4, [%%p1] - - ; fm mb_edge portion - psubw m5, m3, m0 ; q0-p0 - psubw m6, m4, m1 ; q1-p1 -%if ARCH_X86_64 - ABS2 m5, m6, m7, m12 ; abs(q0-p0) | abs(q1-p1) -%else - ABS1 m5, m7 ; abs(q0-p0) - ABS1 m6, m7 ; abs(q1-p1) -%endif - paddw m5, m5 - psraw m6, 1 - paddw m6, m5 ; abs(q0-p0)*2+(abs(q1-p1)>>1) - pcmpgtw m6, reg_E - por m2, m6 - SCRATCH 2, 12, rsp+(%%off+3)*mmsize, FM - - ; r6-8|pw_4[m8-11]=reg_E/I/H/F - ; r9[m15]=!flat8out[q] - ; r10[m13]=hev[q] - ; r11[m14]=!flat8in[q] - ; r12[m12]=!fm[q] - ; m3-4=q0-1 - ; m0-2/5-7=free - - ; load p4-7 data - SWAP 3, 0 ; p0 - SWAP 4, 1 ; p1 -%if %2 == 16 - mova m7, [%%p7] - mova m6, [%%p6] - mova m5, [%%p5] - mova m4, [%%p4] - - ; flat8out p portion - FLAT8OUT_HALF - por m7, reg_F8O - SCRATCH 7, 15, rsp+(%%off+6)*mmsize, F8O -%endif - - ; r6-8|pw_4[m8-11]=reg_E/I/H/F - ; r9[m15]=!flat8out - ; r10[m13]=hev[q] - ; r11[m14]=!flat8in[q] - ; r12[m12]=!fm[q] - ; m0=p0 - ; m1-7=free - - ; load p2-3 data - mova m2, [%%p2] - mova m3, [%%p3] - - ; flat8in|fm|hev p portion - FLAT8IN_HALF %2 - por m7, reg_HEV -%if %2 > 4 - por m4, reg_F8I -%endif - por m2, reg_FM -%if %2 > 4 - por m4, m2 ; !flat8|!fm -%if %2 == 16 - por m5, m4, reg_F8O ; !flat16|!fm - pandn m2, m4 ; filter4_mask - pandn m4, m5 ; filter8_mask - pxor m5, [pw_m1] ; filter16_mask - SCRATCH 5, 15, rsp+(%%off+6)*mmsize, F16M -%else - pandn m2, m4 ; filter4_mask - pxor m4, [pw_m1] ; filter8_mask -%endif - SCRATCH 4, 14, rsp+(%%off+5)*mmsize, F8M -%else - pxor m2, [pw_m1] ; filter4_mask -%endif - SCRATCH 7, 13, rsp+(%%off+4)*mmsize, HEV - SCRATCH 2, 12, rsp+(%%off+3)*mmsize, F4M - - ; r9[m15]=filter16_mask - ; r10[m13]=hev - ; r11[m14]=filter8_mask - ; r12[m12]=filter4_mask - ; m0,1=p0-p1 - ; m2-7=free - ; m8-11=free - -%if %2 > 4 -%if %2 == 16 - ; filter_14 - mova m2, [%%p7] - mova m3, [%%p6] - mova m6, [%%p5] - mova m7, [%%p4] - PRELOAD 8, %%p3, P3 - PRELOAD 9, %%p2, P2 -%endif - PRELOAD 10, %%q0, Q0 - PRELOAD 11, %%q1, Q1 -%if %2 == 16 - psllw m4, m2, 3 - paddw m5, m3, m3 - paddw m4, m6 - paddw m5, m7 - paddw m4, reg_P3 - paddw m5, reg_P2 - paddw m4, m1 - paddw m5, m0 - paddw m4, reg_Q0 ; q0+p1+p3+p5+p7*8 - psubw m5, m2 ; p0+p2+p4+p6*2-p7 - paddw m4, [pw_8] - paddw m5, m4 ; q0+p0+p1+p2+p3+p4+p5+p6*2+p7*7+8 - - ; below, we use r0-5 for storing pre-filter pixels for subsequent subtraction - ; at the end of the filter - - mova [rsp+0*mmsize], m3 - FILTER_STEP m4, m5, F16M, 4, %%p6, m3, m2, m6, reg_Q1 -%endif - mova m3, [%%q2] -%if %2 == 16 - mova [rsp+1*mmsize], m6 - FILTER_STEP m4, m5, F16M, 4, %%p5, m6, m2, m7, m3 -%endif - mova m6, [%%q3] -%if %2 == 16 - mova [rsp+2*mmsize], m7 - FILTER_STEP m4, m5, F16M, 4, %%p4, m7, m2, reg_P3, m6 - mova m7, [%%q4] -%if ARCH_X86_64 - mova [rsp+3*mmsize], reg_P3 -%else - mova m4, reg_P3 - mova [rsp+3*mmsize], m4 -%endif - FILTER_STEP m4, m5, F16M, 4, %%p3, reg_P3, m2, reg_P2, m7 - PRELOAD 8, %%q5, Q5 -%if ARCH_X86_64 - mova [rsp+4*mmsize], reg_P2 -%else - mova m4, reg_P2 - mova [rsp+4*mmsize], m4 -%endif - FILTER_STEP m4, m5, F16M, 4, %%p2, reg_P2, m2, m1, reg_Q5 - PRELOAD 9, %%q6, Q6 - mova [rsp+5*mmsize], m1 - FILTER_STEP m4, m5, F16M, 4, %%p1, m1, m2, m0, reg_Q6 - mova m1, [%%q7] - FILTER_STEP m4, m5, F16M, 4, %%p0, m0, m2, reg_Q0, m1, 1 - FILTER_STEP m4, m5, F16M, 4, %%q0, reg_Q0, [rsp+0*mmsize], reg_Q1, m1, ARCH_X86_64 - FILTER_STEP m4, m5, F16M, 4, %%q1, reg_Q1, [rsp+1*mmsize], m3, m1, ARCH_X86_64 - FILTER_STEP m4, m5, F16M, 4, %%q2, m3, [rsp+2*mmsize], m6, m1, 1 - FILTER_STEP m4, m5, F16M, 4, %%q3, m6, [rsp+3*mmsize], m7, m1 - FILTER_STEP m4, m5, F16M, 4, %%q4, m7, [rsp+4*mmsize], reg_Q5, m1 - FILTER_STEP m4, m5, F16M, 4, %%q5, reg_Q5, [rsp+5*mmsize], reg_Q6, m1 - FILTER_STEP m4, m5, F16M, 4, %%q6, reg_Q6 - - mova m7, [%%p1] -%else - SWAP 1, 7 -%endif - - mova m2, [%%p3] - mova m1, [%%p2] - - ; reg_Q0-1 (m10-m11) - ; m0=p0 - ; m1=p2 - ; m2=p3 - ; m3=q2 - ; m4-5=free - ; m6=q3 - ; m7=p1 - ; m8-9 unused - - ; filter_6 - psllw m4, m2, 2 - paddw m5, m1, m1 - paddw m4, m7 - psubw m5, m2 - paddw m4, m0 - paddw m5, reg_Q0 - paddw m4, [pw_4] - paddw m5, m4 - -%if ARCH_X86_64 - mova m8, m1 - mova m9, m7 -%else - mova [rsp+0*mmsize], m1 - mova [rsp+1*mmsize], m7 -%endif -%ifidn %1, v - FILTER_STEP m4, m5, F8M, 3, %%p2, m1, m2, m7, reg_Q1 -%else - FILTER_STEP m4, m5, F8M, 3, %%p2, m1, m2, m7, reg_Q1, 1 -%endif - FILTER_STEP m4, m5, F8M, 3, %%p1, m7, m2, m0, m3, 1 - FILTER_STEP m4, m5, F8M, 3, %%p0, m0, m2, reg_Q0, m6, 1 -%if ARCH_X86_64 - FILTER_STEP m4, m5, F8M, 3, %%q0, reg_Q0, m8, reg_Q1, m6, ARCH_X86_64 - FILTER_STEP m4, m5, F8M, 3, %%q1, reg_Q1, m9, m3, m6, ARCH_X86_64 -%else - FILTER_STEP m4, m5, F8M, 3, %%q0, reg_Q0, [rsp+0*mmsize], reg_Q1, m6, ARCH_X86_64 - FILTER_STEP m4, m5, F8M, 3, %%q1, reg_Q1, [rsp+1*mmsize], m3, m6, ARCH_X86_64 -%endif - FILTER_STEP m4, m5, F8M, 3, %%q2, m3 - - UNSCRATCH 2, 10, %%q0 - UNSCRATCH 6, 11, %%q1 -%else - SWAP 1, 7 - mova m2, [%%q0] - mova m6, [%%q1] -%endif - UNSCRATCH 3, 13, rsp+(%%off+4)*mmsize, HEV - - ; m0=p0 - ; m1=p2 - ; m2=q0 - ; m3=hev_mask - ; m4-5=free - ; m6=q1 - ; m7=p1 - - ; filter_4 - psubw m4, m7, m6 ; p1-q1 - psubw m5, m2, m0 ; q0-p0 - pand m4, m3 - pminsw m4, [pw_ %+ %%maxsgn] - pmaxsw m4, [pw_ %+ %%minsgn] ; clip_intp2(p1-q1, 9) -> f - paddw m4, m5 - paddw m5, m5 - paddw m4, m5 ; 3*(q0-p0)+f - pminsw m4, [pw_ %+ %%maxsgn] - pmaxsw m4, [pw_ %+ %%minsgn] ; clip_intp2(3*(q0-p0)+f, 9) -> f - pand m4, reg_F4M - paddw m5, m4, [pw_4] - paddw m4, [pw_3] - pminsw m5, [pw_ %+ %%maxsgn] - pminsw m4, [pw_ %+ %%maxsgn] - psraw m5, 3 ; min_intp2(f+4, 9)>>3 -> f1 - psraw m4, 3 ; min_intp2(f+3, 9)>>3 -> f2 - psubw m2, m5 ; q0-f1 - paddw m0, m4 ; p0+f2 - pandn m3, m5 ; f1 & !hev (for p1/q1 adj) - pxor m4, m4 - mova m5, [pw_ %+ %%maxusgn] - pmaxsw m2, m4 - pmaxsw m0, m4 - pminsw m2, m5 - pminsw m0, m5 -%if cpuflag(ssse3) - pmulhrsw m3, [pw_16384] ; (f1+1)>>1 -%else - paddw m3, [pw_1] - psraw m3, 1 -%endif - paddw m7, m3 ; p1+f - psubw m6, m3 ; q1-f - pmaxsw m7, m4 - pmaxsw m6, m4 - pminsw m7, m5 - pminsw m6, m5 - - ; store -%ifidn %1, v - mova [%%p1], m7 - mova [%%p0], m0 - mova [%%q0], m2 - mova [%%q1], m6 -%else ; %1 == h -%if %2 == 4 - TRANSPOSE4x4W 7, 0, 2, 6, 1 - movh [dst0q+strideq*0-4], m7 - movhps [dst0q+strideq*1-4], m7 - movh [dst0q+strideq*2-4], m0 - movhps [dst0q+stride3q -4], m0 - movh [dst4q+strideq*0-4], m2 - movhps [dst4q+strideq*1-4], m2 - movh [dst4q+strideq*2-4], m6 - movhps [dst4q+stride3q -4], m6 -%elif %2 == 8 - mova m3, [%%p3] - mova m4, [%%q2] - mova m5, [%%q3] - -%if ARCH_X86_64 - TRANSPOSE8x8W 3, 1, 7, 0, 2, 6, 4, 5, 8 -%else - TRANSPOSE8x8W 3, 1, 7, 0, 2, 6, 4, 5, [%%q2], [%%q0], 1 - mova m2, [%%q0] -%endif - - movu [dst0q+strideq*0-8], m3 - movu [dst0q+strideq*1-8], m1 - movu [dst0q+strideq*2-8], m7 - movu [dst0q+stride3q -8], m0 - movu [dst4q+strideq*0-8], m2 - movu [dst4q+strideq*1-8], m6 - movu [dst4q+strideq*2-8], m4 - movu [dst4q+stride3q -8], m5 -%else ; %2 == 16 - SCRATCH 2, 8, %%q0 - SCRATCH 6, 9, %%q1 - mova m2, [%%p7] - mova m3, [%%p6] - mova m4, [%%p5] - mova m5, [%%p4] - mova m6, [%%p3] - -%if ARCH_X86_64 - TRANSPOSE8x8W 2, 3, 4, 5, 6, 1, 7, 0, 10 -%else - mova [%%p1], m7 - TRANSPOSE8x8W 2, 3, 4, 5, 6, 1, 7, 0, [%%p1], [dst4q+strideq*0-16], 1 -%endif - - mova [dst0q+strideq*0-16], m2 - mova [dst0q+strideq*1-16], m3 - mova [dst0q+strideq*2-16], m4 - mova [dst0q+stride3q -16], m5 -%if ARCH_X86_64 - mova [dst4q+strideq*0-16], m6 -%endif - mova [dst4q+strideq*1-16], m1 - mova [dst4q+strideq*2-16], m7 - mova [dst4q+stride3q -16], m0 - - UNSCRATCH 2, 8, %%q0 - UNSCRATCH 6, 9, %%q1 - mova m0, [%%q2] - mova m1, [%%q3] - mova m3, [%%q4] - mova m4, [%%q5] -%if ARCH_X86_64 - mova m5, [%%q6] -%endif - mova m7, [%%q7] - -%if ARCH_X86_64 - TRANSPOSE8x8W 2, 6, 0, 1, 3, 4, 5, 7, 8 -%else - TRANSPOSE8x8W 2, 6, 0, 1, 3, 4, 5, 7, [%%q6], [dst4q+strideq*0], 1 -%endif - - mova [dst0q+strideq*0], m2 - mova [dst0q+strideq*1], m6 - mova [dst0q+strideq*2], m0 - mova [dst0q+stride3q ], m1 -%if ARCH_X86_64 - mova [dst4q+strideq*0], m3 -%endif - mova [dst4q+strideq*1], m4 - mova [dst4q+strideq*2], m5 - mova [dst4q+stride3q ], m7 -%endif ; %2 -%endif ; %1 - RET -%endmacro - -%macro LOOP_FILTER_CPUSETS 3 -INIT_XMM sse2 -LOOP_FILTER %1, %2, %3 -INIT_XMM ssse3 -LOOP_FILTER %1, %2, %3 -INIT_XMM avx -LOOP_FILTER %1, %2, %3 -%endmacro - -%macro LOOP_FILTER_WDSETS 2 -LOOP_FILTER_CPUSETS %1, 4, %2 -LOOP_FILTER_CPUSETS %1, 8, %2 -LOOP_FILTER_CPUSETS %1, 16, %2 -%endmacro - -LOOP_FILTER_WDSETS h, 10 -LOOP_FILTER_WDSETS v, 10 -LOOP_FILTER_WDSETS h, 12 -LOOP_FILTER_WDSETS v, 12 diff --git a/libavcodec/x86/vp9mc.asm b/libavcodec/x86/vp9mc.asm deleted file mode 100644 index f64161b2c2..0000000000 --- a/libavcodec/x86/vp9mc.asm +++ /dev/null @@ -1,675 +0,0 @@ -;****************************************************************************** -;* VP9 motion compensation SIMD optimizations -;* -;* Copyright (c) 2013 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -cextern pw_256 -cextern pw_64 - -%macro F8_SSSE3_TAPS 8 -times 16 db %1, %2 -times 16 db %3, %4 -times 16 db %5, %6 -times 16 db %7, %8 -%endmacro - -%macro F8_SSE2_TAPS 8 -times 8 dw %1 -times 8 dw %2 -times 8 dw %3 -times 8 dw %4 -times 8 dw %5 -times 8 dw %6 -times 8 dw %7 -times 8 dw %8 -%endmacro - -%macro F8_16BPP_TAPS 8 -times 8 dw %1, %2 -times 8 dw %3, %4 -times 8 dw %5, %6 -times 8 dw %7, %8 -%endmacro - -%macro FILTER 1 -const filters_%1 ; smooth - F8_TAPS -3, -1, 32, 64, 38, 1, -3, 0 - F8_TAPS -2, -2, 29, 63, 41, 2, -3, 0 - F8_TAPS -2, -2, 26, 63, 43, 4, -4, 0 - F8_TAPS -2, -3, 24, 62, 46, 5, -4, 0 - F8_TAPS -2, -3, 21, 60, 49, 7, -4, 0 - F8_TAPS -1, -4, 18, 59, 51, 9, -4, 0 - F8_TAPS -1, -4, 16, 57, 53, 12, -4, -1 - F8_TAPS -1, -4, 14, 55, 55, 14, -4, -1 - F8_TAPS -1, -4, 12, 53, 57, 16, -4, -1 - F8_TAPS 0, -4, 9, 51, 59, 18, -4, -1 - F8_TAPS 0, -4, 7, 49, 60, 21, -3, -2 - F8_TAPS 0, -4, 5, 46, 62, 24, -3, -2 - F8_TAPS 0, -4, 4, 43, 63, 26, -2, -2 - F8_TAPS 0, -3, 2, 41, 63, 29, -2, -2 - F8_TAPS 0, -3, 1, 38, 64, 32, -1, -3 - ; regular - F8_TAPS 0, 1, -5, 126, 8, -3, 1, 0 - F8_TAPS -1, 3, -10, 122, 18, -6, 2, 0 - F8_TAPS -1, 4, -13, 118, 27, -9, 3, -1 - F8_TAPS -1, 4, -16, 112, 37, -11, 4, -1 - F8_TAPS -1, 5, -18, 105, 48, -14, 4, -1 - F8_TAPS -1, 5, -19, 97, 58, -16, 5, -1 - F8_TAPS -1, 6, -19, 88, 68, -18, 5, -1 - F8_TAPS -1, 6, -19, 78, 78, -19, 6, -1 - F8_TAPS -1, 5, -18, 68, 88, -19, 6, -1 - F8_TAPS -1, 5, -16, 58, 97, -19, 5, -1 - F8_TAPS -1, 4, -14, 48, 105, -18, 5, -1 - F8_TAPS -1, 4, -11, 37, 112, -16, 4, -1 - F8_TAPS -1, 3, -9, 27, 118, -13, 4, -1 - F8_TAPS 0, 2, -6, 18, 122, -10, 3, -1 - F8_TAPS 0, 1, -3, 8, 126, -5, 1, 0 - ; sharp - F8_TAPS -1, 3, -7, 127, 8, -3, 1, 0 - F8_TAPS -2, 5, -13, 125, 17, -6, 3, -1 - F8_TAPS -3, 7, -17, 121, 27, -10, 5, -2 - F8_TAPS -4, 9, -20, 115, 37, -13, 6, -2 - F8_TAPS -4, 10, -23, 108, 48, -16, 8, -3 - F8_TAPS -4, 10, -24, 100, 59, -19, 9, -3 - F8_TAPS -4, 11, -24, 90, 70, -21, 10, -4 - F8_TAPS -4, 11, -23, 80, 80, -23, 11, -4 - F8_TAPS -4, 10, -21, 70, 90, -24, 11, -4 - F8_TAPS -3, 9, -19, 59, 100, -24, 10, -4 - F8_TAPS -3, 8, -16, 48, 108, -23, 10, -4 - F8_TAPS -2, 6, -13, 37, 115, -20, 9, -4 - F8_TAPS -2, 5, -10, 27, 121, -17, 7, -3 - F8_TAPS -1, 3, -6, 17, 125, -13, 5, -2 - F8_TAPS 0, 1, -3, 8, 127, -7, 3, -1 -%endmacro - -%define F8_TAPS F8_SSSE3_TAPS -; int8_t ff_filters_ssse3[3][15][4][32] -FILTER ssse3 -%define F8_TAPS F8_SSE2_TAPS -; int16_t ff_filters_sse2[3][15][8][8] -FILTER sse2 -%define F8_TAPS F8_16BPP_TAPS -; int16_t ff_filters_16bpp[3][15][4][16] -FILTER 16bpp - -SECTION .text - -%macro filter_sse2_h_fn 1 -%assign %%px mmsize/2 -cglobal vp9_%1_8tap_1d_h_ %+ %%px %+ _8, 6, 6, 15, dst, dstride, src, sstride, h, filtery - pxor m5, m5 - mova m6, [pw_64] - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+ 16] - mova m9, [filteryq+ 32] - mova m10, [filteryq+ 48] - mova m11, [filteryq+ 64] - mova m12, [filteryq+ 80] - mova m13, [filteryq+ 96] - mova m14, [filteryq+112] -%endif -.loop: - movh m0, [srcq-3] - movh m1, [srcq-2] - movh m2, [srcq-1] - movh m3, [srcq+0] - movh m4, [srcq+1] - punpcklbw m0, m5 - punpcklbw m1, m5 - punpcklbw m2, m5 - punpcklbw m3, m5 - punpcklbw m4, m5 - pmullw m0, m7 -%if ARCH_X86_64 && mmsize > 8 - pmullw m1, m8 - pmullw m2, m9 - pmullw m3, m10 - pmullw m4, m11 -%else - pmullw m1, [filteryq+ 16] - pmullw m2, [filteryq+ 32] - pmullw m3, [filteryq+ 48] - pmullw m4, [filteryq+ 64] -%endif - paddw m0, m1 - paddw m2, m3 - paddw m0, m4 - movh m1, [srcq+2] - movh m3, [srcq+3] - movh m4, [srcq+4] - add srcq, sstrideq - punpcklbw m1, m5 - punpcklbw m3, m5 - punpcklbw m4, m5 -%if ARCH_X86_64 && mmsize > 8 - pmullw m1, m12 - pmullw m3, m13 - pmullw m4, m14 -%else - pmullw m1, [filteryq+ 80] - pmullw m3, [filteryq+ 96] - pmullw m4, [filteryq+112] -%endif - paddw m0, m1 - paddw m3, m4 - paddw m0, m6 - paddw m2, m3 - paddsw m0, m2 - psraw m0, 7 -%ifidn %1, avg - movh m1, [dstq] -%endif - packuswb m0, m0 -%ifidn %1, avg - pavgb m0, m1 -%endif - movh [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET -%endmacro - -INIT_MMX mmxext -filter_sse2_h_fn put -filter_sse2_h_fn avg - -INIT_XMM sse2 -filter_sse2_h_fn put -filter_sse2_h_fn avg - -%macro filter_h_fn 1 -%assign %%px mmsize/2 -cglobal vp9_%1_8tap_1d_h_ %+ %%px %+ _8, 6, 6, 11, dst, dstride, src, sstride, h, filtery - mova m6, [pw_256] - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+32] - mova m9, [filteryq+64] - mova m10, [filteryq+96] -%endif -.loop: - movh m0, [srcq-3] - movh m1, [srcq-2] - movh m2, [srcq-1] - movh m3, [srcq+0] - movh m4, [srcq+1] - movh m5, [srcq+2] - punpcklbw m0, m1 - punpcklbw m2, m3 - movh m1, [srcq+3] - movh m3, [srcq+4] - add srcq, sstrideq - punpcklbw m4, m5 - punpcklbw m1, m3 - pmaddubsw m0, m7 -%if ARCH_X86_64 && mmsize > 8 - pmaddubsw m2, m8 - pmaddubsw m4, m9 - pmaddubsw m1, m10 -%else - pmaddubsw m2, [filteryq+32] - pmaddubsw m4, [filteryq+64] - pmaddubsw m1, [filteryq+96] -%endif - paddw m0, m4 - paddw m2, m1 - paddsw m0, m2 - pmulhrsw m0, m6 -%ifidn %1, avg - movh m1, [dstq] -%endif - packuswb m0, m0 -%ifidn %1, avg - pavgb m0, m1 -%endif - movh [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET -%endmacro - -INIT_MMX ssse3 -filter_h_fn put -filter_h_fn avg - -INIT_XMM ssse3 -filter_h_fn put -filter_h_fn avg - -%if ARCH_X86_64 -%macro filter_hx2_fn 1 -%assign %%px mmsize -cglobal vp9_%1_8tap_1d_h_ %+ %%px %+ _8, 6, 6, 14, dst, dstride, src, sstride, h, filtery - mova m13, [pw_256] - mova m8, [filteryq+ 0] - mova m9, [filteryq+32] - mova m10, [filteryq+64] - mova m11, [filteryq+96] -.loop: - movu m0, [srcq-3] - movu m1, [srcq-2] - movu m2, [srcq-1] - movu m3, [srcq+0] - movu m4, [srcq+1] - movu m5, [srcq+2] - movu m6, [srcq+3] - movu m7, [srcq+4] - add srcq, sstrideq - SBUTTERFLY bw, 0, 1, 12 - SBUTTERFLY bw, 2, 3, 12 - SBUTTERFLY bw, 4, 5, 12 - SBUTTERFLY bw, 6, 7, 12 - pmaddubsw m0, m8 - pmaddubsw m1, m8 - pmaddubsw m2, m9 - pmaddubsw m3, m9 - pmaddubsw m4, m10 - pmaddubsw m5, m10 - pmaddubsw m6, m11 - pmaddubsw m7, m11 - paddw m0, m4 - paddw m1, m5 - paddw m2, m6 - paddw m3, m7 - paddsw m0, m2 - paddsw m1, m3 - pmulhrsw m0, m13 - pmulhrsw m1, m13 - packuswb m0, m1 -%ifidn %1, avg - pavgb m0, [dstq] -%endif - mova [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET -%endmacro - -INIT_XMM ssse3 -filter_hx2_fn put -filter_hx2_fn avg - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -filter_hx2_fn put -filter_hx2_fn avg -%endif - -%endif ; ARCH_X86_64 - -%macro filter_sse2_v_fn 1 -%assign %%px mmsize/2 -%if ARCH_X86_64 -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _8, 6, 8, 15, dst, dstride, src, sstride, h, filtery, src4, sstride3 -%else -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _8, 4, 7, 15, dst, dstride, src, sstride, filtery, src4, sstride3 - mov filteryq, r5mp -%define hd r4mp -%endif - pxor m5, m5 - mova m6, [pw_64] - lea sstride3q, [sstrideq*3] - lea src4q, [srcq+sstrideq] - sub srcq, sstride3q - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+ 16] - mova m9, [filteryq+ 32] - mova m10, [filteryq+ 48] - mova m11, [filteryq+ 64] - mova m12, [filteryq+ 80] - mova m13, [filteryq+ 96] - mova m14, [filteryq+112] -%endif -.loop: - ; FIXME maybe reuse loads from previous rows, or just - ; more generally unroll this to prevent multiple loads of - ; the same data? - movh m0, [srcq] - movh m1, [srcq+sstrideq] - movh m2, [srcq+sstrideq*2] - movh m3, [srcq+sstride3q] - add srcq, sstrideq - movh m4, [src4q] - punpcklbw m0, m5 - punpcklbw m1, m5 - punpcklbw m2, m5 - punpcklbw m3, m5 - punpcklbw m4, m5 - pmullw m0, m7 -%if ARCH_X86_64 && mmsize > 8 - pmullw m1, m8 - pmullw m2, m9 - pmullw m3, m10 - pmullw m4, m11 -%else - pmullw m1, [filteryq+ 16] - pmullw m2, [filteryq+ 32] - pmullw m3, [filteryq+ 48] - pmullw m4, [filteryq+ 64] -%endif - paddw m0, m1 - paddw m2, m3 - paddw m0, m4 - movh m1, [src4q+sstrideq] - movh m3, [src4q+sstrideq*2] - movh m4, [src4q+sstride3q] - add src4q, sstrideq - punpcklbw m1, m5 - punpcklbw m3, m5 - punpcklbw m4, m5 -%if ARCH_X86_64 && mmsize > 8 - pmullw m1, m12 - pmullw m3, m13 - pmullw m4, m14 -%else - pmullw m1, [filteryq+ 80] - pmullw m3, [filteryq+ 96] - pmullw m4, [filteryq+112] -%endif - paddw m0, m1 - paddw m3, m4 - paddw m0, m6 - paddw m2, m3 - paddsw m0, m2 - psraw m0, 7 -%ifidn %1, avg - movh m1, [dstq] -%endif - packuswb m0, m0 -%ifidn %1, avg - pavgb m0, m1 -%endif - movh [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET -%endmacro - -INIT_MMX mmxext -filter_sse2_v_fn put -filter_sse2_v_fn avg - -INIT_XMM sse2 -filter_sse2_v_fn put -filter_sse2_v_fn avg - -%macro filter_v_fn 1 -%assign %%px mmsize/2 -%if ARCH_X86_64 -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _8, 6, 8, 11, dst, dstride, src, sstride, h, filtery, src4, sstride3 -%else -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _8, 4, 7, 11, dst, dstride, src, sstride, filtery, src4, sstride3 - mov filteryq, r5mp -%define hd r4mp -%endif - mova m6, [pw_256] - lea sstride3q, [sstrideq*3] - lea src4q, [srcq+sstrideq] - sub srcq, sstride3q - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+32] - mova m9, [filteryq+64] - mova m10, [filteryq+96] -%endif -.loop: - ; FIXME maybe reuse loads from previous rows, or just more generally - ; unroll this to prevent multiple loads of the same data? - movh m0, [srcq] - movh m1, [srcq+sstrideq] - movh m2, [srcq+sstrideq*2] - movh m3, [srcq+sstride3q] - movh m4, [src4q] - movh m5, [src4q+sstrideq] - punpcklbw m0, m1 - punpcklbw m2, m3 - movh m1, [src4q+sstrideq*2] - movh m3, [src4q+sstride3q] - add srcq, sstrideq - add src4q, sstrideq - punpcklbw m4, m5 - punpcklbw m1, m3 - pmaddubsw m0, m7 -%if ARCH_X86_64 && mmsize > 8 - pmaddubsw m2, m8 - pmaddubsw m4, m9 - pmaddubsw m1, m10 -%else - pmaddubsw m2, [filteryq+32] - pmaddubsw m4, [filteryq+64] - pmaddubsw m1, [filteryq+96] -%endif - paddw m0, m4 - paddw m2, m1 - paddsw m0, m2 - pmulhrsw m0, m6 -%ifidn %1, avg - movh m1, [dstq] -%endif - packuswb m0, m0 -%ifidn %1, avg - pavgb m0, m1 -%endif - movh [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET -%endmacro - -INIT_MMX ssse3 -filter_v_fn put -filter_v_fn avg - -INIT_XMM ssse3 -filter_v_fn put -filter_v_fn avg - -%if ARCH_X86_64 - -%macro filter_vx2_fn 1 -%assign %%px mmsize -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _8, 6, 8, 14, dst, dstride, src, sstride, h, filtery, src4, sstride3 - mova m13, [pw_256] - lea sstride3q, [sstrideq*3] - lea src4q, [srcq+sstrideq] - sub srcq, sstride3q - mova m8, [filteryq+ 0] - mova m9, [filteryq+32] - mova m10, [filteryq+64] - mova m11, [filteryq+96] -.loop: - ; FIXME maybe reuse loads from previous rows, or just - ; more generally unroll this to prevent multiple loads of - ; the same data? - movu m0, [srcq] - movu m1, [srcq+sstrideq] - movu m2, [srcq+sstrideq*2] - movu m3, [srcq+sstride3q] - movu m4, [src4q] - movu m5, [src4q+sstrideq] - movu m6, [src4q+sstrideq*2] - movu m7, [src4q+sstride3q] - add srcq, sstrideq - add src4q, sstrideq - SBUTTERFLY bw, 0, 1, 12 - SBUTTERFLY bw, 2, 3, 12 - SBUTTERFLY bw, 4, 5, 12 - SBUTTERFLY bw, 6, 7, 12 - pmaddubsw m0, m8 - pmaddubsw m1, m8 - pmaddubsw m2, m9 - pmaddubsw m3, m9 - pmaddubsw m4, m10 - pmaddubsw m5, m10 - pmaddubsw m6, m11 - pmaddubsw m7, m11 - paddw m0, m4 - paddw m1, m5 - paddw m2, m6 - paddw m3, m7 - paddsw m0, m2 - paddsw m1, m3 - pmulhrsw m0, m13 - pmulhrsw m1, m13 - packuswb m0, m1 -%ifidn %1, avg - pavgb m0, [dstq] -%endif - mova [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET -%endmacro - -INIT_XMM ssse3 -filter_vx2_fn put -filter_vx2_fn avg - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -filter_vx2_fn put -filter_vx2_fn avg -%endif - -%endif ; ARCH_X86_64 - -%macro fpel_fn 6-8 0, 4 -%if %2 == 4 -%define %%srcfn movh -%define %%dstfn movh -%else -%define %%srcfn movu -%define %%dstfn mova -%endif - -%if %7 == 8 -%define %%pavg pavgb -%define %%szsuf _8 -%elif %7 == 16 -%define %%pavg pavgw -%define %%szsuf _16 -%else -%define %%szsuf -%endif - -%if %2 <= mmsize -cglobal vp9_%1%2 %+ %%szsuf, 5, 7, 4, dst, dstride, src, sstride, h, dstride3, sstride3 - lea sstride3q, [sstrideq*3] - lea dstride3q, [dstrideq*3] -%else -cglobal vp9_%1%2 %+ %%szsuf, 5, 5, %8, dst, dstride, src, sstride, h -%endif -.loop: - %%srcfn m0, [srcq] - %%srcfn m1, [srcq+s%3] - %%srcfn m2, [srcq+s%4] - %%srcfn m3, [srcq+s%5] -%if %2/mmsize == 8 - %%srcfn m4, [srcq+mmsize*4] - %%srcfn m5, [srcq+mmsize*5] - %%srcfn m6, [srcq+mmsize*6] - %%srcfn m7, [srcq+mmsize*7] -%endif - lea srcq, [srcq+sstrideq*%6] -%ifidn %1, avg - %%pavg m0, [dstq] - %%pavg m1, [dstq+d%3] - %%pavg m2, [dstq+d%4] - %%pavg m3, [dstq+d%5] -%if %2/mmsize == 8 - %%pavg m4, [dstq+mmsize*4] - %%pavg m5, [dstq+mmsize*5] - %%pavg m6, [dstq+mmsize*6] - %%pavg m7, [dstq+mmsize*7] -%endif -%endif - %%dstfn [dstq], m0 - %%dstfn [dstq+d%3], m1 - %%dstfn [dstq+d%4], m2 - %%dstfn [dstq+d%5], m3 -%if %2/mmsize == 8 - %%dstfn [dstq+mmsize*4], m4 - %%dstfn [dstq+mmsize*5], m5 - %%dstfn [dstq+mmsize*6], m6 - %%dstfn [dstq+mmsize*7], m7 -%endif - lea dstq, [dstq+dstrideq*%6] - sub hd, %6 - jnz .loop - RET -%endmacro - -%define d16 16 -%define s16 16 -%define d32 32 -%define s32 32 -INIT_MMX mmx -fpel_fn put, 4, strideq, strideq*2, stride3q, 4 -fpel_fn put, 8, strideq, strideq*2, stride3q, 4 -INIT_MMX mmxext -fpel_fn avg, 4, strideq, strideq*2, stride3q, 4, 8 -fpel_fn avg, 8, strideq, strideq*2, stride3q, 4, 8 -INIT_XMM sse -fpel_fn put, 16, strideq, strideq*2, stride3q, 4 -fpel_fn put, 32, mmsize, strideq, strideq+mmsize, 2 -fpel_fn put, 64, mmsize, mmsize*2, mmsize*3, 1 -fpel_fn put, 128, mmsize, mmsize*2, mmsize*3, 1, 0, 8 -INIT_XMM sse2 -fpel_fn avg, 16, strideq, strideq*2, stride3q, 4, 8 -fpel_fn avg, 32, mmsize, strideq, strideq+mmsize, 2, 8 -fpel_fn avg, 64, mmsize, mmsize*2, mmsize*3, 1, 8 -INIT_YMM avx -fpel_fn put, 32, strideq, strideq*2, stride3q, 4 -fpel_fn put, 64, mmsize, strideq, strideq+mmsize, 2 -fpel_fn put, 128, mmsize, mmsize*2, mmsize*3, 1 -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -fpel_fn avg, 32, strideq, strideq*2, stride3q, 4, 8 -fpel_fn avg, 64, mmsize, strideq, strideq+mmsize, 2, 8 -%endif -INIT_MMX mmxext -fpel_fn avg, 8, strideq, strideq*2, stride3q, 4, 16 -INIT_XMM sse2 -fpel_fn avg, 16, strideq, strideq*2, stride3q, 4, 16 -fpel_fn avg, 32, mmsize, strideq, strideq+mmsize, 2, 16 -fpel_fn avg, 64, mmsize, mmsize*2, mmsize*3, 1, 16 -fpel_fn avg, 128, mmsize, mmsize*2, mmsize*3, 1, 16, 8 -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -fpel_fn avg, 32, strideq, strideq*2, stride3q, 4, 16 -fpel_fn avg, 64, mmsize, strideq, strideq+mmsize, 2, 16 -fpel_fn avg, 128, mmsize, mmsize*2, mmsize*3, 1, 16 -%endif -%undef s16 -%undef d16 -%undef s32 -%undef d32 diff --git a/libavcodec/x86/vp9mc_16bpp.asm b/libavcodec/x86/vp9mc_16bpp.asm deleted file mode 100644 index 9a462eaf80..0000000000 --- a/libavcodec/x86/vp9mc_16bpp.asm +++ /dev/null @@ -1,431 +0,0 @@ -;****************************************************************************** -;* VP9 MC SIMD optimizations -;* -;* Copyright (c) 2015 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pd_64: times 8 dd 64 - -cextern pw_1023 -cextern pw_4095 - -SECTION .text - -%macro filter_h4_fn 1-2 12 -cglobal vp9_%1_8tap_1d_h_4_10, 6, 6, %2, dst, dstride, src, sstride, h, filtery - mova m5, [pw_1023] -.body: -%if notcpuflag(sse4) && ARCH_X86_64 - pxor m11, m11 -%endif - mova m6, [pd_64] - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+32] - mova m9, [filteryq+64] - mova m10, [filteryq+96] -%endif -.loop: - movh m0, [srcq-6] - movh m1, [srcq-4] - movh m2, [srcq-2] - movh m3, [srcq+0] - movh m4, [srcq+2] - punpcklwd m0, m1 - punpcklwd m2, m3 - pmaddwd m0, m7 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m2, m8 -%else - pmaddwd m2, [filteryq+32] -%endif - movu m1, [srcq+4] - movu m3, [srcq+6] - paddd m0, m2 - movu m2, [srcq+8] - add srcq, sstrideq - punpcklwd m4, m1 - punpcklwd m3, m2 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m4, m9 - pmaddwd m3, m10 -%else - pmaddwd m4, [filteryq+64] - pmaddwd m3, [filteryq+96] -%endif - paddd m0, m4 - paddd m0, m3 - paddd m0, m6 - psrad m0, 7 -%if cpuflag(sse4) - packusdw m0, m0 -%else - packssdw m0, m0 -%endif -%ifidn %1, avg - movh m1, [dstq] -%endif - pminsw m0, m5 -%if notcpuflag(sse4) -%if ARCH_X86_64 - pmaxsw m0, m11 -%else - pxor m2, m2 - pmaxsw m0, m2 -%endif -%endif -%ifidn %1, avg - pavgw m0, m1 -%endif - movh [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET - -cglobal vp9_%1_8tap_1d_h_4_12, 6, 6, %2, dst, dstride, src, sstride, h, filtery - mova m5, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_%1_8tap_1d_h_4_10 %+ SUFFIX).body -%endmacro - -INIT_XMM sse2 -filter_h4_fn put -filter_h4_fn avg - -%macro filter_h_fn 1-2 12 -%assign %%px mmsize/2 -cglobal vp9_%1_8tap_1d_h_ %+ %%px %+ _10, 6, 6, %2, dst, dstride, src, sstride, h, filtery - mova m5, [pw_1023] -.body: -%if notcpuflag(sse4) && ARCH_X86_64 - pxor m11, m11 -%endif - mova m6, [pd_64] - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+32] - mova m9, [filteryq+64] - mova m10, [filteryq+96] -%endif -.loop: - movu m0, [srcq-6] - movu m1, [srcq-4] - movu m2, [srcq-2] - movu m3, [srcq+0] - movu m4, [srcq+2] - pmaddwd m0, m7 - pmaddwd m1, m7 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m2, m8 - pmaddwd m3, m8 - pmaddwd m4, m9 -%else - pmaddwd m2, [filteryq+32] - pmaddwd m3, [filteryq+32] - pmaddwd m4, [filteryq+64] -%endif - paddd m0, m2 - paddd m1, m3 - paddd m0, m4 - movu m2, [srcq+4] - movu m3, [srcq+6] - movu m4, [srcq+8] - add srcq, sstrideq -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m2, m9 - pmaddwd m3, m10 - pmaddwd m4, m10 -%else - pmaddwd m2, [filteryq+64] - pmaddwd m3, [filteryq+96] - pmaddwd m4, [filteryq+96] -%endif - paddd m1, m2 - paddd m0, m3 - paddd m1, m4 - paddd m0, m6 - paddd m1, m6 - psrad m0, 7 - psrad m1, 7 -%if cpuflag(sse4) - packusdw m0, m0 - packusdw m1, m1 -%else - packssdw m0, m0 - packssdw m1, m1 -%endif - punpcklwd m0, m1 - pminsw m0, m5 -%if notcpuflag(sse4) -%if ARCH_X86_64 - pmaxsw m0, m11 -%else - pxor m2, m2 - pmaxsw m0, m2 -%endif -%endif -%ifidn %1, avg - pavgw m0, [dstq] -%endif - mova [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET - -cglobal vp9_%1_8tap_1d_h_ %+ %%px %+ _12, 6, 6, %2, dst, dstride, src, sstride, h, filtery - mova m5, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_%1_8tap_1d_h_ %+ %%px %+ _10 %+ SUFFIX).body -%endmacro - -INIT_XMM sse2 -filter_h_fn put -filter_h_fn avg -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -filter_h_fn put -filter_h_fn avg -%endif - -%macro filter_v4_fn 1-2 12 -%if ARCH_X86_64 -cglobal vp9_%1_8tap_1d_v_4_10, 6, 8, %2, dst, dstride, src, sstride, h, filtery, src4, sstride3 -%else -cglobal vp9_%1_8tap_1d_v_4_10, 4, 7, %2, dst, dstride, src, sstride, filtery, src4, sstride3 - mov filteryq, r5mp -%define hd r4mp -%endif - mova m5, [pw_1023] -.body: -%if notcpuflag(sse4) && ARCH_X86_64 - pxor m11, m11 -%endif - mova m6, [pd_64] - lea sstride3q, [sstrideq*3] - lea src4q, [srcq+sstrideq] - sub srcq, sstride3q - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+ 32] - mova m9, [filteryq+ 64] - mova m10, [filteryq+ 96] -%endif -.loop: - ; FIXME maybe reuse loads from previous rows, or just - ; more generally unroll this to prevent multiple loads of - ; the same data? - movh m0, [srcq] - movh m1, [srcq+sstrideq] - movh m2, [srcq+sstrideq*2] - movh m3, [srcq+sstride3q] - add srcq, sstrideq - movh m4, [src4q] - punpcklwd m0, m1 - punpcklwd m2, m3 - pmaddwd m0, m7 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m2, m8 -%else - pmaddwd m2, [filteryq+ 32] -%endif - movh m1, [src4q+sstrideq] - movh m3, [src4q+sstrideq*2] - paddd m0, m2 - movh m2, [src4q+sstride3q] - add src4q, sstrideq - punpcklwd m4, m1 - punpcklwd m3, m2 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m4, m9 - pmaddwd m3, m10 -%else - pmaddwd m4, [filteryq+ 64] - pmaddwd m3, [filteryq+ 96] -%endif - paddd m0, m4 - paddd m0, m3 - paddd m0, m6 - psrad m0, 7 -%if cpuflag(sse4) - packusdw m0, m0 -%else - packssdw m0, m0 -%endif -%ifidn %1, avg - movh m1, [dstq] -%endif - pminsw m0, m5 -%if notcpuflag(sse4) -%if ARCH_X86_64 - pmaxsw m0, m11 -%else - pxor m2, m2 - pmaxsw m0, m2 -%endif -%endif -%ifidn %1, avg - pavgw m0, m1 -%endif - movh [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET - -%if ARCH_X86_64 -cglobal vp9_%1_8tap_1d_v_4_12, 6, 8, %2, dst, dstride, src, sstride, h, filtery, src4, sstride3 -%else -cglobal vp9_%1_8tap_1d_v_4_12, 4, 7, %2, dst, dstride, src, sstride, filtery, src4, sstride3 - mov filteryq, r5mp -%endif - mova m5, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_%1_8tap_1d_v_4_10 %+ SUFFIX).body -%endmacro - -INIT_XMM sse2 -filter_v4_fn put -filter_v4_fn avg - -%macro filter_v_fn 1-2 13 -%assign %%px mmsize/2 -%if ARCH_X86_64 -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _10, 6, 8, %2, dst, dstride, src, sstride, h, filtery, src4, sstride3 -%else -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _10, 4, 7, %2, dst, dstride, src, sstride, filtery, src4, sstride3 - mov filteryq, r5mp -%define hd r4mp -%endif - mova m5, [pw_1023] -.body: -%if notcpuflag(sse4) && ARCH_X86_64 - pxor m12, m12 -%endif -%if ARCH_X86_64 - mova m11, [pd_64] -%endif - lea sstride3q, [sstrideq*3] - lea src4q, [srcq+sstrideq] - sub srcq, sstride3q - mova m7, [filteryq+ 0] -%if ARCH_X86_64 && mmsize > 8 - mova m8, [filteryq+ 32] - mova m9, [filteryq+ 64] - mova m10, [filteryq+ 96] -%endif -.loop: - ; FIXME maybe reuse loads from previous rows, or just - ; more generally unroll this to prevent multiple loads of - ; the same data? - movu m0, [srcq] - movu m1, [srcq+sstrideq] - movu m2, [srcq+sstrideq*2] - movu m3, [srcq+sstride3q] - add srcq, sstrideq - movu m4, [src4q] - SBUTTERFLY wd, 0, 1, 6 - SBUTTERFLY wd, 2, 3, 6 - pmaddwd m0, m7 - pmaddwd m1, m7 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m2, m8 - pmaddwd m3, m8 -%else - pmaddwd m2, [filteryq+ 32] - pmaddwd m3, [filteryq+ 32] -%endif - paddd m0, m2 - paddd m1, m3 - movu m2, [src4q+sstrideq] - movu m3, [src4q+sstrideq*2] - SBUTTERFLY wd, 4, 2, 6 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m4, m9 - pmaddwd m2, m9 -%else - pmaddwd m4, [filteryq+ 64] - pmaddwd m2, [filteryq+ 64] -%endif - paddd m0, m4 - paddd m1, m2 - movu m4, [src4q+sstride3q] - add src4q, sstrideq - SBUTTERFLY wd, 3, 4, 6 -%if ARCH_X86_64 && mmsize > 8 - pmaddwd m3, m10 - pmaddwd m4, m10 -%else - pmaddwd m3, [filteryq+ 96] - pmaddwd m4, [filteryq+ 96] -%endif - paddd m0, m3 - paddd m1, m4 -%if ARCH_X86_64 - paddd m0, m11 - paddd m1, m11 -%else - paddd m0, [pd_64] - paddd m1, [pd_64] -%endif - psrad m0, 7 - psrad m1, 7 -%if cpuflag(sse4) - packusdw m0, m1 -%else - packssdw m0, m1 -%endif - pminsw m0, m5 -%if notcpuflag(sse4) -%if ARCH_X86_64 - pmaxsw m0, m12 -%else - pxor m2, m2 - pmaxsw m0, m2 -%endif -%endif -%ifidn %1, avg - pavgw m0, [dstq] -%endif - mova [dstq], m0 - add dstq, dstrideq - dec hd - jg .loop - RET - -%if ARCH_X86_64 -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _12, 6, 8, %2, dst, dstride, src, sstride, h, filtery, src4, sstride3 -%else -cglobal vp9_%1_8tap_1d_v_ %+ %%px %+ _12, 4, 7, %2, dst, dstride, src, sstride, filtery, src4, sstride3 - mov filteryq, r5mp -%endif - mova m5, [pw_4095] - jmp mangle(private_prefix %+ _ %+ vp9_%1_8tap_1d_v_ %+ %%px %+ _10 %+ SUFFIX).body -%endmacro - -INIT_XMM sse2 -filter_v_fn put -filter_v_fn avg -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -filter_v_fn put -filter_v_fn avg -%endif diff --git a/libavcodec/x86/xvididct.asm b/libavcodec/x86/xvididct.asm deleted file mode 100644 index 0220885da6..0000000000 --- a/libavcodec/x86/xvididct.asm +++ /dev/null @@ -1,983 +0,0 @@ -; XVID MPEG-4 VIDEO CODEC -; -; Conversion from gcc syntax to x264asm syntax with modifications -; by Christophe Gisquet -; -; =========== SSE2 inverse discrete cosine transform =========== -; -; Copyright(C) 2003 Pascal Massimino -; -; Conversion to gcc syntax with modifications -; by Alexander Strange -; -; Originally from dct/x86_asm/fdct_sse2_skal.asm in Xvid. -; -; Vertical pass is an implementation of the scheme: -; Loeffler C., Ligtenberg A., and Moschytz C.S.: -; Practical Fast 1D DCT Algorithm with Eleven Multiplications, -; Proc. ICASSP 1989, 988-991. -; -; Horizontal pass is a double 4x4 vector/matrix multiplication, -; (see also Intel's Application Note 922: -; http://developer.intel.com/vtune/cbts/strmsimd/922down.htm -; Copyright (C) 1999 Intel Corporation) -; -; More details at http://skal.planet-d.net/coding/dct.html -; -; ======= MMX and XMM forward discrete cosine transform ======= -; -; Copyright(C) 2001 Peter Ross -; -; Originally provided by Intel at AP-922 -; http://developer.intel.com/vtune/cbts/strmsimd/922down.htm -; (See more app notes at http://developer.intel.com/vtune/cbts/strmsimd/appnotes.htm) -; but in a limited edition. -; New macro implements a column part for precise iDCT -; The routine precision now satisfies IEEE standard 1180-1990. -; -; Copyright(C) 2000-2001 Peter Gubanov -; Rounding trick Copyright(C) 2000 Michel Lespinasse -; -; http://www.elecard.com/peter/idct.html -; http://www.linuxvideo.org/mpeg2dec/ -; -; These examples contain code fragments for first stage iDCT 8x8 -; (for rows) and first stage DCT 8x8 (for columns) -; -; conversion to gcc syntax by Michael Niedermayer -; -; ====================================================================== -; -; 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA -; Similar to tg_1_16 in MMX code -tan1: times 8 dw 13036 -tan2: times 8 dw 27146 -tan3: times 8 dw 43790 -sqrt2: times 8 dw 23170 - -; SSE2 tables -iTab1: dw 0x4000, 0x539f, 0xc000, 0xac61, 0x4000, 0xdd5d, 0x4000, 0xdd5d - dw 0x4000, 0x22a3, 0x4000, 0x22a3, 0xc000, 0x539f, 0x4000, 0xac61 - dw 0x3249, 0x11a8, 0x4b42, 0xee58, 0x11a8, 0x4b42, 0x11a8, 0xcdb7 - dw 0x58c5, 0x4b42, 0xa73b, 0xcdb7, 0x3249, 0xa73b, 0x4b42, 0xa73b -iTab2: dw 0x58c5, 0x73fc, 0xa73b, 0x8c04, 0x58c5, 0xcff5, 0x58c5, 0xcff5 - dw 0x58c5, 0x300b, 0x58c5, 0x300b, 0xa73b, 0x73fc, 0x58c5, 0x8c04 - dw 0x45bf, 0x187e, 0x6862, 0xe782, 0x187e, 0x6862, 0x187e, 0xba41 - dw 0x7b21, 0x6862, 0x84df, 0xba41, 0x45bf, 0x84df, 0x6862, 0x84df -iTab3: dw 0x539f, 0x6d41, 0xac61, 0x92bf, 0x539f, 0xd2bf, 0x539f, 0xd2bf - dw 0x539f, 0x2d41, 0x539f, 0x2d41, 0xac61, 0x6d41, 0x539f, 0x92bf - dw 0x41b3, 0x1712, 0x6254, 0xe8ee, 0x1712, 0x6254, 0x1712, 0xbe4d - dw 0x73fc, 0x6254, 0x8c04, 0xbe4d, 0x41b3, 0x8c04, 0x6254, 0x8c04 -iTab4: dw 0x4b42, 0x6254, 0xb4be, 0x9dac, 0x4b42, 0xd746, 0x4b42, 0xd746 - dw 0x4b42, 0x28ba, 0x4b42, 0x28ba, 0xb4be, 0x6254, 0x4b42, 0x9dac - dw 0x3b21, 0x14c3, 0x587e, 0xeb3d, 0x14c3, 0x587e, 0x14c3, 0xc4df - dw 0x6862, 0x587e, 0x979e, 0xc4df, 0x3b21, 0x979e, 0x587e, 0x979e - -%if ARCH_X86_32 -; ----------------------------------------------------------------------------- -; -; The first stage iDCT 8x8 - inverse DCTs of rows -; -; ----------------------------------------------------------------------------- -; The 8-point inverse DCT direct algorithm -; ----------------------------------------------------------------------------- -; -; static const short w[32] = { -; FIX(cos_4_16), FIX(cos_2_16), FIX(cos_4_16), FIX(cos_6_16), -; FIX(cos_4_16), FIX(cos_6_16), -FIX(cos_4_16), -FIX(cos_2_16), -; FIX(cos_4_16), -FIX(cos_6_16), -FIX(cos_4_16), FIX(cos_2_16), -; FIX(cos_4_16), -FIX(cos_2_16), FIX(cos_4_16), -FIX(cos_6_16), -; FIX(cos_1_16), FIX(cos_3_16), FIX(cos_5_16), FIX(cos_7_16), -; FIX(cos_3_16), -FIX(cos_7_16), -FIX(cos_1_16), -FIX(cos_5_16), -; FIX(cos_5_16), -FIX(cos_1_16), FIX(cos_7_16), FIX(cos_3_16), -; FIX(cos_7_16), -FIX(cos_5_16), FIX(cos_3_16), -FIX(cos_1_16) }; -; -; #define DCT_8_INV_ROW(x, y) -; { -; int a0, a1, a2, a3, b0, b1, b2, b3; -; -; a0 = x[0] * w[0] + x[2] * w[1] + x[4] * w[2] + x[6] * w[3]; -; a1 = x[0] * w[4] + x[2] * w[5] + x[4] * w[6] + x[6] * w[7]; -; a2 = x[0] * w[8] + x[2] * w[9] + x[4] * w[10] + x[6] * w[11]; -; a3 = x[0] * w[12] + x[2] * w[13] + x[4] * w[14] + x[6] * w[15]; -; b0 = x[1] * w[16] + x[3] * w[17] + x[5] * w[18] + x[7] * w[19]; -; b1 = x[1] * w[20] + x[3] * w[21] + x[5] * w[22] + x[7] * w[23]; -; b2 = x[1] * w[24] + x[3] * w[25] + x[5] * w[26] + x[7] * w[27]; -; b3 = x[1] * w[28] + x[3] * w[29] + x[5] * w[30] + x[7] * w[31]; -; -; y[0] = SHIFT_ROUND(a0 + b0); -; y[1] = SHIFT_ROUND(a1 + b1); -; y[2] = SHIFT_ROUND(a2 + b2); -; y[3] = SHIFT_ROUND(a3 + b3); -; y[4] = SHIFT_ROUND(a3 - b3); -; y[5] = SHIFT_ROUND(a2 - b2); -; y[6] = SHIFT_ROUND(a1 - b1); -; y[7] = SHIFT_ROUND(a0 - b0); -; } -; -; ----------------------------------------------------------------------------- -; -; In this implementation the outputs of the iDCT-1D are multiplied -; for rows 0,4 - by cos_4_16, -; for rows 1,7 - by cos_1_16, -; for rows 2,6 - by cos_2_16, -; for rows 3,5 - by cos_3_16 -; and are shifted to the left for better accuracy. -; -; For the constants used, -; FIX(float_const) = (short) (float_const * (1 << 15) + 0.5) -; -; ----------------------------------------------------------------------------- - -; ----------------------------------------------------------------------------- -; Tables for mmx processors -; ----------------------------------------------------------------------------- - -; Table for rows 0,4 - constants are multiplied by cos_4_16 -tab_i_04_mmx: dw 16384, 16384, 16384, -16384 - dw 21407, 8867, 8867, -21407 ; w07 w05 w03 w01 - dw 16384, -16384, 16384, 16384 ; w14 w12 w10 w08 - dw -8867, 21407, -21407, -8867 ; w15 w13 w11 w09 - dw 22725, 12873, 19266, -22725 ; w22 w20 w18 w16 - dw 19266, 4520, -4520, -12873 ; w23 w21 w19 w17 - dw 12873, 4520, 4520, 19266 ; w30 w28 w26 w24 - dw -22725, 19266, -12873, -22725 ; w31 w29 w27 w25 -; Table for rows 1,7 - constants are multiplied by cos_1_16 - dw 22725, 22725, 22725, -22725 ; movq-> w06 w04 w02 w00 - dw 29692, 12299, 12299, -29692 ; w07 w05 w03 w01 - dw 22725, -22725, 22725, 22725 ; w14 w12 w10 w08 - dw -12299, 29692, -29692, -12299 ; w15 w13 w11 w09 - dw 31521, 17855, 26722, -31521 ; w22 w20 w18 w16 - dw 26722, 6270, -6270, -17855 ; w23 w21 w19 w17 - dw 17855, 6270, 6270, 26722 ; w30 w28 w26 w24 - dw -31521, 26722, -17855, -31521 ; w31 w29 w27 w25 -; Table for rows 2,6 - constants are multiplied by cos_2_16 - dw 21407, 21407, 21407, -21407 ; movq-> w06 w04 w02 w00 - dw 27969, 11585, 11585, -27969 ; w07 w05 w03 w01 - dw 21407, -21407, 21407, 21407 ; w14 w12 w10 w08 - dw -11585, 27969, -27969, -11585 ; w15 w13 w11 w09 - dw 29692, 16819, 25172, -29692 ; w22 w20 w18 w16 - dw 25172, 5906, -5906, -16819 ; w23 w21 w19 w17 - dw 16819, 5906, 5906, 25172 ; w30 w28 w26 w24 - dw -29692, 25172, -16819, -29692 ; w31 w29 w27 w25 -; Table for rows 3,5 - constants are multiplied by cos_3_16 - dw 19266, 19266, 19266, -19266 ; movq-> w06 w04 w02 w00 - dw 25172, 10426, 10426, -25172 ; w07 w05 w03 w01 - dw 19266, -19266, 19266, 19266 ; w14 w12 w10 w08 - dw -10426, 25172, -25172, -10426 ; w15 w13 w11 w09 - dw 26722, 15137, 22654, -26722 ; w22 w20 w18 w16 - dw 22654, 5315, -5315, -15137 ; w23 w21 w19 w17 - dw 15137, 5315, 5315, 22654 ; w30 w28 w26 w24 - dw -26722, 22654, -15137, -26722 ; w31 w29 w27 w25 - -; ----------------------------------------------------------------------------- -; Tables for xmm processors -; ----------------------------------------------------------------------------- - -; %3 for rows 0,4 - constants are multiplied by cos_4_16 -tab_i_04_xmm: dw 16384, 21407, 16384, 8867 ; movq-> w05 w04 w01 w00 - dw 16384, 8867, -16384, -21407 ; w07 w06 w03 w02 - dw 16384, -8867, 16384, -21407 ; w13 w12 w09 w08 - dw -16384, 21407, 16384, -8867 ; w15 w14 w11 w10 - dw 22725, 19266, 19266, -4520 ; w21 w20 w17 w16 - dw 12873, 4520, -22725, -12873 ; w23 w22 w19 w18 - dw 12873, -22725, 4520, -12873 ; w29 w28 w25 w24 - dw 4520, 19266, 19266, -22725 ; w31 w30 w27 w26 -; %3 for rows 1,7 - constants are multiplied by cos_1_16 - dw 22725, 29692, 22725, 12299 ; movq-> w05 w04 w01 w00 - dw 22725, 12299, -22725, -29692 ; w07 w06 w03 w02 - dw 22725, -12299, 22725, -29692 ; w13 w12 w09 w08 - dw -22725, 29692, 22725, -12299 ; w15 w14 w11 w10 - dw 31521, 26722, 26722, -6270 ; w21 w20 w17 w16 - dw 17855, 6270, -31521, -17855 ; w23 w22 w19 w18 - dw 17855, -31521, 6270, -17855 ; w29 w28 w25 w24 - dw 6270, 26722, 26722, -31521 ; w31 w30 w27 w26 -; %3 for rows 2,6 - constants are multiplied by cos_2_16 - dw 21407, 27969, 21407, 11585 ; movq-> w05 w04 w01 w00 - dw 21407, 11585, -21407, -27969 ; w07 w06 w03 w02 - dw 21407, -11585, 21407, -27969 ; w13 w12 w09 w08 - dw -21407, 27969, 21407, -11585 ; w15 w14 w11 w10 - dw 29692, 25172, 25172, -5906 ; w21 w20 w17 w16 - dw 16819, 5906, -29692, -16819 ; w23 w22 w19 w18 - dw 16819, -29692, 5906, -16819 ; w29 w28 w25 w24 - dw 5906, 25172, 25172, -29692 ; w31 w30 w27 w26 -; %3 for rows 3,5 - constants are multiplied by cos_3_16 - dw 19266, 25172, 19266, 10426 ; movq-> w05 w04 w01 w00 - dw 19266, 10426, -19266, -25172 ; w07 w06 w03 w02 - dw 19266, -10426, 19266, -25172 ; w13 w12 w09 w08 - dw -19266, 25172, 19266, -10426 ; w15 w14 w11 w10 - dw 26722, 22654, 22654, -5315 ; w21 w20 w17 w16 - dw 15137, 5315, -26722, -15137 ; w23 w22 w19 w18 - dw 15137, -26722, 5315, -15137 ; w29 w28 w25 w24 - dw 5315, 22654, 22654, -26722 ; w31 w30 w27 w26 -%endif ; ~ARCH_X86_32 - -; Similar to rounder_0 in MMX code -; 4 first similar, then: 4*8->6*16 5*8->4*16 6/7*8->5*16 -walkenIdctRounders: times 4 dd 65536 - times 4 dd 3597 - times 4 dd 2260 - times 4 dd 1203 - times 4 dd 120 - times 4 dd 512 - times 2 dd 0 - -pb_127: times 8 db 127 - -SECTION .text - -; Temporary storage before the column pass -%define ROW1 xmm6 -%define ROW3 xmm4 -%define ROW5 xmm5 -%define ROW7 xmm7 - -%macro CLEAR_ODD 1 - pxor %1, %1 -%endmacro -%macro PUT_ODD 1 - pshufhw %1, xmm2, 0x1B -%endmacro - -%macro MOV32 2 -%if ARCH_X86_32 - movdqa %2, %1 -%endif -%endmacro - -%macro CLEAR_EVEN 1 -%if ARCH_X86_64 - CLEAR_ODD %1 -%endif -%endmacro - -%macro PUT_EVEN 1 -%if ARCH_X86_64 - PUT_ODD %1 -%else - pshufhw xmm2, xmm2, 0x1B - movdqa %1, xmm2 -%endif -%endmacro - -%if ARCH_X86_64 -%define ROW0 xmm8 -%define REG0 ROW0 -%define ROW2 xmm9 -%define REG2 ROW2 -%define ROW4 xmm10 -%define REG4 ROW4 -%define ROW6 xmm11 -%define REG6 ROW6 -%define XMMS xmm12 -%define SREG2 REG2 -%define TAN3 xmm13 -%define TAN1 xmm14 -%else -%define ROW0 [BLOCK + 0*16] -%define REG0 xmm4 -%define ROW2 [BLOCK + 2*16] -%define REG2 xmm4 -%define ROW4 [BLOCK + 4*16] -%define REG4 xmm6 -%define ROW6 [BLOCK + 6*16] -%define REG6 xmm6 -%define XMMS xmm2 -%define SREG2 xmm7 -%define TAN3 xmm0 -%define TAN1 xmm2 -%endif - -%macro JZ 2 - test %1, %1 - jz .%2 -%endmacro - -%macro JNZ 2 - test %1, %1 - jnz .%2 -%endmacro - -%macro TEST_ONE_ROW 4 ; src, reg, clear, arg - %3 %4 - movq mm1, [%1] - por mm1, [%1 + 8] - paddusb mm1, mm0 - pmovmskb %2, mm1 -%endmacro - -;row1, row2, reg1, reg2, clear1, arg1, clear2, arg2 -%macro TEST_TWO_ROWS 8 - %5 %6 - %7 %8 - movq mm1, [%1 + 0] - por mm1, [%1 + 8] - movq mm2, [%2 + 0] - por mm2, [%2 + 8] - paddusb mm1, mm0 - paddusb mm2, mm0 - pmovmskb %3, mm1 - pmovmskb %4, mm2 -%endmacro - -; IDCT pass on rows. -%macro iMTX_MULT 4-5 ; src, table, put, arg, rounder - movdqa xmm3, [%1] - movdqa xmm0, xmm3 - pshufd xmm1, xmm3, 0x11 ; 4602 - punpcklqdq xmm0, xmm0 ; 0246 - pmaddwd xmm0, [%2] - pmaddwd xmm1, [%2+16] - pshufd xmm2, xmm3, 0xBB ; 5713 - punpckhqdq xmm3, xmm3 ; 1357 - pmaddwd xmm2, [%2+32] - pmaddwd xmm3, [%2+48] - paddd xmm0, xmm1 - paddd xmm2, xmm3 -%if %0 == 5 - paddd xmm0, [walkenIdctRounders+%5] -%endif - movdqa xmm3, xmm2 - paddd xmm2, xmm0 - psubd xmm0, xmm3 - psrad xmm2, 11 - psrad xmm0, 11 - packssdw xmm2, xmm0 - %3 %4 -%endmacro - -%macro iLLM_HEAD 0 - movdqa TAN3, [tan3] - movdqa TAN1, [tan1] -%endmacro - -%macro FIRST_HALF 2 ; %1=dct %2=type(normal,add,put) - psraw xmm5, 6 - psraw REG0, 6 - psraw TAN3, 6 - psraw xmm3, 6 - ; dct coeffs must still be written for AC prediction -%if %2 == 0 - movdqa [%1+1*16], TAN3 - movdqa [%1+2*16], xmm3 - movdqa [%1+5*16], REG0 - movdqa [%1+6*16], xmm5 -%else - ; Must now load args as gprs are no longer used for masks - ; DEST is set to where address of dest was loaded - %if ARCH_X86_32 - %if %2 == 2 ; Not enough xmms, store - movdqa [%1+1*16], TAN3 - movdqa [%1+2*16], xmm3 - movdqa [%1+5*16], REG0 - movdqa [%1+6*16], xmm5 - %endif - %xdefine DEST r2q ; BLOCK is r0, stride r1 - movifnidn DEST, destm - movifnidn strideq, stridem - %else - %xdefine DEST r0q - %endif - lea r3q, [3*strideq] - %if %2 == 1 - packuswb TAN3, xmm3 - packuswb xmm5, REG0 - movq [DEST + strideq], TAN3 - movhps [DEST + 2*strideq], TAN3 - ; REG0 and TAN3 are now available (and likely used in second half) - %endif -%endif -%endmacro - -%macro SECOND_HALF 6 ; %1=dct %2=type(normal,add,put) 3-6: xmms - psraw %3, 6 - psraw %4, 6 - psraw %5, 6 - psraw %6, 6 - ; dct coeffs must still be written for AC prediction -%if %2 == 0 - movdqa [%1+0*16], %3 - movdqa [%1+3*16], %5 - movdqa [%1+4*16], %6 - movdqa [%1+7*16], %4 -%elif %2 == 1 - packuswb %3, %5 - packuswb %6, %4 - ; address of dest may have been loaded - movq [DEST], %3 - movhps [DEST + r3q], %3 - lea DEST, [DEST + 4*strideq] - movq [DEST], %6 - movhps [DEST + r3q], %6 - ; and now write remainder of first half - movq [DEST + 2*strideq], xmm5 - movhps [DEST + strideq], xmm5 -%elif %2 == 2 - pxor xmm0, xmm0 - %if ARCH_X86_32 - ; free: m3 REG0=m4 m5 - ; input: m1, m7, m2, m6 - movq xmm3, [DEST+0*strideq] - movq xmm4, [DEST+1*strideq] - punpcklbw xmm3, xmm0 - punpcklbw xmm4, xmm0 - paddsw xmm3, %3 - paddsw xmm4, [%1 + 1*16] - movq %3, [DEST+2*strideq] - movq xmm5, [DEST+ r3q] - punpcklbw %3, xmm0 - punpcklbw xmm5, xmm0 - paddsw %3, [%1 + 2*16] - paddsw xmm5, %5 - packuswb xmm3, xmm4 - packuswb %3, xmm5 - movq [DEST+0*strideq], xmm3 - movhps [DEST+1*strideq], xmm3 - movq [DEST+2*strideq], %3 - movhps [DEST+ r3q], %3 - lea DEST, [DEST+4*strideq] - movq xmm3, [DEST+0*strideq] - movq xmm4, [DEST+1*strideq] - movq %3, [DEST+2*strideq] - movq xmm5, [DEST+ r3q] - punpcklbw xmm3, xmm0 - punpcklbw xmm4, xmm0 - punpcklbw %3, xmm0 - punpcklbw xmm5, xmm0 - paddsw xmm3, %6 - paddsw xmm4, [%1 + 5*16] - paddsw %3, [%1 + 6*16] - paddsw xmm5, %4 - packuswb xmm3, xmm4 - packuswb %3, xmm5 - movq [DEST+0*strideq], xmm3 - movhps [DEST+1*strideq], xmm3 - movq [DEST+2*strideq], %3 - movhps [DEST+ r3q], %3 - %else - ; l1:TAN3=m13 l2:m3 l5:REG0=m8 l6=m5 - ; input: m1, m7/SREG2=m9, TAN1=m14, REG4=m10 - movq xmm2, [DEST+0*strideq] - movq xmm4, [DEST+1*strideq] - movq xmm12, [DEST+2*strideq] - movq xmm11, [DEST+ r3q] - punpcklbw xmm2, xmm0 - punpcklbw xmm4, xmm0 - punpcklbw xmm12, xmm0 - punpcklbw xmm11, xmm0 - paddsw xmm2, %3 - paddsw xmm4, TAN3 - paddsw xmm12, xmm3 - paddsw xmm11, %5 - packuswb xmm2, xmm4 - packuswb xmm12, xmm11 - movq [DEST+0*strideq], xmm2 - movhps [DEST+1*strideq], xmm2 - movq [DEST+2*strideq], xmm12 - movhps [DEST+ r3q], xmm12 - lea DEST, [DEST+4*strideq] - movq xmm2, [DEST+0*strideq] - movq xmm4, [DEST+1*strideq] - movq xmm12, [DEST+2*strideq] - movq xmm11, [DEST+ r3q] - punpcklbw xmm2, xmm0 - punpcklbw xmm4, xmm0 - punpcklbw xmm12, xmm0 - punpcklbw xmm11, xmm0 - paddsw xmm2, %6 - paddsw xmm4, REG0 - paddsw xmm12, xmm5 - paddsw xmm11, %4 - packuswb xmm2, xmm4 - packuswb xmm12, xmm11 - movq [DEST+0*strideq], xmm2 - movhps [DEST+1*strideq], xmm2 - movq [DEST+2*strideq], xmm12 - movhps [DEST+ r3q], xmm12 - %endif -%endif -%endmacro - - -; IDCT pass on columns. -%macro iLLM_PASS 2 ; %1=dct %2=type(normal,add,put) - movdqa xmm1, TAN3 - movdqa xmm3, TAN1 - pmulhw TAN3, xmm4 - pmulhw xmm1, xmm5 - paddsw TAN3, xmm4 - paddsw xmm1, xmm5 - psubsw TAN3, xmm5 - paddsw xmm1, xmm4 - pmulhw xmm3, xmm7 - pmulhw TAN1, xmm6 - paddsw xmm3, xmm6 - psubsw TAN1, xmm7 - movdqa xmm7, xmm3 - movdqa xmm6, TAN1 - psubsw xmm3, xmm1 - psubsw TAN1, TAN3 - paddsw xmm1, xmm7 - paddsw TAN3, xmm6 - movdqa xmm6, xmm3 - psubsw xmm3, TAN3 - paddsw TAN3, xmm6 - movdqa xmm4, [sqrt2] - pmulhw xmm3, xmm4 - pmulhw TAN3, xmm4 - paddsw TAN3, TAN3 - paddsw xmm3, xmm3 - movdqa xmm7, [tan2] - MOV32 ROW2, REG2 - MOV32 ROW6, REG6 - movdqa xmm5, xmm7 - pmulhw xmm7, REG6 - pmulhw xmm5, REG2 - paddsw xmm7, REG2 - psubsw xmm5, REG6 - MOV32 ROW0, REG0 - MOV32 ROW4, REG4 - MOV32 TAN1, [BLOCK] - movdqa XMMS, REG0 - psubsw REG0, REG4 - paddsw REG4, XMMS - movdqa XMMS, REG4 - psubsw REG4, xmm7 - paddsw xmm7, XMMS - movdqa XMMS, REG0 - psubsw REG0, xmm5 - paddsw xmm5, XMMS - movdqa XMMS, xmm5 - psubsw xmm5, TAN3 - paddsw TAN3, XMMS - movdqa XMMS, REG0 - psubsw REG0, xmm3 - paddsw xmm3, XMMS - MOV32 [BLOCK], TAN1 - - FIRST_HALF %1, %2 - - movdqa xmm0, xmm7 - movdqa xmm4, REG4 - psubsw xmm7, xmm1 - psubsw REG4, TAN1 - paddsw xmm1, xmm0 - paddsw TAN1, xmm4 - - SECOND_HALF %1, %2, xmm1, xmm7, TAN1, REG4 -%endmacro - -; IDCT pass on columns, assuming rows 4-7 are zero -%macro iLLM_PASS_SPARSE 2 ; %1=dct %2=type(normal,put,add) - pmulhw TAN3, xmm4 - paddsw TAN3, xmm4 - movdqa xmm3, xmm6 - pmulhw TAN1, xmm6 - movdqa xmm1, xmm4 - psubsw xmm3, xmm1 - paddsw xmm1, xmm6 - movdqa xmm6, TAN1 - psubsw TAN1, TAN3 - paddsw TAN3, xmm6 - movdqa xmm6, xmm3 - psubsw xmm3, TAN3 - paddsw TAN3, xmm6 - movdqa xmm4, [sqrt2] - pmulhw xmm3, xmm4 - pmulhw TAN3, xmm4 - paddsw TAN3, TAN3 - paddsw xmm3, xmm3 - movdqa xmm5, [tan2] - MOV32 ROW2, SREG2 - pmulhw xmm5, SREG2 - MOV32 ROW0, REG0 - movdqa xmm6, REG0 - psubsw xmm6, SREG2 - paddsw SREG2, REG0 - MOV32 TAN1, [BLOCK] - movdqa XMMS, REG0 - psubsw REG0, xmm5 - paddsw xmm5, XMMS - movdqa XMMS, xmm5 - psubsw xmm5, TAN3 - paddsw TAN3, XMMS - movdqa XMMS, REG0 - psubsw REG0, xmm3 - paddsw xmm3, XMMS - MOV32 [BLOCK], TAN1 - - FIRST_HALF %1, %2 - - movdqa xmm0, SREG2 - movdqa xmm4, xmm6 - psubsw SREG2, xmm1 - psubsw xmm6, TAN1 - paddsw xmm1, xmm0 - paddsw TAN1, xmm4 - - SECOND_HALF %1, %2, xmm1, SREG2, TAN1, xmm6 -%endmacro - -%macro IDCT_SSE2 1 ; 0=normal 1=put 2=add -%if %1 == 0 || ARCH_X86_32 - %define GPR0 r1d - %define GPR1 r2d - %define GPR2 r3d - %define GPR3 r4d - %define NUM_GPRS 5 -%else - %define GPR0 r3d - %define GPR1 r4d - %define GPR2 r5d - %define GPR3 r6d - %define NUM_GPRS 7 -%endif -%if %1 == 0 -cglobal xvid_idct, 1, NUM_GPRS, 8+7*ARCH_X86_64, block -%xdefine BLOCK blockq -%else - %if %1 == 1 -cglobal xvid_idct_put, 0, NUM_GPRS, 8+7*ARCH_X86_64, dest, stride, block - %else -cglobal xvid_idct_add, 0, NUM_GPRS, 8+7*ARCH_X86_64, dest, stride, block - %endif - %if ARCH_X86_64 - %xdefine BLOCK blockq - %else - mov r0q, blockm - %xdefine BLOCK r0q - %endif -%endif - movq mm0, [pb_127] - iMTX_MULT BLOCK + 0*16, iTab1, PUT_EVEN, ROW0, 0*16 - iMTX_MULT BLOCK + 1*16, iTab2, PUT_ODD, ROW1, 1*16 - iMTX_MULT BLOCK + 2*16, iTab3, PUT_EVEN, ROW2, 2*16 - - TEST_TWO_ROWS BLOCK + 3*16, BLOCK + 4*16, GPR0, GPR1, CLEAR_ODD, ROW3, CLEAR_EVEN, ROW4 ; a, c - JZ GPR0, col1 - iMTX_MULT BLOCK + 3*16, iTab4, PUT_ODD, ROW3, 3*16 -.col1: - TEST_TWO_ROWS BLOCK + 5*16, BLOCK + 6*16, GPR0, GPR2, CLEAR_ODD, ROW5, CLEAR_EVEN, ROW6 ; a, d - TEST_ONE_ROW BLOCK + 7*16, GPR3, CLEAR_ODD, ROW7 ; esi - - iLLM_HEAD - JNZ GPR1, 2 - JNZ GPR0, 3 - JNZ GPR2, 4 - JNZ GPR3, 5 - iLLM_PASS_SPARSE BLOCK, %1 - jmp .6 -.2: - iMTX_MULT BLOCK + 4*16, iTab1, PUT_EVEN, ROW4 -.3: - iMTX_MULT BLOCK + 5*16, iTab4, PUT_ODD, ROW5, 4*16 - JZ GPR2, col2 -.4: - iMTX_MULT BLOCK + 6*16, iTab3, PUT_EVEN, ROW6, 5*16 -.col2: - JZ GPR3, col3 -.5: - iMTX_MULT BLOCK + 7*16, iTab2, PUT_ODD, ROW7, 5*16 -.col3: -%if ARCH_X86_32 - iLLM_HEAD -%endif - iLLM_PASS BLOCK, %1 -.6: - RET -%endmacro - -INIT_XMM sse2 -IDCT_SSE2 0 -IDCT_SSE2 1 -IDCT_SSE2 2 - -%if ARCH_X86_32 - -; %1=offset %2=tab_offset -; %3=rnd_offset where 4*8->6*16 5*8->4*16 6/7*8->5*16 -%macro DCT_8_INV_ROW 3 - movq mm0, [r0+16*%1+0] ; 0 ; x3 x2 x1 x0 - movq mm1, [r0+16*%1+8] ; 1 ; x7 x6 x5 x4 - movq mm2, mm0 ; 2 ; x3 x2 x1 x0 - movq mm3, [%2+ 0] ; 3 ; w06 w04 w02 w00 -%if cpuflag(mmxext) - pshufw mm0, mm0, 0x88 ; x2 x0 x2 x0 - movq mm4, [%2+ 8] ; 4 ; w07 w06 w03 w02 - movq mm5, mm1 ; 5 ; x7 x6 x5 x4 - pmaddwd mm3, mm0 ; x2*w05+x0*w04 x2*w01+x0*w00 - movq mm6, [%2+32] ; 6 ; w21 w20 w17 w16 - pshufw mm1, mm1, 0x88 ; x6 x4 x6 x4 - pmaddwd mm4, mm1 ; x6*w07+x4*w06 x6*w03+x4*w02 - movq mm7, [%2+40] ; 7; w23 w22 w19 w18 - pshufw mm2, mm2, 0xdd ; x3 x1 x3 x1 - pmaddwd mm6, mm2 ; x3*w21+x1*w20 x3*w17+x1*w16 - pshufw mm5, mm5, 0xdd ; x7 x5 x7 x5 - pmaddwd mm7, mm5 ; x7*w23+x5*w22 x7*w19+x5*w18 - paddd mm3, [walkenIdctRounders + %3] ; +%3 - pmaddwd mm0, [%2+16] ; x2*w13+x0*w12 x2*w09+x0*w08 - paddd mm3, mm4 ; 4 ; a1=sum(even1) a0=sum(even0) - pmaddwd mm1, [%2+24] ; x6*w15+x4*w14 x6*w11+x4*w10 - movq mm4, mm3 ; 4 ; a1 a0 - pmaddwd mm2, [%2+48] ; x3*w29+x1*w28 x3*w25+x1*w24 - paddd mm6, mm7 ; 7 ; b1=sum(odd1) b0=sum(odd0) - pmaddwd mm5, [%2+56] ; x7*w31+x5*w30 x7*w27+x5*w26 - paddd mm3, mm6 ; a1+b1 a0+b0 - paddd mm0, [walkenIdctRounders + %3] ; +%3 - psrad mm3, 11 ; y1=a1+b1 y0=a0+b0 - paddd mm0, mm1 ; 1 ; a3=sum(even3) a2=sum(even2) - psubd mm4, mm6 ; 6 ; a1-b1 a0-b0 - movq mm7, mm0 ; 7 ; a3 a2 - paddd mm2, mm5 ; 5 ; b3=sum(odd3) b2=sum(odd2) - paddd mm0, mm2 ; a3+b3 a2+b2 - psrad mm4, 11 ; y6=a1-b1 y7=a0-b0 - psubd mm7, mm2 ; 2 ; a3-b3 a2-b2 - psrad mm0, 11 ; y3=a3+b3 y2=a2+b2 - psrad mm7, 11 ; y4=a3-b3 y5=a2-b2 - packssdw mm3, mm0 ; 0 ; y3 y2 y1 y0 - packssdw mm7, mm4 ; 4 ; y6 y7 y4 y5 - movq [r0+16*%1+0], mm3 ; 3 ; save y3 y2 y1 y0 - pshufw mm7, mm7, 0xb1 ; y7 y6 y5 y4 -%else - punpcklwd mm0, mm1 ; x5 x1 x4 x0 - movq mm5, mm0 ; 5 ; x5 x1 x4 x0 - punpckldq mm0, mm0 ; x4 x0 x4 x0 - movq mm4, [%2+ 8] ; 4 ; w07 w05 w03 w01 - punpckhwd mm2, mm1 ; 1 ; x7 x3 x6 x2 - pmaddwd mm3, mm0 ; x4*w06+x0*w04 x4*w02+x0*w00 - movq mm6, mm2 ; 6 ; x7 x3 x6 x2 - movq mm1, [%2+32] ; 1 ; w22 w20 w18 w16 - punpckldq mm2, mm2 ; x6 x2 x6 x2 - pmaddwd mm4, mm2 ; x6*w07+x2*w05 x6*w03+x2*w01 - punpckhdq mm5, mm5 ; x5 x1 x5 x1 - pmaddwd mm0, [%2+16] ; x4*w14+x0*w12 x4*w10+x0*w08 - punpckhdq mm6, mm6 ; x7 x3 x7 x3 - movq mm7, [%2+40] ; 7 ; w23 w21 w19 w17 - pmaddwd mm1, mm5 ; x5*w22+x1*w20 x5*w18+x1*w16 - paddd mm3, [walkenIdctRounders + %3] ; +%3 - pmaddwd mm7, mm6 ; x7*w23+x3*w21 x7*w19+x3*w17 - pmaddwd mm2, [%2+24] ; x6*w15+x2*w13 x6*w11+x2*w09 - paddd mm3, mm4 ; 4 ; a1=sum(even1) a0=sum(even0) - pmaddwd mm5, [%2+48] ; x5*w30+x1*w28 x5*w26+x1*w24 - movq mm4, mm3 ; 4 ; a1 a0 - pmaddwd mm6, [%2+56] ; x7*w31+x3*w29 x7*w27+x3*w25 - paddd mm1, mm7 ; 7 ; b1=sum(odd1) b0=sum(odd0) - paddd mm0, [walkenIdctRounders + %3] ; +%3 - psubd mm3, mm1 ; a1-b1 a0-b0 - psrad mm3, 11 ; y6=a1-b1 y7=a0-b0 - paddd mm1, mm4 ; 4 ; a1+b1 a0+b0 - paddd mm0, mm2 ; 2 ; a3=sum(even3) a2=sum(even2) - psrad mm1, 11 ; y1=a1+b1 y0=a0+b0 - paddd mm5, mm6 ; 6 ; b3=sum(odd3) b2=sum(odd2) - movq mm4, mm0 ; 4 ; a3 a2 - paddd mm0, mm5 ; a3+b3 a2+b2 - psubd mm4, mm5 ; 5 ; a3-b3 a2-b2 - psrad mm0, 11 ; y3=a3+b3 y2=a2+b2 - psrad mm4, 11 ; y4=a3-b3 y5=a2-b2 - packssdw mm1, mm0 ; 0 ; y3 y2 y1 y0 - packssdw mm4, mm3 ; 3 ; y6 y7 y4 y5 - movq mm7, mm4 ; 7 ; y6 y7 y4 y5 - psrld mm4, 16 ; 0 y6 0 y4 - pslld mm7, 16 ; y7 0 y5 0 - movq [r0+16*%1+0], mm1 ; 1 ; save y3 y2 y1 y0 - por mm7, mm4 ; 4 ; y7 y6 y5 y4 -%endif - movq [r0+16*%1+8], mm7 ; 7 ; save y7 y6 y5 y4 -%endmacro - -; ----------------------------------------------------------------------------- -; -; The first stage DCT 8x8 - forward DCTs of columns -; -; The %2puts are multiplied -; for rows 0,4 - on cos_4_16, -; for rows 1,7 - on cos_1_16, -; for rows 2,6 - on cos_2_16, -; for rows 3,5 - on cos_3_16 -; and are shifted to the left for rise of accuracy -; -; ----------------------------------------------------------------------------- -; -; The 8-point scaled forward DCT algorithm (26a8m) -; -; ----------------------------------------------------------------------------- -; -;#define DCT_8_FRW_COL(x, y) -; { -; short t0, t1, t2, t3, t4, t5, t6, t7; -; short tp03, tm03, tp12, tm12, tp65, tm65; -; short tp465, tm465, tp765, tm765; -; -; t0 = LEFT_SHIFT(x[0] + x[7]); -; t1 = LEFT_SHIFT(x[1] + x[6]); -; t2 = LEFT_SHIFT(x[2] + x[5]); -; t3 = LEFT_SHIFT(x[3] + x[4]); -; t4 = LEFT_SHIFT(x[3] - x[4]); -; t5 = LEFT_SHIFT(x[2] - x[5]); -; t6 = LEFT_SHIFT(x[1] - x[6]); -; t7 = LEFT_SHIFT(x[0] - x[7]); -; -; tp03 = t0 + t3; -; tm03 = t0 - t3; -; tp12 = t1 + t2; -; tm12 = t1 - t2; -; -; y[0] = tp03 + tp12; -; y[4] = tp03 - tp12; -; -; y[2] = tm03 + tm12 * tg_2_16; -; y[6] = tm03 * tg_2_16 - tm12; -; -; tp65 = (t6 + t5) * cos_4_16; -; tm65 = (t6 - t5) * cos_4_16; -; -; tp765 = t7 + tp65; -; tm765 = t7 - tp65; -; tp465 = t4 + tm65; -; tm465 = t4 - tm65; -; -; y[1] = tp765 + tp465 * tg_1_16; -; y[7] = tp765 * tg_1_16 - tp465; -; y[5] = tm765 * tg_3_16 + tm465; -; y[3] = tm765 - tm465 * tg_3_16; -; } -; -; ----------------------------------------------------------------------------- - -; ----------------------------------------------------------------------------- -; DCT_8_INV_COL_4 INP,OUT -; ----------------------------------------------------------------------------- -%macro DCT_8_INV_COL 1 - movq mm0, [tan3] - movq mm3, [%1+16*3] - movq mm1, mm0 ; tg_3_16 - movq mm5, [%1+16*5] - pmulhw mm0, mm3 ; x3*(tg_3_16-1) - movq mm4, [tan1] - pmulhw mm1, mm5 ; x5*(tg_3_16-1) - movq mm7, [%1+16*7] - movq mm2, mm4 ; tg_1_16 - movq mm6, [%1+16*1] - pmulhw mm4, mm7 ; x7*tg_1_16 - paddsw mm0, mm3 ; x3*tg_3_16 - pmulhw mm2, mm6 ; x1*tg_1_16 - paddsw mm1, mm3 ; x3+x5*(tg_3_16-1) - psubsw mm0, mm5 ; x3*tg_3_16-x5 = tm35 - movq mm3, [sqrt2] - paddsw mm1, mm5 ; x3+x5*tg_3_16 = tp35 - paddsw mm4, mm6 ; x1+tg_1_16*x7 = tp17 - psubsw mm2, mm7 ; x1*tg_1_16-x7 = tm17 - movq mm5, mm4 ; tp17 - movq mm6, mm2 ; tm17 - paddsw mm5, mm1 ; tp17+tp35 = b0 - psubsw mm6, mm0 ; tm17-tm35 = b3 - psubsw mm4, mm1 ; tp17-tp35 = t1 - paddsw mm2, mm0 ; tm17+tm35 = t2 - movq mm7, [tan2] - movq mm1, mm4 ; t1 - movq [%1+3*16], mm5 ; save b0 - paddsw mm1, mm2 ; t1+t2 - movq [%1+5*16], mm6 ; save b3 - psubsw mm4, mm2 ; t1-t2 - movq mm5, [%1+2*16] - movq mm0, mm7 ; tg_2_16 - movq mm6, [%1+6*16] - pmulhw mm0, mm5 ; x2*tg_2_16 - pmulhw mm7, mm6 ; x6*tg_2_16 - pmulhw mm1, mm3 ; ocos_4_16*(t1+t2) = b1/2 - movq mm2, [%1+0*16] - pmulhw mm4, mm3 ; ocos_4_16*(t1-t2) = b2/2 - psubsw mm0, mm6 ; t2*tg_2_16-x6 = tm26 - movq mm3, mm2 ; x0 - movq mm6, [%1+4*16] - paddsw mm7, mm5 ; x2+x6*tg_2_16 = tp26 - paddsw mm2, mm6 ; x0+x4 = tp04 - psubsw mm3, mm6 ; x0-x4 = tm04 - movq mm5, mm2 ; tp04 - movq mm6, mm3 ; tm04 - psubsw mm2, mm7 ; tp04-tp26 = a3 - paddsw mm3, mm0 ; tm04+tm26 = a1 - paddsw mm1, mm1 ; b1 - paddsw mm4, mm4 ; b2 - paddsw mm5, mm7 ; tp04+tp26 = a0 - psubsw mm6, mm0 ; tm04-tm26 = a2 - movq mm7, mm3 ; a1 - movq mm0, mm6 ; a2 - paddsw mm3, mm1 ; a1+b1 - paddsw mm6, mm4 ; a2+b2 - psraw mm3, 6 ; dst1 - psubsw mm7, mm1 ; a1-b1 - psraw mm6, 6 ; dst2 - psubsw mm0, mm4 ; a2-b2 - movq mm1, [%1+3*16] ; load b0 - psraw mm7, 6 ; dst6 - movq mm4, mm5 ; a0 - psraw mm0, 6 ; dst5 - movq [%1+1*16], mm3 - paddsw mm5, mm1 ; a0+b0 - movq [%1+2*16], mm6 - psubsw mm4, mm1 ; a0-b0 - movq mm3, [%1+5*16] ; load b3 - psraw mm5, 6 ; dst0 - movq mm6, mm2 ; a3 - psraw mm4, 6 ; dst7 - movq [%1+5*16], mm0 - paddsw mm2, mm3 ; a3+b3 - movq [%1+6*16], mm7 - psubsw mm6, mm3 ; a3-b3 - movq [%1+0*16], mm5 - psraw mm2, 6 ; dst3 - movq [%1+7*16], mm4 - psraw mm6, 6 ; dst4 - movq [%1+3*16], mm2 - movq [%1+4*16], mm6 -%endmacro - -%macro XVID_IDCT_MMX 0 -cglobal xvid_idct, 1, 1, 0, block -%if cpuflag(mmxext) -%define TAB tab_i_04_xmm -%else -%define TAB tab_i_04_mmx -%endif - ; Process each row - beware of rounder offset - DCT_8_INV_ROW 0, TAB + 64 * 0, 0*16 - DCT_8_INV_ROW 1, TAB + 64 * 1, 1*16 - DCT_8_INV_ROW 2, TAB + 64 * 2, 2*16 - DCT_8_INV_ROW 3, TAB + 64 * 3, 3*16 - DCT_8_INV_ROW 4, TAB + 64 * 0, 6*16 - DCT_8_INV_ROW 5, TAB + 64 * 3, 4*16 - DCT_8_INV_ROW 6, TAB + 64 * 2, 5*16 - DCT_8_INV_ROW 7, TAB + 64 * 1, 5*16 - - ; Process the columns (4 at a time) - DCT_8_INV_COL r0+0 - DCT_8_INV_COL r0+8 - - RET -%endmacro - -INIT_MMX mmx -XVID_IDCT_MMX -INIT_MMX mmxext -XVID_IDCT_MMX - -%endif ; ~ARCH_X86_32 diff --git a/libavdevice/.gitignore b/libavdevice/.gitignore deleted file mode 100644 index 08ac3eb86a..0000000000 --- a/libavdevice/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/indev_list.c -/outdev_list.c diff --git a/libavdevice/tests/.gitignore b/libavdevice/tests/.gitignore deleted file mode 100644 index b4a2281a70..0000000000 --- a/libavdevice/tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/timefilter diff --git a/libavfilter/.gitignore b/libavfilter/.gitignore deleted file mode 100644 index 26bddebc93..0000000000 --- a/libavfilter/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/filter_list.c diff --git a/libavfilter/opencl/.gitignore b/libavfilter/opencl/.gitignore deleted file mode 100644 index 064a8d8ef5..0000000000 --- a/libavfilter/opencl/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.c diff --git a/libavfilter/tests/.gitignore b/libavfilter/tests/.gitignore deleted file mode 100644 index 65ef86f2e5..0000000000 --- a/libavfilter/tests/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/drawutils -/filtfmts -/formats -/integral diff --git a/libavfilter/x86/af_afir.asm b/libavfilter/x86/af_afir.asm deleted file mode 100644 index 2cc09709a2..0000000000 --- a/libavfilter/x86/af_afir.asm +++ /dev/null @@ -1,69 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for afir filter -;* Copyright (c) 2017 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_fcmul_add(float *sum, const float *t, const float *c, int len) -;------------------------------------------------------------------------------ - -%macro FCMUL_ADD 0 -cglobal fcmul_add, 4,4,6, sum, t, c, len - shl lend, 3 - add tq, lenq - add cq, lenq - add sumq, lenq - neg lenq -ALIGN 16 -.loop: - movsldup m0, [tq + lenq] - movsldup m3, [tq + lenq+mmsize] - movaps m1, [cq + lenq] - movaps m4, [cq + lenq+mmsize] - mulps m0, m0, m1 - mulps m3, m3, m4 - shufps m1, m1, m1, 0xb1 - shufps m4, m4, m4, 0xb1 - movshdup m2, [tq + lenq] - movshdup m5, [tq + lenq+mmsize] - mulps m2, m2, m1 - mulps m5, m5, m4 - addsubps m0, m0, m2 - addsubps m3, m3, m5 - addps m0, m0, [sumq + lenq] - addps m3, m3, [sumq + lenq+mmsize] - movaps [sumq + lenq], m0 - movaps [sumq + lenq+mmsize], m3 - add lenq, mmsize*2 - jl .loop - movss xm0, [tq + lenq] - mulss xm0, [cq + lenq] - addss xm0, [sumq + lenq] - movss [sumq + lenq], xm0 - RET -%endmacro - -INIT_XMM sse3 -FCMUL_ADD -INIT_YMM avx -FCMUL_ADD diff --git a/libavfilter/x86/af_anlmdn.asm b/libavfilter/x86/af_anlmdn.asm deleted file mode 100644 index 7986cf443c..0000000000 --- a/libavfilter/x86/af_anlmdn.asm +++ /dev/null @@ -1,80 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for anlmdn filter -;* Copyright (c) 2017 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -;------------------------------------------------------------------------------ -; float ff_compute_distance_ssd(float *f1, const float *f2, ptrdiff_t len) -;------------------------------------------------------------------------------ - -INIT_XMM sse -cglobal compute_distance_ssd, 3,5,3, f1, f2, len, r, x - mov xq, lenq - shl xq, 2 - neg xq - add f1q, xq - add f2q, xq - xor xq, xq - shl lenq, 1 - add lenq, 1 - shl lenq, 2 - mov rq, lenq - and rq, mmsize - 1 - xorps m0, m0 - cmp lenq, mmsize - jl .loop1 - sub lenq, rq -ALIGN 16 - .loop0: - movups m1, [f1q + xq] - movups m2, [f2q + xq] - subps m1, m2 - mulps m1, m1 - addps m0, m1 - add xq, mmsize - cmp xq, lenq - jl .loop0 - - movhlps xmm1, xmm0 - addps xmm0, xmm1 - movss xmm1, xmm0 - shufps xmm0, xmm0, 1 - addss xmm0, xmm1 - - cmp rq, 0 - je .end - add lenq, rq - .loop1: - movss xm1, [f1q + xq] - subss xm1, [f2q + xq] - mulss xm1, xm1 - addss xm0, xm1 - add xq, 4 - cmp xq, lenq - jl .loop1 - .end: -%if ARCH_X86_64 == 0 - movss r0m, xm0 - fld dword r0m -%endif - RET diff --git a/libavfilter/x86/af_volume.asm b/libavfilter/x86/af_volume.asm deleted file mode 100644 index 723ab1f8fb..0000000000 --- a/libavfilter/x86/af_volume.asm +++ /dev/null @@ -1,140 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for volume filter -;* Copyright (c) 2012 Justin Ruggles -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pd_1_256: times 4 dq 0x3F70000000000000 -pd_int32_max: times 4 dq 0x41DFFFFFFFC00000 -pw_1: times 8 dw 1 -pw_128: times 8 dw 128 -pq_128: times 2 dq 128 - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_scale_samples_s16(uint8_t *dst, const uint8_t *src, int len, -; int volume) -;------------------------------------------------------------------------------ - -INIT_XMM sse2 -cglobal scale_samples_s16, 4,4,4, dst, src, len, volume - movd m0, volumem - pshuflw m0, m0, 0 - punpcklwd m0, [pw_1] - mova m1, [pw_128] - lea lenq, [lend*2-mmsize] -.loop: - ; dst[i] = av_clip_int16((src[i] * volume + 128) >> 8); - mova m2, [srcq+lenq] - punpcklwd m3, m2, m1 - punpckhwd m2, m1 - pmaddwd m3, m0 - pmaddwd m2, m0 - psrad m3, 8 - psrad m2, 8 - packssdw m3, m2 - mova [dstq+lenq], m3 - sub lenq, mmsize - jge .loop - REP_RET - -;------------------------------------------------------------------------------ -; void ff_scale_samples_s32(uint8_t *dst, const uint8_t *src, int len, -; int volume) -;------------------------------------------------------------------------------ - -%macro SCALE_SAMPLES_S32 0 -cglobal scale_samples_s32, 4,4,4, dst, src, len, volume -%if ARCH_X86_32 && cpuflag(avx) - vbroadcastss xmm2, volumem -%else - movd xmm2, volumed - pshufd xmm2, xmm2, 0 -%endif - CVTDQ2PD m2, xmm2 - mulpd m2, m2, [pd_1_256] - mova m3, [pd_int32_max] - lea lenq, [lend*4-mmsize] -.loop: - CVTDQ2PD m0, [srcq+lenq ] - CVTDQ2PD m1, [srcq+lenq+mmsize/2] - mulpd m0, m0, m2 - mulpd m1, m1, m2 - minpd m0, m0, m3 - minpd m1, m1, m3 - cvtpd2dq xmm0, m0 - cvtpd2dq xmm1, m1 -%if cpuflag(avx) - vmovdqa [dstq+lenq ], xmm0 - vmovdqa [dstq+lenq+mmsize/2], xmm1 -%else - movq [dstq+lenq ], xmm0 - movq [dstq+lenq+mmsize/2], xmm1 -%endif - sub lenq, mmsize - jge .loop - REP_RET -%endmacro - -INIT_XMM sse2 -%define CVTDQ2PD cvtdq2pd -SCALE_SAMPLES_S32 -%if HAVE_AVX_EXTERNAL -%define CVTDQ2PD vcvtdq2pd -INIT_YMM avx -SCALE_SAMPLES_S32 -%endif -%undef CVTDQ2PD - -; NOTE: This is not bit-identical with the C version because it clips to -; [-INT_MAX, INT_MAX] instead of [INT_MIN, INT_MAX] - -INIT_XMM ssse3, atom -cglobal scale_samples_s32, 4,4,8, dst, src, len, volume - movd m4, volumem - pshufd m4, m4, 0 - mova m5, [pq_128] - pxor m6, m6 - lea lenq, [lend*4-mmsize] -.loop: - ; src[i] = av_clipl_int32((src[i] * volume + 128) >> 8); - mova m7, [srcq+lenq] - pabsd m3, m7 - pshufd m0, m3, q0100 - pshufd m1, m3, q0302 - pmuludq m0, m4 - pmuludq m1, m4 - paddq m0, m5 - paddq m1, m5 - psrlq m0, 7 - psrlq m1, 7 - shufps m2, m0, m1, q3131 - shufps m0, m0, m1, q2020 - pcmpgtd m2, m6 - por m0, m2 - psrld m0, 1 - psignd m0, m7 - mova [dstq+lenq], m0 - sub lenq, mmsize - jge .loop - REP_RET diff --git a/libavfilter/x86/avf_showcqt.asm b/libavfilter/x86/avf_showcqt.asm deleted file mode 100644 index 63e58408cd..0000000000 --- a/libavfilter/x86/avf_showcqt.asm +++ /dev/null @@ -1,192 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for showcqt filter -;* -;* Copyright (C) 2016 Muhammad Faiz -;* -;* 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 "libavutil/x86/x86util.asm" - -%if ARCH_X86_64 -%define pointer resq -%else -%define pointer resd -%endif - -struc Coeffs - .val: pointer 1 - .start: resd 1 - .len: resd 1 - .sizeof: -endstruc - -%macro CQT_CALC 9 -; %1 = a_re, %2 = a_im, %3 = b_re, %4 = b_im -; %5 = m_re, %6 = m_im, %7 = tmp, %8 = coeffval, %9 = coeffsq_offset - mov id, xd - add id, [coeffsq + Coeffs.start + %9] - movaps m%5, [srcq + 8 * iq] - movaps m%7, [srcq + 8 * iq + mmsize] - shufps m%6, m%5, m%7, q3131 - shufps m%5, m%5, m%7, q2020 - sub id, fft_lend - FMULADD_PS m%2, m%6, m%8, m%2, m%6 - neg id - FMULADD_PS m%1, m%5, m%8, m%1, m%5 - movups m%5, [srcq + 8 * iq - mmsize + 8] - movups m%7, [srcq + 8 * iq - 2*mmsize + 8] - %if mmsize == 32 - vperm2f128 m%5, m%5, m%5, 1 - vperm2f128 m%7, m%7, m%7, 1 - %endif - shufps m%6, m%5, m%7, q1313 - shufps m%5, m%5, m%7, q0202 - FMULADD_PS m%4, m%6, m%8, m%4, m%6 - FMULADD_PS m%3, m%5, m%8, m%3, m%5 -%endmacro ; CQT_CALC - -%macro CQT_SEPARATE 6 ; a_re, a_im, b_re, b_im, tmp, tmp2 - addps m%5, m%4, m%2 - subps m%6, m%3, m%1 - addps m%1, m%1, m%3 - subps m%2, m%2, m%4 - HADDPS m%5, m%6, m%3 - HADDPS m%1, m%2, m%3 - HADDPS m%1, m%5, m%2 - %if mmsize == 32 - vextractf128 xmm%2, m%1, 1 - addps xmm%1, xmm%2 - %endif -%endmacro ; CQT_SEPARATE - -%macro DECLARE_CQT_CALC 0 -; ff_showcqt_cqt_calc_*(dst, src, coeffs, len, fft_len) -%if ARCH_X86_64 -cglobal showcqt_cqt_calc, 5, 10, 12, dst, src, coeffs, len, fft_len, x, coeffs_val, coeffs_val2, i, coeffs_len - align 16 - .loop_k: - mov xd, [coeffsq + Coeffs.len] - xorps m0, m0, m0 - movaps m1, m0 - movaps m2, m0 - mov coeffs_lend, [coeffsq + Coeffs.len + Coeffs.sizeof] - movaps m3, m0 - movaps m8, m0 - cmp coeffs_lend, xd - movaps m9, m0 - movaps m10, m0 - movaps m11, m0 - cmova coeffs_lend, xd - xor xd, xd - test coeffs_lend, coeffs_lend - jz .check_loop_b - mov coeffs_valq, [coeffsq + Coeffs.val] - mov coeffs_val2q, [coeffsq + Coeffs.val + Coeffs.sizeof] - align 16 - .loop_ab: - movaps m7, [coeffs_valq + 4 * xq] - CQT_CALC 0, 1, 2, 3, 4, 5, 6, 7, 0 - movaps m7, [coeffs_val2q + 4 * xq] - CQT_CALC 8, 9, 10, 11, 4, 5, 6, 7, Coeffs.sizeof - add xd, mmsize/4 - cmp xd, coeffs_lend - jb .loop_ab - .check_loop_b: - cmp xd, [coeffsq + Coeffs.len + Coeffs.sizeof] - jae .check_loop_a - align 16 - .loop_b: - movaps m7, [coeffs_val2q + 4 * xq] - CQT_CALC 8, 9, 10, 11, 4, 5, 6, 7, Coeffs.sizeof - add xd, mmsize/4 - cmp xd, [coeffsq + Coeffs.len + Coeffs.sizeof] - jb .loop_b - .loop_end: - CQT_SEPARATE 0, 1, 2, 3, 4, 5 - CQT_SEPARATE 8, 9, 10, 11, 4, 5 - mulps xmm0, xmm0 - mulps xmm8, xmm8 - HADDPS xmm0, xmm8, xmm1 - movaps [dstq], xmm0 - sub lend, 2 - lea dstq, [dstq + 16] - lea coeffsq, [coeffsq + 2*Coeffs.sizeof] - jnz .loop_k - REP_RET - align 16 - .check_loop_a: - cmp xd, [coeffsq + Coeffs.len] - jae .loop_end - align 16 - .loop_a: - movaps m7, [coeffs_valq + 4 * xq] - CQT_CALC 0, 1, 2, 3, 4, 5, 6, 7, 0 - add xd, mmsize/4 - cmp xd, [coeffsq + Coeffs.len] - jb .loop_a - jmp .loop_end -%else -cglobal showcqt_cqt_calc, 4, 7, 8, dst, src, coeffs, len, x, coeffs_val, i -%define fft_lend r4m - align 16 - .loop_k: - mov xd, [coeffsq + Coeffs.len] - xorps m0, m0, m0 - movaps m1, m0 - movaps m2, m0 - movaps m3, m0 - test xd, xd - jz .store - mov coeffs_valq, [coeffsq + Coeffs.val] - xor xd, xd - align 16 - .loop_x: - movaps m7, [coeffs_valq + 4 * xq] - CQT_CALC 0, 1, 2, 3, 4, 5, 6, 7, 0 - add xd, mmsize/4 - cmp xd, [coeffsq + Coeffs.len] - jb .loop_x - CQT_SEPARATE 0, 1, 2, 3, 4, 5 - mulps xmm0, xmm0 - HADDPS xmm0, xmm0, xmm1 - .store: - movlps [dstq], xmm0 - sub lend, 1 - lea dstq, [dstq + 8] - lea coeffsq, [coeffsq + Coeffs.sizeof] - jnz .loop_k - REP_RET -%endif ; ARCH_X86_64 -%endmacro ; DECLARE_CQT_CALC - -INIT_XMM sse -DECLARE_CQT_CALC -INIT_XMM sse3 -DECLARE_CQT_CALC -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -DECLARE_CQT_CALC -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -DECLARE_CQT_CALC -%endif -%if HAVE_FMA4_EXTERNAL -INIT_XMM fma4 -DECLARE_CQT_CALC -%endif diff --git a/libavfilter/x86/colorspacedsp.asm b/libavfilter/x86/colorspacedsp.asm deleted file mode 100644 index 67d851abf4..0000000000 --- a/libavfilter/x86/colorspacedsp.asm +++ /dev/null @@ -1,1097 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for colorspace filter -;* -;* Copyright (C) 2016 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_1: times 8 dw 1 -pw_2: times 8 dw 2 -pw_4: times 8 dw 4 -pw_8: times 8 dw 8 -pw_16: times 8 dw 16 -pw_64: times 8 dw 64 -pw_128: times 8 dw 128 -pw_256: times 8 dw 256 -pw_512: times 8 dw 512 -pw_1023: times 8 dw 1023 -pw_1024: times 8 dw 1024 -pw_2048: times 8 dw 2048 -pw_4095: times 8 dw 4095 -pw_8192: times 8 dw 8192 -pw_16384: times 8 dw 16384 - -pd_1: times 4 dd 1 -pd_2: times 4 dd 2 -pd_128: times 4 dd 128 -pd_512: times 4 dd 512 -pd_2048: times 4 dd 2048 -pd_8192: times 4 dd 8192 -pd_32768: times 4 dd 32768 -pd_131072: times 4 dd 131072 - -SECTION .text - -; void ff_yuv2yuv_420p8to8_sse2(uint8_t *yuv_out[3], ptrdiff_t yuv_out_stride[3], -; uint8_t *yuv_in[3], ptrdiff_t yuv_in_stride[3], -; int w, int h, const int16_t yuv2yuv_coeffs[3][3][8], -; const int16_t yuv_offset[2][8]) - -%if ARCH_X86_64 -%macro YUV2YUV_FN 4 ; in_bitdepth, out_bitdepth, log2_chroma_w (horiz), log2_chroma_h (vert) - -%assign %%sh (14 + %1 - %2) -%assign %%rnd (1 << (%%sh - 1)) -%assign %%uvinoff (128 << (%1 - 8)) -%assign %%uvoutoff (128 << (%2 - 8)) -%if %3 == 0 -%assign %%ss 444 -%elif %4 == 0 -%assign %%ss 422 -%else ; %4 == 1 -%assign %%ss 420 -%endif ; %3/%4 -%if %2 != 8 -%assign %%maxval (1 << %2) - 1 -%endif ; %2 != 8 - -%assign %%ypsh %%sh - 1 -%if %%ypsh > 14 -%assign %%yoffsh %%ypsh - 13 -%assign %%ypsh 14 -%else -%assign %%yoffsh 1 -%endif -%assign %%yprnd (1 << (%%yoffsh - 1)) -%assign %%ypmul (1 << %%ypsh) - -cglobal yuv2yuv_ %+ %%ss %+ p%1to%2, 8, 14, 16, 0 - (4 * mmsize), \ - yo, yos, yi, yis, w, h, c, yoff, ui, vi, uo, vo -%if %3 == 1 - inc wd - sar wd, 1 -%if %4 == 1 - inc hd - sar hd, 1 -%endif ; %4 == 1 -%endif ; %3 == 1 - mov [rsp+3*mmsize+0], wd - mov [rsp+3*mmsize+4], hd - - mova m10, [cq] - pxor m11, m11 - mova m12, [pd_ %+ %%uvoutoff] - pslld m12, %%sh - paddd m12, [pd_ %+ %%rnd] - mova m13, [pw_ %+ %%uvinoff] - mova m14, [yoffq+ 0] ; y_off_in - mova m15, [yoffq+16] ; y_off_out -%if %%yoffsh != 0 - psllw m15, %%yoffsh -%endif - paddw m15, [pw_ %+ %%yprnd] - punpcklwd m10, m15 - mova m15, [pw_ %+ %%ypmul] - movh m0, [cq+1*16] ; cyu - movh m1, [cq+2*16] ; cyv - movh m2, [cq+4*16] ; cuu - movh m3, [cq+5*16] ; cuv - movh m4, [cq+7*16] ; cvu - movh m5, [cq+8*16] ; cvv - punpcklwd m0, m1 - punpcklwd m2, m3 - punpcklwd m4, m5 - mova [rsp+0*mmsize], m0 - mova [rsp+1*mmsize], m2 - mova [rsp+2*mmsize], m4 - - DEFINE_ARGS yo, yos, yi, yis, ui, vi, uo, vo, uis, vis, uos, vos, x, tmp - - mov uiq, [yiq+gprsize*1] - mov viq, [yiq+gprsize*2] - mov yiq, [yiq+gprsize*0] - mov uoq, [yoq+gprsize*1] - mov voq, [yoq+gprsize*2] - mov yoq, [yoq+gprsize*0] - mov uisq, [yisq+gprsize*1] - mov visq, [yisq+gprsize*2] - mov yisq, [yisq+gprsize*0] - mov uosq, [yosq+gprsize*1] - mov vosq, [yosq+gprsize*2] - mov yosq, [yosq+gprsize*0] - -.loop_v: - xor xq, xq - -.loop_h: -%if %4 == 1 - lea tmpq, [yiq+yisq] -%endif ; %4 == 1 -%if %1 == 8 - movu m0, [yiq+xq*(1<<%3)] ; y00/01 -%if %4 == 1 - movu m2, [tmpq+xq*2] ; y10/11 -%endif ; %4 == 1 -%if %3 == 1 - movh m4, [uiq+xq] ; u - movh m5, [viq+xq] ; v -%else ; %3 != 1 - movu m4, [uiq+xq] ; u - movu m5, [viq+xq] ; v -%endif ; %3 ==/!= 1 - punpckhbw m1, m0, m11 - punpcklbw m0, m11 -%if %4 == 1 - punpckhbw m3, m2, m11 - punpcklbw m2, m11 -%endif ; %4 == 1 -%if %3 == 0 - punpckhbw m2, m4, m11 - punpckhbw m3, m5, m11 -%endif ; %3 == 0 - punpcklbw m4, m11 - punpcklbw m5, m11 -%else ; %1 != 8 - movu m0, [yiq+xq*(2<<%3)] ; y00/01 - movu m1, [yiq+xq*(2<<%3)+mmsize] ; y00/01 -%if %4 == 1 - movu m2, [tmpq+xq*4] ; y10/11 - movu m3, [tmpq+xq*4+mmsize] ; y10/11 -%endif ; %4 == 1 - movu m4, [uiq+xq*2] ; u - movu m5, [viq+xq*2] ; v -%if %3 == 0 - movu m2, [uiq+xq*2+mmsize] - movu m3, [viq+xq*2+mmsize] -%endif ; %3 == 0 -%endif ; %1 ==/!= 8 - psubw m0, m14 - psubw m1, m14 -%if %4 == 1 - psubw m2, m14 - psubw m3, m14 -%endif ; %4 == 1 - psubw m4, m13 - psubw m5, m13 -%if %3 == 0 - psubw m2, m13 - psubw m3, m13 -%endif ; %3 == 0 - - SBUTTERFLY wd, 4, 5, 6 - pmaddwd m6, m4, [rsp+1*mmsize] - pmaddwd m7, m5, [rsp+1*mmsize] -%if %3 == 0 - SBUTTERFLY wd, 2, 3, 8 - pmaddwd m8, m2, [rsp+1*mmsize] - pmaddwd m9, m3, [rsp+1*mmsize] -%else ; %3 != 0 - pmaddwd m8, m4, [rsp+2*mmsize] - pmaddwd m9, m5, [rsp+2*mmsize] -%endif - paddd m6, m12 - paddd m7, m12 - paddd m8, m12 - paddd m9, m12 - psrad m6, %%sh - psrad m7, %%sh - psrad m8, %%sh - psrad m9, %%sh - packssdw m6, m7 - packssdw m8, m9 -%if %2 == 8 - packuswb m6, m8 -%if %3 == 0 - movu [uoq+xq], m6 -%else ; %3 != 0 - movh [uoq+xq], m6 - movhps [voq+xq], m6 -%endif ; %3 ==/!= 0 -%else ; %2 != 8 - CLIPW m6, m11, [pw_ %+ %%maxval] - CLIPW m8, m11, [pw_ %+ %%maxval] - movu [uoq+xq*2], m6 -%if %3 == 0 - movu [uoq+xq*2+mmsize], m8 -%else ; %3 != 0 - movu [voq+xq*2], m8 -%endif ; %3 ==/!= 0 -%endif ; %2 ==/!= 8 - -%if %3 == 0 - pmaddwd m6, m4, [rsp+2*mmsize] - pmaddwd m7, m5, [rsp+2*mmsize] - pmaddwd m8, m2, [rsp+2*mmsize] - pmaddwd m9, m3, [rsp+2*mmsize] - paddd m6, m12 - paddd m7, m12 - paddd m8, m12 - paddd m9, m12 - psrad m6, %%sh - psrad m7, %%sh - psrad m8, %%sh - psrad m9, %%sh - packssdw m6, m7 - packssdw m8, m9 -%if %2 == 8 - packuswb m6, m8 - movu [voq+xq], m6 -%else ; %2 != 8 - CLIPW m6, m11, [pw_ %+ %%maxval] - CLIPW m8, m11, [pw_ %+ %%maxval] - movu [voq+xq*2], m6 - movu [voq+xq*2+mmsize], m8 -%endif ; %2 ==/!= 8 -%endif ; %3 == 0 - - pmaddwd m4, [rsp+0*mmsize] - pmaddwd m5, [rsp+0*mmsize] ; uv_val -%if %3 == 0 - pmaddwd m2, [rsp+0*mmsize] - pmaddwd m3, [rsp+0*mmsize] -%endif ; %3 == 0 - - ; unpack y pixels with m15 (shifted round + offset), then multiply - ; by m10, add uv pixels, and we're done! -%if %3 == 1 - punpckhdq m8, m4, m4 - punpckldq m4, m4 - punpckhdq m9, m5, m5 - punpckldq m5, m5 -%else ; %3 != 1 - SWAP 8, 5, 2 - SWAP 3, 9 -%endif ; %3 ==/!= 1 -%if %4 == 1 - punpckhwd m6, m2, m15 - punpcklwd m2, m15 - punpckhwd m7, m3, m15 - punpcklwd m3, m15 - pmaddwd m2, m10 - pmaddwd m6, m10 - pmaddwd m3, m10 - pmaddwd m7, m10 - paddd m2, m4 - paddd m6, m8 - paddd m3, m5 - paddd m7, m9 - psrad m2, %%sh - psrad m6, %%sh - psrad m3, %%sh - psrad m7, %%sh - packssdw m2, m6 - packssdw m3, m7 - - lea tmpq, [yoq+yosq] -%if %2 == 8 - packuswb m2, m3 - movu [tmpq+xq*2], m2 -%else ; %2 != 8 - CLIPW m2, m11, [pw_ %+ %%maxval] - CLIPW m3, m11, [pw_ %+ %%maxval] - movu [tmpq+xq*4], m2 - movu [tmpq+xq*4+mmsize], m3 -%endif ; %2 ==/!= 8 -%endif ; %4 == 1 - - punpckhwd m6, m0, m15 - punpcklwd m0, m15 - punpckhwd m7, m1, m15 - punpcklwd m1, m15 - pmaddwd m0, m10 - pmaddwd m6, m10 - pmaddwd m1, m10 - pmaddwd m7, m10 - paddd m0, m4 - paddd m6, m8 - paddd m1, m5 - paddd m7, m9 - psrad m0, %%sh - psrad m6, %%sh - psrad m1, %%sh - psrad m7, %%sh - packssdw m0, m6 - packssdw m1, m7 - -%if %2 == 8 - packuswb m0, m1 - movu [yoq+xq*(1<<%3)], m0 -%else ; %2 != 8 - CLIPW m0, m11, [pw_ %+ %%maxval] - CLIPW m1, m11, [pw_ %+ %%maxval] - movu [yoq+xq*(2<<%3)], m0 - movu [yoq+xq*(2<<%3)+mmsize], m1 -%endif ; %2 ==/!= 8 - - add xq, mmsize >> %3 - cmp xd, dword [rsp+3*mmsize+0] - jl .loop_h - -%if %4 == 1 - lea yiq, [yiq+yisq*2] - lea yoq, [yoq+yosq*2] -%else ; %4 != 1 - add yiq, yisq - add yoq, yosq -%endif ; %4 ==/!= 1 - add uiq, uisq - add viq, visq - add uoq, uosq - add voq, vosq - dec dword [rsp+3*mmsize+4] - jg .loop_v - - RET -%endmacro - -%macro YUV2YUV_FNS 2 ; ss_w, ss_h -YUV2YUV_FN 8, 8, %1, %2 -YUV2YUV_FN 10, 8, %1, %2 -YUV2YUV_FN 12, 8, %1, %2 -YUV2YUV_FN 8, 10, %1, %2 -YUV2YUV_FN 10, 10, %1, %2 -YUV2YUV_FN 12, 10, %1, %2 -YUV2YUV_FN 8, 12, %1, %2 -YUV2YUV_FN 10, 12, %1, %2 -YUV2YUV_FN 12, 12, %1, %2 -%endmacro - -INIT_XMM sse2 -YUV2YUV_FNS 0, 0 -YUV2YUV_FNS 1, 0 -YUV2YUV_FNS 1, 1 - -; void ff_yuv2rgb_420p8_sse2(int16_t *rgb[3], ptrdiff_t rgb_stride, -; uint8_t *yuv[3], ptrdiff_t yuv_stride[3], -; int w, int h, const int16_t yuv2rgb_coeffs[3][3][8], -; const int16_t yuv_offset[8]) -%macro YUV2RGB_FN 3 ; depth, log2_chroma_w (horiz), log2_chroma_h (vert) -%assign %%sh (%1 - 1) -%assign %%rnd (1 << (%%sh - 1)) -%assign %%uvoff (1 << (%1 - 1)) -%if %2 == 0 -%assign %%ss 444 -%elif %3 == 0 -%assign %%ss 422 -%else ; %3 == 1 -%assign %%ss 420 -%endif ; %2/%3 - -cglobal yuv2rgb_ %+ %%ss %+ p%1, 8, 14, 16, 0 - 8 * mmsize, \ - rgb, rgbs, yuv, yuvs, ww, h, c, yoff -%if %2 == 1 - inc wwd - sar wwd, 1 -%endif ; %2 == 1 -%if %3 == 1 - inc hd - sar hd, 1 -%endif ; %3 == 1 - pxor m11, m11 - mova m15, [yoffq] ; yoff - movh m14, [cq+ 0] ; cy - movh m10, [cq+ 32] ; crv - movh m13, [cq+112] ; cbu - movh m12, [cq+ 64] ; cgu - movh m9, [cq+ 80] ; cgv - punpcklwd m14, [pw_ %+ %%rnd] ; cy, rnd - punpcklwd m13, m11 ; cbu, 0 - punpcklwd m11, m10 ; 0, crv - punpcklwd m12, m9 ; cgu, cgv - mova [rsp+0*mmsize], m11 - mova [rsp+1*mmsize], m12 - mova [rsp+2*mmsize], m13 - mova [rsp+3*mmsize], m14 - pxor m14, m14 - - DEFINE_ARGS r, rgbs, y, ys, ww, h, g, b, u, v, us, vs, x, tmp - - mov gq, [rq+1*gprsize] - mov bq, [rq+2*gprsize] - mov rq, [rq+0*gprsize] - mov uq, [yq+1*gprsize] - mov vq, [yq+2*gprsize] - mov yq, [yq+0*gprsize] - mov usq, [ysq+1*gprsize] - mov vsq, [ysq+2*gprsize] - mov ysq, [ysq+0*gprsize] - -.loop_v: - xor xq, xq - -.loop_h: -%if %3 == 1 - lea tmpq, [yq+ysq] -%endif ; %3 == 1 -%if %1 == 8 - movu m0, [yq+xq*(1<<%2)] -%if %3 == 1 - movu m2, [tmpq+xq*2] -%endif ; %3 == 1 -%if %2 == 1 - movh m4, [uq+xq] - movh m5, [vq+xq] -%else ; %2 != 1 - movu m4, [uq+xq] - movu m5, [vq+xq] -%endif ; %2 ==/!= 1 - punpckhbw m1, m0, m14 - punpcklbw m0, m14 -%if %3 == 1 - punpckhbw m3, m2, m14 - punpcklbw m2, m14 -%endif ; %3 == 1 -%if %2 == 0 - punpckhbw m2, m4, m14 - punpckhbw m3, m5, m14 -%endif ; %2 == 0 - punpcklbw m4, m14 - punpcklbw m5, m14 -%else ; %1 != 8 - movu m0, [yq+xq*(2<<%2)] - movu m1, [yq+xq*(2<<%2)+mmsize] -%if %3 == 1 - movu m2, [tmpq+xq*4] - movu m3, [tmpq+xq*4+mmsize] -%endif ; %3 == 1 - movu m4, [uq+xq*2] - movu m5, [vq+xq*2] -%if %2 == 0 - movu m2, [uq+xq*2+mmsize] - movu m3, [vq+xq*2+mmsize] -%endif ; %2 == 0 -%endif ; %1 ==/!= 8 - psubw m0, m15 - psubw m1, m15 -%if %3 == 1 - psubw m2, m15 - psubw m3, m15 -%endif ; %3 == 1 - psubw m4, [pw_ %+ %%uvoff] - psubw m5, [pw_ %+ %%uvoff] - SBUTTERFLY wd, 4, 5, 6 -%if %2 == 0 - psubw m2, [pw_ %+ %%uvoff] - psubw m3, [pw_ %+ %%uvoff] - SBUTTERFLY wd, 2, 3, 6 -%endif ; %2 == 0 - - ; calculate y+rnd full-resolution [0-3,6-9] - punpckhwd m6, m0, [pw_1] ; y, 1 - punpcklwd m0, [pw_1] ; y, 1 - punpckhwd m7, m1, [pw_1] ; y, 1 - punpcklwd m1, [pw_1] ; y, 1 - pmaddwd m0, [rsp+3*mmsize] - pmaddwd m6, [rsp+3*mmsize] - pmaddwd m1, [rsp+3*mmsize] - pmaddwd m7, [rsp+3*mmsize] -%if %3 == 1 - punpckhwd m8, m2, [pw_1] ; y, 1 - punpcklwd m2, [pw_1] ; y, 1 - punpckhwd m9, m3, [pw_1] ; y, 1 - punpcklwd m3, [pw_1] ; y, 1 - pmaddwd m2, [rsp+3*mmsize] - pmaddwd m8, [rsp+3*mmsize] - pmaddwd m3, [rsp+3*mmsize] - pmaddwd m9, [rsp+3*mmsize] - mova [rsp+4*mmsize], m2 - mova [rsp+5*mmsize], m8 - mova [rsp+6*mmsize], m3 - mova [rsp+7*mmsize], m9 -%endif ; %3 == 1 - - ; calculate r offsets (un-subsampled, then duplicate) - pmaddwd m10, m4, [rsp+0*mmsize] -%if %2 == 1 - pmaddwd m12, m5, [rsp+0*mmsize] - punpckhdq m11, m10, m10 - punpckldq m10, m10 - punpckhdq m13, m12, m12 - punpckldq m12, m12 -%else ; %2 != 1 - pmaddwd m11, m5, [rsp+0*mmsize] - pmaddwd m12, m2, [rsp+0*mmsize] - pmaddwd m13, m3, [rsp+0*mmsize] -%endif ; %2 ==/!= 1 -%if %3 == 1 - paddd m2, m10, [rsp+4*mmsize] - paddd m3, m11, [rsp+5*mmsize] - paddd m8, m12, [rsp+6*mmsize] - paddd m9, m13, [rsp+7*mmsize] -%endif - paddd m10, m0 - paddd m11, m6 - paddd m12, m1 - paddd m13, m7 -%if %3 == 1 - psrad m2, %%sh - psrad m3, %%sh - psrad m8, %%sh - psrad m9, %%sh -%endif ; %3 == 1 - psrad m10, %%sh - psrad m11, %%sh - psrad m12, %%sh - psrad m13, %%sh -%if %3 == 1 - lea tmpq, [rq+rgbsq*2] - packssdw m2, m3 - packssdw m8, m9 - mova [tmpq+xq*4], m2 - mova [tmpq+xq*4+mmsize], m8 -%endif ; %3 == 1 - packssdw m10, m11 - packssdw m12, m13 - mova [rq+xq*(2 << %2)], m10 - mova [rq+xq*(2 << %2)+mmsize], m12 - - ; calculate g offsets (un-subsampled, then duplicate) - pmaddwd m10, m4, [rsp+1*mmsize] -%if %2 == 1 - pmaddwd m12, m5, [rsp+1*mmsize] - punpckhdq m11, m10, m10 - punpckldq m10, m10 - punpckhdq m13, m12, m12 - punpckldq m12, m12 -%else ; %2 != 1 - pmaddwd m11, m5, [rsp+1*mmsize] - pmaddwd m12, m2, [rsp+1*mmsize] - pmaddwd m13, m3, [rsp+1*mmsize] -%endif ; %2 ==/!= 1 -%if %3 == 1 - paddd m2, m10, [rsp+4*mmsize] - paddd m3, m11, [rsp+5*mmsize] - paddd m8, m12, [rsp+6*mmsize] - paddd m9, m13, [rsp+7*mmsize] -%endif ; %3 == 1 - paddd m10, m0 - paddd m11, m6 - paddd m12, m1 - paddd m13, m7 -%if %3 == 1 - psrad m2, %%sh - psrad m3, %%sh - psrad m8, %%sh - psrad m9, %%sh -%endif ; %3 == 1 - psrad m10, %%sh - psrad m11, %%sh - psrad m12, %%sh - psrad m13, %%sh -%if %3 == 1 - lea tmpq, [gq+rgbsq*2] - packssdw m2, m3 - packssdw m8, m9 - mova [tmpq+xq*4], m2 - mova [tmpq+xq*4+mmsize], m8 -%endif ; %3 == 1 - packssdw m10, m11 - packssdw m12, m13 - mova [gq+xq*(2 << %2)], m10 - mova [gq+xq*(2 << %2)+mmsize], m12 - - ; calculate b offsets (un-subsampled, then duplicate) - pmaddwd m4, [rsp+2*mmsize] - pmaddwd m5, [rsp+2*mmsize] -%if %2 == 1 - punpckhdq m2, m4, m4 - punpckldq m4, m4 - punpckhdq m3, m5, m5 - punpckldq m5, m5 -%else ; %2 != 1 - pmaddwd m2, [rsp+2*mmsize] - pmaddwd m3, [rsp+2*mmsize] - SWAP 2, 5 -%endif ; %2 ==/!= 1 - paddd m0, m4 - paddd m6, m2 - paddd m1, m5 - paddd m7, m3 -%if %3 == 1 - paddd m4, [rsp+4*mmsize] - paddd m2, [rsp+5*mmsize] - paddd m5, [rsp+6*mmsize] - paddd m3, [rsp+7*mmsize] -%endif ; %3 == 1 - psrad m0, %%sh - psrad m6, %%sh - psrad m1, %%sh - psrad m7, %%sh -%if %3 == 1 - psrad m4, %%sh - psrad m2, %%sh - psrad m5, %%sh - psrad m3, %%sh -%endif ; %3 == 1 - packssdw m0, m6 - packssdw m1, m7 - movu [bq+xq*(2 << %2)], m0 - movu [bq+xq*(2 << %2)+mmsize], m1 -%if %3 == 1 - lea tmpq, [bq+rgbsq*2] - packssdw m4, m2 - packssdw m5, m3 - movu [tmpq+xq*4], m4 - movu [tmpq+xq*4+mmsize], m5 -%endif ; %3 == 1 - - add xd, mmsize >> %2 - cmp xd, wwd - jl .loop_h - - lea rq, [rq+rgbsq*(2 << %3)] - lea gq, [gq+rgbsq*(2 << %3)] - lea bq, [bq+rgbsq*(2 << %3)] -%if %3 == 1 - lea yq, [yq+ysq*2] -%else ; %3 != 0 - add yq, ysq -%endif ; %3 ==/!= 1 - add uq, usq - add vq, vsq - dec hd - jg .loop_v - - RET -%endmacro - -%macro YUV2RGB_FNS 2 -YUV2RGB_FN 8, %1, %2 -YUV2RGB_FN 10, %1, %2 -YUV2RGB_FN 12, %1, %2 -%endmacro - -INIT_XMM sse2 -YUV2RGB_FNS 0, 0 -YUV2RGB_FNS 1, 0 -YUV2RGB_FNS 1, 1 - -%macro RGB2YUV_FN 3 ; depth, log2_chroma_w (horiz), log2_chroma_h (vert) -%assign %%sh 29 - %1 -%assign %%rnd (1 << (%%sh - 15)) -%assign %%uvrnd ((128 << (%1 - 8)) << (%%sh - 14)) -%if %1 != 8 -%assign %%maxval ((1 << %1) - 1) -%endif ; %1 != 8 -%if %2 == 0 -%assign %%ss 444 -%elif %3 == 0 -%assign %%ss 422 -%else ; %3 == 1 -%assign %%ss 420 -%endif ; %2/%3 - -cglobal rgb2yuv_ %+ %%ss %+ p%1, 8, 14, 16, 0 - 6 * mmsize, \ - yuv, yuvs, rgb, rgbs, ww, h, c, off -%if %2 == 1 - inc wwd - sar wwd, 1 -%endif ; %2 == 1 -%if %3 == 1 - inc hd - sar hd, 1 -%endif ; %3 == 1 - - ; prepare coeffs - movh m8, [offq] - movh m9, [pw_ %+ %%uvrnd] - psllw m8, %%sh - 14 - paddw m9, [pw_ %+ %%rnd] - paddw m8, [pw_ %+ %%rnd] - movh m0, [cq+ 0] - movh m1, [cq+ 16] - movh m2, [cq+ 32] - movh m3, [cq+ 48] - movh m4, [cq+ 64] - movh m5, [cq+ 80] - movh m6, [cq+112] - movh m7, [cq+128] - punpcklwd m0, m1 - punpcklwd m2, m8 - punpcklwd m3, m4 - punpcklwd m4, m5, m9 - punpcklwd m5, m6 - punpcklwd m7, m9 - - mova [rsp+0*mmsize], m0 ; cry, cgy - mova [rsp+1*mmsize], m2 ; cby, off + rnd - mova [rsp+2*mmsize], m3 ; cru, cgu - mova [rsp+3*mmsize], m4 ; cburv, uvoff + rnd - mova [rsp+4*mmsize], m5 ; cburv, cgv - mova [rsp+5*mmsize], m7 ; cbv, uvoff + rnd - - - DEFINE_ARGS y, ys, r, rgbs, ww, h, u, v, us, vs, g, b, tmp, x - mov gq, [rq+gprsize*1] - mov bq, [rq+gprsize*2] - mov rq, [rq+gprsize*0] - mov uq, [yq+gprsize*1] - mov vq, [yq+gprsize*2] - mov yq, [yq+gprsize*0] - mov usq, [ysq+gprsize*1] - mov vsq, [ysq+gprsize*2] - mov ysq, [ysq+gprsize*0] - - pxor m15, m15 -.loop_v: - xor xd, xd - -.loop_h: - ; top line y - mova m0, [rq+xq*(2<<%2)] - mova m3, [rq+xq*(2<<%2)+mmsize] - mova m1, [gq+xq*(2<<%2)] - mova m4, [gq+xq*(2<<%2)+mmsize] - mova m2, [bq+xq*(2<<%2)] - mova m5, [bq+xq*(2<<%2)+mmsize] - - punpcklwd m6, m0, m1 - punpckhwd m7, m0, m1 - punpcklwd m8, m3, m4 - punpckhwd m9, m3, m4 - punpcklwd m10, m2, [pw_16384] - punpckhwd m11, m2, [pw_16384] - punpcklwd m12, m5, [pw_16384] - punpckhwd m13, m5, [pw_16384] - - pmaddwd m6, [rsp+0*mmsize] - pmaddwd m7, [rsp+0*mmsize] - pmaddwd m8, [rsp+0*mmsize] - pmaddwd m9, [rsp+0*mmsize] - pmaddwd m10, [rsp+1*mmsize] - pmaddwd m11, [rsp+1*mmsize] - pmaddwd m12, [rsp+1*mmsize] - pmaddwd m13, [rsp+1*mmsize] - paddd m6, m10 - paddd m7, m11 - paddd m8, m12 - paddd m9, m13 - psrad m6, %%sh - psrad m7, %%sh - psrad m8, %%sh - psrad m9, %%sh - packssdw m6, m7 - packssdw m8, m9 -%if %1 == 8 - packuswb m6, m8 - movu [yq+xq*(1<<%2)], m6 -%else - CLIPW m6, m15, [pw_ %+ %%maxval] - CLIPW m8, m15, [pw_ %+ %%maxval] - movu [yq+xq*(2<<%2)], m6 - movu [yq+xq*(2<<%2)+mmsize], m8 -%endif - -%if %2 == 1 - ; subsampling cached data - pmaddwd m0, [pw_1] - pmaddwd m1, [pw_1] - pmaddwd m2, [pw_1] - pmaddwd m3, [pw_1] - pmaddwd m4, [pw_1] - pmaddwd m5, [pw_1] - -%if %3 == 1 - ; bottom line y, r/g portion only - lea tmpq, [rgbsq+xq*2] - mova m6, [rq+tmpq*2] - mova m9, [rq+tmpq*2+mmsize] - mova m7, [gq+tmpq*2] - mova m10, [gq+tmpq*2+mmsize] - mova m8, [bq+tmpq*2] - mova m11, [bq+tmpq*2+mmsize] - - punpcklwd m12, m6, m7 - punpckhwd m13, m6, m7 - punpcklwd m14, m9, m10 - punpckhwd m15, m9, m10 - - ; release two more registers - pmaddwd m6, [pw_1] - pmaddwd m7, [pw_1] - pmaddwd m9, [pw_1] - pmaddwd m10, [pw_1] - paddd m0, m6 - paddd m3, m9 - paddd m1, m7 - paddd m4, m10 - - ; bottom line y, b/rnd portion only - punpcklwd m6, m8, [pw_16384] - punpckhwd m7, m8, [pw_16384] - punpcklwd m9, m11, [pw_16384] - punpckhwd m10, m11, [pw_16384] - - pmaddwd m12, [rsp+0*mmsize] - pmaddwd m13, [rsp+0*mmsize] - pmaddwd m14, [rsp+0*mmsize] - pmaddwd m15, [rsp+0*mmsize] - pmaddwd m6, [rsp+1*mmsize] - pmaddwd m7, [rsp+1*mmsize] - pmaddwd m9, [rsp+1*mmsize] - pmaddwd m10, [rsp+1*mmsize] - paddd m12, m6 - paddd m13, m7 - paddd m14, m9 - paddd m15, m10 - psrad m12, %%sh - psrad m13, %%sh - psrad m14, %%sh - psrad m15, %%sh - packssdw m12, m13 - packssdw m14, m15 - lea tmpq, [yq+ysq] -%if %1 == 8 - packuswb m12, m14 - movu [tmpq+xq*2], m12 -%else - pxor m15, m15 - CLIPW m12, m15, [pw_ %+ %%maxval] - CLIPW m14, m15, [pw_ %+ %%maxval] - movu [tmpq+xq*4], m12 - movu [tmpq+xq*4+mmsize], m14 -%endif - - ; complete subsampling of r/g/b pixels for u/v - pmaddwd m8, [pw_1] - pmaddwd m11, [pw_1] - paddd m2, m8 - paddd m5, m11 - paddd m0, [pd_2] - paddd m1, [pd_2] - paddd m2, [pd_2] - paddd m3, [pd_2] - paddd m4, [pd_2] - paddd m5, [pd_2] - psrad m0, 2 - psrad m1, 2 - psrad m2, 2 - psrad m3, 2 - psrad m4, 2 - psrad m5, 2 -%else ; %3 != 1 - paddd m0, [pd_1] - paddd m1, [pd_1] - paddd m2, [pd_1] - paddd m3, [pd_1] - paddd m4, [pd_1] - paddd m5, [pd_1] - psrad m0, 1 - psrad m1, 1 - psrad m2, 1 - psrad m3, 1 - psrad m4, 1 - psrad m5, 1 -%endif ; %3 ==/!= 1 - packssdw m0, m3 - packssdw m1, m4 - packssdw m2, m5 -%endif ; %2 == 1 - - ; convert u/v pixels - SBUTTERFLY wd, 0, 1, 6 - punpckhwd m6, m2, [pw_16384] - punpcklwd m2, [pw_16384] - - pmaddwd m7, m0, [rsp+2*mmsize] - pmaddwd m8, m1, [rsp+2*mmsize] - pmaddwd m9, m2, [rsp+3*mmsize] - pmaddwd m10, m6, [rsp+3*mmsize] - pmaddwd m0, [rsp+4*mmsize] - pmaddwd m1, [rsp+4*mmsize] - pmaddwd m2, [rsp+5*mmsize] - pmaddwd m6, [rsp+5*mmsize] - paddd m7, m9 - paddd m8, m10 - paddd m0, m2 - paddd m1, m6 - psrad m7, %%sh - psrad m8, %%sh - psrad m0, %%sh - psrad m1, %%sh - packssdw m7, m8 - packssdw m0, m1 -%if %2 == 1 -%if %1 == 8 - packuswb m7, m0 - movh [uq+xq], m7 - movhps [vq+xq], m7 -%else - CLIPW m7, m15, [pw_ %+ %%maxval] - CLIPW m0, m15, [pw_ %+ %%maxval] - movu [uq+xq*2], m7 - movu [vq+xq*2], m0 -%endif -%else ; %2 != 1 - ; second set of u/v pixels - SBUTTERFLY wd, 3, 4, 6 - punpckhwd m6, m5, [pw_16384] - punpcklwd m5, [pw_16384] - - pmaddwd m8, m3, [rsp+2*mmsize] - pmaddwd m9, m4, [rsp+2*mmsize] - pmaddwd m10, m5, [rsp+3*mmsize] - pmaddwd m11, m6, [rsp+3*mmsize] - pmaddwd m3, [rsp+4*mmsize] - pmaddwd m4, [rsp+4*mmsize] - pmaddwd m5, [rsp+5*mmsize] - pmaddwd m6, [rsp+5*mmsize] - paddd m8, m10 - paddd m9, m11 - paddd m3, m5 - paddd m4, m6 - psrad m8, %%sh - psrad m9, %%sh - psrad m3, %%sh - psrad m4, %%sh - packssdw m8, m9 - packssdw m3, m4 - -%if %1 == 8 - packuswb m7, m8 - packuswb m0, m3 - movu [uq+xq], m7 - movu [vq+xq], m0 -%else - CLIPW m7, m15, [pw_ %+ %%maxval] - CLIPW m0, m15, [pw_ %+ %%maxval] - CLIPW m8, m15, [pw_ %+ %%maxval] - CLIPW m3, m15, [pw_ %+ %%maxval] - movu [uq+xq*2], m7 - movu [uq+xq*2+mmsize], m8 - movu [vq+xq*2], m0 - movu [vq+xq*2+mmsize], m3 -%endif -%endif ; %2 ==/!= 1 - - add xq, mmsize >> %2 - cmp xd, wwd - jl .loop_h - -%if %3 == 0 - add yq, ysq -%else ; %3 != 0 - lea yq, [yq+ysq*2] -%endif ; %3 ==/!= 0 - add uq, usq - add vq, vsq - lea rq, [rq+rgbsq*(2<<%3)] - lea gq, [gq+rgbsq*(2<<%3)] - lea bq, [bq+rgbsq*(2<<%3)] - dec hd - jg .loop_v - - RET -%endmacro - -%macro RGB2YUV_FNS 2 -RGB2YUV_FN 8, %1, %2 -RGB2YUV_FN 10, %1, %2 -RGB2YUV_FN 12, %1, %2 -%endmacro - -INIT_XMM sse2 -RGB2YUV_FNS 0, 0 -RGB2YUV_FNS 1, 0 -RGB2YUV_FNS 1, 1 - -; void ff_multiply3x3_sse2(int16_t *data[3], ptrdiff_t stride, -; int w, int h, const int16_t coeff[3][3][8]) -INIT_XMM sse2 -cglobal multiply3x3, 5, 7, 16, data, stride, ww, h, c - movh m0, [cq+ 0] - movh m1, [cq+ 32] - movh m2, [cq+ 48] - movh m3, [cq+ 80] - movh m4, [cq+ 96] - movh m5, [cq+128] - punpcklwd m0, [cq+ 16] - punpcklwd m1, [pw_8192] - punpcklwd m2, [cq+ 64] - punpcklwd m3, [pw_8192] - punpcklwd m4, [cq+112] - punpcklwd m5, [pw_8192] - - DEFINE_ARGS data0, stride, ww, h, data1, data2, x - shl strideq, 1 - mov data1q, [data0q+gprsize*1] - mov data2q, [data0q+gprsize*2] - mov data0q, [data0q+gprsize*0] - -.loop_v: - xor xd, xd - -.loop_h: - mova m6, [data0q+xq*2] - mova m7, [data1q+xq*2] - mova m8, [data2q+xq*2] - SBUTTERFLY wd, 6, 7, 9 - punpckhwd m9, m8, [pw_1] - punpcklwd m8, [pw_1] - - pmaddwd m10, m6, m0 - pmaddwd m11, m7, m0 - pmaddwd m12, m8, m1 - pmaddwd m13, m9, m1 - paddd m10, m12 - paddd m11, m13 - psrad m10, 14 - psrad m11, 14 - - pmaddwd m12, m6, m2 - pmaddwd m13, m7, m2 - pmaddwd m14, m8, m3 - pmaddwd m15, m9, m3 - paddd m12, m14 - paddd m13, m15 - psrad m12, 14 - psrad m13, 14 - - pmaddwd m6, m4 - pmaddwd m7, m4 - pmaddwd m8, m5 - pmaddwd m9, m5 - paddd m6, m8 - paddd m7, m9 - psrad m6, 14 - psrad m7, 14 - - packssdw m10, m11 - packssdw m12, m13 - packssdw m6, m7 - - mova [data0q+xq*2], m10 - mova [data1q+xq*2], m12 - mova [data2q+xq*2], m6 - - add xd, mmsize / 2 - cmp xd, wwd - jl .loop_h - - add data0q, strideq - add data1q, strideq - add data2q, strideq - dec hd - jg .loop_v - - RET -%endif diff --git a/libavfilter/x86/scene_sad.asm b/libavfilter/x86/scene_sad.asm deleted file mode 100644 index d38d71ccca..0000000000 --- a/libavfilter/x86/scene_sad.asm +++ /dev/null @@ -1,74 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for scene SAD -;* -;* Copyright (C) 2018 Marton Balint -;* -;* Based on vf_blend.asm, Copyright (C) 2015 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - - -%macro SAD_INIT 0 -cglobal scene_sad, 6, 7, 2, src1, stride1, src2, stride2, width, end, x - add src1q, widthq - add src2q, widthq - neg widthq - pxor m1, m1 -%endmacro - - -%macro SAD_LOOP 0 -.nextrow: - mov xq, widthq - - .loop: - movu m0, [src1q + xq] - psadbw m0, [src2q + xq] - paddq m1, m0 - add xq, mmsize - jl .loop - add src1q, stride1q - add src2q, stride2q - sub endd, 1 - jg .nextrow - - mov r0q, r6mp - movu [r0q], m1 ; sum -REP_RET -%endmacro - - -%macro SAD_FRAMES 0 - SAD_INIT - SAD_LOOP -%endmacro - - -INIT_XMM sse2 -SAD_FRAMES - -%if HAVE_AVX2_EXTERNAL - -INIT_YMM avx2 -SAD_FRAMES - -%endif diff --git a/libavfilter/x86/vf_blend.asm b/libavfilter/x86/vf_blend.asm deleted file mode 100644 index 251bbb5a12..0000000000 --- a/libavfilter/x86/vf_blend.asm +++ /dev/null @@ -1,498 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for blend filter -;* -;* Copyright (C) 2015 Paul B Mahol -;* Copyright (C) 2018 Henrik Gramner -;* Copyright (C) 2018 Jokyo Images -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -ps_255: times 4 dd 255.0 -pd_32768 : times 4 dd 32768 -pd_65535 : times 4 dd 65535 -pw_1: times 8 dw 1 -pw_128: times 8 dw 128 -pw_255: times 8 dw 255 -pb_127: times 16 db 127 -pb_128: times 16 db 128 -pb_255: times 16 db 255 - -SECTION .text - -%macro BLEND_INIT 2-3 -%if ARCH_X86_64 -cglobal blend_%1, 6, 9, %2, top, top_linesize, bottom, bottom_linesize, dst, dst_linesize, width, end, x - mov widthd, dword widthm - %if %0 == 3; is 16 bit - add widthq, widthq ; doesn't compile on x86_32 - %endif -%else -cglobal blend_%1, 5, 7, %2, top, top_linesize, bottom, bottom_linesize, dst, end, x -%define dst_linesizeq r5mp -%define widthq r6mp -%endif - mov endd, dword r7m - add topq, widthq - add bottomq, widthq - add dstq, widthq - neg widthq -%endmacro - -%macro BLEND_END 0 - add topq, top_linesizeq - add bottomq, bottom_linesizeq - add dstq, dst_linesizeq - sub endd, 1 - jg .nextrow -REP_RET -%endmacro - -%macro BLEND_SIMPLE 2-3 -BLEND_INIT %1, 2, %3 -.nextrow: - mov xq, widthq - - .loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - p%2 m0, m1 - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -; %1 name , %2 src (b or w), %3 inter (w or d), %4 (1 if 16bit, not set if 8 bit) -%macro GRAINEXTRACT 3-4 -BLEND_INIT %1, 6, %4 - pxor m4, m4 -%if %0 == 4 ; 16 bit - VBROADCASTI128 m5, [pd_32768] -%else - VBROADCASTI128 m5, [pw_128] -%endif -.nextrow: - mov xq, widthq - .loop: - movu m1, [topq + xq] - movu m3, [bottomq + xq] - - punpckl%2%3 m0, m1, m4 - punpckh%2%3 m1, m4 - punpckl%2%3 m2, m3, m4 - punpckh%2%3 m3, m4 - - padd%3 m0, m5 - padd%3 m1, m5 - psub%3 m0, m2 - psub%3 m1, m3 - - packus%3%2 m0, m1 - - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -%macro MULTIPLY 3 ; a, b, pw_1 - pmullw %1, %2 ; xxxxxxxx a * b - paddw %1, %3 - psrlw %2, %1, 8 - paddw %1, %2 - psrlw %1, 8 ; 00xx00xx a * b / 255 -%endmacro - -%macro SCREEN 4 ; a, b, pw_1, pw_255 - pxor %1, %4 ; 00xx00xx 255 - a - pxor %2, %4 - MULTIPLY %1, %2, %3 - pxor %1, %4 ; 00xx00xx 255 - x / 255 -%endmacro - -%macro BLEND_MULTIPLY 0 -BLEND_INIT multiply, 6 - pxor m4, m4 - VBROADCASTI128 m5, [pw_1] -.nextrow: - mov xq, widthq - - .loop: - movu m1, [topq + xq] - movu m3, [bottomq + xq] - punpcklbw m0, m1, m4 - punpckhbw m1, m4 - punpcklbw m2, m3, m4 - punpckhbw m3, m4 - - MULTIPLY m0, m2, m5 - MULTIPLY m1, m3, m5 - - packuswb m0, m1 - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -%macro BLEND_SCREEN 0 -BLEND_INIT screen, 7 - pxor m4, m4 - - VBROADCASTI128 m5, [pw_1] - VBROADCASTI128 m6, [pw_255] -.nextrow: - mov xq, widthq - - .loop: - movu m1, [topq + xq] - movu m3, [bottomq + xq] - punpcklbw m0, m1, m4 - punpckhbw m1, m4 - punpcklbw m2, m3, m4 - punpckhbw m3, m4 - - SCREEN m0, m2, m5, m6 - SCREEN m1, m3, m5, m6 - - packuswb m0, m1 - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -;%1 name, %2 (b or w), %3 (set if 16 bit) -%macro AVERAGE 2-3 -BLEND_INIT %1, 3, %3 - pcmpeqb m2, m2 - -.nextrow: - mov xq, widthq - -.loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - pxor m0, m2 - pxor m1, m2 - pavg%2 m0, m1 - pxor m0, m2 - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -; %1 name , %2 src (b or w), %3 inter (w or d), %4 (1 if 16bit, not set if 8 bit) -%macro GRAINMERGE 3-4 -BLEND_INIT %1, 6, %4 - pxor m4, m4 -%if %0 == 4 ; 16 bit - VBROADCASTI128 m5, [pd_32768] -%else - VBROADCASTI128 m5, [pw_128] -%endif -.nextrow: - mov xq, widthq - - .loop: - movu m1, [topq + xq] - movu m3, [bottomq + xq] - - punpckl%2%3 m0, m1, m4 - punpckh%2%3 m1, m4 - punpckl%2%3 m2, m3, m4 - punpckh%2%3 m3, m4 - - padd%3 m0, m2 - padd%3 m1, m3 - psub%3 m0, m5 - psub%3 m1, m5 - - packus%3%2 m0, m1 - - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -%macro HARDMIX 0 -BLEND_INIT hardmix, 5 - VBROADCASTI128 m2, [pb_255] - VBROADCASTI128 m3, [pb_128] - VBROADCASTI128 m4, [pb_127] -.nextrow: - mov xq, widthq - - .loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - pxor m1, m4 - pxor m0, m3 - pcmpgtb m1, m0 - pxor m1, m2 - mova [dstq + xq], m1 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -%macro DIVIDE 0 -BLEND_INIT divide, 4 - pxor m2, m2 - mova m3, [ps_255] -.nextrow: - mov xq, widthq - - .loop: - movd m0, [topq + xq] ; 000000xx - movd m1, [bottomq + xq] - punpcklbw m0, m2 ; 00000x0x - punpcklbw m1, m2 - punpcklwd m0, m2 ; 000x000x - punpcklwd m1, m2 - - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - divps m0, m1 ; a / b - mulps m0, m3 ; a / b * 255 - minps m0, m3 - cvttps2dq m0, m0 - - packssdw m0, m0 ; 00000x0x - packuswb m0, m0 ; 000000xx - movd [dstq + xq], m0 - add xq, mmsize / 4 - - jl .loop -BLEND_END -%endmacro - -%macro PHOENIX 2-3 -; %1 name, %2 b or w, %3 (opt) 1 if 16 bit -BLEND_INIT %1, 4, %3 - VBROADCASTI128 m3, [pb_255] -.nextrow: - mov xq, widthq - - .loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - mova m2, m0 - pminu%2 m0, m1 - pmaxu%2 m1, m2 - mova m2, m3 - psubus%2 m2, m1 - paddus%2 m2, m0 - mova [dstq + xq], m2 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -; %1 name , %2 src (b or w), %3 inter (w or d), %4 (1 if 16bit, not set if 8 bit) -%macro DIFFERENCE 3-4 -BLEND_INIT %1, 5, %4 - pxor m2, m2 -.nextrow: - mov xq, widthq - - .loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - punpckh%2%3 m3, m0, m2 - punpckl%2%3 m0, m2 - punpckh%2%3 m4, m1, m2 - punpckl%2%3 m1, m2 - psub%3 m0, m1 - psub%3 m3, m4 -%if %0 == 4; 16 bit - pabsd m0, m0 - pabsd m3, m3 -%else - ABS2 m0, m3, m1, m4 -%endif - packus%3%2 m0, m3 - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -; %1 name , %2 src (b or w), %3 inter (w or d), %4 (1 if 16bit, not set if 8 bit) -%macro EXTREMITY 3-4 -BLEND_INIT %1, 8, %4 - pxor m2, m2 -%if %0 == 4; 16 bit - VBROADCASTI128 m4, [pd_65535] -%else - VBROADCASTI128 m4, [pw_255] -%endif -.nextrow: - mov xq, widthq - - .loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - punpckh%2%3 m5, m0, m2 - punpckl%2%3 m0, m2 - punpckh%2%3 m6, m1, m2 - punpckl%2%3 m1, m2 - psub%3 m3, m4, m0 - psub%3 m7, m4, m5 - psub%3 m3, m1 - psub%3 m7, m6 -%if %0 == 4; 16 bit - pabsd m3, m3 - pabsd m7, m7 -%else - ABS2 m3, m7, m1, m6 -%endif - packus%3%2 m3, m7 - mova [dstq + xq], m3 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -%macro NEGATION 3-4 -BLEND_INIT %1, 8, %4 - pxor m2, m2 -%if %0 == 4; 16 bit - VBROADCASTI128 m4, [pd_65535] -%else - VBROADCASTI128 m4, [pw_255] -%endif -.nextrow: - mov xq, widthq - - .loop: - movu m0, [topq + xq] - movu m1, [bottomq + xq] - punpckh%2%3 m5, m0, m2 - punpckl%2%3 m0, m2 - punpckh%2%3 m6, m1, m2 - punpckl%2%3 m1, m2 - psub%3 m3, m4, m0 - psub%3 m7, m4, m5 - psub%3 m3, m1 - psub%3 m7, m6 -%if %0 == 4; 16 bit - pabsd m3, m3 - pabsd m7, m7 -%else - ABS2 m3, m7, m1, m6 -%endif - psub%3 m0, m4, m3 - psub%3 m1, m4, m7 - packus%3%2 m0, m1 - mova [dstq + xq], m0 - add xq, mmsize - jl .loop -BLEND_END -%endmacro - -INIT_XMM sse2 -BLEND_SIMPLE xor, xor -BLEND_SIMPLE or, or -BLEND_SIMPLE and, and -BLEND_SIMPLE addition, addusb -BLEND_SIMPLE subtract, subusb -BLEND_SIMPLE darken, minub -BLEND_SIMPLE lighten, maxub -GRAINEXTRACT grainextract, b, w -BLEND_MULTIPLY -BLEND_SCREEN -AVERAGE average, b -GRAINMERGE grainmerge, b, w -HARDMIX -PHOENIX phoenix, b -DIFFERENCE difference, b, w -DIVIDE -EXTREMITY extremity, b, w -NEGATION negation, b, w - -%if ARCH_X86_64 -BLEND_SIMPLE addition_16, addusw, 1 -BLEND_SIMPLE and_16, and, 1 -BLEND_SIMPLE or_16, or, 1 -BLEND_SIMPLE subtract_16, subusw, 1 -BLEND_SIMPLE xor_16, xor, 1 -AVERAGE average_16, w, 1 -%endif - -INIT_XMM ssse3 -DIFFERENCE difference, b, w -EXTREMITY extremity, b, w -NEGATION negation, b, w - -INIT_XMM sse4 -%if ARCH_X86_64 -BLEND_SIMPLE darken_16, minuw, 1 -BLEND_SIMPLE lighten_16, maxuw, 1 -GRAINEXTRACT grainextract_16, w, d, 1 -GRAINMERGE grainmerge_16, w, d, 1 -PHOENIX phoenix_16, w, 1 -DIFFERENCE difference_16, w, d, 1 -EXTREMITY extremity_16, w, d, 1 -NEGATION negation_16, w, d, 1 -%endif - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -BLEND_SIMPLE xor, xor -BLEND_SIMPLE or, or -BLEND_SIMPLE and, and -BLEND_SIMPLE addition, addusb -BLEND_SIMPLE subtract, subusb -BLEND_SIMPLE darken, minub -BLEND_SIMPLE lighten, maxub -GRAINEXTRACT grainextract, b, w -BLEND_MULTIPLY -BLEND_SCREEN -AVERAGE average, b -GRAINMERGE grainmerge, b, w -HARDMIX -PHOENIX phoenix, b - -DIFFERENCE difference, b, w -EXTREMITY extremity, b, w -NEGATION negation, b, w - -%if ARCH_X86_64 -BLEND_SIMPLE addition_16, addusw, 1 -BLEND_SIMPLE and_16, and, 1 -BLEND_SIMPLE darken_16, minuw, 1 -BLEND_SIMPLE lighten_16, maxuw, 1 -BLEND_SIMPLE or_16, or, 1 -BLEND_SIMPLE subtract_16, subusw, 1 -BLEND_SIMPLE xor_16, xor, 1 -GRAINEXTRACT grainextract_16, w, d, 1 -AVERAGE average_16, w, 1 -GRAINMERGE grainmerge_16, w, d, 1 -PHOENIX phoenix_16, w, 1 -DIFFERENCE difference_16, w, d, 1 -EXTREMITY extremity_16, w, d, 1 -NEGATION negation_16, w, d, 1 -%endif -%endif diff --git a/libavfilter/x86/vf_bwdif.asm b/libavfilter/x86/vf_bwdif.asm deleted file mode 100644 index 147b7c6ac6..0000000000 --- a/libavfilter/x86/vf_bwdif.asm +++ /dev/null @@ -1,270 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for bwdif filter -;* -;* Copyright (C) 2016 Thomas Mundt -;* -;* Based on yadif simd code -;* Copyright (C) 2006 Michael Niedermayer -;* 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_coefhf: times 4 dw 1016, 5570 -pw_coefhf1: times 8 dw -3801 -pw_coefsp: times 4 dw 5077, -981 -pw_splfdif: times 4 dw -768, 768 - -SECTION .text - -%macro LOAD8 2 - movh %1, %2 - punpcklbw %1, m7 -%endmacro - -%macro LOAD12 2 - movu %1, %2 -%endmacro - -%macro DISP8 0 - packuswb m2, m2 - movh [dstq], m2 -%endmacro - -%macro DISP12 0 - CLIPW m2, m7, m12 - movu [dstq], m2 -%endmacro - -%macro FILTER 5 - pxor m7, m7 -.loop%1: - LOAD%4 m0, [curq+t0*%5] - LOAD%4 m1, [curq+t1*%5] - LOAD%4 m2, [%2] - LOAD%4 m3, [%3] - mova m4, m3 - paddw m3, m2 - psubw m2, m4 - ABS1 m2, m4 - mova m8, m3 - mova m9, m2 - LOAD%4 m3, [prevq+t0*%5] - LOAD%4 m4, [prevq+t1*%5] - psubw m3, m0 - psubw m4, m1 - ABS2 m3, m4, m5, m6 - paddw m3, m4 - psrlw m2, 1 - psrlw m3, 1 - pmaxsw m2, m3 - LOAD%4 m3, [nextq+t0*%5] - LOAD%4 m4, [nextq+t1*%5] - psubw m3, m0 - psubw m4, m1 - ABS2 m3, m4, m5, m6 - paddw m3, m4 - psrlw m3, 1 - pmaxsw m2, m3 - - LOAD%4 m3, [%2+t0*2*%5] - LOAD%4 m4, [%3+t0*2*%5] - LOAD%4 m5, [%2+t1*2*%5] - LOAD%4 m6, [%3+t1*2*%5] - paddw m3, m4 - paddw m5, m6 - mova m6, m3 - paddw m6, m5 - mova m10, m6 - psrlw m3, 1 - psrlw m5, 1 - psubw m3, m0 - psubw m5, m1 - mova m6, m3 - pminsw m3, m5 - pmaxsw m5, m6 - mova m4, m8 - psraw m4, 1 - mova m6, m4 - psubw m6, m0 - psubw m4, m1 - pmaxsw m3, m6 - pminsw m5, m6 - pmaxsw m3, m4 - pminsw m5, m4 - mova m6, m7 - psubw m6, m3 - pmaxsw m6, m5 - mova m3, m2 - pcmpgtw m3, m7 - pand m6, m3 - pmaxsw m2, m6 - mova m11, m2 - - LOAD%4 m2, [%2+t0*4*%5] - LOAD%4 m3, [%3+t0*4*%5] - LOAD%4 m4, [%2+t1*4*%5] - LOAD%4 m5, [%3+t1*4*%5] - paddw m2, m3 - paddw m4, m5 - paddw m2, m4 - mova m3, m2 - punpcklwd m2, m8 - punpckhwd m3, m8 - pmaddwd m2, [pw_coefhf] - pmaddwd m3, [pw_coefhf] - mova m4, m10 - mova m6, m4 - pmullw m4, [pw_coefhf1] - pmulhw m6, [pw_coefhf1] - mova m5, m4 - punpcklwd m4, m6 - punpckhwd m5, m6 - paddd m2, m4 - paddd m3, m5 - psrad m2, 2 - psrad m3, 2 - - mova m4, m0 - paddw m0, m1 -%if ARCH_X86_64 - LOAD%4 m5, [curq+t2*%5] - LOAD%4 m6, [curq+t3*%5] -%else - mov r4, prefs3mp - mov r5, mrefs3mp - LOAD%4 m5, [curq+t0*%5] - LOAD%4 m6, [curq+t1*%5] - mov r4, prefsmp - mov r5, mrefsmp -%endif - paddw m6, m5 - psubw m1, m4 - ABS1 m1, m4 - pcmpgtw m1, m9 - mova m4, m1 - punpcklwd m1, m4 - punpckhwd m4, m4 - pand m2, m1 - pand m3, m4 - mova m5, [pw_splfdif] - mova m7, m5 - pand m5, m1 - pand m7, m4 - paddw m5, [pw_coefsp] - paddw m7, [pw_coefsp] - mova m4, m0 - punpcklwd m0, m6 - punpckhwd m4, m6 - pmaddwd m0, m5 - pmaddwd m4, m7 - paddd m2, m0 - paddd m3, m4 - psrad m2, 13 - psrad m3, 13 - packssdw m2, m3 - - mova m4, m8 - psraw m4, 1 - mova m0, m11 - mova m3, m4 - psubw m4, m0 - paddw m3, m0 - CLIPW m2, m4, m3 - pxor m7, m7 - DISP%4 - - add dstq, STEP - add prevq, STEP - add curq, STEP - add nextq, STEP - sub DWORD wm, mmsize/2 - jg .loop%1 -%endmacro - -%macro PROC 2 -%if ARCH_X86_64 - movsxd r5, DWORD prefsm - movsxd r6, DWORD mrefsm - movsxd r7, DWORD prefs3m - movsxd r8, DWORD mrefs3m - DECLARE_REG_TMP 5, 6, 7, 8 -%else - %define m8 [rsp+ 0] - %define m9 [rsp+16] - %define m10 [rsp+32] - %define m11 [rsp+48] - mov r4, prefsmp - mov r5, mrefsmp - DECLARE_REG_TMP 4, 5 -%endif - cmp DWORD paritym, 0 - je .parity0 - FILTER 1, prevq, curq, %1, %2 - jmp .ret -.parity0: - FILTER 0, curq, nextq, %1, %2 -.ret: - RET -%endmacro - -%macro BWDIF 0 -%if ARCH_X86_64 -cglobal bwdif_filter_line, 4, 9, 12, 0, dst, prev, cur, next, w, prefs, \ - mrefs, prefs2, mrefs2, prefs3, mrefs3, \ - prefs4, mrefs4, parity, clip_max -%else -cglobal bwdif_filter_line, 4, 6, 8, 64, dst, prev, cur, next, w, prefs, \ - mrefs, prefs2, mrefs2, prefs3, mrefs3, \ - prefs4, mrefs4, parity, clip_max -%endif - %define STEP mmsize/2 - PROC 8, 1 - -%if ARCH_X86_64 -cglobal bwdif_filter_line_12bit, 4, 9, 13, 0, dst, prev, cur, next, w, \ - prefs, mrefs, prefs2, mrefs2, \ - prefs3, mrefs3, prefs4, \ - mrefs4, parity, clip_max - movd m12, DWORD clip_maxm - SPLATW m12, m12, 0 -%else -cglobal bwdif_filter_line_12bit, 4, 6, 8, 80, dst, prev, cur, next, w, \ - prefs, mrefs, prefs2, mrefs2, \ - prefs3, mrefs3, prefs4, \ - mrefs4, parity, clip_max - %define m12 [rsp+64] - movd m0, DWORD clip_maxm - SPLATW m0, m0, 0 - mova m12, m0 -%endif - %define STEP mmsize - PROC 12, 2 -%endmacro - -INIT_XMM ssse3 -BWDIF -INIT_XMM sse2 -BWDIF -%if ARCH_X86_32 -INIT_MMX mmxext -BWDIF -%endif diff --git a/libavfilter/x86/vf_framerate.asm b/libavfilter/x86/vf_framerate.asm deleted file mode 100644 index 7a30c870bd..0000000000 --- a/libavfilter/x86/vf_framerate.asm +++ /dev/null @@ -1,134 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for framerate filter -;* -;* Copyright (C) 2018 Marton Balint -;* -;* Based on vf_blend.asm, Copyright (C) 2015 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - - -%macro XSPLAT 3 -%if cpuflag(avx2) - vpbroadcast%3 %1, %2 -%else - movd %1, %2 -%ifidn %3, d - SPLATD %1 -%else - SPLATW %1, %1 -%endif -%endif -%endmacro - - -%macro BLEND_INIT 0-1 -%if ARCH_X86_64 -cglobal blend_frames%1, 6, 9, 5, src1, src1_linesize, src2, src2_linesize, dst, dst_linesize, width, end, x - mov widthd, dword widthm -%else -cglobal blend_frames%1, 5, 7, 5, src1, src1_linesize, src2, src2_linesize, dst, end, x -%define dst_linesizeq r5mp -%define widthq r6mp -%endif - mov endd, dword r7m - add src1q, widthq - add src2q, widthq - add dstq, widthq - neg widthq -%endmacro - - -%macro BLEND_LOOP 4 -.nextrow: - mov xq, widthq - - .loop: - movu m0, [src1q + xq] - movu m1, [src2q + xq] - SBUTTERFLY %1%2, 0, 1, 4 ; aAbBcCdD - ; eEfFgGhH - pmadd%3 m0, m2 - pmadd%3 m1, m2 - - padd%2 m0, m3 - padd%2 m1, m3 - psrl%2 m0, %4 ; 0A0B0C0D - psrl%2 m1, %4 ; 0E0F0G0H - - packus%2%1 m0, m1 ; ABCDEFGH - movu [dstq + xq], m0 - add xq, mmsize - jl .loop - add src1q, src1_linesizeq - add src2q, src2_linesizeq - add dstq, dst_linesizeq - sub endd, 1 - jg .nextrow -REP_RET -%endmacro - - -%macro BLEND_FRAMES 0 - BLEND_INIT - - XSPLAT m2, r8m, w ; factor1 - XSPLAT m3, r9m, w ; factor2 - - psllw m3, 8 - por m2, m3 ; interleaved factors - - XSPLAT m3, r10m, w ; half - - BLEND_LOOP b, w, ubsw, 7 -%endmacro - - -%macro BLEND_FRAMES16 0 - BLEND_INIT 16 - - XSPLAT m2, r8m, d ; factor1 - XSPLAT m3, r9m, d ; factor2 - - pslld m3, 16 - por m2, m3 ; interleaved factors - - XSPLAT m3, r10m, d ; half - - BLEND_LOOP w, d, wd, 15 -%endmacro - - -INIT_XMM ssse3 -BLEND_FRAMES - -INIT_XMM sse4 -BLEND_FRAMES16 - - -%if HAVE_AVX2_EXTERNAL - -INIT_YMM avx2 -BLEND_FRAMES -BLEND_FRAMES16 - -%endif diff --git a/libavfilter/x86/vf_fspp.asm b/libavfilter/x86/vf_fspp.asm deleted file mode 100644 index c7f8f64f1b..0000000000 --- a/libavfilter/x86/vf_fspp.asm +++ /dev/null @@ -1,727 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for fspp filter -;* -;* Copyright (c) 2003 Michael Niedermayer -;* Copyright (C) 2005 Nikolaj Poroshin -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg 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. -;* -;* 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 General Public License for more details. -;* -;* You should have received a copy of the GNU 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_dither: db 0, 48, 12, 60, 3, 51, 15, 63, 32, 16, 44, 28, 35, 19, 47, 31, \ - 8, 56, 4, 52, 11, 59, 7, 55, 40, 24, 36, 20, 43, 27, 39, 23, \ - 2, 50, 14, 62, 1, 49, 13, 61, 34, 18, 46, 30, 33, 17, 45, 29, \ - 10, 58, 6, 54, 9, 57, 5, 53, 42, 26, 38, 22, 41, 25, 37, 21 -pw_187E: times 4 dw 0x187E ; FIX64(0.382683433, 14) -pw_22A3: times 4 dw 0x22A3 ; FIX64(1.082392200, 13) -pw_2D41: times 4 dw 0x2D41 ; FIX64(1.414213562, 13) -pw_539F: times 4 dw 0x539F ; FIX64(1.306562965, 14) -pw_5A82: times 4 dw 0x5A82 ; FIX64(1.414213562, 14) -pw_3B21: times 4 dw 0x3B21 ; FIX64(1.847759065, 13) -pw_AC62: times 4 dw 0xAC62 ; FIX64(-2.613125930, 13) -pw_3642: times 4 dw 0x3642 ; FIX64(0.847759065, 14) -pw_2441: times 4 dw 0x2441 ; FIX64(0.566454497, 14) -pw_0CBB: times 4 dw 0x0CBB ; FIX64(0.198912367, 14) -pw_4: times 4 dw 4 -pw_2: times 4 dw 2 - -SECTION .text - -%define DCTSIZE 8 - -INIT_MMX mmx - -;void ff_store_slice_mmx(uint8_t *dst, int16_t *src, -; ptrdiff_t dst_stride, ptrdiff_t src_stride, -; ptrdiff_t width, ptrdiff_t height, ptrdiff_t log2_scale) -%if ARCH_X86_64 -cglobal store_slice, 7, 9, 0, dst, src, dst_stride, src_stride, width, dither_height, dither, tmp, tmp2 -%else -cglobal store_slice, 2, 7, 0, dst, src, width, dither_height, dither, tmp, tmp2 -%define dst_strideq r2m -%define src_strideq r3m - mov widthq, r4m - mov dither_heightq, r5m - mov ditherq, r6m ; log2_scale -%endif - add widthq, 7 - mov tmpq, src_strideq - and widthq, ~7 - sub dst_strideq, widthq - movd m5, ditherd ; log2_scale - xor ditherq, -1 ; log2_scale - mov tmp2q, tmpq - add ditherq, 7 ; log2_scale - neg tmpq - sub tmp2q, widthq - movd m2, ditherd ; log2_scale - add tmp2q, tmp2q - lea ditherq, [pb_dither] - mov src_strideq, tmp2q - shl tmpq, 4 - lea dither_heightq, [ditherq+dither_heightq*8] - pxor m7, m7 - -.loop_height: - movq m3, [ditherq] - movq m4, m3 - punpcklbw m3, m7 - punpckhbw m4, m7 - mov tmp2q, widthq - psraw m3, m5 - psraw m4, m5 - -.loop_width: - movq [srcq+tmpq], m7 - movq m0, [srcq] - movq m1, [srcq+8] - movq [srcq+tmpq+8], m7 - paddw m0, m3 - paddw m1, m4 - movq [srcq], m7 - psraw m0, m2 - psraw m1, m2 - movq [srcq+8], m7 - packuswb m0, m1 - add srcq, 16 - movq [dstq], m0 - add dstq, 8 - sub tmp2q, 8 - jg .loop_width - - add srcq, src_strideq - add ditherq, 8 - add dstq, dst_strideq - cmp ditherq, dither_heightq - jl .loop_height - RET - -;void ff_store_slice2_mmx(uint8_t *dst, int16_t *src, -; ptrdiff_t dst_stride, ptrdiff_t src_stride, -; ptrdiff_t width, ptrdiff_t height, ptrdiff_t log2_scale) -%if ARCH_X86_64 -cglobal store_slice2, 7, 9, 0, dst, src, dst_stride, src_stride, width, dither_height, dither, tmp, tmp2 -%else -cglobal store_slice2, 0, 7, 0, dst, src, width, dither_height, dither, tmp, tmp2 -%define dst_strideq r2m -%define src_strideq r3m - mov dstq, dstm - mov srcq, srcm - mov widthq, r4m - mov dither_heightq, r5m - mov ditherq, r6m ; log2_scale -%endif - add widthq, 7 - mov tmpq, src_strideq - and widthq, ~7 - sub dst_strideq, widthq - movd m5, ditherd ; log2_scale - xor ditherq, -1 ; log2_scale - mov tmp2q, tmpq - add ditherq, 7 ; log2_scale - sub tmp2q, widthq - movd m2, ditherd ; log2_scale - add tmp2q, tmp2q - lea ditherq, [pb_dither] - mov src_strideq, tmp2q - shl tmpq, 5 - lea dither_heightq, [ditherq+dither_heightq*8] - pxor m7, m7 - -.loop_height: - movq m3, [ditherq] - movq m4, m3 - punpcklbw m3, m7 - punpckhbw m4, m7 - mov tmp2q,widthq - psraw m3, m5 - psraw m4, m5 - -.loop_width: - movq m0, [srcq] - movq m1, [srcq+8] - paddw m0, m3 - paddw m0, [srcq+tmpq] - paddw m1, m4 - movq m6, [srcq+tmpq+8] - movq [srcq+tmpq], m7 - psraw m0, m2 - paddw m1, m6 - movq [srcq+tmpq+8], m7 - psraw m1, m2 - packuswb m0, m1 - movq [dstq], m0 - add srcq, 16 - add dstq, 8 - sub tmp2q, 8 - jg .loop_width - - add srcq, src_strideq - add ditherq, 8 - add dstq, dst_strideq - cmp ditherq, dither_heightq - jl .loop_height - RET - -;void ff_mul_thrmat_mmx(int16_t *thr_adr_noq, int16_t *thr_adr, int q); -cglobal mul_thrmat, 3, 3, 0, thrn, thr, q - movd m7, qd - movq m0, [thrnq] - punpcklwd m7, m7 - movq m1, [thrnq+8] - punpckldq m7, m7 - pmullw m0, m7 - movq m2, [thrnq+8*2] - pmullw m1, m7 - movq m3, [thrnq+8*3] - pmullw m2, m7 - movq [thrq], m0 - movq m4, [thrnq+8*4] - pmullw m3, m7 - movq [thrq+8], m1 - movq m5, [thrnq+8*5] - pmullw m4, m7 - movq [thrq+8*2], m2 - movq m6, [thrnq+8*6] - pmullw m5, m7 - movq [thrq+8*3], m3 - movq m0, [thrnq+8*7] - pmullw m6, m7 - movq [thrq+8*4], m4 - movq m1, [thrnq+8*7+8] - pmullw m0, m7 - movq [thrq+8*5], m5 - movq m2, [thrnq+8*7+8*2] - pmullw m1, m7 - movq [thrq+8*6], m6 - movq m3, [thrnq+8*7+8*3] - pmullw m2, m7 - movq [thrq+8*7], m0 - movq m4, [thrnq+8*7+8*4] - pmullw m3, m7 - movq [thrq+8*7+8], m1 - movq m5, [thrnq+8*7+8*5] - pmullw m4, m7 - movq [thrq+8*7+8*2], m2 - movq m6, [thrnq+8*7+8*6] - pmullw m5, m7 - movq [thrq+8*7+8*3], m3 - movq m0, [thrnq+14*8] - pmullw m6, m7 - movq [thrq+8*7+8*4], m4 - movq m1, [thrnq+14*8+8] - pmullw m0, m7 - movq [thrq+8*7+8*5], m5 - pmullw m1, m7 - movq [thrq+8*7+8*6], m6 - movq [thrq+14*8], m0 - movq [thrq+14*8+8], m1 - RET - -%macro COLUMN_FDCT 1-3 0, 0 - movq m1, [srcq+DCTSIZE*0*2] - movq m7, [srcq+DCTSIZE*3*2] - movq m0, m1 - paddw m1, [srcq+DCTSIZE*7*2] - movq m3, m7 - paddw m7, [srcq+DCTSIZE*4*2] - movq m5, m1 - movq m6, [srcq+DCTSIZE*1*2] - psubw m1, m7 - movq m2, [srcq+DCTSIZE*2*2] - movq m4, m6 - paddw m6, [srcq+DCTSIZE*6*2] - paddw m5, m7 - paddw m2, [srcq+DCTSIZE*5*2] - movq m7, m6 - paddw m6, m2 - psubw m7, m2 - movq m2, m5 - paddw m5, m6 - psubw m2, m6 - paddw m7, m1 - movq m6, [thrq+4*16+%2] - psllw m7, 2 - psubw m5, [thrq+%2] - psubw m2, m6 - paddusw m5, [thrq+%2] - paddusw m2, m6 - pmulhw m7, [pw_2D41] - paddw m5, [thrq+%2] - paddw m2, m6 - psubusw m5, [thrq+%2] - psubusw m2, m6 - paddw m5, [pw_2] - movq m6, m2 - paddw m2, m5 - psubw m5, m6 - movq m6, m1 - paddw m1, m7 - psubw m1, [thrq+2*16+%2] - psubw m6, m7 - movq m7, [thrq+6*16+%2] - psraw m5, 2 - paddusw m1, [thrq+2*16+%2] - psubw m6, m7 - paddw m1, [thrq+2*16+%2] - paddusw m6, m7 - psubusw m1, [thrq+2*16+%2] - paddw m6, m7 - psubw m3, [srcq+DCTSIZE*4*2] - psubusw m6, m7 - movq m7, m1 - psraw m2, 2 - psubw m4, [srcq+DCTSIZE*6*2] - psubw m1, m6 - psubw m0, [srcq+DCTSIZE*7*2] - paddw m6, m7 - psraw m6, 2 - movq m7, m2 - pmulhw m1, [pw_5A82] - paddw m2, m6 - movq [rsp], m2 - psubw m7, m6 - movq m2, [srcq+DCTSIZE*2*2] - psubw m1, m6 - psubw m2, [srcq+DCTSIZE*5*2] - movq m6, m5 - movq [rsp+8*3], m7 - paddw m3, m2 - paddw m2, m4 - paddw m4, m0 - movq m7, m3 - psubw m3, m4 - psllw m3, 2 - psllw m7, 2 - pmulhw m3, [pw_187E] - psllw m4, 2 - pmulhw m7, [pw_22A3] - psllw m2, 2 - pmulhw m4, [pw_539F] - paddw m5, m1 - pmulhw m2, [pw_2D41] - psubw m6, m1 - paddw m7, m3 - movq [rsp+8], m5 - paddw m4, m3 - movq m3, [thrq+3*16+%2] - movq m1, m0 - movq [rsp+8*2], m6 - psubw m1, m2 - paddw m0, m2 - movq m5, m1 - movq m2, [thrq+5*16+%2] - psubw m1, m7 - paddw m5, m7 - psubw m1, m3 - movq m7, [thrq+16+%2] - psubw m5, m2 - movq m6, m0 - paddw m0, m4 - paddusw m1, m3 - psubw m6, m4 - movq m4, [thrq+7*16+%2] - psubw m0, m7 - psubw m6, m4 - paddusw m5, m2 - paddusw m6, m4 - paddw m1, m3 - paddw m5, m2 - paddw m6, m4 - psubusw m1, m3 - psubusw m5, m2 - psubusw m6, m4 - movq m4, m1 - por m4, m5 - paddusw m0, m7 - por m4, m6 - paddw m0, m7 - packssdw m4, m4 - psubusw m0, m7 - movd tmpd, m4 - or tmpd, tmpd - jnz %1 - movq m4, [rsp] - movq m1, m0 - pmulhw m0, [pw_3642] - movq m2, m1 - movq m5, [outq+DCTSIZE*0*2] - movq m3, m2 - pmulhw m1, [pw_2441] - paddw m5, m4 - movq m6, [rsp+8] - psraw m3, 2 - pmulhw m2, [pw_0CBB] - psubw m4, m3 - movq m7, [outq+DCTSIZE*1*2] - paddw m5, m3 - movq [outq+DCTSIZE*7*2], m4 - paddw m7, m6 - movq m3, [rsp+8*2] - psubw m6, m0 - movq m4, [outq+DCTSIZE*2*2] - paddw m7, m0 - movq [outq], m5 - paddw m4, m3 - movq [outq+DCTSIZE*6*2], m6 - psubw m3, m1 - movq m5, [outq+DCTSIZE*5*2] - paddw m4, m1 - movq m6, [outq+DCTSIZE*3*2] - paddw m5, m3 - movq m0, [rsp+8*3] - add srcq, 8+%3 - movq [outq+DCTSIZE*1*2], m7 - paddw m6, m0 - movq [outq+DCTSIZE*2*2], m4 - psubw m0, m2 - movq m7, [outq+DCTSIZE*4*2] - paddw m6, m2 - movq [outq+DCTSIZE*5*2], m5 - paddw m7, m0 - movq [outq+DCTSIZE*3*2], m6 - movq [outq+DCTSIZE*4*2], m7 - add outq, 8+%3 -%endmacro - -%macro COLUMN_IDCT 0-1 0 - movq m3, m5 - psubw m5, m1 - psllw m5, 1 - paddw m3, m1 - movq m2, m0 - psubw m0, m6 - movq m1, m5 - psllw m0, 1 - pmulhw m1, [pw_AC62] - paddw m5, m0 - pmulhw m5, [pw_3B21] - paddw m2, m6 - pmulhw m0, [pw_22A3] - movq m7, m2 - movq m4, [rsp] - psubw m2, m3 - psllw m2, 1 - paddw m7, m3 - pmulhw m2, [pw_2D41] - movq m6, m4 - psraw m7, 2 - paddw m4, [outq] - psubw m6, m7 - movq m3, [rsp+8] - paddw m4, m7 - movq [outq+DCTSIZE*7*2], m6 - paddw m1, m5 - movq [outq], m4 - psubw m1, m7 - movq m7, [rsp+8*2] - psubw m0, m5 - movq m6, [rsp+8*3] - movq m5, m3 - paddw m3, [outq+DCTSIZE*1*2] - psubw m5, m1 - psubw m2, m1 - paddw m3, m1 - movq [outq+DCTSIZE*6*2], m5 - movq m4, m7 - paddw m7, [outq+DCTSIZE*2*2] - psubw m4, m2 - paddw m4, [outq+DCTSIZE*5*2] - paddw m7, m2 - movq [outq+DCTSIZE*1*2], m3 - paddw m0, m2 - movq [outq+DCTSIZE*2*2], m7 - movq m1, m6 - paddw m6, [outq+DCTSIZE*4*2] - psubw m1, m0 - paddw m1, [outq+DCTSIZE*3*2] - paddw m6, m0 - movq [outq+DCTSIZE*5*2], m4 - add srcq, 8+%1 - movq [outq+DCTSIZE*4*2], m6 - movq [outq+DCTSIZE*3*2], m1 - add outq, 8+%1 -%endmacro - -;void ff_column_fidct_mmx(int16_t *thr_adr, int16_t *data, int16_t *output, int cnt); -cglobal column_fidct, 4, 5, 0, 32, thr, src, out, cnt, tmp -.fdct1: - COLUMN_FDCT .idct1 - jmp .fdct2 - -.idct1: - COLUMN_IDCT - -.fdct2: - COLUMN_FDCT .idct2, 8, 16 - sub cntd, 2 - jg .fdct1 - RET - -.idct2: - COLUMN_IDCT 16 - sub cntd, 2 - jg .fdct1 - RET - -;void ff_row_idct_mmx(int16_t *workspace, int16_t *output_adr, ptrdiff_t output_stride, int cnt); -cglobal row_idct, 4, 5, 0, 16, src, dst, stride, cnt, stride3 - add strideq, strideq - lea stride3q, [strideq+strideq*2] -.loop: - movq m0, [srcq+DCTSIZE*0*2] - movq m1, [srcq+DCTSIZE*1*2] - movq m4, m0 - movq m2, [srcq+DCTSIZE*2*2] - punpcklwd m0, m1 - movq m3, [srcq+DCTSIZE*3*2] - punpckhwd m4, m1 - movq m7, m2 - punpcklwd m2, m3 - movq m6, m0 - punpckldq m0, m2 - punpckhdq m6, m2 - movq m5, m0 - punpckhwd m7, m3 - psubw m0, m6 - pmulhw m0, [pw_5A82] - movq m2, m4 - punpckldq m4, m7 - paddw m5, m6 - punpckhdq m2, m7 - movq m1, m4 - psllw m0, 2 - paddw m4, m2 - movq m3, [srcq+DCTSIZE*0*2+8] - psubw m1, m2 - movq m2, [srcq+DCTSIZE*1*2+8] - psubw m0, m5 - movq m6, m4 - paddw m4, m5 - psubw m6, m5 - movq m7, m1 - movq m5, [srcq+DCTSIZE*2*2+8] - paddw m1, m0 - movq [rsp], m4 - movq m4, m3 - movq [rsp+8], m6 - punpcklwd m3, m2 - movq m6, [srcq+DCTSIZE*3*2+8] - punpckhwd m4, m2 - movq m2, m5 - punpcklwd m5, m6 - psubw m7, m0 - punpckhwd m2, m6 - movq m0, m3 - punpckldq m3, m5 - punpckhdq m0, m5 - movq m5, m4 - movq m6, m3 - punpckldq m4, m2 - psubw m3, m0 - punpckhdq m5, m2 - paddw m6, m0 - movq m2, m4 - movq m0, m3 - psubw m4, m5 - pmulhw m0, [pw_AC62] - paddw m3, m4 - pmulhw m3, [pw_3B21] - paddw m2, m5 - pmulhw m4, [pw_22A3] - movq m5, m2 - psubw m2, m6 - paddw m5, m6 - pmulhw m2, [pw_2D41] - paddw m0, m3 - psllw m0, 3 - psubw m4, m3 - movq m6, [rsp] - movq m3, m1 - psllw m4, 3 - psubw m0, m5 - psllw m2, 3 - paddw m1, m0 - psubw m2, m0 - psubw m3, m0 - paddw m4, m2 - movq m0, m7 - paddw m7, m2 - psubw m0, m2 - movq m2, [pw_4] - psubw m6, m5 - paddw m5, [rsp] - paddw m1, m2 - paddw m5, m2 - psraw m1, 3 - paddw m7, m2 - psraw m5, 3 - paddw m5, [dstq] - psraw m7, 3 - paddw m1, [dstq+strideq*1] - paddw m0, m2 - paddw m7, [dstq+strideq*2] - paddw m3, m2 - movq [dstq], m5 - paddw m6, m2 - movq [dstq+strideq*1], m1 - psraw m0, 3 - movq [dstq+strideq*2], m7 - add dstq, stride3q - movq m5, [rsp+8] - psraw m3, 3 - paddw m0, [dstq+strideq*2] - psubw m5, m4 - paddw m3, [dstq+stride3q*1] - psraw m6, 3 - paddw m4, [rsp+8] - paddw m5, m2 - paddw m6, [dstq+strideq*4] - paddw m4, m2 - movq [dstq+strideq*2], m0 - psraw m5, 3 - paddw m5, [dstq] - psraw m4, 3 - paddw m4, [dstq+strideq*1] - add srcq, DCTSIZE*2*4 - movq [dstq+stride3q*1], m3 - movq [dstq+strideq*4], m6 - movq [dstq], m5 - movq [dstq+strideq*1], m4 - sub dstq, stride3q - add dstq, 8 - dec r3d - jnz .loop - RET - -;void ff_row_fdct_mmx(int16_t *data, const uint8_t *pixels, ptrdiff_t line_size, int cnt); -cglobal row_fdct, 4, 5, 0, 16, src, pix, stride, cnt, stride3 - lea stride3q, [strideq+strideq*2] -.loop: - movd m0, [pixq] - pxor m7, m7 - movd m1, [pixq+strideq*1] - punpcklbw m0, m7 - movd m2, [pixq+strideq*2] - punpcklbw m1, m7 - punpcklbw m2, m7 - add pixq,stride3q - movq m5, m0 - movd m3, [pixq+strideq*4] - movq m6, m1 - movd m4, [pixq+stride3q*1] - punpcklbw m3, m7 - psubw m5, m3 - punpcklbw m4, m7 - paddw m0, m3 - psubw m6, m4 - movd m3, [pixq+strideq*2] - paddw m1, m4 - movq [rsp], m5 - punpcklbw m3, m7 - movq [rsp+8], m6 - movq m4, m2 - movd m5, [pixq] - paddw m2, m3 - movd m6, [pixq+strideq*1] - punpcklbw m5, m7 - psubw m4, m3 - punpcklbw m6, m7 - movq m3, m5 - paddw m5, m6 - psubw m3, m6 - movq m6, m0 - movq m7, m1 - psubw m0, m5 - psubw m1, m2 - paddw m7, m2 - paddw m1, m0 - movq m2, m7 - psllw m1, 2 - paddw m6, m5 - pmulhw m1, [pw_2D41] - paddw m7, m6 - psubw m6, m2 - movq m5, m0 - movq m2, m7 - punpcklwd m7, m6 - paddw m0, m1 - punpckhwd m2, m6 - psubw m5, m1 - movq m6, m0 - movq m1, [rsp+8] - punpcklwd m0, m5 - punpckhwd m6, m5 - movq m5, m0 - punpckldq m0, m7 - paddw m3, m4 - punpckhdq m5, m7 - movq m7, m6 - movq [srcq+DCTSIZE*0*2], m0 - punpckldq m6, m2 - movq [srcq+DCTSIZE*1*2], m5 - punpckhdq m7, m2 - movq [srcq+DCTSIZE*2*2], m6 - paddw m4, m1 - movq [srcq+DCTSIZE*3*2], m7 - psllw m3, 2 - movq m2, [rsp] - psllw m4, 2 - pmulhw m4, [pw_2D41] - paddw m1, m2 - psllw m1, 2 - movq m0, m3 - pmulhw m0, [pw_22A3] - psubw m3, m1 - pmulhw m3, [pw_187E] - movq m5, m2 - pmulhw m1, [pw_539F] - psubw m2, m4 - paddw m5, m4 - movq m6, m2 - paddw m0, m3 - movq m7, m5 - paddw m2, m0 - psubw m6, m0 - movq m4, m2 - paddw m1, m3 - punpcklwd m2, m6 - paddw m5, m1 - punpckhwd m4, m6 - psubw m7, m1 - movq m6, m5 - punpcklwd m5, m7 - punpckhwd m6, m7 - movq m7, m2 - punpckldq m2, m5 - sub pixq, stride3q - punpckhdq m7, m5 - movq m5, m4 - movq [srcq+DCTSIZE*0*2+8], m2 - punpckldq m4, m6 - movq [srcq+DCTSIZE*1*2+8], m7 - punpckhdq m5, m6 - movq [srcq+DCTSIZE*2*2+8], m4 - add pixq, 4 - movq [srcq+DCTSIZE*3*2+8], m5 - add srcq, DCTSIZE*4*2 - dec cntd - jnz .loop - RET diff --git a/libavfilter/x86/vf_gblur.asm b/libavfilter/x86/vf_gblur.asm deleted file mode 100644 index 762c953c85..0000000000 --- a/libavfilter/x86/vf_gblur.asm +++ /dev/null @@ -1,185 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for gblur filter -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -; void ff_horiz_slice_sse4(float *ptr, int width, int height, int steps, -; float nu, float bscale) - -%macro HORIZ_SLICE 0 -%if UNIX64 -cglobal horiz_slice, 4, 9, 9, ptr, width, height, steps, x, y, step, stride, remain -%else -cglobal horiz_slice, 4, 9, 9, ptr, width, height, steps, nu, bscale, x, y, step, stride, remain -%endif -%if WIN64 - movss m0, num - movss m1, bscalem - DEFINE_ARGS ptr, width, height, steps, x, y, step, stride, remain -%endif - movsxdifnidn widthq, widthd - - mulss m2, m0, m0 ; nu ^ 2 - mulss m3, m2, m0 ; nu ^ 3 - mulss m4, m3, m0 ; nu ^ 4 - xor xq, xq - xor yd, yd - mov strideq, widthq - ; stride = width * 4 - shl strideq, 2 - ; w = w - ((w - 1) & 3) - mov remainq, widthq - sub remainq, 1 - and remainq, 3 - sub widthq, remainq - - shufps m0, m0, 0 - shufps m2, m2, 0 - shufps m3, m3, 0 - shufps m4, m4, 0 - -.loop_y: - xor stepd, stepd - - .loop_step: - ; p0 *= bscale - mulss m5, m1, [ptrq + xq * 4] - movss [ptrq + xq * 4], m5 - inc xq - ; filter rightwards - ; Here we are vectorizing the c version by 4 - ; for (x = 1; x < width; x++) - ; ptr[x] += nu * ptr[x - 1]; - ; let p0 stands for ptr[x-1], the data from last loop - ; and [p1,p2,p3,p4] be the vector data for this loop. - ; Unrolling the loop, we get: - ; p1' = p1 + p0*nu - ; p2' = p2 + p1*nu + p0*nu^2 - ; p3' = p3 + p2*nu + p1*nu^2 + p0*nu^3 - ; p4' = p4 + p3*nu + p2*nu^2 + p1*nu^3 + p0*nu^4 - ; so we can do it in simd: - ; [p1',p2',p3',p4'] = [p1,p2,p3,p4] + [p0,p1,p2,p3]*nu + - ; [0,p0,p1,p2]*nu^2 + [0,0,p0,p1]*nu^3 + - ; [0,0,0,p0]*nu^4 - - .loop_x: - movu m6, [ptrq + xq * 4] ; s = [p1,p2,p3,p4] - pslldq m7, m6, 4 ; [0, p1,p2,p3] - movss m7, m5 ; [p0,p1,p2,p3] - FMULADD_PS m6, m7, m0, m6, m8 ; s += [p0,p1,p2,p3] * nu - pslldq m7, 4 ; [0,p0,p1,p2] - FMULADD_PS m6, m7, m2, m6, m8 ; s += [0,p0,p1,p2] * nu^2 - pslldq m7, 4 - FMULADD_PS m6, m7, m3, m6, m8 ; s += [0,0,p0,p1] * nu^3 - pslldq m7, 4 - FMULADD_PS m6, m7, m4, m6, m8 ; s += [0,0,0,p0] * nu^4 - movu [ptrq + xq * 4], m6 - shufps m5, m6, m6, q3333 - add xq, 4 - cmp xq, widthq - jl .loop_x - - add widthq, remainq - cmp xq, widthq - je .end_scalar - - .loop_scalar: - ; ptr[x] += nu * ptr[x-1] - movss m5, [ptrq + 4*xq - 4] - mulss m5, m0 - addss m5, [ptrq + 4*xq] - movss [ptrq + 4*xq], m5 - inc xq - cmp xq, widthq - jl .loop_scalar - .end_scalar: - ; ptr[width - 1] *= bscale - dec xq - mulss m5, m1, [ptrq + 4*xq] - movss [ptrq + 4*xq], m5 - shufps m5, m5, 0 - - ; filter leftwards - ; for (; x > 0; x--) - ; ptr[x - 1] += nu * ptr[x]; - ; The idea here is basically the same as filter rightwards. - ; But we need to take care as the data layout is different. - ; Let p0 stands for the ptr[x], which is the data from last loop. - ; The way we do it in simd as below: - ; [p-4', p-3', p-2', p-1'] = [p-4, p-3, p-2, p-1] - ; + [p-3, p-2, p-1, p0] * nu - ; + [p-2, p-1, p0, 0] * nu^2 - ; + [p-1, p0, 0, 0] * nu^3 - ; + [p0, 0, 0, 0] * nu^4 - .loop_x_back: - sub xq, 4 - movu m6, [ptrq + xq * 4] ; s = [p-4, p-3, p-2, p-1] - psrldq m7, m6, 4 ; [p-3, p-2, p-1, 0 ] - blendps m7, m5, 0x8 ; [p-3, p-2, p-1, p0 ] - FMULADD_PS m6, m7, m0, m6, m8 ; s+= [p-3, p-2, p-1, p0 ] * nu - psrldq m7, 4 ; - FMULADD_PS m6, m7, m2, m6, m8 ; s+= [p-2, p-1, p0, 0] * nu^2 - psrldq m7, 4 - FMULADD_PS m6, m7, m3, m6, m8 ; s+= [p-1, p0, 0, 0] * nu^3 - psrldq m7, 4 - FMULADD_PS m6, m7, m4, m6, m8 ; s+= [p0, 0, 0, 0] * nu^4 - movu [ptrq + xq * 4], m6 - shufps m5, m6, m6, 0 ; m5 = [p-4', p-4', p-4', p-4'] - cmp xq, remainq - jg .loop_x_back - - cmp xq, 0 - je .end_scalar_back - - .loop_scalar_back: - ; ptr[x-1] += nu * ptr[x] - movss m5, [ptrq + 4*xq] - mulss m5, m0 - addss m5, [ptrq + 4*xq - 4] - movss [ptrq + 4*xq - 4], m5 - dec xq - cmp xq, 0 - jg .loop_scalar_back - .end_scalar_back: - - ; reset aligned width for next line - sub widthq, remainq - - inc stepd - cmp stepd, stepsd - jl .loop_step - - add ptrq, strideq - inc yd - cmp yd, heightd - jl .loop_y - - RET -%endmacro - -%if ARCH_X86_64 -INIT_XMM sse4 -HORIZ_SLICE - -INIT_XMM avx2 -HORIZ_SLICE -%endif diff --git a/libavfilter/x86/vf_gradfun.asm b/libavfilter/x86/vf_gradfun.asm deleted file mode 100644 index 3581f89fe8..0000000000 --- a/libavfilter/x86/vf_gradfun.asm +++ /dev/null @@ -1,110 +0,0 @@ -;****************************************************************************** -;* x86-optimized functions for gradfun filter -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_7f: times 8 dw 0x7F -pw_ff: times 8 dw 0xFF - -SECTION .text - -%macro FILTER_LINE 1 - movh m0, [r2+r0] - movh m1, [r3+r0] - punpcklbw m0, m7 - punpcklwd m1, m1 - psllw m0, 7 - psubw m1, m0 - PABSW m2, m1 - pmulhuw m2, m5 - psubw m2, m6 - pminsw m2, m7 - pmullw m2, m2 - psllw m1, 2 - paddw m0, %1 - pmulhw m1, m2 - paddw m0, m1 - psraw m0, 7 - packuswb m0, m0 - movh [r1+r0], m0 -%endmacro - -INIT_MMX mmxext -cglobal gradfun_filter_line, 6, 6 - movh m5, r4d - pxor m7, m7 - pshufw m5, m5,0 - mova m6, [pw_7f] - mova m3, [r5] - mova m4, [r5+8] -.loop: - FILTER_LINE m3 - add r0, 4 - jge .end - FILTER_LINE m4 - add r0, 4 - jl .loop -.end: - REP_RET - -INIT_XMM ssse3 -cglobal gradfun_filter_line, 6, 6, 8 - movd m5, r4d - pxor m7, m7 - pshuflw m5, m5, 0 - mova m6, [pw_7f] - punpcklqdq m5, m5 - mova m4, [r5] -.loop: - FILTER_LINE m4 - add r0, 8 - jl .loop - REP_RET - -%macro BLUR_LINE 1 -cglobal gradfun_blur_line_%1, 6, 6, 8 - mova m7, [pw_ff] -.loop: - %1 m0, [r4+r0] - %1 m1, [r5+r0] - mova m2, m0 - mova m3, m1 - psrlw m0, 8 - psrlw m1, 8 - pand m2, m7 - pand m3, m7 - paddw m0, m1 - paddw m2, m3 - paddw m0, m2 - paddw m0, [r2+r0] - mova m1, [r1+r0] - mova [r1+r0], m0 - psubw m0, m1 - mova [r3+r0], m0 - add r0, 16 - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -BLUR_LINE movdqa -BLUR_LINE movdqu diff --git a/libavfilter/x86/vf_hflip.asm b/libavfilter/x86/vf_hflip.asm deleted file mode 100644 index 285618954f..0000000000 --- a/libavfilter/x86/vf_hflip.asm +++ /dev/null @@ -1,90 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for hflip filter -;* -;* Copyright (C) 2017 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_flip_byte: db 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 -pb_flip_short: db 14,15,12,13,10,11,8,9,6,7,4,5,2,3,0,1 - -SECTION .text - -;%1 byte or short, %2 b or w, %3 size in byte (1 for byte, 2 for short) -%macro HFLIP 3 -cglobal hflip_%1, 3, 5, 3, src, dst, w, r, x - VBROADCASTI128 m0, [pb_flip_%1] - xor xq, xq -%if %3 == 1 - movsxdifnidn wq, wd -%else ; short - add wd, wd -%endif - mov rq, wq - and rq, 2 * mmsize - 1 - cmp wq, 2 * mmsize - jl .loop1 - sub wq, rq - - .loop0: - neg xq -%if mmsize == 32 - vpermq m1, [srcq + xq - mmsize + %3], 0x4e; flip each lane at load - vpermq m2, [srcq + xq - 2 * mmsize + %3], 0x4e; flip each lane at load -%else - movu m1, [srcq + xq - mmsize + %3] - movu m2, [srcq + xq - 2 * mmsize + %3] -%endif - pshufb m1, m0 - pshufb m2, m0 - neg xq - movu [dstq + xq ], m1 - movu [dstq + xq + mmsize], m2 - add xq, mmsize * 2 - cmp xq, wq - jl .loop0 - - cmp rq, 0 - je .end - add wq, rq - - .loop1: - neg xq - mov r%2, [srcq + xq] - neg xq - mov [dstq + xq], r%2 - add xq, %3 - cmp xq, wq - jl .loop1 - .end: - RET -%endmacro - -INIT_XMM ssse3 -HFLIP byte, b, 1 -HFLIP short, w, 2 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -HFLIP byte, b, 1 -HFLIP short, w, 2 -%endif diff --git a/libavfilter/x86/vf_hqdn3d.asm b/libavfilter/x86/vf_hqdn3d.asm deleted file mode 100644 index e3b1bdca53..0000000000 --- a/libavfilter/x86/vf_hqdn3d.asm +++ /dev/null @@ -1,106 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2012 Loren Merritt -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro LOWPASS 3 ; prevsample, cursample, lut - sub %1q, %2q -%if lut_bits != 8 - sar %1q, 8-lut_bits -%endif - movsx %1q, word [%3q+%1q*2] - add %1q, %2q -%endmacro - -%macro LOAD 3 ; dstreg, x, bitdepth -%if %3 == 8 - movzx %1, byte [srcq+%2] -%else - movzx %1, word [srcq+(%2)*2] -%endif -%if %3 != 16 - shl %1, 16-%3 - add %1, (1<<(15-%3))-1 -%endif -%endmacro - -%macro HQDN3D_ROW 1 ; bitdepth -%if ARCH_X86_64 -cglobal hqdn3d_row_%1_x86, 7,10,0, src, dst, lineant, frameant, width, spatial, temporal, pixelant, t0, t1 -%else -cglobal hqdn3d_row_%1_x86, 7,7,0, src, dst, lineant, frameant, width, spatial, temporal -%endif - %assign bytedepth (%1+7)>>3 - %assign lut_bits 4+4*(%1/16) - dec widthq - lea srcq, [srcq+widthq*bytedepth] - lea dstq, [dstq+widthq*bytedepth] - lea frameantq, [frameantq+widthq*2] - lea lineantq, [lineantq+widthq*2] - neg widthq - %define xq widthq -%if ARCH_X86_32 - mov dstmp, dstq - mov srcmp, srcq - mov frameantmp, frameantq - mov lineantmp, lineantq - %define dstq r0 - %define frameantq r0 - %define lineantq r0 - %define pixelantq r1 - %define pixelantd r1d - DECLARE_REG_TMP 2,3 -%endif - LOAD pixelantd, xq, %1 -ALIGN 16 -.loop: - movifnidn srcq, srcmp - LOAD t0d, xq+1, %1 ; skip on the last iteration to avoid overread -.loop2: - movifnidn lineantq, lineantmp - movzx t1d, word [lineantq+xq*2] - LOWPASS t1, pixelant, spatial - mov [lineantq+xq*2], t1w - LOWPASS pixelant, t0, spatial - movifnidn frameantq, frameantmp - movzx t0d, word [frameantq+xq*2] - LOWPASS t0, t1, temporal - mov [frameantq+xq*2], t0w - movifnidn dstq, dstmp -%if %1 != 16 - shr t0d, 16-%1 ; could eliminate this by storing from t0h, but only with some contraints on register allocation -%endif -%if %1 == 8 - mov [dstq+xq], t0b -%else - mov [dstq+xq*2], t0w -%endif - inc xq - jl .loop - je .loop2 - REP_RET -%endmacro ; HQDN3D_ROW - -HQDN3D_ROW 8 -HQDN3D_ROW 9 -HQDN3D_ROW 10 -HQDN3D_ROW 16 diff --git a/libavfilter/x86/vf_idet.asm b/libavfilter/x86/vf_idet.asm deleted file mode 100644 index 9596abd7e2..0000000000 --- a/libavfilter/x86/vf_idet.asm +++ /dev/null @@ -1,170 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for idet filter -;* -;* Copyright (C) 2014 Pascal Massimino (pascal.massimino@gmail.com) -;* Copyright (c) 2014 Neil Birkbeck (birkbeck@google.com) -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg is free software; you can redistribute it and/or -;* modify it under the terms of the GNU Lesser General Public -;* License as published by the Free Software Foundation; either -;* version 2.1 of the License, or (at your option) any later version. -;* -;* FFmpeg is distributed in the hope that it will be useful, -;* but WITHOUT ANY WARRANTY; without even the implied warranty of -;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;* Lesser General Public License for more details. -;* -;* You should have received a copy of the GNU Lesser General Public -;* License along with FFmpeg; if not, write to the Free Software -;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;****************************************************************************** - -%include "libavutil/x86/x86util.asm" - -SECTION .text - -; Implementation that does 8-bytes at a time using single-word operations. -%macro IDET_FILTER_LINE 1 -INIT_MMX %1 -cglobal idet_filter_line, 4, 5, 0, a, b, c, width, index - xor indexq, indexq -%define m_zero m2 -%define m_sum m5 - pxor m_sum, m_sum - pxor m_zero, m_zero - -.loop: - movu m0, [aq + indexq*1] - punpckhbw m1, m0, m_zero - punpcklbw m0, m_zero - - movu m3, [cq + indexq*1] - punpckhbw m4, m3, m_zero - punpcklbw m3, m_zero - - paddsw m1, m4 - paddsw m0, m3 - - movu m3, [bq + indexq*1] - punpckhbw m4, m3, m_zero - punpcklbw m3, m_zero - - paddw m4, m4 - paddw m3, m3 - psubsw m1, m4 - psubsw m0, m3 - - ABS2 m1, m0, m4, m3 - - paddw m0, m1 - punpckhwd m1, m0, m_zero - punpcklwd m0, m_zero - - paddd m0, m1 - paddd m_sum, m0 - - add indexq, 0x8 - CMP widthd, indexd - jg .loop - - HADDD m_sum, m0 - movd eax, m_sum - RET -%endmacro - -%if ARCH_X86_32 -IDET_FILTER_LINE mmxext -IDET_FILTER_LINE mmx -%endif - -;****************************************************************************** -; 16bit implementation that does 4/8-pixels at a time - -%macro PABS_DIFF_WD 3 ; a, b, junk , output=a - psubusw %3, %2, %1 - psubusw %1, %2 - por %1, %3 - - mova %2, %1 - punpcklwd %1, m_zero - punpckhwd %2, m_zero - paddd %1, %2 -%endmacro - -%macro IDET_FILTER_LINE_16BIT 1 ; %1=increment (4 or 8 words) -cglobal idet_filter_line_16bit, 4, 5, 8, a, b, c, width, index - xor indexq, indexq -%define m_zero m1 -%define m_sum m0 - pxor m_sum, m_sum - pxor m_zero, m_zero - -.loop_16bit: - movu m2, [bq + indexq * 2] ; B - movu m3, [aq + indexq * 2] ; A - mova m6, m2 - psubusw m5, m2, m3 ; ba - - movu m4, [cq + indexq * 2] ; C - add indexq, %1 - psubusw m3, m2 ; ab - CMP indexd, widthd - - psubusw m6, m4 ; bc - psubusw m4, m2 ; cb - - PABS_DIFF_WD m3, m6, m7 ; |ab - bc| - PABS_DIFF_WD m5, m4, m7 ; |ba - cb| - paddd m_sum, m3 - paddd m_sum, m5 - jl .loop_16bit - - HADDD m_sum, m2 - movd eax, m_sum - RET -%endmacro - -INIT_XMM sse2 -IDET_FILTER_LINE_16BIT 8 -%if ARCH_X86_32 -INIT_MMX mmx -IDET_FILTER_LINE_16BIT 4 -%endif - -;****************************************************************************** -; SSE2 8-bit implementation that does 16-bytes at a time: - -INIT_XMM sse2 -cglobal idet_filter_line, 4, 6, 7, a, b, c, width, index, total - xor indexq, indexq - pxor m0, m0 - pxor m1, m1 - -.sse2_loop: - movu m2, [bq + indexq*1] ; B - movu m3, [aq + indexq*1] ; A - mova m6, m2 - mova m4, m3 - psubusb m5, m2, m3 ; ba - - movu m3, [cq + indexq*1] ; C - add indexq, 0x10 - psubusb m4, m2 ; ab - CMP indexd, widthd - - psubusb m6, m3 ; bc - psubusb m3, m2 ; cb - - psadbw m4, m6 ; |ab - bc| - paddq m0, m4 - psadbw m5, m3 ; |ba - cb| - paddq m1, m5 - jl .sse2_loop - - paddq m0, m1 - movhlps m1, m0 - paddq m0, m1 - movd eax, m0 - RET diff --git a/libavfilter/x86/vf_interlace.asm b/libavfilter/x86/vf_interlace.asm deleted file mode 100644 index a6c65b805d..0000000000 --- a/libavfilter/x86/vf_interlace.asm +++ /dev/null @@ -1,226 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for interlace filter -;* -;* Copyright (C) 2014 Kieran Kunhya -;* Copyright (c) 2014 Michael Niedermayer -;* Copyright (c) 2017 Thomas Mundt -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg 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. -;* -;* 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 General Public License for more details. -;* -;* You should have received a copy of the GNU 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_4: times 8 dw 4 - -SECTION .text - -%macro LOWPASS 1 - add dstq, hq - add srcq, hq - add mrefq, srcq - add prefq, srcq - neg hq - - pcmpeq%1 m6, m6 - - test hq, mmsize - je .loop - - ;process 1 * mmsize - movu m0, [mrefq+hq] - pavg%1 m0, [prefq+hq] - pxor m0, m6 - pxor m2, m6, [srcq+hq] - pavg%1 m0, m2 - pxor m0, m6 - mova [dstq+hq], m0 - add hq, mmsize - jge .end - -.loop: - movu m0, [mrefq+hq] - movu m1, [mrefq+hq+mmsize] - pavg%1 m0, [prefq+hq] - pavg%1 m1, [prefq+hq+mmsize] - pxor m0, m6 - pxor m1, m6 - pxor m2, m6, [srcq+hq] - pxor m3, m6, [srcq+hq+mmsize] - pavg%1 m0, m2 - pavg%1 m1, m3 - pxor m0, m6 - pxor m1, m6 - mova [dstq+hq], m0 - mova [dstq+hq+mmsize], m1 - - add hq, 2*mmsize - jl .loop - -.end: - REP_RET -%endmacro - -%macro LOWPASS_LINE 0 -cglobal lowpass_line, 5, 5, 7, dst, h, src, mref, pref - LOWPASS b - -cglobal lowpass_line_16, 5, 5, 7, dst, h, src, mref, pref - shl hq, 1 - LOWPASS w -%endmacro - -%macro LOWPASS_LINE_COMPLEX 0 -cglobal lowpass_line_complex, 5, 5, 8, dst, h, src, mref, pref - pxor m7, m7 -.loop: - movu m0, [srcq+mrefq] - movu m2, [srcq+prefq] - mova m1, m0 - mova m3, m2 - punpcklbw m0, m7 - punpcklbw m2, m7 - punpckhbw m1, m7 - punpckhbw m3, m7 - paddw m0, m2 - paddw m1, m3 - mova m6, m0 - mova m5, m1 - movu m2, [srcq] - mova m3, m2 - punpcklbw m2, m7 - punpckhbw m3, m7 - paddw m0, m2 - paddw m1, m3 - psllw m2, 1 - psllw m3, 1 - paddw m0, m2 - paddw m1, m3 - psllw m0, 1 - psllw m1, 1 - pcmpgtw m6, m2 - pcmpgtw m5, m3 - packsswb m6, m5 - movu m2, [srcq+mrefq*2] - movu m4, [srcq+prefq*2] - mova m3, m2 - mova m5, m4 - punpcklbw m2, m7 - punpcklbw m4, m7 - punpckhbw m3, m7 - punpckhbw m5, m7 - paddw m2, m4 - paddw m3, m5 - paddw m0, [pw_4] - paddw m1, [pw_4] - psubusw m0, m2 - psubusw m1, m3 - psrlw m0, 3 - psrlw m1, 3 - packuswb m0, m1 - mova m1, m0 - movu m2, [srcq] - pmaxub m0, m2 - pminub m1, m2 - pand m0, m6 - pandn m6, m1 - por m0, m6 - mova [dstq], m0 - - add dstq, mmsize - add srcq, mmsize - sub hd, mmsize - jg .loop -REP_RET - -cglobal lowpass_line_complex_12, 5, 5, 8, 16, dst, h, src, mref, pref, clip_max - movd m7, DWORD clip_maxm - SPLATW m7, m7, 0 - movu [rsp], m7 -.loop: - movu m0, [srcq+mrefq] - movu m1, [srcq+mrefq+mmsize] - movu m2, [srcq+prefq] - movu m3, [srcq+prefq+mmsize] - paddw m0, m2 - paddw m1, m3 - mova m6, m0 - mova m7, m1 - movu m2, [srcq] - movu m3, [srcq+mmsize] - paddw m0, m2 - paddw m1, m3 - psllw m2, 1 - psllw m3, 1 - paddw m0, m2 - paddw m1, m3 - psllw m0, 1 - psllw m1, 1 - pcmpgtw m6, m2 - pcmpgtw m7, m3 - movu m2, [srcq+2*mrefq] - movu m3, [srcq+2*mrefq+mmsize] - movu m4, [srcq+2*prefq] - movu m5, [srcq+2*prefq+mmsize] - paddw m2, m4 - paddw m3, m5 - paddw m0, [pw_4] - paddw m1, [pw_4] - psubusw m0, m2 - psubusw m1, m3 - psrlw m0, 3 - psrlw m1, 3 - pminsw m0, [rsp] - pminsw m1, [rsp] - mova m2, m0 - mova m3, m1 - movu m4, [srcq] - pmaxsw m0, m4 - pminsw m2, m4 - movu m4, [srcq + mmsize] - pmaxsw m1, m4 - pminsw m3, m4 - pand m0, m6 - pand m1, m7 - pandn m6, m2 - pandn m7, m3 - por m0, m6 - por m1, m7 - mova [dstq], m0 - mova [dstq+mmsize], m1 - - add dstq, 2*mmsize - add srcq, 2*mmsize - sub hd, mmsize - jg .loop -REP_RET -%endmacro - -INIT_XMM sse2 -LOWPASS_LINE - -INIT_XMM avx -LOWPASS_LINE - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -LOWPASS_LINE -%endif - -INIT_XMM sse2 -LOWPASS_LINE_COMPLEX diff --git a/libavfilter/x86/vf_limiter.asm b/libavfilter/x86/vf_limiter.asm deleted file mode 100644 index c5b9b0a64d..0000000000 --- a/libavfilter/x86/vf_limiter.asm +++ /dev/null @@ -1,80 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for limiter filter -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_XMM sse2 - -cglobal limiter_8bit, 6, 7, 3, src, dst, slinesize, dlinesize, w, h, x - movsxdifnidn wq, wd - add srcq, wq - add dstq, wq - neg wq - movd m1, r6m - punpcklbw m1, m1 - SPLATW m1, m1 - movd m2, r7m - punpcklbw m2, m2 - SPLATW m2, m2 -.nextrow: - mov xq, wq - - .loop: - movu m0, [srcq + xq] - CLIPUB m0, m1, m2 - mova [dstq+xq], m0 - add xq, mmsize - jl .loop - - add srcq, slinesizeq - add dstq, dlinesizeq - sub hd, 1 - jg .nextrow - RET - -INIT_XMM sse4 - -cglobal limiter_16bit, 6, 7, 3, src, dst, slinesize, dlinesize, w, h, x - shl wd, 1 - add srcq, wq - add dstq, wq - neg wq - movd m1, r6m - SPLATW m1, m1 - movd m2, r7m - SPLATW m2, m2 -.nextrow: - mov xq, wq - - .loop: - movu m0, [srcq + xq] - pmaxuw m0, m1 - pminuw m0, m2 - mova [dstq+xq], m0 - add xq, mmsize - jl .loop - - add srcq, slinesizeq - add dstq, dlinesizeq - sub hd, 1 - jg .nextrow - RET diff --git a/libavfilter/x86/vf_maskedmerge.asm b/libavfilter/x86/vf_maskedmerge.asm deleted file mode 100644 index 7e61935b97..0000000000 --- a/libavfilter/x86/vf_maskedmerge.asm +++ /dev/null @@ -1,81 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for maskedmerge filter -;* -;* Copyright (C) 2015 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_128: times 8 dw 128 -pw_256: times 8 dw 256 - -SECTION .text - -INIT_XMM sse2 -%if ARCH_X86_64 -cglobal maskedmerge8, 8, 11, 7, bsrc, osrc, msrc, dst, blinesize, olinesize, mlinesize, dlinesize, w, h, x - mov wd, dword wm - mov hd, dword hm -%else -cglobal maskedmerge8, 5, 7, 7, bsrc, osrc, msrc, dst, blinesize, w, x - mov wd, r8m -%define olinesizeq r5mp -%define mlinesizeq r6mp -%define dlinesizeq r7mp -%define hd r9mp -%endif - mova m4, [pw_256] - mova m5, [pw_128] - pxor m6, m6 - add bsrcq, wq - add osrcq, wq - add msrcq, wq - add dstq, wq - neg wq -.nextrow: - mov xq, wq - - .loop: - movh m0, [bsrcq + xq] - movh m1, [osrcq + xq] - movh m3, [msrcq + xq] - mova m2, m4 - punpcklbw m0, m6 - punpcklbw m1, m6 - punpcklbw m3, m6 - psubw m2, m3 - pmullw m2, m0 - pmullw m1, m3 - paddw m1, m2 - paddw m1, m5 - psrlw m1, 8 - packuswb m1, m1 - movh [dstq + xq], m1 - add xq, mmsize / 2 - jl .loop - - add bsrcq, blinesizeq - add osrcq, olinesizeq - add msrcq, mlinesizeq - add dstq, dlinesizeq - sub hd, 1 - jg .nextrow -REP_RET diff --git a/libavfilter/x86/vf_overlay.asm b/libavfilter/x86/vf_overlay.asm deleted file mode 100644 index 14ec60ca34..0000000000 --- a/libavfilter/x86/vf_overlay.asm +++ /dev/null @@ -1,144 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for overlay filter -;* -;* Copyright (C) 2018 Paul B Mahol -;* Copyright (C) 2018 Henrik Gramner -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_1: times 16 db 1 -pw_128: times 8 dw 128 -pw_255: times 8 dw 255 -pw_257: times 8 dw 257 - -SECTION .text - -INIT_XMM sse4 -cglobal overlay_row_44, 5, 7, 6, 0, d, da, s, a, w, r, x - xor xq, xq - movsxdifnidn wq, wd - mov rq, wq - and rq, mmsize/2 - 1 - cmp wq, mmsize/2 - jl .end - sub wq, rq - mova m3, [pw_255] - mova m4, [pw_128] - mova m5, [pw_257] - .loop: - pmovzxbw m0, [sq+xq] - pmovzxbw m2, [aq+xq] - pmovzxbw m1, [dq+xq] - pmullw m0, m2 - pxor m2, m3 - pmullw m1, m2 - paddw m0, m4 - paddw m0, m1 - pmulhuw m0, m5 - packuswb m0, m0 - movq [dq+xq], m0 - add xq, mmsize/2 - cmp xq, wq - jl .loop - - .end: - mov eax, xd - RET - -INIT_XMM sse4 -cglobal overlay_row_22, 5, 7, 6, 0, d, da, s, a, w, r, x - xor xq, xq - movsxdifnidn wq, wd - sub wq, 1 - mov rq, wq - and rq, mmsize/2 - 1 - cmp wq, mmsize/2 - jl .end - sub wq, rq - mova m3, [pw_255] - mova m4, [pw_128] - mova m5, [pw_257] - .loop: - pmovzxbw m0, [sq+xq] - movu m1, [aq+2*xq] - pandn m2, m3, m1 - psllw m1, 8 - pavgw m2, m1 - pavgw m2, m1 - psrlw m2, 8 - pmovzxbw m1, [dq+xq] - pmullw m0, m2 - pxor m2, m3 - pmullw m1, m2 - paddw m0, m4 - paddw m0, m1 - pmulhuw m0, m5 - packuswb m0, m0 - movq [dq+xq], m0 - add xq, mmsize/2 - cmp xq, wq - jl .loop - - .end: - mov eax, xd - RET - -INIT_XMM sse4 -cglobal overlay_row_20, 6, 7, 7, 0, d, da, s, a, w, r, x - mov daq, aq - add daq, rmp - xor xq, xq - movsxdifnidn wq, wd - sub wq, 1 - mov rq, wq - and rq, mmsize/2 - 1 - cmp wq, mmsize/2 - jl .end - sub wq, rq - mova m3, [pw_255] - mova m4, [pw_128] - mova m5, [pw_257] - mova m6, [pb_1] - .loop: - pmovzxbw m0, [sq+xq] - movu m2, [aq+2*xq] - movu m1, [daq+2*xq] - pmaddubsw m2, m6 - pmaddubsw m1, m6 - paddw m2, m1 - psrlw m2, 2 - pmovzxbw m1, [dq+xq] - pmullw m0, m2 - pxor m2, m3 - pmullw m1, m2 - paddw m0, m4 - paddw m0, m1 - pmulhuw m0, m5 - packuswb m0, m0 - movq [dq+xq], m0 - add xq, mmsize/2 - cmp xq, wq - jl .loop - - .end: - mov eax, xd - RET diff --git a/libavfilter/x86/vf_pp7.asm b/libavfilter/x86/vf_pp7.asm deleted file mode 100644 index 7b3e5cf5e3..0000000000 --- a/libavfilter/x86/vf_pp7.asm +++ /dev/null @@ -1,57 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for pp7 filter -;* -;* Copyright (c) 2005 Michael Niedermayer -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg 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. -;* -;* 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 General Public License for more details. -;* -;* You should have received a copy of the GNU 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_MMX mmx - -;void ff_pp7_dctB_mmx(int16_t *dst, int16_t *src) -cglobal pp7_dctB, 2, 2, 0, dst, src - movq m0, [srcq] - movq m1, [srcq+mmsize*1] - paddw m0, [srcq+mmsize*6] - paddw m1, [srcq+mmsize*5] - movq m2, [srcq+mmsize*2] - movq m3, [srcq+mmsize*3] - paddw m2, [srcq+mmsize*4] - paddw m3, m3 - movq m4, m3 - psubw m3, m0 - paddw m4, m0 - movq m0, m2 - psubw m2, m1 - paddw m0, m1 - movq m1, m4 - psubw m4, m0 - paddw m1, m0 - movq m0, m3 - psubw m3, m2 - psubw m3, m2 - paddw m2, m0 - paddw m2, m0 - movq [dstq], m1 - movq [dstq+mmsize*2], m4 - movq [dstq+mmsize*1], m2 - movq [dstq+mmsize*3], m3 - RET diff --git a/libavfilter/x86/vf_psnr.asm b/libavfilter/x86/vf_psnr.asm deleted file mode 100644 index 11eb81a225..0000000000 --- a/libavfilter/x86/vf_psnr.asm +++ /dev/null @@ -1,140 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for psnr filter -;* -;* Copyright (C) 2015 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 "libavutil/x86/x86util.asm" - -SECTION .text - -%macro SSE_LINE_FN 2 ; 8 or 16, byte or word -INIT_XMM sse2 -%if ARCH_X86_32 -%if %1 == 8 -cglobal sse_line_%1 %+ bit, 0, 6, 8, res, buf, w, px1, px2, ref -%else -cglobal sse_line_%1 %+ bit, 0, 7, 8, res, buf, reshigh, w, px1, px2, ref -%endif - mov bufq, r0mp - mov refq, r1mp - mov wd, r2m -%else -cglobal sse_line_%1 %+ bit, 3, 5, 8, buf, ref, w, px1, px2 -%endif - pxor m6, m6 - pxor m7, m7 - sub wd, mmsize*2 - jl .end - -.loop: - movu m0, [bufq+mmsize*0] - movu m1, [bufq+mmsize*1] - movu m2, [refq+mmsize*0] - movu m3, [refq+mmsize*1] -%if %1 == 8 - add bufq, mmsize*2 - add refq, mmsize*2 - psubusb m4, m0, m2 - psubusb m5, m1, m3 - psubusb m2, m0 - psubusb m3, m1 - por m2, m4 - por m3, m5 - punpcklbw m0, m2, m6 - punpcklbw m1, m3, m6 - punpckhbw m2, m6 - punpckhbw m3, m6 -%else - psubw m0, m2 - psubw m1, m3 - movu m2, [bufq+mmsize*2] - movu m3, [bufq+mmsize*3] - movu m4, [refq+mmsize*2] - movu m5, [refq+mmsize*3] - psubw m2, m4 - psubw m3, m5 - add bufq, mmsize*4 - add refq, mmsize*4 -%endif - pmaddwd m0, m0 - pmaddwd m1, m1 - pmaddwd m2, m2 - pmaddwd m3, m3 - paddd m0, m1 - paddd m2, m3 -%if %1 == 8 - paddd m7, m0 - paddd m7, m2 -%else - paddd m0, m2 - punpckldq m2, m0, m6 - punpckhdq m0, m6 - paddq m7, m0 - paddq m7, m2 -%endif - sub wd, mmsize*2 - jge .loop - -.end: - add wd, mmsize*2 - movhlps m0, m7 -%if %1 == 8 - paddd m7, m0 - pshufd m0, m7, 1 - paddd m7, m0 - movd eax, m7 -%else - paddq m7, m0 -%if ARCH_X86_32 - movd eax, m7 - psrldq m7, 4 - movd edx, m7 -%else - movq rax, m7 -%endif -%endif - - ; deal with cases where w % 32 != 0 - test wd, wd - jz .end_scalar -.loop_scalar: - movzx px1d, %2 [bufq+wq*(%1/8)-(%1/8)] - movzx px2d, %2 [refq+wq*(%1/8)-(%1/8)] - sub px1d, px2d - imul px1d, px1d -%if %1 == 8 - add eax, px1d -%elif ARCH_X86_64 - add rax, px1q -%else - add eax, px1d - adc edx, 0 -%endif - dec wd - jg .loop_scalar - -.end_scalar: - ; for %1=8, no need to zero edx on x86-32, since edx=wd, which is zero - RET -%endmacro - -INIT_XMM sse2 -SSE_LINE_FN 8, byte -SSE_LINE_FN 16, word diff --git a/libavfilter/x86/vf_pullup.asm b/libavfilter/x86/vf_pullup.asm deleted file mode 100644 index 26c2a27d37..0000000000 --- a/libavfilter/x86/vf_pullup.asm +++ /dev/null @@ -1,178 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for pullup filter -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg 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. -;* -;* 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 General Public License for more details. -;* -;* You should have received a copy of the GNU 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_MMX mmx -cglobal pullup_filter_diff, 3, 5, 8, first, second, size - mov r3, 4 - pxor m4, m4 - pxor m7, m7 - -.loop: - movq m0, [firstq] - movq m2, [firstq] - add firstq, sizeq - movq m1, [secondq] - add secondq, sizeq - psubusb m2, m1 - psubusb m1, m0 - movq m0, m2 - movq m3, m1 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpckhbw m2, m7 - punpckhbw m3, m7 - paddw m4, m0 - paddw m4, m1 - paddw m4, m2 - paddw m4, m3 - - dec r3 - jnz .loop - - movq m3, m4 - punpcklwd m4, m7 - punpckhwd m3, m7 - paddd m3, m4 - movd eax, m3 - psrlq m3, 32 - movd r4d, m3 - add eax, r4d - RET - -INIT_MMX mmx -cglobal pullup_filter_comb, 3, 5, 8, first, second, size - mov r3, 4 - pxor m6, m6 - pxor m7, m7 - sub secondq, sizeq - -.loop: - movq m0, [firstq] - movq m1, [secondq] - punpcklbw m0, m7 - movq m2, [secondq+sizeq] - punpcklbw m1, m7 - punpcklbw m2, m7 - paddw m0, m0 - paddw m1, m2 - movq m2, m0 - psubusw m0, m1 - psubusw m1, m2 - paddw m6, m0 - paddw m6, m1 - - movq m0, [firstq] - movq m1, [secondq] - punpckhbw m0, m7 - movq m2, [secondq+sizeq] - punpckhbw m1, m7 - punpckhbw m2, m7 - paddw m0, m0 - paddw m1, m2 - movq m2, m0 - psubusw m0, m1 - psubusw m1, m2 - paddw m6, m0 - paddw m6, m1 - - movq m0, [secondq+sizeq] - movq m1, [firstq] - punpcklbw m0, m7 - movq m2, [firstq+sizeq] - punpcklbw m1, m7 - punpcklbw m2, m7 - paddw m0, m0 - paddw m1, m2 - movq m2, m0 - psubusw m0, m1 - psubusw m1, m2 - paddw m6, m0 - paddw m6, m1 - - movq m0, [secondq+sizeq] - movq m1, [firstq] - punpckhbw m0, m7 - movq m2, [firstq+sizeq] - punpckhbw m1, m7 - punpckhbw m2, m7 - paddw m0, m0 - paddw m1, m2 - movq m2, m0 - psubusw m0, m1 - psubusw m1, m2 - paddw m6, m0 - paddw m6, m1 - - add firstq, sizeq - add secondq, sizeq - dec r3 - jnz .loop - - movq m5, m6 - punpcklwd m6, m7 - punpckhwd m5, m7 - paddd m5, m6 - movd eax, m5 - psrlq m5, 32 - movd r4d, m5 - add eax, r4d - RET - -INIT_MMX mmx -cglobal pullup_filter_var, 3, 5, 8, first, second, size - mov r3, 3 - pxor m4, m4 - pxor m7, m7 - -.loop: - movq m0, [firstq] - movq m2, [firstq] - movq m1, [firstq+sizeq] - add firstq, sizeq - psubusb m2, m1 - psubusb m1, m0 - movq m0, m2 - movq m3, m1 - punpcklbw m0, m7 - punpcklbw m1, m7 - punpckhbw m2, m7 - punpckhbw m3, m7 - paddw m4, m0 - paddw m4, m1 - paddw m4, m2 - paddw m4, m3 - - dec r3 - jnz .loop - - movq m3, m4 - punpcklwd m4, m7 - punpckhwd m3, m7 - paddd m3, m4 - movd eax, m3 - psrlq m3, 32 - movd r4d, m3 - add eax, r4d - shl eax, 2 - RET diff --git a/libavfilter/x86/vf_removegrain.asm b/libavfilter/x86/vf_removegrain.asm deleted file mode 100644 index d049bf257d..0000000000 --- a/libavfilter/x86/vf_removegrain.asm +++ /dev/null @@ -1,1218 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for removegrain filter -;* -;* Copyright (C) 2015 James Darnley -;* -;* This file is part of FFmpeg. -;* -;* FFmpeg 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. -;* -;* 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 General Public License for more details. -;* -;* You should have received a copy of the GNU 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. -;***************************************************************************** - -; column: -1 0 +1 -; row -1: a1 a2 a3 -; row 0: a4 c a5 -; row +1: a6 a7 a8 - -%include "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -pw_4: times 16 dw 4 -pw_8: times 16 dw 8 -pw_div9: times 16 dw ((1<<16)+4)/9 - -SECTION .text - -;*** Preprocessor helpers - -%define a1 srcq+stride_n-1 -%define a2 srcq+stride_n -%define a3 srcq+stride_n+1 -%define a4 srcq-1 -%define c srcq -%define a5 srcq+1 -%define a6 srcq+stride_p-1 -%define a7 srcq+stride_p -%define a8 srcq+stride_p+1 - -; %1 dest simd register -; %2 source memory location -; %3 zero location (simd register/memory) -%macro LOAD 3 - movh %1, %2 - punpcklbw %1, %3 -%endmacro - -%macro LOAD_SQUARE 0 - movu m1, [a1] - movu m2, [a2] - movu m3, [a3] - movu m4, [a4] - movu m0, [c] - movu m5, [a5] - movu m6, [a6] - movu m7, [a7] - movu m8, [a8] -%endmacro - -; %1 zero location (simd register/memory) -%macro LOAD_SQUARE_16 1 - LOAD m1, [a1], %1 - LOAD m2, [a2], %1 - LOAD m3, [a3], %1 - LOAD m4, [a4], %1 - LOAD m0, [c], %1 - LOAD m5, [a5], %1 - LOAD m6, [a6], %1 - LOAD m7, [a7], %1 - LOAD m8, [a8], %1 -%endmacro - -; %1 data type -; %2 simd register to hold maximums -; %3 simd register to hold minimums -; %4 temp location (simd register/memory) -%macro SORT_PAIR 4 - mova %4, %2 - pmin%1 %2, %3 - pmax%1 %3, %4 -%endmacro - -%macro SORT_AXIS 0 - SORT_PAIR ub, m1, m8, m9 - SORT_PAIR ub, m2, m7, m10 - SORT_PAIR ub, m3, m6, m11 - SORT_PAIR ub, m4, m5, m12 -%endmacro - - -%macro SORT_AXIS_16 0 - SORT_PAIR sw, m1, m8, m9 - SORT_PAIR sw, m2, m7, m10 - SORT_PAIR sw, m3, m6, m11 - SORT_PAIR sw, m4, m5, m12 -%endmacro - -; The loop doesn't need to do all the iterations. It could stop when the right -; pixels are in the right registers. -%macro SORT_SQUARE 0 - %assign k 7 - %rep 7 - %assign i 1 - %assign j 2 - %rep k - SORT_PAIR ub, m %+ i , m %+ j , m9 - %assign i i+1 - %assign j j+1 - %endrep - %assign k k-1 - %endrep -%endmacro - -; %1 dest simd register -; %2 source (simd register/memory) -; %3 temp simd register -%macro ABS_DIFF 3 - mova %3, %2 - psubusb %3, %1 - psubusb %1, %2 - por %1, %3 -%endmacro - -; %1 dest simd register -; %2 source (simd register/memory) -; %3 temp simd register -%macro ABS_DIFF_W 3 - mova %3, %2 - psubusw %3, %1 - psubusw %1, %2 - por %1, %3 -%endmacro - -; %1 simd register that holds the "false" values and will hold the result -; %2 simd register that holds the "true" values -; %3 location (simd register/memory) that hold the mask -%macro BLEND 3 -%if cpuflag(avx2) - vpblendvb %1, %1, %2, %3 -%else - pand %2, %3 - pandn %3, %1 - por %3, %2 - SWAP %1, %3 -%endif -%endmacro - -; Functions - -INIT_XMM sse2 -cglobal rg_fl_mode_1, 4, 5, 3, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - movu m0, [a1] - mova m1, m0 - - movu m2, [a2] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [a3] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [a4] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [a5] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [a6] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [a7] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [a8] - pmaxub m0, m2 - pminub m1, m2 - - movu m2, [c] - pminub m2, m0 - pmaxub m2, m1 - - movu [dstq], m2 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -%if ARCH_X86_64 -cglobal rg_fl_mode_2, 4, 5, 10, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - SORT_SQUARE - - CLIPUB m0, m2, m7 - - movu [dstq], m0 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_3, 4, 5, 10, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - SORT_SQUARE - - CLIPUB m0, m3, m6 - - movu [dstq], m0 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_4, 4, 5, 10, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - SORT_SQUARE - - CLIPUB m0, m4, m5 - - movu [dstq], m0 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_5, 4, 5, 13, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - SORT_AXIS - - mova m9, m0 - mova m10, m0 - mova m11, m0 - mova m12, m0 - - CLIPUB m9, m1, m8 - CLIPUB m10, m2, m7 - CLIPUB m11, m3, m6 - CLIPUB m12, m4, m5 - - mova m8, m9 ; clip1 - mova m7, m10 ; clip2 - mova m6, m11 ; clip3 - mova m5, m12 ; clip4 - - ABS_DIFF m9, m0, m1 ; c1 - ABS_DIFF m10, m0, m2 ; c2 - ABS_DIFF m11, m0, m3 ; c3 - ABS_DIFF m12, m0, m4 ; c4 - - pminub m9, m10 - pminub m9, m11 - pminub m9, m12 ; mindiff - - pcmpeqb m10, m9 - pcmpeqb m11, m9 - pcmpeqb m12, m9 - - ; Notice the order here: c1, c3, c2, c4 - BLEND m8, m6, m11 - BLEND m8, m7, m10 - BLEND m8, m5, m12 - - movu [dstq], m8 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_6, 4, 5, 16, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - ; Some register saving suggestions: the zero can be somewhere other than a - ; register, the center pixels could be on the stack. - - pxor m15, m15 - .loop: - LOAD_SQUARE_16 m15 - SORT_AXIS_16 - - mova m9, m0 - mova m10, m0 - mova m11, m0 - mova m12, m0 - CLIPW m9, m1, m8 ; clip1 - CLIPW m10, m2, m7 ; clip2 - CLIPW m11, m3, m6 ; clip3 - CLIPW m12, m4, m5 ; clip4 - - psubw m8, m1 ; d1 - psubw m7, m2 ; d2 - psubw m6, m3 ; d3 - psubw m5, m4 ; d4 - - mova m1, m9 - mova m2, m10 - mova m3, m11 - mova m4, m12 - ABS_DIFF_W m1, m0, m13 - ABS_DIFF_W m2, m0, m14 - ABS_DIFF_W m3, m0, m13 - ABS_DIFF_W m4, m0, m14 - psllw m1, 1 - psllw m2, 1 - psllw m3, 1 - psllw m4, 1 - paddw m1, m8 ; c1 - paddw m2, m7 ; c2 - paddw m3, m6 ; c3 - paddw m4, m5 ; c4 - ; As the differences (d1..d4) can only be positive, there is no need to - ; clip to zero. Also, the maximum positive value is less than 768. - - pminsw m1, m2 - pminsw m1, m3 - pminsw m1, m4 - - pcmpeqw m2, m1 - pcmpeqw m3, m1 - pcmpeqw m4, m1 - - BLEND m9, m11, m3 - BLEND m9, m10, m2 - BLEND m9, m12, m4 - packuswb m9, m9 - - movh [dstq], m9 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -; This is just copy-pasted straight from mode 6 with the left shifts removed. -cglobal rg_fl_mode_7, 4, 5, 16, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - ; Can this be done without unpacking? - - pxor m15, m15 - .loop: - LOAD_SQUARE_16 m15 - SORT_AXIS_16 - - mova m9, m0 - mova m10, m0 - mova m11, m0 - mova m12, m0 - CLIPW m9, m1, m8 ; clip1 - CLIPW m10, m2, m7 ; clip2 - CLIPW m11, m3, m6 ; clip3 - CLIPW m12, m4, m5 ; clip4 - - psubw m8, m1 ; d1 - psubw m7, m2 ; d2 - psubw m6, m3 ; d3 - psubw m5, m4 ; d4 - - mova m1, m9 - mova m2, m10 - mova m3, m11 - mova m4, m12 - ABS_DIFF_W m1, m0, m13 - ABS_DIFF_W m2, m0, m14 - ABS_DIFF_W m3, m0, m13 - ABS_DIFF_W m4, m0, m14 - paddw m1, m8 ; c1 - paddw m2, m7 ; c2 - paddw m3, m6 ; c3 - paddw m4, m5 ; c4 - - pminsw m1, m2 - pminsw m1, m3 - pminsw m1, m4 - - pcmpeqw m2, m1 - pcmpeqw m3, m1 - pcmpeqw m4, m1 - - BLEND m9, m11, m3 - BLEND m9, m10, m2 - BLEND m9, m12, m4 - packuswb m9, m9 - - movh [dstq], m9 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -; This is just copy-pasted straight from mode 6 with a few changes. -cglobal rg_fl_mode_8, 4, 5, 16, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m15, m15 - .loop: - LOAD_SQUARE_16 m15 - SORT_AXIS_16 - - mova m9, m0 - mova m10, m0 - mova m11, m0 - mova m12, m0 - CLIPW m9, m1, m8 ; clip1 - CLIPW m10, m2, m7 ; clip2 - CLIPW m11, m3, m6 ; clip3 - CLIPW m12, m4, m5 ; clip4 - - psubw m8, m1 ; d1 - psubw m7, m2 ; d2 - psubw m6, m3 ; d3 - psubw m5, m4 ; d4 - psllw m8, 1 - psllw m7, 1 - psllw m6, 1 - psllw m5, 1 - - mova m1, m9 - mova m2, m10 - mova m3, m11 - mova m4, m12 - ABS_DIFF_W m1, m0, m13 - ABS_DIFF_W m2, m0, m14 - ABS_DIFF_W m3, m0, m13 - ABS_DIFF_W m4, m0, m14 - paddw m1, m8 ; c1 - paddw m2, m7 ; c1 - paddw m3, m6 ; c1 - paddw m4, m5 ; c1 - ; As the differences (d1..d4) can only be positive, there is no need to - ; clip to zero. Also, the maximum positive value is less than 768. - - pminsw m1, m2 - pminsw m1, m3 - pminsw m1, m4 - - pcmpeqw m2, m1 - pcmpeqw m3, m1 - pcmpeqw m4, m1 - - BLEND m9, m11, m3 - BLEND m9, m10, m2 - BLEND m9, m12, m4 - packuswb m9, m9 - - movh [dstq], m9 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -cglobal rg_fl_mode_9, 4, 5, 13, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - SORT_AXIS - - mova m9, m0 - mova m10, m0 - mova m11, m0 - mova m12, m0 - CLIPUB m9, m1, m8 ; clip1 - CLIPUB m10, m2, m7 ; clip2 - CLIPUB m11, m3, m6 ; clip3 - CLIPUB m12, m4, m5 ; clip4 - - psubb m8, m1 ; d1 - psubb m7, m2 ; d2 - psubb m6, m3 ; d3 - psubb m5, m4 ; d4 - - pminub m8, m7 - pminub m8, m6 - pminub m8, m5 - - pcmpeqb m7, m8 - pcmpeqb m6, m8 - pcmpeqb m5, m8 - - BLEND m9, m11, m6 - BLEND m9, m10, m7 - BLEND m9, m12, m5 - - movu [dstq], m9 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET -%endif - -cglobal rg_fl_mode_10, 4, 5, 8, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - movu m0, [c] - - movu m1, [a4] - mova m2, m1 - ABS_DIFF m1, m0, m7 - - movu m3, [a5] ; load pixel - mova m4, m3 - ABS_DIFF m4, m0, m7 ; absolute difference from center - pminub m1, m4 ; mindiff - pcmpeqb m4, m1 ; if (difference == mindiff) - BLEND m2, m3, m4 ; return pixel - - movu m5, [a1] - mova m6, m5 - ABS_DIFF m6, m0, m7 - pminub m1, m6 - pcmpeqb m6, m1 - BLEND m2, m5, m6 - - movu m3, [a3] - mova m4, m3 - ABS_DIFF m4, m0, m7 - pminub m1, m4 - pcmpeqb m4, m1 - BLEND m2, m3, m4 - - movu m5, [a2] - mova m6, m5 - ABS_DIFF m6, m0, m7 - pminub m1, m6 - pcmpeqb m6, m1 - BLEND m2, m5, m6 - - movu m3, [a6] - mova m4, m3 - ABS_DIFF m4, m0, m7 - pminub m1, m4 - pcmpeqb m4, m1 - BLEND m2, m3, m4 - - movu m5, [a8] - mova m6, m5 - ABS_DIFF m6, m0, m7 - pminub m1, m6 - pcmpeqb m6, m1 - BLEND m2, m5, m6 - - movu m3, [a7] - mova m4, m3 - ABS_DIFF m4, m0, m7 - pminub m1, m4 - pcmpeqb m4, m1 - BLEND m2, m3, m4 - - movu [dstq], m2 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_11_12, 4, 5, 7, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m0, m0 - .loop: - LOAD m1, [c], m0 - LOAD m2, [a2], m0 - LOAD m3, [a4], m0 - LOAD m4, [a5], m0 - LOAD m5, [a7], m0 - - psllw m1, 2 - paddw m2, m3 - paddw m4, m5 - paddw m2, m4 - psllw m2, 1 - - LOAD m3, [a1], m0 - LOAD m4, [a3], m0 - LOAD m5, [a6], m0 - LOAD m6, [a8], m0 - paddw m1, m2 - paddw m3, m4 - paddw m5, m6 - paddw m1, m3 - paddw m1, m5 - - paddw m1, [pw_8] - psraw m1, 4 - - packuswb m1, m1 - - movh [dstq], m1 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -cglobal rg_fl_mode_13_14, 4, 5, 8, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - movu m1, [a1] - movu m2, [a8] - mova m0, m1 - pavgb m1, m2 - ABS_DIFF m0, m2, m6 - - movu m3, [a3] - movu m4, [a6] - mova m5, m3 - pavgb m3, m4 - ABS_DIFF m5, m4, m7 - pminub m0, m5 - pcmpeqb m5, m0 - BLEND m1, m3, m5 - - movu m2, [a2] - movu m3, [a7] - mova m4, m2 - pavgb m2, m3 - ABS_DIFF m4, m3, m6 - pminub m0, m4 - pcmpeqb m4, m0 - BLEND m1, m2, m4 - - movu [dstq], m1 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -%if ARCH_X86_64 -cglobal rg_fl_mode_15_16, 4, 5, 16, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m15, m15 - .loop: - LOAD_SQUARE_16 m15 - - mova m9, m1 - mova m10, m2 - mova m11, m3 - ABS_DIFF_W m9, m8, m12 - ABS_DIFF_W m10, m7, m13 - ABS_DIFF_W m11, m6, m14 - pminsw m9, m10 - pminsw m9, m11 - pcmpeqw m10, m9 - pcmpeqw m11, m9 - - mova m12, m2 - mova m13, m1 - mova m14, m6 - paddw m12, m7 - psllw m12, 1 - paddw m13, m3 - paddw m14, m8 - paddw m12, [pw_4] - paddw m13, m14 - paddw m12, m13 - psrlw m12, 3 - - SORT_PAIR ub, m1, m8, m0 - SORT_PAIR ub, m2, m7, m9 - SORT_PAIR ub, m3, m6, m14 - mova m4, m12 - mova m5, m12 - CLIPW m4, m1, m8 - CLIPW m5, m2, m7 - CLIPW m12, m3, m6 - - BLEND m4, m12, m11 - BLEND m4, m5, m10 - packuswb m4, m4 - - movh [dstq], m4 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -cglobal rg_fl_mode_17, 4, 5, 9, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - SORT_AXIS - - pmaxub m1, m2 - pmaxub m3, m4 - - pminub m8, m7 - pminub m5, m6 - - pmaxub m1, m3 - pminub m8, m5 - - mova m2, m1 - pminub m1, m8 - pmaxub m8, m2 - - CLIPUB m0, m1, m8 - - movu [dstq], m0 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_18, 4, 5, 16, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - LOAD_SQUARE - - mova m9, m1 - mova m10, m8 - ABS_DIFF m9, m0, m11 - ABS_DIFF m10, m0, m12 - pmaxub m9, m10 ; m9 = d1 - - mova m10, m2 - mova m11, m7 - ABS_DIFF m10, m0, m12 - ABS_DIFF m11, m0, m13 - pmaxub m10, m11 ; m10 = d2 - - mova m11, m3 - mova m12, m6 - ABS_DIFF m11, m0, m13 - ABS_DIFF m12, m0, m14 - pmaxub m11, m12 ; m11 = d3 - - mova m12, m4 - mova m13, m5 - ABS_DIFF m12, m0, m14 - ABS_DIFF m13, m0, m15 - pmaxub m12, m13 ; m12 = d4 - - mova m13, m9 - pminub m13, m10 - pminub m13, m11 - pminub m13, m12 ; m13 = mindiff - - pcmpeqb m10, m13 - pcmpeqb m11, m13 - pcmpeqb m12, m13 - - mova m14, m1 - pminub m1, m8 - pmaxub m8, m14 - - mova m13, m0 - mova m14, m1 - pminub m1, m8 - pmaxub m8, m14 - CLIPUB m13, m1, m8 ; m13 = ret...d1 - - mova m14, m0 - mova m15, m3 - pminub m3, m6 - pmaxub m6, m15 - CLIPUB m14, m3, m6 - pand m14, m11 - pandn m11, m13 - por m14, m11 ; m14 = ret...d3 - - mova m15, m0 - mova m1, m2 - pminub m2, m7 - pmaxub m7, m1 - CLIPUB m15, m2, m7 - pand m15, m10 - pandn m10, m14 - por m15, m10 ; m15 = ret...d2 - - mova m1, m0 - mova m2, m4 - pminub m4, m5 - pmaxub m5, m2 - CLIPUB m1, m4, m5 - pand m1, m12 - pandn m12, m15 - por m1, m12 ; m15 = ret...d4 - - movu [dstq], m1 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET -%endif - -cglobal rg_fl_mode_19, 4, 5, 7, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m0, m0 - .loop: - LOAD m1, [a1], m0 - LOAD m2, [a2], m0 - paddw m1, m2 - - LOAD m3, [a3], m0 - LOAD m4, [a4], m0 - paddw m3, m4 - - LOAD m5, [a5], m0 - LOAD m6, [a6], m0 - paddw m5, m6 - - LOAD m2, [a7], m0 - LOAD m4, [a8], m0 - paddw m2, m4 - - paddw m1, m3 - paddw m2, m5 - paddw m1, m2 - - paddw m1, [pw_4] - psraw m1, 3 - - packuswb m1, m1 - - movh [dstq], m1 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -cglobal rg_fl_mode_20, 4, 5, 7, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m0, m0 - .loop: - LOAD m1, [a1], m0 - LOAD m2, [a2], m0 - paddw m1, m2 - - LOAD m3, [a3], m0 - LOAD m4, [a4], m0 - paddw m3, m4 - - LOAD m5, [a5], m0 - LOAD m6, [a6], m0 - paddw m5, m6 - - LOAD m2, [a7], m0 - LOAD m4, [a8], m0 - paddw m2, m4 - - LOAD m6, [c], m0 - paddw m1, m3 - paddw m2, m5 - paddw m6, [pw_4] - - paddw m1, m2 - paddw m1, m6 - - pmulhuw m1, [pw_div9] - - packuswb m1, m1 - - movh [dstq], m1 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -cglobal rg_fl_mode_21, 4, 5, 8, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m0, m0 - .loop: - movu m1, [a1] - movu m2, [a8] - pavgb m7, m1, m2 - punpckhbw m3, m1, m0 - punpcklbw m1, m0 - punpckhbw m4, m2, m0 - punpcklbw m2, m0 - paddw m3, m4 - paddw m1, m2 - psrlw m3, 1 - psrlw m1, 1 - packuswb m1, m3 - - movu m2, [a2] - movu m3, [a7] - pavgb m6, m2, m3 - punpckhbw m4, m2, m0 - punpcklbw m2, m0 - punpckhbw m5, m3, m0 - punpcklbw m3, m0 - paddw m4, m5 - paddw m2, m3 - psrlw m4, 1 - psrlw m2, 1 - packuswb m2, m4 - - pminub m1, m2 - pmaxub m7, m6 - - movu m2, [a3] - movu m3, [a6] - pavgb m6, m2, m3 - punpckhbw m4, m2, m0 - punpcklbw m2, m0 - punpckhbw m5, m3, m0 - punpcklbw m3, m0 - paddw m4, m5 - paddw m2, m3 - psrlw m4, 1 - psrlw m2, 1 - packuswb m2, m4 - - pminub m1, m2 - pmaxub m7, m6 - - movu m2, [a4] - movu m3, [a5] - pavgb m6, m2, m3 - punpckhbw m4, m2, m0 - punpcklbw m2, m0 - punpckhbw m5, m3, m0 - punpcklbw m3, m0 - paddw m4, m5 - paddw m2, m3 - psrlw m4, 1 - psrlw m2, 1 - packuswb m2, m4 - - pminub m1, m2 - pmaxub m7, m6 - - movu m3, [c] - CLIPUB m3, m1, m7 - - movu [dstq], m3 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -cglobal rg_fl_mode_22, 4, 5, 8, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - .loop: - movu m0, [a1] - movu m1, [a8] - pavgb m0, m1 - movu m2, [a2] - movu m3, [a7] - pavgb m2, m3 - movu m4, [a3] - movu m5, [a6] - pavgb m4, m5 - movu m6, [a4] - movu m7, [a5] - pavgb m6, m7 - - mova m1, m0 - mova m3, m2 - mova m5, m4 - mova m7, m6 - pminub m0, m2 - pminub m4, m6 - pmaxub m1, m3 - pmaxub m5, m7 - pminub m0, m4 - pmaxub m1, m5 - - movu m2, [c] - CLIPUB m2, m0, m1 - - movu [dstq], m2 - add srcq, mmsize - add dstq, mmsize - sub pixelsd, mmsize - jg .loop -RET - -%if ARCH_X86_64 -cglobal rg_fl_mode_23, 4, 5, 16, 0, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m15, m15 - .loop: - LOAD_SQUARE_16 m15 - SORT_AXIS_16 - - mova m9, m8 - mova m10, m7 - mova m11, m6 - mova m12, m5 - psubw m9, m1 ; linediff1 - psubw m10, m2 ; linediff2 - psubw m11, m3 ; linediff3 - psubw m12, m4 ; linediff4 - - psubw m1, m0 - psubw m2, m0 - psubw m3, m0 - psubw m4, m0 - pminsw m1, m9 ; d1 - pminsw m2, m10 ; d2 - pminsw m3, m11 ; d3 - pminsw m4, m12 ; d4 - pmaxsw m1, m2 - pmaxsw m3, m4 - pmaxsw m1, m3 - pmaxsw m1, m15 ; d - - mova m13, m0 - mova m14, m0 - mova m2, m0 - mova m4, m0 - psubw m13, m8 - psubw m14, m7 - psubw m2, m6 - psubw m4, m5 - pminsw m9, m13 ; u1 - pminsw m10, m14 ; u2 - pminsw m11, m2 ; u3 - pminsw m12, m4 ; u4 - pmaxsw m9, m10 - pmaxsw m11, m12 - pmaxsw m9, m11 - pmaxsw m9, m15 ; u - - paddw m0, m1 - psubw m0, m9 - packuswb m0, m0 - - movh [dstq], m0 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET - -cglobal rg_fl_mode_24, 4, 5, 16, mmsize, dst, src, stride, pixels - mov r4q, strideq - neg r4q - %define stride_p strideq - %define stride_n r4q - - pxor m15, m15 - .loop: - LOAD_SQUARE_16 m15 - mova [rsp], m0 - SORT_AXIS_16 - - mova m9, m8 - mova m10, m7 - mova m11, m6 - mova m12, m5 - psubw m9, m1 ; linediff1 - psubw m10, m2 ; linediff2 - psubw m11, m3 ; linediff3 - psubw m12, m4 ; linediff4 - - psubw m1, [rsp] ; td1 - psubw m2, [rsp] ; td2 - psubw m3, [rsp] ; td3 - psubw m4, [rsp] ; td4 - mova m0, m9 - mova m13, m10 - mova m14, m11 - mova m15, m12 - psubw m0, m1 - psubw m13, m2 - psubw m14, m3 - psubw m15, m4 - pminsw m1, m0 ; d1 - pminsw m2, m13 ; d2 - pminsw m3, m14 ; d3 - pminsw m4, m15 ; d4 - pmaxsw m1, m2 - pmaxsw m3, m4 - - mova m0, [rsp] - mova m13, [rsp] - mova m14, [rsp] - mova m15, [rsp] - psubw m0, m8 ; tu1 - psubw m13, m7 ; tu2 - psubw m14, m6 ; tu3 - psubw m15, m5 ; tu4 - psubw m9, m0 - psubw m10, m13 - psubw m11, m14 - psubw m12, m15 - pminsw m9, m0 ; u1 - pminsw m10, m13 ; u2 - pminsw m11, m14 ; u3 - pminsw m12, m15 ; u4 - pmaxsw m9, m10 - pmaxsw m11, m12 - - pmaxsw m1, m3 ; d without max(d,0) - pmaxsw m9, m11 ; u without max(u,0) - pxor m15, m15 - pmaxsw m1, m15 - pmaxsw m9, m15 - - mova m0, [rsp] - paddw m0, m1 - psubw m0, m9 - packuswb m0, m0 - - movh [dstq], m0 - add srcq, mmsize/2 - add dstq, mmsize/2 - sub pixelsd, mmsize/2 - jg .loop -RET -%endif diff --git a/libavfilter/x86/vf_ssim.asm b/libavfilter/x86/vf_ssim.asm deleted file mode 100644 index 3293e66701..0000000000 --- a/libavfilter/x86/vf_ssim.asm +++ /dev/null @@ -1,247 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for ssim filter -;* -;* Copyright (C) 2015 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_1: times 8 dw 1 -ssim_c1: times 4 dd 416 ;(.01*.01*255*255*64 + .5) -ssim_c2: times 4 dd 235963 ;(.03*.03*255*255*64*63 + .5) - -SECTION .text - -%macro SSIM_4X4_LINE 1 -%if ARCH_X86_64 -cglobal ssim_4x4_line, 6, 8, %1, buf, buf_stride, ref, ref_stride, sums, w, buf_stride3, ref_stride3 -%else -cglobal ssim_4x4_line, 5, 7, %1, buf, buf_stride, ref, ref_stride, sums, buf_stride3, ref_stride3 -%define wd r5mp -%endif - lea ref_stride3q, [ref_strideq*3] - lea buf_stride3q, [buf_strideq*3] -%if notcpuflag(xop) - pxor m7, m7 - mova m15, [pw_1] -%endif - -.loop: -%if cpuflag(xop) - pmovzxbw m0, [bufq+buf_strideq*0] - pmovzxbw m1, [refq+ref_strideq*0] - pmaddwd m4, m0, m0 - pmaddwd m6, m0, m1 - pmovzxbw m2, [bufq+buf_strideq*1] - vpmadcswd m4, m1, m1, m4 - pmovzxbw m3, [refq+ref_strideq*1] - paddw m0, m2 - vpmadcswd m4, m2, m2, m4 - vpmadcswd m6, m2, m3, m6 - paddw m1, m3 - vpmadcswd m4, m3, m3, m4 - - pmovzxbw m2, [bufq+buf_strideq*2] - pmovzxbw m3, [refq+ref_strideq*2] - vpmadcswd m4, m2, m2, m4 - vpmadcswd m6, m2, m3, m6 - pmovzxbw m5, [bufq+buf_stride3q] - pmovzxbw m7, [refq+ref_stride3q] - vpmadcswd m4, m3, m3, m4 - vpmadcswd m6, m5, m7, m6 - paddw m0, m2 - paddw m1, m3 - vpmadcswd m4, m5, m5, m4 - paddw m0, m5 - paddw m1, m7 - vpmadcswd m4, m7, m7, m4 -%else - movh m0, [bufq+buf_strideq*0] ; a1 - movh m1, [refq+ref_strideq*0] ; b1 - movh m2, [bufq+buf_strideq*1] ; a2 - movh m3, [refq+ref_strideq*1] ; b2 - punpcklbw m0, m7 ; s1 [word] - punpcklbw m1, m7 ; s2 [word] - punpcklbw m2, m7 ; s1 [word] - punpcklbw m3, m7 ; s2 [word] - pmaddwd m4, m0, m0 ; a1 * a1 - pmaddwd m5, m1, m1 ; b1 * b1 - pmaddwd m8, m2, m2 ; a2 * a2 - pmaddwd m9, m3, m3 ; b2 * b2 - paddd m4, m5 ; ss - paddd m8, m9 ; ss - pmaddwd m6, m0, m1 ; a1 * b1 = ss12 - pmaddwd m5, m2, m3 ; a2 * b2 = ss12 - paddw m0, m2 - paddw m1, m3 - paddd m6, m5 ; s12 - paddd m4, m8 ; ss - - movh m2, [bufq+buf_strideq*2] ; a3 - movh m3, [refq+ref_strideq*2] ; b3 - movh m5, [bufq+buf_stride3q] ; a4 - movh m8, [refq+ref_stride3q] ; b4 - punpcklbw m2, m7 ; s1 [word] - punpcklbw m3, m7 ; s2 [word] - punpcklbw m5, m7 ; s1 [word] - punpcklbw m8, m7 ; s2 [word] - pmaddwd m9, m2, m2 ; a3 * a3 - pmaddwd m10, m3, m3 ; b3 * b3 - pmaddwd m12, m5, m5 ; a4 * a4 - pmaddwd m13, m8, m8 ; b4 * b4 - pmaddwd m11, m2, m3 ; a3 * b3 = ss12 - pmaddwd m14, m5, m8 ; a4 * b4 = ss12 - paddd m9, m10 - paddd m12, m13 - paddw m0, m2 - paddw m1, m3 - paddw m0, m5 - paddw m1, m8 - paddd m6, m11 - paddd m4, m9 - paddd m6, m14 - paddd m4, m12 -%endif - - ; m0 = [word] s1 a,a,a,a,b,b,b,b - ; m1 = [word] s2 a,a,a,a,b,b,b,b - ; m4 = [dword] ss a,a,b,b - ; m6 = [dword] s12 a,a,b,b - -%if cpuflag(xop) - vphaddwq m0, m0 ; [dword] s1 a, 0, b, 0 - vphaddwq m1, m1 ; [dword] s2 a, 0, b, 0 - vphadddq m4, m4 ; [dword] ss a, 0, b, 0 - vphadddq m6, m6 ; [dword] s12 a, 0, b, 0 - punpckhdq m2, m0, m1 ; [dword] s1 b, s2 b, 0, 0 - punpckldq m0, m1 ; [dword] s1 a, s2 a, 0, 0 - punpckhdq m3, m4, m6 ; [dword] ss b, s12 b, 0, 0 - punpckldq m4, m6 ; [dword] ss a, s12 a, 0, 0 - punpcklqdq m1, m2, m3 ; [dword] b s1, s2, ss, s12 - punpcklqdq m0, m4 ; [dword] a s1, s2, ss, s12 -%else - pmaddwd m0, m15 ; [dword] s1 a,a,b,b - pmaddwd m1, m15 ; [dword] s2 a,a,b,b - phaddd m0, m4 ; [dword] s1 a, b, ss a, b - phaddd m1, m6 ; [dword] s2 a, b, s12 a, b - punpckhdq m2, m0, m1 ; [dword] ss a, s12 a, ss b, s12 b - punpckldq m0, m1 ; [dword] s1 a, s2 a, s1 b, s2 b - punpckhqdq m1, m0, m2 ; [dword] b s1, s2, ss, s12 - punpcklqdq m0, m2 ; [dword] a s1, s2, ss, s12 -%endif - - mova [sumsq+ 0], m0 - mova [sumsq+mmsize], m1 - - add bufq, mmsize/2 - add refq, mmsize/2 - add sumsq, mmsize*2 - sub wd, mmsize/8 - jg .loop - RET -%endmacro - -%if ARCH_X86_64 -INIT_XMM ssse3 -SSIM_4X4_LINE 16 -%endif -%if HAVE_XOP_EXTERNAL -INIT_XMM xop -SSIM_4X4_LINE 8 -%endif - -INIT_XMM sse4 -cglobal ssim_end_line, 3, 3, 6, sum0, sum1, w - pxor m0, m0 -.loop: - mova m1, [sum0q+mmsize*0] - mova m2, [sum0q+mmsize*1] - mova m3, [sum0q+mmsize*2] - mova m4, [sum0q+mmsize*3] - paddd m1, [sum1q+mmsize*0] - paddd m2, [sum1q+mmsize*1] - paddd m3, [sum1q+mmsize*2] - paddd m4, [sum1q+mmsize*3] - paddd m1, m2 - paddd m2, m3 - paddd m3, m4 - paddd m4, [sum0q+mmsize*4] - paddd m4, [sum1q+mmsize*4] - TRANSPOSE4x4D 1, 2, 3, 4, 5 - - ; m1 = fs1, m2 = fs2, m3 = fss, m4 = fs12 - pslld m3, 6 - pslld m4, 6 - pmulld m5, m1, m2 ; fs1 * fs2 - pmulld m1, m1 ; fs1 * fs1 - pmulld m2, m2 ; fs2 * fs2 - psubd m3, m1 - psubd m4, m5 ; covariance - psubd m3, m2 ; variance - - ; m1 = fs1 * fs1, m2 = fs2 * fs2, m3 = variance, m4 = covariance, m5 = fs1 * fs2 - paddd m4, m4 ; 2 * covariance - paddd m5, m5 ; 2 * fs1 * fs2 - paddd m1, m2 ; fs1 * fs1 + fs2 * fs2 - paddd m3, [ssim_c2] ; variance + ssim_c2 - paddd m4, [ssim_c2] ; 2 * covariance + ssim_c2 - paddd m5, [ssim_c1] ; 2 * fs1 * fs2 + ssim_c1 - paddd m1, [ssim_c1] ; fs1 * fs1 + fs2 * fs2 + ssim_c1 - - ; convert to float - cvtdq2ps m3, m3 - cvtdq2ps m4, m4 - cvtdq2ps m5, m5 - cvtdq2ps m1, m1 - mulps m4, m5 - mulps m3, m1 - divps m4, m3 ; ssim_endl - addps m0, m4 ; ssim - add sum0q, mmsize*4 - add sum1q, mmsize*4 - sub wd, 4 - jg .loop - - ; subps the ones we added too much - test wd, wd - jz .end - add wd, 4 - test wd, 2 - jz .skip2 - psrldq m4, 8 -.skip2: - test wd, 1 - jz .skip1 - psrldq m4, 4 -.skip1: - subps m0, m4 - -.end: - movhlps m4, m0 - addps m0, m4 - movss m4, m0 - shufps m0, m0, 1 - addss m0, m4 -%if ARCH_X86_32 - movss r0m, m0 - fld r0mp -%endif - RET diff --git a/libavfilter/x86/vf_stereo3d.asm b/libavfilter/x86/vf_stereo3d.asm deleted file mode 100644 index a057e495f1..0000000000 --- a/libavfilter/x86/vf_stereo3d.asm +++ /dev/null @@ -1,216 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for stereo3d filter -;* -;* Copyright (C) 2015 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -; rgbrgbrgbrgb -; rrrrggggbbbb - -shuf: db 0, 4, 8, 1,5, 9, 2, 6,10,3, 7,11,-1,-1,-1,-1 -ex_r: db 0,-1,-1,-1,3,-1,-1,-1,6,-1,-1,-1, 9,-1,-1,-1 -ex_g: db 1,-1,-1,-1,4,-1,-1,-1,7,-1,-1,-1,10,-1,-1,-1 -ex_b: db 2,-1,-1,-1,5,-1,-1,-1,8,-1,-1,-1,11,-1,-1,-1 - -SECTION .text - -INIT_XMM sse4 -%if ARCH_X86_64 -cglobal anaglyph, 6, 10, 14, 2*6*mmsize, dst, lsrc, rsrc, dst_linesize, l_linesize, r_linesize, width, height, o, cnt -%define ana_matrix_rq r6q -%define ana_matrix_gq r7q -%define ana_matrix_bq r8q - -%else ; ARCH_X86_32 -%if HAVE_ALIGNED_STACK -cglobal anaglyph, 3, 7, 8, 2*9*mmsize, dst, lsrc, rsrc, dst_linesize, l_linesize, o, cnt -%else -cglobal anaglyph, 3, 6, 8, 2*9*mmsize, dst, lsrc, rsrc, dst_linesize, o, cnt -%define l_linesizeq r4mp -%endif ; HAVE_ALIGNED_STACK -%define ana_matrix_rq r3q -%define ana_matrix_gq r4q -%define ana_matrix_bq r5q -%define r_linesizeq r5mp -%define widthd r6mp -%define heightd r7mp -%define m8 [rsp+mmsize*12] -%define m9 [rsp+mmsize*13] -%define m10 [rsp+mmsize*14] -%define m11 [rsp+mmsize*15] -%define m12 [rsp+mmsize*16] -%define m13 [rsp+mmsize*17] -%endif ; ARCH - - mov ana_matrix_rq, r8m - mov ana_matrix_gq, r9m - mov ana_matrix_bq, r10m - movu m3, [ana_matrix_rq+ 0] - movq m5, [ana_matrix_rq+16] - pshufd m0, m3, q0000 - pshufd m1, m3, q1111 - pshufd m2, m3, q2222 - pshufd m3, m3, q3333 - pshufd m4, m5, q0000 - pshufd m5, m5, q1111 - mova [rsp+mmsize*0], m0 - mova [rsp+mmsize*1], m1 - mova [rsp+mmsize*2], m2 - mova [rsp+mmsize*3], m3 - mova [rsp+mmsize*4], m4 - mova [rsp+mmsize*5], m5 - - movu m3, [ana_matrix_gq+ 0] - movq m5, [ana_matrix_gq+16] - pshufd m0, m3, q0000 - pshufd m1, m3, q1111 - pshufd m2, m3, q2222 - pshufd m3, m3, q3333 - pshufd m4, m5, q0000 - pshufd m5, m5, q1111 - mova [rsp+mmsize*6 ], m0 - mova [rsp+mmsize*7 ], m1 - mova [rsp+mmsize*8 ], m2 - mova [rsp+mmsize*9 ], m3 - mova [rsp+mmsize*10], m4 - mova [rsp+mmsize*11], m5 - -%if ARCH_X86_64 - movu m11, [ana_matrix_bq+ 0] - movq m13, [ana_matrix_bq+16] - pshufd m8, m11, q0000 - pshufd m9, m11, q1111 - pshufd m10, m11, q2222 - pshufd m11, m11, q3333 - pshufd m12, m13, q0000 - pshufd m13, m13, q1111 - mov widthd, dword widthm - mov heightd, dword heightm -%else - movu m3, [ana_matrix_bq+ 0] - movq m5, [ana_matrix_bq+16] - pshufd m0, m3, q0000 - pshufd m1, m3, q1111 - pshufd m2, m3, q2222 - pshufd m3, m3, q3333 - pshufd m4, m5, q0000 - pshufd m5, m5, q1111 - mova [rsp+mmsize*12], m0 - mova [rsp+mmsize*13], m1 - mova [rsp+mmsize*14], m2 - mova [rsp+mmsize*15], m3 - mova [rsp+mmsize*16], m4 - mova [rsp+mmsize*17], m5 - mov dst_linesizeq, r3m -%if HAVE_ALIGNED_STACK - mov l_linesizeq, r4m -%endif -%endif ; ARCH - -.nextrow: - mov od, widthd - xor cntd, cntd - - .loop: - movu m3, [lsrcq+cntq] - pshufb m1, m3, [ex_r] - pshufb m2, m3, [ex_g] - pshufb m3, [ex_b] - movu m0, [rsrcq+cntq] - pshufb m4, m0, [ex_r] - pshufb m5, m0, [ex_g] - pshufb m0, [ex_b] - pmulld m1, [rsp+mmsize*0] - pmulld m2, [rsp+mmsize*1] - pmulld m3, [rsp+mmsize*2] - pmulld m4, [rsp+mmsize*3] - pmulld m5, [rsp+mmsize*4] - pmulld m0, [rsp+mmsize*5] - paddd m1, m2 - paddd m3, m4 - paddd m5, m0 - paddd m1, m3 - paddd m1, m5 - - movu m3, [lsrcq+cntq] - pshufb m7, m3, [ex_r] - pshufb m2, m3, [ex_g] - pshufb m3, [ex_b] - movu m0, [rsrcq+cntq] - pshufb m4, m0, [ex_r] - pshufb m5, m0, [ex_g] - pshufb m0, [ex_b] - pmulld m7, [rsp+mmsize*6] - pmulld m2, [rsp+mmsize*7] - pmulld m3, [rsp+mmsize*8] - pmulld m4, [rsp+mmsize*9] - pmulld m5, [rsp+mmsize*10] - pmulld m0, [rsp+mmsize*11] - paddd m7, m2 - paddd m3, m4 - paddd m5, m0 - paddd m7, m3 - paddd m7, m5 - - movu m4, [lsrcq+cntq] - pshufb m2, m4, [ex_r] - pshufb m3, m4, [ex_g] - pshufb m4, [ex_b] - movu m0, [rsrcq+cntq] - pshufb m5, m0, [ex_r] - pshufb m6, m0, [ex_g] - pshufb m0, [ex_b] - pmulld m2, m8 - pmulld m3, m9 - pmulld m4, m10 - pmulld m5, m11 - pmulld m6, m12 - pmulld m0, m13 - paddd m2, m3 - paddd m4, m5 - paddd m6, m0 - paddd m2, m4 - paddd m2, m6 - - psrld m1, 16 - psrld m7, 16 - psrld m2, 16 - - packusdw m1, m7 - packusdw m2, m2 - packuswb m1, m2 - pshufb m1, [shuf] - - movq [dstq+cntq+0], m1 - psrldq m1, 8 - movd [dstq+cntq+8], m1 - add cntd, 12 - sub od, 4 - jg .loop - - add dstq, dst_linesizeq - add lsrcq, l_linesizeq - add rsrcq, r_linesizeq - sub heightd, 1 - jg .nextrow -REP_RET diff --git a/libavfilter/x86/vf_threshold.asm b/libavfilter/x86/vf_threshold.asm deleted file mode 100644 index 098069b083..0000000000 --- a/libavfilter/x86/vf_threshold.asm +++ /dev/null @@ -1,92 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for threshold filter -;* -;* Copyright (C) 2017 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_128: times 16 db 128 -pb_128_0 : times 8 db 0, 128 - -SECTION .text - -;%1 depth (8 or 16) ; %2 b or w ; %3 constant -%macro THRESHOLD 3 -%if ARCH_X86_64 -cglobal threshold%1, 10, 13, 5, in, threshold, min, max, out, ilinesize, tlinesize, flinesize, slinesize, olinesize, w, h, x - mov wd, dword wm - mov hd, dword hm -%else -cglobal threshold%1, 5, 7, 5, in, threshold, min, max, out, w, x - mov wd, r10m -%define ilinesizeq r5mp -%define tlinesizeq r6mp -%define flinesizeq r7mp -%define slinesizeq r8mp -%define olinesizeq r9mp -%define hd r11mp -%endif - VBROADCASTI128 m4, [%3] -%if %1 == 16 - add wq, wq ; w *= 2 (16 bits instead of 8) -%endif - add inq, wq - add thresholdq, wq - add minq, wq - add maxq, wq - add outq, wq - neg wq -.nextrow: - mov xq, wq - - .loop: - movu m1, [inq + xq] - movu m0, [thresholdq + xq] - movu m2, [minq + xq] - movu m3, [maxq + xq] - pxor m0, m4 - pxor m1, m4 - pcmpgt%2 m0, m1 - PBLENDVB m3, m2, m0 - movu [outq + xq], m3 - add xq, mmsize - jl .loop - - add inq, ilinesizeq - add thresholdq, tlinesizeq - add minq, flinesizeq - add maxq, slinesizeq - add outq, olinesizeq - sub hd, 1 - jg .nextrow -RET -%endmacro - -INIT_XMM sse4 -THRESHOLD 8, b, pb_128 -THRESHOLD 16, w, pb_128_0 - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -THRESHOLD 8, b, pb_128 -THRESHOLD 16, w, pb_128_0 -%endif diff --git a/libavfilter/x86/vf_w3fdif.asm b/libavfilter/x86/vf_w3fdif.asm deleted file mode 100644 index 52628c38d7..0000000000 --- a/libavfilter/x86/vf_w3fdif.asm +++ /dev/null @@ -1,259 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for w3fdif filter -;* -;* Copyright (c) 2015 Paul B Mahol -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_XMM sse2 -cglobal w3fdif_scale, 3, 3, 2, 0, out_pixel, work_pixel, linesize -.loop: - mova m0, [work_pixelq] - mova m1, [work_pixelq+mmsize] - psrad m0, 15 - psrad m1, 15 - packssdw m0, m1 - packuswb m0, m0 - movh [out_pixelq], m0 - add out_pixelq, mmsize/2 - add work_pixelq, mmsize*2 - sub linesized, mmsize/2 - jg .loop -REP_RET - -cglobal w3fdif_simple_low, 4, 5, 6, 0, work_line, in_lines_cur0, coef, linesize, offset - movd m1, [coefq] - DEFINE_ARGS work_line, in_lines_cur0, in_lines_cur1, linesize, offset - SPLATW m0, m1, 0 - SPLATW m1, m1, 1 - pxor m4, m4 - mov offsetq, 0 - mov in_lines_cur1q, [in_lines_cur0q + gprsize] - mov in_lines_cur0q, [in_lines_cur0q] - -.loop: - movh m2, [in_lines_cur0q+offsetq] - movh m3, [in_lines_cur1q+offsetq] - punpcklbw m2, m4 - punpcklbw m3, m4 - SBUTTERFLY wd, 2, 3, 5 - pmaddwd m2, m0 - pmaddwd m3, m1 - mova [work_lineq+offsetq*4], m2 - mova [work_lineq+offsetq*4+mmsize], m3 - add offsetq, mmsize/2 - sub linesized, mmsize/2 - jg .loop -REP_RET - -cglobal w3fdif_complex_low, 4, 7, 8, 0, work_line, in_lines_cur0, coef, linesize - movq m0, [coefq] - DEFINE_ARGS work_line, in_lines_cur0, in_lines_cur1, linesize, offset, in_lines_cur2, in_lines_cur3 - pshufd m2, m0, q1111 - SPLATD m0 - pxor m1, m1 - mov offsetq, 0 - mov in_lines_cur3q, [in_lines_cur0q+gprsize*3] - mov in_lines_cur2q, [in_lines_cur0q+gprsize*2] - mov in_lines_cur1q, [in_lines_cur0q+gprsize] - mov in_lines_cur0q, [in_lines_cur0q] - -.loop: - movh m4, [in_lines_cur0q+offsetq] - movh m5, [in_lines_cur1q+offsetq] - punpcklbw m4, m1 - punpcklbw m5, m1 - SBUTTERFLY wd, 4, 5, 7 - pmaddwd m4, m0 - pmaddwd m5, m0 - movh m6, [in_lines_cur2q+offsetq] - movh m3, [in_lines_cur3q+offsetq] - punpcklbw m6, m1 - punpcklbw m3, m1 - SBUTTERFLY wd, 6, 3, 7 - pmaddwd m6, m2 - pmaddwd m3, m2 - paddd m4, m6 - paddd m5, m3 - mova [work_lineq+offsetq*4], m4 - mova [work_lineq+offsetq*4+mmsize], m5 - add offsetq, mmsize/2 - sub linesized, mmsize/2 - jg .loop -REP_RET - -%if ARCH_X86_64 -cglobal w3fdif_simple_high, 5, 9, 8, 0, work_line, in_lines_cur0, in_lines_adj0, coef, linesize -%else -cglobal w3fdif_simple_high, 4, 7, 8, 0, work_line, in_lines_cur0, in_lines_adj0, coef, linesize -%endif - movq m2, [coefq] -%if ARCH_X86_64 - DEFINE_ARGS work_line, in_lines_cur0, in_lines_adj0, in_lines_cur1, linesize, offset, in_lines_cur2, in_lines_adj1, in_lines_adj2 - xor offsetq, offsetq -%else - DEFINE_ARGS work_line, in_lines_cur0, in_lines_adj0, in_lines_cur1, in_lines_cur2, in_lines_adj1, in_lines_adj2 - %define linesized r4mp -%endif - - pshufd m0, m2, q0000 - SPLATW m2, m2, 2 - pxor m7, m7 - mov in_lines_cur2q, [in_lines_cur0q+gprsize*2] - mov in_lines_cur1q, [in_lines_cur0q+gprsize] - mov in_lines_cur0q, [in_lines_cur0q] - mov in_lines_adj2q, [in_lines_adj0q+gprsize*2] - mov in_lines_adj1q, [in_lines_adj0q+gprsize] - mov in_lines_adj0q, [in_lines_adj0q] - -%if ARCH_X86_32 - sub in_lines_cur1q, in_lines_cur0q - sub in_lines_cur2q, in_lines_cur0q - sub in_lines_adj0q, in_lines_cur0q - sub in_lines_adj1q, in_lines_cur0q - sub in_lines_adj2q, in_lines_cur0q - %define offsetq in_lines_cur0q -%endif - -.loop: -%if ARCH_X86_64 - movh m3, [in_lines_cur0q+offsetq] -%else - movh m3, [in_lines_cur0q] -%endif - movh m4, [in_lines_cur1q+offsetq] - punpcklbw m3, m7 - punpcklbw m4, m7 - SBUTTERFLY wd, 3, 4, 1 - pmaddwd m3, m0 - pmaddwd m4, m0 - movh m5, [in_lines_adj0q+offsetq] - movh m6, [in_lines_adj1q+offsetq] - punpcklbw m5, m7 - punpcklbw m6, m7 - SBUTTERFLY wd, 5, 6, 1 - pmaddwd m5, m0 - pmaddwd m6, m0 - paddd m3, m5 - paddd m4, m6 - movh m5, [in_lines_cur2q+offsetq] - movh m6, [in_lines_adj2q+offsetq] - punpcklbw m5, m7 - punpcklbw m6, m7 - SBUTTERFLY wd, 5, 6, 1 - pmaddwd m5, m2 - pmaddwd m6, m2 - paddd m3, m5 - paddd m4, m6 -%if ARCH_X86_64 - paddd m3, [work_lineq+offsetq*4] - paddd m4, [work_lineq+offsetq*4+mmsize] - mova [work_lineq+offsetq*4], m3 - mova [work_lineq+offsetq*4+mmsize], m4 -%else - paddd m3, [work_lineq] - paddd m4, [work_lineq+mmsize] - mova [work_lineq], m3 - mova [work_lineq+mmsize], m4 - add work_lineq, mmsize*2 -%endif - add offsetq, mmsize/2 - sub linesized, mmsize/2 - jg .loop -REP_RET - -%if ARCH_X86_64 - -cglobal w3fdif_complex_high, 5, 13, 10, 0, work_line, in_lines_cur0, in_lines_adj0, coef, linesize - movq m0, [coefq+0] - movd m4, [coefq+8] - DEFINE_ARGS work_line, in_lines_cur0, in_lines_adj0, in_lines_cur1, linesize, offset, in_lines_cur2, in_lines_cur3, in_lines_cur4, in_lines_adj1, in_lines_adj2, in_lines_adj3, in_lines_adj4 - pshufd m1, m0, q1111 - SPLATD m0 - SPLATW m4, m4 - pxor m3, m3 - mov offsetq, 0 - mov in_lines_cur4q, [in_lines_cur0q+gprsize*4] - mov in_lines_cur3q, [in_lines_cur0q+gprsize*3] - mov in_lines_cur2q, [in_lines_cur0q+gprsize*2] - mov in_lines_cur1q, [in_lines_cur0q+gprsize] - mov in_lines_cur0q, [in_lines_cur0q] - mov in_lines_adj4q, [in_lines_adj0q+gprsize*4] - mov in_lines_adj3q, [in_lines_adj0q+gprsize*3] - mov in_lines_adj2q, [in_lines_adj0q+gprsize*2] - mov in_lines_adj1q, [in_lines_adj0q+gprsize] - mov in_lines_adj0q, [in_lines_adj0q] - -.loop: - movh m5, [in_lines_cur0q+offsetq] - movh m6, [in_lines_cur1q+offsetq] - punpcklbw m5, m3 - punpcklbw m6, m3 - SBUTTERFLY wd, 5, 6, 2 - pmaddwd m5, m0 - pmaddwd m6, m0 - movh m8, [in_lines_cur2q+offsetq] - movh m9, [in_lines_cur3q+offsetq] - punpcklbw m8, m3 - punpcklbw m9, m3 - SBUTTERFLY wd, 8, 9, 2 - pmaddwd m8, m1 - pmaddwd m9, m1 - paddd m5, m8 - paddd m6, m9 - movh m8, [in_lines_adj0q+offsetq] - movh m9, [in_lines_adj1q+offsetq] - punpcklbw m8, m3 - punpcklbw m9, m3 - SBUTTERFLY wd, 8, 9, 2 - pmaddwd m8, m0 - pmaddwd m9, m0 - paddd m5, m8 - paddd m6, m9 - movh m8, [in_lines_adj2q+offsetq] - movh m9, [in_lines_adj3q+offsetq] - punpcklbw m8, m3 - punpcklbw m9, m3 - SBUTTERFLY wd, 8, 9, 2 - pmaddwd m8, m1 - pmaddwd m9, m1 - paddd m5, m8 - paddd m6, m9 - movh m8, [in_lines_cur4q+offsetq] - movh m9, [in_lines_adj4q+offsetq] - punpcklbw m8, m3 - punpcklbw m9, m3 - SBUTTERFLY wd, 8, 9, 2 - pmaddwd m8, m4 - pmaddwd m9, m4 - paddd m5, m8 - paddd m6, m9 - paddd m5, [work_lineq+offsetq*4] - paddd m6, [work_lineq+offsetq*4+mmsize] - mova [work_lineq+offsetq*4], m5 - mova [work_lineq+offsetq*4+mmsize], m6 - add offsetq, mmsize/2 - sub linesized, mmsize/2 - jg .loop -REP_RET - -%endif diff --git a/libavfilter/x86/vf_yadif.asm b/libavfilter/x86/vf_yadif.asm deleted file mode 100644 index a29620ce55..0000000000 --- a/libavfilter/x86/vf_yadif.asm +++ /dev/null @@ -1,243 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for yadif filter -;* -;* Copyright (C) 2006 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_1: times 16 db 1 -pw_1: times 8 dw 1 - -SECTION .text - -%macro CHECK 2 - movu m2, [curq+t1+%1] - movu m3, [curq+t0+%2] - mova m4, m2 - mova m5, m2 - pxor m4, m3 - pavgb m5, m3 - pand m4, [pb_1] - psubusb m5, m4 - RSHIFT m5, 1 - punpcklbw m5, m7 - mova m4, m2 - psubusb m2, m3 - psubusb m3, m4 - pmaxub m2, m3 - mova m3, m2 - mova m4, m2 - RSHIFT m3, 1 - RSHIFT m4, 2 - punpcklbw m2, m7 - punpcklbw m3, m7 - punpcklbw m4, m7 - paddw m2, m3 - paddw m2, m4 -%endmacro - -%macro CHECK1 0 - mova m3, m0 - pcmpgtw m3, m2 - pminsw m0, m2 - mova m6, m3 - pand m5, m3 - pandn m3, m1 - por m3, m5 - mova m1, m3 -%endmacro - -%macro CHECK2 0 - paddw m6, [pw_1] - psllw m6, 14 - paddsw m2, m6 - mova m3, m0 - pcmpgtw m3, m2 - pminsw m0, m2 - pand m5, m3 - pandn m3, m1 - por m3, m5 - mova m1, m3 -%endmacro - -%macro LOAD 2 - movh %1, %2 - punpcklbw %1, m7 -%endmacro - -%macro FILTER 3 -.loop%1: - pxor m7, m7 - LOAD m0, [curq+t1] - LOAD m1, [curq+t0] - LOAD m2, [%2] - LOAD m3, [%3] - mova m4, m3 - paddw m3, m2 - psraw m3, 1 - mova [rsp+ 0], m0 - mova [rsp+16], m3 - mova [rsp+32], m1 - psubw m2, m4 - ABS1 m2, m4 - LOAD m3, [prevq+t1] - LOAD m4, [prevq+t0] - psubw m3, m0 - psubw m4, m1 - ABS1 m3, m5 - ABS1 m4, m5 - paddw m3, m4 - psrlw m2, 1 - psrlw m3, 1 - pmaxsw m2, m3 - LOAD m3, [nextq+t1] - LOAD m4, [nextq+t0] - psubw m3, m0 - psubw m4, m1 - ABS1 m3, m5 - ABS1 m4, m5 - paddw m3, m4 - psrlw m3, 1 - pmaxsw m2, m3 - mova [rsp+48], m2 - - paddw m1, m0 - paddw m0, m0 - psubw m0, m1 - psrlw m1, 1 - ABS1 m0, m2 - - movu m2, [curq+t1-1] - movu m3, [curq+t0-1] - mova m4, m2 - psubusb m2, m3 - psubusb m3, m4 - pmaxub m2, m3 -%if mmsize == 16 - mova m3, m2 - psrldq m3, 2 -%else - pshufw m3, m2, q0021 -%endif - punpcklbw m2, m7 - punpcklbw m3, m7 - paddw m0, m2 - paddw m0, m3 - psubw m0, [pw_1] - - CHECK -2, 0 - CHECK1 - CHECK -3, 1 - CHECK2 - CHECK 0, -2 - CHECK1 - CHECK 1, -3 - CHECK2 - - mova m6, [rsp+48] - cmp DWORD r8m, 2 - jge .end%1 - LOAD m2, [%2+t1*2] - LOAD m4, [%3+t1*2] - LOAD m3, [%2+t0*2] - LOAD m5, [%3+t0*2] - paddw m2, m4 - paddw m3, m5 - psrlw m2, 1 - psrlw m3, 1 - mova m4, [rsp+ 0] - mova m5, [rsp+16] - mova m7, [rsp+32] - psubw m2, m4 - psubw m3, m7 - mova m0, m5 - psubw m5, m4 - psubw m0, m7 - mova m4, m2 - pminsw m2, m3 - pmaxsw m3, m4 - pmaxsw m2, m5 - pminsw m3, m5 - pmaxsw m2, m0 - pminsw m3, m0 - pxor m4, m4 - pmaxsw m6, m3 - psubw m4, m2 - pmaxsw m6, m4 - -.end%1: - mova m2, [rsp+16] - mova m3, m2 - psubw m2, m6 - paddw m3, m6 - pmaxsw m1, m2 - pminsw m1, m3 - packuswb m1, m1 - - movh [dstq], m1 - add dstq, mmsize/2 - add prevq, mmsize/2 - add curq, mmsize/2 - add nextq, mmsize/2 - sub DWORD r4m, mmsize/2 - jg .loop%1 -%endmacro - -%macro YADIF 0 -%if ARCH_X86_32 -cglobal yadif_filter_line, 4, 6, 8, 80, dst, prev, cur, next, w, prefs, \ - mrefs, parity, mode -%else -cglobal yadif_filter_line, 4, 7, 8, 80, dst, prev, cur, next, w, prefs, \ - mrefs, parity, mode -%endif -%if ARCH_X86_32 - mov r4, r5mp - mov r5, r6mp - DECLARE_REG_TMP 4,5 -%else - movsxd r5, DWORD r5m - movsxd r6, DWORD r6m - DECLARE_REG_TMP 5,6 -%endif - - cmp DWORD paritym, 0 - je .parity0 - FILTER 1, prevq, curq - jmp .ret - -.parity0: - FILTER 0, curq, nextq - -.ret: - RET -%endmacro - -INIT_XMM ssse3 -YADIF -INIT_XMM sse2 -YADIF -%if ARCH_X86_32 -INIT_MMX mmxext -YADIF -%endif diff --git a/libavfilter/x86/yadif-10.asm b/libavfilter/x86/yadif-10.asm deleted file mode 100644 index 8853e0d2c7..0000000000 --- a/libavfilter/x86/yadif-10.asm +++ /dev/null @@ -1,255 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for yadif filter -;* -;* Copyright (C) 2006 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* Copyright (c) 2011-2013 James Darnley -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_1: times 8 dw 1 - -SECTION .text - -%macro PMAXUW 2 -%if cpuflag(sse4) - pmaxuw %1, %2 -%else - psubusw %1, %2 - paddusw %1, %2 -%endif -%endmacro - -%macro CHECK 2 - movu m2, [curq+t1+%1*2] - movu m3, [curq+t0+%2*2] - mova m4, m2 - mova m5, m2 - pxor m4, m3 - pavgw m5, m3 - pand m4, [pw_1] - psubusw m5, m4 - RSHIFT m5, 2 - mova m4, m2 - psubusw m2, m3 - psubusw m3, m4 - PMAXUW m2, m3 - mova m3, m2 - mova m4, m2 - RSHIFT m3, 2 - RSHIFT m4, 4 - paddw m2, m3 - paddw m2, m4 -%endmacro - -%macro CHECK1 0 - mova m3, m0 - pcmpgtw m3, m2 - pminsw m0, m2 - mova m6, m3 - pand m5, m3 - pandn m3, m1 - por m3, m5 - mova m1, m3 -%endmacro - -; %macro CHECK2 0 -; paddw m6, [pw_1] -; psllw m6, 14 -; paddsw m2, m6 -; mova m3, m0 -; pcmpgtw m3, m2 -; pminsw m0, m2 -; pand m5, m3 -; pandn m3, m1 -; por m3, m5 -; mova m1, m3 -; %endmacro - -; This version of CHECK2 is required for 14-bit samples. The left-shift trick -; in the old code is not large enough to correctly select pixels or scores. - -%macro CHECK2 0 - mova m3, m0 - pcmpgtw m0, m2 - pand m0, m6 - mova m6, m0 - pand m5, m6 - pand m2, m0 - pandn m6, m1 - pandn m0, m3 - por m6, m5 - por m0, m2 - mova m1, m6 -%endmacro - -%macro LOAD 2 - movu %1, %2 -%endmacro - -%macro FILTER 3 -.loop%1: - pxor m7, m7 - LOAD m0, [curq+t1] - LOAD m1, [curq+t0] - LOAD m2, [%2] - LOAD m3, [%3] - mova m4, m3 - paddw m3, m2 - psraw m3, 1 - mova [rsp+ 0], m0 - mova [rsp+16], m3 - mova [rsp+32], m1 - psubw m2, m4 - ABS1 m2, m4 - LOAD m3, [prevq+t1] - LOAD m4, [prevq+t0] - psubw m3, m0 - psubw m4, m1 - ABS2 m3, m4, m5, m6 - paddw m3, m4 - psrlw m2, 1 - psrlw m3, 1 - pmaxsw m2, m3 - LOAD m3, [nextq+t1] - LOAD m4, [nextq+t0] - psubw m3, m0 - psubw m4, m1 - ABS2 m3, m4, m5, m6 - paddw m3, m4 - psrlw m3, 1 - pmaxsw m2, m3 - mova [rsp+48], m2 - - paddw m1, m0 - paddw m0, m0 - psubw m0, m1 - psrlw m1, 1 - ABS1 m0, m2 - - movu m2, [curq+t1-1*2] - movu m3, [curq+t0-1*2] - mova m4, m2 - psubusw m2, m3 - psubusw m3, m4 - PMAXUW m2, m3 - mova m3, m2 - RSHIFT m3, 4 - paddw m0, m2 - paddw m0, m3 - psubw m0, [pw_1] - - CHECK -2, 0 - CHECK1 - CHECK -3, 1 - CHECK2 - CHECK 0, -2 - CHECK1 - CHECK 1, -3 - CHECK2 - - mova m6, [rsp+48] - cmp DWORD r8m, 2 - jge .end%1 - LOAD m2, [%2+t1*2] - LOAD m4, [%3+t1*2] - LOAD m3, [%2+t0*2] - LOAD m5, [%3+t0*2] - paddw m2, m4 - paddw m3, m5 - psrlw m2, 1 - psrlw m3, 1 - mova m4, [rsp+ 0] - mova m5, [rsp+16] - mova m7, [rsp+32] - psubw m2, m4 - psubw m3, m7 - mova m0, m5 - psubw m5, m4 - psubw m0, m7 - mova m4, m2 - pminsw m2, m3 - pmaxsw m3, m4 - pmaxsw m2, m5 - pminsw m3, m5 - pmaxsw m2, m0 - pminsw m3, m0 - pxor m4, m4 - pmaxsw m6, m3 - psubw m4, m2 - pmaxsw m6, m4 - -.end%1: - mova m2, [rsp+16] - mova m3, m2 - psubw m2, m6 - paddw m3, m6 - pmaxsw m1, m2 - pminsw m1, m3 - - movu [dstq], m1 - add dstq, mmsize-4 - add prevq, mmsize-4 - add curq, mmsize-4 - add nextq, mmsize-4 - sub DWORD r4m, mmsize/2-2 - jg .loop%1 -%endmacro - -%macro YADIF 0 -%if ARCH_X86_32 -cglobal yadif_filter_line_10bit, 4, 6, 8, 80, dst, prev, cur, next, w, \ - prefs, mrefs, parity, mode -%else -cglobal yadif_filter_line_10bit, 4, 7, 8, 80, dst, prev, cur, next, w, \ - prefs, mrefs, parity, mode -%endif -%if ARCH_X86_32 - mov r4, r5mp - mov r5, r6mp - DECLARE_REG_TMP 4,5 -%else - movsxd r5, DWORD r5m - movsxd r6, DWORD r6m - DECLARE_REG_TMP 5,6 -%endif - - cmp DWORD paritym, 0 - je .parity0 - FILTER 1, prevq, curq - jmp .ret - -.parity0: - FILTER 0, curq, nextq - -.ret: - RET -%endmacro - -INIT_XMM ssse3 -YADIF -INIT_XMM sse2 -YADIF -%if ARCH_X86_32 -INIT_MMX mmxext -YADIF -%endif diff --git a/libavfilter/x86/yadif-16.asm b/libavfilter/x86/yadif-16.asm deleted file mode 100644 index 9053b378a5..0000000000 --- a/libavfilter/x86/yadif-16.asm +++ /dev/null @@ -1,293 +0,0 @@ -;***************************************************************************** -;* x86-optimized functions for yadif filter -;* -;* Copyright (C) 2006 Michael Niedermayer -;* Copyright (c) 2013 Daniel Kang -;* Copyright (c) 2011-2013 James Darnley -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pw_1: times 8 dw 1 -pw_8000: times 8 dw 0x8000 -pd_1: times 4 dd 1 -pd_8000: times 4 dd 0x8000 - -SECTION .text - -%macro PABS 2 -%if cpuflag(ssse3) - pabsd %1, %1 -%else - pxor %2, %2 - pcmpgtd %2, %1 - pxor %1, %2 - psubd %1, %2 -%endif -%endmacro - -%macro PACK 1 -%if cpuflag(sse4) - packusdw %1, %1 -%else - psubd %1, [pd_8000] - packssdw %1, %1 - paddw %1, [pw_8000] -%endif -%endmacro - -%macro PMAXUW 2 -%if cpuflag(sse4) - pmaxuw %1, %2 -%else - psubusw %1, %2 - paddusw %1, %2 -%endif -%endmacro - -%macro CHECK 2 - movu m2, [curq+t1+%1*2] - movu m3, [curq+t0+%2*2] - mova m4, m2 - mova m5, m2 - pxor m4, m3 - pavgw m5, m3 - pand m4, [pw_1] - psubusw m5, m4 - RSHIFT m5, 2 - punpcklwd m5, m7 - mova m4, m2 - psubusw m2, m3 - psubusw m3, m4 - PMAXUW m2, m3 - mova m3, m2 - mova m4, m2 - RSHIFT m3, 2 - RSHIFT m4, 4 - punpcklwd m2, m7 - punpcklwd m3, m7 - punpcklwd m4, m7 - paddd m2, m3 - paddd m2, m4 -%endmacro - -%macro CHECK1 0 - mova m3, m0 - pcmpgtd m3, m2 - PMINSD m0, m2, m6 - mova m6, m3 - pand m5, m3 - pandn m3, m1 - por m3, m5 - mova m1, m3 -%endmacro - -%macro CHECK2 0 - paddd m6, [pd_1] - pslld m6, 30 - paddd m2, m6 - mova m3, m0 - pcmpgtd m3, m2 - PMINSD m0, m2, m4 - pand m5, m3 - pandn m3, m1 - por m3, m5 - mova m1, m3 -%endmacro - -; This version of CHECK2 has 3 fewer instructions on sets older than SSE4 but I -; am not sure whether it is any faster. A rewrite or refactor of the filter -; code should make it possible to eliminate the move instruction at the end. It -; exists to satisfy the expectation that the "score" values are in m1. - -; %macro CHECK2 0 -; mova m3, m0 -; pcmpgtd m0, m2 -; pand m0, m6 -; mova m6, m0 -; pand m5, m6 -; pand m2, m0 -; pandn m6, m1 -; pandn m0, m3 -; por m6, m5 -; por m0, m2 -; mova m1, m6 -; %endmacro - -%macro LOAD 2 - movh %1, %2 - punpcklwd %1, m7 -%endmacro - -%macro FILTER 3 -.loop%1: - pxor m7, m7 - LOAD m0, [curq+t1] - LOAD m1, [curq+t0] - LOAD m2, [%2] - LOAD m3, [%3] - mova m4, m3 - paddd m3, m2 - psrad m3, 1 - mova [rsp+ 0], m0 - mova [rsp+16], m3 - mova [rsp+32], m1 - psubd m2, m4 - PABS m2, m4 - LOAD m3, [prevq+t1] - LOAD m4, [prevq+t0] - psubd m3, m0 - psubd m4, m1 - PABS m3, m5 - PABS m4, m5 - paddd m3, m4 - psrld m2, 1 - psrld m3, 1 - PMAXSD m2, m3, m6 - LOAD m3, [nextq+t1] - LOAD m4, [nextq+t0] - psubd m3, m0 - psubd m4, m1 - PABS m3, m5 - PABS m4, m5 - paddd m3, m4 - psrld m3, 1 - PMAXSD m2, m3, m6 - mova [rsp+48], m2 - - paddd m1, m0 - paddd m0, m0 - psubd m0, m1 - psrld m1, 1 - PABS m0, m2 - - movu m2, [curq+t1-1*2] - movu m3, [curq+t0-1*2] - mova m4, m2 - psubusw m2, m3 - psubusw m3, m4 - PMAXUW m2, m3 - mova m3, m2 - RSHIFT m3, 4 - punpcklwd m2, m7 - punpcklwd m3, m7 - paddd m0, m2 - paddd m0, m3 - psubd m0, [pd_1] - - CHECK -2, 0 - CHECK1 - CHECK -3, 1 - CHECK2 - CHECK 0, -2 - CHECK1 - CHECK 1, -3 - CHECK2 - - mova m6, [rsp+48] - cmp DWORD r8m, 2 - jge .end%1 - LOAD m2, [%2+t1*2] - LOAD m4, [%3+t1*2] - LOAD m3, [%2+t0*2] - LOAD m5, [%3+t0*2] - paddd m2, m4 - paddd m3, m5 - psrld m2, 1 - psrld m3, 1 - mova m4, [rsp+ 0] - mova m5, [rsp+16] - mova m7, [rsp+32] - psubd m2, m4 - psubd m3, m7 - mova m0, m5 - psubd m5, m4 - psubd m0, m7 - mova m4, m2 - PMINSD m2, m3, m7 - PMAXSD m3, m4, m7 - PMAXSD m2, m5, m7 - PMINSD m3, m5, m7 - PMAXSD m2, m0, m7 - PMINSD m3, m0, m7 - pxor m4, m4 - PMAXSD m6, m3, m7 - psubd m4, m2 - PMAXSD m6, m4, m7 - -.end%1: - mova m2, [rsp+16] - mova m3, m2 - psubd m2, m6 - paddd m3, m6 - PMAXSD m1, m2, m7 - PMINSD m1, m3, m7 - PACK m1 - - movh [dstq], m1 - add dstq, mmsize/2 - add prevq, mmsize/2 - add curq, mmsize/2 - add nextq, mmsize/2 - sub DWORD r4m, mmsize/4 - jg .loop%1 -%endmacro - -%macro YADIF 0 -%if ARCH_X86_32 -cglobal yadif_filter_line_16bit, 4, 6, 8, 80, dst, prev, cur, next, w, \ - prefs, mrefs, parity, mode -%else -cglobal yadif_filter_line_16bit, 4, 7, 8, 80, dst, prev, cur, next, w, \ - prefs, mrefs, parity, mode -%endif -%if ARCH_X86_32 - mov r4, r5mp - mov r5, r6mp - DECLARE_REG_TMP 4,5 -%else - movsxd r5, DWORD r5m - movsxd r6, DWORD r6m - DECLARE_REG_TMP 5,6 -%endif - - cmp DWORD paritym, 0 - je .parity0 - FILTER 1, prevq, curq - jmp .ret - -.parity0: - FILTER 0, curq, nextq - -.ret: - RET -%endmacro - -INIT_XMM sse4 -YADIF -INIT_XMM ssse3 -YADIF -INIT_XMM sse2 -YADIF -%if ARCH_X86_32 -INIT_MMX mmxext -YADIF -%endif diff --git a/libavformat/.gitignore b/libavformat/.gitignore deleted file mode 100644 index fb70c122c4..0000000000 --- a/libavformat/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/protocol_list.c -/muxer_list.c -/demuxer_list.c diff --git a/libavformat/tests/.gitignore b/libavformat/tests/.gitignore deleted file mode 100644 index 7ceb7a356b..0000000000 --- a/libavformat/tests/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/fifo_muxer -/movenc -/noproxy -/rtmpdh -/seek -/srtp -/url diff --git a/libavresample/tests/.gitignore b/libavresample/tests/.gitignore deleted file mode 100644 index 1e15871d54..0000000000 --- a/libavresample/tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/avresample diff --git a/libavresample/x86/audio_convert.asm b/libavresample/x86/audio_convert.asm deleted file mode 100644 index c6a5015282..0000000000 --- a/libavresample/x86/audio_convert.asm +++ /dev/null @@ -1,1261 +0,0 @@ -;****************************************************************************** -;* x86 optimized Format Conversion Utils -;* Copyright (c) 2008 Loren Merritt -;* Copyright (c) 2012 Justin Ruggles -;* -;* 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 "libavutil/x86/x86util.asm" -%include "util.asm" - -SECTION_RODATA 32 - -pf_s32_inv_scale: times 8 dd 0x30000000 -pf_s32_scale: times 8 dd 0x4f000000 -pf_s32_clip: times 8 dd 0x4effffff -pf_s16_inv_scale: times 4 dd 0x38000000 -pf_s16_scale: times 4 dd 0x47000000 -pb_shuf_unpack_even: db -1, -1, 0, 1, -1, -1, 2, 3, -1, -1, 8, 9, -1, -1, 10, 11 -pb_shuf_unpack_odd: db -1, -1, 4, 5, -1, -1, 6, 7, -1, -1, 12, 13, -1, -1, 14, 15 -pb_interleave_words: SHUFFLE_MASK_W 0, 4, 1, 5, 2, 6, 3, 7 -pb_deinterleave_words: SHUFFLE_MASK_W 0, 2, 4, 6, 1, 3, 5, 7 -pw_zero_even: times 4 dw 0x0000, 0xffff - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_conv_s16_to_s32(int32_t *dst, const int16_t *src, int len); -;------------------------------------------------------------------------------ - -INIT_XMM sse2 -cglobal conv_s16_to_s32, 3,3,3, dst, src, len - lea lenq, [2*lend] - lea dstq, [dstq+2*lenq] - add srcq, lenq - neg lenq -.loop: - mova m2, [srcq+lenq] - pxor m0, m0 - pxor m1, m1 - punpcklwd m0, m2 - punpckhwd m1, m2 - mova [dstq+2*lenq ], m0 - mova [dstq+2*lenq+mmsize], m1 - add lenq, mmsize - jl .loop - REP_RET - -;------------------------------------------------------------------------------ -; void ff_conv_s16_to_flt(float *dst, const int16_t *src, int len); -;------------------------------------------------------------------------------ - -%macro CONV_S16_TO_FLT 0 -cglobal conv_s16_to_flt, 3,3,3, dst, src, len - lea lenq, [2*lend] - add srcq, lenq - lea dstq, [dstq + 2*lenq] - neg lenq - mova m2, [pf_s16_inv_scale] - ALIGN 16 -.loop: - mova m0, [srcq+lenq] - S16_TO_S32_SX 0, 1 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - mulps m0, m2 - mulps m1, m2 - mova [dstq+2*lenq ], m0 - mova [dstq+2*lenq+mmsize], m1 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16_TO_FLT -INIT_XMM sse4 -CONV_S16_TO_FLT - -;------------------------------------------------------------------------------ -; void ff_conv_s32_to_s16(int16_t *dst, const int32_t *src, int len); -;------------------------------------------------------------------------------ - -%macro CONV_S32_TO_S16 0 -cglobal conv_s32_to_s16, 3,3,4, dst, src, len - lea lenq, [2*lend] - lea srcq, [srcq+2*lenq] - add dstq, lenq - neg lenq -.loop: - mova m0, [srcq+2*lenq ] - mova m1, [srcq+2*lenq+ mmsize] - mova m2, [srcq+2*lenq+2*mmsize] - mova m3, [srcq+2*lenq+3*mmsize] - psrad m0, 16 - psrad m1, 16 - psrad m2, 16 - psrad m3, 16 - packssdw m0, m1 - packssdw m2, m3 - mova [dstq+lenq ], m0 - mova [dstq+lenq+mmsize], m2 - add lenq, mmsize*2 - jl .loop -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -INIT_MMX mmx -CONV_S32_TO_S16 -INIT_XMM sse2 -CONV_S32_TO_S16 - -;------------------------------------------------------------------------------ -; void ff_conv_s32_to_flt(float *dst, const int32_t *src, int len); -;------------------------------------------------------------------------------ - -%macro CONV_S32_TO_FLT 0 -cglobal conv_s32_to_flt, 3,3,3, dst, src, len - lea lenq, [4*lend] - add srcq, lenq - add dstq, lenq - neg lenq - mova m0, [pf_s32_inv_scale] - ALIGN 16 -.loop: - cvtdq2ps m1, [srcq+lenq ] - cvtdq2ps m2, [srcq+lenq+mmsize] - mulps m1, m1, m0 - mulps m2, m2, m0 - mova [dstq+lenq ], m1 - mova [dstq+lenq+mmsize], m2 - add lenq, mmsize*2 - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S32_TO_FLT -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -CONV_S32_TO_FLT -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_flt_to_s16(int16_t *dst, const float *src, int len); -;------------------------------------------------------------------------------ - -INIT_XMM sse2 -cglobal conv_flt_to_s16, 3,3,5, dst, src, len - lea lenq, [2*lend] - lea srcq, [srcq+2*lenq] - add dstq, lenq - neg lenq - mova m4, [pf_s16_scale] -.loop: - mova m0, [srcq+2*lenq ] - mova m1, [srcq+2*lenq+1*mmsize] - mova m2, [srcq+2*lenq+2*mmsize] - mova m3, [srcq+2*lenq+3*mmsize] - mulps m0, m4 - mulps m1, m4 - mulps m2, m4 - mulps m3, m4 - cvtps2dq m0, m0 - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - packssdw m0, m1 - packssdw m2, m3 - mova [dstq+lenq ], m0 - mova [dstq+lenq+mmsize], m2 - add lenq, mmsize*2 - jl .loop - REP_RET - -;------------------------------------------------------------------------------ -; void ff_conv_flt_to_s32(int32_t *dst, const float *src, int len); -;------------------------------------------------------------------------------ - -%macro CONV_FLT_TO_S32 0 -cglobal conv_flt_to_s32, 3,3,6, dst, src, len - lea lenq, [lend*4] - add srcq, lenq - add dstq, lenq - neg lenq - mova m4, [pf_s32_scale] - mova m5, [pf_s32_clip] -.loop: - mulps m0, m4, [srcq+lenq ] - mulps m1, m4, [srcq+lenq+1*mmsize] - mulps m2, m4, [srcq+lenq+2*mmsize] - mulps m3, m4, [srcq+lenq+3*mmsize] - minps m0, m0, m5 - minps m1, m1, m5 - minps m2, m2, m5 - minps m3, m3, m5 - cvtps2dq m0, m0 - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - mova [dstq+lenq ], m0 - mova [dstq+lenq+1*mmsize], m1 - mova [dstq+lenq+2*mmsize], m2 - mova [dstq+lenq+3*mmsize], m3 - add lenq, mmsize*4 - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_FLT_TO_S32 -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -CONV_FLT_TO_S32 -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16p_to_s16_2ch(int16_t *dst, int16_t *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16P_TO_S16_2CH 0 -cglobal conv_s16p_to_s16_2ch, 3,4,5, dst, src0, len, src1 - mov src1q, [src0q+gprsize] - mov src0q, [src0q ] - lea lenq, [2*lend] - add src0q, lenq - add src1q, lenq - lea dstq, [dstq+2*lenq] - neg lenq -.loop: - mova m0, [src0q+lenq ] - mova m1, [src1q+lenq ] - mova m2, [src0q+lenq+mmsize] - mova m3, [src1q+lenq+mmsize] - SBUTTERFLY2 wd, 0, 1, 4 - SBUTTERFLY2 wd, 2, 3, 4 - mova [dstq+2*lenq+0*mmsize], m0 - mova [dstq+2*lenq+1*mmsize], m1 - mova [dstq+2*lenq+2*mmsize], m2 - mova [dstq+2*lenq+3*mmsize], m3 - add lenq, 2*mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16P_TO_S16_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16P_TO_S16_2CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16p_to_s16_6ch(int16_t *dst, int16_t *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -;------------------------------------------------------------------------------ -; NOTE: In the 6-channel functions, len could be used as an index on x86-64 -; instead of just a counter, which would avoid incrementing the -; pointers, but the extra complexity and amount of code is not worth -; the small gain. On x86-32 there are not enough registers to use len -; as an index without keeping two of the pointers on the stack and -; loading them in each iteration. -;------------------------------------------------------------------------------ - -%macro CONV_S16P_TO_S16_6CH 0 -%if ARCH_X86_64 -cglobal conv_s16p_to_s16_6ch, 3,8,7, dst, src0, len, src1, src2, src3, src4, src5 -%else -cglobal conv_s16p_to_s16_6ch, 2,7,7, dst, src0, src1, src2, src3, src4, src5 -%define lend dword r2m -%endif - mov src1q, [src0q+1*gprsize] - mov src2q, [src0q+2*gprsize] - mov src3q, [src0q+3*gprsize] - mov src4q, [src0q+4*gprsize] - mov src5q, [src0q+5*gprsize] - mov src0q, [src0q] - sub src1q, src0q - sub src2q, src0q - sub src3q, src0q - sub src4q, src0q - sub src5q, src0q -.loop: -%if cpuflag(sse2slow) - movq m0, [src0q ] ; m0 = 0, 6, 12, 18, x, x, x, x - movq m1, [src0q+src1q] ; m1 = 1, 7, 13, 19, x, x, x, x - movq m2, [src0q+src2q] ; m2 = 2, 8, 14, 20, x, x, x, x - movq m3, [src0q+src3q] ; m3 = 3, 9, 15, 21, x, x, x, x - movq m4, [src0q+src4q] ; m4 = 4, 10, 16, 22, x, x, x, x - movq m5, [src0q+src5q] ; m5 = 5, 11, 17, 23, x, x, x, x - ; unpack words: - punpcklwd m0, m1 ; m0 = 0, 1, 6, 7, 12, 13, 18, 19 - punpcklwd m2, m3 ; m2 = 4, 5, 10, 11, 16, 17, 22, 23 - punpcklwd m4, m5 ; m4 = 2, 3, 8, 9, 14, 15, 20, 21 - ; blend dwords - shufps m1, m0, m2, q2020 ; m1 = 0, 1, 12, 13, 2, 3, 14, 15 - shufps m0, m4, q2031 ; m0 = 6, 7, 18, 19, 4, 5, 16, 17 - shufps m2, m4, q3131 ; m2 = 8, 9, 20, 21, 10, 11, 22, 23 - ; shuffle dwords - pshufd m0, m0, q1302 ; m0 = 4, 5, 6, 7, 16, 17, 18, 19 - pshufd m1, m1, q3120 ; m1 = 0, 1, 2, 3, 12, 13, 14, 15 - pshufd m2, m2, q3120 ; m2 = 8, 9, 10, 11, 20, 21, 22, 23 - movq [dstq+0*mmsize/2], m1 - movq [dstq+1*mmsize/2], m0 - movq [dstq+2*mmsize/2], m2 - movhps [dstq+3*mmsize/2], m1 - movhps [dstq+4*mmsize/2], m0 - movhps [dstq+5*mmsize/2], m2 - add src0q, mmsize/2 - add dstq, mmsize*3 - sub lend, mmsize/4 -%else - mova m0, [src0q ] ; m0 = 0, 6, 12, 18, 24, 30, 36, 42 - mova m1, [src0q+src1q] ; m1 = 1, 7, 13, 19, 25, 31, 37, 43 - mova m2, [src0q+src2q] ; m2 = 2, 8, 14, 20, 26, 32, 38, 44 - mova m3, [src0q+src3q] ; m3 = 3, 9, 15, 21, 27, 33, 39, 45 - mova m4, [src0q+src4q] ; m4 = 4, 10, 16, 22, 28, 34, 40, 46 - mova m5, [src0q+src5q] ; m5 = 5, 11, 17, 23, 29, 35, 41, 47 - ; unpack words: - SBUTTERFLY2 wd, 0, 1, 6 ; m0 = 0, 1, 6, 7, 12, 13, 18, 19 - ; m1 = 24, 25, 30, 31, 36, 37, 42, 43 - SBUTTERFLY2 wd, 2, 3, 6 ; m2 = 2, 3, 8, 9, 14, 15, 20, 21 - ; m3 = 26, 27, 32, 33, 38, 39, 44, 45 - SBUTTERFLY2 wd, 4, 5, 6 ; m4 = 4, 5, 10, 11, 16, 17, 22, 23 - ; m5 = 28, 29, 34, 35, 40, 41, 46, 47 - ; blend dwords - shufps m6, m0, m2, q2020 ; m6 = 0, 1, 12, 13, 2, 3, 14, 15 - shufps m0, m4, q2031 ; m0 = 6, 7, 18, 19, 4, 5, 16, 17 - shufps m2, m4, q3131 ; m2 = 8, 9, 20, 21, 10, 11, 22, 23 - SWAP 4,6 ; m4 = 0, 1, 12, 13, 2, 3, 14, 15 - shufps m6, m1, m3, q2020 ; m6 = 24, 25, 36, 37, 26, 27, 38, 39 - shufps m1, m5, q2031 ; m1 = 30, 31, 42, 43, 28, 29, 40, 41 - shufps m3, m5, q3131 ; m3 = 32, 33, 44, 45, 34, 35, 46, 47 - SWAP 5,6 ; m5 = 24, 25, 36, 37, 26, 27, 38, 39 - ; shuffle dwords - pshufd m0, m0, q1302 ; m0 = 4, 5, 6, 7, 16, 17, 18, 19 - pshufd m2, m2, q3120 ; m2 = 8, 9, 10, 11, 20, 21, 22, 23 - pshufd m4, m4, q3120 ; m4 = 0, 1, 2, 3, 12, 13, 14, 15 - pshufd m1, m1, q1302 ; m1 = 28, 29, 30, 31, 40, 41, 42, 43 - pshufd m3, m3, q3120 ; m3 = 32, 33, 34, 35, 44, 45, 46, 47 - pshufd m5, m5, q3120 ; m5 = 24, 25, 26, 27, 36, 37, 38, 39 - ; shuffle qwords - punpcklqdq m6, m4, m0 ; m6 = 0, 1, 2, 3, 4, 5, 6, 7 - punpckhqdq m0, m2 ; m0 = 16, 17, 18, 19, 20, 21, 22, 23 - shufps m2, m4, q3210 ; m2 = 8, 9, 10, 11, 12, 13, 14, 15 - SWAP 4,6 ; m4 = 0, 1, 2, 3, 4, 5, 6, 7 - punpcklqdq m6, m5, m1 ; m6 = 24, 25, 26, 27, 28, 29, 30, 31 - punpckhqdq m1, m3 ; m1 = 40, 41, 42, 43, 44, 45, 46, 47 - shufps m3, m5, q3210 ; m3 = 32, 33, 34, 35, 36, 37, 38, 39 - SWAP 5,6 ; m5 = 24, 25, 26, 27, 28, 29, 30, 31 - mova [dstq+0*mmsize], m4 - mova [dstq+1*mmsize], m2 - mova [dstq+2*mmsize], m0 - mova [dstq+3*mmsize], m5 - mova [dstq+4*mmsize], m3 - mova [dstq+5*mmsize], m1 - add src0q, mmsize - add dstq, mmsize*6 - sub lend, mmsize/2 -%endif - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16P_TO_S16_6CH -INIT_XMM sse2slow -CONV_S16P_TO_S16_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16P_TO_S16_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16p_to_flt_2ch(float *dst, int16_t *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16P_TO_FLT_2CH 0 -cglobal conv_s16p_to_flt_2ch, 3,4,6, dst, src0, len, src1 - lea lenq, [2*lend] - mov src1q, [src0q+gprsize] - mov src0q, [src0q ] - lea dstq, [dstq+4*lenq] - add src0q, lenq - add src1q, lenq - neg lenq - mova m5, [pf_s32_inv_scale] -.loop: - mova m2, [src0q+lenq] ; m2 = 0, 2, 4, 6, 8, 10, 12, 14 - mova m4, [src1q+lenq] ; m4 = 1, 3, 5, 7, 9, 11, 13, 15 - SBUTTERFLY2 wd, 2, 4, 3 ; m2 = 0, 1, 2, 3, 4, 5, 6, 7 - ; m4 = 8, 9, 10, 11, 12, 13, 14, 15 - pxor m3, m3 - punpcklwd m0, m3, m2 ; m0 = 0, 1, 2, 3 - punpckhwd m1, m3, m2 ; m1 = 4, 5, 6, 7 - punpcklwd m2, m3, m4 ; m2 = 8, 9, 10, 11 - punpckhwd m3, m4 ; m3 = 12, 13, 14, 15 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - cvtdq2ps m2, m2 - cvtdq2ps m3, m3 - mulps m0, m5 - mulps m1, m5 - mulps m2, m5 - mulps m3, m5 - mova [dstq+4*lenq ], m0 - mova [dstq+4*lenq+ mmsize], m1 - mova [dstq+4*lenq+2*mmsize], m2 - mova [dstq+4*lenq+3*mmsize], m3 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16P_TO_FLT_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16P_TO_FLT_2CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16p_to_flt_6ch(float *dst, int16_t *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16P_TO_FLT_6CH 0 -%if ARCH_X86_64 -cglobal conv_s16p_to_flt_6ch, 3,8,8, dst, src, len, src1, src2, src3, src4, src5 -%else -cglobal conv_s16p_to_flt_6ch, 2,7,8, dst, src, src1, src2, src3, src4, src5 -%define lend dword r2m -%endif - mov src1q, [srcq+1*gprsize] - mov src2q, [srcq+2*gprsize] - mov src3q, [srcq+3*gprsize] - mov src4q, [srcq+4*gprsize] - mov src5q, [srcq+5*gprsize] - mov srcq, [srcq] - sub src1q, srcq - sub src2q, srcq - sub src3q, srcq - sub src4q, srcq - sub src5q, srcq - mova m7, [pf_s32_inv_scale] -%if cpuflag(ssse3) - %define unpack_even m6 - mova m6, [pb_shuf_unpack_even] -%if ARCH_X86_64 - %define unpack_odd m8 - mova m8, [pb_shuf_unpack_odd] -%else - %define unpack_odd [pb_shuf_unpack_odd] -%endif -%endif -.loop: - movq m0, [srcq ] ; m0 = 0, 6, 12, 18, x, x, x, x - movq m1, [srcq+src1q] ; m1 = 1, 7, 13, 19, x, x, x, x - movq m2, [srcq+src2q] ; m2 = 2, 8, 14, 20, x, x, x, x - movq m3, [srcq+src3q] ; m3 = 3, 9, 15, 21, x, x, x, x - movq m4, [srcq+src4q] ; m4 = 4, 10, 16, 22, x, x, x, x - movq m5, [srcq+src5q] ; m5 = 5, 11, 17, 23, x, x, x, x - ; unpack words: - punpcklwd m0, m1 ; m0 = 0, 1, 6, 7, 12, 13, 18, 19 - punpcklwd m2, m3 ; m2 = 2, 3, 8, 9, 14, 15, 20, 21 - punpcklwd m4, m5 ; m4 = 4, 5, 10, 11, 16, 17, 22, 23 - ; blend dwords - shufps m1, m4, m0, q3120 ; m1 = 4, 5, 16, 17, 6, 7, 18, 19 - shufps m0, m2, q2020 ; m0 = 0, 1, 12, 13, 2, 3, 14, 15 - shufps m2, m4, q3131 ; m2 = 8, 9, 20, 21, 10, 11, 22, 23 -%if cpuflag(ssse3) - pshufb m3, m0, unpack_odd ; m3 = 12, 13, 14, 15 - pshufb m0, unpack_even ; m0 = 0, 1, 2, 3 - pshufb m4, m1, unpack_odd ; m4 = 16, 17, 18, 19 - pshufb m1, unpack_even ; m1 = 4, 5, 6, 7 - pshufb m5, m2, unpack_odd ; m5 = 20, 21, 22, 23 - pshufb m2, unpack_even ; m2 = 8, 9, 10, 11 -%else - ; shuffle dwords - pshufd m0, m0, q3120 ; m0 = 0, 1, 2, 3, 12, 13, 14, 15 - pshufd m1, m1, q3120 ; m1 = 4, 5, 6, 7, 16, 17, 18, 19 - pshufd m2, m2, q3120 ; m2 = 8, 9, 10, 11, 20, 21, 22, 23 - pxor m6, m6 ; convert s16 in m0-m2 to s32 in m0-m5 - punpcklwd m3, m6, m0 ; m3 = 0, 1, 2, 3 - punpckhwd m4, m6, m0 ; m4 = 12, 13, 14, 15 - punpcklwd m0, m6, m1 ; m0 = 4, 5, 6, 7 - punpckhwd m5, m6, m1 ; m5 = 16, 17, 18, 19 - punpcklwd m1, m6, m2 ; m1 = 8, 9, 10, 11 - punpckhwd m6, m2 ; m6 = 20, 21, 22, 23 - SWAP 6,2,1,0,3,4,5 ; swap registers 3,0,1,4,5,6 to 0,1,2,3,4,5 -%endif - cvtdq2ps m0, m0 ; convert s32 to float - cvtdq2ps m1, m1 - cvtdq2ps m2, m2 - cvtdq2ps m3, m3 - cvtdq2ps m4, m4 - cvtdq2ps m5, m5 - mulps m0, m7 ; scale float from s32 range to [-1.0,1.0] - mulps m1, m7 - mulps m2, m7 - mulps m3, m7 - mulps m4, m7 - mulps m5, m7 - mova [dstq ], m0 - mova [dstq+ mmsize], m1 - mova [dstq+2*mmsize], m2 - mova [dstq+3*mmsize], m3 - mova [dstq+4*mmsize], m4 - mova [dstq+5*mmsize], m5 - add srcq, mmsize/2 - add dstq, mmsize*6 - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16P_TO_FLT_6CH -INIT_XMM ssse3 -CONV_S16P_TO_FLT_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16P_TO_FLT_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_fltp_to_s16_2ch(int16_t *dst, float *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLTP_TO_S16_2CH 0 -cglobal conv_fltp_to_s16_2ch, 3,4,3, dst, src0, len, src1 - lea lenq, [4*lend] - mov src1q, [src0q+gprsize] - mov src0q, [src0q ] - add dstq, lenq - add src0q, lenq - add src1q, lenq - neg lenq - mova m2, [pf_s16_scale] -%if cpuflag(ssse3) - mova m3, [pb_interleave_words] -%endif -.loop: - mulps m0, m2, [src0q+lenq] ; m0 = 0, 2, 4, 6 - mulps m1, m2, [src1q+lenq] ; m1 = 1, 3, 5, 7 - cvtps2dq m0, m0 - cvtps2dq m1, m1 -%if cpuflag(ssse3) - packssdw m0, m1 ; m0 = 0, 2, 4, 6, 1, 3, 5, 7 - pshufb m0, m3 ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 -%else - packssdw m0, m0 ; m0 = 0, 2, 4, 6, x, x, x, x - packssdw m1, m1 ; m1 = 1, 3, 5, 7, x, x, x, x - punpcklwd m0, m1 ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 -%endif - mova [dstq+lenq], m0 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_FLTP_TO_S16_2CH -INIT_XMM ssse3 -CONV_FLTP_TO_S16_2CH - -;------------------------------------------------------------------------------ -; void ff_conv_fltp_to_s16_6ch(int16_t *dst, float *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLTP_TO_S16_6CH 0 -%if ARCH_X86_64 -cglobal conv_fltp_to_s16_6ch, 3,8,7, dst, src, len, src1, src2, src3, src4, src5 -%else -cglobal conv_fltp_to_s16_6ch, 2,7,7, dst, src, src1, src2, src3, src4, src5 -%define lend dword r2m -%endif - mov src1q, [srcq+1*gprsize] - mov src2q, [srcq+2*gprsize] - mov src3q, [srcq+3*gprsize] - mov src4q, [srcq+4*gprsize] - mov src5q, [srcq+5*gprsize] - mov srcq, [srcq] - sub src1q, srcq - sub src2q, srcq - sub src3q, srcq - sub src4q, srcq - sub src5q, srcq - movaps xmm6, [pf_s16_scale] -.loop: -%if cpuflag(sse2) - mulps m0, m6, [srcq ] - mulps m1, m6, [srcq+src1q] - mulps m2, m6, [srcq+src2q] - mulps m3, m6, [srcq+src3q] - mulps m4, m6, [srcq+src4q] - mulps m5, m6, [srcq+src5q] - cvtps2dq m0, m0 - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - cvtps2dq m4, m4 - cvtps2dq m5, m5 - packssdw m0, m3 ; m0 = 0, 6, 12, 18, 3, 9, 15, 21 - packssdw m1, m4 ; m1 = 1, 7, 13, 19, 4, 10, 16, 22 - packssdw m2, m5 ; m2 = 2, 8, 14, 20, 5, 11, 17, 23 - ; unpack words: - movhlps m3, m0 ; m3 = 3, 9, 15, 21, x, x, x, x - punpcklwd m0, m1 ; m0 = 0, 1, 6, 7, 12, 13, 18, 19 - punpckhwd m1, m2 ; m1 = 4, 5, 10, 11, 16, 17, 22, 23 - punpcklwd m2, m3 ; m2 = 2, 3, 8, 9, 14, 15, 20, 21 - ; blend dwords: - shufps m3, m0, m2, q2020 ; m3 = 0, 1, 12, 13, 2, 3, 14, 15 - shufps m0, m1, q2031 ; m0 = 6, 7, 18, 19, 4, 5, 16, 17 - shufps m2, m1, q3131 ; m2 = 8, 9, 20, 21, 10, 11, 22, 23 - ; shuffle dwords: - shufps m1, m2, m3, q3120 ; m1 = 8, 9, 10, 11, 12, 13, 14, 15 - shufps m3, m0, q0220 ; m3 = 0, 1, 2, 3, 4, 5, 6, 7 - shufps m0, m2, q3113 ; m0 = 16, 17, 18, 19, 20, 21, 22, 23 - mova [dstq+0*mmsize], m3 - mova [dstq+1*mmsize], m1 - mova [dstq+2*mmsize], m0 -%else ; sse - movlps xmm0, [srcq ] - movlps xmm1, [srcq+src1q] - movlps xmm2, [srcq+src2q] - movlps xmm3, [srcq+src3q] - movlps xmm4, [srcq+src4q] - movlps xmm5, [srcq+src5q] - mulps xmm0, xmm6 - mulps xmm1, xmm6 - mulps xmm2, xmm6 - mulps xmm3, xmm6 - mulps xmm4, xmm6 - mulps xmm5, xmm6 - cvtps2pi mm0, xmm0 - cvtps2pi mm1, xmm1 - cvtps2pi mm2, xmm2 - cvtps2pi mm3, xmm3 - cvtps2pi mm4, xmm4 - cvtps2pi mm5, xmm5 - packssdw mm0, mm3 ; m0 = 0, 6, 3, 9 - packssdw mm1, mm4 ; m1 = 1, 7, 4, 10 - packssdw mm2, mm5 ; m2 = 2, 8, 5, 11 - ; unpack words - pshufw mm3, mm0, q1032 ; m3 = 3, 9, 0, 6 - punpcklwd mm0, mm1 ; m0 = 0, 1, 6, 7 - punpckhwd mm1, mm2 ; m1 = 4, 5, 10, 11 - punpcklwd mm2, mm3 ; m2 = 2, 3, 8, 9 - ; unpack dwords - pshufw mm3, mm0, q1032 ; m3 = 6, 7, 0, 1 - punpckldq mm0, mm2 ; m0 = 0, 1, 2, 3 (final) - punpckhdq mm2, mm1 ; m2 = 8, 9, 10, 11 (final) - punpckldq mm1, mm3 ; m1 = 4, 5, 6, 7 (final) - mova [dstq+0*mmsize], mm0 - mova [dstq+1*mmsize], mm1 - mova [dstq+2*mmsize], mm2 -%endif - add srcq, mmsize - add dstq, mmsize*3 - sub lend, mmsize/4 - jg .loop -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -INIT_MMX sse -CONV_FLTP_TO_S16_6CH -INIT_XMM sse2 -CONV_FLTP_TO_S16_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLTP_TO_S16_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_fltp_to_flt_2ch(float *dst, float *const *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLTP_TO_FLT_2CH 0 -cglobal conv_fltp_to_flt_2ch, 3,4,5, dst, src0, len, src1 - mov src1q, [src0q+gprsize] - mov src0q, [src0q] - lea lenq, [4*lend] - add src0q, lenq - add src1q, lenq - lea dstq, [dstq+2*lenq] - neg lenq -.loop: - mova m0, [src0q+lenq ] - mova m1, [src1q+lenq ] - mova m2, [src0q+lenq+mmsize] - mova m3, [src1q+lenq+mmsize] - SBUTTERFLYPS 0, 1, 4 - SBUTTERFLYPS 2, 3, 4 - mova [dstq+2*lenq+0*mmsize], m0 - mova [dstq+2*lenq+1*mmsize], m1 - mova [dstq+2*lenq+2*mmsize], m2 - mova [dstq+2*lenq+3*mmsize], m3 - add lenq, 2*mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse -CONV_FLTP_TO_FLT_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLTP_TO_FLT_2CH -%endif - -;----------------------------------------------------------------------------- -; void ff_conv_fltp_to_flt_6ch(float *dst, float *const *src, int len, -; int channels); -;----------------------------------------------------------------------------- - -%macro CONV_FLTP_TO_FLT_6CH 0 -cglobal conv_fltp_to_flt_6ch, 2,8,7, dst, src, src1, src2, src3, src4, src5, len -%if ARCH_X86_64 - mov lend, r2d -%else - %define lend dword r2m -%endif - mov src1q, [srcq+1*gprsize] - mov src2q, [srcq+2*gprsize] - mov src3q, [srcq+3*gprsize] - mov src4q, [srcq+4*gprsize] - mov src5q, [srcq+5*gprsize] - mov srcq, [srcq] - sub src1q, srcq - sub src2q, srcq - sub src3q, srcq - sub src4q, srcq - sub src5q, srcq -.loop: - mova m0, [srcq ] - mova m1, [srcq+src1q] - mova m2, [srcq+src2q] - mova m3, [srcq+src3q] - mova m4, [srcq+src4q] - mova m5, [srcq+src5q] -%if cpuflag(sse4) - SBUTTERFLYPS 0, 1, 6 - SBUTTERFLYPS 2, 3, 6 - SBUTTERFLYPS 4, 5, 6 - - blendps m6, m4, m0, 1100b - movlhps m0, m2 - movhlps m4, m2 - blendps m2, m5, m1, 1100b - movlhps m1, m3 - movhlps m5, m3 - - movaps [dstq ], m0 - movaps [dstq+16], m6 - movaps [dstq+32], m4 - movaps [dstq+48], m1 - movaps [dstq+64], m2 - movaps [dstq+80], m5 -%else ; mmx - SBUTTERFLY dq, 0, 1, 6 - SBUTTERFLY dq, 2, 3, 6 - SBUTTERFLY dq, 4, 5, 6 - - movq [dstq ], m0 - movq [dstq+ 8], m2 - movq [dstq+16], m4 - movq [dstq+24], m1 - movq [dstq+32], m3 - movq [dstq+40], m5 -%endif - add srcq, mmsize - add dstq, mmsize*6 - sub lend, mmsize/4 - jg .loop -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -INIT_MMX mmx -CONV_FLTP_TO_FLT_6CH -INIT_XMM sse4 -CONV_FLTP_TO_FLT_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLTP_TO_FLT_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16_to_s16p_2ch(int16_t *const *dst, int16_t *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16_TO_S16P_2CH 0 -cglobal conv_s16_to_s16p_2ch, 3,4,4, dst0, src, len, dst1 - lea lenq, [2*lend] - mov dst1q, [dst0q+gprsize] - mov dst0q, [dst0q ] - lea srcq, [srcq+2*lenq] - add dst0q, lenq - add dst1q, lenq - neg lenq -%if cpuflag(ssse3) - mova m3, [pb_deinterleave_words] -%endif -.loop: - mova m0, [srcq+2*lenq ] ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 - mova m1, [srcq+2*lenq+mmsize] ; m1 = 8, 9, 10, 11, 12, 13, 14, 15 -%if cpuflag(ssse3) - pshufb m0, m3 ; m0 = 0, 2, 4, 6, 1, 3, 5, 7 - pshufb m1, m3 ; m1 = 8, 10, 12, 14, 9, 11, 13, 15 - SBUTTERFLY2 qdq, 0, 1, 2 ; m0 = 0, 2, 4, 6, 8, 10, 12, 14 - ; m1 = 1, 3, 5, 7, 9, 11, 13, 15 -%else ; sse2 - pshuflw m0, m0, q3120 ; m0 = 0, 2, 1, 3, 4, 5, 6, 7 - pshufhw m0, m0, q3120 ; m0 = 0, 2, 1, 3, 4, 6, 5, 7 - pshuflw m1, m1, q3120 ; m1 = 8, 10, 9, 11, 12, 13, 14, 15 - pshufhw m1, m1, q3120 ; m1 = 8, 10, 9, 11, 12, 14, 13, 15 - DEINT2_PS 0, 1, 2 ; m0 = 0, 2, 4, 6, 8, 10, 12, 14 - ; m1 = 1, 3, 5, 7, 9, 11, 13, 15 -%endif - mova [dst0q+lenq], m0 - mova [dst1q+lenq], m1 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16_TO_S16P_2CH -INIT_XMM ssse3 -CONV_S16_TO_S16P_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16_TO_S16P_2CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16_to_s16p_6ch(int16_t *const *dst, int16_t *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16_TO_S16P_6CH 0 -%if ARCH_X86_64 -cglobal conv_s16_to_s16p_6ch, 3,8,5, dst, src, len, dst1, dst2, dst3, dst4, dst5 -%else -cglobal conv_s16_to_s16p_6ch, 2,7,5, dst, src, dst1, dst2, dst3, dst4, dst5 -%define lend dword r2m -%endif - mov dst1q, [dstq+ gprsize] - mov dst2q, [dstq+2*gprsize] - mov dst3q, [dstq+3*gprsize] - mov dst4q, [dstq+4*gprsize] - mov dst5q, [dstq+5*gprsize] - mov dstq, [dstq ] - sub dst1q, dstq - sub dst2q, dstq - sub dst3q, dstq - sub dst4q, dstq - sub dst5q, dstq -.loop: - mova m0, [srcq+0*mmsize] ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 - mova m3, [srcq+1*mmsize] ; m3 = 8, 9, 10, 11, 12, 13, 14, 15 - mova m2, [srcq+2*mmsize] ; m2 = 16, 17, 18, 19, 20, 21, 22, 23 - PALIGNR m1, m3, m0, 12, m4 ; m1 = 6, 7, 8, 9, 10, 11, x, x - shufps m3, m2, q1032 ; m3 = 12, 13, 14, 15, 16, 17, 18, 19 - psrldq m2, 4 ; m2 = 18, 19, 20, 21, 22, 23, x, x - SBUTTERFLY2 wd, 0, 1, 4 ; m0 = 0, 6, 1, 7, 2, 8, 3, 9 - ; m1 = 4, 10, 5, 11, x, x, x, x - SBUTTERFLY2 wd, 3, 2, 4 ; m3 = 12, 18, 13, 19, 14, 20, 15, 21 - ; m2 = 16, 22, 17, 23, x, x, x, x - SBUTTERFLY2 dq, 0, 3, 4 ; m0 = 0, 6, 12, 18, 1, 7, 13, 19 - ; m3 = 2, 8, 14, 20, 3, 9, 15, 21 - punpckldq m1, m2 ; m1 = 4, 10, 16, 22, 5, 11, 17, 23 - movq [dstq ], m0 - movhps [dstq+dst1q], m0 - movq [dstq+dst2q], m3 - movhps [dstq+dst3q], m3 - movq [dstq+dst4q], m1 - movhps [dstq+dst5q], m1 - add srcq, mmsize*3 - add dstq, mmsize/2 - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16_TO_S16P_6CH -INIT_XMM ssse3 -CONV_S16_TO_S16P_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16_TO_S16P_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16_to_fltp_2ch(float *const *dst, int16_t *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16_TO_FLTP_2CH 0 -cglobal conv_s16_to_fltp_2ch, 3,4,5, dst0, src, len, dst1 - lea lenq, [4*lend] - mov dst1q, [dst0q+gprsize] - mov dst0q, [dst0q ] - add srcq, lenq - add dst0q, lenq - add dst1q, lenq - neg lenq - mova m3, [pf_s32_inv_scale] - mova m4, [pw_zero_even] -.loop: - mova m1, [srcq+lenq] - pslld m0, m1, 16 - pand m1, m4 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - mulps m0, m0, m3 - mulps m1, m1, m3 - mova [dst0q+lenq], m0 - mova [dst1q+lenq], m1 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16_TO_FLTP_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16_TO_FLTP_2CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_s16_to_fltp_6ch(float *const *dst, int16_t *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_S16_TO_FLTP_6CH 0 -%if ARCH_X86_64 -cglobal conv_s16_to_fltp_6ch, 3,8,7, dst, src, len, dst1, dst2, dst3, dst4, dst5 -%else -cglobal conv_s16_to_fltp_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5 -%define lend dword r2m -%endif - mov dst1q, [dstq+ gprsize] - mov dst2q, [dstq+2*gprsize] - mov dst3q, [dstq+3*gprsize] - mov dst4q, [dstq+4*gprsize] - mov dst5q, [dstq+5*gprsize] - mov dstq, [dstq ] - sub dst1q, dstq - sub dst2q, dstq - sub dst3q, dstq - sub dst4q, dstq - sub dst5q, dstq - mova m6, [pf_s16_inv_scale] -.loop: - mova m0, [srcq+0*mmsize] ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 - mova m3, [srcq+1*mmsize] ; m3 = 8, 9, 10, 11, 12, 13, 14, 15 - mova m2, [srcq+2*mmsize] ; m2 = 16, 17, 18, 19, 20, 21, 22, 23 - PALIGNR m1, m3, m0, 12, m4 ; m1 = 6, 7, 8, 9, 10, 11, x, x - shufps m3, m2, q1032 ; m3 = 12, 13, 14, 15, 16, 17, 18, 19 - psrldq m2, 4 ; m2 = 18, 19, 20, 21, 22, 23, x, x - SBUTTERFLY2 wd, 0, 1, 4 ; m0 = 0, 6, 1, 7, 2, 8, 3, 9 - ; m1 = 4, 10, 5, 11, x, x, x, x - SBUTTERFLY2 wd, 3, 2, 4 ; m3 = 12, 18, 13, 19, 14, 20, 15, 21 - ; m2 = 16, 22, 17, 23, x, x, x, x - SBUTTERFLY2 dq, 0, 3, 4 ; m0 = 0, 6, 12, 18, 1, 7, 13, 19 - ; m3 = 2, 8, 14, 20, 3, 9, 15, 21 - punpckldq m1, m2 ; m1 = 4, 10, 16, 22, 5, 11, 17, 23 - S16_TO_S32_SX 0, 2 ; m0 = 0, 6, 12, 18 - ; m2 = 1, 7, 13, 19 - S16_TO_S32_SX 3, 4 ; m3 = 2, 8, 14, 20 - ; m4 = 3, 9, 15, 21 - S16_TO_S32_SX 1, 5 ; m1 = 4, 10, 16, 22 - ; m5 = 5, 11, 17, 23 - SWAP 1,2,3,4 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - cvtdq2ps m2, m2 - cvtdq2ps m3, m3 - cvtdq2ps m4, m4 - cvtdq2ps m5, m5 - mulps m0, m6 - mulps m1, m6 - mulps m2, m6 - mulps m3, m6 - mulps m4, m6 - mulps m5, m6 - mova [dstq ], m0 - mova [dstq+dst1q], m1 - mova [dstq+dst2q], m2 - mova [dstq+dst3q], m3 - mova [dstq+dst4q], m4 - mova [dstq+dst5q], m5 - add srcq, mmsize*3 - add dstq, mmsize - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_S16_TO_FLTP_6CH -INIT_XMM ssse3 -CONV_S16_TO_FLTP_6CH -INIT_XMM sse4 -CONV_S16_TO_FLTP_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_S16_TO_FLTP_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_flt_to_s16p_2ch(int16_t *const *dst, float *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLT_TO_S16P_2CH 0 -cglobal conv_flt_to_s16p_2ch, 3,4,6, dst0, src, len, dst1 - lea lenq, [2*lend] - mov dst1q, [dst0q+gprsize] - mov dst0q, [dst0q ] - lea srcq, [srcq+4*lenq] - add dst0q, lenq - add dst1q, lenq - neg lenq - mova m5, [pf_s16_scale] -.loop: - mova m0, [srcq+4*lenq ] - mova m1, [srcq+4*lenq+ mmsize] - mova m2, [srcq+4*lenq+2*mmsize] - mova m3, [srcq+4*lenq+3*mmsize] - DEINT2_PS 0, 1, 4 - DEINT2_PS 2, 3, 4 - mulps m0, m0, m5 - mulps m1, m1, m5 - mulps m2, m2, m5 - mulps m3, m3, m5 - cvtps2dq m0, m0 - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - packssdw m0, m2 - packssdw m1, m3 - mova [dst0q+lenq], m0 - mova [dst1q+lenq], m1 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_FLT_TO_S16P_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLT_TO_S16P_2CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_flt_to_s16p_6ch(int16_t *const *dst, float *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLT_TO_S16P_6CH 0 -%if ARCH_X86_64 -cglobal conv_flt_to_s16p_6ch, 3,8,7, dst, src, len, dst1, dst2, dst3, dst4, dst5 -%else -cglobal conv_flt_to_s16p_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5 -%define lend dword r2m -%endif - mov dst1q, [dstq+ gprsize] - mov dst2q, [dstq+2*gprsize] - mov dst3q, [dstq+3*gprsize] - mov dst4q, [dstq+4*gprsize] - mov dst5q, [dstq+5*gprsize] - mov dstq, [dstq ] - sub dst1q, dstq - sub dst2q, dstq - sub dst3q, dstq - sub dst4q, dstq - sub dst5q, dstq - mova m6, [pf_s16_scale] -.loop: - mulps m0, m6, [srcq+0*mmsize] - mulps m3, m6, [srcq+1*mmsize] - mulps m1, m6, [srcq+2*mmsize] - mulps m4, m6, [srcq+3*mmsize] - mulps m2, m6, [srcq+4*mmsize] - mulps m5, m6, [srcq+5*mmsize] - cvtps2dq m0, m0 - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - cvtps2dq m4, m4 - cvtps2dq m5, m5 - packssdw m0, m3 ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 - packssdw m1, m4 ; m1 = 8, 9, 10, 11, 12, 13, 14, 15 - packssdw m2, m5 ; m2 = 16, 17, 18, 19, 20, 21, 22, 23 - PALIGNR m3, m1, m0, 12, m4 ; m3 = 6, 7, 8, 9, 10, 11, x, x - shufps m1, m2, q1032 ; m1 = 12, 13, 14, 15, 16, 17, 18, 19 - psrldq m2, 4 ; m2 = 18, 19, 20, 21, 22, 23, x, x - SBUTTERFLY2 wd, 0, 3, 4 ; m0 = 0, 6, 1, 7, 2, 8, 3, 9 - ; m3 = 4, 10, 5, 11, x, x, x, x - SBUTTERFLY2 wd, 1, 2, 4 ; m1 = 12, 18, 13, 19, 14, 20, 15, 21 - ; m2 = 16, 22, 17, 23, x, x, x, x - SBUTTERFLY2 dq, 0, 1, 4 ; m0 = 0, 6, 12, 18, 1, 7, 13, 19 - ; m1 = 2, 8, 14, 20, 3, 9, 15, 21 - punpckldq m3, m2 ; m3 = 4, 10, 16, 22, 5, 11, 17, 23 - movq [dstq ], m0 - movhps [dstq+dst1q], m0 - movq [dstq+dst2q], m1 - movhps [dstq+dst3q], m1 - movq [dstq+dst4q], m3 - movhps [dstq+dst5q], m3 - add srcq, mmsize*6 - add dstq, mmsize/2 - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_FLT_TO_S16P_6CH -INIT_XMM ssse3 -CONV_FLT_TO_S16P_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLT_TO_S16P_6CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_flt_to_fltp_2ch(float *const *dst, float *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLT_TO_FLTP_2CH 0 -cglobal conv_flt_to_fltp_2ch, 3,4,3, dst0, src, len, dst1 - lea lenq, [4*lend] - mov dst1q, [dst0q+gprsize] - mov dst0q, [dst0q ] - lea srcq, [srcq+2*lenq] - add dst0q, lenq - add dst1q, lenq - neg lenq -.loop: - mova m0, [srcq+2*lenq ] - mova m1, [srcq+2*lenq+mmsize] - DEINT2_PS 0, 1, 2 - mova [dst0q+lenq], m0 - mova [dst1q+lenq], m1 - add lenq, mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse -CONV_FLT_TO_FLTP_2CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLT_TO_FLTP_2CH -%endif - -;------------------------------------------------------------------------------ -; void ff_conv_flt_to_fltp_6ch(float *const *dst, float *src, int len, -; int channels); -;------------------------------------------------------------------------------ - -%macro CONV_FLT_TO_FLTP_6CH 0 -%if ARCH_X86_64 -cglobal conv_flt_to_fltp_6ch, 3,8,7, dst, src, len, dst1, dst2, dst3, dst4, dst5 -%else -cglobal conv_flt_to_fltp_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5 -%define lend dword r2m -%endif - mov dst1q, [dstq+ gprsize] - mov dst2q, [dstq+2*gprsize] - mov dst3q, [dstq+3*gprsize] - mov dst4q, [dstq+4*gprsize] - mov dst5q, [dstq+5*gprsize] - mov dstq, [dstq ] - sub dst1q, dstq - sub dst2q, dstq - sub dst3q, dstq - sub dst4q, dstq - sub dst5q, dstq -.loop: - mova m0, [srcq+0*mmsize] ; m0 = 0, 1, 2, 3 - mova m1, [srcq+1*mmsize] ; m1 = 4, 5, 6, 7 - mova m2, [srcq+2*mmsize] ; m2 = 8, 9, 10, 11 - mova m3, [srcq+3*mmsize] ; m3 = 12, 13, 14, 15 - mova m4, [srcq+4*mmsize] ; m4 = 16, 17, 18, 19 - mova m5, [srcq+5*mmsize] ; m5 = 20, 21, 22, 23 - - SBUTTERFLY2 dq, 0, 3, 6 ; m0 = 0, 12, 1, 13 - ; m3 = 2, 14, 3, 15 - SBUTTERFLY2 dq, 1, 4, 6 ; m1 = 4, 16, 5, 17 - ; m4 = 6, 18, 7, 19 - SBUTTERFLY2 dq, 2, 5, 6 ; m2 = 8, 20, 9, 21 - ; m5 = 10, 22, 11, 23 - SBUTTERFLY2 dq, 0, 4, 6 ; m0 = 0, 6, 12, 18 - ; m4 = 1, 7, 13, 19 - SBUTTERFLY2 dq, 3, 2, 6 ; m3 = 2, 8, 14, 20 - ; m2 = 3, 9, 15, 21 - SBUTTERFLY2 dq, 1, 5, 6 ; m1 = 4, 10, 16, 22 - ; m5 = 5, 11, 17, 23 - mova [dstq ], m0 - mova [dstq+dst1q], m4 - mova [dstq+dst2q], m3 - mova [dstq+dst3q], m2 - mova [dstq+dst4q], m1 - mova [dstq+dst5q], m5 - add srcq, mmsize*6 - add dstq, mmsize - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -CONV_FLT_TO_FLTP_6CH -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -CONV_FLT_TO_FLTP_6CH -%endif diff --git a/libavresample/x86/audio_mix.asm b/libavresample/x86/audio_mix.asm deleted file mode 100644 index fe27d6a6c9..0000000000 --- a/libavresample/x86/audio_mix.asm +++ /dev/null @@ -1,511 +0,0 @@ -;****************************************************************************** -;* x86 optimized channel mixing -;* Copyright (c) 2012 Justin Ruggles -;* -;* 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 "libavutil/x86/x86util.asm" -%include "util.asm" - -SECTION .text - -;----------------------------------------------------------------------------- -; void ff_mix_2_to_1_fltp_flt(float **src, float **matrix, int len, -; int out_ch, int in_ch); -;----------------------------------------------------------------------------- - -%macro MIX_2_TO_1_FLTP_FLT 0 -cglobal mix_2_to_1_fltp_flt, 3,4,6, src, matrix, len, src1 - mov src1q, [srcq+gprsize] - mov srcq, [srcq ] - sub src1q, srcq - mov matrixq, [matrixq ] - VBROADCASTSS m4, [matrixq ] - VBROADCASTSS m5, [matrixq+4] - ALIGN 16 -.loop: - mulps m0, m4, [srcq ] - mulps m1, m5, [srcq+src1q ] - mulps m2, m4, [srcq+ mmsize] - mulps m3, m5, [srcq+src1q+mmsize] - addps m0, m0, m1 - addps m2, m2, m3 - mova [srcq ], m0 - mova [srcq+mmsize], m2 - add srcq, mmsize*2 - sub lend, mmsize*2/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse -MIX_2_TO_1_FLTP_FLT -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -MIX_2_TO_1_FLTP_FLT -%endif - -;----------------------------------------------------------------------------- -; void ff_mix_2_to_1_s16p_flt(int16_t **src, float **matrix, int len, -; int out_ch, int in_ch); -;----------------------------------------------------------------------------- - -%macro MIX_2_TO_1_S16P_FLT 0 -cglobal mix_2_to_1_s16p_flt, 3,4,6, src, matrix, len, src1 - mov src1q, [srcq+gprsize] - mov srcq, [srcq] - sub src1q, srcq - mov matrixq, [matrixq ] - VBROADCASTSS m4, [matrixq ] - VBROADCASTSS m5, [matrixq+4] - ALIGN 16 -.loop: - mova m0, [srcq ] - mova m2, [srcq+src1q] - S16_TO_S32_SX 0, 1 - S16_TO_S32_SX 2, 3 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - cvtdq2ps m2, m2 - cvtdq2ps m3, m3 - mulps m0, m4 - mulps m1, m4 - mulps m2, m5 - mulps m3, m5 - addps m0, m2 - addps m1, m3 - cvtps2dq m0, m0 - cvtps2dq m1, m1 - packssdw m0, m1 - mova [srcq], m0 - add srcq, mmsize - sub lend, mmsize/2 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -MIX_2_TO_1_S16P_FLT -INIT_XMM sse4 -MIX_2_TO_1_S16P_FLT - -;----------------------------------------------------------------------------- -; void ff_mix_2_to_1_s16p_q8(int16_t **src, int16_t **matrix, int len, -; int out_ch, int in_ch); -;----------------------------------------------------------------------------- - -INIT_XMM sse2 -cglobal mix_2_to_1_s16p_q8, 3,4,6, src, matrix, len, src1 - mov src1q, [srcq+gprsize] - mov srcq, [srcq] - sub src1q, srcq - mov matrixq, [matrixq] - movd m4, [matrixq] - movd m5, [matrixq] - SPLATW m4, m4, 0 - SPLATW m5, m5, 1 - pxor m0, m0 - punpcklwd m4, m0 - punpcklwd m5, m0 - ALIGN 16 -.loop: - mova m0, [srcq ] - mova m2, [srcq+src1q] - punpckhwd m1, m0, m0 - punpcklwd m0, m0 - punpckhwd m3, m2, m2 - punpcklwd m2, m2 - pmaddwd m0, m4 - pmaddwd m1, m4 - pmaddwd m2, m5 - pmaddwd m3, m5 - paddd m0, m2 - paddd m1, m3 - psrad m0, 8 - psrad m1, 8 - packssdw m0, m1 - mova [srcq], m0 - add srcq, mmsize - sub lend, mmsize/2 - jg .loop - REP_RET - -;----------------------------------------------------------------------------- -; void ff_mix_1_to_2_fltp_flt(float **src, float **matrix, int len, -; int out_ch, int in_ch); -;----------------------------------------------------------------------------- - -%macro MIX_1_TO_2_FLTP_FLT 0 -cglobal mix_1_to_2_fltp_flt, 3,5,4, src0, matrix0, len, src1, matrix1 - mov src1q, [src0q+gprsize] - mov src0q, [src0q] - sub src1q, src0q - mov matrix1q, [matrix0q+gprsize] - mov matrix0q, [matrix0q] - VBROADCASTSS m2, [matrix0q] - VBROADCASTSS m3, [matrix1q] - ALIGN 16 -.loop: - mova m0, [src0q] - mulps m1, m0, m3 - mulps m0, m0, m2 - mova [src0q ], m0 - mova [src0q+src1q], m1 - add src0q, mmsize - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse -MIX_1_TO_2_FLTP_FLT -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -MIX_1_TO_2_FLTP_FLT -%endif - -;----------------------------------------------------------------------------- -; void ff_mix_1_to_2_s16p_flt(int16_t **src, float **matrix, int len, -; int out_ch, int in_ch); -;----------------------------------------------------------------------------- - -%macro MIX_1_TO_2_S16P_FLT 0 -cglobal mix_1_to_2_s16p_flt, 3,5,6, src0, matrix0, len, src1, matrix1 - mov src1q, [src0q+gprsize] - mov src0q, [src0q] - sub src1q, src0q - mov matrix1q, [matrix0q+gprsize] - mov matrix0q, [matrix0q] - VBROADCASTSS m4, [matrix0q] - VBROADCASTSS m5, [matrix1q] - ALIGN 16 -.loop: - mova m0, [src0q] - S16_TO_S32_SX 0, 2 - cvtdq2ps m0, m0 - cvtdq2ps m2, m2 - mulps m1, m0, m5 - mulps m0, m0, m4 - mulps m3, m2, m5 - mulps m2, m2, m4 - cvtps2dq m0, m0 - cvtps2dq m1, m1 - cvtps2dq m2, m2 - cvtps2dq m3, m3 - packssdw m0, m2 - packssdw m1, m3 - mova [src0q ], m0 - mova [src0q+src1q], m1 - add src0q, mmsize - sub lend, mmsize/2 - jg .loop - REP_RET -%endmacro - -INIT_XMM sse2 -MIX_1_TO_2_S16P_FLT -INIT_XMM sse4 -MIX_1_TO_2_S16P_FLT -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -MIX_1_TO_2_S16P_FLT -%endif - -;----------------------------------------------------------------------------- -; void ff_mix_3_8_to_1_2_fltp/s16p_flt(float/int16_t **src, float **matrix, -; int len, int out_ch, int in_ch); -;----------------------------------------------------------------------------- - -%macro MIX_3_8_TO_1_2_FLT 3 ; %1 = in channels, %2 = out channels, %3 = s16p or fltp -; define some names to make the code clearer -%assign in_channels %1 -%assign out_channels %2 -%assign stereo out_channels - 1 -%ifidn %3, s16p - %assign is_s16 1 -%else - %assign is_s16 0 -%endif - -; determine how many matrix elements must go on the stack vs. mmregs -%assign matrix_elements in_channels * out_channels -%if is_s16 - %if stereo - %assign needed_mmregs 7 - %else - %assign needed_mmregs 5 - %endif -%else - %if stereo - %assign needed_mmregs 4 - %else - %assign needed_mmregs 3 - %endif -%endif -%assign matrix_elements_mm num_mmregs - needed_mmregs -%if matrix_elements < matrix_elements_mm - %assign matrix_elements_mm matrix_elements -%endif -%if matrix_elements_mm < matrix_elements - %assign matrix_elements_stack matrix_elements - matrix_elements_mm -%else - %assign matrix_elements_stack 0 -%endif -%assign matrix_stack_size matrix_elements_stack * mmsize - -%assign needed_stack_size -1 * matrix_stack_size -%if ARCH_X86_32 && in_channels >= 7 -%assign needed_stack_size needed_stack_size - 16 -%endif - -cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, needed_stack_size, src0, src1, len, src2, src3, src4, src5, src6, src7 - -; define src pointers on stack if needed -%if matrix_elements_stack > 0 && ARCH_X86_32 && in_channels >= 7 - %define src5m [rsp+matrix_stack_size+0] - %define src6m [rsp+matrix_stack_size+4] - %define src7m [rsp+matrix_stack_size+8] -%endif - -; load matrix pointers -%define matrix0q r1q -%define matrix1q r3q -%if stereo - mov matrix1q, [matrix0q+gprsize] -%endif - mov matrix0q, [matrix0q] - -; define matrix coeff names -%assign %%i 0 -%assign %%j needed_mmregs -%rep in_channels - %if %%i >= matrix_elements_mm - CAT_XDEFINE mx_stack_0_, %%i, 1 - CAT_XDEFINE mx_0_, %%i, [rsp+(%%i-matrix_elements_mm)*mmsize] - %else - CAT_XDEFINE mx_stack_0_, %%i, 0 - CAT_XDEFINE mx_0_, %%i, m %+ %%j - %assign %%j %%j+1 - %endif - %assign %%i %%i+1 -%endrep -%if stereo -%assign %%i 0 -%rep in_channels - %if in_channels + %%i >= matrix_elements_mm - CAT_XDEFINE mx_stack_1_, %%i, 1 - CAT_XDEFINE mx_1_, %%i, [rsp+(in_channels+%%i-matrix_elements_mm)*mmsize] - %else - CAT_XDEFINE mx_stack_1_, %%i, 0 - CAT_XDEFINE mx_1_, %%i, m %+ %%j - %assign %%j %%j+1 - %endif - %assign %%i %%i+1 -%endrep -%endif - -; load/splat matrix coeffs -%assign %%i 0 -%rep in_channels - %if mx_stack_0_ %+ %%i - VBROADCASTSS m0, [matrix0q+4*%%i] - mova mx_0_ %+ %%i, m0 - %else - VBROADCASTSS mx_0_ %+ %%i, [matrix0q+4*%%i] - %endif - %if stereo - %if mx_stack_1_ %+ %%i - VBROADCASTSS m0, [matrix1q+4*%%i] - mova mx_1_ %+ %%i, m0 - %else - VBROADCASTSS mx_1_ %+ %%i, [matrix1q+4*%%i] - %endif - %endif - %assign %%i %%i+1 -%endrep - -; load channel pointers to registers as offsets from the first channel pointer -%if ARCH_X86_64 - movsxd lenq, r2d -%endif - shl lenq, 2-is_s16 -%assign %%i 1 -%rep (in_channels - 1) - %if ARCH_X86_32 && in_channels >= 7 && %%i >= 5 - mov src5q, [src0q+%%i*gprsize] - add src5q, lenq - mov src %+ %%i %+ m, src5q - %else - mov src %+ %%i %+ q, [src0q+%%i*gprsize] - add src %+ %%i %+ q, lenq - %endif - %assign %%i %%i+1 -%endrep - mov src0q, [src0q] - add src0q, lenq - neg lenq -.loop: -; for x86-32 with 7-8 channels we do not have enough gp registers for all src -; pointers, so we have to load some of them from the stack each time -%define copy_src_from_stack ARCH_X86_32 && in_channels >= 7 && %%i >= 5 -%if is_s16 - ; mix with s16p input - mova m0, [src0q+lenq] - S16_TO_S32_SX 0, 1 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - %if stereo - mulps m2, m0, mx_1_0 - mulps m3, m1, mx_1_0 - %endif - mulps m0, m0, mx_0_0 - mulps m1, m1, mx_0_0 -%assign %%i 1 -%rep (in_channels - 1) - %if copy_src_from_stack - %define src_ptr src5q - %else - %define src_ptr src %+ %%i %+ q - %endif - %if stereo - %if copy_src_from_stack - mov src_ptr, src %+ %%i %+ m - %endif - mova m4, [src_ptr+lenq] - S16_TO_S32_SX 4, 5 - cvtdq2ps m4, m4 - cvtdq2ps m5, m5 - FMULADD_PS m2, m4, mx_1_ %+ %%i, m2, m6 - FMULADD_PS m3, m5, mx_1_ %+ %%i, m3, m6 - FMULADD_PS m0, m4, mx_0_ %+ %%i, m0, m4 - FMULADD_PS m1, m5, mx_0_ %+ %%i, m1, m5 - %else - %if copy_src_from_stack - mov src_ptr, src %+ %%i %+ m - %endif - mova m2, [src_ptr+lenq] - S16_TO_S32_SX 2, 3 - cvtdq2ps m2, m2 - cvtdq2ps m3, m3 - FMULADD_PS m0, m2, mx_0_ %+ %%i, m0, m4 - FMULADD_PS m1, m3, mx_0_ %+ %%i, m1, m4 - %endif - %assign %%i %%i+1 -%endrep - %if stereo - cvtps2dq m2, m2 - cvtps2dq m3, m3 - packssdw m2, m3 - mova [src1q+lenq], m2 - %endif - cvtps2dq m0, m0 - cvtps2dq m1, m1 - packssdw m0, m1 - mova [src0q+lenq], m0 -%else - ; mix with fltp input - %if stereo || mx_stack_0_0 - mova m0, [src0q+lenq] - %endif - %if stereo - mulps m1, m0, mx_1_0 - %endif - %if stereo || mx_stack_0_0 - mulps m0, m0, mx_0_0 - %else - mulps m0, mx_0_0, [src0q+lenq] - %endif -%assign %%i 1 -%rep (in_channels - 1) - %if copy_src_from_stack - %define src_ptr src5q - mov src_ptr, src %+ %%i %+ m - %else - %define src_ptr src %+ %%i %+ q - %endif - ; avoid extra load for mono if matrix is in a mm register - %if stereo || mx_stack_0_ %+ %%i - mova m2, [src_ptr+lenq] - %endif - %if stereo - FMULADD_PS m1, m2, mx_1_ %+ %%i, m1, m3 - %endif - %if stereo || mx_stack_0_ %+ %%i - FMULADD_PS m0, m2, mx_0_ %+ %%i, m0, m2 - %else - FMULADD_PS m0, mx_0_ %+ %%i, [src_ptr+lenq], m0, m1 - %endif - %assign %%i %%i+1 -%endrep - mova [src0q+lenq], m0 - %if stereo - mova [src1q+lenq], m1 - %endif -%endif - - add lenq, mmsize - jl .loop -; zero ymm high halves -%if mmsize == 32 - vzeroupper -%endif - RET -%endmacro - -%macro MIX_3_8_TO_1_2_FLT_FUNCS 0 -%assign %%i 3 -%rep 6 - INIT_XMM sse - MIX_3_8_TO_1_2_FLT %%i, 1, fltp - MIX_3_8_TO_1_2_FLT %%i, 2, fltp - INIT_XMM sse2 - MIX_3_8_TO_1_2_FLT %%i, 1, s16p - MIX_3_8_TO_1_2_FLT %%i, 2, s16p - INIT_XMM sse4 - MIX_3_8_TO_1_2_FLT %%i, 1, s16p - MIX_3_8_TO_1_2_FLT %%i, 2, s16p - ; do not use ymm AVX or FMA4 in x86-32 for 6 or more channels due to stack alignment issues - %if HAVE_AVX_EXTERNAL - %if ARCH_X86_64 || %%i < 6 - INIT_YMM avx - %else - INIT_XMM avx - %endif - MIX_3_8_TO_1_2_FLT %%i, 1, fltp - MIX_3_8_TO_1_2_FLT %%i, 2, fltp - INIT_XMM avx - MIX_3_8_TO_1_2_FLT %%i, 1, s16p - MIX_3_8_TO_1_2_FLT %%i, 2, s16p - %endif - %if HAVE_FMA4_EXTERNAL - %if ARCH_X86_64 || %%i < 6 - INIT_YMM fma4 - %else - INIT_XMM fma4 - %endif - MIX_3_8_TO_1_2_FLT %%i, 1, fltp - MIX_3_8_TO_1_2_FLT %%i, 2, fltp - INIT_XMM fma4 - MIX_3_8_TO_1_2_FLT %%i, 1, s16p - MIX_3_8_TO_1_2_FLT %%i, 2, s16p - %endif - %assign %%i %%i+1 -%endrep -%endmacro - -MIX_3_8_TO_1_2_FLT_FUNCS diff --git a/libavresample/x86/dither.asm b/libavresample/x86/dither.asm deleted file mode 100644 index d677c7179a..0000000000 --- a/libavresample/x86/dither.asm +++ /dev/null @@ -1,117 +0,0 @@ -;****************************************************************************** -;* x86 optimized dithering format conversion -;* Copyright (c) 2012 Justin Ruggles -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 - -; 1.0f / (2.0f * INT32_MAX) -pf_dither_scale: times 8 dd 2.32830643762e-10 - -pf_s16_scale: times 4 dd 32753.0 - -SECTION .text - -;------------------------------------------------------------------------------ -; void ff_quantize(int16_t *dst, float *src, float *dither, int len); -;------------------------------------------------------------------------------ - -INIT_XMM sse2 -cglobal quantize, 4,4,3, dst, src, dither, len - lea lenq, [2*lend] - add dstq, lenq - lea srcq, [srcq+2*lenq] - lea ditherq, [ditherq+2*lenq] - neg lenq - mova m2, [pf_s16_scale] -.loop: - mulps m0, m2, [srcq+2*lenq] - mulps m1, m2, [srcq+2*lenq+mmsize] - addps m0, [ditherq+2*lenq] - addps m1, [ditherq+2*lenq+mmsize] - cvtps2dq m0, m0 - cvtps2dq m1, m1 - packssdw m0, m1 - mova [dstq+lenq], m0 - add lenq, mmsize - jl .loop - REP_RET - -;------------------------------------------------------------------------------ -; void ff_dither_int_to_float_rectangular(float *dst, int *src, int len) -;------------------------------------------------------------------------------ - -%macro DITHER_INT_TO_FLOAT_RECTANGULAR 0 -cglobal dither_int_to_float_rectangular, 3,3,3, dst, src, len - lea lenq, [4*lend] - add srcq, lenq - add dstq, lenq - neg lenq - mova m0, [pf_dither_scale] -.loop: - cvtdq2ps m1, [srcq+lenq] - cvtdq2ps m2, [srcq+lenq+mmsize] - mulps m1, m1, m0 - mulps m2, m2, m0 - mova [dstq+lenq], m1 - mova [dstq+lenq+mmsize], m2 - add lenq, 2*mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -DITHER_INT_TO_FLOAT_RECTANGULAR -INIT_YMM avx -DITHER_INT_TO_FLOAT_RECTANGULAR - -;------------------------------------------------------------------------------ -; void ff_dither_int_to_float_triangular(float *dst, int *src0, int len) -;------------------------------------------------------------------------------ - -%macro DITHER_INT_TO_FLOAT_TRIANGULAR 0 -cglobal dither_int_to_float_triangular, 3,4,5, dst, src0, len, src1 - lea lenq, [4*lend] - lea src1q, [src0q+2*lenq] - add src0q, lenq - add dstq, lenq - neg lenq - mova m0, [pf_dither_scale] -.loop: - cvtdq2ps m1, [src0q+lenq] - cvtdq2ps m2, [src0q+lenq+mmsize] - cvtdq2ps m3, [src1q+lenq] - cvtdq2ps m4, [src1q+lenq+mmsize] - addps m1, m1, m3 - addps m2, m2, m4 - mulps m1, m1, m0 - mulps m2, m2, m0 - mova [dstq+lenq], m1 - mova [dstq+lenq+mmsize], m2 - add lenq, 2*mmsize - jl .loop - REP_RET -%endmacro - -INIT_XMM sse2 -DITHER_INT_TO_FLOAT_TRIANGULAR -INIT_YMM avx -DITHER_INT_TO_FLOAT_TRIANGULAR diff --git a/libavresample/x86/util.asm b/libavresample/x86/util.asm deleted file mode 100644 index 187a4a21ba..0000000000 --- a/libavresample/x86/util.asm +++ /dev/null @@ -1,41 +0,0 @@ -;****************************************************************************** -;* x86 utility macros for libavresample -;* Copyright (c) 2012 Justin Ruggles -;* -;* 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 -;****************************************************************************** - -%macro S16_TO_S32_SX 2 ; src/low dst, high dst -%if cpuflag(sse4) - pmovsxwd m%2, m%1 - psrldq m%1, 8 - pmovsxwd m%1, m%1 - SWAP %1, %2 -%else - mova m%2, m%1 - punpckhwd m%2, m%2 - punpcklwd m%1, m%1 - psrad m%2, 16 - psrad m%1, 16 -%endif -%endmacro - -%macro DEINT2_PS 3 ; src0/even dst, src1/odd dst, temp - shufps m%3, m%1, m%2, q3131 - shufps m%1, m%2, q2020 - SWAP %2,%3 -%endmacro diff --git a/libavutil/.gitignore b/libavutil/.gitignore deleted file mode 100644 index 4dc7466772..0000000000 --- a/libavutil/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/avconfig.h -/ffversion.h diff --git a/libavutil/tests/.gitignore b/libavutil/tests/.gitignore deleted file mode 100644 index 9d90827954..0000000000 --- a/libavutil/tests/.gitignore +++ /dev/null @@ -1,51 +0,0 @@ -/adler32 -/aes -/aes_ctr -/atomic -/audio_fifo -/avstring -/base64 -/blowfish -/bprint -/camellia -/cast5 -/color_utils -/cpu -/cpu_init -/crc -/des -/dict -/display -/error -/encryption_info -/eval -/fifo -/file -/hash -/hmac -/hwdevice -/imgutils -/integer -/lfg -/lls -/log -/lzo -/md5 -/murmur3 -/opt -/parseutils -/pca -/pixdesc -/pixelutils -/pixfmt_best -/random_seed -/rational -/ripemd -/sha -/sha512 -/softfloat -/tea -/tree -/twofish -/utf8 -/xtea diff --git a/libavutil/x86/cpuid.asm b/libavutil/x86/cpuid.asm deleted file mode 100644 index c3f7866ec7..0000000000 --- a/libavutil/x86/cpuid.asm +++ /dev/null @@ -1,91 +0,0 @@ -;***************************************************************************** -;* Copyright (C) 2005-2010 x264 project -;* -;* Authors: Loren Merritt -;* Fiona Glaser -;* -;* 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 "x86util.asm" - -SECTION .text - -;----------------------------------------------------------------------------- -; void ff_cpu_cpuid(int index, int *eax, int *ebx, int *ecx, int *edx) -;----------------------------------------------------------------------------- -cglobal cpu_cpuid, 5,7 - push rbx - push r4 - push r3 - push r2 - push r1 - mov eax, r0d - xor ecx, ecx - cpuid - pop r4 - mov [r4], eax - pop r4 - mov [r4], ebx - pop r4 - mov [r4], ecx - pop r4 - mov [r4], edx - pop rbx - RET - -;----------------------------------------------------------------------------- -; void ff_cpu_xgetbv(int op, int *eax, int *edx) -;----------------------------------------------------------------------------- -cglobal cpu_xgetbv, 3,7 - push r2 - push r1 - mov ecx, r0d - xgetbv - pop r4 - mov [r4], eax - pop r4 - mov [r4], edx - RET - -%if ARCH_X86_64 == 0 -;----------------------------------------------------------------------------- -; int ff_cpu_cpuid_test(void) -; return 0 if unsupported -;----------------------------------------------------------------------------- -cglobal cpu_cpuid_test - pushfd - push ebx - push ebp - push esi - push edi - pushfd - pop eax - mov ebx, eax - xor eax, 0x200000 - push eax - popfd - pushfd - pop eax - xor eax, ebx - pop edi - pop esi - pop ebp - pop ebx - popfd - ret -%endif diff --git a/libavutil/x86/emms.asm b/libavutil/x86/emms.asm deleted file mode 100644 index 8611762d73..0000000000 --- a/libavutil/x86/emms.asm +++ /dev/null @@ -1,30 +0,0 @@ -;***************************************************************************** -;* Copyright (C) 2013 Martin Storsjo -;* -;* 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 "x86util.asm" - -SECTION .text - -;----------------------------------------------------------------------------- -; void avpriv_emms_asm(void) -;----------------------------------------------------------------------------- -cvisible emms_asm, 0, 0 - emms - RET diff --git a/libavutil/x86/fixed_dsp.asm b/libavutil/x86/fixed_dsp.asm deleted file mode 100644 index 979dd5c334..0000000000 --- a/libavutil/x86/fixed_dsp.asm +++ /dev/null @@ -1,48 +0,0 @@ -;***************************************************************************** -;* x86-optimized Float DSP functions -;* -;* Copyright 2016 James Almer -;* -;* 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 "x86util.asm" - -SECTION .text - -;----------------------------------------------------------------------------- -; void ff_butterflies_fixed(float *src0, float *src1, int len); -;----------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal butterflies_fixed, 3,3,3, src0, src1, len - shl lend, 2 - add src0q, lenq - add src1q, lenq - neg lenq - -align 16 -.loop: - mova m0, [src0q + lenq] - mova m1, [src1q + lenq] - mova m2, m0 - paddd m0, m1 - psubd m2, m1 - mova [src0q + lenq], m0 - mova [src1q + lenq], m2 - add lenq, mmsize - jl .loop - RET diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm deleted file mode 100644 index 517fd63638..0000000000 --- a/libavutil/x86/float_dsp.asm +++ /dev/null @@ -1,484 +0,0 @@ -;***************************************************************************** -;* x86-optimized Float DSP functions -;* -;* Copyright 2006 Loren Merritt -;* -;* 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 "x86util.asm" - -SECTION_RODATA 32 -pd_reverse: dd 7, 6, 5, 4, 3, 2, 1, 0 - -SECTION .text - -;----------------------------------------------------------------------------- -; void vector_fmul(float *dst, const float *src0, const float *src1, int len) -;----------------------------------------------------------------------------- -%macro VECTOR_FMUL 0 -cglobal vector_fmul, 4,4,2, dst, src0, src1, len - lea lenq, [lend*4 - 64] -ALIGN 16 -.loop: -%assign a 0 -%rep 32/mmsize - mova m0, [src0q + lenq + (a+0)*mmsize] - mova m1, [src0q + lenq + (a+1)*mmsize] - mulps m0, m0, [src1q + lenq + (a+0)*mmsize] - mulps m1, m1, [src1q + lenq + (a+1)*mmsize] - mova [dstq + lenq + (a+0)*mmsize], m0 - mova [dstq + lenq + (a+1)*mmsize], m1 -%assign a a+2 -%endrep - - sub lenq, 64 - jge .loop - REP_RET -%endmacro - -INIT_XMM sse -VECTOR_FMUL -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_FMUL -%endif - -;----------------------------------------------------------------------------- -; void vector_dmul(double *dst, const double *src0, const double *src1, int len) -;----------------------------------------------------------------------------- -%macro VECTOR_DMUL 0 -cglobal vector_dmul, 4,4,4, dst, src0, src1, len - lea lend, [lenq*8 - mmsize*4] -ALIGN 16 -.loop: - movaps m0, [src0q + lenq + 0*mmsize] - movaps m1, [src0q + lenq + 1*mmsize] - movaps m2, [src0q + lenq + 2*mmsize] - movaps m3, [src0q + lenq + 3*mmsize] - mulpd m0, m0, [src1q + lenq + 0*mmsize] - mulpd m1, m1, [src1q + lenq + 1*mmsize] - mulpd m2, m2, [src1q + lenq + 2*mmsize] - mulpd m3, m3, [src1q + lenq + 3*mmsize] - movaps [dstq + lenq + 0*mmsize], m0 - movaps [dstq + lenq + 1*mmsize], m1 - movaps [dstq + lenq + 2*mmsize], m2 - movaps [dstq + lenq + 3*mmsize], m3 - - sub lenq, mmsize*4 - jge .loop - RET -%endmacro - -INIT_XMM sse2 -VECTOR_DMUL -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_DMUL -%endif - -;------------------------------------------------------------------------------ -; void ff_vector_fmac_scalar(float *dst, const float *src, float mul, int len) -;------------------------------------------------------------------------------ - -%macro VECTOR_FMAC_SCALAR 0 -%if UNIX64 -cglobal vector_fmac_scalar, 3,3,5, dst, src, len -%else -cglobal vector_fmac_scalar, 4,4,5, dst, src, mul, len -%endif -%if ARCH_X86_32 - VBROADCASTSS m0, mulm -%else -%if WIN64 - SWAP 0, 2 -%endif - shufps xm0, xm0, 0 -%if cpuflag(avx) - vinsertf128 m0, m0, xm0, 1 -%endif -%endif - lea lenq, [lend*4-64] -.loop: -%if cpuflag(fma3) - mova m1, [dstq+lenq] - mova m2, [dstq+lenq+1*mmsize] - fmaddps m1, m0, [srcq+lenq], m1 - fmaddps m2, m0, [srcq+lenq+1*mmsize], m2 -%else ; cpuflag - mulps m1, m0, [srcq+lenq] - mulps m2, m0, [srcq+lenq+1*mmsize] -%if mmsize < 32 - mulps m3, m0, [srcq+lenq+2*mmsize] - mulps m4, m0, [srcq+lenq+3*mmsize] -%endif ; mmsize - addps m1, m1, [dstq+lenq] - addps m2, m2, [dstq+lenq+1*mmsize] -%if mmsize < 32 - addps m3, m3, [dstq+lenq+2*mmsize] - addps m4, m4, [dstq+lenq+3*mmsize] -%endif ; mmsize -%endif ; cpuflag - mova [dstq+lenq], m1 - mova [dstq+lenq+1*mmsize], m2 -%if mmsize < 32 - mova [dstq+lenq+2*mmsize], m3 - mova [dstq+lenq+3*mmsize], m4 -%endif ; mmsize - sub lenq, 64 - jge .loop - REP_RET -%endmacro - -INIT_XMM sse -VECTOR_FMAC_SCALAR -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_FMAC_SCALAR -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -VECTOR_FMAC_SCALAR -%endif - -;------------------------------------------------------------------------------ -; void ff_vector_fmul_scalar(float *dst, const float *src, float mul, int len) -;------------------------------------------------------------------------------ - -%macro VECTOR_FMUL_SCALAR 0 -%if UNIX64 -cglobal vector_fmul_scalar, 3,3,2, dst, src, len -%else -cglobal vector_fmul_scalar, 4,4,3, dst, src, mul, len -%endif -%if ARCH_X86_32 - movss m0, mulm -%elif WIN64 - SWAP 0, 2 -%endif - shufps m0, m0, 0 - lea lenq, [lend*4-mmsize] -.loop: - mova m1, [srcq+lenq] - mulps m1, m0 - mova [dstq+lenq], m1 - sub lenq, mmsize - jge .loop - REP_RET -%endmacro - -INIT_XMM sse -VECTOR_FMUL_SCALAR - -;------------------------------------------------------------------------------ -; void ff_vector_dmac_scalar(double *dst, const double *src, double mul, -; int len) -;------------------------------------------------------------------------------ - -%macro VECTOR_DMAC_SCALAR 0 -%if ARCH_X86_32 -cglobal vector_dmac_scalar, 2,4,5, dst, src, mul, len, lenaddr - mov lenq, lenaddrm - VBROADCASTSD m0, mulm -%else -%if UNIX64 -cglobal vector_dmac_scalar, 3,3,5, dst, src, len -%else -cglobal vector_dmac_scalar, 4,4,5, dst, src, mul, len - SWAP 0, 2 -%endif - movlhps xm0, xm0 -%if cpuflag(avx) - vinsertf128 m0, m0, xm0, 1 -%endif -%endif - lea lenq, [lend*8-mmsize*4] -.loop: -%if cpuflag(fma3) - movaps m1, [dstq+lenq] - movaps m2, [dstq+lenq+1*mmsize] - movaps m3, [dstq+lenq+2*mmsize] - movaps m4, [dstq+lenq+3*mmsize] - fmaddpd m1, m0, [srcq+lenq], m1 - fmaddpd m2, m0, [srcq+lenq+1*mmsize], m2 - fmaddpd m3, m0, [srcq+lenq+2*mmsize], m3 - fmaddpd m4, m0, [srcq+lenq+3*mmsize], m4 -%else ; cpuflag - mulpd m1, m0, [srcq+lenq] - mulpd m2, m0, [srcq+lenq+1*mmsize] - mulpd m3, m0, [srcq+lenq+2*mmsize] - mulpd m4, m0, [srcq+lenq+3*mmsize] - addpd m1, m1, [dstq+lenq] - addpd m2, m2, [dstq+lenq+1*mmsize] - addpd m3, m3, [dstq+lenq+2*mmsize] - addpd m4, m4, [dstq+lenq+3*mmsize] -%endif ; cpuflag - movaps [dstq+lenq], m1 - movaps [dstq+lenq+1*mmsize], m2 - movaps [dstq+lenq+2*mmsize], m3 - movaps [dstq+lenq+3*mmsize], m4 - sub lenq, mmsize*4 - jge .loop - REP_RET -%endmacro - -INIT_XMM sse2 -VECTOR_DMAC_SCALAR -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_DMAC_SCALAR -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -VECTOR_DMAC_SCALAR -%endif - -;------------------------------------------------------------------------------ -; void ff_vector_dmul_scalar(double *dst, const double *src, double mul, -; int len) -;------------------------------------------------------------------------------ - -%macro VECTOR_DMUL_SCALAR 0 -%if ARCH_X86_32 -cglobal vector_dmul_scalar, 3,4,3, dst, src, mul, len, lenaddr - mov lenq, lenaddrm -%elif UNIX64 -cglobal vector_dmul_scalar, 3,3,3, dst, src, len -%else -cglobal vector_dmul_scalar, 4,4,3, dst, src, mul, len -%endif -%if ARCH_X86_32 - VBROADCASTSD m0, mulm -%else -%if WIN64 - SWAP 0, 2 -%endif - movlhps xm0, xm0 -%if cpuflag(avx) - vinsertf128 ym0, ym0, xm0, 1 -%endif -%endif - lea lenq, [lend*8-2*mmsize] -.loop: - mulpd m1, m0, [srcq+lenq ] - mulpd m2, m0, [srcq+lenq+mmsize] - movaps [dstq+lenq ], m1 - movaps [dstq+lenq+mmsize], m2 - sub lenq, 2*mmsize - jge .loop - REP_RET -%endmacro - -INIT_XMM sse2 -VECTOR_DMUL_SCALAR -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_DMUL_SCALAR -%endif - -;----------------------------------------------------------------------------- -; vector_fmul_window(float *dst, const float *src0, -; const float *src1, const float *win, int len); -;----------------------------------------------------------------------------- -%macro VECTOR_FMUL_WINDOW 0 -cglobal vector_fmul_window, 5, 6, 6, dst, src0, src1, win, len, len1 - shl lend, 2 - lea len1q, [lenq - mmsize] - add src0q, lenq - add dstq, lenq - add winq, lenq - neg lenq -.loop: - mova m0, [winq + lenq] - mova m4, [src0q + lenq] -%if cpuflag(sse) - mova m1, [winq + len1q] - mova m5, [src1q + len1q] - shufps m1, m1, 0x1b - shufps m5, m5, 0x1b - mova m2, m0 - mova m3, m1 - mulps m2, m4 - mulps m3, m5 - mulps m1, m4 - mulps m0, m5 - addps m2, m3 - subps m1, m0 - shufps m2, m2, 0x1b -%else - pswapd m1, [winq + len1q] - pswapd m5, [src1q + len1q] - mova m2, m0 - mova m3, m1 - pfmul m2, m4 - pfmul m3, m5 - pfmul m1, m4 - pfmul m0, m5 - pfadd m2, m3 - pfsub m1, m0 - pswapd m2, m2 -%endif - mova [dstq + lenq], m1 - mova [dstq + len1q], m2 - sub len1q, mmsize - add lenq, mmsize - jl .loop -%if mmsize == 8 - femms -%endif - REP_RET -%endmacro - -INIT_MMX 3dnowext -VECTOR_FMUL_WINDOW -INIT_XMM sse -VECTOR_FMUL_WINDOW - -;----------------------------------------------------------------------------- -; vector_fmul_add(float *dst, const float *src0, const float *src1, -; const float *src2, int len) -;----------------------------------------------------------------------------- -%macro VECTOR_FMUL_ADD 0 -cglobal vector_fmul_add, 5,5,4, dst, src0, src1, src2, len - lea lenq, [lend*4 - 2*mmsize] -ALIGN 16 -.loop: - mova m0, [src0q + lenq] - mova m1, [src0q + lenq + mmsize] -%if cpuflag(fma3) - mova m2, [src2q + lenq] - mova m3, [src2q + lenq + mmsize] - fmaddps m0, m0, [src1q + lenq], m2 - fmaddps m1, m1, [src1q + lenq + mmsize], m3 -%else - mulps m0, m0, [src1q + lenq] - mulps m1, m1, [src1q + lenq + mmsize] - addps m0, m0, [src2q + lenq] - addps m1, m1, [src2q + lenq + mmsize] -%endif - mova [dstq + lenq], m0 - mova [dstq + lenq + mmsize], m1 - - sub lenq, 2*mmsize - jge .loop - REP_RET -%endmacro - -INIT_XMM sse -VECTOR_FMUL_ADD -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_FMUL_ADD -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -VECTOR_FMUL_ADD -%endif - -;----------------------------------------------------------------------------- -; void vector_fmul_reverse(float *dst, const float *src0, const float *src1, -; int len) -;----------------------------------------------------------------------------- -%macro VECTOR_FMUL_REVERSE 0 -cglobal vector_fmul_reverse, 4,4,2, dst, src0, src1, len -%if cpuflag(avx2) - movaps m2, [pd_reverse] -%endif - lea lenq, [lend*4 - 2*mmsize] -ALIGN 16 -.loop: -%if cpuflag(avx2) - vpermps m0, m2, [src1q] - vpermps m1, m2, [src1q+mmsize] -%elif cpuflag(avx) - vmovaps xmm0, [src1q + 16] - vinsertf128 m0, m0, [src1q], 1 - vshufps m0, m0, m0, q0123 - vmovaps xmm1, [src1q + mmsize + 16] - vinsertf128 m1, m1, [src1q + mmsize], 1 - vshufps m1, m1, m1, q0123 -%else - mova m0, [src1q] - mova m1, [src1q + mmsize] - shufps m0, m0, q0123 - shufps m1, m1, q0123 -%endif - mulps m0, m0, [src0q + lenq + mmsize] - mulps m1, m1, [src0q + lenq] - movaps [dstq + lenq + mmsize], m0 - movaps [dstq + lenq], m1 - add src1q, 2*mmsize - sub lenq, 2*mmsize - jge .loop - REP_RET -%endmacro - -INIT_XMM sse -VECTOR_FMUL_REVERSE -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -VECTOR_FMUL_REVERSE -%endif -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -VECTOR_FMUL_REVERSE -%endif - -; float scalarproduct_float_sse(const float *v1, const float *v2, int len) -INIT_XMM sse -cglobal scalarproduct_float, 3,3,2, v1, v2, offset - shl offsetd, 2 - add v1q, offsetq - add v2q, offsetq - neg offsetq - xorps xmm0, xmm0 -.loop: - movaps xmm1, [v1q+offsetq] - mulps xmm1, [v2q+offsetq] - addps xmm0, xmm1 - add offsetq, 16 - js .loop - movhlps xmm1, xmm0 - addps xmm0, xmm1 - movss xmm1, xmm0 - shufps xmm0, xmm0, 1 - addss xmm0, xmm1 -%if ARCH_X86_64 == 0 - movss r0m, xmm0 - fld dword r0m -%endif - RET - -;----------------------------------------------------------------------------- -; void ff_butterflies_float(float *src0, float *src1, int len); -;----------------------------------------------------------------------------- -INIT_XMM sse -cglobal butterflies_float, 3,3,3, src0, src1, len - shl lend, 2 - add src0q, lenq - add src1q, lenq - neg lenq -.loop: - mova m0, [src0q + lenq] - mova m1, [src1q + lenq] - subps m2, m0, m1 - addps m0, m0, m1 - mova [src1q + lenq], m2 - mova [src0q + lenq], m0 - add lenq, mmsize - jl .loop - REP_RET diff --git a/libavutil/x86/imgutils.asm b/libavutil/x86/imgutils.asm deleted file mode 100644 index 3cca56cdca..0000000000 --- a/libavutil/x86/imgutils.asm +++ /dev/null @@ -1,53 +0,0 @@ -;***************************************************************************** -;* Copyright 2016 Anton Khirnov -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION .text - -INIT_XMM sse4 -cglobal image_copy_plane_uc_from, 6, 7, 4, dst, dst_linesize, src, src_linesize, bw, height, rowpos - add dstq, bwq - add srcq, bwq - neg bwq - -.row_start: - mov rowposq, bwq - -.loop: - movntdqa m0, [srcq + rowposq + 0 * mmsize] - movntdqa m1, [srcq + rowposq + 1 * mmsize] - movntdqa m2, [srcq + rowposq + 2 * mmsize] - movntdqa m3, [srcq + rowposq + 3 * mmsize] - - mova [dstq + rowposq + 0 * mmsize], m0 - mova [dstq + rowposq + 1 * mmsize], m1 - mova [dstq + rowposq + 2 * mmsize], m2 - mova [dstq + rowposq + 3 * mmsize], m3 - - add rowposq, 4 * mmsize - jnz .loop - - add srcq, src_linesizeq - add dstq, dst_linesizeq - dec heightd - jnz .row_start - - RET diff --git a/libavutil/x86/lls.asm b/libavutil/x86/lls.asm deleted file mode 100644 index 317fba6fca..0000000000 --- a/libavutil/x86/lls.asm +++ /dev/null @@ -1,290 +0,0 @@ -;****************************************************************************** -;* linear least squares model -;* -;* Copyright (c) 2013 Loren Merritt -;* -;* 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 "x86util.asm" - -SECTION .text - -%define MAX_VARS 32 -%define MAX_VARS_ALIGN (MAX_VARS+4) -%define COVAR_STRIDE MAX_VARS_ALIGN*8 -%define COVAR(x,y) [covarq + (x)*8 + (y)*COVAR_STRIDE] - -struc LLSModel - .covariance: resq MAX_VARS_ALIGN*MAX_VARS_ALIGN - .coeff: resq MAX_VARS*MAX_VARS - .variance: resq MAX_VARS - .indep_count: resd 1 -endstruc - -%macro ADDPD_MEM 2 -%if cpuflag(avx) - vaddpd %2, %2, %1 -%else - addpd %2, %1 -%endif - mova %1, %2 -%endmacro - -INIT_XMM sse2 -%define movdqa movaps -cglobal update_lls, 2,5,8, ctx, var, i, j, covar2 - %define covarq ctxq - mov id, [ctxq + LLSModel.indep_count] - lea varq, [varq + iq*8] - neg iq - mov covar2q, covarq -.loopi: - ; Compute all 3 pairwise products of a 2x2 block that lies on the diagonal - mova m1, [varq + iq*8] - mova m3, [varq + iq*8 + 16] - pshufd m4, m1, q1010 - pshufd m5, m1, q3232 - pshufd m6, m3, q1010 - pshufd m7, m3, q3232 - mulpd m0, m1, m4 - mulpd m1, m1, m5 - lea covarq, [covar2q + 16] - ADDPD_MEM COVAR(-2,0), m0 - ADDPD_MEM COVAR(-2,1), m1 - lea jq, [iq + 2] - cmp jd, -2 - jg .skip4x4 -.loop4x4: - ; Compute all 16 pairwise products of a 4x4 block - mulpd m0, m4, m3 - mulpd m1, m5, m3 - mulpd m2, m6, m3 - mulpd m3, m3, m7 - ADDPD_MEM COVAR(0,0), m0 - ADDPD_MEM COVAR(0,1), m1 - ADDPD_MEM COVAR(0,2), m2 - ADDPD_MEM COVAR(0,3), m3 - mova m3, [varq + jq*8 + 16] - mulpd m0, m4, m3 - mulpd m1, m5, m3 - mulpd m2, m6, m3 - mulpd m3, m3, m7 - ADDPD_MEM COVAR(2,0), m0 - ADDPD_MEM COVAR(2,1), m1 - ADDPD_MEM COVAR(2,2), m2 - ADDPD_MEM COVAR(2,3), m3 - mova m3, [varq + jq*8 + 32] - add covarq, 32 - add jq, 4 - cmp jd, -2 - jle .loop4x4 -.skip4x4: - test jd, jd - jg .skip2x4 - mulpd m4, m3 - mulpd m5, m3 - mulpd m6, m3 - mulpd m7, m3 - ADDPD_MEM COVAR(0,0), m4 - ADDPD_MEM COVAR(0,1), m5 - ADDPD_MEM COVAR(0,2), m6 - ADDPD_MEM COVAR(0,3), m7 -.skip2x4: - add iq, 4 - add covar2q, 4*COVAR_STRIDE+32 - cmp id, -2 - jle .loopi - test id, id - jg .ret - mov jq, iq - %define covarq covar2q -.loop2x1: - movsd m0, [varq + iq*8] - movlhps m0, m0 - mulpd m0, [varq + jq*8] - ADDPD_MEM COVAR(0,0), m0 - inc iq - add covarq, COVAR_STRIDE - test id, id - jle .loop2x1 -.ret: - REP_RET - -%macro UPDATE_LLS 0 -cglobal update_lls, 3,6,8, ctx, var, count, i, j, count2 - %define covarq ctxq - mov countd, [ctxq + LLSModel.indep_count] - lea count2d, [countq-2] - xor id, id -.loopi: - ; Compute all 10 pairwise products of a 4x4 block that lies on the diagonal - mova ymm1, [varq + iq*8] - vbroadcastsd ymm4, [varq + iq*8] - vbroadcastsd ymm5, [varq + iq*8 + 8] - vbroadcastsd ymm6, [varq + iq*8 + 16] - vbroadcastsd ymm7, [varq + iq*8 + 24] - vextractf128 xmm3, ymm1, 1 -%if cpuflag(fma3) - mova ymm0, COVAR(iq ,0) - mova xmm2, COVAR(iq+2,2) - fmaddpd ymm0, ymm1, ymm4, ymm0 - fmaddpd xmm2, xmm3, xmm6, xmm2 - fmaddpd ymm1, ymm5, ymm1, COVAR(iq ,1) - fmaddpd xmm3, xmm7, xmm3, COVAR(iq+2,3) - mova COVAR(iq ,0), ymm0 - mova COVAR(iq ,1), ymm1 - mova COVAR(iq+2,2), xmm2 - mova COVAR(iq+2,3), xmm3 -%else - vmulpd ymm0, ymm1, ymm4 - vmulpd ymm1, ymm1, ymm5 - vmulpd xmm2, xmm3, xmm6 - vmulpd xmm3, xmm3, xmm7 - ADDPD_MEM COVAR(iq ,0), ymm0 - ADDPD_MEM COVAR(iq ,1), ymm1 - ADDPD_MEM COVAR(iq+2,2), xmm2 - ADDPD_MEM COVAR(iq+2,3), xmm3 -%endif ; cpuflag(fma3) - lea jd, [iq + 4] - cmp jd, count2d - jg .skip4x4 -.loop4x4: - ; Compute all 16 pairwise products of a 4x4 block - mova ymm3, [varq + jq*8] -%if cpuflag(fma3) - mova ymm0, COVAR(jq, 0) - mova ymm1, COVAR(jq, 1) - mova ymm2, COVAR(jq, 2) - fmaddpd ymm0, ymm3, ymm4, ymm0 - fmaddpd ymm1, ymm3, ymm5, ymm1 - fmaddpd ymm2, ymm3, ymm6, ymm2 - fmaddpd ymm3, ymm7, ymm3, COVAR(jq,3) - mova COVAR(jq, 0), ymm0 - mova COVAR(jq, 1), ymm1 - mova COVAR(jq, 2), ymm2 - mova COVAR(jq, 3), ymm3 -%else - vmulpd ymm0, ymm3, ymm4 - vmulpd ymm1, ymm3, ymm5 - vmulpd ymm2, ymm3, ymm6 - vmulpd ymm3, ymm3, ymm7 - ADDPD_MEM COVAR(jq,0), ymm0 - ADDPD_MEM COVAR(jq,1), ymm1 - ADDPD_MEM COVAR(jq,2), ymm2 - ADDPD_MEM COVAR(jq,3), ymm3 -%endif ; cpuflag(fma3) - add jd, 4 - cmp jd, count2d - jle .loop4x4 -.skip4x4: - cmp jd, countd - jg .skip2x4 - mova xmm3, [varq + jq*8] -%if cpuflag(fma3) - mova xmm0, COVAR(jq, 0) - mova xmm1, COVAR(jq, 1) - mova xmm2, COVAR(jq, 2) - fmaddpd xmm0, xmm3, xmm4, xmm0 - fmaddpd xmm1, xmm3, xmm5, xmm1 - fmaddpd xmm2, xmm3, xmm6, xmm2 - fmaddpd xmm3, xmm7, xmm3, COVAR(jq,3) - mova COVAR(jq, 0), xmm0 - mova COVAR(jq, 1), xmm1 - mova COVAR(jq, 2), xmm2 - mova COVAR(jq, 3), xmm3 -%else - vmulpd xmm0, xmm3, xmm4 - vmulpd xmm1, xmm3, xmm5 - vmulpd xmm2, xmm3, xmm6 - vmulpd xmm3, xmm3, xmm7 - ADDPD_MEM COVAR(jq,0), xmm0 - ADDPD_MEM COVAR(jq,1), xmm1 - ADDPD_MEM COVAR(jq,2), xmm2 - ADDPD_MEM COVAR(jq,3), xmm3 -%endif ; cpuflag(fma3) -.skip2x4: - add id, 4 - add covarq, 4*COVAR_STRIDE - cmp id, count2d - jle .loopi - cmp id, countd - jg .ret - mov jd, id -.loop2x1: - vmovddup xmm0, [varq + iq*8] -%if cpuflag(fma3) - mova xmm1, [varq + jq*8] - fmaddpd xmm0, xmm1, xmm0, COVAR(jq,0) - mova COVAR(jq,0), xmm0 -%else - vmulpd xmm0, [varq + jq*8] - ADDPD_MEM COVAR(jq,0), xmm0 -%endif ; cpuflag(fma3) - inc id - add covarq, COVAR_STRIDE - cmp id, countd - jle .loop2x1 -.ret: - REP_RET -%endmacro ; UPDATE_LLS - -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -UPDATE_LLS -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -UPDATE_LLS -%endif - -INIT_XMM sse2 -cglobal evaluate_lls, 3,4,2, ctx, var, order, i - ; This function is often called on the same buffer as update_lls, but with - ; an offset. They can't both be aligned. - ; Load halves rather than movu to avoid store-forwarding stalls, since the - ; input was initialized immediately prior to this function using scalar math. - %define coefsq ctxq - mov id, orderd - imul orderd, MAX_VARS - lea coefsq, [ctxq + LLSModel.coeff + orderq*8] - movsd m0, [varq] - movhpd m0, [varq + 8] - mulpd m0, [coefsq] - lea coefsq, [coefsq + iq*8] - lea varq, [varq + iq*8] - neg iq - add iq, 2 -.loop: - movsd m1, [varq + iq*8] - movhpd m1, [varq + iq*8 + 8] - mulpd m1, [coefsq + iq*8] - addpd m0, m1 - add iq, 2 - jl .loop - jg .skip1 - movsd m1, [varq + iq*8] - mulsd m1, [coefsq + iq*8] - addpd m0, m1 -.skip1: - movhlps m1, m0 - addsd m0, m1 -%if ARCH_X86_32 - movsd r0m, m0 - fld qword r0m -%endif - RET diff --git a/libavutil/x86/pixelutils.asm b/libavutil/x86/pixelutils.asm deleted file mode 100644 index 36c57c5f7f..0000000000 --- a/libavutil/x86/pixelutils.asm +++ /dev/null @@ -1,386 +0,0 @@ -;****************************************************************************** -;* Pixel utilities SIMD -;* -;* Copyright (C) 2002-2004 Michael Niedermayer -;* Copyright (C) 2014 Clément Bœsch -;* -;* 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 "x86util.asm" - -SECTION .text - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_8x8_mmx(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -INIT_MMX mmx -cglobal pixelutils_sad_8x8, 4,4,0, src1, stride1, src2, stride2 - pxor m7, m7 - pxor m6, m6 -%rep 4 - mova m0, [src1q] - mova m2, [src1q + stride1q] - mova m1, [src2q] - mova m3, [src2q + stride2q] - psubusb m4, m0, m1 - psubusb m5, m2, m3 - psubusb m1, m0 - psubusb m3, m2 - por m1, m4 - por m3, m5 - punpcklbw m0, m1, m7 - punpcklbw m2, m3, m7 - punpckhbw m1, m7 - punpckhbw m3, m7 - paddw m0, m1 - paddw m2, m3 - paddw m0, m2 - paddw m6, m0 - lea src1q, [src1q + 2*stride1q] - lea src2q, [src2q + 2*stride2q] -%endrep - psrlq m0, m6, 32 - paddw m6, m0 - psrlq m0, m6, 16 - paddw m6, m0 - movd eax, m6 - movzx eax, ax - RET - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_8x8_mmxext(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -INIT_MMX mmxext -cglobal pixelutils_sad_8x8, 4,4,0, src1, stride1, src2, stride2 - pxor m2, m2 -%rep 4 - mova m0, [src1q] - mova m1, [src1q + stride1q] - psadbw m0, [src2q] - psadbw m1, [src2q + stride2q] - paddw m2, m0 - paddw m2, m1 - lea src1q, [src1q + 2*stride1q] - lea src2q, [src2q + 2*stride2q] -%endrep - movd eax, m2 - RET - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_16x16_mmxext(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -INIT_MMX mmxext -cglobal pixelutils_sad_16x16, 4,4,0, src1, stride1, src2, stride2 - pxor m2, m2 -%rep 16 - mova m0, [src1q] - mova m1, [src1q + 8] - psadbw m0, [src2q] - psadbw m1, [src2q + 8] - paddw m2, m0 - paddw m2, m1 - add src1q, stride1q - add src2q, stride2q -%endrep - movd eax, m2 - RET - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_16x16_sse2(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal pixelutils_sad_16x16, 4,4,5, src1, stride1, src2, stride2 - movu m4, [src1q] - movu m2, [src2q] - movu m1, [src1q + stride1q] - movu m3, [src2q + stride2q] - psadbw m4, m2 - psadbw m1, m3 - paddw m4, m1 -%rep 7 - lea src1q, [src1q + 2*stride1q] - lea src2q, [src2q + 2*stride2q] - movu m0, [src1q] - movu m2, [src2q] - movu m1, [src1q + stride1q] - movu m3, [src2q + stride2q] - psadbw m0, m2 - psadbw m1, m3 - paddw m4, m0 - paddw m4, m1 -%endrep - movhlps m0, m4 - paddw m4, m0 - movd eax, m4 - RET - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_[au]_16x16_sse2(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -%macro SAD_XMM_16x16 1 -INIT_XMM sse2 -cglobal pixelutils_sad_%1_16x16, 4,4,3, src1, stride1, src2, stride2 - mov%1 m2, [src2q] - psadbw m2, [src1q] - mov%1 m1, [src2q + stride2q] - psadbw m1, [src1q + stride1q] - paddw m2, m1 -%rep 7 - lea src1q, [src1q + 2*stride1q] - lea src2q, [src2q + 2*stride2q] - mov%1 m0, [src2q] - psadbw m0, [src1q] - mov%1 m1, [src2q + stride2q] - psadbw m1, [src1q + stride1q] - paddw m2, m0 - paddw m2, m1 -%endrep - movhlps m0, m2 - paddw m2, m0 - movd eax, m2 - RET -%endmacro - -SAD_XMM_16x16 a -SAD_XMM_16x16 u - - -%macro PROCESS_SAD_32x4_U 0 - movu m1, [r2] - movu m2, [r2 + 16] - movu m3, [r0] - movu m4, [r0 + 16] - psadbw m1, m3 - psadbw m2, m4 - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] - - movu m1, [r2] - movu m2, [r2 + 16] - movu m3, [r0] - movu m4, [r0 + 16] - psadbw m1, m3 - psadbw m2, m4 - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] - - movu m1, [r2] - movu m2, [r2 + 16] - movu m3, [r0] - movu m4, [r0 + 16] - psadbw m1, m3 - psadbw m2, m4 - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] - - movu m1, [r2] - movu m2, [r2 + 16] - movu m3, [r0] - movu m4, [r0 + 16] - psadbw m1, m3 - psadbw m2, m4 - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] -%endmacro - -%macro PROCESS_SAD_32x4 1 - mov%1 m1, [r2] - mov%1 m2, [r2 + 16] - psadbw m1, [r0] - psadbw m2, [r0 + 16] - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] - - mov%1 m1, [r2] - mov%1 m2, [r2 + 16] - psadbw m1, [r0] - psadbw m2, [r0 + 16] - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] - - mov%1 m1, [r2] - mov%1 m2, [r2 + 16] - psadbw m1, [r0] - psadbw m2, [r0 + 16] - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] - - mov%1 m1, [r2] - mov%1 m2, [r2 + 16] - psadbw m1, [r0] - psadbw m2, [r0 + 16] - paddd m1, m2 - paddd m0, m1 - lea r2, [r2 + r3] - lea r0, [r0 + r1] -%endmacro - -;----------------------------------------------------------------------------- -; int ff_pixelutils_sad_32x32_sse2(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;----------------------------------------------------------------------------- -INIT_XMM sse2 -cglobal pixelutils_sad_32x32, 4,5,5, src1, stride1, src2, stride2 - pxor m0, m0 - mov r4d, 4 -.loop: - PROCESS_SAD_32x4_U - PROCESS_SAD_32x4_U - dec r4d - jnz .loop - - movhlps m1, m0 - paddd m0, m1 - movd eax, m0 - RET - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_[au]_32x32_sse2(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -%macro SAD_XMM_32x32 1 -INIT_XMM sse2 -cglobal pixelutils_sad_%1_32x32, 4,5,3, src1, stride1, src2, stride2 - pxor m0, m0 - mov r4d, 4 -.loop: - PROCESS_SAD_32x4 %1 - PROCESS_SAD_32x4 %1 - dec r4d - jnz .loop - - movhlps m1, m0 - paddd m0, m1 - movd eax, m0 - RET -%endmacro - -SAD_XMM_32x32 a -SAD_XMM_32x32 u - -%if HAVE_AVX2_EXTERNAL -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_32x32_avx2(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -INIT_YMM avx2 -cglobal pixelutils_sad_32x32, 4,7,5, src1, stride1, src2, stride2 - pxor m0, m0 - mov r4d, 32/4 - lea r5, [stride1q * 3] - lea r6, [stride2q * 3] - -.loop: - movu m1, [src1q] ; row 0 of pix0 - movu m2, [src2q] ; row 0 of pix1 - movu m3, [src1q + stride1q] ; row 1 of pix0 - movu m4, [src2q + stride2q] ; row 1 of pix1 - - psadbw m1, m2 - psadbw m3, m4 - paddd m0, m1 - paddd m0, m3 - - movu m1, [src1q + 2 * stride1q] ; row 2 of pix0 - movu m2, [src2q + 2 * stride2q] ; row 2 of pix1 - movu m3, [src1q + r5] ; row 3 of pix0 - movu m4, [src2q + r6] ; row 3 of pix1 - - psadbw m1, m2 - psadbw m3, m4 - paddd m0, m1 - paddd m0, m3 - - lea src2q, [src2q + 4 * stride2q] - lea src1q, [src1q + 4 * stride1q] - - dec r4d - jnz .loop - - vextracti128 xm1, m0, 1 - paddd xm0, xm1 - pshufd xm1, xm0, 2 - paddd xm0, xm1 - movd eax, xm0 - RET - -;------------------------------------------------------------------------------- -; int ff_pixelutils_sad_[au]_32x32_avx2(const uint8_t *src1, ptrdiff_t stride1, -; const uint8_t *src2, ptrdiff_t stride2); -;------------------------------------------------------------------------------- -%macro SAD_AVX2_32x32 1 -INIT_YMM avx2 -cglobal pixelutils_sad_%1_32x32, 4,7,3, src1, stride1, src2, stride2 - pxor m0, m0 - mov r4d, 32/4 - lea r5, [stride1q * 3] - lea r6, [stride2q * 3] - -.loop: - mov%1 m1, [src2q] ; row 0 of pix1 - psadbw m1, [src1q] - mov%1 m2, [src2q + stride2q] ; row 1 of pix1 - psadbw m2, [src1q + stride1q] - - paddd m0, m1 - paddd m0, m2 - - mov%1 m1, [src2q + 2 * stride2q] ; row 2 of pix1 - psadbw m1, [src1q + 2 * stride1q] - mov%1 m2, [src2q + r6] ; row 3 of pix1 - psadbw m2, [src1q + r5] - - paddd m0, m1 - paddd m0, m2 - - lea src2q, [src2q + 4 * stride2q] - lea src1q, [src1q + 4 * stride1q] - - dec r4d - jnz .loop - - vextracti128 xm1, m0, 1 - paddd xm0, xm1 - pshufd xm1, xm0, 2 - paddd xm0, xm1 - movd eax, xm0 - RET -%endmacro - -SAD_AVX2_32x32 a -SAD_AVX2_32x32 u -%endif diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm deleted file mode 100644 index 5044ee86f0..0000000000 --- a/libavutil/x86/x86inc.asm +++ /dev/null @@ -1,1701 +0,0 @@ -;***************************************************************************** -;* x86inc.asm: x264asm abstraction layer -;***************************************************************************** -;* Copyright (C) 2005-2018 x264 project -;* -;* Authors: Loren Merritt -;* Henrik Gramner -;* Anton Mitrofanov -;* Fiona Glaser -;* -;* Permission to use, copy, modify, and/or distribute this software for any -;* purpose with or without fee is hereby granted, provided that the above -;* copyright notice and this permission notice appear in all copies. -;* -;* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -;* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -;* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -;* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -;* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -;* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -;* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -;***************************************************************************** - -; This is a header file for the x264ASM assembly language, which uses -; NASM/YASM syntax combined with a large number of macros to provide easy -; abstraction between different calling conventions (x86_32, win64, linux64). -; It also has various other useful features to simplify writing the kind of -; DSP functions that are most often used in x264. - -; Unlike the rest of x264, this file is available under an ISC license, as it -; has significant usefulness outside of x264 and we want it to be available -; to the largest audience possible. Of course, if you modify it for your own -; purposes to add a new feature, we strongly encourage contributing a patch -; as this feature might be useful for others as well. Send patches or ideas -; to x264-devel@videolan.org . - -%ifndef private_prefix - %define private_prefix x264 -%endif - -%ifndef public_prefix - %define public_prefix private_prefix -%endif - -%if HAVE_ALIGNED_STACK - %define STACK_ALIGNMENT 16 -%endif -%ifndef STACK_ALIGNMENT - %if ARCH_X86_64 - %define STACK_ALIGNMENT 16 - %else - %define STACK_ALIGNMENT 4 - %endif -%endif - -%define WIN64 0 -%define UNIX64 0 -%if ARCH_X86_64 - %ifidn __OUTPUT_FORMAT__,win32 - %define WIN64 1 - %elifidn __OUTPUT_FORMAT__,win64 - %define WIN64 1 - %elifidn __OUTPUT_FORMAT__,x64 - %define WIN64 1 - %else - %define UNIX64 1 - %endif -%endif - -%define FORMAT_ELF 0 -%ifidn __OUTPUT_FORMAT__,elf - %define FORMAT_ELF 1 -%elifidn __OUTPUT_FORMAT__,elf32 - %define FORMAT_ELF 1 -%elifidn __OUTPUT_FORMAT__,elf64 - %define FORMAT_ELF 1 -%endif - -%ifdef PREFIX - %define mangle(x) _ %+ x -%else - %define mangle(x) x -%endif - -; aout does not support align= -; NOTE: This section is out of sync with x264, in order to -; keep supporting OS/2. -%macro SECTION_RODATA 0-1 16 - %ifidn __OUTPUT_FORMAT__,aout - SECTION .text - %elifidn __OUTPUT_FORMAT__,coff - SECTION .text - %elifidn __OUTPUT_FORMAT__,win32 - SECTION .rdata align=%1 - %elif WIN64 - SECTION .rdata align=%1 - %else - SECTION .rodata align=%1 - %endif -%endmacro - -%if WIN64 - %define PIC -%elif ARCH_X86_64 == 0 -; x86_32 doesn't require PIC. -; Some distros prefer shared objects to be PIC, but nothing breaks if -; the code contains a few textrels, so we'll skip that complexity. - %undef PIC -%endif -%ifdef PIC - default rel -%endif - -%macro CPUNOP 1 - %if HAVE_CPUNOP - CPU %1 - %endif -%endmacro - -; Macros to eliminate most code duplication between x86_32 and x86_64: -; Currently this works only for leaf functions which load all their arguments -; into registers at the start, and make no other use of the stack. Luckily that -; covers most of x264's asm. - -; PROLOGUE: -; %1 = number of arguments. loads them from stack if needed. -; %2 = number of registers used. pushes callee-saved regs if needed. -; %3 = number of xmm registers used. pushes callee-saved xmm regs if needed. -; %4 = (optional) stack size to be allocated. The stack will be aligned before -; allocating the specified stack size. If the required stack alignment is -; larger than the known stack alignment the stack will be manually aligned -; and an extra register will be allocated to hold the original stack -; pointer (to not invalidate r0m etc.). To prevent the use of an extra -; register as stack pointer, request a negative stack size. -; %4+/%5+ = list of names to define to registers -; PROLOGUE can also be invoked by adding the same options to cglobal - -; e.g. -; cglobal foo, 2,3,7,0x40, dst, src, tmp -; declares a function (foo) that automatically loads two arguments (dst and -; src) into registers, uses one additional register (tmp) plus 7 vector -; registers (m0-m6) and allocates 0x40 bytes of stack space. - -; TODO Some functions can use some args directly from the stack. If they're the -; last args then you can just not declare them, but if they're in the middle -; we need more flexible macro. - -; RET: -; Pops anything that was pushed by PROLOGUE, and returns. - -; REP_RET: -; Use this instead of RET if it's a branch target. - -; registers: -; rN and rNq are the native-size register holding function argument N -; rNd, rNw, rNb are dword, word, and byte size -; rNh is the high 8 bits of the word size -; rNm is the original location of arg N (a register or on the stack), dword -; rNmp is native size - -%macro DECLARE_REG 2-3 - %define r%1q %2 - %define r%1d %2d - %define r%1w %2w - %define r%1b %2b - %define r%1h %2h - %define %2q %2 - %if %0 == 2 - %define r%1m %2d - %define r%1mp %2 - %elif ARCH_X86_64 ; memory - %define r%1m [rstk + stack_offset + %3] - %define r%1mp qword r %+ %1 %+ m - %else - %define r%1m [rstk + stack_offset + %3] - %define r%1mp dword r %+ %1 %+ m - %endif - %define r%1 %2 -%endmacro - -%macro DECLARE_REG_SIZE 3 - %define r%1q r%1 - %define e%1q r%1 - %define r%1d e%1 - %define e%1d e%1 - %define r%1w %1 - %define e%1w %1 - %define r%1h %3 - %define e%1h %3 - %define r%1b %2 - %define e%1b %2 - %if ARCH_X86_64 == 0 - %define r%1 e%1 - %endif -%endmacro - -DECLARE_REG_SIZE ax, al, ah -DECLARE_REG_SIZE bx, bl, bh -DECLARE_REG_SIZE cx, cl, ch -DECLARE_REG_SIZE dx, dl, dh -DECLARE_REG_SIZE si, sil, null -DECLARE_REG_SIZE di, dil, null -DECLARE_REG_SIZE bp, bpl, null - -; t# defines for when per-arch register allocation is more complex than just function arguments - -%macro DECLARE_REG_TMP 1-* - %assign %%i 0 - %rep %0 - CAT_XDEFINE t, %%i, r%1 - %assign %%i %%i+1 - %rotate 1 - %endrep -%endmacro - -%macro DECLARE_REG_TMP_SIZE 0-* - %rep %0 - %define t%1q t%1 %+ q - %define t%1d t%1 %+ d - %define t%1w t%1 %+ w - %define t%1h t%1 %+ h - %define t%1b t%1 %+ b - %rotate 1 - %endrep -%endmacro - -DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 - -%if ARCH_X86_64 - %define gprsize 8 -%else - %define gprsize 4 -%endif - -%macro PUSH 1 - push %1 - %ifidn rstk, rsp - %assign stack_offset stack_offset+gprsize - %endif -%endmacro - -%macro POP 1 - pop %1 - %ifidn rstk, rsp - %assign stack_offset stack_offset-gprsize - %endif -%endmacro - -%macro PUSH_IF_USED 1-* - %rep %0 - %if %1 < regs_used - PUSH r%1 - %endif - %rotate 1 - %endrep -%endmacro - -%macro POP_IF_USED 1-* - %rep %0 - %if %1 < regs_used - pop r%1 - %endif - %rotate 1 - %endrep -%endmacro - -%macro LOAD_IF_USED 1-* - %rep %0 - %if %1 < num_args - mov r%1, r %+ %1 %+ mp - %endif - %rotate 1 - %endrep -%endmacro - -%macro SUB 2 - sub %1, %2 - %ifidn %1, rstk - %assign stack_offset stack_offset+(%2) - %endif -%endmacro - -%macro ADD 2 - add %1, %2 - %ifidn %1, rstk - %assign stack_offset stack_offset-(%2) - %endif -%endmacro - -%macro movifnidn 2 - %ifnidn %1, %2 - mov %1, %2 - %endif -%endmacro - -%macro movsxdifnidn 2 - %ifnidn %1, %2 - movsxd %1, %2 - %endif -%endmacro - -%macro ASSERT 1 - %if (%1) == 0 - %error assertion ``%1'' failed - %endif -%endmacro - -%macro DEFINE_ARGS 0-* - %ifdef n_arg_names - %assign %%i 0 - %rep n_arg_names - CAT_UNDEF arg_name %+ %%i, q - CAT_UNDEF arg_name %+ %%i, d - CAT_UNDEF arg_name %+ %%i, w - CAT_UNDEF arg_name %+ %%i, h - CAT_UNDEF arg_name %+ %%i, b - CAT_UNDEF arg_name %+ %%i, m - CAT_UNDEF arg_name %+ %%i, mp - CAT_UNDEF arg_name, %%i - %assign %%i %%i+1 - %endrep - %endif - - %xdefine %%stack_offset stack_offset - %undef stack_offset ; so that the current value of stack_offset doesn't get baked in by xdefine - %assign %%i 0 - %rep %0 - %xdefine %1q r %+ %%i %+ q - %xdefine %1d r %+ %%i %+ d - %xdefine %1w r %+ %%i %+ w - %xdefine %1h r %+ %%i %+ h - %xdefine %1b r %+ %%i %+ b - %xdefine %1m r %+ %%i %+ m - %xdefine %1mp r %+ %%i %+ mp - CAT_XDEFINE arg_name, %%i, %1 - %assign %%i %%i+1 - %rotate 1 - %endrep - %xdefine stack_offset %%stack_offset - %assign n_arg_names %0 -%endmacro - -%define required_stack_alignment ((mmsize + 15) & ~15) -%define vzeroupper_required (mmsize > 16 && (ARCH_X86_64 == 0 || xmm_regs_used > 16 || notcpuflag(avx512))) -%define high_mm_regs (16*cpuflag(avx512)) - -%macro ALLOC_STACK 1-2 0 ; stack_size, n_xmm_regs (for win64 only) - %ifnum %1 - %if %1 != 0 - %assign %%pad 0 - %assign stack_size %1 - %if stack_size < 0 - %assign stack_size -stack_size - %endif - %if WIN64 - %assign %%pad %%pad + 32 ; shadow space - %if mmsize != 8 - %assign xmm_regs_used %2 - %if xmm_regs_used > 8 - %assign %%pad %%pad + (xmm_regs_used-8)*16 ; callee-saved xmm registers - %endif - %endif - %endif - %if required_stack_alignment <= STACK_ALIGNMENT - ; maintain the current stack alignment - %assign stack_size_padded stack_size + %%pad + ((-%%pad-stack_offset-gprsize) & (STACK_ALIGNMENT-1)) - SUB rsp, stack_size_padded - %else - %assign %%reg_num (regs_used - 1) - %xdefine rstk r %+ %%reg_num - ; align stack, and save original stack location directly above - ; it, i.e. in [rsp+stack_size_padded], so we can restore the - ; stack in a single instruction (i.e. mov rsp, rstk or mov - ; rsp, [rsp+stack_size_padded]) - %if %1 < 0 ; need to store rsp on stack - %xdefine rstkm [rsp + stack_size + %%pad] - %assign %%pad %%pad + gprsize - %else ; can keep rsp in rstk during whole function - %xdefine rstkm rstk - %endif - %assign stack_size_padded stack_size + ((%%pad + required_stack_alignment-1) & ~(required_stack_alignment-1)) - mov rstk, rsp - and rsp, ~(required_stack_alignment-1) - sub rsp, stack_size_padded - movifnidn rstkm, rstk - %endif - WIN64_PUSH_XMM - %endif - %endif -%endmacro - -%macro SETUP_STACK_POINTER 1 - %ifnum %1 - %if %1 != 0 && required_stack_alignment > STACK_ALIGNMENT - %if %1 > 0 - ; Reserve an additional register for storing the original stack pointer, but avoid using - ; eax/rax for this purpose since it can potentially get overwritten as a return value. - %assign regs_used (regs_used + 1) - %if ARCH_X86_64 && regs_used == 7 - %assign regs_used 8 - %elif ARCH_X86_64 == 0 && regs_used == 1 - %assign regs_used 2 - %endif - %endif - %if ARCH_X86_64 && regs_used < 5 + UNIX64 * 3 - ; Ensure that we don't clobber any registers containing arguments. For UNIX64 we also preserve r6 (rax) - ; since it's used as a hidden argument in vararg functions to specify the number of vector registers used. - %assign regs_used 5 + UNIX64 * 3 - %endif - %endif - %endif -%endmacro - -%macro DEFINE_ARGS_INTERNAL 3+ - %ifnum %2 - DEFINE_ARGS %3 - %elif %1 == 4 - DEFINE_ARGS %2 - %elif %1 > 4 - DEFINE_ARGS %2, %3 - %endif -%endmacro - -%if WIN64 ; Windows x64 ;================================================= - -DECLARE_REG 0, rcx -DECLARE_REG 1, rdx -DECLARE_REG 2, R8 -DECLARE_REG 3, R9 -DECLARE_REG 4, R10, 40 -DECLARE_REG 5, R11, 48 -DECLARE_REG 6, rax, 56 -DECLARE_REG 7, rdi, 64 -DECLARE_REG 8, rsi, 72 -DECLARE_REG 9, rbx, 80 -DECLARE_REG 10, rbp, 88 -DECLARE_REG 11, R14, 96 -DECLARE_REG 12, R15, 104 -DECLARE_REG 13, R12, 112 -DECLARE_REG 14, R13, 120 - -%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... - %assign num_args %1 - %assign regs_used %2 - ASSERT regs_used >= num_args - SETUP_STACK_POINTER %4 - ASSERT regs_used <= 15 - PUSH_IF_USED 7, 8, 9, 10, 11, 12, 13, 14 - ALLOC_STACK %4, %3 - %if mmsize != 8 && stack_size == 0 - WIN64_SPILL_XMM %3 - %endif - LOAD_IF_USED 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 - DEFINE_ARGS_INTERNAL %0, %4, %5 -%endmacro - -%macro WIN64_PUSH_XMM 0 - ; Use the shadow space to store XMM6 and XMM7, the rest needs stack space allocated. - %if xmm_regs_used > 6 + high_mm_regs - movaps [rstk + stack_offset + 8], xmm6 - %endif - %if xmm_regs_used > 7 + high_mm_regs - movaps [rstk + stack_offset + 24], xmm7 - %endif - %assign %%xmm_regs_on_stack xmm_regs_used - high_mm_regs - 8 - %if %%xmm_regs_on_stack > 0 - %assign %%i 8 - %rep %%xmm_regs_on_stack - movaps [rsp + (%%i-8)*16 + stack_size + 32], xmm %+ %%i - %assign %%i %%i+1 - %endrep - %endif -%endmacro - -%macro WIN64_SPILL_XMM 1 - %assign xmm_regs_used %1 - ASSERT xmm_regs_used <= 16 + high_mm_regs - %assign %%xmm_regs_on_stack xmm_regs_used - high_mm_regs - 8 - %if %%xmm_regs_on_stack > 0 - ; Allocate stack space for callee-saved xmm registers plus shadow space and align the stack. - %assign %%pad %%xmm_regs_on_stack*16 + 32 - %assign stack_size_padded %%pad + ((-%%pad-stack_offset-gprsize) & (STACK_ALIGNMENT-1)) - SUB rsp, stack_size_padded - %endif - WIN64_PUSH_XMM -%endmacro - -%macro WIN64_RESTORE_XMM_INTERNAL 0 - %assign %%pad_size 0 - %assign %%xmm_regs_on_stack xmm_regs_used - high_mm_regs - 8 - %if %%xmm_regs_on_stack > 0 - %assign %%i xmm_regs_used - high_mm_regs - %rep %%xmm_regs_on_stack - %assign %%i %%i-1 - movaps xmm %+ %%i, [rsp + (%%i-8)*16 + stack_size + 32] - %endrep - %endif - %if stack_size_padded > 0 - %if stack_size > 0 && required_stack_alignment > STACK_ALIGNMENT - mov rsp, rstkm - %else - add rsp, stack_size_padded - %assign %%pad_size stack_size_padded - %endif - %endif - %if xmm_regs_used > 7 + high_mm_regs - movaps xmm7, [rsp + stack_offset - %%pad_size + 24] - %endif - %if xmm_regs_used > 6 + high_mm_regs - movaps xmm6, [rsp + stack_offset - %%pad_size + 8] - %endif -%endmacro - -%macro WIN64_RESTORE_XMM 0 - WIN64_RESTORE_XMM_INTERNAL - %assign stack_offset (stack_offset-stack_size_padded) - %assign stack_size_padded 0 - %assign xmm_regs_used 0 -%endmacro - -%define has_epilogue regs_used > 7 || stack_size > 0 || vzeroupper_required || xmm_regs_used > 6+high_mm_regs - -%macro RET 0 - WIN64_RESTORE_XMM_INTERNAL - POP_IF_USED 14, 13, 12, 11, 10, 9, 8, 7 - %if vzeroupper_required - vzeroupper - %endif - AUTO_REP_RET -%endmacro - -%elif ARCH_X86_64 ; *nix x64 ;============================================= - -DECLARE_REG 0, rdi -DECLARE_REG 1, rsi -DECLARE_REG 2, rdx -DECLARE_REG 3, rcx -DECLARE_REG 4, R8 -DECLARE_REG 5, R9 -DECLARE_REG 6, rax, 8 -DECLARE_REG 7, R10, 16 -DECLARE_REG 8, R11, 24 -DECLARE_REG 9, rbx, 32 -DECLARE_REG 10, rbp, 40 -DECLARE_REG 11, R14, 48 -DECLARE_REG 12, R15, 56 -DECLARE_REG 13, R12, 64 -DECLARE_REG 14, R13, 72 - -%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... - %assign num_args %1 - %assign regs_used %2 - %assign xmm_regs_used %3 - ASSERT regs_used >= num_args - SETUP_STACK_POINTER %4 - ASSERT regs_used <= 15 - PUSH_IF_USED 9, 10, 11, 12, 13, 14 - ALLOC_STACK %4 - LOAD_IF_USED 6, 7, 8, 9, 10, 11, 12, 13, 14 - DEFINE_ARGS_INTERNAL %0, %4, %5 -%endmacro - -%define has_epilogue regs_used > 9 || stack_size > 0 || vzeroupper_required - -%macro RET 0 - %if stack_size_padded > 0 - %if required_stack_alignment > STACK_ALIGNMENT - mov rsp, rstkm - %else - add rsp, stack_size_padded - %endif - %endif - POP_IF_USED 14, 13, 12, 11, 10, 9 - %if vzeroupper_required - vzeroupper - %endif - AUTO_REP_RET -%endmacro - -%else ; X86_32 ;============================================================== - -DECLARE_REG 0, eax, 4 -DECLARE_REG 1, ecx, 8 -DECLARE_REG 2, edx, 12 -DECLARE_REG 3, ebx, 16 -DECLARE_REG 4, esi, 20 -DECLARE_REG 5, edi, 24 -DECLARE_REG 6, ebp, 28 -%define rsp esp - -%macro DECLARE_ARG 1-* - %rep %0 - %define r%1m [rstk + stack_offset + 4*%1 + 4] - %define r%1mp dword r%1m - %rotate 1 - %endrep -%endmacro - -DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 - -%macro PROLOGUE 2-5+ ; #args, #regs, #xmm_regs, [stack_size,] arg_names... - %assign num_args %1 - %assign regs_used %2 - ASSERT regs_used >= num_args - %if num_args > 7 - %assign num_args 7 - %endif - %if regs_used > 7 - %assign regs_used 7 - %endif - SETUP_STACK_POINTER %4 - ASSERT regs_used <= 7 - PUSH_IF_USED 3, 4, 5, 6 - ALLOC_STACK %4 - LOAD_IF_USED 0, 1, 2, 3, 4, 5, 6 - DEFINE_ARGS_INTERNAL %0, %4, %5 -%endmacro - -%define has_epilogue regs_used > 3 || stack_size > 0 || vzeroupper_required - -%macro RET 0 - %if stack_size_padded > 0 - %if required_stack_alignment > STACK_ALIGNMENT - mov rsp, rstkm - %else - add rsp, stack_size_padded - %endif - %endif - POP_IF_USED 6, 5, 4, 3 - %if vzeroupper_required - vzeroupper - %endif - AUTO_REP_RET -%endmacro - -%endif ;====================================================================== - -%if WIN64 == 0 - %macro WIN64_SPILL_XMM 1 - %endmacro - %macro WIN64_RESTORE_XMM 0 - %endmacro - %macro WIN64_PUSH_XMM 0 - %endmacro -%endif - -; On AMD cpus <=K10, an ordinary ret is slow if it immediately follows either -; a branch or a branch target. So switch to a 2-byte form of ret in that case. -; We can automatically detect "follows a branch", but not a branch target. -; (SSSE3 is a sufficient condition to know that your cpu doesn't have this problem.) -%macro REP_RET 0 - %if has_epilogue || cpuflag(ssse3) - RET - %else - rep ret - %endif - annotate_function_size -%endmacro - -%define last_branch_adr $$ -%macro AUTO_REP_RET 0 - %if notcpuflag(ssse3) - times ((last_branch_adr-$)>>31)+1 rep ; times 1 iff $ == last_branch_adr. - %endif - ret - annotate_function_size -%endmacro - -%macro BRANCH_INSTR 0-* - %rep %0 - %macro %1 1-2 %1 - %2 %1 - %if notcpuflag(ssse3) - %%branch_instr equ $ - %xdefine last_branch_adr %%branch_instr - %endif - %endmacro - %rotate 1 - %endrep -%endmacro - -BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, jna, jnae, jb, jbe, jnb, jnbe, jc, jnc, js, jns, jo, jno, jp, jnp - -%macro TAIL_CALL 2 ; callee, is_nonadjacent - %if has_epilogue - call %1 - RET - %elif %2 - jmp %1 - %endif - annotate_function_size -%endmacro - -;============================================================================= -; arch-independent part -;============================================================================= - -%assign function_align 16 - -; Begin a function. -; Applies any symbol mangling needed for C linkage, and sets up a define such that -; subsequent uses of the function name automatically refer to the mangled version. -; Appends cpuflags to the function name if cpuflags has been specified. -; The "" empty default parameter is a workaround for nasm, which fails if SUFFIX -; is empty and we call cglobal_internal with just %1 %+ SUFFIX (without %2). -%macro cglobal 1-2+ "" ; name, [PROLOGUE args] - cglobal_internal 1, %1 %+ SUFFIX, %2 -%endmacro -%macro cvisible 1-2+ "" ; name, [PROLOGUE args] - cglobal_internal 0, %1 %+ SUFFIX, %2 -%endmacro -%macro cglobal_internal 2-3+ - annotate_function_size - %if %1 - %xdefine %%FUNCTION_PREFIX private_prefix - %xdefine %%VISIBILITY hidden - %else - %xdefine %%FUNCTION_PREFIX public_prefix - %xdefine %%VISIBILITY - %endif - %ifndef cglobaled_%2 - %xdefine %2 mangle(%%FUNCTION_PREFIX %+ _ %+ %2) - %xdefine %2.skip_prologue %2 %+ .skip_prologue - CAT_XDEFINE cglobaled_, %2, 1 - %endif - %xdefine current_function %2 - %xdefine current_function_section __SECT__ - %if FORMAT_ELF - global %2:function %%VISIBILITY - %else - global %2 - %endif - align function_align - %2: - RESET_MM_PERMUTATION ; needed for x86-64, also makes disassembly somewhat nicer - %xdefine rstk rsp ; copy of the original stack pointer, used when greater alignment than the known stack alignment is required - %assign stack_offset 0 ; stack pointer offset relative to the return address - %assign stack_size 0 ; amount of stack space that can be freely used inside a function - %assign stack_size_padded 0 ; total amount of allocated stack space, including space for callee-saved xmm registers on WIN64 and alignment padding - %assign xmm_regs_used 0 ; number of XMM registers requested, used for dealing with callee-saved registers on WIN64 and vzeroupper - %ifnidn %3, "" - PROLOGUE %3 - %endif -%endmacro - -; Create a global symbol from a local label with the correct name mangling and type -%macro cglobal_label 1 - %if FORMAT_ELF - global current_function %+ %1:function hidden - %else - global current_function %+ %1 - %endif - %1: -%endmacro - -%macro cextern 1 - %xdefine %1 mangle(private_prefix %+ _ %+ %1) - CAT_XDEFINE cglobaled_, %1, 1 - extern %1 -%endmacro - -; like cextern, but without the prefix -%macro cextern_naked 1 - %ifdef PREFIX - %xdefine %1 mangle(%1) - %endif - CAT_XDEFINE cglobaled_, %1, 1 - extern %1 -%endmacro - -%macro const 1-2+ - %xdefine %1 mangle(private_prefix %+ _ %+ %1) - %if FORMAT_ELF - global %1:data hidden - %else - global %1 - %endif - %1: %2 -%endmacro - -; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default. -%if FORMAT_ELF - [SECTION .note.GNU-stack noalloc noexec nowrite progbits] -%endif - -; Tell debuggers how large the function was. -; This may be invoked multiple times per function; we rely on later instances overriding earlier ones. -; This is invoked by RET and similar macros, and also cglobal does it for the previous function, -; but if the last function in a source file doesn't use any of the standard macros for its epilogue, -; then its size might be unspecified. -%macro annotate_function_size 0 - %ifdef __YASM_VER__ - %ifdef current_function - %if FORMAT_ELF - current_function_section - %%ecf equ $ - size current_function %%ecf - current_function - __SECT__ - %endif - %endif - %endif -%endmacro - -; cpuflags - -%assign cpuflags_mmx (1<<0) -%assign cpuflags_mmx2 (1<<1) | cpuflags_mmx -%assign cpuflags_3dnow (1<<2) | cpuflags_mmx -%assign cpuflags_3dnowext (1<<3) | cpuflags_3dnow -%assign cpuflags_sse (1<<4) | cpuflags_mmx2 -%assign cpuflags_sse2 (1<<5) | cpuflags_sse -%assign cpuflags_sse2slow (1<<6) | cpuflags_sse2 -%assign cpuflags_lzcnt (1<<7) | cpuflags_sse2 -%assign cpuflags_sse3 (1<<8) | cpuflags_sse2 -%assign cpuflags_ssse3 (1<<9) | cpuflags_sse3 -%assign cpuflags_sse4 (1<<10)| cpuflags_ssse3 -%assign cpuflags_sse42 (1<<11)| cpuflags_sse4 -%assign cpuflags_aesni (1<<12)| cpuflags_sse42 -%assign cpuflags_avx (1<<13)| cpuflags_sse42 -%assign cpuflags_xop (1<<14)| cpuflags_avx -%assign cpuflags_fma4 (1<<15)| cpuflags_avx -%assign cpuflags_fma3 (1<<16)| cpuflags_avx -%assign cpuflags_bmi1 (1<<17)| cpuflags_avx|cpuflags_lzcnt -%assign cpuflags_bmi2 (1<<18)| cpuflags_bmi1 -%assign cpuflags_avx2 (1<<19)| cpuflags_fma3|cpuflags_bmi2 -%assign cpuflags_avx512 (1<<20)| cpuflags_avx2 ; F, CD, BW, DQ, VL - -%assign cpuflags_cache32 (1<<21) -%assign cpuflags_cache64 (1<<22) -%assign cpuflags_aligned (1<<23) ; not a cpu feature, but a function variant -%assign cpuflags_atom (1<<24) - -; Returns a boolean value expressing whether or not the specified cpuflag is enabled. -%define cpuflag(x) (((((cpuflags & (cpuflags_ %+ x)) ^ (cpuflags_ %+ x)) - 1) >> 31) & 1) -%define notcpuflag(x) (cpuflag(x) ^ 1) - -; Takes an arbitrary number of cpuflags from the above list. -; All subsequent functions (up to the next INIT_CPUFLAGS) is built for the specified cpu. -; You shouldn't need to invoke this macro directly, it's a subroutine for INIT_MMX &co. -%macro INIT_CPUFLAGS 0-* - %xdefine SUFFIX - %undef cpuname - %assign cpuflags 0 - - %if %0 >= 1 - %rep %0 - %ifdef cpuname - %xdefine cpuname cpuname %+ _%1 - %else - %xdefine cpuname %1 - %endif - %assign cpuflags cpuflags | cpuflags_%1 - %rotate 1 - %endrep - %xdefine SUFFIX _ %+ cpuname - - %if cpuflag(avx) - %assign avx_enabled 1 - %endif - %if (mmsize == 16 && notcpuflag(sse2)) || (mmsize == 32 && notcpuflag(avx2)) - %define mova movaps - %define movu movups - %define movnta movntps - %endif - %if cpuflag(aligned) - %define movu mova - %elif cpuflag(sse3) && notcpuflag(ssse3) - %define movu lddqu - %endif - %endif - - %if ARCH_X86_64 || cpuflag(sse2) - CPUNOP amdnop - %else - CPUNOP basicnop - %endif -%endmacro - -; Merge mmx, sse*, and avx* -; m# is a simd register of the currently selected size -; xm# is the corresponding xmm register if mmsize >= 16, otherwise the same as m# -; ym# is the corresponding ymm register if mmsize >= 32, otherwise the same as m# -; zm# is the corresponding zmm register if mmsize >= 64, otherwise the same as m# -; (All 4 remain in sync through SWAP.) - -%macro CAT_XDEFINE 3 - %xdefine %1%2 %3 -%endmacro - -%macro CAT_UNDEF 2 - %undef %1%2 -%endmacro - -%macro DEFINE_MMREGS 1 ; mmtype - %assign %%prev_mmregs 0 - %ifdef num_mmregs - %assign %%prev_mmregs num_mmregs - %endif - - %assign num_mmregs 8 - %if ARCH_X86_64 && mmsize >= 16 - %assign num_mmregs 16 - %if cpuflag(avx512) || mmsize == 64 - %assign num_mmregs 32 - %endif - %endif - - %assign %%i 0 - %rep num_mmregs - CAT_XDEFINE m, %%i, %1 %+ %%i - CAT_XDEFINE nn%1, %%i, %%i - %assign %%i %%i+1 - %endrep - %if %%prev_mmregs > num_mmregs - %rep %%prev_mmregs - num_mmregs - CAT_UNDEF m, %%i - CAT_UNDEF nn %+ mmtype, %%i - %assign %%i %%i+1 - %endrep - %endif - %xdefine mmtype %1 -%endmacro - -; Prefer registers 16-31 over 0-15 to avoid having to use vzeroupper -%macro AVX512_MM_PERMUTATION 0-1 0 ; start_reg - %if ARCH_X86_64 && cpuflag(avx512) - %assign %%i %1 - %rep 16-%1 - %assign %%i_high %%i+16 - SWAP %%i, %%i_high - %assign %%i %%i+1 - %endrep - %endif -%endmacro - -%macro INIT_MMX 0-1+ - %assign avx_enabled 0 - %define RESET_MM_PERMUTATION INIT_MMX %1 - %define mmsize 8 - %define mova movq - %define movu movq - %define movh movd - %define movnta movntq - INIT_CPUFLAGS %1 - DEFINE_MMREGS mm -%endmacro - -%macro INIT_XMM 0-1+ - %assign avx_enabled 0 - %define RESET_MM_PERMUTATION INIT_XMM %1 - %define mmsize 16 - %define mova movdqa - %define movu movdqu - %define movh movq - %define movnta movntdq - INIT_CPUFLAGS %1 - DEFINE_MMREGS xmm - %if WIN64 - AVX512_MM_PERMUTATION 6 ; Swap callee-saved registers with volatile registers - %endif -%endmacro - -%macro INIT_YMM 0-1+ - %assign avx_enabled 1 - %define RESET_MM_PERMUTATION INIT_YMM %1 - %define mmsize 32 - %define mova movdqa - %define movu movdqu - %undef movh - %define movnta movntdq - INIT_CPUFLAGS %1 - DEFINE_MMREGS ymm - AVX512_MM_PERMUTATION -%endmacro - -%macro INIT_ZMM 0-1+ - %assign avx_enabled 1 - %define RESET_MM_PERMUTATION INIT_ZMM %1 - %define mmsize 64 - %define mova movdqa - %define movu movdqu - %undef movh - %define movnta movntdq - INIT_CPUFLAGS %1 - DEFINE_MMREGS zmm - AVX512_MM_PERMUTATION -%endmacro - -INIT_XMM - -%macro DECLARE_MMCAST 1 - %define mmmm%1 mm%1 - %define mmxmm%1 mm%1 - %define mmymm%1 mm%1 - %define mmzmm%1 mm%1 - %define xmmmm%1 mm%1 - %define xmmxmm%1 xmm%1 - %define xmmymm%1 xmm%1 - %define xmmzmm%1 xmm%1 - %define ymmmm%1 mm%1 - %define ymmxmm%1 xmm%1 - %define ymmymm%1 ymm%1 - %define ymmzmm%1 ymm%1 - %define zmmmm%1 mm%1 - %define zmmxmm%1 xmm%1 - %define zmmymm%1 ymm%1 - %define zmmzmm%1 zmm%1 - %define xm%1 xmm %+ m%1 - %define ym%1 ymm %+ m%1 - %define zm%1 zmm %+ m%1 -%endmacro - -%assign i 0 -%rep 32 - DECLARE_MMCAST i - %assign i i+1 -%endrep - -; I often want to use macros that permute their arguments. e.g. there's no -; efficient way to implement butterfly or transpose or dct without swapping some -; arguments. -; -; I would like to not have to manually keep track of the permutations: -; If I insert a permutation in the middle of a function, it should automatically -; change everything that follows. For more complex macros I may also have multiple -; implementations, e.g. the SSE2 and SSSE3 versions may have different permutations. -; -; Hence these macros. Insert a PERMUTE or some SWAPs at the end of a macro that -; permutes its arguments. It's equivalent to exchanging the contents of the -; registers, except that this way you exchange the register names instead, so it -; doesn't cost any cycles. - -%macro PERMUTE 2-* ; takes a list of pairs to swap - %rep %0/2 - %xdefine %%tmp%2 m%2 - %rotate 2 - %endrep - %rep %0/2 - %xdefine m%1 %%tmp%2 - CAT_XDEFINE nn, m%1, %1 - %rotate 2 - %endrep -%endmacro - -%macro SWAP 2+ ; swaps a single chain (sometimes more concise than pairs) - %ifnum %1 ; SWAP 0, 1, ... - SWAP_INTERNAL_NUM %1, %2 - %else ; SWAP m0, m1, ... - SWAP_INTERNAL_NAME %1, %2 - %endif -%endmacro - -%macro SWAP_INTERNAL_NUM 2-* - %rep %0-1 - %xdefine %%tmp m%1 - %xdefine m%1 m%2 - %xdefine m%2 %%tmp - CAT_XDEFINE nn, m%1, %1 - CAT_XDEFINE nn, m%2, %2 - %rotate 1 - %endrep -%endmacro - -%macro SWAP_INTERNAL_NAME 2-* - %xdefine %%args nn %+ %1 - %rep %0-1 - %xdefine %%args %%args, nn %+ %2 - %rotate 1 - %endrep - SWAP_INTERNAL_NUM %%args -%endmacro - -; If SAVE_MM_PERMUTATION is placed at the end of a function, then any later -; calls to that function will automatically load the permutation, so values can -; be returned in mmregs. -%macro SAVE_MM_PERMUTATION 0-1 - %if %0 - %xdefine %%f %1_m - %else - %xdefine %%f current_function %+ _m - %endif - %assign %%i 0 - %rep num_mmregs - CAT_XDEFINE %%f, %%i, m %+ %%i - %assign %%i %%i+1 - %endrep -%endmacro - -%macro LOAD_MM_PERMUTATION 1 ; name to load from - %ifdef %1_m0 - %assign %%i 0 - %rep num_mmregs - CAT_XDEFINE m, %%i, %1_m %+ %%i - CAT_XDEFINE nn, m %+ %%i, %%i - %assign %%i %%i+1 - %endrep - %endif -%endmacro - -; Append cpuflags to the callee's name iff the appended name is known and the plain name isn't -%macro call 1 - %ifid %1 - call_internal %1 %+ SUFFIX, %1 - %else - call %1 - %endif -%endmacro -%macro call_internal 2 - %xdefine %%i %2 - %ifndef cglobaled_%2 - %ifdef cglobaled_%1 - %xdefine %%i %1 - %endif - %endif - call %%i - LOAD_MM_PERMUTATION %%i -%endmacro - -; Substitutions that reduce instruction size but are functionally equivalent -%macro add 2 - %ifnum %2 - %if %2==128 - sub %1, -128 - %else - add %1, %2 - %endif - %else - add %1, %2 - %endif -%endmacro - -%macro sub 2 - %ifnum %2 - %if %2==128 - add %1, -128 - %else - sub %1, %2 - %endif - %else - sub %1, %2 - %endif -%endmacro - -;============================================================================= -; AVX abstraction layer -;============================================================================= - -%assign i 0 -%rep 32 - %if i < 8 - CAT_XDEFINE sizeofmm, i, 8 - CAT_XDEFINE regnumofmm, i, i - %endif - CAT_XDEFINE sizeofxmm, i, 16 - CAT_XDEFINE sizeofymm, i, 32 - CAT_XDEFINE sizeofzmm, i, 64 - CAT_XDEFINE regnumofxmm, i, i - CAT_XDEFINE regnumofymm, i, i - CAT_XDEFINE regnumofzmm, i, i - %assign i i+1 -%endrep -%undef i - -%macro CHECK_AVX_INSTR_EMU 3-* - %xdefine %%opcode %1 - %xdefine %%dst %2 - %rep %0-2 - %ifidn %%dst, %3 - %error non-avx emulation of ``%%opcode'' is not supported - %endif - %rotate 1 - %endrep -%endmacro - -;%1 == instruction -;%2 == minimal instruction set -;%3 == 1 if float, 0 if int -;%4 == 1 if 4-operand emulation, 0 if 3-operand emulation, 255 otherwise (no emulation) -;%5 == 1 if commutative (i.e. doesn't matter which src arg is which), 0 if not -;%6+: operands -%macro RUN_AVX_INSTR 6-9+ - %ifnum sizeof%7 - %assign __sizeofreg sizeof%7 - %elifnum sizeof%6 - %assign __sizeofreg sizeof%6 - %else - %assign __sizeofreg mmsize - %endif - %assign __emulate_avx 0 - %if avx_enabled && __sizeofreg >= 16 - %xdefine __instr v%1 - %else - %xdefine __instr %1 - %if %0 >= 8+%4 - %assign __emulate_avx 1 - %endif - %endif - %ifnidn %2, fnord - %ifdef cpuname - %if notcpuflag(%2) - %error use of ``%1'' %2 instruction in cpuname function: current_function - %elif cpuflags_%2 < cpuflags_sse && notcpuflag(sse2) && __sizeofreg > 8 - %error use of ``%1'' sse2 instruction in cpuname function: current_function - %endif - %endif - %endif - - %if __emulate_avx - %xdefine __src1 %7 - %xdefine __src2 %8 - %if %5 && %4 == 0 - %ifnidn %6, %7 - %ifidn %6, %8 - %xdefine __src1 %8 - %xdefine __src2 %7 - %elifnnum sizeof%8 - ; 3-operand AVX instructions with a memory arg can only have it in src2, - ; whereas SSE emulation prefers to have it in src1 (i.e. the mov). - ; So, if the instruction is commutative with a memory arg, swap them. - %xdefine __src1 %8 - %xdefine __src2 %7 - %endif - %endif - %endif - %ifnidn %6, __src1 - %if %0 >= 9 - CHECK_AVX_INSTR_EMU {%1 %6, %7, %8, %9}, %6, __src2, %9 - %else - CHECK_AVX_INSTR_EMU {%1 %6, %7, %8}, %6, __src2 - %endif - %if __sizeofreg == 8 - MOVQ %6, __src1 - %elif %3 - MOVAPS %6, __src1 - %else - MOVDQA %6, __src1 - %endif - %endif - %if %0 >= 9 - %1 %6, __src2, %9 - %else - %1 %6, __src2 - %endif - %elif %0 >= 9 - __instr %6, %7, %8, %9 - %elif %0 == 8 - __instr %6, %7, %8 - %elif %0 == 7 - __instr %6, %7 - %else - __instr %6 - %endif -%endmacro - -;%1 == instruction -;%2 == minimal instruction set -;%3 == 1 if float, 0 if int -;%4 == 1 if 4-operand emulation, 0 if 3-operand emulation, 255 otherwise (no emulation) -;%5 == 1 if commutative (i.e. doesn't matter which src arg is which), 0 if not -%macro AVX_INSTR 1-5 fnord, 0, 255, 0 - %macro %1 1-10 fnord, fnord, fnord, fnord, %1, %2, %3, %4, %5 - %ifidn %2, fnord - RUN_AVX_INSTR %6, %7, %8, %9, %10, %1 - %elifidn %3, fnord - RUN_AVX_INSTR %6, %7, %8, %9, %10, %1, %2 - %elifidn %4, fnord - RUN_AVX_INSTR %6, %7, %8, %9, %10, %1, %2, %3 - %elifidn %5, fnord - RUN_AVX_INSTR %6, %7, %8, %9, %10, %1, %2, %3, %4 - %else - RUN_AVX_INSTR %6, %7, %8, %9, %10, %1, %2, %3, %4, %5 - %endif - %endmacro -%endmacro - -; Instructions with both VEX/EVEX and legacy encodings -; Non-destructive instructions are written without parameters -AVX_INSTR addpd, sse2, 1, 0, 1 -AVX_INSTR addps, sse, 1, 0, 1 -AVX_INSTR addsd, sse2, 1, 0, 0 -AVX_INSTR addss, sse, 1, 0, 0 -AVX_INSTR addsubpd, sse3, 1, 0, 0 -AVX_INSTR addsubps, sse3, 1, 0, 0 -AVX_INSTR aesdec, aesni, 0, 0, 0 -AVX_INSTR aesdeclast, aesni, 0, 0, 0 -AVX_INSTR aesenc, aesni, 0, 0, 0 -AVX_INSTR aesenclast, aesni, 0, 0, 0 -AVX_INSTR aesimc, aesni -AVX_INSTR aeskeygenassist, aesni -AVX_INSTR andnpd, sse2, 1, 0, 0 -AVX_INSTR andnps, sse, 1, 0, 0 -AVX_INSTR andpd, sse2, 1, 0, 1 -AVX_INSTR andps, sse, 1, 0, 1 -AVX_INSTR blendpd, sse4, 1, 1, 0 -AVX_INSTR blendps, sse4, 1, 1, 0 -AVX_INSTR blendvpd, sse4 ; can't be emulated -AVX_INSTR blendvps, sse4 ; can't be emulated -AVX_INSTR cmpeqpd, sse2, 1, 0, 1 -AVX_INSTR cmpeqps, sse, 1, 0, 1 -AVX_INSTR cmpeqsd, sse2, 1, 0, 0 -AVX_INSTR cmpeqss, sse, 1, 0, 0 -AVX_INSTR cmplepd, sse2, 1, 0, 0 -AVX_INSTR cmpleps, sse, 1, 0, 0 -AVX_INSTR cmplesd, sse2, 1, 0, 0 -AVX_INSTR cmpless, sse, 1, 0, 0 -AVX_INSTR cmpltpd, sse2, 1, 0, 0 -AVX_INSTR cmpltps, sse, 1, 0, 0 -AVX_INSTR cmpltsd, sse2, 1, 0, 0 -AVX_INSTR cmpltss, sse, 1, 0, 0 -AVX_INSTR cmpneqpd, sse2, 1, 0, 1 -AVX_INSTR cmpneqps, sse, 1, 0, 1 -AVX_INSTR cmpneqsd, sse2, 1, 0, 0 -AVX_INSTR cmpneqss, sse, 1, 0, 0 -AVX_INSTR cmpnlepd, sse2, 1, 0, 0 -AVX_INSTR cmpnleps, sse, 1, 0, 0 -AVX_INSTR cmpnlesd, sse2, 1, 0, 0 -AVX_INSTR cmpnless, sse, 1, 0, 0 -AVX_INSTR cmpnltpd, sse2, 1, 0, 0 -AVX_INSTR cmpnltps, sse, 1, 0, 0 -AVX_INSTR cmpnltsd, sse2, 1, 0, 0 -AVX_INSTR cmpnltss, sse, 1, 0, 0 -AVX_INSTR cmpordpd, sse2 1, 0, 1 -AVX_INSTR cmpordps, sse 1, 0, 1 -AVX_INSTR cmpordsd, sse2 1, 0, 0 -AVX_INSTR cmpordss, sse 1, 0, 0 -AVX_INSTR cmppd, sse2, 1, 1, 0 -AVX_INSTR cmpps, sse, 1, 1, 0 -AVX_INSTR cmpsd, sse2, 1, 1, 0 -AVX_INSTR cmpss, sse, 1, 1, 0 -AVX_INSTR cmpunordpd, sse2, 1, 0, 1 -AVX_INSTR cmpunordps, sse, 1, 0, 1 -AVX_INSTR cmpunordsd, sse2, 1, 0, 0 -AVX_INSTR cmpunordss, sse, 1, 0, 0 -AVX_INSTR comisd, sse2 -AVX_INSTR comiss, sse -AVX_INSTR cvtdq2pd, sse2 -AVX_INSTR cvtdq2ps, sse2 -AVX_INSTR cvtpd2dq, sse2 -AVX_INSTR cvtpd2ps, sse2 -AVX_INSTR cvtps2dq, sse2 -AVX_INSTR cvtps2pd, sse2 -AVX_INSTR cvtsd2si, sse2 -AVX_INSTR cvtsd2ss, sse2, 1, 0, 0 -AVX_INSTR cvtsi2sd, sse2, 1, 0, 0 -AVX_INSTR cvtsi2ss, sse, 1, 0, 0 -AVX_INSTR cvtss2sd, sse2, 1, 0, 0 -AVX_INSTR cvtss2si, sse -AVX_INSTR cvttpd2dq, sse2 -AVX_INSTR cvttps2dq, sse2 -AVX_INSTR cvttsd2si, sse2 -AVX_INSTR cvttss2si, sse -AVX_INSTR divpd, sse2, 1, 0, 0 -AVX_INSTR divps, sse, 1, 0, 0 -AVX_INSTR divsd, sse2, 1, 0, 0 -AVX_INSTR divss, sse, 1, 0, 0 -AVX_INSTR dppd, sse4, 1, 1, 0 -AVX_INSTR dpps, sse4, 1, 1, 0 -AVX_INSTR extractps, sse4 -AVX_INSTR haddpd, sse3, 1, 0, 0 -AVX_INSTR haddps, sse3, 1, 0, 0 -AVX_INSTR hsubpd, sse3, 1, 0, 0 -AVX_INSTR hsubps, sse3, 1, 0, 0 -AVX_INSTR insertps, sse4, 1, 1, 0 -AVX_INSTR lddqu, sse3 -AVX_INSTR ldmxcsr, sse -AVX_INSTR maskmovdqu, sse2 -AVX_INSTR maxpd, sse2, 1, 0, 1 -AVX_INSTR maxps, sse, 1, 0, 1 -AVX_INSTR maxsd, sse2, 1, 0, 0 -AVX_INSTR maxss, sse, 1, 0, 0 -AVX_INSTR minpd, sse2, 1, 0, 1 -AVX_INSTR minps, sse, 1, 0, 1 -AVX_INSTR minsd, sse2, 1, 0, 0 -AVX_INSTR minss, sse, 1, 0, 0 -AVX_INSTR movapd, sse2 -AVX_INSTR movaps, sse -AVX_INSTR movd, mmx -AVX_INSTR movddup, sse3 -AVX_INSTR movdqa, sse2 -AVX_INSTR movdqu, sse2 -AVX_INSTR movhlps, sse, 1, 0, 0 -AVX_INSTR movhpd, sse2, 1, 0, 0 -AVX_INSTR movhps, sse, 1, 0, 0 -AVX_INSTR movlhps, sse, 1, 0, 0 -AVX_INSTR movlpd, sse2, 1, 0, 0 -AVX_INSTR movlps, sse, 1, 0, 0 -AVX_INSTR movmskpd, sse2 -AVX_INSTR movmskps, sse -AVX_INSTR movntdq, sse2 -AVX_INSTR movntdqa, sse4 -AVX_INSTR movntpd, sse2 -AVX_INSTR movntps, sse -AVX_INSTR movq, mmx -AVX_INSTR movsd, sse2, 1, 0, 0 -AVX_INSTR movshdup, sse3 -AVX_INSTR movsldup, sse3 -AVX_INSTR movss, sse, 1, 0, 0 -AVX_INSTR movupd, sse2 -AVX_INSTR movups, sse -AVX_INSTR mpsadbw, sse4, 0, 1, 0 -AVX_INSTR mulpd, sse2, 1, 0, 1 -AVX_INSTR mulps, sse, 1, 0, 1 -AVX_INSTR mulsd, sse2, 1, 0, 0 -AVX_INSTR mulss, sse, 1, 0, 0 -AVX_INSTR orpd, sse2, 1, 0, 1 -AVX_INSTR orps, sse, 1, 0, 1 -AVX_INSTR pabsb, ssse3 -AVX_INSTR pabsd, ssse3 -AVX_INSTR pabsw, ssse3 -AVX_INSTR packsswb, mmx, 0, 0, 0 -AVX_INSTR packssdw, mmx, 0, 0, 0 -AVX_INSTR packuswb, mmx, 0, 0, 0 -AVX_INSTR packusdw, sse4, 0, 0, 0 -AVX_INSTR paddb, mmx, 0, 0, 1 -AVX_INSTR paddw, mmx, 0, 0, 1 -AVX_INSTR paddd, mmx, 0, 0, 1 -AVX_INSTR paddq, sse2, 0, 0, 1 -AVX_INSTR paddsb, mmx, 0, 0, 1 -AVX_INSTR paddsw, mmx, 0, 0, 1 -AVX_INSTR paddusb, mmx, 0, 0, 1 -AVX_INSTR paddusw, mmx, 0, 0, 1 -AVX_INSTR palignr, ssse3, 0, 1, 0 -AVX_INSTR pand, mmx, 0, 0, 1 -AVX_INSTR pandn, mmx, 0, 0, 0 -AVX_INSTR pavgb, mmx2, 0, 0, 1 -AVX_INSTR pavgw, mmx2, 0, 0, 1 -AVX_INSTR pblendvb, sse4 ; can't be emulated -AVX_INSTR pblendw, sse4, 0, 1, 0 -AVX_INSTR pclmulqdq, fnord, 0, 1, 0 -AVX_INSTR pclmulhqhqdq, fnord, 0, 0, 0 -AVX_INSTR pclmulhqlqdq, fnord, 0, 0, 0 -AVX_INSTR pclmullqhqdq, fnord, 0, 0, 0 -AVX_INSTR pclmullqlqdq, fnord, 0, 0, 0 -AVX_INSTR pcmpestri, sse42 -AVX_INSTR pcmpestrm, sse42 -AVX_INSTR pcmpistri, sse42 -AVX_INSTR pcmpistrm, sse42 -AVX_INSTR pcmpeqb, mmx, 0, 0, 1 -AVX_INSTR pcmpeqw, mmx, 0, 0, 1 -AVX_INSTR pcmpeqd, mmx, 0, 0, 1 -AVX_INSTR pcmpeqq, sse4, 0, 0, 1 -AVX_INSTR pcmpgtb, mmx, 0, 0, 0 -AVX_INSTR pcmpgtw, mmx, 0, 0, 0 -AVX_INSTR pcmpgtd, mmx, 0, 0, 0 -AVX_INSTR pcmpgtq, sse42, 0, 0, 0 -AVX_INSTR pextrb, sse4 -AVX_INSTR pextrd, sse4 -AVX_INSTR pextrq, sse4 -AVX_INSTR pextrw, mmx2 -AVX_INSTR phaddw, ssse3, 0, 0, 0 -AVX_INSTR phaddd, ssse3, 0, 0, 0 -AVX_INSTR phaddsw, ssse3, 0, 0, 0 -AVX_INSTR phminposuw, sse4 -AVX_INSTR phsubw, ssse3, 0, 0, 0 -AVX_INSTR phsubd, ssse3, 0, 0, 0 -AVX_INSTR phsubsw, ssse3, 0, 0, 0 -AVX_INSTR pinsrb, sse4, 0, 1, 0 -AVX_INSTR pinsrd, sse4, 0, 1, 0 -AVX_INSTR pinsrq, sse4, 0, 1, 0 -AVX_INSTR pinsrw, mmx2, 0, 1, 0 -AVX_INSTR pmaddwd, mmx, 0, 0, 1 -AVX_INSTR pmaddubsw, ssse3, 0, 0, 0 -AVX_INSTR pmaxsb, sse4, 0, 0, 1 -AVX_INSTR pmaxsw, mmx2, 0, 0, 1 -AVX_INSTR pmaxsd, sse4, 0, 0, 1 -AVX_INSTR pmaxub, mmx2, 0, 0, 1 -AVX_INSTR pmaxuw, sse4, 0, 0, 1 -AVX_INSTR pmaxud, sse4, 0, 0, 1 -AVX_INSTR pminsb, sse4, 0, 0, 1 -AVX_INSTR pminsw, mmx2, 0, 0, 1 -AVX_INSTR pminsd, sse4, 0, 0, 1 -AVX_INSTR pminub, mmx2, 0, 0, 1 -AVX_INSTR pminuw, sse4, 0, 0, 1 -AVX_INSTR pminud, sse4, 0, 0, 1 -AVX_INSTR pmovmskb, mmx2 -AVX_INSTR pmovsxbw, sse4 -AVX_INSTR pmovsxbd, sse4 -AVX_INSTR pmovsxbq, sse4 -AVX_INSTR pmovsxwd, sse4 -AVX_INSTR pmovsxwq, sse4 -AVX_INSTR pmovsxdq, sse4 -AVX_INSTR pmovzxbw, sse4 -AVX_INSTR pmovzxbd, sse4 -AVX_INSTR pmovzxbq, sse4 -AVX_INSTR pmovzxwd, sse4 -AVX_INSTR pmovzxwq, sse4 -AVX_INSTR pmovzxdq, sse4 -AVX_INSTR pmuldq, sse4, 0, 0, 1 -AVX_INSTR pmulhrsw, ssse3, 0, 0, 1 -AVX_INSTR pmulhuw, mmx2, 0, 0, 1 -AVX_INSTR pmulhw, mmx, 0, 0, 1 -AVX_INSTR pmullw, mmx, 0, 0, 1 -AVX_INSTR pmulld, sse4, 0, 0, 1 -AVX_INSTR pmuludq, sse2, 0, 0, 1 -AVX_INSTR por, mmx, 0, 0, 1 -AVX_INSTR psadbw, mmx2, 0, 0, 1 -AVX_INSTR pshufb, ssse3, 0, 0, 0 -AVX_INSTR pshufd, sse2 -AVX_INSTR pshufhw, sse2 -AVX_INSTR pshuflw, sse2 -AVX_INSTR psignb, ssse3, 0, 0, 0 -AVX_INSTR psignw, ssse3, 0, 0, 0 -AVX_INSTR psignd, ssse3, 0, 0, 0 -AVX_INSTR psllw, mmx, 0, 0, 0 -AVX_INSTR pslld, mmx, 0, 0, 0 -AVX_INSTR psllq, mmx, 0, 0, 0 -AVX_INSTR pslldq, sse2, 0, 0, 0 -AVX_INSTR psraw, mmx, 0, 0, 0 -AVX_INSTR psrad, mmx, 0, 0, 0 -AVX_INSTR psrlw, mmx, 0, 0, 0 -AVX_INSTR psrld, mmx, 0, 0, 0 -AVX_INSTR psrlq, mmx, 0, 0, 0 -AVX_INSTR psrldq, sse2, 0, 0, 0 -AVX_INSTR psubb, mmx, 0, 0, 0 -AVX_INSTR psubw, mmx, 0, 0, 0 -AVX_INSTR psubd, mmx, 0, 0, 0 -AVX_INSTR psubq, sse2, 0, 0, 0 -AVX_INSTR psubsb, mmx, 0, 0, 0 -AVX_INSTR psubsw, mmx, 0, 0, 0 -AVX_INSTR psubusb, mmx, 0, 0, 0 -AVX_INSTR psubusw, mmx, 0, 0, 0 -AVX_INSTR ptest, sse4 -AVX_INSTR punpckhbw, mmx, 0, 0, 0 -AVX_INSTR punpckhwd, mmx, 0, 0, 0 -AVX_INSTR punpckhdq, mmx, 0, 0, 0 -AVX_INSTR punpckhqdq, sse2, 0, 0, 0 -AVX_INSTR punpcklbw, mmx, 0, 0, 0 -AVX_INSTR punpcklwd, mmx, 0, 0, 0 -AVX_INSTR punpckldq, mmx, 0, 0, 0 -AVX_INSTR punpcklqdq, sse2, 0, 0, 0 -AVX_INSTR pxor, mmx, 0, 0, 1 -AVX_INSTR rcpps, sse -AVX_INSTR rcpss, sse, 1, 0, 0 -AVX_INSTR roundpd, sse4 -AVX_INSTR roundps, sse4 -AVX_INSTR roundsd, sse4, 1, 1, 0 -AVX_INSTR roundss, sse4, 1, 1, 0 -AVX_INSTR rsqrtps, sse -AVX_INSTR rsqrtss, sse, 1, 0, 0 -AVX_INSTR shufpd, sse2, 1, 1, 0 -AVX_INSTR shufps, sse, 1, 1, 0 -AVX_INSTR sqrtpd, sse2 -AVX_INSTR sqrtps, sse -AVX_INSTR sqrtsd, sse2, 1, 0, 0 -AVX_INSTR sqrtss, sse, 1, 0, 0 -AVX_INSTR stmxcsr, sse -AVX_INSTR subpd, sse2, 1, 0, 0 -AVX_INSTR subps, sse, 1, 0, 0 -AVX_INSTR subsd, sse2, 1, 0, 0 -AVX_INSTR subss, sse, 1, 0, 0 -AVX_INSTR ucomisd, sse2 -AVX_INSTR ucomiss, sse -AVX_INSTR unpckhpd, sse2, 1, 0, 0 -AVX_INSTR unpckhps, sse, 1, 0, 0 -AVX_INSTR unpcklpd, sse2, 1, 0, 0 -AVX_INSTR unpcklps, sse, 1, 0, 0 -AVX_INSTR xorpd, sse2, 1, 0, 1 -AVX_INSTR xorps, sse, 1, 0, 1 - -; 3DNow instructions, for sharing code between AVX, SSE and 3DN -AVX_INSTR pfadd, 3dnow, 1, 0, 1 -AVX_INSTR pfsub, 3dnow, 1, 0, 0 -AVX_INSTR pfmul, 3dnow, 1, 0, 1 - -; base-4 constants for shuffles -%assign i 0 -%rep 256 - %assign j ((i>>6)&3)*1000 + ((i>>4)&3)*100 + ((i>>2)&3)*10 + (i&3) - %if j < 10 - CAT_XDEFINE q000, j, i - %elif j < 100 - CAT_XDEFINE q00, j, i - %elif j < 1000 - CAT_XDEFINE q0, j, i - %else - CAT_XDEFINE q, j, i - %endif - %assign i i+1 -%endrep -%undef i -%undef j - -%macro FMA_INSTR 3 - %macro %1 4-7 %1, %2, %3 - %if cpuflag(xop) - v%5 %1, %2, %3, %4 - %elifnidn %1, %4 - %6 %1, %2, %3 - %7 %1, %4 - %else - %error non-xop emulation of ``%5 %1, %2, %3, %4'' is not supported - %endif - %endmacro -%endmacro - -FMA_INSTR pmacsww, pmullw, paddw -FMA_INSTR pmacsdd, pmulld, paddd ; sse4 emulation -FMA_INSTR pmacsdql, pmuldq, paddq ; sse4 emulation -FMA_INSTR pmadcswd, pmaddwd, paddd - -; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf. -; This lets us use tzcnt without bumping the yasm version requirement yet. -%define tzcnt rep bsf - -; Macros for consolidating FMA3 and FMA4 using 4-operand (dst, src1, src2, src3) syntax. -; FMA3 is only possible if dst is the same as one of the src registers. -; Either src2 or src3 can be a memory operand. -%macro FMA4_INSTR 2-* - %push fma4_instr - %xdefine %$prefix %1 - %rep %0 - 1 - %macro %$prefix%2 4-6 %$prefix, %2 - %if notcpuflag(fma3) && notcpuflag(fma4) - %error use of ``%5%6'' fma instruction in cpuname function: current_function - %elif cpuflag(fma4) - v%5%6 %1, %2, %3, %4 - %elifidn %1, %2 - ; If %3 or %4 is a memory operand it needs to be encoded as the last operand. - %ifnum sizeof%3 - v%{5}213%6 %2, %3, %4 - %else - v%{5}132%6 %2, %4, %3 - %endif - %elifidn %1, %3 - v%{5}213%6 %3, %2, %4 - %elifidn %1, %4 - v%{5}231%6 %4, %2, %3 - %else - %error fma3 emulation of ``%5%6 %1, %2, %3, %4'' is not supported - %endif - %endmacro - %rotate 1 - %endrep - %pop -%endmacro - -FMA4_INSTR fmadd, pd, ps, sd, ss -FMA4_INSTR fmaddsub, pd, ps -FMA4_INSTR fmsub, pd, ps, sd, ss -FMA4_INSTR fmsubadd, pd, ps -FMA4_INSTR fnmadd, pd, ps, sd, ss -FMA4_INSTR fnmsub, pd, ps, sd, ss - -; Macros for converting VEX instructions to equivalent EVEX ones. -%macro EVEX_INSTR 2-3 0 ; vex, evex, prefer_evex - %macro %1 2-7 fnord, fnord, %1, %2, %3 - %ifidn %3, fnord - %define %%args %1, %2 - %elifidn %4, fnord - %define %%args %1, %2, %3 - %else - %define %%args %1, %2, %3, %4 - %endif - %assign %%evex_required cpuflag(avx512) & %7 - %ifnum regnumof%1 - %if regnumof%1 >= 16 || sizeof%1 > 32 - %assign %%evex_required 1 - %endif - %endif - %ifnum regnumof%2 - %if regnumof%2 >= 16 || sizeof%2 > 32 - %assign %%evex_required 1 - %endif - %endif - %if %%evex_required - %6 %%args - %else - %5 %%args ; Prefer VEX over EVEX due to shorter instruction length - %endif - %endmacro -%endmacro - -EVEX_INSTR vbroadcastf128, vbroadcastf32x4 -EVEX_INSTR vbroadcasti128, vbroadcasti32x4 -EVEX_INSTR vextractf128, vextractf32x4 -EVEX_INSTR vextracti128, vextracti32x4 -EVEX_INSTR vinsertf128, vinsertf32x4 -EVEX_INSTR vinserti128, vinserti32x4 -EVEX_INSTR vmovdqa, vmovdqa32 -EVEX_INSTR vmovdqu, vmovdqu32 -EVEX_INSTR vpand, vpandd -EVEX_INSTR vpandn, vpandnd -EVEX_INSTR vpor, vpord -EVEX_INSTR vpxor, vpxord -EVEX_INSTR vrcpps, vrcp14ps, 1 ; EVEX versions have higher precision -EVEX_INSTR vrcpss, vrcp14ss, 1 -EVEX_INSTR vrsqrtps, vrsqrt14ps, 1 -EVEX_INSTR vrsqrtss, vrsqrt14ss, 1 - -; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug (fixed in 1.3.0) -%ifdef __YASM_VER__ - %if __YASM_VERSION_ID__ < 0x01030000 && ARCH_X86_64 == 0 - %macro vpbroadcastq 2 - %if sizeof%1 == 16 - movddup %1, %2 - %else - vbroadcastsd %1, %2 - %endif - %endmacro - %endif -%endif diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm deleted file mode 100644 index d7cd996842..0000000000 --- a/libavutil/x86/x86util.asm +++ /dev/null @@ -1,1028 +0,0 @@ -;***************************************************************************** -;* x86util.asm -;***************************************************************************** -;* Copyright (C) 2008-2010 x264 project -;* -;* Authors: Loren Merritt -;* Holger Lubitz -;* -;* 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 -;****************************************************************************** - -%define private_prefix ff -%define public_prefix avpriv -%define cpuflags_mmxext cpuflags_mmx2 - -%include "libavutil/x86/x86inc.asm" - -; expands to [base],...,[base+7*stride] -%define PASS8ROWS(base, base3, stride, stride3) \ - [base], [base + stride], [base + 2*stride], [base3], \ - [base3 + stride], [base3 + 2*stride], [base3 + stride3], [base3 + stride*4] - -; Interleave low src0 with low src1 and store in src0, -; interleave high src0 with high src1 and store in src1. -; %1 - types -; %2 - index of the register with src0 -; %3 - index of the register with src1 -; %4 - index of the register for intermediate results -; example for %1 - wd: input: src0: x0 x1 x2 x3 z0 z1 z2 z3 -; src1: y0 y1 y2 y3 q0 q1 q2 q3 -; output: src0: x0 y0 x1 y1 x2 y2 x3 y3 -; src1: z0 q0 z1 q1 z2 q2 z3 q3 -%macro SBUTTERFLY 4 -%ifidn %1, dqqq - vperm2i128 m%4, m%2, m%3, q0301 - vinserti128 m%2, m%2, xm%3, 1 -%elif avx_enabled == 0 - mova m%4, m%2 - punpckl%1 m%2, m%3 - punpckh%1 m%4, m%3 -%else - punpckh%1 m%4, m%2, m%3 - punpckl%1 m%2, m%3 -%endif - SWAP %3, %4 -%endmacro - -%macro SBUTTERFLY2 4 - punpckl%1 m%4, m%2, m%3 - punpckh%1 m%2, m%2, m%3 - SWAP %2, %4, %3 -%endmacro - -%macro SBUTTERFLYPS 3 - unpcklps m%3, m%1, m%2 - unpckhps m%1, m%1, m%2 - SWAP %1, %3, %2 -%endmacro - -%macro SBUTTERFLYPD 3 - movlhps m%3, m%1, m%2 - movhlps m%2, m%2, m%1 - SWAP %1, %3 -%endmacro - -%macro TRANSPOSE4x4B 5 - SBUTTERFLY bw, %1, %2, %5 - SBUTTERFLY bw, %3, %4, %5 - SBUTTERFLY wd, %1, %3, %5 - SBUTTERFLY wd, %2, %4, %5 - SWAP %2, %3 -%endmacro - -%macro TRANSPOSE4x4W 5 - SBUTTERFLY wd, %1, %2, %5 - SBUTTERFLY wd, %3, %4, %5 - SBUTTERFLY dq, %1, %3, %5 - SBUTTERFLY dq, %2, %4, %5 - SWAP %2, %3 -%endmacro - -%macro TRANSPOSE2x4x4B 5 - SBUTTERFLY bw, %1, %2, %5 - SBUTTERFLY bw, %3, %4, %5 - SBUTTERFLY wd, %1, %3, %5 - SBUTTERFLY wd, %2, %4, %5 - SBUTTERFLY dq, %1, %2, %5 - SBUTTERFLY dq, %3, %4, %5 -%endmacro - -%macro TRANSPOSE2x4x4W 5 - SBUTTERFLY wd, %1, %2, %5 - SBUTTERFLY wd, %3, %4, %5 - SBUTTERFLY dq, %1, %3, %5 - SBUTTERFLY dq, %2, %4, %5 - SBUTTERFLY qdq, %1, %2, %5 - SBUTTERFLY qdq, %3, %4, %5 -%endmacro - -%macro TRANSPOSE4x4D 5 - SBUTTERFLY dq, %1, %2, %5 - SBUTTERFLY dq, %3, %4, %5 - SBUTTERFLY qdq, %1, %3, %5 - SBUTTERFLY qdq, %2, %4, %5 - SWAP %2, %3 -%endmacro - -; identical behavior to TRANSPOSE4x4D, but using SSE1 float ops -%macro TRANSPOSE4x4PS 5 - SBUTTERFLYPS %1, %2, %5 - SBUTTERFLYPS %3, %4, %5 - SBUTTERFLYPD %1, %3, %5 - SBUTTERFLYPD %2, %4, %5 - SWAP %2, %3 -%endmacro - -%macro TRANSPOSE8x4D 9-11 -%if ARCH_X86_64 - SBUTTERFLY dq, %1, %2, %9 - SBUTTERFLY dq, %3, %4, %9 - SBUTTERFLY dq, %5, %6, %9 - SBUTTERFLY dq, %7, %8, %9 - SBUTTERFLY qdq, %1, %3, %9 - SBUTTERFLY qdq, %2, %4, %9 - SBUTTERFLY qdq, %5, %7, %9 - SBUTTERFLY qdq, %6, %8, %9 - SWAP %2, %5 - SWAP %4, %7 -%else -; in: m0..m7 -; out: m0..m7, unless %11 in which case m2 is in %9 -; spills into %9 and %10 - movdqa %9, m%7 - SBUTTERFLY dq, %1, %2, %7 - movdqa %10, m%2 - movdqa m%7, %9 - SBUTTERFLY dq, %3, %4, %2 - SBUTTERFLY dq, %5, %6, %2 - SBUTTERFLY dq, %7, %8, %2 - SBUTTERFLY qdq, %1, %3, %2 - movdqa %9, m%3 - movdqa m%2, %10 - SBUTTERFLY qdq, %2, %4, %3 - SBUTTERFLY qdq, %5, %7, %3 - SBUTTERFLY qdq, %6, %8, %3 - SWAP %2, %5 - SWAP %4, %7 -%if %0<11 - movdqa m%3, %9 -%endif -%endif -%endmacro - -%macro TRANSPOSE8x8W 9-11 -%if ARCH_X86_64 - SBUTTERFLY wd, %1, %2, %9 - SBUTTERFLY wd, %3, %4, %9 - SBUTTERFLY wd, %5, %6, %9 - SBUTTERFLY wd, %7, %8, %9 - SBUTTERFLY dq, %1, %3, %9 - SBUTTERFLY dq, %2, %4, %9 - SBUTTERFLY dq, %5, %7, %9 - SBUTTERFLY dq, %6, %8, %9 - SBUTTERFLY qdq, %1, %5, %9 - SBUTTERFLY qdq, %2, %6, %9 - SBUTTERFLY qdq, %3, %7, %9 - SBUTTERFLY qdq, %4, %8, %9 - SWAP %2, %5 - SWAP %4, %7 -%else -; in: m0..m7, unless %11 in which case m6 is in %9 -; out: m0..m7, unless %11 in which case m4 is in %10 -; spills into %9 and %10 -%if %0<11 - movdqa %9, m%7 -%endif - SBUTTERFLY wd, %1, %2, %7 - movdqa %10, m%2 - movdqa m%7, %9 - SBUTTERFLY wd, %3, %4, %2 - SBUTTERFLY wd, %5, %6, %2 - SBUTTERFLY wd, %7, %8, %2 - SBUTTERFLY dq, %1, %3, %2 - movdqa %9, m%3 - movdqa m%2, %10 - SBUTTERFLY dq, %2, %4, %3 - SBUTTERFLY dq, %5, %7, %3 - SBUTTERFLY dq, %6, %8, %3 - SBUTTERFLY qdq, %1, %5, %3 - SBUTTERFLY qdq, %2, %6, %3 - movdqa %10, m%2 - movdqa m%3, %9 - SBUTTERFLY qdq, %3, %7, %2 - SBUTTERFLY qdq, %4, %8, %2 - SWAP %2, %5 - SWAP %4, %7 -%if %0<11 - movdqa m%5, %10 -%endif -%endif -%endmacro - -%macro TRANSPOSE16x16W 18-19 -; in: m0..m15, unless %19 in which case m6 is in %17 -; out: m0..m15, unless %19 in which case m4 is in %18 -; spills into %17 and %18 -%if %0 < 19 - mova %17, m%7 -%endif - - SBUTTERFLY dqqq, %1, %9, %7 - SBUTTERFLY dqqq, %2, %10, %7 - SBUTTERFLY dqqq, %3, %11, %7 - SBUTTERFLY dqqq, %4, %12, %7 - SBUTTERFLY dqqq, %5, %13, %7 - SBUTTERFLY dqqq, %6, %14, %7 - mova %18, m%14 - mova m%7, %17 - SBUTTERFLY dqqq, %7, %15, %14 - SBUTTERFLY dqqq, %8, %16, %14 - - SBUTTERFLY wd, %1, %2, %14 - SBUTTERFLY wd, %3, %4, %14 - SBUTTERFLY wd, %5, %6, %14 - SBUTTERFLY wd, %7, %8, %14 - SBUTTERFLY wd, %9, %10, %14 - SBUTTERFLY wd, %11, %12, %14 - mova %17, m%12 - mova m%14, %18 - SBUTTERFLY wd, %13, %14, %12 - SBUTTERFLY wd, %15, %16, %12 - - SBUTTERFLY dq, %1, %3, %12 - SBUTTERFLY dq, %2, %4, %12 - SBUTTERFLY dq, %5, %7, %12 - SBUTTERFLY dq, %6, %8, %12 - SBUTTERFLY dq, %9, %11, %12 - mova %18, m%11 - mova m%12, %17 - SBUTTERFLY dq, %10, %12, %11 - SBUTTERFLY dq, %13, %15, %11 - SBUTTERFLY dq, %14, %16, %11 - - SBUTTERFLY qdq, %1, %5, %11 - SBUTTERFLY qdq, %2, %6, %11 - SBUTTERFLY qdq, %3, %7, %11 - SBUTTERFLY qdq, %4, %8, %11 - - SWAP %2, %5 - SWAP %4, %7 - - SBUTTERFLY qdq, %9, %13, %11 - SBUTTERFLY qdq, %10, %14, %11 - mova m%11, %18 - mova %18, m%5 - SBUTTERFLY qdq, %11, %15, %5 - SBUTTERFLY qdq, %12, %16, %5 - -%if %0 < 19 - mova m%5, %18 -%endif - - SWAP %10, %13 - SWAP %12, %15 -%endmacro - -%macro TRANSPOSE_8X8B 8 - %if mmsize == 8 - %error "This macro does not support mmsize == 8" - %endif - punpcklbw m%1, m%2 - punpcklbw m%3, m%4 - punpcklbw m%5, m%6 - punpcklbw m%7, m%8 - TRANSPOSE4x4W %1, %3, %5, %7, %2 - MOVHL m%2, m%1 - MOVHL m%4, m%3 - MOVHL m%6, m%5 - MOVHL m%8, m%7 -%endmacro - -; PABSW macro assumes %1 != %2, while ABS1/2 macros work in-place -%macro PABSW 2 -%if cpuflag(ssse3) - pabsw %1, %2 -%elif cpuflag(mmxext) - pxor %1, %1 - psubw %1, %2 - pmaxsw %1, %2 -%else - pxor %1, %1 - pcmpgtw %1, %2 - pxor %2, %1 - psubw %2, %1 - SWAP %1, %2 -%endif -%endmacro - -%macro PSIGNW 2 -%if cpuflag(ssse3) - psignw %1, %2 -%else - pxor %1, %2 - psubw %1, %2 -%endif -%endmacro - -%macro ABS1 2 -%if cpuflag(ssse3) - pabsw %1, %1 -%elif cpuflag(mmxext) ; a, tmp - pxor %2, %2 - psubw %2, %1 - pmaxsw %1, %2 -%else ; a, tmp - pxor %2, %2 - pcmpgtw %2, %1 - pxor %1, %2 - psubw %1, %2 -%endif -%endmacro - -%macro ABS2 4 -%if cpuflag(ssse3) - pabsw %1, %1 - pabsw %2, %2 -%elif cpuflag(mmxext) ; a, b, tmp0, tmp1 - pxor %3, %3 - pxor %4, %4 - psubw %3, %1 - psubw %4, %2 - pmaxsw %1, %3 - pmaxsw %2, %4 -%else ; a, b, tmp0, tmp1 - pxor %3, %3 - pxor %4, %4 - pcmpgtw %3, %1 - pcmpgtw %4, %2 - pxor %1, %3 - pxor %2, %4 - psubw %1, %3 - psubw %2, %4 -%endif -%endmacro - -%macro ABSB 2 ; source mmreg, temp mmreg (unused for SSSE3) -%if cpuflag(ssse3) - pabsb %1, %1 -%else - pxor %2, %2 - psubb %2, %1 - pminub %1, %2 -%endif -%endmacro - -%macro ABSB2 4 ; src1, src2, tmp1, tmp2 (tmp1/2 unused for SSSE3) -%if cpuflag(ssse3) - pabsb %1, %1 - pabsb %2, %2 -%else - pxor %3, %3 - pxor %4, %4 - psubb %3, %1 - psubb %4, %2 - pminub %1, %3 - pminub %2, %4 -%endif -%endmacro - -%macro ABSD2 4 - pxor %3, %3 - pxor %4, %4 - pcmpgtd %3, %1 - pcmpgtd %4, %2 - pxor %1, %3 - pxor %2, %4 - psubd %1, %3 - psubd %2, %4 -%endmacro - -%macro ABS4 6 - ABS2 %1, %2, %5, %6 - ABS2 %3, %4, %5, %6 -%endmacro - -%macro SPLATB_LOAD 3 -%if cpuflag(ssse3) - movd %1, [%2-3] - pshufb %1, %3 -%else - movd %1, [%2-3] ;to avoid crossing a cacheline - punpcklbw %1, %1 - SPLATW %1, %1, 3 -%endif -%endmacro - -%macro SPLATB_REG 3 -%if cpuflag(ssse3) - movd %1, %2d - pshufb %1, %3 -%else - movd %1, %2d - punpcklbw %1, %1 - SPLATW %1, %1, 0 -%endif -%endmacro - -%macro HADDD 2 ; sum junk -%if sizeof%1 == 32 -%define %2 xmm%2 - vextracti128 %2, %1, 1 -%define %1 xmm%1 - paddd %1, %2 -%endif -%if mmsize >= 16 -%if cpuflag(xop) && sizeof%1 == 16 - vphadddq %1, %1 -%endif - movhlps %2, %1 - paddd %1, %2 -%endif -%if notcpuflag(xop) || sizeof%1 != 16 -%if cpuflag(mmxext) - PSHUFLW %2, %1, q0032 -%else ; mmx - mova %2, %1 - psrlq %2, 32 -%endif - paddd %1, %2 -%endif -%undef %1 -%undef %2 -%endmacro - -%macro HADDW 2 ; reg, tmp -%if cpuflag(xop) && sizeof%1 == 16 - vphaddwq %1, %1 - movhlps %2, %1 - paddd %1, %2 -%else - pmaddwd %1, [pw_1] - HADDD %1, %2 -%endif -%endmacro - -%macro HADDPS 3 ; dst, src, tmp -%if cpuflag(sse3) - haddps %1, %1, %2 -%else - movaps %3, %1 - shufps %1, %2, q2020 - shufps %3, %2, q3131 - addps %1, %3 -%endif -%endmacro - -%macro PALIGNR 4-5 -%if cpuflag(ssse3) -%if %0==5 - palignr %1, %2, %3, %4 -%else - palignr %1, %2, %3 -%endif -%else ; [dst,] src1, src2, imm, tmp - %define %%dst %1 -%if %0==5 -%ifnidn %1, %2 - mova %%dst, %2 -%endif - %rotate 1 -%endif -%ifnidn %4, %2 - mova %4, %2 -%endif -%if mmsize==8 - psllq %%dst, (8-%3)*8 - psrlq %4, %3*8 -%else - pslldq %%dst, 16-%3 - psrldq %4, %3 -%endif - por %%dst, %4 -%endif -%endmacro - -%macro PAVGB 2-4 -%if cpuflag(mmxext) - pavgb %1, %2 -%elif cpuflag(3dnow) - pavgusb %1, %2 -%elif cpuflag(mmx) - movu %3, %2 - por %3, %1 - pxor %1, %2 - pand %1, %4 - psrlq %1, 1 - psubb %3, %1 - SWAP %1, %3 -%endif -%endmacro - -%macro PSHUFLW 1+ - %if mmsize == 8 - pshufw %1 - %else - pshuflw %1 - %endif -%endmacro - -%macro PSWAPD 2 -%if cpuflag(mmxext) - pshufw %1, %2, q1032 -%elif cpuflag(3dnowext) - pswapd %1, %2 -%elif cpuflag(3dnow) - movq %1, %2 - psrlq %1, 32 - punpckldq %1, %2 -%endif -%endmacro - -%macro DEINTB 5 ; mask, reg1, mask, reg2, optional src to fill masks from -%ifnum %5 - pand m%3, m%5, m%4 ; src .. y6 .. y4 - pand m%1, m%5, m%2 ; dst .. y6 .. y4 -%else - mova m%1, %5 - pand m%3, m%1, m%4 ; src .. y6 .. y4 - pand m%1, m%1, m%2 ; dst .. y6 .. y4 -%endif - psrlw m%2, 8 ; dst .. y7 .. y5 - psrlw m%4, 8 ; src .. y7 .. y5 -%endmacro - -%macro SUMSUB_BA 3-4 -%if %0==3 - padd%1 m%2, m%3 - padd%1 m%3, m%3 - psub%1 m%3, m%2 -%else -%if avx_enabled == 0 - mova m%4, m%2 - padd%1 m%2, m%3 - psub%1 m%3, m%4 -%else - padd%1 m%4, m%2, m%3 - psub%1 m%3, m%2 - SWAP %2, %4 -%endif -%endif -%endmacro - -%macro SUMSUB_BADC 5-6 -%if %0==6 - SUMSUB_BA %1, %2, %3, %6 - SUMSUB_BA %1, %4, %5, %6 -%else - padd%1 m%2, m%3 - padd%1 m%4, m%5 - padd%1 m%3, m%3 - padd%1 m%5, m%5 - psub%1 m%3, m%2 - psub%1 m%5, m%4 -%endif -%endmacro - -%macro SUMSUB2_AB 4 -%ifnum %3 - psub%1 m%4, m%2, m%3 - psub%1 m%4, m%3 - padd%1 m%2, m%2 - padd%1 m%2, m%3 -%else - mova m%4, m%2 - padd%1 m%2, m%2 - padd%1 m%2, %3 - psub%1 m%4, %3 - psub%1 m%4, %3 -%endif -%endmacro - -%macro SUMSUB2_BA 4 -%if avx_enabled == 0 - mova m%4, m%2 - padd%1 m%2, m%3 - padd%1 m%2, m%3 - psub%1 m%3, m%4 - psub%1 m%3, m%4 -%else - padd%1 m%4, m%2, m%3 - padd%1 m%4, m%3 - psub%1 m%3, m%2 - psub%1 m%3, m%2 - SWAP %2, %4 -%endif -%endmacro - -%macro SUMSUBD2_AB 5 -%ifnum %4 - psra%1 m%5, m%2, 1 ; %3: %3>>1 - psra%1 m%4, m%3, 1 ; %2: %2>>1 - padd%1 m%4, m%2 ; %3: %3>>1+%2 - psub%1 m%5, m%3 ; %2: %2>>1-%3 - SWAP %2, %5 - SWAP %3, %4 -%else - mova %5, m%2 - mova %4, m%3 - psra%1 m%3, 1 ; %3: %3>>1 - psra%1 m%2, 1 ; %2: %2>>1 - padd%1 m%3, %5 ; %3: %3>>1+%2 - psub%1 m%2, %4 ; %2: %2>>1-%3 -%endif -%endmacro - -%macro DCT4_1D 5 -%ifnum %5 - SUMSUB_BADC w, %4, %1, %3, %2, %5 - SUMSUB_BA w, %3, %4, %5 - SUMSUB2_AB w, %1, %2, %5 - SWAP %1, %3, %4, %5, %2 -%else - SUMSUB_BADC w, %4, %1, %3, %2 - SUMSUB_BA w, %3, %4 - mova [%5], m%2 - SUMSUB2_AB w, %1, [%5], %2 - SWAP %1, %3, %4, %2 -%endif -%endmacro - -%macro IDCT4_1D 6-7 -%ifnum %6 - SUMSUBD2_AB %1, %3, %5, %7, %6 - ; %3: %3>>1-%5 %5: %3+%5>>1 - SUMSUB_BA %1, %4, %2, %7 - ; %4: %2+%4 %2: %2-%4 - SUMSUB_BADC %1, %5, %4, %3, %2, %7 - ; %5: %2+%4 + (%3+%5>>1) - ; %4: %2+%4 - (%3+%5>>1) - ; %3: %2-%4 + (%3>>1-%5) - ; %2: %2-%4 - (%3>>1-%5) -%else -%ifidn %1, w - SUMSUBD2_AB %1, %3, %5, [%6], [%6+16] -%else - SUMSUBD2_AB %1, %3, %5, [%6], [%6+32] -%endif - SUMSUB_BA %1, %4, %2 - SUMSUB_BADC %1, %5, %4, %3, %2 -%endif - SWAP %2, %5, %4 - ; %2: %2+%4 + (%3+%5>>1) row0 - ; %3: %2-%4 + (%3>>1-%5) row1 - ; %4: %2-%4 - (%3>>1-%5) row2 - ; %5: %2+%4 - (%3+%5>>1) row3 -%endmacro - - -%macro LOAD_DIFF 5 -%ifidn %3, none - movh %1, %4 - movh %2, %5 - punpcklbw %1, %2 - punpcklbw %2, %2 - psubw %1, %2 -%else - movh %1, %4 - punpcklbw %1, %3 - movh %2, %5 - punpcklbw %2, %3 - psubw %1, %2 -%endif -%endmacro - -%macro STORE_DCT 6 - movq [%5+%6+ 0], m%1 - movq [%5+%6+ 8], m%2 - movq [%5+%6+16], m%3 - movq [%5+%6+24], m%4 - movhps [%5+%6+32], m%1 - movhps [%5+%6+40], m%2 - movhps [%5+%6+48], m%3 - movhps [%5+%6+56], m%4 -%endmacro - -%macro LOAD_DIFF_8x4P 7-10 r0,r2,0 ; 4x dest, 2x temp, 2x pointer, increment? - LOAD_DIFF m%1, m%5, m%7, [%8], [%9] - LOAD_DIFF m%2, m%6, m%7, [%8+r1], [%9+r3] - LOAD_DIFF m%3, m%5, m%7, [%8+2*r1], [%9+2*r3] - LOAD_DIFF m%4, m%6, m%7, [%8+r4], [%9+r5] -%if %10 - lea %8, [%8+4*r1] - lea %9, [%9+4*r3] -%endif -%endmacro - -%macro DIFFx2 6-7 - movh %3, %5 - punpcklbw %3, %4 - psraw %1, 6 - paddsw %1, %3 - movh %3, %6 - punpcklbw %3, %4 - psraw %2, 6 - paddsw %2, %3 - packuswb %2, %1 -%endmacro - -%macro STORE_DIFF 4 - movh %2, %4 - punpcklbw %2, %3 - psraw %1, 6 - paddsw %1, %2 - packuswb %1, %1 - movh %4, %1 -%endmacro - -%macro STORE_DIFFx2 8 ; add1, add2, reg1, reg2, zero, shift, source, stride - movh %3, [%7] - movh %4, [%7+%8] - psraw %1, %6 - psraw %2, %6 - punpcklbw %3, %5 - punpcklbw %4, %5 - paddw %3, %1 - paddw %4, %2 - packuswb %3, %5 - packuswb %4, %5 - movh [%7], %3 - movh [%7+%8], %4 -%endmacro - -%macro PMINUB 3 ; dst, src, ignored -%if cpuflag(mmxext) - pminub %1, %2 -%else ; dst, src, tmp - mova %3, %1 - psubusb %3, %2 - psubb %1, %3 -%endif -%endmacro - -%macro SPLATW 2-3 0 -%if cpuflag(avx2) && %3 == 0 - vpbroadcastw %1, %2 -%elif mmsize == 16 - pshuflw %1, %2, (%3)*0x55 - punpcklqdq %1, %1 -%elif cpuflag(mmxext) - pshufw %1, %2, (%3)*0x55 -%else - %ifnidn %1, %2 - mova %1, %2 - %endif - %if %3 & 2 - punpckhwd %1, %1 - %else - punpcklwd %1, %1 - %endif - %if %3 & 1 - punpckhwd %1, %1 - %else - punpcklwd %1, %1 - %endif -%endif -%endmacro - -%macro SPLATD 1 -%if mmsize == 8 - punpckldq %1, %1 -%elif cpuflag(sse2) - pshufd %1, %1, 0 -%elif cpuflag(sse) - shufps %1, %1, 0 -%endif -%endmacro - -%macro CLIPUB 3 ;(dst, min, max) - pmaxub %1, %2 - pminub %1, %3 -%endmacro - -%macro CLIPW 3 ;(dst, min, max) - pmaxsw %1, %2 - pminsw %1, %3 -%endmacro - -%macro PMINSD 3 ; dst, src, tmp/unused -%if cpuflag(sse4) - pminsd %1, %2 -%elif cpuflag(sse2) - cvtdq2ps %1, %1 - minps %1, %2 - cvtps2dq %1, %1 -%else - mova %3, %2 - pcmpgtd %3, %1 - pxor %1, %2 - pand %1, %3 - pxor %1, %2 -%endif -%endmacro - -%macro PMAXSD 3 ; dst, src, tmp/unused -%if cpuflag(sse4) - pmaxsd %1, %2 -%else - mova %3, %1 - pcmpgtd %3, %2 - pand %1, %3 - pandn %3, %2 - por %1, %3 -%endif -%endmacro - -%macro CLIPD 3-4 -%if cpuflag(sse4); src/dst, min, max, unused - pminsd %1, %3 - pmaxsd %1, %2 -%elif cpuflag(sse2) ; src/dst, min (float), max (float), unused - cvtdq2ps %1, %1 - minps %1, %3 - maxps %1, %2 - cvtps2dq %1, %1 -%else ; src/dst, min, max, tmp - PMINSD %1, %3, %4 - PMAXSD %1, %2, %4 -%endif -%endmacro - -%macro VBROADCASTSS 2 ; dst xmm/ymm, src m32/xmm -%if cpuflag(avx2) - vbroadcastss %1, %2 -%elif cpuflag(avx) - %ifnum sizeof%2 ; avx1 register - shufps xmm%1, xmm%2, xmm%2, q0000 - %if sizeof%1 >= 32 ; mmsize>=32 - vinsertf128 %1, %1, xmm%1, 1 - %endif - %else ; avx1 memory - vbroadcastss %1, %2 - %endif -%else - %ifnum sizeof%2 ; sse register - shufps %1, %2, %2, q0000 - %else ; sse memory - movss %1, %2 - shufps %1, %1, 0 - %endif -%endif -%endmacro - -%macro VBROADCASTSD 2 ; dst xmm/ymm, src m64 -%if cpuflag(avx) && mmsize == 32 - vbroadcastsd %1, %2 -%elif cpuflag(sse3) - movddup %1, %2 -%else ; sse2 - movsd %1, %2 - movlhps %1, %1 -%endif -%endmacro - -%macro VPBROADCASTD 2 ; dst xmm/ymm, src m32/xmm -%if cpuflag(avx2) - vpbroadcastd %1, %2 -%elif cpuflag(avx) && sizeof%1 >= 32 - %error vpbroadcastd not possible with ymm on avx1. try vbroadcastss -%else - %ifnum sizeof%2 ; sse2 register - pshufd %1, %2, q0000 - %else ; sse memory - movd %1, %2 - pshufd %1, %1, 0 - %endif -%endif -%endmacro - -%macro VBROADCASTI128 2 ; dst xmm/ymm, src : 128bits val -%if mmsize > 16 - vbroadcasti128 %1, %2 -%else - mova %1, %2 -%endif -%endmacro - -%macro SHUFFLE_MASK_W 8 - %rep 8 - %if %1>=0x80 - db %1, %1 - %else - db %1*2 - db %1*2+1 - %endif - %rotate 1 - %endrep -%endmacro - -%macro PMOVSXWD 2; dst, src -%if cpuflag(sse4) - pmovsxwd %1, %2 -%else - %ifnidn %1, %2 - mova %1, %2 - %endif - punpcklwd %1, %1 - psrad %1, 16 -%endif -%endmacro - -; Wrapper for non-FMA version of fmaddps -%macro FMULADD_PS 5 - %if cpuflag(fma3) || cpuflag(fma4) - fmaddps %1, %2, %3, %4 - %elifidn %1, %4 - mulps %5, %2, %3 - addps %1, %4, %5 - %else - mulps %1, %2, %3 - addps %1, %4 - %endif -%endmacro - -%macro LSHIFT 2 -%if mmsize > 8 - pslldq %1, %2 -%else - psllq %1, 8*(%2) -%endif -%endmacro - -%macro RSHIFT 2 -%if mmsize > 8 - psrldq %1, %2 -%else - psrlq %1, 8*(%2) -%endif -%endmacro - -%macro MOVHL 2 ; dst, src -%ifidn %1, %2 - punpckhqdq %1, %2 -%elif cpuflag(avx) - punpckhqdq %1, %2, %2 -%elif cpuflag(sse4) - pshufd %1, %2, q3232 ; pshufd is slow on some older CPUs, so only use it on more modern ones -%else - movhlps %1, %2 ; may cause an int/float domain transition and has a dependency on dst -%endif -%endmacro - -; Horizontal Sum of Packed Single precision floats -; The resulting sum is in all elements. -%macro HSUMPS 2 ; dst/src, tmp -%if cpuflag(avx) - %if sizeof%1>=32 ; avx - vperm2f128 %2, %1, %1, (0)*16+(1) - addps %1, %2 - %endif - shufps %2, %1, %1, q1032 - addps %1, %2 - shufps %2, %1, %1, q0321 - addps %1, %2 -%else ; this form is a bit faster than the short avx-like emulation. - movaps %2, %1 - shufps %1, %1, q1032 - addps %1, %2 - movaps %2, %1 - shufps %1, %1, q0321 - addps %1, %2 - ; all %1 members should be equal for as long as float a+b==b+a -%endif -%endmacro - -; Emulate blendvps if not available -; -; src_b is destroyed when using emulation with logical operands -; SSE41 blendv instruction is hard coded to use xmm0 as mask -%macro BLENDVPS 3 ; dst/src_a, src_b, mask -%if cpuflag(avx) - blendvps %1, %1, %2, %3 -%elif cpuflag(sse4) - %ifnidn %3,xmm0 - %error sse41 blendvps uses xmm0 as default 3d operand, you used %3 - %endif - blendvps %1, %2, %3 -%else - xorps %2, %1 - andps %2, %3 - xorps %1, %2 -%endif -%endmacro - -; Emulate pblendvb if not available -; -; src_b is destroyed when using emulation with logical operands -; SSE41 blendv instruction is hard coded to use xmm0 as mask -%macro PBLENDVB 3 ; dst/src_a, src_b, mask -%if cpuflag(avx) - %if cpuflag(avx) && notcpuflag(avx2) && sizeof%1 >= 32 - %error pblendb not possible with ymm on avx1, try blendvps. - %endif - pblendvb %1, %1, %2, %3 -%elif cpuflag(sse4) - %ifnidn %3,xmm0 - %error sse41 pblendvd uses xmm0 as default 3d operand, you used %3 - %endif - pblendvb %1, %2, %3 -%else - pxor %2, %1 - pand %2, %3 - pxor %1, %2 -%endif -%endmacro diff --git a/libswresample/tests/.gitignore b/libswresample/tests/.gitignore deleted file mode 100644 index 2dc986bd0e..0000000000 --- a/libswresample/tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/swresample diff --git a/libswresample/x86/audio_convert.asm b/libswresample/x86/audio_convert.asm deleted file mode 100644 index d441636d3c..0000000000 --- a/libswresample/x86/audio_convert.asm +++ /dev/null @@ -1,739 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2012 Michael Niedermayer -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA 32 -flt2pm31: times 8 dd 4.6566129e-10 -flt2p31 : times 8 dd 2147483648.0 -flt2p15 : times 8 dd 32768.0 - -word_unpack_shuf : db 0, 1, 4, 5, 8, 9,12,13, 2, 3, 6, 7,10,11,14,15 - -SECTION .text - - -;to, from, a/u, log2_outsize, log_intsize, const -%macro PACK_2CH 5-7 -cglobal pack_2ch_%2_to_%1_%3, 3, 4, 6, dst, src, len, src2 - mov src2q , [srcq+gprsize] - mov srcq , [srcq] - mov dstq , [dstq] -%ifidn %3, a - test dstq, mmsize-1 - jne pack_2ch_%2_to_%1_u_int %+ SUFFIX - test srcq, mmsize-1 - jne pack_2ch_%2_to_%1_u_int %+ SUFFIX - test src2q, mmsize-1 - jne pack_2ch_%2_to_%1_u_int %+ SUFFIX -%else -pack_2ch_%2_to_%1_u_int %+ SUFFIX: -%endif - lea srcq , [srcq + (1<<%5)*lenq] - lea src2q, [src2q + (1<<%5)*lenq] - lea dstq , [dstq + (2<<%4)*lenq] - neg lenq - %7 m0,m1,m2,m3,m4,m5 -.next: -%if %4 >= %5 - mov%3 m0, [ srcq +(1<<%5)*lenq] - mova m1, m0 - mov%3 m2, [ src2q+(1<<%5)*lenq] -%if %5 == 1 - punpcklwd m0, m2 - punpckhwd m1, m2 -%else - punpckldq m0, m2 - punpckhdq m1, m2 -%endif - %6 m0,m1,m2,m3,m4,m5 -%else - mov%3 m0, [ srcq +(1<<%5)*lenq] - mov%3 m1, [mmsize + srcq +(1<<%5)*lenq] - mov%3 m2, [ src2q+(1<<%5)*lenq] - mov%3 m3, [mmsize + src2q+(1<<%5)*lenq] - %6 m0,m1,m2,m3,m4,m5 - mova m2, m0 - punpcklwd m0, m1 - punpckhwd m2, m1 - SWAP 1,2 -%endif - mov%3 [ dstq+(2<<%4)*lenq], m0 - mov%3 [ mmsize + dstq+(2<<%4)*lenq], m1 -%if %4 > %5 - mov%3 [2*mmsize + dstq+(2<<%4)*lenq], m2 - mov%3 [3*mmsize + dstq+(2<<%4)*lenq], m3 - add lenq, 4*mmsize/(2<<%4) -%else - add lenq, 2*mmsize/(2<<%4) -%endif - jl .next - REP_RET -%endmacro - -%macro UNPACK_2CH 5-7 -cglobal unpack_2ch_%2_to_%1_%3, 3, 4, 7, dst, src, len, dst2 - mov dst2q , [dstq+gprsize] - mov srcq , [srcq] - mov dstq , [dstq] -%ifidn %3, a - test dstq, mmsize-1 - jne unpack_2ch_%2_to_%1_u_int %+ SUFFIX - test srcq, mmsize-1 - jne unpack_2ch_%2_to_%1_u_int %+ SUFFIX - test dst2q, mmsize-1 - jne unpack_2ch_%2_to_%1_u_int %+ SUFFIX -%else -unpack_2ch_%2_to_%1_u_int %+ SUFFIX: -%endif - lea srcq , [srcq + (2<<%5)*lenq] - lea dstq , [dstq + (1<<%4)*lenq] - lea dst2q, [dst2q + (1<<%4)*lenq] - neg lenq - %7 m0,m1,m2,m3,m4,m5 - mova m6, [word_unpack_shuf] -.next: - mov%3 m0, [ srcq +(2<<%5)*lenq] - mov%3 m2, [ mmsize + srcq +(2<<%5)*lenq] -%if %5 == 1 -%ifidn SUFFIX, _ssse3 - pshufb m0, m6 - mova m1, m0 - pshufb m2, m6 - punpcklqdq m0,m2 - punpckhqdq m1,m2 -%else - mova m1, m0 - punpcklwd m0,m2 - punpckhwd m1,m2 - - mova m2, m0 - punpcklwd m0,m1 - punpckhwd m2,m1 - - mova m1, m0 - punpcklwd m0,m2 - punpckhwd m1,m2 -%endif -%else - mova m1, m0 - shufps m0, m2, 10001000b - shufps m1, m2, 11011101b -%endif -%if %4 < %5 - mov%3 m2, [2*mmsize + srcq +(2<<%5)*lenq] - mova m3, m2 - mov%3 m4, [3*mmsize + srcq +(2<<%5)*lenq] - shufps m2, m4, 10001000b - shufps m3, m4, 11011101b - SWAP 1,2 -%endif - %6 m0,m1,m2,m3,m4,m5 - mov%3 [ dstq+(1<<%4)*lenq], m0 -%if %4 > %5 - mov%3 [ dst2q+(1<<%4)*lenq], m2 - mov%3 [ mmsize + dstq+(1<<%4)*lenq], m1 - mov%3 [ mmsize + dst2q+(1<<%4)*lenq], m3 - add lenq, 2*mmsize/(1<<%4) -%else - mov%3 [ dst2q+(1<<%4)*lenq], m1 - add lenq, mmsize/(1<<%4) -%endif - jl .next - REP_RET -%endmacro - -%macro CONV 5-7 -cglobal %2_to_%1_%3, 3, 3, 6, dst, src, len - mov srcq , [srcq] - mov dstq , [dstq] -%ifidn %3, a - test dstq, mmsize-1 - jne %2_to_%1_u_int %+ SUFFIX - test srcq, mmsize-1 - jne %2_to_%1_u_int %+ SUFFIX -%else -%2_to_%1_u_int %+ SUFFIX: -%endif - lea srcq , [srcq + (1<<%5)*lenq] - lea dstq , [dstq + (1<<%4)*lenq] - neg lenq - %7 m0,m1,m2,m3,m4,m5 -.next: - mov%3 m0, [ srcq +(1<<%5)*lenq] - mov%3 m1, [ mmsize + srcq +(1<<%5)*lenq] -%if %4 < %5 - mov%3 m2, [2*mmsize + srcq +(1<<%5)*lenq] - mov%3 m3, [3*mmsize + srcq +(1<<%5)*lenq] -%endif - %6 m0,m1,m2,m3,m4,m5 - mov%3 [ dstq+(1<<%4)*lenq], m0 - mov%3 [ mmsize + dstq+(1<<%4)*lenq], m1 -%if %4 > %5 - mov%3 [2*mmsize + dstq+(1<<%4)*lenq], m2 - mov%3 [3*mmsize + dstq+(1<<%4)*lenq], m3 - add lenq, 4*mmsize/(1<<%4) -%else - add lenq, 2*mmsize/(1<<%4) -%endif - jl .next -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -%macro PACK_6CH 8 -cglobal pack_6ch_%2_to_%1_%3, 2, 8, %6, dst, src, src1, src2, src3, src4, src5, len -%if ARCH_X86_64 - mov lend, r2d -%else - %define lend dword r2m -%endif - mov src1q, [srcq+1*gprsize] - mov src2q, [srcq+2*gprsize] - mov src3q, [srcq+3*gprsize] - mov src4q, [srcq+4*gprsize] - mov src5q, [srcq+5*gprsize] - mov srcq, [srcq] - mov dstq, [dstq] -%ifidn %3, a - test dstq, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX - test srcq, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX - test src1q, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX - test src2q, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX - test src3q, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX - test src4q, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX - test src5q, mmsize-1 - jne pack_6ch_%2_to_%1_u_int %+ SUFFIX -%else -pack_6ch_%2_to_%1_u_int %+ SUFFIX: -%endif - sub src1q, srcq - sub src2q, srcq - sub src3q, srcq - sub src4q, srcq - sub src5q, srcq - %8 x,x,x,x,m7,x -.loop: - mov%3 m0, [srcq ] - mov%3 m1, [srcq+src1q] - mov%3 m2, [srcq+src2q] - mov%3 m3, [srcq+src3q] - mov%3 m4, [srcq+src4q] - mov%3 m5, [srcq+src5q] -%if cpuflag(sse) - SBUTTERFLYPS 0, 1, 6 - SBUTTERFLYPS 2, 3, 6 - SBUTTERFLYPS 4, 5, 6 - -%if cpuflag(avx) - blendps m6, m4, m0, 1100b -%else - movaps m6, m4 - shufps m4, m0, q3210 - SWAP 4,6 -%endif - movlhps m0, m2 - movhlps m4, m2 -%if cpuflag(avx) - blendps m2, m5, m1, 1100b -%else - movaps m2, m5 - shufps m5, m1, q3210 - SWAP 2,5 -%endif - movlhps m1, m3 - movhlps m5, m3 - - %7 m0,m6,x,x,m7,m3 - %7 m4,m1,x,x,m7,m3 - %7 m2,m5,x,x,m7,m3 - - mov %+ %3 %+ ps [dstq ], m0 - mov %+ %3 %+ ps [dstq+16], m6 - mov %+ %3 %+ ps [dstq+32], m4 - mov %+ %3 %+ ps [dstq+48], m1 - mov %+ %3 %+ ps [dstq+64], m2 - mov %+ %3 %+ ps [dstq+80], m5 -%else ; mmx - SBUTTERFLY dq, 0, 1, 6 - SBUTTERFLY dq, 2, 3, 6 - SBUTTERFLY dq, 4, 5, 6 - - movq [dstq ], m0 - movq [dstq+ 8], m2 - movq [dstq+16], m4 - movq [dstq+24], m1 - movq [dstq+32], m3 - movq [dstq+40], m5 -%endif - add srcq, mmsize - add dstq, mmsize*6 - sub lend, mmsize/4 - jg .loop -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -%macro UNPACK_6CH 8 -cglobal unpack_6ch_%2_to_%1_%3, 2, 8, %6, dst, src, dst1, dst2, dst3, dst4, dst5, len -%if ARCH_X86_64 - mov lend, r2d -%else - %define lend dword r2m -%endif - mov dst1q, [dstq+1*gprsize] - mov dst2q, [dstq+2*gprsize] - mov dst3q, [dstq+3*gprsize] - mov dst4q, [dstq+4*gprsize] - mov dst5q, [dstq+5*gprsize] - mov dstq, [dstq] - mov srcq, [srcq] -%ifidn %3, a - test dstq, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX - test srcq, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX - test dst1q, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX - test dst2q, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX - test dst3q, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX - test dst4q, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX - test dst5q, mmsize-1 - jne unpack_6ch_%2_to_%1_u_int %+ SUFFIX -%else -unpack_6ch_%2_to_%1_u_int %+ SUFFIX: -%endif - sub dst1q, dstq - sub dst2q, dstq - sub dst3q, dstq - sub dst4q, dstq - sub dst5q, dstq - %8 x,x,x,x,m7,x -.loop: - mov%3 m0, [srcq ] - mov%3 m1, [srcq+16] - mov%3 m2, [srcq+32] - mov%3 m3, [srcq+48] - mov%3 m4, [srcq+64] - mov%3 m5, [srcq+80] - - SBUTTERFLYPS 0, 3, 6 - SBUTTERFLYPS 1, 4, 6 - SBUTTERFLYPS 2, 5, 6 - SBUTTERFLYPS 0, 4, 6 - SBUTTERFLYPS 3, 2, 6 - SBUTTERFLYPS 1, 5, 6 - SWAP 1, 4 - SWAP 2, 3 - - %7 m0,m1,x,x,m7,m6 - %7 m2,m3,x,x,m7,m6 - %7 m4,m5,x,x,m7,m6 - - mov %+ %3 %+ ps [dstq ], m0 - mov %+ %3 %+ ps [dstq+dst1q], m1 - mov %+ %3 %+ ps [dstq+dst2q], m2 - mov %+ %3 %+ ps [dstq+dst3q], m3 - mov %+ %3 %+ ps [dstq+dst4q], m4 - mov %+ %3 %+ ps [dstq+dst5q], m5 - - add srcq, mmsize*6 - add dstq, mmsize - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -%define PACK_8CH_GPRS (10 * ARCH_X86_64) + ((6 + HAVE_ALIGNED_STACK) * ARCH_X86_32) - -%macro PACK_8CH 8 -cglobal pack_8ch_%2_to_%1_%3, 2, PACK_8CH_GPRS, %6, ARCH_X86_32*48, dst, src, len, src1, src2, src3, src4, src5, src6, src7 - mov dstq, [dstq] -%if ARCH_X86_32 - DEFINE_ARGS dst, src, src2, src3, src4, src5, src6 - %define lend dword r2m - %define src1q r0q - %define src1m dword [rsp+32] -%if HAVE_ALIGNED_STACK == 0 - DEFINE_ARGS dst, src, src2, src3, src5, src6 - %define src4q r0q - %define src4m dword [rsp+36] -%endif - %define src7q r0q - %define src7m dword [rsp+40] - mov dstm, dstq -%endif - mov src7q, [srcq+7*gprsize] - mov src6q, [srcq+6*gprsize] -%if ARCH_X86_32 - mov src7m, src7q -%endif - mov src5q, [srcq+5*gprsize] - mov src4q, [srcq+4*gprsize] - mov src3q, [srcq+3*gprsize] -%if ARCH_X86_32 && HAVE_ALIGNED_STACK == 0 - mov src4m, src4q -%endif - mov src2q, [srcq+2*gprsize] - mov src1q, [srcq+1*gprsize] - mov srcq, [srcq] -%ifidn %3, a -%if ARCH_X86_32 - test dstmp, mmsize-1 -%else - test dstq, mmsize-1 -%endif - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX - test srcq, mmsize-1 - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX - test src1q, mmsize-1 - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX - test src2q, mmsize-1 - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX - test src3q, mmsize-1 - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX -%if ARCH_X86_32 && HAVE_ALIGNED_STACK == 0 - test src4m, mmsize-1 -%else - test src4q, mmsize-1 -%endif - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX - test src5q, mmsize-1 - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX - test src6q, mmsize-1 - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX -%if ARCH_X86_32 - test src7m, mmsize-1 -%else - test src7q, mmsize-1 -%endif - jne pack_8ch_%2_to_%1_u_int %+ SUFFIX -%else -pack_8ch_%2_to_%1_u_int %+ SUFFIX: -%endif - sub src1q, srcq - sub src2q, srcq - sub src3q, srcq -%if ARCH_X86_64 || HAVE_ALIGNED_STACK - sub src4q, srcq -%else - sub src4m, srcq -%endif - sub src5q, srcq - sub src6q, srcq -%if ARCH_X86_64 - sub src7q, srcq -%else - mov src1m, src1q - sub src7m, srcq -%endif - -%if ARCH_X86_64 - %8 x,x,x,x,m9,x -%elifidn %1, int32 - %define m9 [flt2p31] -%else - %define m9 [flt2pm31] -%endif - -.loop: - mov%3 m0, [srcq ] - mov%3 m1, [srcq+src1q] - mov%3 m2, [srcq+src2q] -%if ARCH_X86_32 && HAVE_ALIGNED_STACK == 0 - mov src4q, src4m -%endif - mov%3 m3, [srcq+src3q] - mov%3 m4, [srcq+src4q] - mov%3 m5, [srcq+src5q] -%if ARCH_X86_32 - mov src7q, src7m -%endif - mov%3 m6, [srcq+src6q] - mov%3 m7, [srcq+src7q] - -%if ARCH_X86_64 - TRANSPOSE8x4D 0, 1, 2, 3, 4, 5, 6, 7, 8 - - %7 m0,m1,x,x,m9,m8 - %7 m2,m3,x,x,m9,m8 - %7 m4,m5,x,x,m9,m8 - %7 m6,m7,x,x,m9,m8 - - mov%3 [dstq], m0 -%else - mov dstq, dstm - - TRANSPOSE8x4D 0, 1, 2, 3, 4, 5, 6, 7, [rsp], [rsp+16], 1 - - %7 m0,m1,x,x,m9,m2 - mova m2, [rsp] - mov%3 [dstq], m0 - %7 m2,m3,x,x,m9,m0 - %7 m4,m5,x,x,m9,m0 - %7 m6,m7,x,x,m9,m0 - -%endif - - mov%3 [dstq+16], m1 - mov%3 [dstq+32], m2 - mov%3 [dstq+48], m3 - mov%3 [dstq+64], m4 - mov%3 [dstq+80], m5 - mov%3 [dstq+96], m6 - mov%3 [dstq+112], m7 - - add srcq, mmsize - add dstq, mmsize*8 -%if ARCH_X86_32 - mov dstm, dstq - mov src1q, src1m -%endif - sub lend, mmsize/4 - jg .loop - REP_RET -%endmacro - -%macro INT16_TO_INT32_N 6 - pxor m2, m2 - pxor m3, m3 - punpcklwd m2, m1 - punpckhwd m3, m1 - SWAP 4,0 - pxor m0, m0 - pxor m1, m1 - punpcklwd m0, m4 - punpckhwd m1, m4 -%endmacro - -%macro INT32_TO_INT16_N 6 - psrad m0, 16 - psrad m1, 16 - psrad m2, 16 - psrad m3, 16 - packssdw m0, m1 - packssdw m2, m3 - SWAP 1,2 -%endmacro - -%macro INT32_TO_FLOAT_INIT 6 - mova %5, [flt2pm31] -%endmacro -%macro INT32_TO_FLOAT_N 6 - cvtdq2ps %1, %1 - cvtdq2ps %2, %2 - mulps %1, %1, %5 - mulps %2, %2, %5 -%endmacro - -%macro FLOAT_TO_INT32_INIT 6 - mova %5, [flt2p31] -%endmacro -%macro FLOAT_TO_INT32_N 6 - mulps %1, %5 - mulps %2, %5 - cvtps2dq %6, %1 - cmpps %1, %1, %5, 5 - paddd %1, %6 - cvtps2dq %6, %2 - cmpps %2, %2, %5, 5 - paddd %2, %6 -%endmacro - -%macro INT16_TO_FLOAT_INIT 6 - mova m5, [flt2pm31] -%endmacro -%macro INT16_TO_FLOAT_N 6 - INT16_TO_INT32_N %1,%2,%3,%4,%5,%6 - cvtdq2ps m0, m0 - cvtdq2ps m1, m1 - cvtdq2ps m2, m2 - cvtdq2ps m3, m3 - mulps m0, m0, m5 - mulps m1, m1, m5 - mulps m2, m2, m5 - mulps m3, m3, m5 -%endmacro - -%macro FLOAT_TO_INT16_INIT 6 - mova m5, [flt2p15] -%endmacro -%macro FLOAT_TO_INT16_N 6 - mulps m0, m5 - mulps m1, m5 - mulps m2, m5 - mulps m3, m5 - cvtps2dq m0, m0 - cvtps2dq m1, m1 - packssdw m0, m1 - cvtps2dq m1, m2 - cvtps2dq m3, m3 - packssdw m1, m3 -%endmacro - -%macro NOP_N 0-6 -%endmacro - -INIT_MMX mmx -CONV int32, int16, u, 2, 1, INT16_TO_INT32_N, NOP_N -CONV int32, int16, a, 2, 1, INT16_TO_INT32_N, NOP_N -CONV int16, int32, u, 1, 2, INT32_TO_INT16_N, NOP_N -CONV int16, int32, a, 1, 2, INT32_TO_INT16_N, NOP_N - -PACK_6CH float, float, u, 2, 2, 0, NOP_N, NOP_N -PACK_6CH float, float, a, 2, 2, 0, NOP_N, NOP_N - -INIT_XMM sse -PACK_6CH float, float, u, 2, 2, 7, NOP_N, NOP_N -PACK_6CH float, float, a, 2, 2, 7, NOP_N, NOP_N - -UNPACK_6CH float, float, u, 2, 2, 7, NOP_N, NOP_N -UNPACK_6CH float, float, a, 2, 2, 7, NOP_N, NOP_N - -INIT_XMM sse2 -CONV int32, int16, u, 2, 1, INT16_TO_INT32_N, NOP_N -CONV int32, int16, a, 2, 1, INT16_TO_INT32_N, NOP_N -CONV int16, int32, u, 1, 2, INT32_TO_INT16_N, NOP_N -CONV int16, int32, a, 1, 2, INT32_TO_INT16_N, NOP_N - -PACK_2CH int16, int16, u, 1, 1, NOP_N, NOP_N -PACK_2CH int16, int16, a, 1, 1, NOP_N, NOP_N -PACK_2CH int32, int32, u, 2, 2, NOP_N, NOP_N -PACK_2CH int32, int32, a, 2, 2, NOP_N, NOP_N -PACK_2CH int32, int16, u, 2, 1, INT16_TO_INT32_N, NOP_N -PACK_2CH int32, int16, a, 2, 1, INT16_TO_INT32_N, NOP_N -PACK_2CH int16, int32, u, 1, 2, INT32_TO_INT16_N, NOP_N -PACK_2CH int16, int32, a, 1, 2, INT32_TO_INT16_N, NOP_N - -UNPACK_2CH int16, int16, u, 1, 1, NOP_N, NOP_N -UNPACK_2CH int16, int16, a, 1, 1, NOP_N, NOP_N -UNPACK_2CH int32, int32, u, 2, 2, NOP_N, NOP_N -UNPACK_2CH int32, int32, a, 2, 2, NOP_N, NOP_N -UNPACK_2CH int32, int16, u, 2, 1, INT16_TO_INT32_N, NOP_N -UNPACK_2CH int32, int16, a, 2, 1, INT16_TO_INT32_N, NOP_N -UNPACK_2CH int16, int32, u, 1, 2, INT32_TO_INT16_N, NOP_N -UNPACK_2CH int16, int32, a, 1, 2, INT32_TO_INT16_N, NOP_N - -CONV float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -CONV float, int32, a, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -CONV int32, float, u, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -CONV int32, float, a, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -CONV float, int16, u, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -CONV float, int16, a, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -CONV int16, float, u, 1, 2, FLOAT_TO_INT16_N, FLOAT_TO_INT16_INIT -CONV int16, float, a, 1, 2, FLOAT_TO_INT16_N, FLOAT_TO_INT16_INIT - -PACK_2CH float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_2CH float, int32, a, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_2CH int32, float, u, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -PACK_2CH int32, float, a, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -PACK_2CH float, int16, u, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -PACK_2CH float, int16, a, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -PACK_2CH int16, float, u, 1, 2, FLOAT_TO_INT16_N, FLOAT_TO_INT16_INIT -PACK_2CH int16, float, a, 1, 2, FLOAT_TO_INT16_N, FLOAT_TO_INT16_INIT - -UNPACK_2CH float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -UNPACK_2CH float, int32, a, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -UNPACK_2CH int32, float, u, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -UNPACK_2CH int32, float, a, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -UNPACK_2CH float, int16, u, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -UNPACK_2CH float, int16, a, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -UNPACK_2CH int16, float, u, 1, 2, FLOAT_TO_INT16_N, FLOAT_TO_INT16_INIT -UNPACK_2CH int16, float, a, 1, 2, FLOAT_TO_INT16_N, FLOAT_TO_INT16_INIT - -PACK_6CH float, int32, u, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_6CH float, int32, a, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_6CH int32, float, u, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -PACK_6CH int32, float, a, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT - -UNPACK_6CH float, int32, u, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -UNPACK_6CH float, int32, a, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -UNPACK_6CH int32, float, u, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -UNPACK_6CH int32, float, a, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT - -PACK_8CH float, float, u, 2, 2, 9, NOP_N, NOP_N -PACK_8CH float, float, a, 2, 2, 9, NOP_N, NOP_N - -PACK_8CH float, int32, u, 2, 2, 10, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_8CH float, int32, a, 2, 2, 10, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_8CH int32, float, u, 2, 2, 10, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -PACK_8CH int32, float, a, 2, 2, 10, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT - -INIT_XMM ssse3 -UNPACK_2CH int16, int16, u, 1, 1, NOP_N, NOP_N -UNPACK_2CH int16, int16, a, 1, 1, NOP_N, NOP_N -UNPACK_2CH int32, int16, u, 2, 1, INT16_TO_INT32_N, NOP_N -UNPACK_2CH int32, int16, a, 2, 1, INT16_TO_INT32_N, NOP_N -UNPACK_2CH float, int16, u, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT -UNPACK_2CH float, int16, a, 2, 1, INT16_TO_FLOAT_N, INT16_TO_FLOAT_INIT - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -PACK_6CH float, float, u, 2, 2, 8, NOP_N, NOP_N -PACK_6CH float, float, a, 2, 2, 8, NOP_N, NOP_N - -UNPACK_6CH float, float, u, 2, 2, 8, NOP_N, NOP_N -UNPACK_6CH float, float, a, 2, 2, 8, NOP_N, NOP_N - -PACK_6CH float, int32, u, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_6CH float, int32, a, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_6CH int32, float, u, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -PACK_6CH int32, float, a, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT - -UNPACK_6CH float, int32, u, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -UNPACK_6CH float, int32, a, 2, 2, 8, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -UNPACK_6CH int32, float, u, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -UNPACK_6CH int32, float, a, 2, 2, 8, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT - -PACK_8CH float, float, u, 2, 2, 9, NOP_N, NOP_N -PACK_8CH float, float, a, 2, 2, 9, NOP_N, NOP_N - -PACK_8CH float, int32, u, 2, 2, 10, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_8CH float, int32, a, 2, 2, 10, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -PACK_8CH int32, float, u, 2, 2, 10, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -PACK_8CH int32, float, a, 2, 2, 10, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT - -INIT_YMM avx -CONV float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -CONV float, int32, a, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT -%endif - -%if HAVE_AVX2_EXTERNAL -INIT_YMM avx2 -CONV int32, float, u, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -CONV int32, float, a, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT -%endif diff --git a/libswresample/x86/rematrix.asm b/libswresample/x86/rematrix.asm deleted file mode 100644 index 7984b9a729..0000000000 --- a/libswresample/x86/rematrix.asm +++ /dev/null @@ -1,250 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2012 Michael Niedermayer -;* -;* 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 "libavutil/x86/x86util.asm" - - -SECTION_RODATA 32 -dw1: times 8 dd 1 -w1 : times 16 dw 1 - -SECTION .text - -%macro MIX2_FLT 1 -cglobal mix_2_1_%1_float, 7, 7, 6, out, in1, in2, coeffp, index1, index2, len -%ifidn %1, a - test in1q, mmsize-1 - jne mix_2_1_float_u_int %+ SUFFIX - test in2q, mmsize-1 - jne mix_2_1_float_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_2_1_float_u_int %+ SUFFIX -%else -mix_2_1_float_u_int %+ SUFFIX: -%endif - VBROADCASTSS m4, [coeffpq + 4*index1q] - VBROADCASTSS m5, [coeffpq + 4*index2q] - shl lend , 2 - add in1q , lenq - add in2q , lenq - add outq , lenq - neg lenq -.next: -%ifidn %1, a - mulps m0, m4, [in1q + lenq ] - mulps m1, m5, [in2q + lenq ] - mulps m2, m4, [in1q + lenq + mmsize] - mulps m3, m5, [in2q + lenq + mmsize] -%else - movu m0, [in1q + lenq ] - movu m1, [in2q + lenq ] - movu m2, [in1q + lenq + mmsize] - movu m3, [in2q + lenq + mmsize] - mulps m0, m0, m4 - mulps m1, m1, m5 - mulps m2, m2, m4 - mulps m3, m3, m5 -%endif - addps m0, m0, m1 - addps m2, m2, m3 - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m2 - add lenq, mmsize*2 - jl .next - REP_RET -%endmacro - -%macro MIX1_FLT 1 -cglobal mix_1_1_%1_float, 5, 5, 3, out, in, coeffp, index, len -%ifidn %1, a - test inq, mmsize-1 - jne mix_1_1_float_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_1_1_float_u_int %+ SUFFIX -%else -mix_1_1_float_u_int %+ SUFFIX: -%endif - VBROADCASTSS m2, [coeffpq + 4*indexq] - shl lenq , 2 - add inq , lenq - add outq , lenq - neg lenq -.next: -%ifidn %1, a - mulps m0, m2, [inq + lenq ] - mulps m1, m2, [inq + lenq + mmsize] -%else - movu m0, [inq + lenq ] - movu m1, [inq + lenq + mmsize] - mulps m0, m0, m2 - mulps m1, m1, m2 -%endif - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m1 - add lenq, mmsize*2 - jl .next - REP_RET -%endmacro - -%macro MIX1_INT16 1 -cglobal mix_1_1_%1_int16, 5, 5, 6, out, in, coeffp, index, len -%ifidn %1, a - test inq, mmsize-1 - jne mix_1_1_int16_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_1_1_int16_u_int %+ SUFFIX -%else -mix_1_1_int16_u_int %+ SUFFIX: -%endif - movd m4, [coeffpq + 4*indexq] - SPLATW m5, m4 - psllq m4, 32 - psrlq m4, 48 - mova m0, [w1] - psllw m0, m4 - psrlw m0, 1 - punpcklwd m5, m0 - add lenq , lenq - add inq , lenq - add outq , lenq - neg lenq -.next: - mov%1 m0, [inq + lenq ] - mov%1 m2, [inq + lenq + mmsize] - mova m1, m0 - mova m3, m2 - punpcklwd m0, [w1] - punpckhwd m1, [w1] - punpcklwd m2, [w1] - punpckhwd m3, [w1] - pmaddwd m0, m5 - pmaddwd m1, m5 - pmaddwd m2, m5 - pmaddwd m3, m5 - psrad m0, m4 - psrad m1, m4 - psrad m2, m4 - psrad m3, m4 - packssdw m0, m1 - packssdw m2, m3 - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m2 - add lenq, mmsize*2 - jl .next -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - -%macro MIX2_INT16 1 -cglobal mix_2_1_%1_int16, 7, 7, 8, out, in1, in2, coeffp, index1, index2, len -%ifidn %1, a - test in1q, mmsize-1 - jne mix_2_1_int16_u_int %+ SUFFIX - test in2q, mmsize-1 - jne mix_2_1_int16_u_int %+ SUFFIX - test outq, mmsize-1 - jne mix_2_1_int16_u_int %+ SUFFIX -%else -mix_2_1_int16_u_int %+ SUFFIX: -%endif - movd m4, [coeffpq + 4*index1q] - movd m6, [coeffpq + 4*index2q] - SPLATW m5, m4 - SPLATW m6, m6 - psllq m4, 32 - psrlq m4, 48 - mova m7, [dw1] - pslld m7, m4 - psrld m7, 1 - punpcklwd m5, m6 - add lend , lend - add in1q , lenq - add in2q , lenq - add outq , lenq - neg lenq -.next: - mov%1 m0, [in1q + lenq ] - mov%1 m2, [in2q + lenq ] - mova m1, m0 - punpcklwd m0, m2 - punpckhwd m1, m2 - - mov%1 m2, [in1q + lenq + mmsize] - mov%1 m6, [in2q + lenq + mmsize] - mova m3, m2 - punpcklwd m2, m6 - punpckhwd m3, m6 - - pmaddwd m0, m5 - pmaddwd m1, m5 - pmaddwd m2, m5 - pmaddwd m3, m5 - paddd m0, m7 - paddd m1, m7 - paddd m2, m7 - paddd m3, m7 - psrad m0, m4 - psrad m1, m4 - psrad m2, m4 - psrad m3, m4 - packssdw m0, m1 - packssdw m2, m3 - mov%1 [outq + lenq ], m0 - mov%1 [outq + lenq + mmsize], m2 - add lenq, mmsize*2 - jl .next -%if mmsize == 8 - emms - RET -%else - REP_RET -%endif -%endmacro - - -INIT_MMX mmx -MIX1_INT16 u -MIX1_INT16 a -MIX2_INT16 u -MIX2_INT16 a - -INIT_XMM sse -MIX2_FLT u -MIX2_FLT a -MIX1_FLT u -MIX1_FLT a - -INIT_XMM sse2 -MIX1_INT16 u -MIX1_INT16 a -MIX2_INT16 u -MIX2_INT16 a - -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -MIX2_FLT u -MIX2_FLT a -MIX1_FLT u -MIX1_FLT a -%endif diff --git a/libswresample/x86/resample.asm b/libswresample/x86/resample.asm deleted file mode 100644 index 7107cf9d42..0000000000 --- a/libswresample/x86/resample.asm +++ /dev/null @@ -1,619 +0,0 @@ -;****************************************************************************** -;* Copyright (c) 2012 Michael Niedermayer -;* Copyright (c) 2014 James Almer gmail.com> -;* Copyright (c) 2014 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 "libavutil/x86/x86util.asm" - -%if ARCH_X86_64 -%define pointer resq -%else -%define pointer resd -%endif - -struc ResampleContext - .av_class: pointer 1 - .filter_bank: pointer 1 - .filter_length: resd 1 - .filter_alloc: resd 1 - .ideal_dst_incr: resd 1 - .dst_incr: resd 1 - .dst_incr_div: resd 1 - .dst_incr_mod: resd 1 - .index: resd 1 - .frac: resd 1 - .src_incr: resd 1 - .compensation_distance: resd 1 - .phase_count: resd 1 - - ; there's a few more here but we only care about the first few -endstruc - -SECTION_RODATA - -pf_1: dd 1.0 -pdbl_1: dq 1.0 -pd_0x4000: dd 0x4000 - -SECTION .text - -; FIXME remove unneeded variables (index_incr, phase_mask) -%macro RESAMPLE_FNS 3-5 ; format [float or int16], bps, log2_bps, float op suffix [s or d], 1.0 constant -; int resample_common_$format(ResampleContext *ctx, $format *dst, -; const $format *src, int size, int update_ctx) -%if ARCH_X86_64 ; unix64 and win64 -cglobal resample_common_%1, 0, 15, 2, ctx, dst, src, phase_count, index, frac, \ - dst_incr_mod, size, min_filter_count_x4, \ - min_filter_len_x4, dst_incr_div, src_incr, \ - phase_mask, dst_end, filter_bank - - ; use red-zone for variable storage -%define ctx_stackq [rsp-0x8] -%define src_stackq [rsp-0x10] -%if WIN64 -%define update_context_stackd r4m -%else ; unix64 -%define update_context_stackd [rsp-0x14] -%endif - - ; load as many variables in registers as possible; for the rest, store - ; on stack so that we have 'ctx' available as one extra register - mov sized, r3d -%if UNIX64 - mov update_context_stackd, r4d -%endif - mov indexd, [ctxq+ResampleContext.index] - mov fracd, [ctxq+ResampleContext.frac] - mov dst_incr_modd, [ctxq+ResampleContext.dst_incr_mod] - mov filter_bankq, [ctxq+ResampleContext.filter_bank] - mov src_incrd, [ctxq+ResampleContext.src_incr] - mov ctx_stackq, ctxq - mov min_filter_len_x4d, [ctxq+ResampleContext.filter_length] - mov dst_incr_divd, [ctxq+ResampleContext.dst_incr_div] - shl min_filter_len_x4d, %3 - lea dst_endq, [dstq+sizeq*%2] - -%if UNIX64 - mov ecx, [ctxq+ResampleContext.phase_count] - mov edi, [ctxq+ResampleContext.filter_alloc] - - DEFINE_ARGS filter_alloc, dst, src, phase_count, index, frac, dst_incr_mod, \ - filter, min_filter_count_x4, min_filter_len_x4, dst_incr_div, \ - src_incr, phase_mask, dst_end, filter_bank -%elif WIN64 - mov R9d, [ctxq+ResampleContext.filter_alloc] - mov ecx, [ctxq+ResampleContext.phase_count] - - DEFINE_ARGS phase_count, dst, src, filter_alloc, index, frac, dst_incr_mod, \ - filter, min_filter_count_x4, min_filter_len_x4, dst_incr_div, \ - src_incr, phase_mask, dst_end, filter_bank -%endif - - neg min_filter_len_x4q - sub filter_bankq, min_filter_len_x4q - sub srcq, min_filter_len_x4q - mov src_stackq, srcq -%else ; x86-32 -cglobal resample_common_%1, 1, 7, 2, ctx, phase_count, dst, frac, \ - index, min_filter_length_x4, filter_bank - - ; push temp variables to stack -%define ctx_stackq r0mp -%define src_stackq r2mp -%define update_context_stackd r4m - - mov dstq, r1mp - mov r3, r3mp - lea r3, [dstq+r3*%2] - PUSH dword [ctxq+ResampleContext.dst_incr_div] - PUSH dword [ctxq+ResampleContext.dst_incr_mod] - PUSH dword [ctxq+ResampleContext.filter_alloc] - PUSH r3 - PUSH dword [ctxq+ResampleContext.phase_count] ; unneeded replacement for phase_mask - PUSH dword [ctxq+ResampleContext.src_incr] - mov min_filter_length_x4d, [ctxq+ResampleContext.filter_length] - mov indexd, [ctxq+ResampleContext.index] - shl min_filter_length_x4d, %3 - mov fracd, [ctxq+ResampleContext.frac] - neg min_filter_length_x4q - mov filter_bankq, [ctxq+ResampleContext.filter_bank] - sub r2mp, min_filter_length_x4q - sub filter_bankq, min_filter_length_x4q - PUSH min_filter_length_x4q - PUSH filter_bankq - mov phase_countd, [ctxq+ResampleContext.phase_count] - - DEFINE_ARGS src, phase_count, dst, frac, index, min_filter_count_x4, filter - -%define filter_bankq dword [rsp+0x0] -%define min_filter_length_x4q dword [rsp+0x4] -%define src_incrd dword [rsp+0x8] -%define phase_maskd dword [rsp+0xc] -%define dst_endq dword [rsp+0x10] -%define filter_allocd dword [rsp+0x14] -%define dst_incr_modd dword [rsp+0x18] -%define dst_incr_divd dword [rsp+0x1c] - - mov srcq, r2mp -%endif - -.loop: - mov filterd, filter_allocd - imul filterd, indexd -%if ARCH_X86_64 - mov min_filter_count_x4q, min_filter_len_x4q - lea filterq, [filter_bankq+filterq*%2] -%else ; x86-32 - mov min_filter_count_x4q, filter_bankq - lea filterq, [min_filter_count_x4q+filterq*%2] - mov min_filter_count_x4q, min_filter_length_x4q -%endif -%ifidn %1, int16 - movd m0, [pd_0x4000] -%else ; float/double - xorps m0, m0, m0 -%endif - - align 16 -.inner_loop: - movu m1, [srcq+min_filter_count_x4q*1] -%ifidn %1, int16 -%if cpuflag(xop) - vpmadcswd m0, m1, [filterq+min_filter_count_x4q*1], m0 -%else - pmaddwd m1, [filterq+min_filter_count_x4q*1] - paddd m0, m1 -%endif -%else ; float/double -%if cpuflag(fma4) || cpuflag(fma3) - fmaddp%4 m0, m1, [filterq+min_filter_count_x4q*1], m0 -%else - mulp%4 m1, m1, [filterq+min_filter_count_x4q*1] - addp%4 m0, m0, m1 -%endif ; cpuflag -%endif - add min_filter_count_x4q, mmsize - js .inner_loop - -%ifidn %1, int16 - HADDD m0, m1 - psrad m0, 15 - add fracd, dst_incr_modd - packssdw m0, m0 - add indexd, dst_incr_divd - movd [dstq], m0 -%else ; float/double - ; horizontal sum & store -%if mmsize == 32 - vextractf128 xm1, m0, 0x1 - addp%4 xm0, xm1 -%endif - movhlps xm1, xm0 -%ifidn %1, float - addps xm0, xm1 - shufps xm1, xm0, xm0, q0001 -%endif - add fracd, dst_incr_modd - addp%4 xm0, xm1 - add indexd, dst_incr_divd - movs%4 [dstq], xm0 -%endif - cmp fracd, src_incrd - jl .skip - sub fracd, src_incrd - inc indexd - -%if UNIX64 - DEFINE_ARGS filter_alloc, dst, src, phase_count, index, frac, dst_incr_mod, \ - index_incr, min_filter_count_x4, min_filter_len_x4, dst_incr_div, \ - src_incr, phase_mask, dst_end, filter_bank -%elif WIN64 - DEFINE_ARGS phase_count, dst, src, filter_alloc, index, frac, dst_incr_mod, \ - index_incr, min_filter_count_x4, min_filter_len_x4, dst_incr_div, \ - src_incr, phase_mask, dst_end, filter_bank -%else ; x86-32 - DEFINE_ARGS src, phase_count, dst, frac, index, index_incr -%endif - -.skip: - add dstq, %2 - cmp indexd, phase_countd - jb .index_skip -.index_while: - sub indexd, phase_countd - lea srcq, [srcq+%2] - cmp indexd, phase_countd - jnb .index_while -.index_skip: - cmp dstq, dst_endq - jne .loop - -%if ARCH_X86_64 - DEFINE_ARGS ctx, dst, src, phase_count, index, frac -%else ; x86-32 - DEFINE_ARGS src, ctx, update_context, frac, index -%endif - - cmp dword update_context_stackd, 0 - jz .skip_store - ; strictly speaking, the function should always return the consumed - ; number of bytes; however, we only use the value if update_context - ; is true, so let's just leave it uninitialized otherwise - mov ctxq, ctx_stackq - movifnidn rax, srcq - mov [ctxq+ResampleContext.frac ], fracd - sub rax, src_stackq - mov [ctxq+ResampleContext.index], indexd - shr rax, %3 - -.skip_store: -%if ARCH_X86_32 - ADD rsp, 0x20 -%endif - RET - -; int resample_linear_$format(ResampleContext *ctx, float *dst, -; const float *src, int size, int update_ctx) -%if ARCH_X86_64 ; unix64 and win64 -%if UNIX64 -cglobal resample_linear_%1, 0, 15, 5, ctx, dst, phase_mask, phase_count, index, frac, \ - size, dst_incr_mod, min_filter_count_x4, \ - min_filter_len_x4, dst_incr_div, src_incr, \ - src, dst_end, filter_bank - - mov srcq, r2mp -%else ; win64 -cglobal resample_linear_%1, 0, 15, 5, ctx, phase_mask, src, phase_count, index, frac, \ - size, dst_incr_mod, min_filter_count_x4, \ - min_filter_len_x4, dst_incr_div, src_incr, \ - dst, dst_end, filter_bank - - mov dstq, r1mp -%endif - - ; use red-zone for variable storage -%define ctx_stackq [rsp-0x8] -%define src_stackq [rsp-0x10] -%define phase_mask_stackd [rsp-0x14] -%if WIN64 -%define update_context_stackd r4m -%else ; unix64 -%define update_context_stackd [rsp-0x18] -%endif - - ; load as many variables in registers as possible; for the rest, store - ; on stack so that we have 'ctx' available as one extra register - mov sized, r3d -%if UNIX64 - mov update_context_stackd, r4d -%endif - mov indexd, [ctxq+ResampleContext.index] - mov fracd, [ctxq+ResampleContext.frac] - mov dst_incr_modd, [ctxq+ResampleContext.dst_incr_mod] - mov filter_bankq, [ctxq+ResampleContext.filter_bank] - mov src_incrd, [ctxq+ResampleContext.src_incr] - mov ctx_stackq, ctxq - mov min_filter_len_x4d, [ctxq+ResampleContext.filter_length] -%ifidn %1, int16 - movd m4, [pd_0x4000] -%else ; float/double - cvtsi2s%4 xm0, src_incrd - movs%4 xm4, [%5] - divs%4 xm4, xm0 -%endif - mov dst_incr_divd, [ctxq+ResampleContext.dst_incr_div] - shl min_filter_len_x4d, %3 - lea dst_endq, [dstq+sizeq*%2] - -%if UNIX64 - mov ecx, [ctxq+ResampleContext.phase_count] - mov edi, [ctxq+ResampleContext.filter_alloc] - - DEFINE_ARGS filter_alloc, dst, filter2, phase_count, index, frac, filter1, \ - dst_incr_mod, min_filter_count_x4, min_filter_len_x4, \ - dst_incr_div, src_incr, src, dst_end, filter_bank -%elif WIN64 - mov R9d, [ctxq+ResampleContext.filter_alloc] - mov ecx, [ctxq+ResampleContext.phase_count] - - DEFINE_ARGS phase_count, filter2, src, filter_alloc, index, frac, filter1, \ - dst_incr_mod, min_filter_count_x4, min_filter_len_x4, \ - dst_incr_div, src_incr, dst, dst_end, filter_bank -%endif - - neg min_filter_len_x4q - sub filter_bankq, min_filter_len_x4q - sub srcq, min_filter_len_x4q - mov src_stackq, srcq -%else ; x86-32 -cglobal resample_linear_%1, 1, 7, 5, ctx, min_filter_length_x4, filter2, \ - frac, index, dst, filter_bank - - ; push temp variables to stack -%define ctx_stackq r0mp -%define src_stackq r2mp -%define update_context_stackd r4m - - mov dstq, r1mp - mov r3, r3mp - lea r3, [dstq+r3*%2] - PUSH dword [ctxq+ResampleContext.dst_incr_div] - PUSH r3 - mov r3, dword [ctxq+ResampleContext.filter_alloc] - PUSH dword [ctxq+ResampleContext.dst_incr_mod] - PUSH r3 - shl r3, %3 - PUSH r3 - mov r3, dword [ctxq+ResampleContext.src_incr] - PUSH dword [ctxq+ResampleContext.phase_count] ; unneeded replacement of phase_mask - PUSH r3d -%ifidn %1, int16 - movd m4, [pd_0x4000] -%else ; float/double - cvtsi2s%4 xm0, r3d - movs%4 xm4, [%5] - divs%4 xm4, xm0 -%endif - mov min_filter_length_x4d, [ctxq+ResampleContext.filter_length] - mov indexd, [ctxq+ResampleContext.index] - shl min_filter_length_x4d, %3 - mov fracd, [ctxq+ResampleContext.frac] - neg min_filter_length_x4q - mov filter_bankq, [ctxq+ResampleContext.filter_bank] - sub r2mp, min_filter_length_x4q - sub filter_bankq, min_filter_length_x4q - PUSH min_filter_length_x4q - PUSH filter_bankq - PUSH dword [ctxq+ResampleContext.phase_count] - - DEFINE_ARGS filter1, min_filter_count_x4, filter2, frac, index, dst, src - -%define phase_count_stackd dword [rsp+0x0] -%define filter_bankq dword [rsp+0x4] -%define min_filter_length_x4q dword [rsp+0x8] -%define src_incrd dword [rsp+0xc] -%define phase_mask_stackd dword [rsp+0x10] -%define filter_alloc_x4q dword [rsp+0x14] -%define filter_allocd dword [rsp+0x18] -%define dst_incr_modd dword [rsp+0x1c] -%define dst_endq dword [rsp+0x20] -%define dst_incr_divd dword [rsp+0x24] - - mov srcq, r2mp -%endif - -.loop: - mov filter1d, filter_allocd - imul filter1d, indexd -%if ARCH_X86_64 - mov min_filter_count_x4q, min_filter_len_x4q - lea filter1q, [filter_bankq+filter1q*%2] - lea filter2q, [filter1q+filter_allocq*%2] -%else ; x86-32 - mov min_filter_count_x4q, filter_bankq - lea filter1q, [min_filter_count_x4q+filter1q*%2] - mov min_filter_count_x4q, min_filter_length_x4q - mov filter2q, filter1q - add filter2q, filter_alloc_x4q -%endif -%ifidn %1, int16 - mova m0, m4 - mova m2, m4 -%else ; float/double - xorps m0, m0, m0 - xorps m2, m2, m2 -%endif - - align 16 -.inner_loop: - movu m1, [srcq+min_filter_count_x4q*1] -%ifidn %1, int16 -%if cpuflag(xop) - vpmadcswd m2, m1, [filter2q+min_filter_count_x4q*1], m2 - vpmadcswd m0, m1, [filter1q+min_filter_count_x4q*1], m0 -%else - pmaddwd m3, m1, [filter2q+min_filter_count_x4q*1] - pmaddwd m1, [filter1q+min_filter_count_x4q*1] - paddd m2, m3 - paddd m0, m1 -%endif ; cpuflag -%else ; float/double -%if cpuflag(fma4) || cpuflag(fma3) - fmaddp%4 m2, m1, [filter2q+min_filter_count_x4q*1], m2 - fmaddp%4 m0, m1, [filter1q+min_filter_count_x4q*1], m0 -%else - mulp%4 m3, m1, [filter2q+min_filter_count_x4q*1] - mulp%4 m1, m1, [filter1q+min_filter_count_x4q*1] - addp%4 m2, m2, m3 - addp%4 m0, m0, m1 -%endif ; cpuflag -%endif - add min_filter_count_x4q, mmsize - js .inner_loop - -%ifidn %1, int16 -%if mmsize == 16 -%if cpuflag(xop) - vphadddq m2, m2 - vphadddq m0, m0 -%endif - pshufd m3, m2, q0032 - pshufd m1, m0, q0032 - paddd m2, m3 - paddd m0, m1 -%endif -%if notcpuflag(xop) - PSHUFLW m3, m2, q0032 - PSHUFLW m1, m0, q0032 - paddd m2, m3 - paddd m0, m1 -%endif - psubd m2, m0 - ; This is probably a really bad idea on atom and other machines with a - ; long transfer latency between GPRs and XMMs (atom). However, it does - ; make the clip a lot simpler... - movd eax, m2 - add indexd, dst_incr_divd - imul fracd - idiv src_incrd - movd m1, eax - add fracd, dst_incr_modd - paddd m0, m1 - psrad m0, 15 - packssdw m0, m0 - movd [dstq], m0 - - ; note that for imul/idiv, I need to move filter to edx/eax for each: - ; - 32bit: eax=r0[filter1], edx=r2[filter2] - ; - win64: eax=r6[filter1], edx=r1[todo] - ; - unix64: eax=r6[filter1], edx=r2[todo] -%else ; float/double - ; val += (v2 - val) * (FELEML) frac / c->src_incr; -%if mmsize == 32 - vextractf128 xm1, m0, 0x1 - vextractf128 xm3, m2, 0x1 - addp%4 xm0, xm1 - addp%4 xm2, xm3 -%endif - cvtsi2s%4 xm1, fracd - subp%4 xm2, xm0 - mulp%4 xm1, xm4 - shufp%4 xm1, xm1, q0000 -%if cpuflag(fma4) || cpuflag(fma3) - fmaddp%4 xm0, xm2, xm1, xm0 -%else - mulp%4 xm2, xm1 - addp%4 xm0, xm2 -%endif ; cpuflag - - ; horizontal sum & store - movhlps xm1, xm0 -%ifidn %1, float - addps xm0, xm1 - shufps xm1, xm0, xm0, q0001 -%endif - add fracd, dst_incr_modd - addp%4 xm0, xm1 - add indexd, dst_incr_divd - movs%4 [dstq], xm0 -%endif - cmp fracd, src_incrd - jl .skip - sub fracd, src_incrd - inc indexd - -%if UNIX64 - DEFINE_ARGS filter_alloc, dst, filter2, phase_count, index, frac, index_incr, \ - dst_incr_mod, min_filter_count_x4, min_filter_len_x4, \ - dst_incr_div, src_incr, src, dst_end, filter_bank -%elif WIN64 - DEFINE_ARGS phase_count, filter2, src, filter_alloc, index, frac, index_incr, \ - dst_incr_mod, min_filter_count_x4, min_filter_len_x4, \ - dst_incr_div, src_incr, dst, dst_end, filter_bank -%else ; x86-32 - DEFINE_ARGS filter1, phase_count, index_incr, frac, index, dst, src -%endif - -.skip: -%if ARCH_X86_32 - mov phase_countd, phase_count_stackd -%endif - add dstq, %2 - cmp indexd, phase_countd - jb .index_skip -.index_while: - sub indexd, phase_countd - lea srcq, [srcq+%2] - cmp indexd, phase_countd - jnb .index_while -.index_skip: - cmp dstq, dst_endq - jne .loop - -%if UNIX64 - DEFINE_ARGS ctx, dst, filter2, phase_count, index, frac, index_incr, \ - dst_incr_mod, min_filter_count_x4, min_filter_len_x4, \ - dst_incr_div, src_incr, src, dst_end, filter_bank -%elif WIN64 - DEFINE_ARGS ctx, filter2, src, phase_count, index, frac, index_incr, \ - dst_incr_mod, min_filter_count_x4, min_filter_len_x4, \ - dst_incr_div, src_incr, dst, dst_end, filter_bank -%else ; x86-32 - DEFINE_ARGS filter1, ctx, update_context, frac, index, dst, src -%endif - - cmp dword update_context_stackd, 0 - jz .skip_store - ; strictly speaking, the function should always return the consumed - ; number of bytes; however, we only use the value if update_context - ; is true, so let's just leave it uninitialized otherwise - mov ctxq, ctx_stackq - movifnidn rax, srcq - mov [ctxq+ResampleContext.frac ], fracd - sub rax, src_stackq - mov [ctxq+ResampleContext.index], indexd - shr rax, %3 - -.skip_store: -%if ARCH_X86_32 - ADD rsp, 0x28 -%endif - RET -%endmacro - -INIT_XMM sse -RESAMPLE_FNS float, 4, 2, s, pf_1 - -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -RESAMPLE_FNS float, 4, 2, s, pf_1 -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -RESAMPLE_FNS float, 4, 2, s, pf_1 -%endif -%if HAVE_FMA4_EXTERNAL -INIT_XMM fma4 -RESAMPLE_FNS float, 4, 2, s, pf_1 -%endif - -%if ARCH_X86_32 -INIT_MMX mmxext -RESAMPLE_FNS int16, 2, 1 -%endif - -INIT_XMM sse2 -RESAMPLE_FNS int16, 2, 1 -%if HAVE_XOP_EXTERNAL -INIT_XMM xop -RESAMPLE_FNS int16, 2, 1 -%endif - -INIT_XMM sse2 -RESAMPLE_FNS double, 8, 3, d, pdbl_1 - -%if HAVE_AVX_EXTERNAL -INIT_YMM avx -RESAMPLE_FNS double, 8, 3, d, pdbl_1 -%endif -%if HAVE_FMA3_EXTERNAL -INIT_YMM fma3 -RESAMPLE_FNS double, 8, 3, d, pdbl_1 -%endif diff --git a/libswscale/tests/.gitignore b/libswscale/tests/.gitignore deleted file mode 100644 index 1a26f038c4..0000000000 --- a/libswscale/tests/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/colorspace -/pixdesc_query -/swscale diff --git a/libswscale/x86/input.asm b/libswscale/x86/input.asm deleted file mode 100644 index af9afcaa53..0000000000 --- a/libswscale/x86/input.asm +++ /dev/null @@ -1,740 +0,0 @@ -;****************************************************************************** -;* x86-optimized input routines; does shuffling of packed -;* YUV formats into individual planes, and converts RGB -;* into YUV planes also. -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -%define RY 0x20DE -%define GY 0x4087 -%define BY 0x0C88 -%define RU 0xECFF -%define GU 0xDAC8 -%define BU 0x3838 -%define RV 0x3838 -%define GV 0xD0E3 -%define BV 0xF6E4 - -rgb_Yrnd: times 4 dd 0x80100 ; 16.5 << 15 -rgb_UVrnd: times 4 dd 0x400100 ; 128.5 << 15 -%define bgr_Ycoeff_12x4 16*4 + 16* 0 + tableq -%define bgr_Ycoeff_3x56 16*4 + 16* 1 + tableq -%define rgb_Ycoeff_12x4 16*4 + 16* 2 + tableq -%define rgb_Ycoeff_3x56 16*4 + 16* 3 + tableq -%define bgr_Ucoeff_12x4 16*4 + 16* 4 + tableq -%define bgr_Ucoeff_3x56 16*4 + 16* 5 + tableq -%define rgb_Ucoeff_12x4 16*4 + 16* 6 + tableq -%define rgb_Ucoeff_3x56 16*4 + 16* 7 + tableq -%define bgr_Vcoeff_12x4 16*4 + 16* 8 + tableq -%define bgr_Vcoeff_3x56 16*4 + 16* 9 + tableq -%define rgb_Vcoeff_12x4 16*4 + 16*10 + tableq -%define rgb_Vcoeff_3x56 16*4 + 16*11 + tableq - -%define rgba_Ycoeff_rb 16*4 + 16*12 + tableq -%define rgba_Ycoeff_br 16*4 + 16*13 + tableq -%define rgba_Ycoeff_ga 16*4 + 16*14 + tableq -%define rgba_Ycoeff_ag 16*4 + 16*15 + tableq -%define rgba_Ucoeff_rb 16*4 + 16*16 + tableq -%define rgba_Ucoeff_br 16*4 + 16*17 + tableq -%define rgba_Ucoeff_ga 16*4 + 16*18 + tableq -%define rgba_Ucoeff_ag 16*4 + 16*19 + tableq -%define rgba_Vcoeff_rb 16*4 + 16*20 + tableq -%define rgba_Vcoeff_br 16*4 + 16*21 + tableq -%define rgba_Vcoeff_ga 16*4 + 16*22 + tableq -%define rgba_Vcoeff_ag 16*4 + 16*23 + tableq - -; bgr_Ycoeff_12x4: times 2 dw BY, GY, 0, BY -; bgr_Ycoeff_3x56: times 2 dw RY, 0, GY, RY -; rgb_Ycoeff_12x4: times 2 dw RY, GY, 0, RY -; rgb_Ycoeff_3x56: times 2 dw BY, 0, GY, BY -; bgr_Ucoeff_12x4: times 2 dw BU, GU, 0, BU -; bgr_Ucoeff_3x56: times 2 dw RU, 0, GU, RU -; rgb_Ucoeff_12x4: times 2 dw RU, GU, 0, RU -; rgb_Ucoeff_3x56: times 2 dw BU, 0, GU, BU -; bgr_Vcoeff_12x4: times 2 dw BV, GV, 0, BV -; bgr_Vcoeff_3x56: times 2 dw RV, 0, GV, RV -; rgb_Vcoeff_12x4: times 2 dw RV, GV, 0, RV -; rgb_Vcoeff_3x56: times 2 dw BV, 0, GV, BV - -; rgba_Ycoeff_rb: times 4 dw RY, BY -; rgba_Ycoeff_br: times 4 dw BY, RY -; rgba_Ycoeff_ga: times 4 dw GY, 0 -; rgba_Ycoeff_ag: times 4 dw 0, GY -; rgba_Ucoeff_rb: times 4 dw RU, BU -; rgba_Ucoeff_br: times 4 dw BU, RU -; rgba_Ucoeff_ga: times 4 dw GU, 0 -; rgba_Ucoeff_ag: times 4 dw 0, GU -; rgba_Vcoeff_rb: times 4 dw RV, BV -; rgba_Vcoeff_br: times 4 dw BV, RV -; rgba_Vcoeff_ga: times 4 dw GV, 0 -; rgba_Vcoeff_ag: times 4 dw 0, GV - -shuf_rgb_12x4: db 0, 0x80, 1, 0x80, 2, 0x80, 3, 0x80, \ - 6, 0x80, 7, 0x80, 8, 0x80, 9, 0x80 -shuf_rgb_3x56: db 2, 0x80, 3, 0x80, 4, 0x80, 5, 0x80, \ - 8, 0x80, 9, 0x80, 10, 0x80, 11, 0x80 - -SECTION .text - -;----------------------------------------------------------------------------- -; RGB to Y/UV. -; -; void ToY_(uint8_t *dst, const uint8_t *src, int w); -; and -; void toUV_(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, -; const uint8_t *unused, int w); -;----------------------------------------------------------------------------- - -; %1 = nr. of XMM registers -; %2 = rgb or bgr -%macro RGB24_TO_Y_FN 2-3 -cglobal %2 %+ 24ToY, 6, 6, %1, dst, src, u1, u2, w, table -%if mmsize == 8 - mova m5, [%2_Ycoeff_12x4] - mova m6, [%2_Ycoeff_3x56] -%define coeff1 m5 -%define coeff2 m6 -%elif ARCH_X86_64 - mova m8, [%2_Ycoeff_12x4] - mova m9, [%2_Ycoeff_3x56] -%define coeff1 m8 -%define coeff2 m9 -%else ; x86-32 && mmsize == 16 -%define coeff1 [%2_Ycoeff_12x4] -%define coeff2 [%2_Ycoeff_3x56] -%endif ; x86-32/64 && mmsize == 8/16 -%if (ARCH_X86_64 || mmsize == 8) && %0 == 3 - jmp mangle(private_prefix %+ _ %+ %3 %+ 24ToY %+ SUFFIX).body -%else ; (ARCH_X86_64 && %0 == 3) || mmsize == 8 -.body: -%if cpuflag(ssse3) - mova m7, [shuf_rgb_12x4] -%define shuf_rgb1 m7 -%if ARCH_X86_64 - mova m10, [shuf_rgb_3x56] -%define shuf_rgb2 m10 -%else ; x86-32 -%define shuf_rgb2 [shuf_rgb_3x56] -%endif ; x86-32/64 -%endif ; cpuflag(ssse3) -%if ARCH_X86_64 - movsxd wq, wd -%endif - add wq, wq - add dstq, wq - neg wq -%if notcpuflag(ssse3) - pxor m7, m7 -%endif ; !cpuflag(ssse3) - mova m4, [rgb_Yrnd] -.loop: -%if cpuflag(ssse3) - movu m0, [srcq+0] ; (byte) { Bx, Gx, Rx }[0-3] - movu m2, [srcq+12] ; (byte) { Bx, Gx, Rx }[4-7] - pshufb m1, m0, shuf_rgb2 ; (word) { R0, B1, G1, R1, R2, B3, G3, R3 } - pshufb m0, shuf_rgb1 ; (word) { B0, G0, R0, B1, B2, G2, R2, B3 } - pshufb m3, m2, shuf_rgb2 ; (word) { R4, B5, G5, R5, R6, B7, G7, R7 } - pshufb m2, shuf_rgb1 ; (word) { B4, G4, R4, B5, B6, G6, R6, B7 } -%else ; !cpuflag(ssse3) - movd m0, [srcq+0] ; (byte) { B0, G0, R0, B1 } - movd m1, [srcq+2] ; (byte) { R0, B1, G1, R1 } - movd m2, [srcq+6] ; (byte) { B2, G2, R2, B3 } - movd m3, [srcq+8] ; (byte) { R2, B3, G3, R3 } -%if mmsize == 16 ; i.e. sse2 - punpckldq m0, m2 ; (byte) { B0, G0, R0, B1, B2, G2, R2, B3 } - punpckldq m1, m3 ; (byte) { R0, B1, G1, R1, R2, B3, G3, R3 } - movd m2, [srcq+12] ; (byte) { B4, G4, R4, B5 } - movd m3, [srcq+14] ; (byte) { R4, B5, G5, R5 } - movd m5, [srcq+18] ; (byte) { B6, G6, R6, B7 } - movd m6, [srcq+20] ; (byte) { R6, B7, G7, R7 } - punpckldq m2, m5 ; (byte) { B4, G4, R4, B5, B6, G6, R6, B7 } - punpckldq m3, m6 ; (byte) { R4, B5, G5, R5, R6, B7, G7, R7 } -%endif ; mmsize == 16 - punpcklbw m0, m7 ; (word) { B0, G0, R0, B1, B2, G2, R2, B3 } - punpcklbw m1, m7 ; (word) { R0, B1, G1, R1, R2, B3, G3, R3 } - punpcklbw m2, m7 ; (word) { B4, G4, R4, B5, B6, G6, R6, B7 } - punpcklbw m3, m7 ; (word) { R4, B5, G5, R5, R6, B7, G7, R7 } -%endif ; cpuflag(ssse3) - add srcq, 3 * mmsize / 2 - pmaddwd m0, coeff1 ; (dword) { B0*BY + G0*GY, B1*BY, B2*BY + G2*GY, B3*BY } - pmaddwd m1, coeff2 ; (dword) { R0*RY, G1+GY + R1*RY, R2*RY, G3+GY + R3*RY } - pmaddwd m2, coeff1 ; (dword) { B4*BY + G4*GY, B5*BY, B6*BY + G6*GY, B7*BY } - pmaddwd m3, coeff2 ; (dword) { R4*RY, G5+GY + R5*RY, R6*RY, G7+GY + R7*RY } - paddd m0, m1 ; (dword) { Bx*BY + Gx*GY + Rx*RY }[0-3] - paddd m2, m3 ; (dword) { Bx*BY + Gx*GY + Rx*RY }[4-7] - paddd m0, m4 ; += rgb_Yrnd, i.e. (dword) { Y[0-3] } - paddd m2, m4 ; += rgb_Yrnd, i.e. (dword) { Y[4-7] } - psrad m0, 9 - psrad m2, 9 - packssdw m0, m2 ; (word) { Y[0-7] } - mova [dstq+wq], m0 - add wq, mmsize - jl .loop - REP_RET -%endif ; (ARCH_X86_64 && %0 == 3) || mmsize == 8 -%endmacro - -; %1 = nr. of XMM registers -; %2 = rgb or bgr -%macro RGB24_TO_UV_FN 2-3 -cglobal %2 %+ 24ToUV, 7, 7, %1, dstU, dstV, u1, src, u2, w, table -%if ARCH_X86_64 - mova m8, [%2_Ucoeff_12x4] - mova m9, [%2_Ucoeff_3x56] - mova m10, [%2_Vcoeff_12x4] - mova m11, [%2_Vcoeff_3x56] -%define coeffU1 m8 -%define coeffU2 m9 -%define coeffV1 m10 -%define coeffV2 m11 -%else ; x86-32 -%define coeffU1 [%2_Ucoeff_12x4] -%define coeffU2 [%2_Ucoeff_3x56] -%define coeffV1 [%2_Vcoeff_12x4] -%define coeffV2 [%2_Vcoeff_3x56] -%endif ; x86-32/64 -%if ARCH_X86_64 && %0 == 3 - jmp mangle(private_prefix %+ _ %+ %3 %+ 24ToUV %+ SUFFIX).body -%else ; ARCH_X86_64 && %0 == 3 -.body: -%if cpuflag(ssse3) - mova m7, [shuf_rgb_12x4] -%define shuf_rgb1 m7 -%if ARCH_X86_64 - mova m12, [shuf_rgb_3x56] -%define shuf_rgb2 m12 -%else ; x86-32 -%define shuf_rgb2 [shuf_rgb_3x56] -%endif ; x86-32/64 -%endif ; cpuflag(ssse3) -%if ARCH_X86_64 - movsxd wq, dword r5m -%else ; x86-32 - mov wq, r5m -%endif - add wq, wq - add dstUq, wq - add dstVq, wq - neg wq - mova m6, [rgb_UVrnd] -%if notcpuflag(ssse3) - pxor m7, m7 -%endif -.loop: -%if cpuflag(ssse3) - movu m0, [srcq+0] ; (byte) { Bx, Gx, Rx }[0-3] - movu m4, [srcq+12] ; (byte) { Bx, Gx, Rx }[4-7] - pshufb m1, m0, shuf_rgb2 ; (word) { R0, B1, G1, R1, R2, B3, G3, R3 } - pshufb m0, shuf_rgb1 ; (word) { B0, G0, R0, B1, B2, G2, R2, B3 } -%else ; !cpuflag(ssse3) - movd m0, [srcq+0] ; (byte) { B0, G0, R0, B1 } - movd m1, [srcq+2] ; (byte) { R0, B1, G1, R1 } - movd m4, [srcq+6] ; (byte) { B2, G2, R2, B3 } - movd m5, [srcq+8] ; (byte) { R2, B3, G3, R3 } -%if mmsize == 16 - punpckldq m0, m4 ; (byte) { B0, G0, R0, B1, B2, G2, R2, B3 } - punpckldq m1, m5 ; (byte) { R0, B1, G1, R1, R2, B3, G3, R3 } - movd m4, [srcq+12] ; (byte) { B4, G4, R4, B5 } - movd m5, [srcq+14] ; (byte) { R4, B5, G5, R5 } -%endif ; mmsize == 16 - punpcklbw m0, m7 ; (word) { B0, G0, R0, B1, B2, G2, R2, B3 } - punpcklbw m1, m7 ; (word) { R0, B1, G1, R1, R2, B3, G3, R3 } -%endif ; cpuflag(ssse3) - pmaddwd m2, m0, coeffV1 ; (dword) { B0*BV + G0*GV, B1*BV, B2*BV + G2*GV, B3*BV } - pmaddwd m3, m1, coeffV2 ; (dword) { R0*BV, G1*GV + R1*BV, R2*BV, G3*GV + R3*BV } - pmaddwd m0, coeffU1 ; (dword) { B0*BU + G0*GU, B1*BU, B2*BU + G2*GU, B3*BU } - pmaddwd m1, coeffU2 ; (dword) { R0*BU, G1*GU + R1*BU, R2*BU, G3*GU + R3*BU } - paddd m0, m1 ; (dword) { Bx*BU + Gx*GU + Rx*RU }[0-3] - paddd m2, m3 ; (dword) { Bx*BV + Gx*GV + Rx*RV }[0-3] -%if cpuflag(ssse3) - pshufb m5, m4, shuf_rgb2 ; (word) { R4, B5, G5, R5, R6, B7, G7, R7 } - pshufb m4, shuf_rgb1 ; (word) { B4, G4, R4, B5, B6, G6, R6, B7 } -%else ; !cpuflag(ssse3) -%if mmsize == 16 - movd m1, [srcq+18] ; (byte) { B6, G6, R6, B7 } - movd m3, [srcq+20] ; (byte) { R6, B7, G7, R7 } - punpckldq m4, m1 ; (byte) { B4, G4, R4, B5, B6, G6, R6, B7 } - punpckldq m5, m3 ; (byte) { R4, B5, G5, R5, R6, B7, G7, R7 } -%endif ; mmsize == 16 && !cpuflag(ssse3) - punpcklbw m4, m7 ; (word) { B4, G4, R4, B5, B6, G6, R6, B7 } - punpcklbw m5, m7 ; (word) { R4, B5, G5, R5, R6, B7, G7, R7 } -%endif ; cpuflag(ssse3) - add srcq, 3 * mmsize / 2 - pmaddwd m1, m4, coeffU1 ; (dword) { B4*BU + G4*GU, B5*BU, B6*BU + G6*GU, B7*BU } - pmaddwd m3, m5, coeffU2 ; (dword) { R4*BU, G5*GU + R5*BU, R6*BU, G7*GU + R7*BU } - pmaddwd m4, coeffV1 ; (dword) { B4*BV + G4*GV, B5*BV, B6*BV + G6*GV, B7*BV } - pmaddwd m5, coeffV2 ; (dword) { R4*BV, G5*GV + R5*BV, R6*BV, G7*GV + R7*BV } - paddd m1, m3 ; (dword) { Bx*BU + Gx*GU + Rx*RU }[4-7] - paddd m4, m5 ; (dword) { Bx*BV + Gx*GV + Rx*RV }[4-7] - paddd m0, m6 ; += rgb_UVrnd, i.e. (dword) { U[0-3] } - paddd m2, m6 ; += rgb_UVrnd, i.e. (dword) { V[0-3] } - paddd m1, m6 ; += rgb_UVrnd, i.e. (dword) { U[4-7] } - paddd m4, m6 ; += rgb_UVrnd, i.e. (dword) { V[4-7] } - psrad m0, 9 - psrad m2, 9 - psrad m1, 9 - psrad m4, 9 - packssdw m0, m1 ; (word) { U[0-7] } - packssdw m2, m4 ; (word) { V[0-7] } -%if mmsize == 8 - mova [dstUq+wq], m0 - mova [dstVq+wq], m2 -%else ; mmsize == 16 - mova [dstUq+wq], m0 - mova [dstVq+wq], m2 -%endif ; mmsize == 8/16 - add wq, mmsize - jl .loop - REP_RET -%endif ; ARCH_X86_64 && %0 == 3 -%endmacro - -; %1 = nr. of XMM registers for rgb-to-Y func -; %2 = nr. of XMM registers for rgb-to-UV func -%macro RGB24_FUNCS 2 -RGB24_TO_Y_FN %1, rgb -RGB24_TO_Y_FN %1, bgr, rgb -RGB24_TO_UV_FN %2, rgb -RGB24_TO_UV_FN %2, bgr, rgb -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -RGB24_FUNCS 0, 0 -%endif - -INIT_XMM sse2 -RGB24_FUNCS 10, 12 - -INIT_XMM ssse3 -RGB24_FUNCS 11, 13 - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -RGB24_FUNCS 11, 13 -%endif - -; %1 = nr. of XMM registers -; %2-5 = rgba, bgra, argb or abgr (in individual characters) -%macro RGB32_TO_Y_FN 5-6 -cglobal %2%3%4%5 %+ ToY, 6, 6, %1, dst, src, u1, u2, w, table - mova m5, [rgba_Ycoeff_%2%4] - mova m6, [rgba_Ycoeff_%3%5] -%if %0 == 6 - jmp mangle(private_prefix %+ _ %+ %6 %+ ToY %+ SUFFIX).body -%else ; %0 == 6 -.body: -%if ARCH_X86_64 - movsxd wq, wd -%endif - add wq, wq - sub wq, mmsize - 1 - lea srcq, [srcq+wq*2] - add dstq, wq - neg wq - mova m4, [rgb_Yrnd] - pcmpeqb m7, m7 - psrlw m7, 8 ; (word) { 0x00ff } x4 -.loop: - ; FIXME check alignment and use mova - movu m0, [srcq+wq*2+0] ; (byte) { Bx, Gx, Rx, xx }[0-3] - movu m2, [srcq+wq*2+mmsize] ; (byte) { Bx, Gx, Rx, xx }[4-7] - DEINTB 1, 0, 3, 2, 7 ; (word) { Gx, xx (m0/m2) or Bx, Rx (m1/m3) }[0-3]/[4-7] - pmaddwd m1, m5 ; (dword) { Bx*BY + Rx*RY }[0-3] - pmaddwd m0, m6 ; (dword) { Gx*GY }[0-3] - pmaddwd m3, m5 ; (dword) { Bx*BY + Rx*RY }[4-7] - pmaddwd m2, m6 ; (dword) { Gx*GY }[4-7] - paddd m0, m4 ; += rgb_Yrnd - paddd m2, m4 ; += rgb_Yrnd - paddd m0, m1 ; (dword) { Y[0-3] } - paddd m2, m3 ; (dword) { Y[4-7] } - psrad m0, 9 - psrad m2, 9 - packssdw m0, m2 ; (word) { Y[0-7] } - mova [dstq+wq], m0 - add wq, mmsize - jl .loop - sub wq, mmsize - 1 - jz .end - add srcq, 2*mmsize - 2 - add dstq, mmsize - 1 -.loop2: - movd m0, [srcq+wq*2+0] ; (byte) { Bx, Gx, Rx, xx }[0-3] - DEINTB 1, 0, 3, 2, 7 ; (word) { Gx, xx (m0/m2) or Bx, Rx (m1/m3) }[0-3]/[4-7] - pmaddwd m1, m5 ; (dword) { Bx*BY + Rx*RY }[0-3] - pmaddwd m0, m6 ; (dword) { Gx*GY }[0-3] - paddd m0, m4 ; += rgb_Yrnd - paddd m0, m1 ; (dword) { Y[0-3] } - psrad m0, 9 - packssdw m0, m0 ; (word) { Y[0-7] } - movd [dstq+wq], m0 - add wq, 2 - jl .loop2 -.end: - REP_RET -%endif ; %0 == 3 -%endmacro - -; %1 = nr. of XMM registers -; %2-5 = rgba, bgra, argb or abgr (in individual characters) -%macro RGB32_TO_UV_FN 5-6 -cglobal %2%3%4%5 %+ ToUV, 7, 7, %1, dstU, dstV, u1, src, u2, w, table -%if ARCH_X86_64 - mova m8, [rgba_Ucoeff_%2%4] - mova m9, [rgba_Ucoeff_%3%5] - mova m10, [rgba_Vcoeff_%2%4] - mova m11, [rgba_Vcoeff_%3%5] -%define coeffU1 m8 -%define coeffU2 m9 -%define coeffV1 m10 -%define coeffV2 m11 -%else ; x86-32 -%define coeffU1 [rgba_Ucoeff_%2%4] -%define coeffU2 [rgba_Ucoeff_%3%5] -%define coeffV1 [rgba_Vcoeff_%2%4] -%define coeffV2 [rgba_Vcoeff_%3%5] -%endif ; x86-64/32 -%if ARCH_X86_64 && %0 == 6 - jmp mangle(private_prefix %+ _ %+ %6 %+ ToUV %+ SUFFIX).body -%else ; ARCH_X86_64 && %0 == 6 -.body: -%if ARCH_X86_64 - movsxd wq, dword r5m -%else ; x86-32 - mov wq, r5m -%endif - add wq, wq - sub wq, mmsize - 1 - add dstUq, wq - add dstVq, wq - lea srcq, [srcq+wq*2] - neg wq - pcmpeqb m7, m7 - psrlw m7, 8 ; (word) { 0x00ff } x4 - mova m6, [rgb_UVrnd] -.loop: - ; FIXME check alignment and use mova - movu m0, [srcq+wq*2+0] ; (byte) { Bx, Gx, Rx, xx }[0-3] - movu m4, [srcq+wq*2+mmsize] ; (byte) { Bx, Gx, Rx, xx }[4-7] - DEINTB 1, 0, 5, 4, 7 ; (word) { Gx, xx (m0/m4) or Bx, Rx (m1/m5) }[0-3]/[4-7] - pmaddwd m3, m1, coeffV1 ; (dword) { Bx*BV + Rx*RV }[0-3] - pmaddwd m2, m0, coeffV2 ; (dword) { Gx*GV }[0-3] - pmaddwd m1, coeffU1 ; (dword) { Bx*BU + Rx*RU }[0-3] - pmaddwd m0, coeffU2 ; (dword) { Gx*GU }[0-3] - paddd m3, m6 ; += rgb_UVrnd - paddd m1, m6 ; += rgb_UVrnd - paddd m2, m3 ; (dword) { V[0-3] } - paddd m0, m1 ; (dword) { U[0-3] } - pmaddwd m3, m5, coeffV1 ; (dword) { Bx*BV + Rx*RV }[4-7] - pmaddwd m1, m4, coeffV2 ; (dword) { Gx*GV }[4-7] - pmaddwd m5, coeffU1 ; (dword) { Bx*BU + Rx*RU }[4-7] - pmaddwd m4, coeffU2 ; (dword) { Gx*GU }[4-7] - paddd m3, m6 ; += rgb_UVrnd - paddd m5, m6 ; += rgb_UVrnd - psrad m0, 9 - paddd m1, m3 ; (dword) { V[4-7] } - paddd m4, m5 ; (dword) { U[4-7] } - psrad m2, 9 - psrad m4, 9 - psrad m1, 9 - packssdw m0, m4 ; (word) { U[0-7] } - packssdw m2, m1 ; (word) { V[0-7] } -%if mmsize == 8 - mova [dstUq+wq], m0 - mova [dstVq+wq], m2 -%else ; mmsize == 16 - mova [dstUq+wq], m0 - mova [dstVq+wq], m2 -%endif ; mmsize == 8/16 - add wq, mmsize - jl .loop - sub wq, mmsize - 1 - jz .end - add srcq , 2*mmsize - 2 - add dstUq, mmsize - 1 - add dstVq, mmsize - 1 -.loop2: - movd m0, [srcq+wq*2] ; (byte) { Bx, Gx, Rx, xx }[0-3] - DEINTB 1, 0, 5, 4, 7 ; (word) { Gx, xx (m0/m4) or Bx, Rx (m1/m5) }[0-3]/[4-7] - pmaddwd m3, m1, coeffV1 ; (dword) { Bx*BV + Rx*RV }[0-3] - pmaddwd m2, m0, coeffV2 ; (dword) { Gx*GV }[0-3] - pmaddwd m1, coeffU1 ; (dword) { Bx*BU + Rx*RU }[0-3] - pmaddwd m0, coeffU2 ; (dword) { Gx*GU }[0-3] - paddd m3, m6 ; += rgb_UVrnd - paddd m1, m6 ; += rgb_UVrnd - paddd m2, m3 ; (dword) { V[0-3] } - paddd m0, m1 ; (dword) { U[0-3] } - psrad m0, 9 - psrad m2, 9 - packssdw m0, m0 ; (word) { U[0-7] } - packssdw m2, m2 ; (word) { V[0-7] } - movd [dstUq+wq], m0 - movd [dstVq+wq], m2 - add wq, 2 - jl .loop2 -.end: - REP_RET -%endif ; ARCH_X86_64 && %0 == 3 -%endmacro - -; %1 = nr. of XMM registers for rgb-to-Y func -; %2 = nr. of XMM registers for rgb-to-UV func -%macro RGB32_FUNCS 2 -RGB32_TO_Y_FN %1, r, g, b, a -RGB32_TO_Y_FN %1, b, g, r, a, rgba -RGB32_TO_Y_FN %1, a, r, g, b, rgba -RGB32_TO_Y_FN %1, a, b, g, r, rgba - -RGB32_TO_UV_FN %2, r, g, b, a -RGB32_TO_UV_FN %2, b, g, r, a, rgba -RGB32_TO_UV_FN %2, a, r, g, b, rgba -RGB32_TO_UV_FN %2, a, b, g, r, rgba -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -RGB32_FUNCS 0, 0 -%endif - -INIT_XMM sse2 -RGB32_FUNCS 8, 12 - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -RGB32_FUNCS 8, 12 -%endif - -;----------------------------------------------------------------------------- -; YUYV/UYVY/NV12/NV21 packed pixel shuffling. -; -; void ToY_(uint8_t *dst, const uint8_t *src, int w); -; and -; void toUV_(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, -; const uint8_t *unused, int w); -;----------------------------------------------------------------------------- - -; %1 = a (aligned) or u (unaligned) -; %2 = yuyv or uyvy -%macro LOOP_YUYV_TO_Y 2 -.loop_%1: - mov%1 m0, [srcq+wq*2] ; (byte) { Y0, U0, Y1, V0, ... } - mov%1 m1, [srcq+wq*2+mmsize] ; (byte) { Y8, U4, Y9, V4, ... } -%ifidn %2, yuyv - pand m0, m2 ; (word) { Y0, Y1, ..., Y7 } - pand m1, m2 ; (word) { Y8, Y9, ..., Y15 } -%else ; uyvy - psrlw m0, 8 ; (word) { Y0, Y1, ..., Y7 } - psrlw m1, 8 ; (word) { Y8, Y9, ..., Y15 } -%endif ; yuyv/uyvy - packuswb m0, m1 ; (byte) { Y0, ..., Y15 } - mova [dstq+wq], m0 - add wq, mmsize - jl .loop_%1 - REP_RET -%endmacro - -; %1 = nr. of XMM registers -; %2 = yuyv or uyvy -; %3 = if specified, it means that unaligned and aligned code in loop -; will be the same (i.e. YUYV+AVX), and thus we don't need to -; split the loop in an aligned and unaligned case -%macro YUYV_TO_Y_FN 2-3 -cglobal %2ToY, 5, 5, %1, dst, unused0, unused1, src, w -%if ARCH_X86_64 - movsxd wq, wd -%endif - add dstq, wq -%if mmsize == 16 - test srcq, 15 -%endif - lea srcq, [srcq+wq*2] -%ifidn %2, yuyv - pcmpeqb m2, m2 ; (byte) { 0xff } x 16 - psrlw m2, 8 ; (word) { 0x00ff } x 8 -%endif ; yuyv -%if mmsize == 16 - jnz .loop_u_start - neg wq - LOOP_YUYV_TO_Y a, %2 -.loop_u_start: - neg wq - LOOP_YUYV_TO_Y u, %2 -%else ; mmsize == 8 - neg wq - LOOP_YUYV_TO_Y a, %2 -%endif ; mmsize == 8/16 -%endmacro - -; %1 = a (aligned) or u (unaligned) -; %2 = yuyv or uyvy -%macro LOOP_YUYV_TO_UV 2 -.loop_%1: -%ifidn %2, yuyv - mov%1 m0, [srcq+wq*4] ; (byte) { Y0, U0, Y1, V0, ... } - mov%1 m1, [srcq+wq*4+mmsize] ; (byte) { Y8, U4, Y9, V4, ... } - psrlw m0, 8 ; (word) { U0, V0, ..., U3, V3 } - psrlw m1, 8 ; (word) { U4, V4, ..., U7, V7 } -%else ; uyvy -%if cpuflag(avx) - vpand m0, m2, [srcq+wq*4] ; (word) { U0, V0, ..., U3, V3 } - vpand m1, m2, [srcq+wq*4+mmsize] ; (word) { U4, V4, ..., U7, V7 } -%else - mov%1 m0, [srcq+wq*4] ; (byte) { Y0, U0, Y1, V0, ... } - mov%1 m1, [srcq+wq*4+mmsize] ; (byte) { Y8, U4, Y9, V4, ... } - pand m0, m2 ; (word) { U0, V0, ..., U3, V3 } - pand m1, m2 ; (word) { U4, V4, ..., U7, V7 } -%endif -%endif ; yuyv/uyvy - packuswb m0, m1 ; (byte) { U0, V0, ..., U7, V7 } - pand m1, m0, m2 ; (word) { U0, U1, ..., U7 } - psrlw m0, 8 ; (word) { V0, V1, ..., V7 } -%if mmsize == 16 - packuswb m1, m0 ; (byte) { U0, ... U7, V1, ... V7 } - movh [dstUq+wq], m1 - movhps [dstVq+wq], m1 -%else ; mmsize == 8 - packuswb m1, m1 ; (byte) { U0, ... U3 } - packuswb m0, m0 ; (byte) { V0, ... V3 } - movh [dstUq+wq], m1 - movh [dstVq+wq], m0 -%endif ; mmsize == 8/16 - add wq, mmsize / 2 - jl .loop_%1 - REP_RET -%endmacro - -; %1 = nr. of XMM registers -; %2 = yuyv or uyvy -; %3 = if specified, it means that unaligned and aligned code in loop -; will be the same (i.e. UYVY+AVX), and thus we don't need to -; split the loop in an aligned and unaligned case -%macro YUYV_TO_UV_FN 2-3 -cglobal %2ToUV, 4, 5, %1, dstU, dstV, unused, src, w -%if ARCH_X86_64 - movsxd wq, dword r5m -%else ; x86-32 - mov wq, r5m -%endif - add dstUq, wq - add dstVq, wq -%if mmsize == 16 && %0 == 2 - test srcq, 15 -%endif - lea srcq, [srcq+wq*4] - pcmpeqb m2, m2 ; (byte) { 0xff } x 16 - psrlw m2, 8 ; (word) { 0x00ff } x 8 - ; NOTE: if uyvy+avx, u/a are identical -%if mmsize == 16 && %0 == 2 - jnz .loop_u_start - neg wq - LOOP_YUYV_TO_UV a, %2 -.loop_u_start: - neg wq - LOOP_YUYV_TO_UV u, %2 -%else ; mmsize == 8 - neg wq - LOOP_YUYV_TO_UV a, %2 -%endif ; mmsize == 8/16 -%endmacro - -; %1 = a (aligned) or u (unaligned) -; %2 = nv12 or nv21 -%macro LOOP_NVXX_TO_UV 2 -.loop_%1: - mov%1 m0, [srcq+wq*2] ; (byte) { U0, V0, U1, V1, ... } - mov%1 m1, [srcq+wq*2+mmsize] ; (byte) { U8, V8, U9, V9, ... } - pand m2, m0, m5 ; (word) { U0, U1, ..., U7 } - pand m3, m1, m5 ; (word) { U8, U9, ..., U15 } - psrlw m0, 8 ; (word) { V0, V1, ..., V7 } - psrlw m1, 8 ; (word) { V8, V9, ..., V15 } - packuswb m2, m3 ; (byte) { U0, ..., U15 } - packuswb m0, m1 ; (byte) { V0, ..., V15 } -%ifidn %2, nv12 - mova [dstUq+wq], m2 - mova [dstVq+wq], m0 -%else ; nv21 - mova [dstVq+wq], m2 - mova [dstUq+wq], m0 -%endif ; nv12/21 - add wq, mmsize - jl .loop_%1 - REP_RET -%endmacro - -; %1 = nr. of XMM registers -; %2 = nv12 or nv21 -%macro NVXX_TO_UV_FN 2 -cglobal %2ToUV, 4, 5, %1, dstU, dstV, unused, src, w -%if ARCH_X86_64 - movsxd wq, dword r5m -%else ; x86-32 - mov wq, r5m -%endif - add dstUq, wq - add dstVq, wq -%if mmsize == 16 - test srcq, 15 -%endif - lea srcq, [srcq+wq*2] - pcmpeqb m5, m5 ; (byte) { 0xff } x 16 - psrlw m5, 8 ; (word) { 0x00ff } x 8 -%if mmsize == 16 - jnz .loop_u_start - neg wq - LOOP_NVXX_TO_UV a, %2 -.loop_u_start: - neg wq - LOOP_NVXX_TO_UV u, %2 -%else ; mmsize == 8 - neg wq - LOOP_NVXX_TO_UV a, %2 -%endif ; mmsize == 8/16 -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -YUYV_TO_Y_FN 0, yuyv -YUYV_TO_Y_FN 0, uyvy -YUYV_TO_UV_FN 0, yuyv -YUYV_TO_UV_FN 0, uyvy -NVXX_TO_UV_FN 0, nv12 -NVXX_TO_UV_FN 0, nv21 -%endif - -INIT_XMM sse2 -YUYV_TO_Y_FN 3, yuyv -YUYV_TO_Y_FN 2, uyvy -YUYV_TO_UV_FN 3, yuyv -YUYV_TO_UV_FN 3, uyvy -NVXX_TO_UV_FN 5, nv12 -NVXX_TO_UV_FN 5, nv21 - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -; in theory, we could write a yuy2-to-y using vpand (i.e. AVX), but -; that's not faster in practice -YUYV_TO_UV_FN 3, yuyv -YUYV_TO_UV_FN 3, uyvy, 1 -NVXX_TO_UV_FN 5, nv12 -NVXX_TO_UV_FN 5, nv21 -%endif diff --git a/libswscale/x86/output.asm b/libswscale/x86/output.asm deleted file mode 100644 index db3e9934f8..0000000000 --- a/libswscale/x86/output.asm +++ /dev/null @@ -1,425 +0,0 @@ -;****************************************************************************** -;* x86-optimized vertical line scaling functions -;* Copyright (c) 2011 Ronald S. Bultje -;* Kieran Kunhya -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -minshort: times 8 dw 0x8000 -yuv2yuvX_16_start: times 4 dd 0x4000 - 0x40000000 -yuv2yuvX_10_start: times 4 dd 0x10000 -yuv2yuvX_9_start: times 4 dd 0x20000 -yuv2yuvX_10_upper: times 8 dw 0x3ff -yuv2yuvX_9_upper: times 8 dw 0x1ff -pd_4: times 4 dd 4 -pd_4min0x40000:times 4 dd 4 - (0x40000) -pw_16: times 8 dw 16 -pw_32: times 8 dw 32 -pw_512: times 8 dw 512 -pw_1024: times 8 dw 1024 - -SECTION .text - -;----------------------------------------------------------------------------- -; vertical line scaling -; -; void yuv2plane1__(const int16_t *src, uint8_t *dst, int dstW, -; const uint8_t *dither, int offset) -; and -; void yuv2planeX__(const int16_t *filter, int filterSize, -; const int16_t **src, uint8_t *dst, int dstW, -; const uint8_t *dither, int offset) -; -; Scale one or $filterSize lines of source data to generate one line of output -; data. The input is 15 bits in int16_t if $output_size is [8,10] and 19 bits in -; int32_t if $output_size is 16. $filter is 12 bits. $filterSize is a multiple -; of 2. $offset is either 0 or 3. $dither holds 8 values. -;----------------------------------------------------------------------------- -%macro yuv2planeX_mainloop 2 -.pixelloop_%2: -%assign %%i 0 - ; the rep here is for the 8-bit output MMX case, where dither covers - ; 8 pixels but we can only handle 2 pixels per register, and thus 4 - ; pixels per iteration. In order to not have to keep track of where - ; we are w.r.t. dithering, we unroll the MMX/8-bit loop x2. -%if %1 == 8 -%assign %%repcnt 16/mmsize -%else -%assign %%repcnt 1 -%endif - -%rep %%repcnt - -%if %1 == 8 -%if ARCH_X86_32 - mova m2, [rsp+mmsize*(0+%%i)] - mova m1, [rsp+mmsize*(1+%%i)] -%else ; x86-64 - mova m2, m8 - mova m1, m_dith -%endif ; x86-32/64 -%else ; %1 == 9/10/16 - mova m1, [yuv2yuvX_%1_start] - mova m2, m1 -%endif ; %1 == 8/9/10/16 - movsx cntr_reg, fltsizem -.filterloop_%2_ %+ %%i: - ; input pixels - mov r6, [srcq+gprsize*cntr_reg-2*gprsize] -%if %1 == 16 - mova m3, [r6+r5*4] - mova m5, [r6+r5*4+mmsize] -%else ; %1 == 8/9/10 - mova m3, [r6+r5*2] -%endif ; %1 == 8/9/10/16 - mov r6, [srcq+gprsize*cntr_reg-gprsize] -%if %1 == 16 - mova m4, [r6+r5*4] - mova m6, [r6+r5*4+mmsize] -%else ; %1 == 8/9/10 - mova m4, [r6+r5*2] -%endif ; %1 == 8/9/10/16 - - ; coefficients - movd m0, [filterq+2*cntr_reg-4] ; coeff[0], coeff[1] -%if %1 == 16 - pshuflw m7, m0, 0 ; coeff[0] - pshuflw m0, m0, 0x55 ; coeff[1] - pmovsxwd m7, m7 ; word -> dword - pmovsxwd m0, m0 ; word -> dword - - pmulld m3, m7 - pmulld m5, m7 - pmulld m4, m0 - pmulld m6, m0 - - paddd m2, m3 - paddd m1, m5 - paddd m2, m4 - paddd m1, m6 -%else ; %1 == 10/9/8 - punpcklwd m5, m3, m4 - punpckhwd m3, m4 - SPLATD m0 - - pmaddwd m5, m0 - pmaddwd m3, m0 - - paddd m2, m5 - paddd m1, m3 -%endif ; %1 == 8/9/10/16 - - sub cntr_reg, 2 - jg .filterloop_%2_ %+ %%i - -%if %1 == 16 - psrad m2, 31 - %1 - psrad m1, 31 - %1 -%else ; %1 == 10/9/8 - psrad m2, 27 - %1 - psrad m1, 27 - %1 -%endif ; %1 == 8/9/10/16 - -%if %1 == 8 - packssdw m2, m1 - packuswb m2, m2 - movh [dstq+r5*1], m2 -%else ; %1 == 9/10/16 -%if %1 == 16 - packssdw m2, m1 - paddw m2, [minshort] -%else ; %1 == 9/10 -%if cpuflag(sse4) - packusdw m2, m1 -%else ; mmxext/sse2 - packssdw m2, m1 - pmaxsw m2, m6 -%endif ; mmxext/sse2/sse4/avx - pminsw m2, [yuv2yuvX_%1_upper] -%endif ; %1 == 9/10/16 - mov%2 [dstq+r5*2], m2 -%endif ; %1 == 8/9/10/16 - - add r5, mmsize/2 - sub wd, mmsize/2 - -%assign %%i %%i+2 -%endrep - jg .pixelloop_%2 -%endmacro - -%macro yuv2planeX_fn 3 - -%if ARCH_X86_32 -%define cntr_reg fltsizeq -%define movsx mov -%else -%define cntr_reg r7 -%define movsx movsxd -%endif - -cglobal yuv2planeX_%1, %3, 8, %2, filter, fltsize, src, dst, w, dither, offset -%if %1 == 8 || %1 == 9 || %1 == 10 - pxor m6, m6 -%endif ; %1 == 8/9/10 - -%if %1 == 8 -%if ARCH_X86_32 -%assign pad 0x2c - (stack_offset & 15) - SUB rsp, pad -%define m_dith m7 -%else ; x86-64 -%define m_dith m9 -%endif ; x86-32 - - ; create registers holding dither - movq m_dith, [ditherq] ; dither - test offsetd, offsetd - jz .no_rot -%if mmsize == 16 - punpcklqdq m_dith, m_dith -%endif ; mmsize == 16 - PALIGNR m_dith, m_dith, 3, m0 -.no_rot: -%if mmsize == 16 - punpcklbw m_dith, m6 -%if ARCH_X86_64 - punpcklwd m8, m_dith, m6 - pslld m8, 12 -%else ; x86-32 - punpcklwd m5, m_dith, m6 - pslld m5, 12 -%endif ; x86-32/64 - punpckhwd m_dith, m6 - pslld m_dith, 12 -%if ARCH_X86_32 - mova [rsp+ 0], m5 - mova [rsp+16], m_dith -%endif -%else ; mmsize == 8 - punpcklbw m5, m_dith, m6 - punpckhbw m_dith, m6 - punpcklwd m4, m5, m6 - punpckhwd m5, m6 - punpcklwd m3, m_dith, m6 - punpckhwd m_dith, m6 - pslld m4, 12 - pslld m5, 12 - pslld m3, 12 - pslld m_dith, 12 - mova [rsp+ 0], m4 - mova [rsp+ 8], m5 - mova [rsp+16], m3 - mova [rsp+24], m_dith -%endif ; mmsize == 8/16 -%endif ; %1 == 8 - - xor r5, r5 - -%if mmsize == 8 || %1 == 8 - yuv2planeX_mainloop %1, a -%else ; mmsize == 16 - test dstq, 15 - jnz .unaligned - yuv2planeX_mainloop %1, a - REP_RET -.unaligned: - yuv2planeX_mainloop %1, u -%endif ; mmsize == 8/16 - -%if %1 == 8 -%if ARCH_X86_32 - ADD rsp, pad - RET -%else ; x86-64 - REP_RET -%endif ; x86-32/64 -%else ; %1 == 9/10/16 - REP_RET -%endif ; %1 == 8/9/10/16 -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmxext -yuv2planeX_fn 8, 0, 7 -yuv2planeX_fn 9, 0, 5 -yuv2planeX_fn 10, 0, 5 -%endif - -INIT_XMM sse2 -yuv2planeX_fn 8, 10, 7 -yuv2planeX_fn 9, 7, 5 -yuv2planeX_fn 10, 7, 5 - -INIT_XMM sse4 -yuv2planeX_fn 8, 10, 7 -yuv2planeX_fn 9, 7, 5 -yuv2planeX_fn 10, 7, 5 -yuv2planeX_fn 16, 8, 5 - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -yuv2planeX_fn 8, 10, 7 -yuv2planeX_fn 9, 7, 5 -yuv2planeX_fn 10, 7, 5 -%endif - -; %1=outout-bpc, %2=alignment (u/a) -%macro yuv2plane1_mainloop 2 -.loop_%2: -%if %1 == 8 - paddsw m0, m2, [srcq+wq*2+mmsize*0] - paddsw m1, m3, [srcq+wq*2+mmsize*1] - psraw m0, 7 - psraw m1, 7 - packuswb m0, m1 - mov%2 [dstq+wq], m0 -%elif %1 == 16 - paddd m0, m4, [srcq+wq*4+mmsize*0] - paddd m1, m4, [srcq+wq*4+mmsize*1] - paddd m2, m4, [srcq+wq*4+mmsize*2] - paddd m3, m4, [srcq+wq*4+mmsize*3] - psrad m0, 3 - psrad m1, 3 - psrad m2, 3 - psrad m3, 3 -%if cpuflag(sse4) ; avx/sse4 - packusdw m0, m1 - packusdw m2, m3 -%else ; mmx/sse2 - packssdw m0, m1 - packssdw m2, m3 - paddw m0, m5 - paddw m2, m5 -%endif ; mmx/sse2/sse4/avx - mov%2 [dstq+wq*2+mmsize*0], m0 - mov%2 [dstq+wq*2+mmsize*1], m2 -%else ; %1 == 9/10 - paddsw m0, m2, [srcq+wq*2+mmsize*0] - paddsw m1, m2, [srcq+wq*2+mmsize*1] - psraw m0, 15 - %1 - psraw m1, 15 - %1 - pmaxsw m0, m4 - pmaxsw m1, m4 - pminsw m0, m3 - pminsw m1, m3 - mov%2 [dstq+wq*2+mmsize*0], m0 - mov%2 [dstq+wq*2+mmsize*1], m1 -%endif - add wq, mmsize - jl .loop_%2 -%endmacro - -%macro yuv2plane1_fn 3 -cglobal yuv2plane1_%1, %3, %3, %2, src, dst, w, dither, offset - movsxdifnidn wq, wd - add wq, mmsize - 1 - and wq, ~(mmsize - 1) -%if %1 == 8 - add dstq, wq -%else ; %1 != 8 - lea dstq, [dstq+wq*2] -%endif ; %1 == 8 -%if %1 == 16 - lea srcq, [srcq+wq*4] -%else ; %1 != 16 - lea srcq, [srcq+wq*2] -%endif ; %1 == 16 - neg wq - -%if %1 == 8 - pxor m4, m4 ; zero - - ; create registers holding dither - movq m3, [ditherq] ; dither - test offsetd, offsetd - jz .no_rot -%if mmsize == 16 - punpcklqdq m3, m3 -%endif ; mmsize == 16 - PALIGNR m3, m3, 3, m2 -.no_rot: -%if mmsize == 8 - mova m2, m3 - punpckhbw m3, m4 ; byte->word - punpcklbw m2, m4 ; byte->word -%else - punpcklbw m3, m4 - mova m2, m3 -%endif -%elif %1 == 9 - pxor m4, m4 - mova m3, [pw_512] - mova m2, [pw_32] -%elif %1 == 10 - pxor m4, m4 - mova m3, [pw_1024] - mova m2, [pw_16] -%else ; %1 == 16 -%if cpuflag(sse4) ; sse4/avx - mova m4, [pd_4] -%else ; mmx/sse2 - mova m4, [pd_4min0x40000] - mova m5, [minshort] -%endif ; mmx/sse2/sse4/avx -%endif ; %1 == .. - - ; actual pixel scaling -%if mmsize == 8 - yuv2plane1_mainloop %1, a -%else ; mmsize == 16 - test dstq, 15 - jnz .unaligned - yuv2plane1_mainloop %1, a - REP_RET -.unaligned: - yuv2plane1_mainloop %1, u -%endif ; mmsize == 8/16 - REP_RET -%endmacro - -%if ARCH_X86_32 -INIT_MMX mmx -yuv2plane1_fn 8, 0, 5 -yuv2plane1_fn 16, 0, 3 - -INIT_MMX mmxext -yuv2plane1_fn 9, 0, 3 -yuv2plane1_fn 10, 0, 3 -%endif - -INIT_XMM sse2 -yuv2plane1_fn 8, 5, 5 -yuv2plane1_fn 9, 5, 3 -yuv2plane1_fn 10, 5, 3 -yuv2plane1_fn 16, 6, 3 - -INIT_XMM sse4 -yuv2plane1_fn 16, 5, 3 - -%if HAVE_AVX_EXTERNAL -INIT_XMM avx -yuv2plane1_fn 8, 5, 5 -yuv2plane1_fn 9, 5, 3 -yuv2plane1_fn 10, 5, 3 -yuv2plane1_fn 16, 5, 3 -%endif diff --git a/libswscale/x86/rgb_2_rgb.asm b/libswscale/x86/rgb_2_rgb.asm deleted file mode 100644 index 29b856e281..0000000000 --- a/libswscale/x86/rgb_2_rgb.asm +++ /dev/null @@ -1,300 +0,0 @@ -;****************************************************************************** -;* Copyright Nick Kurshev -;* Copyright Michael (michaelni@gmx.at) -;* Copyright 2018 Jokyo Images -;* Copyright Ivo van Poorten -;* -;* 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -pb_mask_shuffle2103_mmx times 8 dw 255 -pb_shuffle2103: db 2, 1, 0, 3, 6, 5, 4, 7, 10, 9, 8, 11, 14, 13, 12, 15 -pb_shuffle0321: db 0, 3, 2, 1, 4, 7, 6, 5, 8, 11, 10, 9, 12, 15, 14, 13 -pb_shuffle1230: db 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12 -pb_shuffle3012: db 3, 0, 1, 2, 7, 4, 5, 6, 11, 8, 9, 10, 15, 12, 13, 14 -pb_shuffle3210: db 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 - -SECTION .text - -%macro RSHIFT_COPY 3 -; %1 dst ; %2 src ; %3 shift -%if cpuflag(avx) - psrldq %1, %2, %3 -%else - mova %1, %2 - RSHIFT %1, %3 -%endif -%endmacro - -;------------------------------------------------------------------------------ -; shuffle_bytes_2103_mmext (const uint8_t *src, uint8_t *dst, int src_size) -;------------------------------------------------------------------------------ -INIT_MMX mmxext -cglobal shuffle_bytes_2103, 3, 5, 8, src, dst, w, tmp, x - mova m6, [pb_mask_shuffle2103_mmx] - mova m7, m6 - psllq m7, 8 - - movsxdifnidn wq, wd - mov xq, wq - - add srcq, wq - add dstq, wq - neg wq - -;calc scalar loop - and xq, mmsize*2 -4 - je .loop_simd - -.loop_scalar: - mov tmpb, [srcq + wq + 2] - mov [dstq+wq + 0], tmpb - mov tmpb, [srcq + wq + 1] - mov [dstq+wq + 1], tmpb - mov tmpb, [srcq + wq + 0] - mov [dstq+wq + 2], tmpb - mov tmpb, [srcq + wq + 3] - mov [dstq+wq + 3], tmpb - add wq, 4 - sub xq, 4 - jg .loop_scalar - -;check if src_size < mmsize * 2 -cmp wq, 0 -jge .end - -.loop_simd: - movu m0, [srcq+wq] - movu m1, [srcq+wq+8] - - pshufw m3, m0, 177 - pshufw m5, m1, 177 - - pand m0, m7 - pand m3, m6 - - pand m1, m7 - pand m5, m6 - - por m0, m3 - por m1, m5 - - movu [dstq+wq], m0 - movu [dstq+wq + 8], m1 - - add wq, mmsize*2 - jl .loop_simd - -.end: - RET - -;------------------------------------------------------------------------------ -; shuffle_bytes_## (const uint8_t *src, uint8_t *dst, int src_size) -;------------------------------------------------------------------------------ -; %1-4 index shuffle -%macro SHUFFLE_BYTES 4 -cglobal shuffle_bytes_%1%2%3%4, 3, 5, 2, src, dst, w, tmp, x - VBROADCASTI128 m0, [pb_shuffle%1%2%3%4] - movsxdifnidn wq, wd - mov xq, wq - - add srcq, wq - add dstq, wq - neg wq - -;calc scalar loop - and xq, mmsize-4 - je .loop_simd - -.loop_scalar: - mov tmpb, [srcq + wq + %1] - mov [dstq+wq + 0], tmpb - mov tmpb, [srcq + wq + %2] - mov [dstq+wq + 1], tmpb - mov tmpb, [srcq + wq + %3] - mov [dstq+wq + 2], tmpb - mov tmpb, [srcq + wq + %4] - mov [dstq+wq + 3], tmpb - add wq, 4 - sub xq, 4 - jg .loop_scalar - -;check if src_size < mmsize -cmp wq, 0 -jge .end - -.loop_simd: - movu m1, [srcq+wq] - pshufb m1, m0 - movu [dstq+wq], m1 - add wq, mmsize - jl .loop_simd - -.end: - RET -%endmacro - -INIT_XMM ssse3 -SHUFFLE_BYTES 2, 1, 0, 3 -SHUFFLE_BYTES 0, 3, 2, 1 -SHUFFLE_BYTES 1, 2, 3, 0 -SHUFFLE_BYTES 3, 0, 1, 2 -SHUFFLE_BYTES 3, 2, 1, 0 - -;----------------------------------------------------------------------------------------------- -; uyvytoyuv422(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, -; const uint8_t *src, int width, int height, -; int lumStride, int chromStride, int srcStride) -;----------------------------------------------------------------------------------------------- -%macro UYVY_TO_YUV422 0 -cglobal uyvytoyuv422, 9, 14, 8, ydst, udst, vdst, src, w, h, lum_stride, chrom_stride, src_stride, wtwo, whalf, tmp, x, back_w - pxor m0, m0 - pcmpeqw m1, m1 - psrlw m1, 8 - - movsxdifnidn wq, wd - movsxdifnidn lum_strideq, lum_strided - movsxdifnidn chrom_strideq, chrom_strided - movsxdifnidn src_strideq, src_strided - - mov back_wq, wq - mov whalfq, wq - shr whalfq, 1 ; whalf = width / 2 - - lea srcq, [srcq + wq * 2] - add ydstq, wq - add udstq, whalfq - add vdstq, whalfq - -.loop_line: - mov xq, wq - mov wtwoq, wq - add wtwoq, wtwoq ; wtwo = width * 2 - - neg wq - neg wtwoq - neg whalfq - - ;calc scalar loop count - and xq, mmsize * 2 - 1 - je .loop_simd - - .loop_scalar: - mov tmpb, [srcq + wtwoq + 0] - mov [udstq + whalfq], tmpb - - mov tmpb, [srcq + wtwoq + 1] - mov [ydstq + wq], tmpb - - mov tmpb, [srcq + wtwoq + 2] - mov [vdstq + whalfq], tmpb - - mov tmpb, [srcq + wtwoq + 3] - mov [ydstq + wq + 1], tmpb - - add wq, 2 - add wtwoq, 4 - add whalfq, 1 - sub xq, 2 - jg .loop_scalar - - ; check if simd loop is need - cmp wq, 0 - jge .end_line - - .loop_simd: - movu m2, [srcq + wtwoq ] - movu m3, [srcq + wtwoq + mmsize ] - movu m4, [srcq + wtwoq + mmsize * 2] - movu m5, [srcq + wtwoq + mmsize * 3] - - ; extract y part 1 - RSHIFT_COPY m6, m2, 1 ; UYVY UYVY -> YVYU YVY... - pand m6, m1; YxYx YxYx... - - RSHIFT_COPY m7, m3, 1 ; UYVY UYVY -> YVYU YVY... - pand m7, m1 ; YxYx YxYx... - - packuswb m6, m7 ; YYYY YYYY... - movu [ydstq + wq], m6 - - ; extract y part 2 - RSHIFT_COPY m6, m4, 1 ; UYVY UYVY -> YVYU YVY... - pand m6, m1; YxYx YxYx... - - RSHIFT_COPY m7, m5, 1 ; UYVY UYVY -> YVYU YVY... - pand m7, m1 ; YxYx YxYx... - - packuswb m6, m7 ; YYYY YYYY... - movu [ydstq + wq + mmsize], m6 - - ; extract uv - pand m2, m1 ; UxVx... - pand m3, m1 ; UxVx... - pand m4, m1 ; UxVx... - pand m5, m1 ; UxVx... - - packuswb m2, m3 ; UVUV... - packuswb m4, m5 ; UVUV... - - ; U - pand m6, m2, m1 ; UxUx... - pand m7, m4, m1 ; UxUx... - - packuswb m6, m7 ; UUUU - movu [udstq + whalfq], m6 - - - ; V - psrlw m2, 8 ; VxVx... - psrlw m4, 8 ; VxVx... - packuswb m2, m4 ; VVVV - movu [vdstq + whalfq], m2 - - add whalfq, mmsize - add wtwoq, mmsize * 4 - add wq, mmsize * 2 - jl .loop_simd - - .end_line: - add srcq, src_strideq - add ydstq, lum_strideq - add udstq, chrom_strideq - add vdstq, chrom_strideq - - ;restore initial state of line variable - mov wq, back_wq - mov xq, wq - mov whalfq, wq - shr whalfq, 1 ; whalf = width / 2 - sub hd, 1 - jg .loop_line - - RET -%endmacro - -%if ARCH_X86_64 -INIT_XMM sse2 -UYVY_TO_YUV422 - -INIT_XMM avx -UYVY_TO_YUV422 -%endif diff --git a/libswscale/x86/scale.asm b/libswscale/x86/scale.asm deleted file mode 100644 index 83cabff722..0000000000 --- a/libswscale/x86/scale.asm +++ /dev/null @@ -1,423 +0,0 @@ -;****************************************************************************** -;* x86-optimized horizontal line scaling functions -;* Copyright (c) 2011 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 "libavutil/x86/x86util.asm" - -SECTION_RODATA - -max_19bit_int: times 4 dd 0x7ffff -max_19bit_flt: times 4 dd 524287.0 -minshort: times 8 dw 0x8000 -unicoeff: times 4 dd 0x20000000 - -SECTION .text - -;----------------------------------------------------------------------------- -; horizontal line scaling -; -; void hscaleto__ -; (SwsContext *c, int{16,32}_t *dst, -; int dstW, const uint{8,16}_t *src, -; const int16_t *filter, -; const int32_t *filterPos, int filterSize); -; -; Scale one horizontal line. Input is either 8-bit width or 16-bit width -; ($source_width can be either 8, 9, 10 or 16, difference is whether we have to -; downscale before multiplying). Filter is 14 bits. Output is either 15 bits -; (in int16_t) or 19 bits (in int32_t), as given in $intermediate_nbits. Each -; output pixel is generated from $filterSize input pixels, the position of -; the first pixel is given in filterPos[nOutputPixel]. -;----------------------------------------------------------------------------- - -; SCALE_FUNC source_width, intermediate_nbits, filtersize, filtersuffix, n_args, n_xmm -%macro SCALE_FUNC 6 -%ifnidn %3, X -cglobal hscale%1to%2_%4, %5, 7, %6, pos0, dst, w, src, filter, fltpos, pos1 -%else -cglobal hscale%1to%2_%4, %5, 10, %6, pos0, dst, w, srcmem, filter, fltpos, fltsize -%endif -%if ARCH_X86_64 - movsxd wq, wd -%define mov32 movsxd -%else ; x86-32 -%define mov32 mov -%endif ; x86-64 -%if %2 == 19 -%if mmsize == 8 ; mmx - mova m2, [max_19bit_int] -%elif cpuflag(sse4) - mova m2, [max_19bit_int] -%else ; ssse3/sse2 - mova m2, [max_19bit_flt] -%endif ; mmx/sse2/ssse3/sse4 -%endif ; %2 == 19 -%if %1 == 16 - mova m6, [minshort] - mova m7, [unicoeff] -%elif %1 == 8 - pxor m3, m3 -%endif ; %1 == 8/16 - -%if %1 == 8 -%define movlh movd -%define movbh movh -%define srcmul 1 -%else ; %1 == 9-16 -%define movlh movq -%define movbh movu -%define srcmul 2 -%endif ; %1 == 8/9-16 - -%ifnidn %3, X - - ; setup loop -%if %3 == 8 - shl wq, 1 ; this allows *16 (i.e. now *8) in lea instructions for the 8-tap filter -%define wshr 1 -%else ; %3 == 4 -%define wshr 0 -%endif ; %3 == 8 - lea filterq, [filterq+wq*8] -%if %2 == 15 - lea dstq, [dstq+wq*(2>>wshr)] -%else ; %2 == 19 - lea dstq, [dstq+wq*(4>>wshr)] -%endif ; %2 == 15/19 - lea fltposq, [fltposq+wq*(4>>wshr)] - neg wq - -.loop: -%if %3 == 4 ; filterSize == 4 scaling - ; load 2x4 or 4x4 source pixels into m0/m1 - mov32 pos0q, dword [fltposq+wq*4+ 0] ; filterPos[0] - mov32 pos1q, dword [fltposq+wq*4+ 4] ; filterPos[1] - movlh m0, [srcq+pos0q*srcmul] ; src[filterPos[0] + {0,1,2,3}] -%if mmsize == 8 - movlh m1, [srcq+pos1q*srcmul] ; src[filterPos[1] + {0,1,2,3}] -%else ; mmsize == 16 -%if %1 > 8 - movhps m0, [srcq+pos1q*srcmul] ; src[filterPos[1] + {0,1,2,3}] -%else ; %1 == 8 - movd m4, [srcq+pos1q*srcmul] ; src[filterPos[1] + {0,1,2,3}] -%endif - mov32 pos0q, dword [fltposq+wq*4+ 8] ; filterPos[2] - mov32 pos1q, dword [fltposq+wq*4+12] ; filterPos[3] - movlh m1, [srcq+pos0q*srcmul] ; src[filterPos[2] + {0,1,2,3}] -%if %1 > 8 - movhps m1, [srcq+pos1q*srcmul] ; src[filterPos[3] + {0,1,2,3}] -%else ; %1 == 8 - movd m5, [srcq+pos1q*srcmul] ; src[filterPos[3] + {0,1,2,3}] - punpckldq m0, m4 - punpckldq m1, m5 -%endif ; %1 == 8 -%endif ; mmsize == 8/16 -%if %1 == 8 - punpcklbw m0, m3 ; byte -> word - punpcklbw m1, m3 ; byte -> word -%endif ; %1 == 8 - - ; multiply with filter coefficients -%if %1 == 16 ; pmaddwd needs signed adds, so this moves unsigned -> signed, we'll - ; add back 0x8000 * sum(coeffs) after the horizontal add - psubw m0, m6 - psubw m1, m6 -%endif ; %1 == 16 - pmaddwd m0, [filterq+wq*8+mmsize*0] ; *= filter[{0,1,..,6,7}] - pmaddwd m1, [filterq+wq*8+mmsize*1] ; *= filter[{8,9,..,14,15}] - - ; add up horizontally (4 srcpix * 4 coefficients -> 1 dstpix) -%if mmsize == 8 ; mmx - movq m4, m0 - punpckldq m0, m1 - punpckhdq m4, m1 - paddd m0, m4 -%elif notcpuflag(ssse3) ; sse2 - mova m4, m0 - shufps m0, m1, 10001000b - shufps m4, m1, 11011101b - paddd m0, m4 -%else ; ssse3/sse4 - phaddd m0, m1 ; filter[{ 0, 1, 2, 3}]*src[filterPos[0]+{0,1,2,3}], - ; filter[{ 4, 5, 6, 7}]*src[filterPos[1]+{0,1,2,3}], - ; filter[{ 8, 9,10,11}]*src[filterPos[2]+{0,1,2,3}], - ; filter[{12,13,14,15}]*src[filterPos[3]+{0,1,2,3}] -%endif ; mmx/sse2/ssse3/sse4 -%else ; %3 == 8, i.e. filterSize == 8 scaling - ; load 2x8 or 4x8 source pixels into m0, m1, m4 and m5 - mov32 pos0q, dword [fltposq+wq*2+0] ; filterPos[0] - mov32 pos1q, dword [fltposq+wq*2+4] ; filterPos[1] - movbh m0, [srcq+ pos0q *srcmul] ; src[filterPos[0] + {0,1,2,3,4,5,6,7}] -%if mmsize == 8 - movbh m1, [srcq+(pos0q+4)*srcmul] ; src[filterPos[0] + {4,5,6,7}] - movbh m4, [srcq+ pos1q *srcmul] ; src[filterPos[1] + {0,1,2,3}] - movbh m5, [srcq+(pos1q+4)*srcmul] ; src[filterPos[1] + {4,5,6,7}] -%else ; mmsize == 16 - movbh m1, [srcq+ pos1q *srcmul] ; src[filterPos[1] + {0,1,2,3,4,5,6,7}] - mov32 pos0q, dword [fltposq+wq*2+8] ; filterPos[2] - mov32 pos1q, dword [fltposq+wq*2+12] ; filterPos[3] - movbh m4, [srcq+ pos0q *srcmul] ; src[filterPos[2] + {0,1,2,3,4,5,6,7}] - movbh m5, [srcq+ pos1q *srcmul] ; src[filterPos[3] + {0,1,2,3,4,5,6,7}] -%endif ; mmsize == 8/16 -%if %1 == 8 - punpcklbw m0, m3 ; byte -> word - punpcklbw m1, m3 ; byte -> word - punpcklbw m4, m3 ; byte -> word - punpcklbw m5, m3 ; byte -> word -%endif ; %1 == 8 - - ; multiply -%if %1 == 16 ; pmaddwd needs signed adds, so this moves unsigned -> signed, we'll - ; add back 0x8000 * sum(coeffs) after the horizontal add - psubw m0, m6 - psubw m1, m6 - psubw m4, m6 - psubw m5, m6 -%endif ; %1 == 16 - pmaddwd m0, [filterq+wq*8+mmsize*0] ; *= filter[{0,1,..,6,7}] - pmaddwd m1, [filterq+wq*8+mmsize*1] ; *= filter[{8,9,..,14,15}] - pmaddwd m4, [filterq+wq*8+mmsize*2] ; *= filter[{16,17,..,22,23}] - pmaddwd m5, [filterq+wq*8+mmsize*3] ; *= filter[{24,25,..,30,31}] - - ; add up horizontally (8 srcpix * 8 coefficients -> 1 dstpix) -%if mmsize == 8 - paddd m0, m1 - paddd m4, m5 - movq m1, m0 - punpckldq m0, m4 - punpckhdq m1, m4 - paddd m0, m1 -%elif notcpuflag(ssse3) ; sse2 -%if %1 == 8 -%define mex m6 -%else -%define mex m3 -%endif - ; emulate horizontal add as transpose + vertical add - mova mex, m0 - punpckldq m0, m1 - punpckhdq mex, m1 - paddd m0, mex - mova m1, m4 - punpckldq m4, m5 - punpckhdq m1, m5 - paddd m4, m1 - mova m1, m0 - punpcklqdq m0, m4 - punpckhqdq m1, m4 - paddd m0, m1 -%else ; ssse3/sse4 - ; FIXME if we rearrange the filter in pairs of 4, we can - ; load pixels likewise and use 2 x paddd + phaddd instead - ; of 3 x phaddd here, faster on older cpus - phaddd m0, m1 - phaddd m4, m5 - phaddd m0, m4 ; filter[{ 0, 1,..., 6, 7}]*src[filterPos[0]+{0,1,...,6,7}], - ; filter[{ 8, 9,...,14,15}]*src[filterPos[1]+{0,1,...,6,7}], - ; filter[{16,17,...,22,23}]*src[filterPos[2]+{0,1,...,6,7}], - ; filter[{24,25,...,30,31}]*src[filterPos[3]+{0,1,...,6,7}] -%endif ; mmx/sse2/ssse3/sse4 -%endif ; %3 == 4/8 - -%else ; %3 == X, i.e. any filterSize scaling - -%ifidn %4, X4 -%define dlt 4 -%else ; %4 == X || %4 == X8 -%define dlt 0 -%endif ; %4 ==/!= X4 -%if ARCH_X86_64 -%define srcq r8 -%define pos1q r7 -%define srcendq r9 - movsxd fltsizeq, fltsized ; filterSize - lea srcendq, [srcmemq+(fltsizeq-dlt)*srcmul] ; &src[filterSize&~4] -%else ; x86-32 -%define srcq srcmemq -%define pos1q dstq -%define srcendq r6m - lea pos0q, [srcmemq+(fltsizeq-dlt)*srcmul] ; &src[filterSize&~4] - mov srcendq, pos0q -%endif ; x86-32/64 - lea fltposq, [fltposq+wq*4] -%if %2 == 15 - lea dstq, [dstq+wq*2] -%else ; %2 == 19 - lea dstq, [dstq+wq*4] -%endif ; %2 == 15/19 - movifnidn dstmp, dstq - neg wq - -.loop: - mov32 pos0q, dword [fltposq+wq*4+0] ; filterPos[0] - mov32 pos1q, dword [fltposq+wq*4+4] ; filterPos[1] - ; FIXME maybe do 4px/iteration on x86-64 (x86-32 wouldn't have enough regs)? - pxor m4, m4 - pxor m5, m5 - mov srcq, srcmemmp - -.innerloop: - ; load 2x4 (mmx) or 2x8 (sse) source pixels into m0/m1 -> m4/m5 - movbh m0, [srcq+ pos0q *srcmul] ; src[filterPos[0] + {0,1,2,3(,4,5,6,7)}] - movbh m1, [srcq+(pos1q+dlt)*srcmul] ; src[filterPos[1] + {0,1,2,3(,4,5,6,7)}] -%if %1 == 8 - punpcklbw m0, m3 - punpcklbw m1, m3 -%endif ; %1 == 8 - - ; multiply -%if %1 == 16 ; pmaddwd needs signed adds, so this moves unsigned -> signed, we'll - ; add back 0x8000 * sum(coeffs) after the horizontal add - psubw m0, m6 - psubw m1, m6 -%endif ; %1 == 16 - pmaddwd m0, [filterq] ; filter[{0,1,2,3(,4,5,6,7)}] - pmaddwd m1, [filterq+(fltsizeq+dlt)*2]; filter[filtersize+{0,1,2,3(,4,5,6,7)}] - paddd m4, m0 - paddd m5, m1 - add filterq, mmsize - add srcq, srcmul*mmsize/2 - cmp srcq, srcendq ; while (src += 4) < &src[filterSize] - jl .innerloop - -%ifidn %4, X4 - mov32 pos1q, dword [fltposq+wq*4+4] ; filterPos[1] - movlh m0, [srcq+ pos0q *srcmul] ; split last 4 srcpx of dstpx[0] - sub pos1q, fltsizeq ; and first 4 srcpx of dstpx[1] -%if %1 > 8 - movhps m0, [srcq+(pos1q+dlt)*srcmul] -%else ; %1 == 8 - movd m1, [srcq+(pos1q+dlt)*srcmul] - punpckldq m0, m1 -%endif ; %1 == 8 -%if %1 == 8 - punpcklbw m0, m3 -%endif ; %1 == 8 -%if %1 == 16 ; pmaddwd needs signed adds, so this moves unsigned -> signed, we'll - ; add back 0x8000 * sum(coeffs) after the horizontal add - psubw m0, m6 -%endif ; %1 == 16 - pmaddwd m0, [filterq] -%endif ; %4 == X4 - - lea filterq, [filterq+(fltsizeq+dlt)*2] - -%if mmsize == 8 ; mmx - movq m0, m4 - punpckldq m4, m5 - punpckhdq m0, m5 - paddd m0, m4 -%else ; mmsize == 16 -%if notcpuflag(ssse3) ; sse2 - mova m1, m4 - punpcklqdq m4, m5 - punpckhqdq m1, m5 - paddd m4, m1 -%else ; ssse3/sse4 - phaddd m4, m5 -%endif ; sse2/ssse3/sse4 -%ifidn %4, X4 - paddd m4, m0 -%endif ; %3 == X4 -%if notcpuflag(ssse3) ; sse2 - pshufd m4, m4, 11011000b - movhlps m0, m4 - paddd m0, m4 -%else ; ssse3/sse4 - phaddd m4, m4 - SWAP 0, 4 -%endif ; sse2/ssse3/sse4 -%endif ; mmsize == 8/16 -%endif ; %3 ==/!= X - -%if %1 == 16 ; add 0x8000 * sum(coeffs), i.e. back from signed -> unsigned - paddd m0, m7 -%endif ; %1 == 16 - - ; clip, store - psrad m0, 14 + %1 - %2 -%ifidn %3, X - movifnidn dstq, dstmp -%endif ; %3 == X -%if %2 == 15 - packssdw m0, m0 -%ifnidn %3, X - movh [dstq+wq*(2>>wshr)], m0 -%else ; %3 == X - movd [dstq+wq*2], m0 -%endif ; %3 ==/!= X -%else ; %2 == 19 - PMINSD m0, m2, m4 -%ifnidn %3, X - mova [dstq+wq*(4>>wshr)], m0 -%else ; %3 == X - movq [dstq+wq*4], m0 -%endif ; %3 ==/!= X -%endif ; %2 == 15/19 -%ifnidn %3, X - add wq, (mmsize<